1999-03-07 Mark Kettenis <kettenis@gnu.org>
[kopensolaris-gnu/glibc.git] / resolv / inet_pton.c
index cfc069d..7f8370d 100644 (file)
@@ -26,15 +26,15 @@ static char rcsid[] = "$Id$";
 #include <arpa/nameser.h>
 #include <string.h>
 #include <errno.h>
-#include "../conf/portability.h"
+#include <conf/portability.h>
 
 /*
  * WARNING: Don't even consider trying to compile this on a system where
  * sizeof(int) < 4.  sizeof(int) > 4 is fine; all the world's not a VAX.
  */
 
-static int     inet_pton4 __P((const char *src, u_char *dst));
-static int     inet_pton6 __P((const char *src, u_char *dst));
+static int inet_pton4 __P((const char *src, u_char *dst)) internal_function;
+static int inet_pton6 __P((const char *src, u_char *dst)) internal_function;
 
 /* int
  * inet_pton(af, src, dst)
@@ -59,7 +59,7 @@ inet_pton(af, src, dst)
        case AF_INET6:
                return (inet_pton6(src, dst));
        default:
-               errno = EINVAL;
+               __set_errno (EAFNOSUPPORT);
                return (-1);
        }
        /* NOTREACHED */
@@ -67,7 +67,7 @@ inet_pton(af, src, dst)
 
 /* int
  * inet_pton4(src, dst)
- *     like inet_pton() but without all the hexadecimal and shorthand.
+ *     like inet_aton() but without all the hexadecimal and shorthand.
  * return:
  *     1 if `src' is a valid dotted quad, else 0.
  * notice:
@@ -76,6 +76,7 @@ inet_pton(af, src, dst)
  *     Paul Vixie, 1996.
  */
 static int
+internal_function
 inet_pton4(src, dst)
        const char *src;
        u_char *dst;
@@ -111,7 +112,8 @@ inet_pton4(src, dst)
        }
        if (octets < 4)
                return (0);
-       bcopy(tmp, dst, INADDRSZ);
+
+       memcpy(dst, tmp, INADDRSZ);
        return (1);
 }
 
@@ -129,6 +131,7 @@ inet_pton4(src, dst)
  *     Paul Vixie, 1996.
  */
 static int
+internal_function
 inet_pton6(src, dst)
        const char *src;
        u_char *dst;
@@ -140,7 +143,7 @@ inet_pton6(src, dst)
        int ch, saw_xdigit;
        u_int val;
 
-       bzero((tp = tmp), IN6ADDRSZ);
+       memset((tp = tmp), '\0', IN6ADDRSZ);
        endp = tp + IN6ADDRSZ;
        colonp = NULL;
        /* Leading :: requires some special handling. */
@@ -209,6 +212,6 @@ inet_pton6(src, dst)
        }
        if (tp != endp)
                return (0);
-       bcopy(tmp, dst, IN6ADDRSZ);
+       memcpy(dst, tmp, IN6ADDRSZ);
        return (1);
 }