-/* 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 <sys/types.h>
#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;
+int _net_stayopen;
static char *any();
setnetent(f)
netf = fopen(NETDB, "r" );
else
rewind(netf);
- stayopen |= f;
+ _net_stayopen |= f;
}
endnetent()
{
- if (netf && !stayopen) {
+ if (netf) {
fclose(netf);
netf = NULL;
}
+ _net_stayopen = 0;
}
struct netent *
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 (q < &net_aliases[MAXALIASES - 1])
*q++ = cp;
cp = any(cp, " \t");
- if (*cp != NULL)
+ if (cp != NULL)
*cp++ = '\0';
}
*q = NULL;