document conditions wherein ruserok will fail
[unix-history] / usr / src / lib / libc / net / getnetent.c
index d51c89c..3784614 100644 (file)
@@ -1,18 +1,38 @@
-/*     getnetent.c     4.2     82/10/05        */
+/*
+ * Copyright (c) 1983 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+#if defined(LIBC_SCCS) && !defined(lint)
+static char sccsid[] = "@(#)getnetent.c        5.5 (Berkeley) %G%";
+#endif /* LIBC_SCCS and not lint */
 
 #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 FILE *netf = NULL;
 static char line[BUFSIZ+1];
 static struct netent net;
 static char *net_aliases[MAXALIASES];
-static int stayopen = 0;
+int _net_stayopen;
 static char *any();
 
 setnetent(f)
 static char *any();
 
 setnetent(f)
@@ -22,15 +42,16 @@ setnetent(f)
                netf = fopen(NETDB, "r" );
        else
                rewind(netf);
                netf = fopen(NETDB, "r" );
        else
                rewind(netf);
-       stayopen |= f;
+       _net_stayopen |= f;
 }
 
 endnetent()
 {
 }
 
 endnetent()
 {
-       if (netf && !stayopen) {
+       if (netf) {
                fclose(netf);
                netf = NULL;
        }
                fclose(netf);
                netf = NULL;
        }
+       _net_stayopen = 0;
 }
 
 struct netent *
 }
 
 struct netent *
@@ -61,10 +82,12 @@ again:
        p = any(cp, " \t");
        if (p != NULL)
                *p++ = '\0';
        p = any(cp, " \t");
        if (p != NULL)
                *p++ = '\0';
-       net.n_net = inet_addr(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;
@@ -72,7 +95,7 @@ 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;
                        *cp++ = '\0';
        }
        *q = NULL;