sulogin: use bb_error_msg instead of bb_info_msg; better message
[oweals/busybox.git] / networking / dnsd.c
index 92d4867aa9a47913d38f5946bcbacf93dbfb6fb5..923ad6bc6ba1823a1f754ddfc7a0a02455c294d2 100644 (file)
  * the first porting of oao' scdns to busybox also.
  */
 
+//usage:#define dnsd_trivial_usage
+//usage:       "[-dvs] [-c CONFFILE] [-t TTL_SEC] [-p PORT] [-i ADDR]"
+//usage:#define dnsd_full_usage "\n\n"
+//usage:       "Small static DNS server daemon\n"
+//usage:     "\n       -c FILE Config file"
+//usage:     "\n       -t SEC  TTL"
+//usage:     "\n       -p PORT Listen on PORT"
+//usage:     "\n       -i ADDR Listen on ADDR"
+//usage:     "\n       -d      Daemonize"
+//usage:     "\n       -v      Verbose"
+//usage:     "\n       -s      Send successful replies only. Use this if you want"
+//usage:     "\n               to use /etc/resolv.conf with two nameserver lines:"
+//usage:     "\n                       nameserver DNSD_SERVER"
+//usage:     "\n                       nameserver NORMAL_DNS_SERVER"
+
 #include "libbb.h"
 #include <syslog.h>
 
@@ -179,7 +194,7 @@ static char *table_lookup(struct dns_entry *d,
                if ((len != 1 || d->name[1] != '*')
                /* we assume (do not check) that query_string
                 * ends in ".in-addr.arpa" */
-                && strncmp(d->rip, query_string, strlen(d->rip)) == 0
+                && is_prefixed_with(query_string, d->rip)
                ) {
 #if DEBUG
                        fprintf(stderr, "Found name:%s\n", d->name);
@@ -388,7 +403,7 @@ static int process_packet(struct dns_entry *conf_data,
        query_len = strlen(query_string) + 1;
        /* may be unaligned! */
        unaligned_type_class = (void *)(query_string + query_len);
-       query_len += sizeof(unaligned_type_class);
+       query_len += sizeof(*unaligned_type_class);
        /* where to append answer block */
        answb = (void *)(unaligned_type_class + 1);