diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-01-02 15:29:08 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-01-02 15:29:08 +0000 |
commit | 2002c8dbf70f0809a6798fcaf3b8f9f23d181d35 (patch) | |
tree | c0f31acb594ba56273e8bb6872966c7c1fe99524 /src/dns | |
parent | 9bb646da61d4306cd7628c08b495b0ac5cf9435d (diff) | |
download | gnunet-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.c | 60 |
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 | ||