]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon: TLS-handshake timeout timer was not properly activated; fix
authorGrigorii Demidov <grigorii.demidov@nic.cz>
Fri, 12 Jan 2018 12:54:37 +0000 (13:54 +0100)
committerGrigorii Demidov <grigorii.demidov@nic.cz>
Fri, 12 Jan 2018 12:54:37 +0000 (13:54 +0100)
daemon/worker.c

index 1b06bad8b09193d0f1b29a021608a3c2b97f8b2a..0b3ea89fd3877450e65c6c6eaf075bb6cc9cb127 100644 (file)
@@ -1123,6 +1123,7 @@ static void on_connect(uv_connect_t *req, int status)
                if (ret == kr_error(EAGAIN)) {
                        iorequest_release(worker, req);
                        io_start_read(session->handle);
+                       timer_start(session, on_tcp_watchdog_timeout, MAX_TCP_INACTIVITY, 0);
                        return;
                }
        }
@@ -1194,6 +1195,9 @@ static void on_tcp_watchdog_timeout(uv_timer_t *timer)
        struct worker_ctx *worker = get_worker();
 
        if (session->outgoing) {
+               if (session->has_tls) {
+                       worker_del_tcp_waiting(worker, &session->peer.ip);
+               }
                worker_del_tcp_connected(worker, &session->peer.ip);
 
                while (session->waiting.len > 0) {