dnsd: add more -v messages
authorDenys Vlasenko <vda.linux@googlemail.com>
Sun, 7 Feb 2010 00:11:18 +0000 (01:11 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 7 Feb 2010 00:11:18 +0000 (01:11 +0100)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
networking/dnsd.c

index 91d66edccfa5db5239e3261579ba1815ae96a69e..42deb1f3562a139df2ae8b5ef72f3fe362a267ca 100644 (file)
@@ -388,24 +388,32 @@ static int process_packet(struct dns_entry *conf_data,
 
        move_from_unaligned16(type, &unaligned_type_class->type);
        if (type != htons(REQ_A) && type != htons(REQ_PTR)) {
-               /* we can't handle the query type */
+               /* we can't handle this query type */
+//TODO: handle REQ_AAAA (0x1c) requests
+               bb_error_msg("type %u is !REQ_A and !REQ_PTR%s",
+                               (int)ntohs(type),
+                               ", returning Not Implemented reply");
                goto empty_packet;
        }
        move_from_unaligned16(class, &unaligned_type_class->class);
        if (class != htons(1)) { /* not class INET? */
+               bb_error_msg("class != 1%s",
+                               ", returning Not Implemented reply");
                goto empty_packet;
        }
        /* OPCODE != 0 "standard query" ? */
        if ((head->flags & htons(0x7800)) != 0) {
+               bb_error_msg("opcode != 0%s",
+                               ", returning Not Implemented reply");
                goto empty_packet;
        }
 
        /* look up the name */
+       answstr = table_lookup(conf_data, type, query_string);
 #if DEBUG
-       /* need to convert lengths to dots before we can use it in non-debug */
-       bb_info_msg("%s", query_string);
+       /* Shows lengths instead of dots, unusable for !DEBUG */
+       bb_error_msg("'%s'->'%s'", query_string, answstr);
 #endif
-       answstr = table_lookup(conf_data, type, query_string);
        outr_rlen = 4;
        if (answstr && type == htons(REQ_PTR)) {
                /* returning a host name */
@@ -417,6 +425,8 @@ static int process_packet(struct dns_entry *conf_data,
                /* QR = 1 "response"
                 * AA = 1 "Authoritative Answer"
                 * RCODE = 3 "Name Error" */
+               if (OPT_verbose)
+                       bb_error_msg("returning Name Error reply");
                outr_flags = htons(0x8000 | 0x0400 | 3);
                goto empty_packet;
        }
@@ -438,6 +448,8 @@ static int process_packet(struct dns_entry *conf_data,
         * "** server can't find HOSTNAME"
         * RCODE = 0 "success"
         */
+       if (OPT_verbose)
+               bb_error_msg("returning positive reply");
        outr_flags = htons(0x8000 | 0x0400 | 0);
        /* we have one answer */
        head->nansw = htons(1);
@@ -492,7 +504,7 @@ int dnsd_main(int argc UNUSED_PARAM, char **argv)
 
        {
                char *p = xmalloc_sockaddr2dotted(&lsa->u.sa);
-               bb_info_msg("Accepting UDP packets on %s", p);
+               bb_error_msg("accepting UDP packets on %s", p);
                free(p);
        }
 
@@ -510,7 +522,7 @@ int dnsd_main(int argc UNUSED_PARAM, char **argv)
                        continue;
                }
                if (OPT_verbose)
-                       bb_info_msg("Got UDP packet");
+                       bb_error_msg("got UDP packet");
                buf[r] = '\0'; /* paranoia */
                r = process_packet(conf_data, conf_ttl, buf);
                if (r <= 0)