aboutsummaryrefslogtreecommitdiff
path: root/src/dns
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-02-13 14:59:30 +0000
committerChristian Grothoff <christian@grothoff.org>2012-02-13 14:59:30 +0000
commit2a048bd51f0a5bab883f768365b86dd8c2cd29f5 (patch)
tree8cfed8591180344466416e25d6d10d84af0ffa70 /src/dns
parentd5ee578a6f6e3c234b52296ce6ba3792a04497ef (diff)
downloadgnunet-2a048bd51f0a5bab883f768365b86dd8c2cd29f5.tar.gz
gnunet-2a048bd51f0a5bab883f768365b86dd8c2cd29f5.zip
-extra checks
Diffstat (limited to 'src/dns')
-rw-r--r--src/dns/gnunet-service-dns.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/dns/gnunet-service-dns.c b/src/dns/gnunet-service-dns.c
index 371713eec..79beef831 100644
--- a/src/dns/gnunet-service-dns.c
+++ b/src/dns/gnunet-service-dns.c
@@ -1394,7 +1394,7 @@ receive_dns_request (void *cls GNUNET_UNUSED, struct GNUNET_MESH_Tunnel *tunnel,
1394 struct sockaddr_in6 v6; 1394 struct sockaddr_in6 v6;
1395 struct sockaddr *so; 1395 struct sockaddr *so;
1396 socklen_t salen; 1396 socklen_t salen;
1397 1397
1398 if (dlen < sizeof (struct GNUNET_TUN_DnsHeader)) 1398 if (dlen < sizeof (struct GNUNET_TUN_DnsHeader))
1399 { 1399 {
1400 GNUNET_break_op (0); 1400 GNUNET_break_op (0);
@@ -1410,7 +1410,6 @@ receive_dns_request (void *cls GNUNET_UNUSED, struct GNUNET_MESH_Tunnel *tunnel,
1410 memcpy (buf, dns, dlen); 1410 memcpy (buf, dns, dlen);
1411 dout = (struct GNUNET_TUN_DnsHeader*) buf; 1411 dout = (struct GNUNET_TUN_DnsHeader*) buf;
1412 dout->id = ts->my_id; 1412 dout->id = ts->my_id;
1413
1414 memset (&v4, 0, sizeof (v4)); 1413 memset (&v4, 0, sizeof (v4));
1415 memset (&v6, 0, sizeof (v6)); 1414 memset (&v6, 0, sizeof (v6));
1416 if (1 == inet_pton (AF_INET, dns_exit, &v4.sin_addr)) 1415 if (1 == inet_pton (AF_INET, dns_exit, &v4.sin_addr))
@@ -1423,8 +1422,8 @@ receive_dns_request (void *cls GNUNET_UNUSED, struct GNUNET_MESH_Tunnel *tunnel,
1423#endif 1422#endif
1424 so = (struct sockaddr *) &v4; 1423 so = (struct sockaddr *) &v4;
1425 ts->dnsout = get_request_socket (AF_INET); 1424 ts->dnsout = get_request_socket (AF_INET);
1426 } 1425 }
1427 if (1 == inet_pton (AF_INET6, dns_exit, &v6.sin6_addr)) 1426 else if (1 == inet_pton (AF_INET6, dns_exit, &v6.sin6_addr))
1428 { 1427 {
1429 salen = sizeof (v6); 1428 salen = sizeof (v6);
1430 v6.sin6_family = AF_INET6; 1429 v6.sin6_family = AF_INET6;
@@ -1435,6 +1434,11 @@ receive_dns_request (void *cls GNUNET_UNUSED, struct GNUNET_MESH_Tunnel *tunnel,
1435 so = (struct sockaddr *) &v6; 1434 so = (struct sockaddr *) &v6;
1436 ts->dnsout = get_request_socket (AF_INET6); 1435 ts->dnsout = get_request_socket (AF_INET6);
1437 } 1436 }
1437 else
1438 {
1439 GNUNET_break (0);
1440 return GNUNET_SYSERR;
1441 }
1438 if (NULL == ts->dnsout) 1442 if (NULL == ts->dnsout)
1439 { 1443 {
1440 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 1444 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -1542,8 +1546,12 @@ run (void *cls, struct GNUNET_SERVER_Handle *server,
1542 &dns_exit)) || 1546 &dns_exit)) ||
1543 ( (1 != inet_pton (AF_INET, dns_exit, &dns_exit4)) && 1547 ( (1 != inet_pton (AF_INET, dns_exit, &dns_exit4)) &&
1544 (1 != inet_pton (AF_INET6, dns_exit, &dns_exit6)) ) ) ) 1548 (1 != inet_pton (AF_INET6, dns_exit, &dns_exit6)) ) ) )
1549 {
1545 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 1550 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
1546 _("Configured to provide DNS exit, but no valid DNS server configured!\n")); 1551 _("Configured to provide DNS exit, but no valid DNS server configured!\n"));
1552 GNUNET_free_non_null (dns_exit);
1553 dns_exit = NULL;
1554 }
1547 1555
1548 helper_argv[0] = GNUNET_strdup ("gnunet-dns"); 1556 helper_argv[0] = GNUNET_strdup ("gnunet-dns");
1549 if (GNUNET_SYSERR == 1557 if (GNUNET_SYSERR ==