Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8171e6f6 authored by Wink Saville's avatar Wink Saville
Browse files

Use resetConnections with resetMask.

Bug: 4981919
Change-Id: I5dec2da0756d5083bc81494fd583672704537694
parent 848aa3ab
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -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
+9 −4
Original line number Diff line number Diff line
@@ -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,
@@ -91,12 +91,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;
}
@@ -207,7 +212,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 },
+4 −2
Original line number Diff line number Diff line
@@ -1435,8 +1435,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);
                }
            }
        }
+2 −2
Original line number Diff line number Diff line
@@ -1415,7 +1415,7 @@ public class WifiStateMachine extends StateMachine {
        /*
         * stop DHCP
         */
       NetworkUtils.resetConnections(mInterfaceName);
       NetworkUtils.resetConnections(mInterfaceName, NetworkUtils.RESET_ALL_ADDRESSES);

        if (mDhcpStateMachine != null) {
            mDhcpStateMachine.sendMessage(DhcpStateMachine.CMD_STOP_DHCP);
@@ -1509,7 +1509,7 @@ public class WifiStateMachine extends StateMachine {
            if (!linkProperties.equals(mLinkProperties)) {
                Log.d(TAG, "Link configuration changed for netId: " + mLastNetworkId
                    + " old: " + mLinkProperties + "new: " + linkProperties);
                NetworkUtils.resetConnections(mInterfaceName);
                NetworkUtils.resetConnections(mInterfaceName, NetworkUtils.RESET_ALL_ADDRESSES);
                mLinkProperties = linkProperties;
                sendLinkConfigurationChangedBroadcast();
            }