diff options
author | Lorenzo Colitti <lorenzo@google.com> | 2013-04-08 18:30:55 +0900 |
---|---|---|
committer | Lorenzo Colitti <lorenzo@google.com> | 2013-04-10 09:37:51 +0900 |
commit | f913fe49272286a7f1e58d94a208b6dc06a51fd2 (patch) | |
tree | 1b8e60793e43df6a37d33cd505f2eb51084a6efe | |
parent | 0278627f576832860af2d84e04e383ecaa92d74f (diff) | |
download | android_external_android-clat-f913fe49272286a7f1e58d94a208b6dc06a51fd2.tar.gz android_external_android-clat-f913fe49272286a7f1e58d94a208b6dc06a51fd2.tar.bz2 android_external_android-clat-f913fe49272286a7f1e58d94a208b6dc06a51fd2.zip |
Slightly improve dumping packets
Add a function for dumping iovecs, and make hexdumps clearer by
adding spaces between bytes.
Bug: 8276725
Change-Id: Ifb2f8317613d05fa6bd600700090a6df258cde08
-rw-r--r-- | dump.c | 17 | ||||
-rw-r--r-- | dump.h | 1 |
2 files changed, 14 insertions, 4 deletions
@@ -216,15 +216,24 @@ void dump_tcp6(const struct tcphdr *tcp, const struct ip6_hdr *ip6, const char * /* generic hex dump */ void logcat_hexdump(const char *info, const char *data, size_t len) { - char output[PACKETLEN*2+1]; + char output[PACKETLEN*3+2]; size_t i; for(i = 0; i < len && i < PACKETLEN; i++) { - snprintf(output + i*2, 3, "%02x", (uint8_t)data[i]); + snprintf(output + i*3, 4, " %02x", (uint8_t)data[i]); } - output[len*2+2] = '\0'; + output[len*3+3] = '\0'; - logmsg(ANDROID_LOG_WARN,"info %s len %d data %s", info, len, output); + logmsg(ANDROID_LOG_WARN,"info %s len %d data%s", info, len, output); } +void dump_iovec(const struct iovec *iov, int iov_len) { + int i; + char *str; + for (i = 0; i < iov_len; i++) { + asprintf(&str, "iov[%d]: ", i); + logcat_hexdump(str, iov[i].iov_base, iov[i].iov_len); + free(str); + } +} #endif // CLAT_DEBUG @@ -29,5 +29,6 @@ void dump_udp6(const struct udphdr *udp, const struct ip6_hdr *ip6, const char * void dump_tcp6(const struct tcphdr *tcp, const struct ip6_hdr *ip6, const char *payload, size_t payload_size, const char *options, size_t options_size); void logcat_hexdump(const char *info, const char *data, size_t len); +void dump_iovec(const struct iovec *iov, int iov_len); #endif /* __DUMP_H__ */ |