]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon/io: use recvmmsg for master sockets, recvmsg otherwise
authorMarek Vavruša <marek.vavrusa@nic.cz>
Wed, 15 Jul 2015 15:19:43 +0000 (17:19 +0200)
committerMarek Vavruša <marek.vavrusa@nic.cz>
Wed, 15 Jul 2015 15:20:15 +0000 (17:20 +0200)
this applies for Linux with recvmmsg() support only

daemon/io.c

index 4457f456e5fc24cd41d2ee6b170c083476436307..f4073fba1ad4885a6152dc57a7eece4b7a0c8e48 100644 (file)
@@ -41,7 +41,11 @@ static void handle_getbuf(uv_handle_t* handle, size_t suggested_size, uv_buf_t*
        uv_loop_t *loop = handle->loop;
        struct worker_ctx *worker = loop->data;
        buf->base = (char *)worker->wire_buf;
-       buf->len = sizeof(worker->wire_buf);
+       /* Use recvmmsg() on master sockets if possible. */
+       if (handle->data)
+               buf->len = suggested_size;
+       else
+               buf->len = sizeof(worker->wire_buf);
 }
 
 void udp_recv(uv_udp_t *handle, ssize_t nread, const uv_buf_t *buf,