traceroute: code shrink

function                                             old     new   delta
hexdump_if_verbose                                     -     255    +255
common_traceroute_main                              1668    1644     -24
hexdump                                              239       -    -239
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/1 up/down: 255/-263)           Total: -8 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2020-12-13 15:58:47 +01:00
parent 623e55a396
commit 6c5f4296dc

View File

@ -602,12 +602,15 @@ pr_type(unsigned char t)
return ttab[t]; return ttab[t];
} }
static void static int
hexdump(const struct icmp *icp, int len) hexdump_if_verbose(const struct icmp *icp, int len)
{ {
const unsigned char *p; const unsigned char *p;
int i; int i;
if (!verbose)
return 0;
printf("\n%d bytes from %s to %s: icmp type %u (%s) code %u\n", printf("\n%d bytes from %s to %s: icmp type %u (%s) code %u\n",
len, len,
auto_string(xmalloc_sockaddr2dotted_noport(&G.from_lsa->u.sa)), auto_string(xmalloc_sockaddr2dotted_noport(&G.from_lsa->u.sa)),
@ -622,9 +625,10 @@ hexdump(const struct icmp *icp, int len)
printf(" %02x", p[i]); printf(" %02x", p[i]);
} }
bb_putchar('\n'); bb_putchar('\n');
return 0;
} }
#else #else
# define hexdump(...) ((void)0) # define hexdump_if_verbose(...) 0
#endif #endif
static int static int
@ -704,9 +708,8 @@ packet4_ok(int read_len, int seq)
} }
} }
} }
if (verbose) /* testcase: traceroute -vI 127.0.0.1 (sees its own echo requests) */ /* testcase: traceroute -vI 127.0.0.1 (sees its own echo requests) */
hexdump(icp, read_len); return hexdump_if_verbose(icp, read_len);
return 0;
} }
#if ENABLE_TRACEROUTE6 #if ENABLE_TRACEROUTE6
@ -767,10 +770,8 @@ packet6_ok(int read_len, int seq)
} }
} }
} }
if (verbose) /* cast is safe since the beginning of icmp4 and icmp6 layouts match */
/* cast is safe since the beginning of icmp4 and icmp6 layouts match */ return hexdump_if_verbose((const struct icmp *)icp, read_len);
hexdump((const struct icmp *)icp, read_len);
return 0;
} }
static int static int