nslookup: smaller qtypes[] array
authorDenys Vlasenko <vda.linux@googlemail.com>
Sun, 15 Apr 2018 08:52:11 +0000 (10:52 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 15 Apr 2018 08:52:11 +0000 (10:52 +0200)
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@googlemail.com>
networking/nslookup.c

index d31801e9611daf136964b699cb2edf1290190685..c6f431347e14af448d1ab955fcadb2f0a8eb3756 100644 (file)
@@ -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++;