]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon: tls forwarding; fix erroneus task processing when io errors occur
authorGrigorii Demidov <grigorii.demidov@nic.cz>
Thu, 18 Jan 2018 14:37:30 +0000 (15:37 +0100)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Thu, 18 Jan 2018 15:16:53 +0000 (16:16 +0100)
daemon/worker.c

index 9a86fe76422081cb531575eb1f3d5f1e0a4568ad..dbd037456842552cdfcd96a10c86fc5a847b12f2 100644 (file)
@@ -808,7 +808,6 @@ static int qr_task_on_send(struct qr_task *task, uv_handle_t *handle, int status
                         * (for instance: tls; send->tls_push->too many non-critical errors->
                         * on_send with nonzero status->re-add to waiting->send->etc).*/
                        if (status != 0) {
-                               qr_task_finalize(task, KR_STATE_FAIL);
                                if (session->outgoing) {
                                        qr_task_finalize(task, KR_STATE_FAIL);
                                } else {
@@ -816,7 +815,6 @@ static int qr_task_on_send(struct qr_task *task, uv_handle_t *handle, int status
                                        task->ctx->source.session = NULL;
                                }
                                session_del_tasks(session, task);
-                               qr_task_unref(task);
                        }
                        if (session->waiting.len > 0) {
                                struct qr_task *t = session->waiting.at[0];