aboutsummaryrefslogtreecommitdiff
path: root/src/nat/nat.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nat/nat.c')
-rw-r--r--src/nat/nat.c24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/nat/nat.c b/src/nat/nat.c
index 1c60e4e0d..042a0f686 100644
--- a/src/nat/nat.c
+++ b/src/nat/nat.c
@@ -603,7 +603,8 @@ add_to_address_list (struct GNUNET_NAT_Handle *h,
603 */ 603 */
604static void 604static void
605add_ip_to_address_list (struct GNUNET_NAT_Handle *h, 605add_ip_to_address_list (struct GNUNET_NAT_Handle *h,
606 enum LocalAddressSource src, const void *addr, 606 enum LocalAddressSource src,
607 const void *addr,
607 socklen_t addrlen) 608 socklen_t addrlen)
608{ 609{
609 struct sockaddr_in s4; 610 struct sockaddr_in s4;
@@ -913,10 +914,12 @@ process_interfaces (void *cls,
913 GNUNET_break (0); 914 GNUNET_break (0);
914 return GNUNET_OK; 915 return GNUNET_OK;
915 } 916 }
916 if ((h->internal_address == NULL) && (h->server_proc == NULL) && 917 if ( (h->internal_address == NULL) &&
917 (h->server_read_task == NULL) && 918 (h->server_proc == NULL) &&
918 (GNUNET_YES == isDefault) && ((addr->sa_family == AF_INET) || 919 (h->server_read_task == NULL) &&
919 (addr->sa_family == AF_INET6))) 920 (GNUNET_YES == isDefault) &&
921 ( (addr->sa_family == AF_INET) ||
922 (addr->sa_family == AF_INET6) ) )
920 { 923 {
921 /* no internal address configured, but we found a "default" 924 /* no internal address configured, but we found a "default"
922 * interface, try using that as our 'internal' address */ 925 * interface, try using that as our 'internal' address */
@@ -938,12 +941,8 @@ static void
938restart_nat_server (void *cls) 941restart_nat_server (void *cls)
939{ 942{
940 struct GNUNET_NAT_Handle *h = cls; 943 struct GNUNET_NAT_Handle *h = cls;
941 const struct GNUNET_SCHEDULER_TaskContext *tc;
942 944
943 h->server_read_task = NULL; 945 h->server_read_task = NULL;
944 tc = GNUNET_SCHEDULER_get_task_context ();
945 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
946 return;
947 start_gnunet_nat_server (h); 946 start_gnunet_nat_server (h);
948} 947}
949 948
@@ -965,12 +964,8 @@ nat_server_read (void *cls)
965 int port; 964 int port;
966 const char *port_start; 965 const char *port_start;
967 struct sockaddr_in sin_addr; 966 struct sockaddr_in sin_addr;
968 const struct GNUNET_SCHEDULER_TaskContext *tc;
969 967
970 h->server_read_task = NULL; 968 h->server_read_task = NULL;
971 tc = GNUNET_SCHEDULER_get_task_context ();
972 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
973 return;
974 memset (mybuf, 0, sizeof (mybuf)); 969 memset (mybuf, 0, sizeof (mybuf));
975 bytes = 970 bytes =
976 GNUNET_DISK_file_read (h->server_stdout_handle, mybuf, sizeof (mybuf)); 971 GNUNET_DISK_file_read (h->server_stdout_handle, mybuf, sizeof (mybuf));
@@ -1036,7 +1031,8 @@ nat_server_read (void *cls)
1036 sizeof (sin_addr)); 1031 sizeof (sin_addr));
1037 h->server_read_task = 1032 h->server_read_task =
1038 GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, 1033 GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
1039 h->server_stdout_handle, &nat_server_read, 1034 h->server_stdout_handle,
1035 &nat_server_read,
1040 h); 1036 h);
1041} 1037}
1042 1038