date and time created 85/03/01 10:42:09 by ralph
[unix-history] / usr / src / lib / libc / net / getnetent.c
index 75bcf00..5e1c6bc 100644 (file)
@@ -1,19 +1,19 @@
-/*     getnetent.c     4.1     82/08/25        */
+/*     getnetent.c     4.8     83/05/23        */
 
 #include <stdio.h>
 
 #include <stdio.h>
+#include <sys/types.h>
 #include <sys/socket.h>
 #include <netdb.h>
 #include <ctype.h>
 
 #define        MAXALIASES      35
 
 #include <sys/socket.h>
 #include <netdb.h>
 #include <ctype.h>
 
 #define        MAXALIASES      35
 
-static char *NETDB = "/usr/lib/networks";
+static char NETDB[] = "/etc/networks";
 static FILE *netf = NULL;
 static char line[BUFSIZ+1];
 static struct netent net;
 static char *net_aliases[MAXALIASES];
 static int stayopen = 0;
 static FILE *netf = NULL;
 static char line[BUFSIZ+1];
 static struct netent net;
 static char *net_aliases[MAXALIASES];
 static int stayopen = 0;
-static unsigned long value();
 static char *any();
 
 setnetent(f)
 static char *any();
 
 setnetent(f)
@@ -62,10 +62,12 @@ again:
        p = any(cp, " \t");
        if (p != NULL)
                *p++ = '\0';
        p = any(cp, " \t");
        if (p != NULL)
                *p++ = '\0';
-       net.n_net = value(cp);
-       net.n_aliases = net_aliases;
-       q = net_aliases, cp = p;
-       while (*cp) {
+       net.n_net = inet_network(cp);
+       net.n_addrtype = AF_INET;
+       q = net.n_aliases = net_aliases;
+       if (p != NULL) 
+               cp = p;
+       while (cp && *cp) {
                if (*cp == ' ' || *cp == '\t') {
                        cp++;
                        continue;
                if (*cp == ' ' || *cp == '\t') {
                        cp++;
                        continue;
@@ -73,75 +75,13 @@ again:
                if (q < &net_aliases[MAXALIASES - 1])
                        *q++ = cp;
                cp = any(cp, " \t");
                if (q < &net_aliases[MAXALIASES - 1])
                        *q++ = cp;
                cp = any(cp, " \t");
-               if (*cp != NULL)
+               if (cp != NULL)
                        *cp++ = '\0';
        }
        *q = NULL;
        return (&net);
 }
 
                        *cp++ = '\0';
        }
        *q = NULL;
        return (&net);
 }
 
-static unsigned long
-value(cp)
-       register char *cp;
-{
-       register unsigned long val, base, n;
-       register char c;
-       unsigned long parts[4], *pp = parts;
-
-again:
-       val = 0; base = 10;
-       if (*cp == '0')
-               base = 8, cp++;
-       if (*cp == 'x' || *cp == 'X')
-               base = 16, cp++;
-       while (c = *cp) {
-               if (isdigit(c)) {
-                       val = (val * base) + (c - '0');
-                       cp++;
-                       continue;
-               }
-               if (base == 16 && isxdigit(c)) {
-                       val = (val << 4) + (c + 10 - (islower(c) ? 'a' : 'A'));
-                       cp++;
-                       continue;
-               }
-               break;
-       }
-       if (*cp == '.') {
-               /*
-                * Internet format:
-                *      a.b.c.d
-                *      a.b.c   (with c treated as 16-bits)
-                *      a.b     (with b treated as 24 bits)
-                */
-               if (pp >= parts + 4)
-                       return (-1);
-               *pp++ = val, cp++;
-               goto again;
-       }
-       if (*cp && !isspace(*cp))
-               return (-1);
-       n = pp - parts;
-       if (n > 0) {
-               if (n > 4)
-                       return (-1);
-               *pp++ = val; n++;
-               val = parts[0];
-               if (n > 1)
-                       val <<= 24;
-               if (n > 2)
-                       val |= (parts[1] & 0xff) << 16;
-               if (n > 3)
-                       val |= (parts[2] & 0xff) << 8;
-               if (n > 1)
-                       val |= parts[n - 1];
-#if vax || pdp11
-               val = htonl(val);
-#endif
-       }
-       return (val);
-}
-
 static char *
 any(cp, match)
        register char *cp;
 static char *
 any(cp, match)
        register char *cp;