aboutsummaryrefslogtreecommitdiff
path: root/src/dns
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-01-02 15:29:08 +0000
committerChristian Grothoff <christian@grothoff.org>2012-01-02 15:29:08 +0000
commit2002c8dbf70f0809a6798fcaf3b8f9f23d181d35 (patch)
treec0f31acb594ba56273e8bb6872966c7c1fe99524 /src/dns
parent9bb646da61d4306cd7628c08b495b0ac5cf9435d (diff)
downloadgnunet-2002c8dbf70f0809a6798fcaf3b8f9f23d181d35.tar.gz
gnunet-2002c8dbf70f0809a6798fcaf3b8f9f23d181d35.zip
-starting with new DNS service code
Diffstat (limited to 'src/dns')
-rw-r--r--src/dns/gnunet-service-dns_new.c60
1 files changed, 48 insertions, 12 deletions
diff --git a/src/dns/gnunet-service-dns_new.c b/src/dns/gnunet-service-dns_new.c
index 65db9373b..cfc7bc4c7 100644
--- a/src/dns/gnunet-service-dns_new.c
+++ b/src/dns/gnunet-service-dns_new.c
@@ -485,6 +485,10 @@ run (void *cls, struct GNUNET_SERVER_Handle *server,
485 char *ipv6_mask; 485 char *ipv6_mask;
486 486
487 cfg = cfg_; 487 cfg = cfg_;
488 request_heap = GNUNET_CONTAINER_heap_create (GNUNET_CONTAINER_HEAP_ORDER_MIN);
489 request_map = GNUNET_CONTAINER_multihashmap_create (1024 * 16);
490 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &cleanup_task,
491 cls);
488 if (GNUNET_YES == 492 if (GNUNET_YES ==
489 GNUNET_CONFIGURATION_get_value_yesno (cfg_, "dns", "PROVIDE_EXIT")) 493 GNUNET_CONFIGURATION_get_value_yesno (cfg_, "dns", "PROVIDE_EXIT"))
490 { 494 {
@@ -498,27 +502,61 @@ run (void *cls, struct GNUNET_SERVER_Handle *server,
498 } 502 }
499 } 503 }
500 504
505 helper_argv[0] = GNUNET_strdup ("gnunet-dns");
501 if (GNUNET_SYSERR == 506 if (GNUNET_SYSERR ==
502 GNUNET_CONFIGURATION_get_value_string (cfg, "dns", "VIRTIFC", &ifc_name)) 507 GNUNET_CONFIGURATION_get_value_string (cfg, "dns", "IFNAME", &ifc_name))
503 { 508 {
504 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 509 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
505 "No entry 'VIRTDNS' in configuration!\n"); 510 "No entry 'IFNAME' in configuration!\n");
506 GNUNET_SCHEDULER_shutdown (); 511 GNUNET_SCHEDULER_shutdown ();
507 return; 512 return;
508 } 513 }
509 /* FIXME: get all config options we need here! */
510 request_heap = GNUNET_CONTAINER_heap_create (GNUNET_CONTAINER_HEAP_ORDER_MIN);
511 request_map = GNUNET_CONTAINER_multihashmap_create (1024 * 16);
512 GNUNET_snprintf (port_s,
513 sizeof (port_s),
514 "%u",
515 (unsigned int) dnsoutport);
516 helper_argv[0] = GNUNET_strdup ("gnunet-dns");
517 helper_argv[1] = ifc_name; 514 helper_argv[1] = ifc_name;
515 if ( (GNUNET_SYSERR ==
516 GNUNET_CONFIGURATION_get_value_string (cfg, "exit", "IPV6ADDR",
517 &ipv6addr)) )
518 {
519 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
520 "No entry 'IPV6ADDR' in configuration!\n");
521 GNUNET_SCHEDULER_shutdown ();
522 return;
523 }
518 helper_argv[2] = ipv6_addr; 524 helper_argv[2] = ipv6_addr;
525 if (GNUNET_SYSERR ==
526 GNUNET_CONFIGURATION_get_value_string (cfg, "exit", "IPV6PREFIX",
527 &ipv6prefix))
528 {
529 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
530 "No entry 'IPV6PREFIX' in configuration!\n");
531 GNUNET_SCHEDULER_shutdown ();
532 return;
533 }
519 helper_argv[3] = ipv6_mask; 534 helper_argv[3] = ipv6_mask;
535
536 if (GNUNET_SYSERR ==
537 GNUNET_CONFIGURATION_get_value_string (cfg, "exit", "IPV4ADDR",
538 &ipv4addr))
539 {
540 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
541 "No entry 'IPV4ADDR' in configuration!\n");
542 GNUNET_SCHEDULER_shutdown ();
543 return;
544 }
520 helper_argv[4] = ipv4_addr; 545 helper_argv[4] = ipv4_addr;
546 if (GNUNET_SYSERR ==
547 GNUNET_CONFIGURATION_get_value_string (cfg, "exit", "IPV4MASK",
548 &ipv4mask))
549 {
550 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
551 "No entry 'IPV4MASK' in configuration!\n");
552 GNUNET_SCHEDULER_shutdown ();
553 return;
554 }
521 helper_argv[5] = ipv4_mask; 555 helper_argv[5] = ipv4_mask;
556 GNUNET_snprintf (port_s,
557 sizeof (port_s),
558 "%u",
559 (unsigned int) dnsoutport);
522 helper_argv[6] = GNUNET_strdup (port_s); 560 helper_argv[6] = GNUNET_strdup (port_s);
523 helper_argv[7] = NULL; 561 helper_argv[7] = NULL;
524 hijacker = GNUNET_HELPER_start ("gnunet-helper-dns", 562 hijacker = GNUNET_HELPER_start ("gnunet-helper-dns",
@@ -527,8 +565,6 @@ run (void *cls, struct GNUNET_SERVER_Handle *server,
527 NULL); 565 NULL);
528 GNUNET_SERVER_add_handlers (server, handlers); 566 GNUNET_SERVER_add_handlers (server, handlers);
529 GNUNET_SERVER_disconnect_notify (server, &client_disconnect, NULL); 567 GNUNET_SERVER_disconnect_notify (server, &client_disconnect, NULL);
530 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &cleanup_task,
531 cls);
532} 568}
533 569
534 570