]> git.saurik.com Git - apple/configd.git/blobdiff - Plugins/KernelEventMonitor/ev_ipv4.c
configd-453.19.tar.gz
[apple/configd.git] / Plugins / KernelEventMonitor / ev_ipv4.c
index 40518e47cb9c60a9e47ca5e828c17ddeb803ccaa..14e2979db2089ed6156152b9a8f163cb45147dad 100644 (file)
@@ -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@
  * 
 #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 */