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
static IpConfiguration parseStaticIpConfiguration(String staticIpConfig) {
StaticIpConfiguration ipConfig = new StaticIpConfiguration();
final StaticIpConfiguration.Builder staticIpConfigBuilder =
new StaticIpConfiguration.Builder();
for (String keyValueAsString : staticIpConfig.trim().split(" ")) {
if (TextUtils.isEmpty(keyValueAsString)) continue;
@@ -595,20 +596,20 @@ final class EthernetTracker {
switch (key) {
case "ip":
ipConfig.ipAddress = new LinkAddress(value);
staticIpConfigBuilder.setIpAddress(new LinkAddress(value));
break;
case "domains":
ipConfig.domains = value;
staticIpConfigBuilder.setDomains(value);
break;
case "gateway":
ipConfig.gateway = InetAddress.parseNumericAddress(value);
staticIpConfigBuilder.setGateway(InetAddress.parseNumericAddress(value));
break;
case "dns": {
ArrayList<InetAddress> dnsAddresses = new ArrayList<>();
for (String address: value.split(",")) {
dnsAddresses.add(InetAddress.parseNumericAddress(address));
}
ipConfig.dnsServers.addAll(dnsAddresses);
staticIpConfigBuilder.setDnsServers(dnsAddresses);
break;
}
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() {
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() {