Use public API instead of hidden API in EthernetTracker

- Use public API of StaticIpConfiguration.Builder to set
ipaddress, domains, gateway and dnsServers.
- Use public constructor to create an instance of IpConfiguration
and set IpAssignment, ProxySettings, StaticIpConfiguration and
HttpProxy by public API.

Bug: 182963415
Test: m ethernet-service
Change-Id: Idce8bfe7afc31baa644c816afa1f8004987e8c6e
This commit is contained in:
lucaslin
2021-03-19 15:14:23 +08:00
parent 67226b3778
commit 4a0cbe98c1

View File

@@ -579,7 +579,8 @@ final class EthernetTracker {
*/ */
@VisibleForTesting @VisibleForTesting
static IpConfiguration parseStaticIpConfiguration(String staticIpConfig) { static IpConfiguration parseStaticIpConfiguration(String staticIpConfig) {
StaticIpConfiguration ipConfig = new StaticIpConfiguration(); final StaticIpConfiguration.Builder staticIpConfigBuilder =
new StaticIpConfiguration.Builder();
for (String keyValueAsString : staticIpConfig.trim().split(" ")) { for (String keyValueAsString : staticIpConfig.trim().split(" ")) {
if (TextUtils.isEmpty(keyValueAsString)) continue; if (TextUtils.isEmpty(keyValueAsString)) continue;
@@ -595,20 +596,20 @@ final class EthernetTracker {
switch (key) { switch (key) {
case "ip": case "ip":
ipConfig.ipAddress = new LinkAddress(value); staticIpConfigBuilder.setIpAddress(new LinkAddress(value));
break; break;
case "domains": case "domains":
ipConfig.domains = value; staticIpConfigBuilder.setDomains(value);
break; break;
case "gateway": case "gateway":
ipConfig.gateway = InetAddress.parseNumericAddress(value); staticIpConfigBuilder.setGateway(InetAddress.parseNumericAddress(value));
break; break;
case "dns": { case "dns": {
ArrayList<InetAddress> dnsAddresses = new ArrayList<>(); ArrayList<InetAddress> dnsAddresses = new ArrayList<>();
for (String address: value.split(",")) { for (String address: value.split(",")) {
dnsAddresses.add(InetAddress.parseNumericAddress(address)); dnsAddresses.add(InetAddress.parseNumericAddress(address));
} }
ipConfig.dnsServers.addAll(dnsAddresses); staticIpConfigBuilder.setDnsServers(dnsAddresses);
break; break;
} }
default : { default : {
@@ -617,11 +618,18 @@ final class EthernetTracker {
} }
} }
} }
return new IpConfiguration(IpAssignment.STATIC, ProxySettings.NONE, ipConfig, null); final IpConfiguration ret = new IpConfiguration();
ret.setIpAssignment(IpAssignment.STATIC);
ret.setProxySettings(ProxySettings.NONE);
ret.setStaticIpConfiguration(staticIpConfigBuilder.build());
return ret;
} }
private static IpConfiguration createDefaultIpConfiguration() { private static IpConfiguration createDefaultIpConfiguration() {
return new IpConfiguration(IpAssignment.DHCP, ProxySettings.NONE, null, null); final IpConfiguration ret = new IpConfiguration();
ret.setIpAssignment(IpAssignment.DHCP);
ret.setProxySettings(ProxySettings.NONE);
return ret;
} }
private void updateIfaceMatchRegexp() { private void updateIfaceMatchRegexp() {