summaryrefslogtreecommitdiff
path: root/src/curl
diff options
context:
space:
mode:
Diffstat (limited to 'src/curl')
-rw-r--r--src/curl/curl.c6
-rw-r--r--src/curl/curl.h1
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;