Loading core/java/android/os/INetworkManagementService.aidl +0 −10 Original line number Original line Diff line number Diff line Loading @@ -355,16 +355,6 @@ interface INetworkManagementService */ */ void removeVpnUidRanges(int netId, in UidRange[] ranges); void removeVpnUidRanges(int netId, in UidRange[] ranges); /** * Start the clatd (464xlat) service on the given interface. */ void startClatd(String interfaceName); /** * Stop the clatd (464xlat) service on the given interface. */ void stopClatd(String interfaceName); /** /** * Start listening for mobile activity state changes. * Start listening for mobile activity state changes. */ */ Loading services/core/java/com/android/server/ConnectivityService.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -4879,7 +4879,7 @@ public class ConnectivityService extends IConnectivityManager.Stub final NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities); final NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities); final NetworkAgentInfo nai = new NetworkAgentInfo(messenger, new AsyncChannel(), final NetworkAgentInfo nai = new NetworkAgentInfo(messenger, new AsyncChannel(), new Network(reserveNetId()), new NetworkInfo(networkInfo), lp, nc, currentScore, new Network(reserveNetId()), new NetworkInfo(networkInfo), lp, nc, currentScore, mContext, mTrackerHandler, new NetworkMisc(networkMisc), this); mContext, mTrackerHandler, new NetworkMisc(networkMisc), this, mNetd, mNMS); // Make sure the network capabilities reflect what the agent info says. // Make sure the network capabilities reflect what the agent info says. nai.networkCapabilities = mixInCapabilities(nai, nc); nai.networkCapabilities = mixInCapabilities(nai, nc); final String extraInfo = networkInfo.getExtraInfo(); final String extraInfo = networkInfo.getExtraInfo(); Loading services/core/java/com/android/server/NetworkManagementService.java +3 −42 Original line number Original line Diff line number Diff line Loading @@ -17,13 +17,11 @@ package com.android.server; package com.android.server; import static android.Manifest.permission.CONNECTIVITY_INTERNAL; import static android.Manifest.permission.CONNECTIVITY_INTERNAL; import static android.Manifest.permission.DUMP; import static android.Manifest.permission.NETWORK_SETTINGS; import static android.Manifest.permission.NETWORK_SETTINGS; import static android.Manifest.permission.NETWORK_STACK; import static android.Manifest.permission.NETWORK_STACK; import static android.Manifest.permission.SHUTDOWN; import static android.Manifest.permission.SHUTDOWN; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_DOZABLE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_DOZABLE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_DOZABLE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_DOZABLE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_NONE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_POWERSAVE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_POWERSAVE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_STANDBY; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_STANDBY; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NONE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NONE; Loading @@ -40,6 +38,7 @@ import static android.net.NetworkStats.TAG_ALL; import static android.net.NetworkStats.TAG_NONE; import static android.net.NetworkStats.TAG_NONE; import static android.net.NetworkStats.UID_ALL; import static android.net.NetworkStats.UID_ALL; import static android.net.TrafficStats.UID_TETHERING; import static android.net.TrafficStats.UID_TETHERING; import static com.android.server.NetworkManagementService.NetdResponseCode.ClatdStatusResult; import static com.android.server.NetworkManagementService.NetdResponseCode.ClatdStatusResult; import static com.android.server.NetworkManagementService.NetdResponseCode.InterfaceGetCfgResult; import static com.android.server.NetworkManagementService.NetdResponseCode.InterfaceGetCfgResult; import static com.android.server.NetworkManagementService.NetdResponseCode.InterfaceListResult; import static com.android.server.NetworkManagementService.NetdResponseCode.InterfaceListResult; Loading @@ -53,11 +52,9 @@ import static com.android.server.NetworkManagementSocketTagger.PROP_QTAGUID_ENAB import android.annotation.NonNull; import android.annotation.NonNull; import android.app.ActivityManager; import android.app.ActivityManager; import android.content.ContentResolver; import android.content.Context; import android.content.Context; import android.net.ConnectivityManager; import android.net.ConnectivityManager; import android.net.INetd; import android.net.INetd; import android.net.TetherStatsParcel; import android.net.INetworkManagementEventObserver; import android.net.INetworkManagementEventObserver; import android.net.ITetheringStatsProvider; import android.net.ITetheringStatsProvider; import android.net.InterfaceConfiguration; import android.net.InterfaceConfiguration; Loading @@ -69,18 +66,15 @@ import android.net.NetworkPolicyManager; import android.net.NetworkStats; import android.net.NetworkStats; import android.net.NetworkUtils; import android.net.NetworkUtils; import android.net.RouteInfo; import android.net.RouteInfo; import android.net.TetherStatsParcel; import android.net.UidRange; import android.net.UidRange; import android.net.UidRangeParcel; import android.net.util.NetdService; import android.net.util.NetdService; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration.KeyMgmt; import android.os.BatteryStats; import android.os.BatteryStats; import android.os.Binder; import android.os.Binder; import android.os.Handler; import android.os.Handler; import android.os.IBinder; import android.os.IBinder; import android.os.INetworkActivityListener; import android.os.INetworkActivityListener; import android.os.INetworkManagementService; import android.os.INetworkManagementService; import android.os.PersistableBundle; import android.os.PowerManager; import android.os.PowerManager; import android.os.Process; import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteCallbackList; Loading @@ -91,12 +85,7 @@ import android.os.StrictMode; import android.os.SystemClock; import android.os.SystemClock; import android.os.SystemProperties; import android.os.SystemProperties; import android.os.Trace; import android.os.Trace; import android.provider.Settings; import android.telephony.DataConnectionRealTimeInfo; import android.telephony.DataConnectionRealTimeInfo; import android.telephony.PhoneStateListener; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.Log; import android.util.Log; import android.util.Slog; import android.util.Slog; import android.util.SparseBooleanArray; import android.util.SparseBooleanArray; Loading @@ -109,13 +98,11 @@ import com.android.internal.net.NetworkStatsFactory; import com.android.internal.util.DumpUtils; import com.android.internal.util.DumpUtils; import com.android.internal.util.HexDump; import com.android.internal.util.HexDump; import com.android.internal.util.Preconditions; import com.android.internal.util.Preconditions; import com.android.server.NativeDaemonConnector.Command; import com.android.server.NativeDaemonConnector.SensitiveArg; import com.google.android.collect.Maps; import com.google.android.collect.Maps; import java.io.BufferedReader; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataInputStream; import java.io.File; import java.io.FileDescriptor; import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.IOException; Loading @@ -123,15 +110,11 @@ import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.PrintWriter; import java.net.InetAddress; import java.net.InetAddress; import java.net.InterfaceAddress; import java.net.InterfaceAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.ArrayList; import java.util.ArrayList; import java.util.Arrays; import java.util.Arrays; import java.util.HashMap; import java.util.HashMap; import java.util.List; import java.util.List; import java.util.Map; import java.util.Map; import java.util.NoSuchElementException; import java.util.StringTokenizer; import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch; /** /** Loading Loading @@ -2146,28 +2129,6 @@ public class NetworkManagementService extends INetworkManagementService.Stub } } } } @Override public void startClatd(String interfaceName) throws IllegalStateException { mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG); try { mNetdService.clatdStart(interfaceName); } catch (RemoteException | ServiceSpecificException e) { throw new IllegalStateException(e); } } @Override public void stopClatd(String interfaceName) throws IllegalStateException { mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG); try { mNetdService.clatdStop(interfaceName); } catch (RemoteException | ServiceSpecificException e) { throw new IllegalStateException(e); } } @Override @Override public void registerNetworkActivityListener(INetworkActivityListener listener) { public void registerNetworkActivityListener(INetworkActivityListener listener) { mNetworkActivityListeners.register(listener); mNetworkActivityListeners.register(listener); Loading services/core/java/com/android/server/connectivity/Nat464Xlat.java +8 −5 Original line number Original line Diff line number Diff line Loading @@ -16,8 +16,9 @@ package com.android.server.connectivity; package com.android.server.connectivity; import android.net.InterfaceConfiguration; import android.net.ConnectivityManager; import android.net.ConnectivityManager; import android.net.INetd; import android.net.InterfaceConfiguration; import android.net.LinkAddress; import android.net.LinkAddress; import android.net.LinkProperties; import android.net.LinkProperties; import android.net.NetworkInfo; import android.net.NetworkInfo; Loading Loading @@ -59,6 +60,7 @@ public class Nat464Xlat extends BaseNetworkObserver { NetworkInfo.State.SUSPENDED, NetworkInfo.State.SUSPENDED, }; }; private final INetd mNetd; private final INetworkManagementService mNMService; private final INetworkManagementService mNMService; // The network we're running on, and its type. // The network we're running on, and its type. Loading @@ -76,7 +78,8 @@ public class Nat464Xlat extends BaseNetworkObserver { private String mIface; private String mIface; private State mState = State.IDLE; private State mState = State.IDLE; public Nat464Xlat(INetworkManagementService nmService, NetworkAgentInfo nai) { public Nat464Xlat(NetworkAgentInfo nai, INetd netd, INetworkManagementService nmService) { mNetd = netd; mNMService = nmService; mNMService = nmService; mNetwork = nai; mNetwork = nai; } } Loading Loading @@ -140,7 +143,7 @@ public class Nat464Xlat extends BaseNetworkObserver { return; return; } } try { try { mNMService.startClatd(baseIface); mNetd.clatdStart(baseIface); } catch(RemoteException|IllegalStateException e) { } catch(RemoteException|IllegalStateException e) { Slog.e(TAG, "Error starting clatd on " + baseIface, e); Slog.e(TAG, "Error starting clatd on " + baseIface, e); } } Loading @@ -162,7 +165,7 @@ public class Nat464Xlat extends BaseNetworkObserver { */ */ private void enterStoppingState() { private void enterStoppingState() { try { try { mNMService.stopClatd(mBaseIface); mNetd.clatdStop(mBaseIface); } catch(RemoteException|IllegalStateException e) { } catch(RemoteException|IllegalStateException e) { Slog.e(TAG, "Error stopping clatd on " + mBaseIface, e); Slog.e(TAG, "Error stopping clatd on " + mBaseIface, e); } } Loading Loading @@ -204,7 +207,7 @@ public class Nat464Xlat extends BaseNetworkObserver { Slog.e(TAG, "startClat: Can't start clat on null interface"); Slog.e(TAG, "startClat: Can't start clat on null interface"); return; return; } } // TODO: should we only do this if mNMService.startClatd() succeeds? // TODO: should we only do this if mNetd.clatdStart() succeeds? Slog.i(TAG, "Starting clatd on " + baseIface); Slog.i(TAG, "Starting clatd on " + baseIface); enterStartingState(baseIface); enterStartingState(baseIface); } } Loading services/core/java/com/android/server/connectivity/NetworkAgentInfo.java +10 −4 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.connectivity; package com.android.server.connectivity; import android.content.Context; import android.content.Context; import android.net.INetd; import android.net.INetworkMonitor; import android.net.INetworkMonitor; import android.net.LinkProperties; import android.net.LinkProperties; import android.net.Network; import android.net.Network; Loading Loading @@ -239,12 +240,15 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> { private static final String TAG = ConnectivityService.class.getSimpleName(); private static final String TAG = ConnectivityService.class.getSimpleName(); private static final boolean VDBG = false; private static final boolean VDBG = false; private final ConnectivityService mConnService; private final ConnectivityService mConnService; private final INetd mNetd; private final INetworkManagementService mNMS; private final Context mContext; private final Context mContext; private final Handler mHandler; private final Handler mHandler; public NetworkAgentInfo(Messenger messenger, AsyncChannel ac, Network net, NetworkInfo info, public NetworkAgentInfo(Messenger messenger, AsyncChannel ac, Network net, NetworkInfo info, LinkProperties lp, NetworkCapabilities nc, int score, Context context, Handler handler, LinkProperties lp, NetworkCapabilities nc, int score, Context context, Handler handler, NetworkMisc misc, ConnectivityService connService) { NetworkMisc misc, ConnectivityService connService, INetd netd, INetworkManagementService nms) { this.messenger = messenger; this.messenger = messenger; asyncChannel = ac; asyncChannel = ac; network = net; network = net; Loading @@ -253,6 +257,8 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> { networkCapabilities = nc; networkCapabilities = nc; currentScore = score; currentScore = score; mConnService = connService; mConnService = connService; mNetd = netd; mNMS = nms; mContext = context; mContext = context; mHandler = handler; mHandler = handler; networkMisc = misc; networkMisc = misc; Loading Loading @@ -587,18 +593,18 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> { public void updateClat(INetworkManagementService netd) { public void updateClat(INetworkManagementService netd) { if (Nat464Xlat.requiresClat(this)) { if (Nat464Xlat.requiresClat(this)) { maybeStartClat(netd); maybeStartClat(); } else { } else { maybeStopClat(); maybeStopClat(); } } } } /** Ensure clat has started for this network. */ /** Ensure clat has started for this network. */ public void maybeStartClat(INetworkManagementService netd) { public void maybeStartClat() { if (clatd != null && clatd.isStarted()) { if (clatd != null && clatd.isStarted()) { return; return; } } clatd = new Nat464Xlat(netd, this); clatd = new Nat464Xlat(this, mNetd, mNMS); clatd.start(); clatd.start(); } } Loading Loading
core/java/android/os/INetworkManagementService.aidl +0 −10 Original line number Original line Diff line number Diff line Loading @@ -355,16 +355,6 @@ interface INetworkManagementService */ */ void removeVpnUidRanges(int netId, in UidRange[] ranges); void removeVpnUidRanges(int netId, in UidRange[] ranges); /** * Start the clatd (464xlat) service on the given interface. */ void startClatd(String interfaceName); /** * Stop the clatd (464xlat) service on the given interface. */ void stopClatd(String interfaceName); /** /** * Start listening for mobile activity state changes. * Start listening for mobile activity state changes. */ */ Loading
services/core/java/com/android/server/ConnectivityService.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -4879,7 +4879,7 @@ public class ConnectivityService extends IConnectivityManager.Stub final NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities); final NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities); final NetworkAgentInfo nai = new NetworkAgentInfo(messenger, new AsyncChannel(), final NetworkAgentInfo nai = new NetworkAgentInfo(messenger, new AsyncChannel(), new Network(reserveNetId()), new NetworkInfo(networkInfo), lp, nc, currentScore, new Network(reserveNetId()), new NetworkInfo(networkInfo), lp, nc, currentScore, mContext, mTrackerHandler, new NetworkMisc(networkMisc), this); mContext, mTrackerHandler, new NetworkMisc(networkMisc), this, mNetd, mNMS); // Make sure the network capabilities reflect what the agent info says. // Make sure the network capabilities reflect what the agent info says. nai.networkCapabilities = mixInCapabilities(nai, nc); nai.networkCapabilities = mixInCapabilities(nai, nc); final String extraInfo = networkInfo.getExtraInfo(); final String extraInfo = networkInfo.getExtraInfo(); Loading
services/core/java/com/android/server/NetworkManagementService.java +3 −42 Original line number Original line Diff line number Diff line Loading @@ -17,13 +17,11 @@ package com.android.server; package com.android.server; import static android.Manifest.permission.CONNECTIVITY_INTERNAL; import static android.Manifest.permission.CONNECTIVITY_INTERNAL; import static android.Manifest.permission.DUMP; import static android.Manifest.permission.NETWORK_SETTINGS; import static android.Manifest.permission.NETWORK_SETTINGS; import static android.Manifest.permission.NETWORK_STACK; import static android.Manifest.permission.NETWORK_STACK; import static android.Manifest.permission.SHUTDOWN; import static android.Manifest.permission.SHUTDOWN; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_DOZABLE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_DOZABLE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_DOZABLE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_DOZABLE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_NONE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_POWERSAVE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_POWERSAVE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_STANDBY; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_STANDBY; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NONE; import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NONE; Loading @@ -40,6 +38,7 @@ import static android.net.NetworkStats.TAG_ALL; import static android.net.NetworkStats.TAG_NONE; import static android.net.NetworkStats.TAG_NONE; import static android.net.NetworkStats.UID_ALL; import static android.net.NetworkStats.UID_ALL; import static android.net.TrafficStats.UID_TETHERING; import static android.net.TrafficStats.UID_TETHERING; import static com.android.server.NetworkManagementService.NetdResponseCode.ClatdStatusResult; import static com.android.server.NetworkManagementService.NetdResponseCode.ClatdStatusResult; import static com.android.server.NetworkManagementService.NetdResponseCode.InterfaceGetCfgResult; import static com.android.server.NetworkManagementService.NetdResponseCode.InterfaceGetCfgResult; import static com.android.server.NetworkManagementService.NetdResponseCode.InterfaceListResult; import static com.android.server.NetworkManagementService.NetdResponseCode.InterfaceListResult; Loading @@ -53,11 +52,9 @@ import static com.android.server.NetworkManagementSocketTagger.PROP_QTAGUID_ENAB import android.annotation.NonNull; import android.annotation.NonNull; import android.app.ActivityManager; import android.app.ActivityManager; import android.content.ContentResolver; import android.content.Context; import android.content.Context; import android.net.ConnectivityManager; import android.net.ConnectivityManager; import android.net.INetd; import android.net.INetd; import android.net.TetherStatsParcel; import android.net.INetworkManagementEventObserver; import android.net.INetworkManagementEventObserver; import android.net.ITetheringStatsProvider; import android.net.ITetheringStatsProvider; import android.net.InterfaceConfiguration; import android.net.InterfaceConfiguration; Loading @@ -69,18 +66,15 @@ import android.net.NetworkPolicyManager; import android.net.NetworkStats; import android.net.NetworkStats; import android.net.NetworkUtils; import android.net.NetworkUtils; import android.net.RouteInfo; import android.net.RouteInfo; import android.net.TetherStatsParcel; import android.net.UidRange; import android.net.UidRange; import android.net.UidRangeParcel; import android.net.util.NetdService; import android.net.util.NetdService; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration.KeyMgmt; import android.os.BatteryStats; import android.os.BatteryStats; import android.os.Binder; import android.os.Binder; import android.os.Handler; import android.os.Handler; import android.os.IBinder; import android.os.IBinder; import android.os.INetworkActivityListener; import android.os.INetworkActivityListener; import android.os.INetworkManagementService; import android.os.INetworkManagementService; import android.os.PersistableBundle; import android.os.PowerManager; import android.os.PowerManager; import android.os.Process; import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteCallbackList; Loading @@ -91,12 +85,7 @@ import android.os.StrictMode; import android.os.SystemClock; import android.os.SystemClock; import android.os.SystemProperties; import android.os.SystemProperties; import android.os.Trace; import android.os.Trace; import android.provider.Settings; import android.telephony.DataConnectionRealTimeInfo; import android.telephony.DataConnectionRealTimeInfo; import android.telephony.PhoneStateListener; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.Log; import android.util.Log; import android.util.Slog; import android.util.Slog; import android.util.SparseBooleanArray; import android.util.SparseBooleanArray; Loading @@ -109,13 +98,11 @@ import com.android.internal.net.NetworkStatsFactory; import com.android.internal.util.DumpUtils; import com.android.internal.util.DumpUtils; import com.android.internal.util.HexDump; import com.android.internal.util.HexDump; import com.android.internal.util.Preconditions; import com.android.internal.util.Preconditions; import com.android.server.NativeDaemonConnector.Command; import com.android.server.NativeDaemonConnector.SensitiveArg; import com.google.android.collect.Maps; import com.google.android.collect.Maps; import java.io.BufferedReader; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataInputStream; import java.io.File; import java.io.FileDescriptor; import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.IOException; Loading @@ -123,15 +110,11 @@ import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.PrintWriter; import java.net.InetAddress; import java.net.InetAddress; import java.net.InterfaceAddress; import java.net.InterfaceAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.ArrayList; import java.util.ArrayList; import java.util.Arrays; import java.util.Arrays; import java.util.HashMap; import java.util.HashMap; import java.util.List; import java.util.List; import java.util.Map; import java.util.Map; import java.util.NoSuchElementException; import java.util.StringTokenizer; import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch; /** /** Loading Loading @@ -2146,28 +2129,6 @@ public class NetworkManagementService extends INetworkManagementService.Stub } } } } @Override public void startClatd(String interfaceName) throws IllegalStateException { mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG); try { mNetdService.clatdStart(interfaceName); } catch (RemoteException | ServiceSpecificException e) { throw new IllegalStateException(e); } } @Override public void stopClatd(String interfaceName) throws IllegalStateException { mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG); try { mNetdService.clatdStop(interfaceName); } catch (RemoteException | ServiceSpecificException e) { throw new IllegalStateException(e); } } @Override @Override public void registerNetworkActivityListener(INetworkActivityListener listener) { public void registerNetworkActivityListener(INetworkActivityListener listener) { mNetworkActivityListeners.register(listener); mNetworkActivityListeners.register(listener); Loading
services/core/java/com/android/server/connectivity/Nat464Xlat.java +8 −5 Original line number Original line Diff line number Diff line Loading @@ -16,8 +16,9 @@ package com.android.server.connectivity; package com.android.server.connectivity; import android.net.InterfaceConfiguration; import android.net.ConnectivityManager; import android.net.ConnectivityManager; import android.net.INetd; import android.net.InterfaceConfiguration; import android.net.LinkAddress; import android.net.LinkAddress; import android.net.LinkProperties; import android.net.LinkProperties; import android.net.NetworkInfo; import android.net.NetworkInfo; Loading Loading @@ -59,6 +60,7 @@ public class Nat464Xlat extends BaseNetworkObserver { NetworkInfo.State.SUSPENDED, NetworkInfo.State.SUSPENDED, }; }; private final INetd mNetd; private final INetworkManagementService mNMService; private final INetworkManagementService mNMService; // The network we're running on, and its type. // The network we're running on, and its type. Loading @@ -76,7 +78,8 @@ public class Nat464Xlat extends BaseNetworkObserver { private String mIface; private String mIface; private State mState = State.IDLE; private State mState = State.IDLE; public Nat464Xlat(INetworkManagementService nmService, NetworkAgentInfo nai) { public Nat464Xlat(NetworkAgentInfo nai, INetd netd, INetworkManagementService nmService) { mNetd = netd; mNMService = nmService; mNMService = nmService; mNetwork = nai; mNetwork = nai; } } Loading Loading @@ -140,7 +143,7 @@ public class Nat464Xlat extends BaseNetworkObserver { return; return; } } try { try { mNMService.startClatd(baseIface); mNetd.clatdStart(baseIface); } catch(RemoteException|IllegalStateException e) { } catch(RemoteException|IllegalStateException e) { Slog.e(TAG, "Error starting clatd on " + baseIface, e); Slog.e(TAG, "Error starting clatd on " + baseIface, e); } } Loading @@ -162,7 +165,7 @@ public class Nat464Xlat extends BaseNetworkObserver { */ */ private void enterStoppingState() { private void enterStoppingState() { try { try { mNMService.stopClatd(mBaseIface); mNetd.clatdStop(mBaseIface); } catch(RemoteException|IllegalStateException e) { } catch(RemoteException|IllegalStateException e) { Slog.e(TAG, "Error stopping clatd on " + mBaseIface, e); Slog.e(TAG, "Error stopping clatd on " + mBaseIface, e); } } Loading Loading @@ -204,7 +207,7 @@ public class Nat464Xlat extends BaseNetworkObserver { Slog.e(TAG, "startClat: Can't start clat on null interface"); Slog.e(TAG, "startClat: Can't start clat on null interface"); return; return; } } // TODO: should we only do this if mNMService.startClatd() succeeds? // TODO: should we only do this if mNetd.clatdStart() succeeds? Slog.i(TAG, "Starting clatd on " + baseIface); Slog.i(TAG, "Starting clatd on " + baseIface); enterStartingState(baseIface); enterStartingState(baseIface); } } Loading
services/core/java/com/android/server/connectivity/NetworkAgentInfo.java +10 −4 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.connectivity; package com.android.server.connectivity; import android.content.Context; import android.content.Context; import android.net.INetd; import android.net.INetworkMonitor; import android.net.INetworkMonitor; import android.net.LinkProperties; import android.net.LinkProperties; import android.net.Network; import android.net.Network; Loading Loading @@ -239,12 +240,15 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> { private static final String TAG = ConnectivityService.class.getSimpleName(); private static final String TAG = ConnectivityService.class.getSimpleName(); private static final boolean VDBG = false; private static final boolean VDBG = false; private final ConnectivityService mConnService; private final ConnectivityService mConnService; private final INetd mNetd; private final INetworkManagementService mNMS; private final Context mContext; private final Context mContext; private final Handler mHandler; private final Handler mHandler; public NetworkAgentInfo(Messenger messenger, AsyncChannel ac, Network net, NetworkInfo info, public NetworkAgentInfo(Messenger messenger, AsyncChannel ac, Network net, NetworkInfo info, LinkProperties lp, NetworkCapabilities nc, int score, Context context, Handler handler, LinkProperties lp, NetworkCapabilities nc, int score, Context context, Handler handler, NetworkMisc misc, ConnectivityService connService) { NetworkMisc misc, ConnectivityService connService, INetd netd, INetworkManagementService nms) { this.messenger = messenger; this.messenger = messenger; asyncChannel = ac; asyncChannel = ac; network = net; network = net; Loading @@ -253,6 +257,8 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> { networkCapabilities = nc; networkCapabilities = nc; currentScore = score; currentScore = score; mConnService = connService; mConnService = connService; mNetd = netd; mNMS = nms; mContext = context; mContext = context; mHandler = handler; mHandler = handler; networkMisc = misc; networkMisc = misc; Loading Loading @@ -587,18 +593,18 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> { public void updateClat(INetworkManagementService netd) { public void updateClat(INetworkManagementService netd) { if (Nat464Xlat.requiresClat(this)) { if (Nat464Xlat.requiresClat(this)) { maybeStartClat(netd); maybeStartClat(); } else { } else { maybeStopClat(); maybeStopClat(); } } } } /** Ensure clat has started for this network. */ /** Ensure clat has started for this network. */ public void maybeStartClat(INetworkManagementService netd) { public void maybeStartClat() { if (clatd != null && clatd.isStarted()) { if (clatd != null && clatd.isStarted()) { return; return; } } clatd = new Nat464Xlat(netd, this); clatd = new Nat464Xlat(this, mNetd, mNMS); clatd.start(); clatd.start(); } } Loading