[git commit] nslookup: smaller qtypes[] array

Denys Vlasenko vda.linux at googlemail.com
Sun Apr 15 08:52:11 UTC 2018


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

function                                             old     new   delta
nslookup_main                                       2708    2715      +7
qtypes                                                80      72      -8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 7/-8)               Total: -1 bytes
   text	   data	    bss	    dec	    hex	filename
 926277	    555	   5740	 932572	  e3adc	busybox_old
 926262	    555	   5740	 932557	  e3acd	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/nslookup.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/networking/nslookup.c b/networking/nslookup.c
index d31801e96..c6f431347 100644
--- a/networking/nslookup.c
+++ b/networking/nslookup.c
@@ -271,8 +271,8 @@ struct query {
 };
 
 static const struct {
-	int type;
-	const char *name;
+	unsigned char type;
+	char name[7];
 } qtypes[] = {
 	{ ns_t_soa,   "SOA"   },
 	{ ns_t_ns,    "NS"    },
@@ -285,7 +285,6 @@ static const struct {
 	{ ns_t_txt,   "TXT"   },
 	{ ns_t_ptr,   "PTR"   },
 	{ ns_t_any,   "ANY"   },
-	{ }
 };
 
 static const char *const rcodes[] = {
@@ -803,7 +802,7 @@ int nslookup_main(int argc UNUSED_PARAM, char **argv)
 			ptr = chr + 1;
 
 		for (c = 0;; c++) {
-			if (!qtypes[c].name)
+			if (c == ARRAY_SIZE(qtypes))
 				bb_error_msg_and_die("invalid query type \"%s\"", ptr);
 			if (strcmp(qtypes[c].name, ptr) == 0)
 				break;
@@ -836,13 +835,11 @@ int nslookup_main(int argc UNUSED_PARAM, char **argv)
 				add_query(&queries, &n_queries, T_AAAA, *argv);
 #endif
 			}
-		}
-		else {
+		} else {
 			int c;
-			for (c = 0; qtypes[c].name; c++) {
+			for (c = 0; c < ARRAY_SIZE(qtypes); c++) {
 				if (types & (1 << c))
-					add_query(&queries, &n_queries, qtypes[c].type,
-						*argv);
+					add_query(&queries, &n_queries, qtypes[c].type,	*argv);
 			}
 		}
 		argv++;


More information about the busybox-cvs mailing list