add different logic to handle static ip configuration.
Bug: b/64914694 <http://b/issue?id=64914694&query=64914694>
Test: follow the following steps to switch ethernet config
1.Plug Ethernet cable ,Ethernet succeed to access internet with DHCP mode
2.Change Ethernet IP settings to Static
3.Input correct ip , gateway, prefix length, DNS
4.UI show Connected, but failed to access Internet.
Change-Id: I223bca85814e94745fbb8b50ca677eb7032e9bb3
(cherry picked from commit 44a107bc8f058c6ac1aab6fbfbf60bf8f3474711)
If the interface disappears between interfaceAdded() and
setInterfaceUp, we'll crash with an IllegalStateException in
NetworkManagementService#setInterfaceConfig.
Ignore the error instead. This should be safe because we don't
modify any state unless our calls succeed.
(cherry picked from commit 17f4e4a027)
Bug: 62870779
Test: builds aosp_bullhead-eng
Test: builds marlin-eng
Test: exception is logged and device doesn't crash when unplugging USB ethernet adapter while it's being initialized
Change-Id: If8c2375f7fffe25a9fa79dc4f1981c745384a276
If the interface disappears between interfaceAdded() and
setInterfaceUp, we'll crash with an IllegalStateException in
NetworkManagementService#setInterfaceConfig.
Ignore the error instead. This should be safe because we don't
modify any state unless our calls succeed.
Bug: 62870779
Test: builds aosp_bullhead-eng
Change-Id: If8c2375f7fffe25a9fa79dc4f1981c745384a276
1. Remove the IP provisioning thread and just attempt
provisioning indefinitely whenever we have an interface.
2. Make all methods run on the passed-in handler thread. This
makes it easier to verify correctness by code inspection.
3. Remove the code that changes the factory score depending on
whether we're tracking an interface and have link. This is
unnecessary complexity, as there is no penalty to accepting a
request even if we don't have an interface.
4. Remove code duplication and only have one codepath for
stopping layer 3.
Tested the following are tested with this CL:
- Booting with an interface connected.
- Disconnecting/reconnecting the Ethernet cable repeatedly,
particularly at inconvenient times (e.g., during provisioning).
- Similarly, disconnecting/reconnecting USB Ethernet interfaces.
- Falling back to another Ethernet interface if the currently
tracked Ethernet interface is unplugged.
- Disconnecting and restarting provisioning when provisioning is
lost (e.g., if the default route is deleted).
- Crashing the system server causes Ethernet to reconnect on
restart.
- The above while running watch -n 0.1 adb shell dumpsys ethernet
(cherry picked from commit 9effed6f9e)
Bug: 62308954
Test: tested on marlin with USB ethernet adapters, as described
Test: smoketested on aosp_bullhead
Change-Id: Ie3041f1d453d15c81eee81adfc8593269c499d79
1. Remove the IP provisioning thread and just attempt
provisioning indefinitely whenever we have an interface.
2. Make all methods run on the passed-in handler thread. This
makes it easier to verify correctness by code inspection.
3. Remove the code that changes the factory score depending on
whether we're tracking an interface and have link. This is
unnecessary complexity, as there is no penalty to accepting a
request even if we don't have an interface.
4. Remove code duplication and only have one codepath for
stopping layer 3.
Tested the following are tested with this CL:
- Booting with an interface connected.
- Disconnecting/reconnecting the Ethernet cable repeatedly,
particularly at inconvenient times (e.g., during provisioning).
- Similarly, disconnecting/reconnecting USB Ethernet interfaces.
- Falling back to another Ethernet interface if the currently
tracked Ethernet interface is unplugged.
- Disconnecting and restarting provisioning when provisioning is
lost (e.g., if the default route is deleted).
- Crashing the system server causes Ethernet to reconnect on
restart.
- The above while running watch -n 0.1 adb shell dumpsys ethernet
Bug: 62308954
Test: tested on marlin with USB ethernet adapters, as described
Change-Id: Iad12a52a903bfaccf7e245dfe499652c752c31e9
This fixes a longstanding bug where after a DHCP timeout, we
would never restart the DHCP client and get an IP address until
the link bounced.
Also, two minor improvements:
1. Dump IpManager info when dump() is called.
2. When onLinkPropertiesChange is called, also update
mLinkProperties. We were already sending the updated
LinkProperties to the NetworkAgent, so this is really only
useful for dump(), but it's just one line and safe because
onLinkPropertiesChange already grabs the lock.
Bug: 17733693
Change-Id: I42c3319cb4bc151c547ed721baf5e83f97e23862
Requiring CHANGE_NETWORK_STATE is pointless, since immediately
after doing that we require CONNECTIVITY_INTERNAL, which is
a system-only permission.
Bug: 23597341
Change-Id: If4c8ecbb319e547c2c81d2dcc3c7bbb63e0bc2af
The intent of the code was to catch exceptions, but it wasn't
actually doing that because when a netd command fails we get an
IllegalStateException, not a RemoteException.
Bug: 23581852
Change-Id: I66c7c33bdc7b0d0de4fa5cd92dff054797cf860f
Replaced the method where we used to enforce static permission
CHANGE_NETWORK_STATE to method calls that also check for WRITE_SETTINGS.
This is due to the merging of CHANGE_NETWORK_STATE permission with
WRITE_SETTINGS in M.
Change-Id: I104ac41733663b4f6b5cd30e7314574ec4acdc07