aboutsummaryrefslogtreecommitdiff
path: root/contrib/libevent/bufferevent_filter.c
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2023-11-14 23:04:28 +0000
committerCy Schubert <cy@FreeBSD.org>2023-11-15 01:13:02 +0000
commitb50261e21f39a6c7249a49e7b60aa878c98512a8 (patch)
treec71edd5f4149807181c0a19df38f688f63730937 /contrib/libevent/bufferevent_filter.c
parentfa08011a521c1f15ca44d6a4f30a318d0a37a3a7 (diff)
parent5223d1d95fddcef6f9a36e264a5800bd907ade8b (diff)
downloadsrc-b50261e21f39a6c7249a49e7b60aa878c98512a8.tar.gz
src-b50261e21f39a6c7249a49e7b60aa878c98512a8.zip
Diffstat (limited to 'contrib/libevent/bufferevent_filter.c')
-rw-r--r--contrib/libevent/bufferevent_filter.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/contrib/libevent/bufferevent_filter.c b/contrib/libevent/bufferevent_filter.c
index d47f9452bbd2..a7bdedddfe1d 100644
--- a/contrib/libevent/bufferevent_filter.c
+++ b/contrib/libevent/bufferevent_filter.c
@@ -118,11 +118,11 @@ static inline struct bufferevent_filtered *
upcast(struct bufferevent *bev)
{
struct bufferevent_filtered *bev_f;
- if (bev->be_ops != &bufferevent_ops_filter)
+ if (!BEV_IS_FILTER(bev))
return NULL;
bev_f = (void*)( ((char*)bev) -
evutil_offsetof(struct bufferevent_filtered, bev.bev));
- EVUTIL_ASSERT(bev_f->bev.bev.be_ops == &bufferevent_ops_filter);
+ EVUTIL_ASSERT(BEV_IS_FILTER(&bev_f->bev.bev));
return bev_f;
}
@@ -160,7 +160,7 @@ be_null_filter(struct evbuffer *src, struct evbuffer *dst, ev_ssize_t lim,
enum bufferevent_flush_mode state, void *ctx)
{
(void)state;
- if (evbuffer_remove_buffer(src, dst, lim) == 0)
+ if (evbuffer_remove_buffer(src, dst, lim) >= 0)
return BEV_OK;
else
return BEV_ERROR;
@@ -605,6 +605,7 @@ be_filter_ctrl(struct bufferevent *bev, enum bufferevent_ctrl_op op,
data->ptr = bevf->underlying;
return 0;
case BEV_CTRL_SET_FD:
+ case BEV_CTRL_GET_FD:
bevf = upcast(bev);
if (bevf->underlying &&
@@ -612,9 +613,10 @@ be_filter_ctrl(struct bufferevent *bev, enum bufferevent_ctrl_op op,
bevf->underlying->be_ops->ctrl) {
return (bevf->underlying->be_ops->ctrl)(bevf->underlying, op, data);
}
+ EVUTIL_FALLTHROUGH;
- case BEV_CTRL_GET_FD:
case BEV_CTRL_CANCEL_ALL:
+ EVUTIL_FALLTHROUGH;
default:
return -1;
}