mirror of
https://github.com/libevent/libevent.git
synced 2025-01-31 09:12:55 +08:00
Merge remote-tracking branch 'ellzey/bev_ratelimit_get_token_cfg'
This commit is contained in:
commit
600c58656a
@ -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*/
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user