From: Nick Mathewson Date: Wed, 6 Jan 2010 22:59:44 +0000 (-0500) Subject: Merge branch 'ratelimit' X-Git-Tag: release-2.0.4-alpha~93 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ba2945f9314fa2f81afe09284d21724d2b5dc31d;p=libevent Merge branch 'ratelimit' Conflicts: bufferevent_async.c --- ba2945f9314fa2f81afe09284d21724d2b5dc31d diff --cc bufferevent_async.c index 253a972b,0e1e259d..3d21d4c1 --- a/bufferevent_async.c +++ b/bufferevent_async.c @@@ -304,7 -325,9 +325,8 @@@ read_complete(struct event_overlapped * if (ok && nbytes) { BEV_RESET_GENERIC_READ_TIMEOUT(bev); + _bufferevent_decrement_read_buckets(&bev_a->bev, nbytes); - if (bev->readcb != NULL && - evbuffer_get_length(bev->input) >= bev->wm_read.low) + if (evbuffer_get_length(bev->input) >= bev->wm_read.low) _bufferevent_run_readcb(bev); bev_async_consider_reading(bev_a); } else if (!ok) { @@@ -336,7 -359,9 +358,8 @@@ write_complete(struct event_overlapped if (ok && nbytes) { BEV_RESET_GENERIC_WRITE_TIMEOUT(bev); + _bufferevent_decrement_write_buckets(&bev_a->bev, nbytes); - if (bev->writecb != NULL && - evbuffer_get_length(bev->output) <= bev->wm_write.low) + if (evbuffer_get_length(bev->output) <= bev->wm_write.low) _bufferevent_run_writecb(bev); bev_async_consider_writing(bev_a); } else if (!ok) { diff --cc bufferevent_sock.c index 617c9110,d1b5792a..30bc44bc --- a/bufferevent_sock.c +++ b/bufferevent_sock.c @@@ -163,9 -171,11 +171,10 @@@ bufferevent_readcb(evutil_socket_t fd, if (res <= 0) goto error; + _bufferevent_decrement_read_buckets(bufev_p, res); /* Invoke the user callback - must always be called last */ - if (evbuffer_get_length(input) >= bufev->wm_read.low && - bufev->readcb != NULL) + if (evbuffer_get_length(input) >= bufev->wm_read.low) _bufferevent_run_readcb(bufev); goto done;