aboutsummaryrefslogtreecommitdiff
path: root/src/nat/test_nat.c
diff options
context:
space:
mode:
authorMoon <moon@140774ce-b5e7-0310-ab8b-a85725594a96>2010-10-09 13:53:47 +0000
committerMoon <moon@140774ce-b5e7-0310-ab8b-a85725594a96>2010-10-09 13:53:47 +0000
commit922a0672749ba9d496d1dd8f6596bb4f8035e71d (patch)
treeccd4b351bd5acd5cc3b8b1cc358c712d6c0c116d /src/nat/test_nat.c
parentdc24b5bf44bf8d9460b2571fe529403637aa3e16 (diff)
downloadgnunet-922a0672749ba9d496d1dd8f6596bb4f8035e71d.tar.gz
gnunet-922a0672749ba9d496d1dd8f6596bb4f8035e71d.zip
rework UPnP code to use GNUnet scheduler and network API
disable NAT-PMP support for now
Diffstat (limited to 'src/nat/test_nat.c')
-rw-r--r--src/nat/test_nat.c27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/nat/test_nat.c b/src/nat/test_nat.c
index f4f0b62ea..e42d76b7f 100644
--- a/src/nat/test_nat.c
+++ b/src/nat/test_nat.c
@@ -41,14 +41,13 @@
41#include "gnunet_nat_lib.h" 41#include "gnunet_nat_lib.h"
42 42
43/* Time to wait before stopping NAT, in seconds */ 43/* Time to wait before stopping NAT, in seconds */
44#define TIMEOUT 30 44#define TIMEOUT 60
45 45
46struct addr_cls 46struct addr_cls
47{ 47{
48 const struct sockaddr *addr; 48 const struct sockaddr *addr;
49 socklen_t addrlen; 49 socklen_t addrlen;
50}; 50};
51//typedef addr_cls addr_cls;
52 51
53static void 52static void
54addr_callback (void *cls, int add_remove, 53addr_callback (void *cls, int add_remove,
@@ -73,9 +72,7 @@ stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
73static int 72static int
74process_if (void *cls, 73process_if (void *cls,
75 const char *name, 74 const char *name,
76 int isDefault, 75 int isDefault, const struct sockaddr *addr, socklen_t addrlen)
77 const struct sockaddr *addr,
78 socklen_t addrlen)
79{ 76{
80 struct addr_cls *data = cls; 77 struct addr_cls *data = cls;
81 78
@@ -85,6 +82,12 @@ process_if (void *cls,
85 data->addrlen = addrlen; 82 data->addrlen = addrlen;
86 } 83 }
87 84
85 if (strcmp (name, "eth1") == 0 && addr->sa_family == AF_INET)
86 return GNUNET_SYSERR;
87
88 return GNUNET_OK;
89
90
88 if (isDefault && addr) 91 if (isDefault && addr)
89 return GNUNET_SYSERR; 92 return GNUNET_SYSERR;
90 else 93 else
@@ -107,7 +110,8 @@ run (void *cls,
107 GNUNET_OS_network_interfaces_list (process_if, &data); 110 GNUNET_OS_network_interfaces_list (process_if, &data);
108 if (!data.addr) 111 if (!data.addr)
109 { 112 {
110 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not find a valid interface address!\n"); 113 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
114 "Could not find a valid interface address!\n");
111 exit (GNUNET_SYSERR); 115 exit (GNUNET_SYSERR);
112 } 116 }
113 117
@@ -120,14 +124,17 @@ run (void *cls,
120 else 124 else
121 ((struct sockaddr_in6 *) addr)->sin6_port = htons (2086); 125 ((struct sockaddr_in6 *) addr)->sin6_port = htons (2086);
122 126
123 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Requesting NAT redirection from address %s...\n", GNUNET_a2s (addr, data.addrlen)); 127 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
128 "Requesting NAT redirection from address %s...\n",
129 GNUNET_a2s (addr, data.addrlen));
124 130
125 nat = GNUNET_NAT_register (sched, addr, data.addrlen, addr_callback, NULL); 131 nat = GNUNET_NAT_register (sched, addr, data.addrlen, addr_callback, NULL);
126 GNUNET_free (addr); 132 GNUNET_free (addr);
127 133
128 GNUNET_SCHEDULER_add_delayed (sched, 134 GNUNET_SCHEDULER_add_delayed (sched,
129 GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, TIMEOUT), 135 GNUNET_TIME_relative_multiply
130 stop, nat); 136 (GNUNET_TIME_UNIT_SECONDS, TIMEOUT), stop,
137 nat);
131} 138}
132 139
133int 140int