diff options
Diffstat (limited to 'src/vpn/gnunet-service-dns.c')
-rw-r--r-- | src/vpn/gnunet-service-dns.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/vpn/gnunet-service-dns.c b/src/vpn/gnunet-service-dns.c index 9fb88bed2..d861e32b2 100644 --- a/src/vpn/gnunet-service-dns.c +++ b/src/vpn/gnunet-service-dns.c | |||
@@ -257,6 +257,9 @@ send_mesh_query (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
257 | 257 | ||
258 | static void | 258 | static void |
259 | send_rev_query(void * cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { | 259 | send_rev_query(void * cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { |
260 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | ||
261 | return; | ||
262 | |||
260 | struct dns_pkt_parsed* pdns = (struct dns_pkt_parsed*) cls; | 263 | struct dns_pkt_parsed* pdns = (struct dns_pkt_parsed*) cls; |
261 | 264 | ||
262 | unsigned short id = pdns->s.id; | 265 | unsigned short id = pdns->s.id; |
@@ -504,7 +507,8 @@ receive_query(void *cls, | |||
504 | } | 507 | } |
505 | 508 | ||
506 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Query for '%s'; namelen=%d\n", pdns->queries[0]->name, pdns->queries[0]->namelen); | 509 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Query for '%s'; namelen=%d\n", pdns->queries[0]->name, pdns->queries[0]->namelen); |
507 | /* The query is for a PTR of a previosly resolved virtual IP */ | 510 | |
511 | /* This is a PTR-Query. Check if it is for "our" network */ | ||
508 | if (htons(pdns->queries[0]->qtype) == 12 && | 512 | if (htons(pdns->queries[0]->qtype) == 12 && |
509 | 74 == pdns->queries[0]->namelen) | 513 | 74 == pdns->queries[0]->namelen) |
510 | { | 514 | { |
@@ -973,10 +977,11 @@ run (void *cls, | |||
973 | const struct GNUNET_CONFIGURATION_Handle *cfg_) | 977 | const struct GNUNET_CONFIGURATION_Handle *cfg_) |
974 | { | 978 | { |
975 | static const struct GNUNET_SERVER_MessageHandler handlers[] = { | 979 | static const struct GNUNET_SERVER_MessageHandler handlers[] = { |
976 | /* callback, cls, type, size */ | 980 | /* callback, cls, type, size */ |
977 | {&receive_query, NULL, GNUNET_MESSAGE_TYPE_LOCAL_QUERY_DNS, 0}, | 981 | {&receive_query, NULL, GNUNET_MESSAGE_TYPE_LOCAL_QUERY_DNS, 0}, |
978 | {&rehijack, NULL, GNUNET_MESSAGE_TYPE_REHIJACK, sizeof(struct GNUNET_MessageHeader)}, | 982 | {&rehijack, NULL, GNUNET_MESSAGE_TYPE_REHIJACK, |
979 | {NULL, NULL, 0, 0} | 983 | sizeof (struct GNUNET_MessageHeader)}, |
984 | {NULL, NULL, 0, 0} | ||
980 | }; | 985 | }; |
981 | 986 | ||
982 | 987 | ||
@@ -995,20 +1000,20 @@ run (void *cls, | |||
995 | cfg = cfg_; | 1000 | cfg = cfg_; |
996 | 1001 | ||
997 | unsigned int i; | 1002 | unsigned int i; |
998 | for (i = 0; i < 65536; i++) { | 1003 | for (i = 0; i < 65536; i++) |
1004 | { | ||
999 | query_states[i].valid = GNUNET_NO; | 1005 | query_states[i].valid = GNUNET_NO; |
1000 | } | 1006 | } |
1001 | 1007 | ||
1002 | dht = GNUNET_DHT_connect(cfg, 1024); | 1008 | dht = GNUNET_DHT_connect (cfg, 1024); |
1003 | 1009 | ||
1004 | open_port(); | 1010 | open_port (); |
1005 | 1011 | ||
1006 | GNUNET_SCHEDULER_add_now (publish_names, NULL); | 1012 | GNUNET_SCHEDULER_add_now (publish_names, NULL); |
1007 | 1013 | ||
1008 | GNUNET_SERVER_add_handlers (server, handlers); | 1014 | GNUNET_SERVER_add_handlers (server, handlers); |
1009 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, | 1015 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, |
1010 | &cleanup_task, | 1016 | &cleanup_task, cls); |
1011 | cls); | ||
1012 | } | 1017 | } |
1013 | 1018 | ||
1014 | /** | 1019 | /** |