Merge "Fix some policy-base routing issues." into ics-mr1

This commit is contained in:
Robert Greenwalt
2011-11-23 11:25:39 -08:00
committed by Android (Google) Code Review
3 changed files with 25 additions and 7 deletions

View File

@@ -120,6 +120,12 @@ static void dumpstate() {
dump_file("NETWORK ROUTES", "/proc/net/route"); dump_file("NETWORK ROUTES", "/proc/net/route");
dump_file("NETWORK ROUTES IPV6", "/proc/net/ipv6_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"); dump_file("ARP CACHE", "/proc/net/arp");
run_command("IPTABLES", 10, "su", "root", "iptables", "-L", "-nvx", NULL); run_command("IPTABLES", 10, "su", "root", "iptables", "-L", "-nvx", NULL);
run_command("IP6TABLES", 10, "su", "root", "ip6tables", "-L", "-nvx", NULL); run_command("IP6TABLES", 10, "su", "root", "ip6tables", "-L", "-nvx", NULL);

View File

@@ -856,13 +856,17 @@ public class NetworkManagementService extends INetworkManagementService.Stub
NetworkInterface internalNetworkInterface = NetworkInterface internalNetworkInterface =
NetworkInterface.getByName(internalInterface); NetworkInterface.getByName(internalInterface);
Collection<InterfaceAddress>interfaceAddresses = if (internalNetworkInterface == null) {
internalNetworkInterface.getInterfaceAddresses(); cmd += " 0";
cmd += " " + interfaceAddresses.size(); } else {
for (InterfaceAddress ia : interfaceAddresses) { Collection<InterfaceAddress>interfaceAddresses =
InetAddress addr = NetworkUtils.getNetworkPart(ia.getAddress(), internalNetworkInterface.getInterfaceAddresses();
ia.getNetworkPrefixLength()); cmd += " " + interfaceAddresses.size();
cmd = cmd + " " + addr.getHostAddress() + "/" + ia.getNetworkPrefixLength(); for (InterfaceAddress ia : interfaceAddresses) {
InetAddress addr = NetworkUtils.getNetworkPart(ia.getAddress(),
ia.getNetworkPrefixLength());
cmd = cmd + " " + addr.getHostAddress() + "/" + ia.getNetworkPrefixLength();
}
} }
mConnector.doCommand(cmd); mConnector.doCommand(cmd);

View File

@@ -126,6 +126,8 @@ public class DataCallState {
// set link addresses // set link addresses
if (addresses != null && addresses.length > 0) { if (addresses != null && addresses.length > 0) {
for (String addr : addresses) { for (String addr : addresses) {
addr = addr.trim();
if (addr.isEmpty()) continue;
LinkAddress la; LinkAddress la;
int addrPrefixLen; int addrPrefixLen;
@@ -159,6 +161,8 @@ public class DataCallState {
// set dns servers // set dns servers
if (dnses != null && dnses.length > 0) { if (dnses != null && dnses.length > 0) {
for (String addr : dnses) { for (String addr : dnses) {
addr = addr.trim();
if (addr.isEmpty()) continue;
InetAddress ia; InetAddress ia;
try { try {
ia = NetworkUtils.numericToInetAddress(addr); ia = NetworkUtils.numericToInetAddress(addr);
@@ -174,6 +178,8 @@ public class DataCallState {
dnsServers[0] = SystemProperties.get(propertyPrefix + "dns1"); dnsServers[0] = SystemProperties.get(propertyPrefix + "dns1");
dnsServers[1] = SystemProperties.get(propertyPrefix + "dns2"); dnsServers[1] = SystemProperties.get(propertyPrefix + "dns2");
for (String dnsAddr : dnsServers) { for (String dnsAddr : dnsServers) {
dnsAddr = dnsAddr.trim();
if (dnsAddr.isEmpty()) continue;
InetAddress ia; InetAddress ia;
try { try {
ia = NetworkUtils.numericToInetAddress(dnsAddr); ia = NetworkUtils.numericToInetAddress(dnsAddr);
@@ -198,6 +204,8 @@ public class DataCallState {
} }
} }
for (String addr : gateways) { for (String addr : gateways) {
addr = addr.trim();
if (addr.isEmpty()) continue;
InetAddress ia; InetAddress ia;
try { try {
ia = NetworkUtils.numericToInetAddress(addr); ia = NetworkUtils.numericToInetAddress(addr);