Print this page
1926 libresolv evades compiler warnings

@@ -1,6 +1,7 @@
 /*
+ * Copyright 2015 Gary Mills
  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
 /*

@@ -21,14 +22,16 @@
 #include <netinet/in.h>
 #include <ctype.h>
 #include <netdb.h>
 #include <stdio.h>
 #include <errno.h>
+#include <string.h>
 #include <arpa/inet.h>
 #include <arpa/nameser.h>
 #include <resolv.h>
 #include <syslog.h>
+#include "crossl.h"
 
 /*
  * When the name service switch calls libresolv, it doesn't want fallback
  * to /etc/hosts, so we provide a method to turn it off.
  */

@@ -101,12 +104,12 @@
         bp = hostbuf;
         buflen = sizeof (hostbuf);
         cp = answer->buf + sizeof (HEADER);
         if (qdcount) {
                 if (iquery) {
-                        if ((n = dn_expand((char *)answer->buf, eom,
-                                                cp, bp, buflen)) < 0) {
+                        if ((n = dn_expand(answer->buf, eom,
+                            cp, (u_char *)bp, buflen)) < 0) {
                                 h_errno = NO_RECOVERY;
                                 return ((struct hostent *) NULL);
                         }
                         cp += n + QFIXEDSZ;
                         host.h_name = bp;

@@ -130,12 +133,12 @@
 #if BSD >= 43 || defined(h_addr)        /* new-style hostent structure */
         host.h_addr_list = h_addr_ptrs;
 #endif
         haveanswer = 0;
         while (--ancount >= 0 && cp < eom && haveanswer < MAXADDRS) {
-                if ((n = dn_expand((char *)answer->buf, eom,
-                                                cp, bp, buflen)) < 0)
+                if ((n = dn_expand(answer->buf, eom,
+                    cp, (u_char *)bp, buflen)) < 0)
                         break;
                 cp += n;
                 type = _getshort(cp);
                 cp += sizeof (u_short);
                 class = _getshort(cp);

@@ -151,12 +154,12 @@
                         bp += n;
                         buflen -= n;
                         continue;
                 }
                 if (iquery && type == T_PTR) {
-                        if ((n = dn_expand((char *)answer->buf, eom,
-                                        cp, bp, buflen)) < 0) {
+                        if ((n = dn_expand(answer->buf, eom,
+                            cp, (u_char *)bp, buflen)) < 0) {
                                 cp += n;
                                 continue;
                         }
                         cp += n;
                         host.h_name = bp;

@@ -229,11 +232,10 @@
         char *name;
 {
         querybuf buf;
         register char *cp;
         int n;
-        struct hostent *hp, *gethostdomain();
 
         /*
          * disallow names consisting only of digits/dots, unless
          * they end in a dot.
          */

@@ -279,11 +281,11 @@
         (void) sprintf(qbuf, "%d.%d.%d.%d.in-addr.arpa",
                 ((unsigned)addr[3] & 0xff),
                 ((unsigned)addr[2] & 0xff),
                 ((unsigned)addr[1] & 0xff),
                 ((unsigned)addr[0] & 0xff));
-        n = res_query(qbuf, C_IN, T_PTR, (char *)&buf, sizeof (buf));
+        n = res_query(qbuf, C_IN, T_PTR, (u_char *)&buf, sizeof (buf));
         if (n < 0) {
 #ifdef DEBUG
                 if (_res.options & RES_DEBUG)
                         printf("res_query failed\n");
 #endif