rem: int sysctl_iflist(int af, struct walkarg *w)
add: static int sysctl_iflist(int af, struct walkarg *w)
context: int sysctl_iflist(int af, struct walkarg *w){	struct ifnet *ifp;	struct ifaddr *ifa;	struct rt_addrinfo info;	int len;	struct ifnet *interfaces = get_interfaces();	memset(&info, 0, sizeof(info));	for (ifp = interfaces; ifp; ifp = ifp->if_next) {		if (w->w_arg && w->w_arg != ifp->if_index)			continue;		ifa = ifp->if_addrlist;		info.rti_info[RTAX_IFA] = ifa->ifa_addr;		len = rt_msg2(RTM_IFINFO, &info, NULL, w);		info.rti_info[RTAX_IFA] = NULL;		if (w->w_where && w->w_tmem) {			struct if_msghdr *ifm;						ifm = (struct if_msghdr*)w->w_tmem;			ifm->ifm_index = ifp->if_index;					ifm->ifm_flags = ifp->if_flags;			ifm->ifm_data = ifp->ifd;			ifm->ifm_addrs = info.rti_addrs;			if (memcpy(w->w_where, (caddr_t)ifm, len) == NULL)				return ENOMEM;			w->w_where += len;		}		while ((ifa = ifa->ifa_next) != NULL) {			if (af && af != ifa->ifa_addr->sa_family)				continue;			info.rti_info[RTAX_IFA] = ifa->ifa_addr;			info.rti_info[RTAX_NETMASK] = ifa->ifa_netmask;			info.rti_info[RTAX_BRD] = ifa->ifa_dstaddr;			len = rt_msg2(RTM_NEWADDR, &info, NULL, w);			if (w->w_where && w->w_tmem) {				struct ifa_msghdr *ifam;								ifam = (struct ifa_msghdr *)w->w_tmem;				ifam->ifam_index = ifa->ifa_ifp->if_index;				ifam->ifam_flags = ifa->ifa_flags;				ifam->ifam_metric = ifa->ifa_metric;				ifam->ifam_addrs = info.rti_addrs;				if (memcpy(w->w_where, w->w_tmem, len) == NULL)					return ENOMEM;				w->w_where += len;			}		}		info.rti_info[RTAX_IFA] = info.rti_info[RTAX_NETMASK] = info.rti_info[RTAX_BRD] = NULL;	}	return 0;}