o Fix a problem with epoll() and reinit; problem report by Alexander Drozdov.
o Fix off-by-one errors in devpoll; from Ian Bell
o Make event_add not change any state if it fails; reported by Ian Bell.
+ o Fix a bug where headers arriving in multiple packets were not parsed; fix from Jiang Hong; test by me.
Changes in 1.4.0:
o allow \r or \n individually to separate HTTP headers instead of the standard "\r\n"; from Charles Kerr.
event_once(-1, EV_TIMEOUT, http_chunked_trickle_cb, state, &when);
}
+static void
+http_complete_write(int fd, short what, void *arg)
+{
+ struct bufferevent *bev = arg;
+ const char *http_request = "host\r\n"
+ "Connection: close\r\n"
+ "\r\n";
+ bufferevent_write(bev, http_request, strlen(http_request));
+}
+
static void
http_basic_test(void)
{
+ struct timeval tv;
struct bufferevent *bev;
int fd;
const char *http_request;
bev = bufferevent_new(fd, http_readcb, http_writecb,
http_errorcb, NULL);
+ /* first half of the http request */
http_request =
"GET /test HTTP/1.1\r\n"
- "Host: somehost\r\n"
- "Connection: close\r\n"
- "\r\n";
+ "Host: some";
bufferevent_write(bev, http_request, strlen(http_request));
+ timerclear(&tv);
+ tv.tv_usec = 10000;
+ event_once(-1, EV_TIMEOUT, http_complete_write, bev, &tv);
event_dispatch();
- if (test_ok != 2) {
+ if (test_ok != 3) {
fprintf(stdout, "FAILED\n");
exit(1);
}
evhttp_free(http);
- if (test_ok != 4) {
+ if (test_ok != 5) {
fprintf(stdout, "FAILED\n");
exit(1);
}