Fix some policy-base routing issues.
Secondary nets sometimes come up with no routes, but parsing errors end up with null routes getting added. Trim that away. Also added some dumpstate logging of the secondary route tables and rules. bug:5615697 Change-Id: I94c9d888bab958df44891b9117236436e046cc7f
This commit is contained in:
@@ -120,6 +120,12 @@ static void dumpstate() {
|
||||
|
||||
dump_file("NETWORK ROUTES", "/proc/net/route");
|
||||
dump_file("NETWORK ROUTES IPV6", "/proc/net/ipv6_route");
|
||||
run_command("IP RULES", 10, "ip", "rule", "show", NULL);
|
||||
run_command("IP RULES v6", 10, "ip", "-6", "rule", "show", NULL);
|
||||
run_command("ROUTE TABLE 60", 10, "ip", "route", "show", "table", "60", NULL);
|
||||
run_command("ROUTE TABLE 61 v6", 10, "ip", "-6", "route", "show", "table", "60", NULL);
|
||||
run_command("ROUTE TABLE 61", 10, "ip", "route", "show", "table", "61", NULL);
|
||||
run_command("ROUTE TABLE 61 v6", 10, "ip", "-6", "route", "show", "table", "61", NULL);
|
||||
dump_file("ARP CACHE", "/proc/net/arp");
|
||||
run_command("IPTABLES", 10, "su", "root", "iptables", "-L", "-nvx", NULL);
|
||||
run_command("IP6TABLES", 10, "su", "root", "ip6tables", "-L", "-nvx", NULL);
|
||||
|
||||
@@ -856,13 +856,17 @@ public class NetworkManagementService extends INetworkManagementService.Stub
|
||||
|
||||
NetworkInterface internalNetworkInterface =
|
||||
NetworkInterface.getByName(internalInterface);
|
||||
Collection<InterfaceAddress>interfaceAddresses =
|
||||
internalNetworkInterface.getInterfaceAddresses();
|
||||
cmd += " " + interfaceAddresses.size();
|
||||
for (InterfaceAddress ia : interfaceAddresses) {
|
||||
InetAddress addr = NetworkUtils.getNetworkPart(ia.getAddress(),
|
||||
ia.getNetworkPrefixLength());
|
||||
cmd = cmd + " " + addr.getHostAddress() + "/" + ia.getNetworkPrefixLength();
|
||||
if (internalNetworkInterface == null) {
|
||||
cmd += " 0";
|
||||
} else {
|
||||
Collection<InterfaceAddress>interfaceAddresses =
|
||||
internalNetworkInterface.getInterfaceAddresses();
|
||||
cmd += " " + interfaceAddresses.size();
|
||||
for (InterfaceAddress ia : interfaceAddresses) {
|
||||
InetAddress addr = NetworkUtils.getNetworkPart(ia.getAddress(),
|
||||
ia.getNetworkPrefixLength());
|
||||
cmd = cmd + " " + addr.getHostAddress() + "/" + ia.getNetworkPrefixLength();
|
||||
}
|
||||
}
|
||||
|
||||
mConnector.doCommand(cmd);
|
||||
|
||||
@@ -126,6 +126,8 @@ public class DataCallState {
|
||||
// set link addresses
|
||||
if (addresses != null && addresses.length > 0) {
|
||||
for (String addr : addresses) {
|
||||
addr = addr.trim();
|
||||
if (addr.isEmpty()) continue;
|
||||
LinkAddress la;
|
||||
int addrPrefixLen;
|
||||
|
||||
@@ -159,6 +161,8 @@ public class DataCallState {
|
||||
// set dns servers
|
||||
if (dnses != null && dnses.length > 0) {
|
||||
for (String addr : dnses) {
|
||||
addr = addr.trim();
|
||||
if (addr.isEmpty()) continue;
|
||||
InetAddress ia;
|
||||
try {
|
||||
ia = NetworkUtils.numericToInetAddress(addr);
|
||||
@@ -174,6 +178,8 @@ public class DataCallState {
|
||||
dnsServers[0] = SystemProperties.get(propertyPrefix + "dns1");
|
||||
dnsServers[1] = SystemProperties.get(propertyPrefix + "dns2");
|
||||
for (String dnsAddr : dnsServers) {
|
||||
dnsAddr = dnsAddr.trim();
|
||||
if (dnsAddr.isEmpty()) continue;
|
||||
InetAddress ia;
|
||||
try {
|
||||
ia = NetworkUtils.numericToInetAddress(dnsAddr);
|
||||
@@ -198,6 +204,8 @@ public class DataCallState {
|
||||
}
|
||||
}
|
||||
for (String addr : gateways) {
|
||||
addr = addr.trim();
|
||||
if (addr.isEmpty()) continue;
|
||||
InetAddress ia;
|
||||
try {
|
||||
ia = NetworkUtils.numericToInetAddress(addr);
|
||||
|
||||
Reference in New Issue
Block a user