--- rarpd.c.orig +++ rarpd.c @@ -47,6 +47,14 @@ #endif void usage(void) __attribute__((noreturn)); +struct kern_ifaddr +{ + struct kern_ifaddr *next; + __u32 prefix; + __u32 mask; + __u32 local; +}; + struct iflink { struct iflink *next; @@ -54,17 +62,9 @@ int hatype; unsigned char lladdr[16]; unsigned char name[IFNAMSIZ]; - struct ifaddr *ifa_list; + struct kern_ifaddr *ifa_list; } *ifl_list; -struct ifaddr -{ - struct ifaddr *next; - __u32 prefix; - __u32 mask; - __u32 local; -}; - struct rarp_map { struct rarp_map *next; @@ -91,7 +91,7 @@ int fd; struct ifreq *ifrp, *ifend; struct iflink *ifl; - struct ifaddr *ifa; + struct kern_ifaddr *ifa; struct ifconf ifc; struct ifreq ibuf[256]; @@ -182,7 +182,7 @@ if (ifa == NULL) { if (mask == 0 || prefix == 0) continue; - ifa = (struct ifaddr*)malloc(sizeof(*ifa)); + ifa = (struct kern_ifaddr*)malloc(sizeof(*ifa)); memset(ifa, 0, sizeof(*ifa)); ifa->local = addr; ifa->prefix = prefix; @@ -238,10 +238,10 @@ return dent != NULL; } -struct ifaddr *select_ipaddr(int ifindex, __u32 *sel_addr, __u32 **alist) +struct kern_ifaddr *select_ipaddr(int ifindex, __u32 *sel_addr, __u32 **alist) { struct iflink *ifl; - struct ifaddr *ifa; + struct kern_ifaddr *ifa; int retry = 0; int i; @@ -297,7 +297,7 @@ if (r == NULL) { if (hatype == ARPHRD_ETHER && halen == 6) { - struct ifaddr *ifa; + struct kern_ifaddr *ifa; struct hostent *hp; char ename[256]; static struct rarp_map emap = { @@ -370,7 +370,7 @@ { __u32 laddr = 0; struct iflink *ifl; - struct ifaddr *ifa; + struct kern_ifaddr *ifa; for (ifl=ifl_list; ifl; ifl = ifl->next) if (ifl->index == ifindex)