static int be_async_flush(struct bufferevent *, short, enum bufferevent_flush_mode);
static int be_async_ctrl(struct bufferevent *, enum bufferevent_ctrl_op, union bufferevent_ctrl_data *);
-const struct bufferevent_ops bufferevent_ops_async = {
- "socket_async",
- 0,
- be_async_enable,
- be_async_disable,
- be_async_destruct,
- _bufferevent_generic_adj_timeouts,
- be_async_flush,
- be_async_ctrl,
-};
-
struct bufferevent_async {
struct bufferevent_private bev;
struct event_overlapped connect_overlapped;
unsigned ok : 1;
};
+const struct bufferevent_ops bufferevent_ops_async = {
+ "socket_async",
+ evutil_offsetof(struct bufferevent_async, bev.bev),
+ be_async_enable,
+ be_async_disable,
+ be_async_destruct,
+ _bufferevent_generic_adj_timeouts,
+ be_async_flush,
+ be_async_ctrl,
+};
+
static inline struct bufferevent_async *
upcast(struct bufferevent *bev)
{
const struct bufferevent_ops bufferevent_ops_filter = {
"filter",
- evutil_offsetof(struct bufferevent_filtered, bev),
+ evutil_offsetof(struct bufferevent_filtered, bev.bev),
be_filter_enable,
be_filter_disable,
be_filter_destruct,
const struct bufferevent_ops bufferevent_ops_openssl = {
"ssl",
- evutil_offsetof(struct bufferevent_openssl, bev),
+ evutil_offsetof(struct bufferevent_openssl, bev.bev),
be_openssl_enable,
be_openssl_disable,
be_openssl_destruct,
const struct bufferevent_ops bufferevent_ops_pair = {
"pair_elt",
- evutil_offsetof(struct bufferevent_pair, bev),
+ evutil_offsetof(struct bufferevent_pair, bev.bev),
be_pair_enable,
be_pair_disable,
be_pair_destruct,
const struct bufferevent_ops bufferevent_ops_socket = {
"socket",
- 0,
+ evutil_offsetof(struct bufferevent_private, bev),
be_socket_enable,
be_socket_disable,
be_socket_destruct,