resolved conflicts for merge of a3b4b5ca to master
Change-Id: I50f8fe61303efa78f5d450ddda1483e0ecb81d12
This commit is contained in:
@@ -38,8 +38,22 @@ public class NetworkUtils {
|
||||
/** Bring the named network interface down. */
|
||||
public native static int disableInterface(String interfaceName);
|
||||
|
||||
/** Reset any sockets that are connected via the named interface. */
|
||||
public native static int resetConnections(String interfaceName);
|
||||
/** Setting bit 0 indicates reseting of IPv4 addresses required */
|
||||
public static final int RESET_IPV4_ADDRESSES = 0x01;
|
||||
|
||||
/** Setting bit 1 indicates reseting of IPv4 addresses required */
|
||||
public static final int RESET_IPV6_ADDRESSES = 0x02;
|
||||
|
||||
/** Reset all addresses */
|
||||
public static final int RESET_ALL_ADDRESSES = RESET_IPV4_ADDRESSES | RESET_IPV6_ADDRESSES;
|
||||
|
||||
/**
|
||||
* Reset IPv6 or IPv4 sockets that are connected via the named interface.
|
||||
*
|
||||
* @param interfaceName is the interface to reset
|
||||
* @param mask {@see #RESET_IPV4_ADDRESSES} and {@see #RESET_IPV6_ADDRESSES}
|
||||
*/
|
||||
public native static int resetConnections(String interfaceName, int mask);
|
||||
|
||||
/**
|
||||
* Start the DHCP client daemon, in order to have it request addresses
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
extern "C" {
|
||||
int ifc_enable(const char *ifname);
|
||||
int ifc_disable(const char *ifname);
|
||||
int ifc_reset_connections(const char *ifname);
|
||||
int ifc_reset_connections(const char *ifname, int reset_mask);
|
||||
|
||||
int dhcp_do_request(const char *ifname,
|
||||
const char *ipaddr,
|
||||
@@ -90,12 +90,17 @@ static jint android_net_utils_disableInterface(JNIEnv* env, jobject clazz, jstri
|
||||
return (jint)result;
|
||||
}
|
||||
|
||||
static jint android_net_utils_resetConnections(JNIEnv* env, jobject clazz, jstring ifname)
|
||||
static jint android_net_utils_resetConnections(JNIEnv* env, jobject clazz,
|
||||
jstring ifname, jint mask)
|
||||
{
|
||||
int result;
|
||||
|
||||
const char *nameStr = env->GetStringUTFChars(ifname, NULL);
|
||||
result = ::ifc_reset_connections(nameStr);
|
||||
|
||||
LOGD("android_net_utils_resetConnections in env=%p clazz=%p iface=%s mask=0x%x\n",
|
||||
env, clazz, nameStr, mask);
|
||||
|
||||
result = ::ifc_reset_connections(nameStr, mask);
|
||||
env->ReleaseStringUTFChars(ifname, nameStr);
|
||||
return (jint)result;
|
||||
}
|
||||
@@ -206,7 +211,7 @@ static JNINativeMethod gNetworkUtilMethods[] = {
|
||||
|
||||
{ "enableInterface", "(Ljava/lang/String;)I", (void *)android_net_utils_enableInterface },
|
||||
{ "disableInterface", "(Ljava/lang/String;)I", (void *)android_net_utils_disableInterface },
|
||||
{ "resetConnections", "(Ljava/lang/String;)I", (void *)android_net_utils_resetConnections },
|
||||
{ "resetConnections", "(Ljava/lang/String;I)I", (void *)android_net_utils_resetConnections },
|
||||
{ "runDhcp", "(Ljava/lang/String;Landroid/net/DhcpInfoInternal;)Z", (void *)android_net_utils_runDhcp },
|
||||
{ "runDhcpRenew", "(Ljava/lang/String;Landroid/net/DhcpInfoInternal;)Z", (void *)android_net_utils_runDhcpRenew },
|
||||
{ "stopDhcp", "(Ljava/lang/String;)Z", (void *)android_net_utils_stopDhcp },
|
||||
|
||||
@@ -1602,8 +1602,10 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
||||
if (linkProperties != null) {
|
||||
String iface = linkProperties.getInterfaceName();
|
||||
if (TextUtils.isEmpty(iface) == false) {
|
||||
if (DBG) log("resetConnections(" + iface + ")");
|
||||
NetworkUtils.resetConnections(iface);
|
||||
if (DBG) {
|
||||
log("resetConnections(" + iface + ", NetworkUtils.RESET_ALL_ADDRESSES)");
|
||||
}
|
||||
NetworkUtils.resetConnections(iface, NetworkUtils.RESET_ALL_ADDRESSES);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user