diff options
Diffstat (limited to 'src/curl')
| -rw-r--r-- | src/curl/curl.c | 6 | ||||
| -rw-r--r-- | src/curl/curl.h | 1 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/curl/curl.c b/src/curl/curl.c index d317224..e074643 100644 --- a/src/curl/curl.c +++ b/src/curl/curl.c @@ -19,14 +19,16 @@ static void curl_socket_action_callback(struct ev_loop *loop, ev_io *w, s32 reve curl->handle_events(curl->userdata, curl); } +// TODO: ev_io_set static void set_sock(struct nn_curl *curl, s32 what) { - if (curl->event.active) { + if (curl->started) { ev_io_stop(curl->loop->ev, &curl->event); } s32 action = (what & CURL_POLL_IN ? EV_READ : 0) | (what & CURL_POLL_OUT ? EV_WRITE : 0); ev_io_init(&curl->event, curl_socket_action_callback, curl->sock, action); ev_io_start(curl->loop->ev, &curl->event); + curl->started = true; } static s32 sock_callback(CURL *e, curl_socket_t s, s32 what, void *cbp, void *sockp) @@ -102,7 +104,7 @@ bool nn_curl_init(struct nn_curl *curl) curl->loop = NULL; curl->event.data = curl; - curl->event.active = 0; + curl->started = false; curl->timer_started = false; curl->added = false; diff --git a/src/curl/curl.h b/src/curl/curl.h index 7a5e31f..dd5798a 100644 --- a/src/curl/curl.h +++ b/src/curl/curl.h @@ -8,6 +8,7 @@ struct nn_curl { struct nn_event_loop *loop; ev_io event; + bool started; ev_timer timer; bool timer_started; CURL *handle; |