# 2.11BSD#431 - /usr/src/lib/libc/net/getnent.c

##### Functions

    endnetent         X
    getnetent         X
    setnetent         X

##### Variables

    _net_stayopen     X

##### Macros

    MAXALIASES        X

       1: /*
       2:  * Copyright (c) 1983 Regents of the University of California.
       3:  * All rights reserved.  The Berkeley software License Agreement
       4:  * specifies the terms and conditions for redistribution.
       5:  */
       6:
       7: #if defined(LIBC_SCCS) && !defined(lint)
       8: static char sccsid[] = "@(#)getnetent.c	5.3 (Berkeley) 5/19/86";
       9: #endif LIBC_SCCS and not lint
      10:
      11: #include <stdio.h>
      12: #include <sys/types.h>
      13: #include <sys/socket.h>
      14: #include <arpa/inet.h>
      15: #include <netdb.h>
      16: #include <ctype.h>
      17:
      18: #define MAXALIASES  35
      19:
      20: static char NETDB[] = "/etc/networks";
      21: static FILE *netf = NULL;
      22: static char line[256+1];
      23: static struct netent net;
      24: static char *net_aliases[MAXALIASES];
      25: int _net_stayopen;
      26: static char *any();
      27:
      28: setnetent(f)
      29:     int f;
      30: {
      31:     if (netf == NULL)
      32:         netf = fopen(NETDB, "r" );
      33:     else
      34:         rewind(netf);
      35:     _net_stayopen |= f;
      36: }
      37:
      38: endnetent()
      39: {
      40:     if (netf) {
      41:         fclose(netf);
      42:         netf = NULL;
      43:     }
      44:     _net_stayopen = 0;
      45: }
      46:
      47: struct netent *
      48: getnetent()
      49: {
      50:     char *p;
      51:     register char *cp, **q;
      52:
      53:     if (netf == NULL && (netf = fopen(NETDB, "r" )) == NULL)
      54:         return (NULL);
      55: again:
      56:     p = fgets(line, sizeof(line)-1, netf);
      57:     if (p == NULL)
      58:         return (NULL);
      59:     if (*p == '#')
      60:         goto again;
      61:     cp = any(p, "#\n");
      62:     if (cp == NULL)
      63:         goto again;
      64:     *cp = '\0';
      65:     net.n_name = p;
      66:     cp = any(p, " \t");
      67:     if (cp == NULL)
      68:         goto again;
      69:     *cp++ = '\0';
      70:     while (*cp == ' ' || *cp == '\t')
      71:         cp++;
      72:     p = any(cp, " \t");
      73:     if (p != NULL)
      74:         *p++ = '\0';
      75:     net.n_net = inet_network(cp);
      76:     net.n_addrtype = AF_INET;
      77:     q = net.n_aliases = net_aliases;
      78:     if (p != NULL)
      79:         cp = p;
      80:     while (cp && *cp) {
      81:         if (*cp == ' ' || *cp == '\t') {
      82:             cp++;
      83:             continue;
      84:         }
      85:         if (q < &net_aliases[MAXALIASES - 1])
      86:             *q++ = cp;
      87:         cp = any(cp, " \t");
      88:         if (cp != NULL)
      89:             *cp++ = '\0';
      90:     }
      91:     *q = NULL;
      92:     return (&net);
      93: }
      94:
      95: static char *
      96: any(cp, match)
      97:     register char *cp;
      98:     char *match;
      99: {
     100:     register char *mp, c;
     101:
     102:     while (c = *cp) {
     103:         for (mp = match; *mp; mp++)
     104:             if (*mp == c)
     105:                 return (cp);
     106:         cp++;
     107:     }
     108:     return ((char *)0);
     109: }

#### Defined functions

any defined in line 95; used 5 times

- in line 26, 61-66(2), 72, 87

endnetent defined in line 38; used 3 times

- in /usr/src/lib/libc/net/getnbyaddr.c line 27
- in /usr/src/lib/libc/net/getnbyname.c line 32
- in /usr/src/ucb/PORT/systat/netstat.c line 83

getnetent defined in line 47; used 5 times

- in /usr/include/netdb.h line 58
- in /usr/src/include/netdb.h line 56
- in /usr/src/lib/libc/net/getnbyaddr.c line 23
- in /usr/src/lib/libc/net/getnbyname.c line 23
- in /usr/src/usr.sbin/timed/timed.c line 222

setnetent defined in line 28; used 3 times

- in /usr/src/lib/libc/net/getnbyaddr.c line 22
- in /usr/src/lib/libc/net/getnbyname.c line 22
- in /usr/src/ucb/PORT/systat/netstat.c line 47

#### Defined variables

NETDB defined in line 20; used 2 times

- in line 32, 53

_net_stayopen defined in line 25; used 6 times

- in line 35, 44
- in /usr/src/lib/libc/net/getnbyaddr.c line 22-26(2)
- in /usr/src/lib/libc/net/getnbyname.c line 22, 31

line defined in line 22; used 2 times

- in line 56(2)

net defined in line 23; used 5 times

- in line 65, 75-77(3), 92

net_aliases defined in line 24; used 2 times

- in line 77, 85

sccsid defined in line 8; never used

#### Defined macros

MAXALIASES defined in line 18; used 2 times

- in line 24, 85

Last modified: 1988-08-23 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 746 |