Rename IpManager to IpClient
am: a8d5e408d0

Change-Id: I3742cdbf63409e6b84a794b98953b23be440cdf9
diff --git a/service/java/com/android/server/wifi/FrameworkFacade.java b/service/java/com/android/server/wifi/FrameworkFacade.java
index 760ee69..2c16444 100644
--- a/service/java/com/android/server/wifi/FrameworkFacade.java
+++ b/service/java/com/android/server/wifi/FrameworkFacade.java
@@ -25,7 +25,7 @@
 import android.database.ContentObserver;
 import android.net.TrafficStats;
 import android.net.Uri;
-import android.net.ip.IpManager;
+import android.net.ip.IpClient;
 import android.os.BatteryStats;
 import android.os.Handler;
 import android.os.IBinder;
@@ -137,9 +137,9 @@
         return TrafficStats.getRxPackets(iface);
     }
 
-    public IpManager makeIpManager(
-            Context context, String iface, IpManager.Callback callback) {
-        return new IpManager(context, iface, callback);
+    public IpClient makeIpClient(
+            Context context, String iface, IpClient.Callback callback) {
+        return new IpClient(context, iface, callback);
     }
 
     /**
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java
index d8b4237..72c044f 100644
--- a/service/java/com/android/server/wifi/WifiConfigManager.java
+++ b/service/java/com/android/server/wifi/WifiConfigManager.java
@@ -996,7 +996,7 @@
         }
 
         boolean newNetwork = (existingInternalConfig == null);
-        // This is needed to inform IpManager about any IP configuration changes.
+        // This is needed to inform IpClient about any IP configuration changes.
         boolean hasIpChanged =
                 newNetwork || WifiConfigurationUtil.hasIpChanged(
                         existingInternalConfig, newInternalConfig);
diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java
index d6faf9b..63f4758 100644
--- a/service/java/com/android/server/wifi/WifiServiceImpl.java
+++ b/service/java/com/android/server/wifi/WifiServiceImpl.java
@@ -61,7 +61,7 @@
 import android.net.NetworkUtils;
 import android.net.StaticIpConfiguration;
 import android.net.Uri;
-import android.net.ip.IpManager;
+import android.net.ip.IpClient;
 import android.net.wifi.IWifiManager;
 import android.net.wifi.ScanResult;
 import android.net.wifi.ScanSettings;
@@ -2279,11 +2279,11 @@
             // WifiMetrics proto bytes were requested. Dump only these.
             mWifiStateMachine.updateWifiMetrics();
             mWifiMetrics.dump(fd, pw, args);
-        } else if (args != null && args.length > 0 && IpManager.DUMP_ARG.equals(args[0])) {
-            // IpManager dump was requested. Pass it along and take no further action.
-            String[] ipManagerArgs = new String[args.length - 1];
-            System.arraycopy(args, 1, ipManagerArgs, 0, ipManagerArgs.length);
-            mWifiStateMachine.dumpIpManager(fd, pw, ipManagerArgs);
+        } else if (args != null && args.length > 0 && IpClient.DUMP_ARG.equals(args[0])) {
+            // IpClient dump was requested. Pass it along and take no further action.
+            String[] ipClientArgs = new String[args.length - 1];
+            System.arraycopy(args, 1, ipClientArgs, 0, ipClientArgs.length);
+            mWifiStateMachine.dumpIpClient(fd, pw, ipClientArgs);
         } else if (args != null && args.length > 0 && WifiScoreReport.DUMP_ARG.equals(args[0])) {
             WifiScoreReport wifiScoreReport = mWifiStateMachine.getWifiScoreReport();
             if (wifiScoreReport != null) wifiScoreReport.dump(fd, pw, args);
diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java
index 6345c24..66ab1a3 100644
--- a/service/java/com/android/server/wifi/WifiStateMachine.java
+++ b/service/java/com/android/server/wifi/WifiStateMachine.java
@@ -58,7 +58,7 @@
 import android.net.StaticIpConfiguration;
 import android.net.TrafficStats;
 import android.net.dhcp.DhcpClient;
-import android.net.ip.IpManager;
+import android.net.ip.IpClient;
 import android.net.wifi.IApInterface;
 import android.net.wifi.IClientInterface;
 import android.net.wifi.RssiPacketCountInfo;
@@ -445,7 +445,7 @@
         return true;
     }
 
-    private final IpManager mIpManager;
+    private final IpClient mIpClient;
 
     // Channel for sending replies.
     private AsyncChannel mReplyChannel = new AsyncChannel();
@@ -700,7 +700,7 @@
     static final int CMD_ENABLE_AUTOJOIN_WHEN_ASSOCIATED                = BASE + 167;
 
     /**
-     * Used to handle messages bounced between WifiStateMachine and IpManager.
+     * Used to handle messages bounced between WifiStateMachine and IpClient.
      */
     static final int CMD_IPV4_PROVISIONING_SUCCESS                      = BASE + 200;
     static final int CMD_IPV4_PROVISIONING_FAILURE                      = BASE + 201;
@@ -954,8 +954,8 @@
         mLastNetworkId = WifiConfiguration.INVALID_NETWORK_ID;
         mLastSignalLevel = -1;
 
-        mIpManager = mFacade.makeIpManager(mContext, mInterfaceName, new IpManagerCallback());
-        mIpManager.setMulticastFilter(true);
+        mIpClient = mFacade.makeIpClient(mContext, mInterfaceName, new IpClientCallback());
+        mIpClient.setMulticastFilter(true);
 
         mNoNetworksPeriodicScan = mContext.getResources().getInteger(
                 R.integer.config_wifi_no_network_periodic_scan_interval);
@@ -1134,7 +1134,7 @@
         mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL);
     }
 
