Commits
- Commit:
d046e4d6b500583cda8d2561e47c790eaedd007f
- From:
- Omar Polo <op@omarpolo.com>
- Date:
copy only `len' bytes, not the whole buffer
We ended up copying too much data from the fastcgi process.
- Commit:
4a2a525d7c3013f3c4b5669db9fdbb84d8d77946
- From:
- Omar Polo <op@omarpolo.com>
- Date:
allow running only specific tests
It's now possible to run only a subset of the tests with:
./runtime test1 test2 ...
- Commit:
c1272f63e4b85f663b56a8e67e31f3e85dd78faa
- From:
- Omar Polo <op@omarpolo.com>
- Date:
sync
- Commit:
99c91b4a51fea49255b5e6989278f6b9990d0a5c
- From:
- Omar Polo <op@omarpolo.com>
- Date:
remove unused script
- Commit:
176179b2a9e99af595892c396a219c2bc11fb6c9
- From:
- Omar Polo <op@omarpolo.com>
- Date:
rework the regression suite
The tests are still there, the suite is equivalent to the old one, but
this one is better structured.
The biggest annoyance I had with the old one was that it wasn't
straightforward to test only a specific set of tests. It's still
impossible, but it's way easier to do it now.
This extract all the tests to their own functions. It's overall
better in all possible regards.
- Commit:
c28994868efd1da6259f805984cc93135bd74a3a
- From:
- Omar Polo <op@omarpolo.com>
- Date:
update clean target
- Commit:
a49800c86aeceddedd1b876a125276f9e8ff0baa
- From:
- Omar Polo <op@omarpolo.com>
- Date:
sync
- Commit:
acafce5b7ddd4342e45a7731ae3f261e6f202a77
- From:
- Omar Polo <op@omarpolo.com>
- Date:
libevent2 fix: unfreeze the client evbuffer
libevent2 has this concept of "freezeness" of a buffer. It's a way to
avoid accidentally write/remove data from the wrong "edge" of the
buffer. The client_tls_{read,write} functions need to add/drain data
from the opposite edge, hence the need for the unfreeze call.
This is the minimum change in order to work on libevent2 too. Another
way would be to define evbuffer_{un,}freeze as NOP on libevent 1, but
it's ugly IMHO.
- Commit:
efb6210d7745c9466ab9a16f23d1549523428ef7
- From:
- Omar Polo <op@omarpolo.com>
- Date:
improve libevent2 handling
* add configure check
* change the way the headers are required (copied from tmux)
- Commit:
d0071d8321dc1e718a8146a888db155d1dc24be1
- From:
- Omar Polo <op@omarpolo.com>
- Date:
verbose logging for getnameinfo
- Commit:
827cc37cff5940d529ab4fb75fc206f7db94adeb
- From:
- Omar Polo <op@omarpolo.com>
- Date:
update tests
* we don't add a space before the lang anymore
* we're more strict in CGI handling: the `invalid' CGI script now
triggers a 42 CGI ERROR
- Commit:
fa0299a26d6e0cc83135a7f46e74710a9d5a8efa
- From:
- Omar Polo <op@omarpolo.com>
- Date:
drop now unused trim_req_iri
- Commit:
efe7d180292726775fb3ae5e6af593490a264c60
- From:
- Omar Polo <op@omarpolo.com>
- Date:
new I/O handling on top of bufferevents
This is a big change in how gmid handles I/O. Initially we used a
hand-written loop over poll(2), that then was evolved into something
powered by libevent basic API. This meant that there were a lot of
small "asynchronous" function that did one step, eventually scheduling
the re-execution, that called each others in a chain.
The new implementation revolves completely around libevent'
bufferevents. It's more clear, as everything is implemented around the
client_read and client_write functions.
There is still space for improvements, like adding timeouts for one, but
it's solid enough to be committed as is and then further improved.
- Commit:
403c42204182515d7281d8c11084eef596f8a6ee
- From:
- Omar Polo <op@omarpolo.com>
- Date:
[cgi] switch from pipe(2) to socketpair(2)
We can't use normal pipe(2)s with libevent in some cases. Switch to
socketpair(2), which doesn't have the same problem.
This has the drawback that it doesn't prevent the CGI script from
reading stdout, for instance. (sockets are two-way, pipes only one-way)
- Commit:
b618111a681d278d0d72fbdb526542bebf8fce02
- From:
- Omar Polo <op@omarpolo.com>
- Date:
log more details for FastCGI errors
add the reported request id if there's a mismatch and both the gai error
and the errno value if getnameinfo fails.