diff options
Diffstat (limited to 'src/nm-connectivity.c')
| -rw-r--r-- | src/nm-connectivity.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c index 4ccc5719..8861f261 100644 --- a/src/nm-connectivity.c +++ b/src/nm-connectivity.c @@ -199,7 +199,7 @@ multi_timer_cb (CURLM *multi, long timeout_ms, void *userdata) nm_clear_g_source (&priv->curl_timer); if (timeout_ms != -1) - priv->curl_timer = g_timeout_add (timeout_ms * 1000, curl_timeout_cb, self); + priv->curl_timer = g_timeout_add (timeout_ms, curl_timeout_cb, self); return 0; } @@ -257,12 +257,15 @@ multi_socket_cb (CURL *e_handle, curl_socket_t s, int what, void *userdata, void } else nm_clear_g_source (&fdp->ev); - if (what & CURL_POLL_IN) - condition |= G_IO_IN; - if (what & CURL_POLL_OUT) - condition |= G_IO_OUT; + if (what == CURL_POLL_IN) + condition = G_IO_IN; + else if (what == CURL_POLL_OUT) + condition = G_IO_OUT; + else if (condition == CURL_POLL_INOUT) + condition = G_IO_IN | G_IO_OUT; - fdp->ev = g_io_add_watch (fdp->ch, condition, curl_socketevent_cb, self); + if (condition) + fdp->ev = g_io_add_watch (fdp->ch, condition, curl_socketevent_cb, self); curl_multi_assign (priv->curl_mhandle, s, fdp); } |