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 /cmds/dumpstate/utils.c | |
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
Diffstat (limited to 'cmds/dumpstate/utils.c')
-rw-r--r-- | cmds/dumpstate/utils.c | 19 |
1 files changed, 19 insertions, 0 deletions
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); +} |