-    class IpManagerCallback extends IpManager.Callback {
+    class IpClientCallback extends IpClient.Callback {
         @Override
         public void onPreDhcpAction() {
             sendMessage(DhcpClient.CMD_PRE_DHCP_ACTION);
@@ -1197,10 +1197,10 @@
         }
     }
 
-    private void stopIpManager() {
+    private void stopIpClient() {
         /* Restore power save and suspend optimizations */
         handlePostDhcpSetup();
-        mIpManager.stop();
+        mIpClient.stop();
     }
 
     PendingIntent getPrivateBroadcast(String action, int requestCode) {
@@ -2063,14 +2063,14 @@
      * Start filtering Multicast v4 packets
      */
     public void startFilteringMulticastPackets() {
-        mIpManager.setMulticastFilter(true);
+        mIpClient.setMulticastFilter(true);
     }
 
     /**
      * Stop filtering Multicast v4 packets
      */
     public void stopFilteringMulticastPackets() {
-        mIpManager.setMulticastFilter(false);
+        mIpClient.setMulticastFilter(false);
     }
 
     /**
@@ -2186,8 +2186,8 @@
         }
     }
 
-    public void dumpIpManager(FileDescriptor fd, PrintWriter pw, String[] args) {
-        mIpManager.dump(fd, pw, args);
+    public void dumpIpClient(FileDescriptor fd, PrintWriter pw, String[] args) {
+        mIpClient.dump(fd, pw, args);
     }
 
     @Override
@@ -2234,7 +2234,7 @@
         pw.println();
         mWifiDiagnostics.captureBugReportData(WifiDiagnostics.REPORT_REASON_USER_ACTION);
         mWifiDiagnostics.dump(fd, pw, args);
-        dumpIpManager(fd, pw, args);
+        dumpIpClient(fd, pw, args);
         if (mWifiConnectivityManager != null) {
             mWifiConnectivityManager.dump(fd, pw, args);
         } else {
@@ -3020,7 +3020,7 @@
             log("Link configuration changed for netId: " + mLastNetworkId
                     + " old: " + mLinkProperties + " new: " + newLp);
         }
-        // We own this instance of LinkProperties because IpManager passes us a copy.
+        // We own this instance of LinkProperties because IpClient passes us a copy.
         mLinkProperties = newLp;
         if (mNetworkAgent != null) {
             mNetworkAgent.sendLinkProperties(mLinkProperties);
@@ -3050,7 +3050,7 @@
      */
     private void clearLinkProperties() {
         // Clear the link properties obtained from DHCP. The only caller of this
-        // function has already called IpManager#stop(), which clears its state.
+        // function has already called IpClient#stop(), which clears its state.
         synchronized (mDhcpResultsLock) {
             if (mDhcpResults != null) {
                 mDhcpResults.clear();
@@ -3304,7 +3304,7 @@
 
         clearTargetBssid("handleNetworkDisconnect");
 
-        stopIpManager();
+        stopIpClient();
 
         /* Reset data structures */
         mWifiScoreReport.reset();
@@ -3434,7 +3434,7 @@
                 // short in two ways:
                 // - at the time of the CMD_IP_CONFIGURATION_SUCCESSFUL event, we don't know if we
                 //   actually have ARP reachability. it might be better to wait until the wifi
-                //   network has been validated by IpManager.
+                //   network has been validated by IpClient.
                 // - in the case of a roaming event (intra-SSID), we probably trigger when L2 is
                 //   complete.
                 //
@@ -4350,7 +4350,7 @@
             // Disable legacy multicast filtering, which on some chipsets defaults to enabled.
             // Legacy IPv6 multicast filtering blocks ICMPv6 router advertisements which breaks IPv6
             // provisioning. Legacy IPv4 multicast filtering may be re-enabled later via
-            // IpManager.Callback.setFallbackMulticastFilter()
+            // IpClient.Callback.setFallbackMulticastFilter()
             mWifiNative.stopFilteringMulticastV4Packets();
             mWifiNative.stopFilteringMulticastV6Packets();
 
@@ -5012,7 +5012,7 @@
                     // DNAv4/DNAv6 -style probing for on-link neighbors of
                     // interest (e.g. routers); harmless if none are configured.
                     if (state == SupplicantState.COMPLETED) {
-                        mIpManager.confirmConfiguration();
+                        mIpClient.confirmConfiguration();
                     }
                     break;
                 case WifiP2pServiceImpl.DISCONNECT_WIFI_REQUEST:
@@ -5290,7 +5290,7 @@
                         } else {
                             if (result.hasProxyChanged()) {
                                 log("Reconfiguring proxy on connection");
-                                mIpManager.setHttpProxy(
+                                mIpClient.setHttpProxy(
                                         getCurrentWifiConfiguration().getHttpProxy());
                             }
                             if (result.hasIpChanged()) {
@@ -5750,7 +5750,7 @@
 
         @Override
         public void exit() {
-            mIpManager.stop();
+            mIpClient.stop();
 
             // This is handled by receiving a NETWORK_DISCONNECTION_EVENT in ConnectModeState
             // Bug: 15347363
@@ -5780,17 +5780,17 @@
                     handlePreDhcpSetup();
                     break;
                 case DhcpClient.CMD_PRE_DHCP_ACTION_COMPLETE:
-                    mIpManager.completedPreDhcpAction();
+                    mIpClient.completedPreDhcpAction();
                     break;
                 case DhcpClient.CMD_POST_DHCP_ACTION:
                     handlePostDhcpSetup();
-                    // We advance to mConnectedState because IpManager will also send a
+                    // We advance to mConnectedState because IpClient will also send a
                     // CMD_IPV4_PROVISIONING_SUCCESS message, which calls handleIPv4Success(),
                     // which calls updateLinkProperties, which then sends
                     // CMD_IP_CONFIGURATION_SUCCESSFUL.
                     //
                     // In the event of failure, we transition to mDisconnectingState
-                    // similarly--via messages sent back from IpManager.
+                    // similarly--via messages sent back from IpClient.
                     break;
                 case CMD_IPV4_PROVISIONING_SUCCESS: {
                     handleIPv4Success((DhcpResults) message.obj);
@@ -6022,7 +6022,7 @@
             // cause the roam to fail and the device to disconnect.
             clearTargetBssid("ObtainingIpAddress");
 
-            // Stop IpManager in case we're switching from DHCP to static
+            // Stop IpClient in case we're switching from DHCP to static
             // configuration or vice versa.
             //
             // TODO: Only ever enter this state the first time we connect to a
@@ -6032,15 +6032,15 @@
             // disconnected, because DHCP might take a long time during which
             // connectivity APIs such as getActiveNetworkInfo should not return
             // CONNECTED.
-            stopIpManager();
+            stopIpClient();
 
-            mIpManager.setHttpProxy(currentConfig.getHttpProxy());
+            mIpClient.setHttpProxy(currentConfig.getHttpProxy());
             if (!TextUtils.isEmpty(mTcpBufferSizes)) {
-                mIpManager.setTcpBufferSizes(mTcpBufferSizes);
+                mIpClient.setTcpBufferSizes(mTcpBufferSizes);
             }
-            final IpManager.ProvisioningConfiguration prov;
+            final IpClient.ProvisioningConfiguration prov;
             if (!isUsingStaticIp) {
-                prov = IpManager.buildProvisioningConfiguration()
+                prov = IpClient.buildProvisioningConfiguration()
                             .withPreDhcpAction()
                             .withApfCapabilities(mWifiNative.getApfCapabilities())
                             .withNetwork(getCurrentNetwork())
@@ -6048,14 +6048,14 @@
                             .build();
             } else {
                 StaticIpConfiguration staticIpConfig = currentConfig.getStaticIpConfiguration();
-                prov = IpManager.buildProvisioningConfiguration()
+                prov = IpClient.buildProvisioningConfiguration()
                             .withStaticConfiguration(staticIpConfig)
                             .withApfCapabilities(mWifiNative.getApfCapabilities())
                             .withNetwork(getCurrentNetwork())
                             .withDisplayName(currentConfig.SSID)
                             .build();
             }
-            mIpManager.startProvisioning(prov);
+            mIpClient.startProvisioning(prov);
             // Get Link layer stats so as we get fresh tx packet counters
             getWifiLinkLayerStats();
         }
@@ -6249,10 +6249,10 @@
                         // We used to transition to ObtainingIpState in an
                         // attempt to do DHCPv4 RENEWs on framework roams.
                         // DHCP can take too long to time out, and we now rely
-                        // upon IpManager's use of IpReachabilityMonitor to
+                        // upon IpClient's use of IpReachabilityMonitor to
                         // confirm our current network configuration.
                         //
-                        // mIpManager.confirmConfiguration() is called within
+                        // mIpClient.confirmConfiguration() is called within
                         // the handling of SupplicantState.COMPLETED.
                         transitionTo(mConnectedState);
                     } else {
diff --git a/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java b/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
index d70ce41..fa16253 100644
--- a/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
+++ b/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
@@ -32,7 +32,7 @@
 import android.net.LinkProperties;
 import android.net.NetworkInfo;
 import android.net.NetworkUtils;
-import android.net.ip.IpManager;
+import android.net.ip.IpClient;
 import android.net.wifi.WpsInfo;
 import android.net.wifi.p2p.IWifiP2pManager;
 import android.net.wifi.p2p.WifiP2pConfig;
@@ -113,7 +113,7 @@
     private Context mContext;
 
     INetworkManagementService mNwService;
-    private IpManager mIpManager;
+    private IpClient mIpClient;
     private DhcpResults mDhcpResults;
 
     private P2pStateMachine mP2pStateMachine;
@@ -180,12 +180,12 @@
     //   msg.obj  = StateMachine to send to when blocked
     public static final int BLOCK_DISCOVERY                 =   BASE + 15;
 
-    // Messages for interaction with IpManager.
-    private static final int IPM_PRE_DHCP_ACTION            =   BASE + 30;
-    private static final int IPM_POST_DHCP_ACTION           =   BASE + 31;
-    private static final int IPM_DHCP_RESULTS               =   BASE + 32;
-    private static final int IPM_PROVISIONING_SUCCESS       =   BASE + 33;
-    private static final int IPM_PROVISIONING_FAILURE       =   BASE + 34;
+    // Messages for interaction with IpClient.
+    private static final int IPC_PRE_DHCP_ACTION            =   BASE + 30;
+    private static final int IPC_POST_DHCP_ACTION           =   BASE + 31;
+    private static final int IPC_DHCP_RESULTS               =   BASE + 32;
+    private static final int IPC_PROVISIONING_SUCCESS       =   BASE + 33;
+    private static final int IPC_PROVISIONING_FAILURE       =   BASE + 34;
 
     public static final int ENABLED                         = 1;
     public static final int DISABLED                        = 0;
@@ -442,50 +442,50 @@
         }
     }
 
-    private void stopIpManager() {
-        if (mIpManager != null) {
-            mIpManager.stop();
-            mIpManager = null;
+    private void stopIpClient() {
+        if (mIpClient != null) {
+            mIpClient.stop();
+            mIpClient = null;
         }
         mDhcpResults = null;
     }
 
-    private void startIpManager(String ifname) {
-        stopIpManager();
+    private void startIpClient(String ifname) {
+        stopIpClient();
 
-        mIpManager = new IpManager(mContext, ifname,
-                new IpManager.Callback() {
+        mIpClient = new IpClient(mContext, ifname,
+                new IpClient.Callback() {
                     @Override
                     public void onPreDhcpAction() {
-                        mP2pStateMachine.sendMessage(IPM_PRE_DHCP_ACTION);
+                        mP2pStateMachine.sendMessage(IPC_PRE_DHCP_ACTION);
                     }
                     @Override
                     public void onPostDhcpAction() {
-                        mP2pStateMachine.sendMessage(IPM_POST_DHCP_ACTION);
+                        mP2pStateMachine.sendMessage(IPC_POST_DHCP_ACTION);
                     }
                     @Override
                     public void onNewDhcpResults(DhcpResults dhcpResults) {
-                        mP2pStateMachine.sendMessage(IPM_DHCP_RESULTS, dhcpResults);
+                        mP2pStateMachine.sendMessage(IPC_DHCP_RESULTS, dhcpResults);
                     }
                     @Override
                     public void onProvisioningSuccess(LinkProperties newLp) {
-                        mP2pStateMachine.sendMessage(IPM_PROVISIONING_SUCCESS);
+                        mP2pStateMachine.sendMessage(IPC_PROVISIONING_SUCCESS);
                     }
                     @Override
                     public void onProvisioningFailure(LinkProperties newLp) {
-                        mP2pStateMachine.sendMessage(IPM_PROVISIONING_FAILURE);
+                        mP2pStateMachine.sendMessage(IPC_PROVISIONING_FAILURE);
                     }
                 },
                 mNwService);
 
-        final IpManager.ProvisioningConfiguration config =
-                mIpManager.buildProvisioningConfiguration()
-                          .withoutIPv6()
-                          .withoutIpReachabilityMonitor()
-                          .withPreDhcpAction(30 * 1000)
-                          .withProvisioningTimeoutMs(36 * 1000)
-                          .build();
-        mIpManager.startProvisioning(config);
+        final IpClient.ProvisioningConfiguration config =
+                mIpClient.buildProvisioningConfiguration()
+                         .withoutIPv6()
+                         .withoutIpReachabilityMonitor()
+                         .withPreDhcpAction(30 * 1000)
+                         .withProvisioningTimeoutMs(36 * 1000)
+                         .build();
+        mIpClient.startProvisioning(config);
     }
 
     /**
@@ -642,10 +642,10 @@
         pw.println("mDeathDataByBinder " + mDeathDataByBinder);
         pw.println();
 
-        final IpManager ipManager = mIpManager;
-        if (ipManager != null) {
-            pw.println("mIpManager:");
-            ipManager.dump(fd, pw, args);
+        final IpClient ipClient = mIpClient;
+        if (ipClient != null) {
+            pw.println("mIpClient:");
+            ipClient.dump(fd, pw, args);
         }
     }
 
@@ -945,11 +945,11 @@
                     case DROP_WIFI_USER_REJECT:
                     case GROUP_CREATING_TIMED_OUT:
                     case DISABLE_P2P_TIMED_OUT:
-                    case IPM_PRE_DHCP_ACTION:
-                    case IPM_POST_DHCP_ACTION:
-                    case IPM_DHCP_RESULTS:
-                    case IPM_PROVISIONING_SUCCESS:
-                    case IPM_PROVISIONING_FAILURE:
+                    case IPC_PRE_DHCP_ACTION:
+                    case IPC_POST_DHCP_ACTION:
+                    case IPC_DHCP_RESULTS:
+                    case IPC_PROVISIONING_SUCCESS:
+                    case IPC_PROVISIONING_FAILURE:
                     case WifiP2pMonitor.P2P_PROV_DISC_FAILURE_EVENT:
                     case SET_MIRACAST_MODE:
                     case WifiP2pManager.START_LISTEN:
@@ -1958,7 +1958,7 @@
                             startDhcpServer(mGroup.getInterface());
                         } else {
                             mWifiNative.setP2pGroupIdle(mGroup.getInterface(), GROUP_IDLE_TIME_S);
-                            startIpManager(mGroup.getInterface());
+                            startIpClient(mGroup.getInterface());
                             WifiP2pDevice groupOwner = mGroup.getOwner();
                             WifiP2pDevice peer = mPeers.get(groupOwner.deviceAddress);
                             if (peer != null) {
@@ -2218,17 +2218,17 @@
                             loge("Disconnect on unknown device: " + device);
                         }
                         break;
-                    case IPM_PRE_DHCP_ACTION:
+                    case IPC_PRE_DHCP_ACTION:
                         mWifiNative.setP2pPowerSave(mGroup.getInterface(), false);
-                        mIpManager.completedPreDhcpAction();
+                        mIpClient.completedPreDhcpAction();
                         break;
-                    case IPM_POST_DHCP_ACTION:
+                    case IPC_POST_DHCP_ACTION:
                         mWifiNative.setP2pPowerSave(mGroup.getInterface(), true);
                         break;
-                    case IPM_DHCP_RESULTS:
+                    case IPC_DHCP_RESULTS:
                         mDhcpResults = (DhcpResults) message.obj;
                         break;
-                    case IPM_PROVISIONING_SUCCESS:
+                    case IPC_PROVISIONING_SUCCESS:
                         if (DBG) logd("mDhcpResults: " + mDhcpResults);
                         if (mDhcpResults != null) {
                             setWifiP2pInfoOnGroupFormation(mDhcpResults.serverAddress);
@@ -2244,7 +2244,7 @@
                             loge("Failed to add iface to local network " + e);
                         }
                         break;
-                    case IPM_PROVISIONING_FAILURE:
+                    case IPC_PROVISIONING_FAILURE:
                         loge("IP provisioning failed");
                         mWifiNative.p2pGroupRemove(mGroup.getInterface());
                         break;
@@ -3061,8 +3061,8 @@
             if (mGroup.isGroupOwner()) {
                 stopDhcpServer(mGroup.getInterface());
             } else {
-                if (DBG) logd("stop IpManager");
-                stopIpManager();
+                if (DBG) logd("stop IpClient");
+                stopIpClient();
                 try {
                     mNwService.removeInterfaceFromLocalNetwork(mGroup.getInterface());
                 } catch (RemoteException e) {
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java b/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java
index 929a5fe..2e96f3f 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java
@@ -46,7 +46,7 @@
 import android.net.DhcpResults;
 import android.net.LinkProperties;
 import android.net.dhcp.DhcpClient;
-import android.net.ip.IpManager;
+import android.net.ip.IpClient;
 import android.net.wifi.IApInterface;
 import android.net.wifi.IClientInterface;
 import android.net.wifi.IWificond;
@@ -187,12 +187,12 @@
         IBinder batteryStatsBinder = mockService(BatteryStats.class, IBatteryStats.class);
         when(facade.getService(BatteryStats.SERVICE_NAME)).thenReturn(batteryStatsBinder);
 
-        when(facade.makeIpManager(any(Context.class), anyString(), any(IpManager.Callback.class)))
+        when(facade.makeIpClient(any(Context.class), anyString(), any(IpClient.Callback.class)))
                 .then(new AnswerWithArguments() {
-                    public IpManager answer(
-                            Context context, String ifname, IpManager.Callback callback) {
-                        mIpManagerCallback = callback;
-                        return mIpManager;
+                    public IpClient answer(
+                            Context context, String ifname, IpClient.Callback callback) {
+                        mIpClientCallback = callback;
+                        return mIpClient;
                     }
                 });
 
@@ -288,13 +288,13 @@
     }
 
     private void injectDhcpSuccess(DhcpResults dhcpResults) {
-        mIpManagerCallback.onNewDhcpResults(dhcpResults);
-        mIpManagerCallback.onProvisioningSuccess(new LinkProperties());
+        mIpClientCallback.onNewDhcpResults(dhcpResults);
+        mIpClientCallback.onProvisioningSuccess(new LinkProperties());
     }
 
     private void injectDhcpFailure() {
-        mIpManagerCallback.onNewDhcpResults(null);
-        mIpManagerCallback.onProvisioningFailure(new LinkProperties());
+        mIpClientCallback.onNewDhcpResults(null);
+        mIpClientCallback.onProvisioningFailure(new LinkProperties());
     }
 
     static final String   sSSID = "\"GoogleGuest\"";
@@ -316,7 +316,7 @@
     Context mContext;
     MockResources mResources;
     FrameworkFacade mFrameworkFacade;
-    IpManager.Callback mIpManagerCallback;
+    IpClient.Callback mIpClientCallback;
     PhoneStateListener mPhoneStateListener;
 
     final ArgumentCaptor<SoftApManager.Listener> mSoftApManagerListenerCaptor =
@@ -345,7 +345,7 @@
     @Mock WifiStateTracker mWifiStateTracker;
     @Mock PasspointManager mPasspointManager;
     @Mock SelfRecovery mSelfRecovery;
-    @Mock IpManager mIpManager;
+    @Mock IpClient mIpClient;
     @Mock TelephonyManager mTelephonyManager;
     @Mock WrongPasswordNotifier mWrongPasswordNotifier;
     @Mock Clock mClock;