Merge remote-tracking branch 'ellzey/bev_ratelimit_get_token_cfg'

This commit is contained in:
Nick Mathewson 2013-07-30 10:44:42 -04:00
commit 600c58656a
3 changed files with 21 additions and 0 deletions

View File

@ -924,6 +924,23 @@ bufferevent_get_max_to_write(struct bufferevent *bev)
return r;
}
const struct ev_token_bucket_cfg *
bufferevent_get_token_bucket_cfg(const struct bufferevent *bev) {
struct bufferevent_private *bufev_private = BEV_UPCAST(bev);
struct ev_token_bucket_cfg *cfg;
BEV_LOCK(bev);
if (bufev_private->rate_limiting) {
cfg = bufev_private->rate_limiting->cfg;
} else {
cfg = NULL;
}
BEV_UNLOCK(bev);
return cfg;
}
/* Mostly you don't want to use this function from inside libevent;
* bufferevent_get_read_max_() is more likely what you want*/

View File

@ -795,6 +795,8 @@ ev_ssize_t bufferevent_get_write_limit(struct bufferevent *bev);
ev_ssize_t bufferevent_get_max_to_read(struct bufferevent *bev);
ev_ssize_t bufferevent_get_max_to_write(struct bufferevent *bev);
const struct ev_token_bucket_cfg *bufferevent_get_token_bucket_cfg(const struct bufferevent * bev);
/**
@name Group Rate limit inspection

View File

@ -187,6 +187,8 @@ echo_listenercb(struct evconnlistener *listener, evutil_socket_t newsock,
struct event *check_event =
event_new(base, -1, EV_PERSIST, check_bucket_levels_cb, bev);
bufferevent_set_rate_limit(bev, conn_bucket_cfg);
assert(bufferevent_get_token_bucket_cfg(bev) != NULL);
event_add(check_event, ms100_common);
}
if (ratelim_group)