summaryrefslogtreecommitdiff
path: root/bufferevent_async.c
diff options
context:
space:
mode:
authorAzat Khuzhin <a3at.mail@gmail.com>2018-11-11 21:51:46 +0300
committerAzat Khuzhin <a3at.mail@gmail.com>2018-11-13 22:29:08 +0300
commite73875dfe2f2644c80823b06ebedb2c8fec1a845 (patch)
treeb27244f969ce5dd83c4f652a6f97181ba6f15293 /bufferevent_async.c
parenta54c0349119cde9a000ebb84840c4a4d7ed3d726 (diff)
downloadlibevent-e73875dfe2f2644c80823b06ebedb2c8fec1a845.tar.gz
bev_async: set "ok" on setfd if fd>=0 (like we do during creation)
Otherwise after .setfd, .enable will not work.
Diffstat (limited to 'bufferevent_async.c')
-rw-r--r--bufferevent_async.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/bufferevent_async.c b/bufferevent_async.c
index 3f06341f..1cd9e5c3 100644
--- a/bufferevent_async.c
+++ b/bufferevent_async.c
@@ -663,6 +663,7 @@ be_async_ctrl(struct bufferevent *bev, enum bufferevent_ctrl_op op,
data->fd = evbuffer_overlapped_get_fd_(bev->input);
return 0;
case BEV_CTRL_SET_FD: {
+ struct bufferevent_async *bev_a = upcast(bev);
struct event_iocp_port *iocp;
if (data->fd == evbuffer_overlapped_get_fd_(bev->input))
@@ -675,6 +676,7 @@ be_async_ctrl(struct bufferevent *bev, enum bufferevent_ctrl_op op,
}
evbuffer_overlapped_set_fd_(bev->input, data->fd);
evbuffer_overlapped_set_fd_(bev->output, data->fd);
+ bev_a->ok = data->fd >= 0;
return 0;
}
case BEV_CTRL_CANCEL_ALL: {