int ifc_reset_connections(const char *ifname, const int reset_mask) { #ifdef HAVE_ANDROID_OS int result, success; in_addr_t myaddr; struct ifreq ifr; struct in6_ifreq ifr6; if (reset_mask & RESET_IPV4_ADDRESSES) { ifc_clear_ipv4_addresses(ifname); } else { result = 0; } if (reset_mask & RESET_IPV6_ADDRESSES) { /* * IPv6. On Linux, when an interface goes down it loses all its IPv6 * addresses, so we don't know which connections belonged to that interface * So we clear all unused IPv6 connections on the device by specifying an * empty IPv6 address. */ ifc_clear_ipv6_addresses(ifname); } return result; #else return 0; #endif }
/* * Clears all IP addresses on the specified interface. */ int ifc_clear_addresses(const char *name) { ifc_clear_ipv4_addresses(name); return ifc_clear_ipv6_addresses(name); }