From 5a8f3d96350e14c517e09a5a668d5f4382ca6155 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Philipp=20T=C3=B6lke?= Date: Wed, 27 Jul 2011 07:28:10 +0000 Subject: [PATCH] save the dns-tunnel --- src/vpn/gnunet-service-dns.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/vpn/gnunet-service-dns.c b/src/vpn/gnunet-service-dns.c index 168446156..01ac890ab 100644 --- a/src/vpn/gnunet-service-dns.c +++ b/src/vpn/gnunet-service-dns.c @@ -42,6 +42,11 @@ struct GNUNET_MESH_Handle *mesh_handle; +/** + * The tunnel to send queries + */ +static struct GNUNET_MESH_Tunnel* dns_tunnel; + /** * The UDP-Socket through which DNS-Resolves will be sent if they are not to be * sent through gnunet. The port of this socket will not be hijacked. @@ -261,13 +266,14 @@ send_mesh_query (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) struct tunnel_cls *cls_ = (struct tunnel_cls*)cls; - cls_->tunnel = GNUNET_MESH_peer_request_connect_by_type(mesh_handle, - GNUNET_TIME_UNIT_HOURS, - GNUNET_APPLICATION_TYPE_INTERNET_RESOLVER, - mesh_connect, - NULL, - cls_); - + if (NULL == dns_tunnel) + dns_tunnel = GNUNET_MESH_peer_request_connect_by_type(mesh_handle, + GNUNET_TIME_UNIT_HOURS, + GNUNET_APPLICATION_TYPE_INTERNET_RESOLVER, + mesh_connect, + NULL, + cls_); + cls_->tunnel = dns_tunnel; remote_pending[cls_->dns.s.id] = cls_; } -- 2.25.1