aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-12-25 00:35:59 +0100
committerChristian Grothoff <christian@grothoff.org>2016-12-25 00:35:59 +0100
commit21fbcd668581c72ebb7bdc01908a4cdb11ad3d25 (patch)
tree5998dd72634c3208e65c37164506676511efc9c3
parent96b233995e41e0b6be65734ec5f29108ee017d31 (diff)
downloadgnunet-21fbcd668581c72ebb7bdc01908a4cdb11ad3d25.tar.gz
gnunet-21fbcd668581c72ebb7bdc01908a4cdb11ad3d25.zip
fix upnpc invocation for port mapping with upnpc
-rw-r--r--src/nat/gnunet-service-nat.c31
-rw-r--r--src/nat/gnunet-service-nat_mini.c5
2 files changed, 34 insertions, 2 deletions
diff --git a/src/nat/gnunet-service-nat.c b/src/nat/gnunet-service-nat.c
index bf3867ff2..9ad8db45a 100644
--- a/src/nat/gnunet-service-nat.c
+++ b/src/nat/gnunet-service-nat.c
@@ -1059,10 +1059,31 @@ upnp_addr_change_cb (void *cls,
1059 break; 1059 break;
1060 case GNUNET_NAT_ERROR_UPNPC_FAILED: 1060 case GNUNET_NAT_ERROR_UPNPC_FAILED:
1061 case GNUNET_NAT_ERROR_UPNPC_TIMEOUT: 1061 case GNUNET_NAT_ERROR_UPNPC_TIMEOUT:
1062 case GNUNET_NAT_ERROR_IPC_FAILURE:
1062 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1063 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1063 "Running upnpc failed: %d\n", 1064 "Running upnpc failed: %d\n",
1064 result); 1065 result);
1065 return; 1066 return;
1067 case GNUNET_NAT_ERROR_EXTERNAL_IP_UTILITY_NOT_FOUND:
1068 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
1069 "external-ip binary not found\n");
1070 return;
1071 case GNUNET_NAT_ERROR_EXTERNAL_IP_UTILITY_FAILED:
1072 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
1073 "external-ip binary could not be run\n");
1074 return;
1075 case GNUNET_NAT_ERROR_UPNPC_PORTMAP_FAILED:
1076 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
1077 "upnpc failed to create port mapping\n");
1078 return;
1079 case GNUNET_NAT_ERROR_EXTERNAL_IP_UTILITY_OUTPUT_INVALID:
1080 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1081 "Invalid output from upnpc\n");
1082 return;
1083 case GNUNET_NAT_ERROR_EXTERNAL_IP_ADDRESS_INVALID:
1084 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1085 "Invalid address returned by upnpc\n");
1086 return;
1066 default: 1087 default:
1067 GNUNET_break (0); /* should not be possible */ 1088 GNUNET_break (0); /* should not be possible */
1068 return; 1089 return;
@@ -1823,6 +1844,16 @@ shutdown_task (void *cls)
1823 GNUNET_SCHEDULER_cancel (se->timeout_task); 1844 GNUNET_SCHEDULER_cancel (se->timeout_task);
1824 GNUNET_free (se); 1845 GNUNET_free (se);
1825 } 1846 }
1847 if (NULL != probe_external_ip_task)
1848 {
1849 GNUNET_SCHEDULER_cancel (probe_external_ip_task);
1850 probe_external_ip_task = NULL;
1851 }
1852 if (NULL != probe_external_ip_op)
1853 {
1854 GNUNET_NAT_mini_get_external_ipv4_cancel_ (probe_external_ip_op);
1855 probe_external_ip_op = NULL;
1856 }
1826 if (NULL != scan_task) 1857 if (NULL != scan_task)
1827 { 1858 {
1828 GNUNET_SCHEDULER_cancel (scan_task); 1859 GNUNET_SCHEDULER_cancel (scan_task);
diff --git a/src/nat/gnunet-service-nat_mini.c b/src/nat/gnunet-service-nat_mini.c
index efdc0988b..e5b9d021b 100644
--- a/src/nat/gnunet-service-nat_mini.c
+++ b/src/nat/gnunet-service-nat_mini.c
@@ -139,7 +139,7 @@ read_external_ipv4 (void *cls)
139 eh->buf, 139 eh->buf,
140 &addr)) 140 &addr))
141 { 141 {
142 if (0 != addr.s_addr) 142 if (0 == addr.s_addr)
143 eh->ret = GNUNET_NAT_ERROR_EXTERNAL_IP_ADDRESS_INVALID; /* got 0.0.0.0 */ 143 eh->ret = GNUNET_NAT_ERROR_EXTERNAL_IP_ADDRESS_INVALID; /* got 0.0.0.0 */
144 else 144 else
145 eh->ret = GNUNET_NAT_ERROR_SUCCESS; 145 eh->ret = GNUNET_NAT_ERROR_SUCCESS;
@@ -578,7 +578,8 @@ process_map_output (void *cls,
578 if (GNUNET_YES != mini->did_map) 578 if (GNUNET_YES != mini->did_map)
579 mini->ac (mini->ac_cls, 579 mini->ac (mini->ac_cls,
580 GNUNET_SYSERR, 580 GNUNET_SYSERR,
581 NULL, 0, 581 NULL,
582 0,
582 GNUNET_NAT_ERROR_UPNPC_PORTMAP_FAILED); 583 GNUNET_NAT_ERROR_UPNPC_PORTMAP_FAILED);
583 if (NULL == mini->refresh_task) 584 if (NULL == mini->refresh_task)
584 mini->refresh_task 585 mini->refresh_task