diff options
author | Remi NGUYEN VAN <reminv@google.com> | 2019-06-25 01:33:52 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-06-25 01:33:52 -0700 |
commit | fe1ad3d0b86e1315906e18e33b65df2481eea63d (patch) | |
tree | c6ab618a4831b29f6f0b805d17a2d7ce46d11f4d /services/net/java | |
parent | 59d2379e8a2b2ae869c4971519f598d263a555ac (diff) | |
parent | 7afb36786cc4168c842ee51abff48071498ef617 (diff) |
Merge "Fix leak of DhcpServer on tethering stop error" am: 7e5a5a6983
am: 7afb36786c
Change-Id: Ie73481e8d91ce43e4939f8c31a9ce431e382c6d9
Diffstat (limited to 'services/net/java')
-rw-r--r-- | services/net/java/android/net/ip/IpServer.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/services/net/java/android/net/ip/IpServer.java b/services/net/java/android/net/ip/IpServer.java index 66884c60b0bc..6a6a1307723e 100644 --- a/services/net/java/android/net/ip/IpServer.java +++ b/services/net/java/android/net/ip/IpServer.java @@ -433,6 +433,9 @@ public class IpServer extends StateMachine { } } ifcg.clearFlag("running"); + + // TODO: this may throw if the interface is already gone. Do proper handling and + // simplify the DHCP server start/stop. mNMService.setInterfaceConfig(mIfaceName, ifcg); if (!configureDhcp(enabled, (Inet4Address) addr, prefixLen)) { @@ -440,6 +443,14 @@ public class IpServer extends StateMachine { } } catch (Exception e) { mLog.e("Error configuring interface " + e); + if (!enabled) { + try { + // Calling stopDhcp several times is fine + stopDhcp(); + } catch (Exception dhcpError) { + mLog.e("Error stopping DHCP", dhcpError); + } + } return false; } |