am 69052994: Merge "Support resetting connections tied to any nonexistent address." into lmp-dev

* commit '69052994fd21f2b594295f62e2f867e911e8468d':
  Support resetting connections tied to any nonexistent address.
This commit is contained in:
Sreeram Ramachandran 2014-09-10 00:51:22 +00:00 committed by Android Git Automerger
commit 18d5aa4d5a
2 changed files with 5 additions and 2 deletions

View File

@ -36,6 +36,7 @@ extern int ifc_disable(const char *ifname);
#define RESET_IPV4_ADDRESSES 0x01
#define RESET_IPV6_ADDRESSES 0x02
#define RESET_IGNORE_INTERFACE_ADDRESS 0x04
#define RESET_ALL_ADDRESSES (RESET_IPV4_ADDRESSES | RESET_IPV6_ADDRESSES)
extern int ifc_reset_connections(const char *ifname, const int reset_mask);

View File

@ -599,14 +599,16 @@ int ifc_reset_connections(const char *ifname, const int reset_mask)
{
#ifdef HAVE_ANDROID_OS
int result, success;
in_addr_t myaddr;
in_addr_t myaddr = 0;
struct ifreq ifr;
struct in6_ifreq ifr6;
if (reset_mask & RESET_IPV4_ADDRESSES) {
/* IPv4. Clear connections on the IP address. */
ifc_init();
ifc_get_info(ifname, &myaddr, NULL, NULL);
if (!(reset_mask & RESET_IGNORE_INTERFACE_ADDRESS)) {
ifc_get_info(ifname, &myaddr, NULL, NULL);
}
ifc_init_ifr(ifname, &ifr);
init_sockaddr_in(&ifr.ifr_addr, myaddr);
result = ioctl(ifc_ctl_sock, SIOCKILLADDR, &ifr);