diff options
author | Sreeram Ramachandran <sreeram@google.com> | 2014-07-09 08:05:04 -0700 |
---|---|---|
committer | Sreeram Ramachandran <sreeram@google.com> | 2014-07-09 08:05:04 -0700 |
commit | c88da7cc21c61b9ac8fcac11aa812f647ffb181c (patch) | |
tree | 88f209ff3de0fa5c6209203b067cb489a25bf98f | |
parent | 46a86a9bbf31fafc7ab635b9503c77f329a2f445 (diff) | |
parent | 928e05b12b21a846ac956e83d46635bbab592ea7 (diff) | |
download | frameworks_native-c88da7cc21c61b9ac8fcac11aa812f647ffb181c.zip frameworks_native-c88da7cc21c61b9ac8fcac11aa812f647ffb181c.tar.gz frameworks_native-c88da7cc21c61b9ac8fcac11aa812f647ffb181c.tar.bz2 |
resolved conflicts for merge of 928e05b1 to master
Change-Id: I1d1e623a1f95baa4375a87242ce71ea789884649
-rw-r--r-- | cmds/dumpstate/dumpstate.c | 7 | ||||
-rw-r--r-- | cmds/dumpstate/dumpstate.h | 3 | ||||
-rw-r--r-- | cmds/dumpstate/utils.c | 19 |
3 files changed, 25 insertions, 4 deletions
diff --git a/cmds/dumpstate/dumpstate.c b/cmds/dumpstate/dumpstate.c index 7fb5b12..528bbfa 100644 --- a/cmds/dumpstate/dumpstate.c +++ b/cmds/dumpstate/dumpstate.c @@ -180,10 +180,9 @@ static void dumpstate() { run_command("NETWORK INTERFACES", 10, SU_PATH, "root", "netcfg", NULL); 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_route_tables(); + dump_file("ARP CACHE", "/proc/net/arp"); run_command("IPTABLES", 10, SU_PATH, "root", "iptables", "-L", "-nvx", NULL); run_command("IP6TABLES", 10, SU_PATH, "root", "ip6tables", "-L", "-nvx", NULL); diff --git a/cmds/dumpstate/dumpstate.h b/cmds/dumpstate/dumpstate.h index d820495..111bda6 100644 --- a/cmds/dumpstate/dumpstate.h +++ b/cmds/dumpstate/dumpstate.h @@ -67,6 +67,9 @@ void do_dmesg(); /* Dumps settings for a given user id */ void do_dump_settings(int userid); +/* Prints the contents of all the routing tables, both IPv4 and IPv6. */ +void dump_route_tables(); + /* Play a sound via Stagefright */ void play_sound(const char* path); diff --git a/cmds/dumpstate/utils.c b/cmds/dumpstate/utils.c index 6b119c3..309a004 100644 --- a/cmds/dumpstate/utils.c +++ b/cmds/dumpstate/utils.c @@ -632,3 +632,22 @@ error_close_fd: void play_sound(const char* path) { run_command(NULL, 5, "/system/bin/stagefright", "-o", "-a", path, NULL); } + +void dump_route_tables() { + const char* const RT_TABLES_PATH = "/data/misc/net/rt_tables"; + dump_file("RT_TABLES", RT_TABLES_PATH); + FILE* fp = fopen(RT_TABLES_PATH, "r"); + if (!fp) { + printf("*** %s: %s\n", RT_TABLES_PATH, strerror(errno)); + return; + } + char table[16]; + // Each line has an integer (the table number), a space, and a string (the table name). We only + // need the table number. It's a 32-bit unsigned number, so max 10 chars. Skip the table name. + // Add a fixed max limit so this doesn't go awry. + for (int i = 0; i < 64 && fscanf(fp, " %10s %*s", table) == 1; ++i) { + run_command("ROUTE TABLE IPv4", 10, "ip", "-4", "route", "show", "table", table, NULL); + run_command("ROUTE TABLE IPv6", 10, "ip", "-6", "route", "show", "table", table, NULL); + } + fclose(fp); +} |