diff options
Diffstat (limited to 'src/nat/test_nat.c')
-rw-r--r-- | src/nat/test_nat.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/nat/test_nat.c b/src/nat/test_nat.c index 6f2226929..c71623c2e 100644 --- a/src/nat/test_nat.c +++ b/src/nat/test_nat.c | |||
@@ -45,7 +45,7 @@ | |||
45 | 45 | ||
46 | struct addr_cls | 46 | struct addr_cls |
47 | { | 47 | { |
48 | const struct sockaddr *addr; | 48 | struct sockaddr *addr; |
49 | socklen_t addrlen; | 49 | socklen_t addrlen; |
50 | }; | 50 | }; |
51 | 51 | ||
@@ -76,22 +76,16 @@ process_if (void *cls, | |||
76 | { | 76 | { |
77 | struct addr_cls *data = cls; | 77 | struct addr_cls *data = cls; |
78 | 78 | ||
79 | if (addr) | 79 | if (addr && addrlen > 0) |
80 | { | 80 | { |
81 | data->addr = addr; | 81 | if (data->addr) |
82 | GNUNET_free (data->addr); | ||
83 | data->addr = memcpy (GNUNET_malloc (addrlen), addr, addrlen); | ||
82 | data->addrlen = addrlen; | 84 | data->addrlen = addrlen; |
85 | if (isDefault) | ||
86 | return GNUNET_SYSERR; | ||
83 | } | 87 | } |
84 | |||
85 | if (strcmp (name, "eth1") == 0 && addr->sa_family == AF_INET) | ||
86 | return GNUNET_SYSERR; | ||
87 | |||
88 | return GNUNET_OK; | 88 | return GNUNET_OK; |
89 | |||
90 | |||
91 | if (isDefault && addr) | ||
92 | return GNUNET_SYSERR; | ||
93 | else | ||
94 | return GNUNET_OK; | ||
95 | } | 89 | } |
96 | 90 | ||
97 | static void | 91 | static void |