X-Git-Url: https://git.saurik.com/apple/configd.git/blobdiff_plain/edebe297f772e4cdd76278ebb777820466d2917b..085a2e6a11110e1303f99ce18f80f98e067cb876:/Plugins/KernelEventMonitor/ev_ipv4.c?ds=sidebyside diff --git a/Plugins/KernelEventMonitor/ev_ipv4.c b/Plugins/KernelEventMonitor/ev_ipv4.c index 40518e4..14e2979 100644 --- a/Plugins/KernelEventMonitor/ev_ipv4.c +++ b/Plugins/KernelEventMonitor/ev_ipv4.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002-2005, 2007 Apple Inc. All rights reserved. + * Copyright (c) 2002-2005, 2007, 2008, 2011 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -32,13 +32,15 @@ #include "cache.h" #include "ev_ipv4.h" -#ifndef kSCEntNetIPv4ARPCollision -#define kSCEntNetIPv4ARPCollision CFSTR("IPv4ARPCollision") -#endif /* kSCEntNetIPv4ARPCollision */ +#ifndef kSCEntNetIPv4ARPCollision +#define kSCEntNetIPv4ARPCollision CFSTR("IPv4ARPCollision") +#endif /* kSCEntNetIPv4ARPCollision */ -#ifndef kSCEntNetIPv4PortInUse -#define kSCEntNetIPv4PortInUse CFSTR("PortInUse") -#endif /* kSCEntNetIPv4PortInUse */ +#if !TARGET_OS_IPHONE +#ifndef kSCEntNetIPv4PortInUse +#define kSCEntNetIPv4PortInUse CFSTR("PortInUse") +#endif /* kSCEntNetIPv4PortInUse */ +#endif /* !TARGET_OS_IPHONE */ #define IP_FORMAT "%d.%d.%d.%d" #define IP_CH(ip, i) (((u_char *)(ip))[i]) @@ -70,7 +72,7 @@ appendAddress(CFMutableDictionaryRef dict, CFStringRef key, struct in_addr *addr static CFMutableDictionaryRef -getIF(CFStringRef key, CFMutableDictionaryRef oldIFs, CFMutableDictionaryRef newIFs) +copyIF(CFStringRef key, CFMutableDictionaryRef oldIFs, CFMutableDictionaryRef newIFs) { CFDictionaryRef dict = NULL; CFMutableDictionaryRef newDict = NULL; @@ -178,23 +180,28 @@ interface_update_ipv4(struct ifaddrs *ifap, const char *if_name) kSCEntNetIPv4); CFRelease(interface); - newDict = getIF(key, oldIFs, newIFs); + newDict = copyIF(key, oldIFs, newIFs); - sin = (struct sockaddr_in *)ifa->ifa_addr; + /* ALIGN: cast ok, this should be aligned (getifaddrs). */ + sin = (struct sockaddr_in *)(void *)ifa->ifa_addr; appendAddress(newDict, kSCPropNetIPv4Addresses, &sin->sin_addr); if (ifa->ifa_flags & IFF_POINTOPOINT) { struct sockaddr_in *dst; - dst = (struct sockaddr_in *)ifa->ifa_dstaddr; + /* ALIGN: cast ok, this should be aligned (getifaddrs). */ + dst = (struct sockaddr_in *)(void *)ifa->ifa_dstaddr; appendAddress(newDict, kSCPropNetIPv4DestAddresses, &dst->sin_addr); } else { struct sockaddr_in *brd; struct sockaddr_in *msk; - brd = (struct sockaddr_in *)ifa->ifa_broadaddr; - appendAddress(newDict, kSCPropNetIPv4BroadcastAddresses, &brd->sin_addr); - msk = (struct sockaddr_in *)ifa->ifa_netmask; + /* ALIGN: cast ok, this should be aligned (getifaddrs). */ + brd = (struct sockaddr_in *)(void *)ifa->ifa_broadaddr; + appendAddress(newDict, kSCPropNetIPv4BroadcastAddresses,&brd->sin_addr); + + /* ALIGN: cast ok, this should be aligned (getifaddrs). */ + msk = (struct sockaddr_in *)(void *)ifa->ifa_netmask; appendAddress(newDict, kSCPropNetIPv4SubnetMasks, &msk->sin_addr); } @@ -212,7 +219,7 @@ interface_update_ipv4(struct ifaddrs *ifap, const char *if_name) kSCEntNetIPv4); CFRelease(interface); - newDict = getIF(key, oldIFs, newIFs); + newDict = copyIF(key, oldIFs, newIFs); CFDictionarySetValue(newIFs, key, newDict); CFRelease(newDict); @@ -260,6 +267,7 @@ interface_collision_ipv4(const char *if_name, struct in_addr ip_addr, int hw_len return; } +#if !TARGET_OS_IPHONE __private_extern__ void port_in_use_ipv4(uint16_t port, pid_t req_pid) @@ -277,3 +285,4 @@ port_in_use_ipv4(uint16_t port, pid_t req_pid) CFRelease(key); return; } +#endif /* !TARGET_OS_IPHONE */