diff --git a/daemon/io.c b/daemon/io.c index 666e929bed120cad17cd2966bf81c5bec0298a58..f41aa38ddcedffe851215752324bf9b235e0e94a 100644 --- a/daemon/io.c +++ b/daemon/io.c @@ -224,7 +224,8 @@ static void tcp_recv(uv_stream_t *handle, ssize_t nread, const uv_buf_t *buf) uv_timer_start(&s->timeout, tcp_timeout_trigger, 1, KR_CONN_RTT_MAX/2); } } - /* Connection spawned more than one request, reset its deadline for next query. */ + /* Connection spawned at least one request, reset its deadline for next query. + * https://tools.ietf.org/html/rfc7766#section-6.2.3 */ } else if (ret > 0 && !s->outgoing) { uv_timer_again(&s->timeout); } diff --git a/daemon/io.h b/daemon/io.h index 5bf94d59f04381a906fe978617630bd50bff88f2..0979f4260d6ae8ccda14792042af4b015283b5fe 100644 --- a/daemon/io.h +++ b/daemon/io.h @@ -31,7 +31,7 @@ struct session { bool throttled; bool has_tls; uv_timer_t timeout; - struct qr_task *buffering; + struct qr_task *buffering; /**< Worker buffers the incomplete TCP query here. */ struct tls_ctx_t *tls_ctx; array_t(struct qr_task *) tasks; }; diff --git a/daemon/tls.h b/daemon/tls.h index c0d1836c8d8084e433954750046b6bcffedc69d7..d86d4c68212ba4b156c0d9495e27685aa5e19f53 100644 --- a/daemon/tls.h +++ b/daemon/tls.h @@ -46,7 +46,9 @@ void tls_free(struct tls_ctx_t* tls); /*! Push new data to TLS context for sending */ int tls_push(struct qr_task *task, uv_handle_t* handle, knot_pkt_t * pkt); -/*! Unwrap incoming data from a TLS stream and pass them to TCP session. */ +/*! Unwrap incoming data from a TLS stream and pass them to TCP session. + * @return the number of newly-completed requests (>=0) or an error code + */ int tls_process(struct worker_ctx *worker, uv_stream_t *handle, const uint8_t *buf, ssize_t nread); /*! Set TLS certificate and key from files. */ diff --git a/daemon/worker.h b/daemon/worker.h index bab10fe6f751de0bdb714df79dfb6944a5bd58e1..60fc163fa9881f49cd99ebaafa20b3202e14e3fe 100644 --- a/daemon/worker.h +++ b/daemon/worker.h @@ -41,7 +41,7 @@ int worker_submit(struct worker_ctx *worker, uv_handle_t *handle, knot_pkt_t *qu * Process incoming DNS/TCP message fragment(s). * If the fragment contains only a partial message, it is buffered. * If the fragment contains a complete query or completes current fragment, execute it. - * @return 0 or an error code + * @return the number of newly-completed requests (>=0) or an error code */ int worker_process_tcp(struct worker_ctx *worker, uv_stream_t *handle, const uint8_t *msg, ssize_t len);