aboutsummaryrefslogtreecommitdiff
path: root/src/nt/nt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nt/nt.c')
-rw-r--r--src/nt/nt.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/nt/nt.c b/src/nt/nt.c
index 3b95738e8..45d24520f 100644
--- a/src/nt/nt.c
+++ b/src/nt/nt.c
@@ -200,15 +200,21 @@ interface_proc (void *cls,
200 net->netmask = (struct sockaddr *) &tmp[1]; 200 net->netmask = (struct sockaddr *) &tmp[1];
201 net->length = addrlen; 201 net->length = addrlen;
202 202
203 memset (&network4, 0, sizeof (network4)); 203 memset (&network4,
204 0,
205 sizeof (network4));
204 network4.sin_family = AF_INET; 206 network4.sin_family = AF_INET;
205#if HAVE_SOCKADDR_IN_SIN_LEN 207#if HAVE_SOCKADDR_IN_SIN_LEN
206 network4.sin_len = sizeof (network4); 208 network4.sin_len = sizeof (network4);
207#endif 209#endif
208 network4.sin_addr.s_addr = (addr4->sin_addr.s_addr & netmask4->sin_addr.s_addr); 210 network4.sin_addr.s_addr = (addr4->sin_addr.s_addr & netmask4->sin_addr.s_addr);
209 211
210 GNUNET_memcpy (net->netmask, netmask4, sizeof (struct sockaddr_in)); 212 GNUNET_memcpy (net->netmask,
211 GNUNET_memcpy (net->network, &network4, sizeof (struct sockaddr_in)); 213 netmask4,
214 sizeof (struct sockaddr_in));
215 GNUNET_memcpy (net->network,
216 &network4,
217 sizeof (struct sockaddr_in));
212 } 218 }
213 219
214 if (addr->sa_family == AF_INET6) 220 if (addr->sa_family == AF_INET6)
@@ -236,8 +242,12 @@ interface_proc (void *cls,
236 for (c = 0; c < 4; c++) 242 for (c = 0; c < 4; c++)
237 net_elem[c] = addr_elem[c] & mask_elem[c]; 243 net_elem[c] = addr_elem[c] & mask_elem[c];
238 244
239 GNUNET_memcpy (net->netmask, netmask6, sizeof (struct sockaddr_in6)); 245 GNUNET_memcpy (net->netmask,
240 GNUNET_memcpy (net->network, &network6, sizeof (struct sockaddr_in6)); 246 netmask6,
247 sizeof (struct sockaddr_in6));
248 GNUNET_memcpy (net->network,
249 &network6,
250 sizeof (struct sockaddr_in6));
241 } 251 }
242 if (NULL == net) 252 if (NULL == net)
243 return GNUNET_OK; /* odd / unsupported address family */ 253 return GNUNET_OK; /* odd / unsupported address family */
@@ -291,8 +301,8 @@ get_addresses (void *cls)
291 */ 301 */
292enum GNUNET_NetworkType 302enum GNUNET_NetworkType
293GNUNET_NT_scanner_get_type (struct GNUNET_NT_InterfaceScanner *is, 303GNUNET_NT_scanner_get_type (struct GNUNET_NT_InterfaceScanner *is,
294 const struct sockaddr *addr, 304 const struct sockaddr *addr,
295 socklen_t addrlen) 305 socklen_t addrlen)
296{ 306{
297 struct NT_Network *cur = is->net_head; 307 struct NT_Network *cur = is->net_head;
298 enum GNUNET_NetworkType type = GNUNET_NT_UNSPECIFIED; 308 enum GNUNET_NetworkType type = GNUNET_NT_UNSPECIFIED;