"struct sockaddr_in"s and "struct sockaddr_in6"s are sufficient to serve
[obnox/wireshark/wip.git] / pcap-util.c
index 6f3a7e6fe2484a07d7bd3daf88063768b6bf4ad8..2f3e80e6cd2cb9ec5ad603655dd4e214f2c18dcb 100644 (file)
@@ -198,14 +198,16 @@ void
 if_info_add_address(if_info_t *if_info, struct sockaddr *addr)
 {
        if_addr_t *ip_addr;
+       struct sockaddr_in *ai;
 
        switch (addr->sa_family) {
 
        case AF_INET:
+               ai = (struct sockaddr_in *)addr;
                ip_addr = g_malloc(sizeof(*ip_addr));
                ip_addr->family = FAM_IPv4;
-               memcpy((void *)&ip_addr->ip_addr.ip4_addr,
-                   (void *)&addr->sa_data, 4);
+               ip_addr->ip_addr.ip4_addr =
+                   *((guint32 *)&(ai->sin_addr.s_addr));
                if_info->ip_addr = g_slist_append(if_info->ip_addr, ip_addr);
                break;