[git commit] traceroute: code shrink

Denys Vlasenko vda.linux at googlemail.com
Sun Dec 13 14:58:47 UTC 2020


commit: https://git.busybox.net/busybox/commit/?id=6c5f4296dca1d836695d3ec77e7429bd40ca5ce3
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

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 at googlemail.com>
---
 networking/traceroute.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/networking/traceroute.c b/networking/traceroute.c
index c1eb2d92e..2f4d6bb43 100644
--- a/networking/traceroute.c
+++ b/networking/traceroute.c
@@ -602,12 +602,15 @@ pr_type(unsigned char t)
 
 	return ttab[t];
 }
-static void
-hexdump(const struct icmp *icp, int len)
+static int
+hexdump_if_verbose(const struct icmp *icp, int len)
 {
 	const unsigned char *p;
 	int i;
 
+	if (!verbose)
+		return 0;
+
 	printf("\n%d bytes from %s to %s: icmp type %u (%s) code %u\n",
 		len,
 		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]);
 	}
 	bb_putchar('\n');
+	return 0;
 }
 #else
-# define hexdump(...) ((void)0)
+# define hexdump_if_verbose(...) 0
 #endif
 
 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) */
-		hexdump(icp, read_len);
-	return 0;
+	/* testcase: traceroute -vI 127.0.0.1 (sees its own echo requests) */
+	return hexdump_if_verbose(icp, read_len);
 }
 
 #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 */
-		hexdump((const struct icmp *)icp, read_len);
-	return 0;
+	/* cast is safe since the beginning of icmp4 and icmp6 layouts match */
+	return hexdump_if_verbose((const struct icmp *)icp, read_len);
 }
 
 static int


More information about the busybox-cvs mailing list