.
[kopensolaris-gnu/glibc.git] / resolv / nsap_addr.c
index ea18501..7041e52 100644 (file)
@@ -1,52 +1,55 @@
+/*
+ * Copyright (c) 1996-1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
 #if defined(LIBC_SCCS) && !defined(lint)
-static char rcsid[] = "$Id$";
+static const char rcsid[] = "$BINDId: nsap_addr.c,v 8.10 1999/10/13 16:39:28 vixie Exp $";
 #endif /* LIBC_SCCS and not lint */
 
+#include <sys/types.h>
 #include <sys/param.h>
 #include <sys/socket.h>
+
 #include <netinet/in.h>
+#include <arpa/inet.h>
 #include <arpa/nameser.h>
+
 #include <ctype.h>
 #include <resolv.h>
 
-#include "../conf/portability.h"
-
-#if !defined(isxdigit) /* XXX - could be a function */
-static int
-isxdigit(c)
-       register int c;
-{
-       return ((c >= '0') && (c <= '9')) || ((c >= 'A') && (c <= 'F'));
-}
-#endif
-
 static char
-xtob(c)
-       register int c;
-{
+xtob(int c) {
        return (c - (((c >= '0') && (c <= '9')) ? '0' : '7'));
 }
 
 u_int
-inet_nsap_addr(ascii, binary, maxlen)
-       const char *ascii;
-       u_char *binary;
-       int maxlen;
-{
-       register u_char c, nib;
-       u_char *start = binary;
+inet_nsap_addr(const char *ascii, u_char *binary, int maxlen) {
+       u_char c, nib;
        u_int len = 0;
 
-       while ((c = *ascii++) != '\0' && len < maxlen) {
+       while ((c = *ascii++) != '\0' && len < (u_int)maxlen) {
                if (c == '.' || c == '+' || c == '/')
                        continue;
                if (!isascii(c))
                        return (0);
-               if (islower(c))
-                       c = toupper(c);
+               c = toupper(c);
                if (isxdigit(c)) {
                        nib = xtob(c);
-                       if (c = *ascii++) {
+                       c = *ascii++;
+                       if (c != '\0') {
                                c = toupper(c);
                                if (isxdigit(c)) {
                                        *binary++ = (nib << 4) | xtob(c);
@@ -64,14 +67,10 @@ inet_nsap_addr(ascii, binary, maxlen)
 }
 
 char *
-inet_nsap_ntoa(binlen, binary, ascii)
-       int binlen;
-       register const u_char *binary;
-       register char *ascii;
-{
-       register int nib;
+inet_nsap_ntoa(int binlen, const u_char *binary, char *ascii) {
+       int nib;
        int i;
-       static char tmpbuf[255*3];
+       static char tmpbuf[255*2 + 128];
        char *start;
 
        if (ascii)