Annotation of 43BSDReno/contrib/isode-beta/snmp/smuxentry.c, revision 1.1.1.1

1.1       root        1: /* smuxentry.c - smuxEntry routines */
                      2: 
                      3: #ifndef        lint
                      4: static char *rcsid = "$Header: /f/osi/snmp/RCS/smuxentry.c,v 7.0 90/02/17 10:36:47 mrose Exp $";
                      5: #endif
                      6: 
                      7: /* 
                      8:  * $Header: /f/osi/snmp/RCS/smuxentry.c,v 7.0 90/02/17 10:36:47 mrose Exp $
                      9:  *
                     10:  * Contributed by NYSERNet Inc.  This work was partially supported by the
                     11:  * U.S. Defense Advanced Research Projects Agency and the Rome Air Development
                     12:  * Center of the U.S. Air Force Systems Command under contract number
                     13:  * F30602-88-C-0016.
                     14:  *
                     15:  *
                     16:  * $Log:       smuxentry.c,v $
                     17:  * Revision 7.0  90/02/17  10:36:47  mrose
                     18:  * *** empty log message ***
                     19:  * 
                     20:  */
                     21: 
                     22: /*
                     23:  *                               NOTICE
                     24:  *
                     25:  *    Acquisition, use, and distribution of this module and related
                     26:  *    materials are subject to the restrictions of a license agreement.
                     27:  *    Consult the Preface in the User's Manual for the full terms of
                     28:  *    this agreement.
                     29:  *
                     30:  */
                     31: 
                     32: 
                     33: /* LINTLIBRARY */
                     34: 
                     35: #include <stdio.h>
                     36: #include "smux.h"
                     37: #include "tailor.h"
                     38: 
                     39: /*    DATA */
                     40: 
                     41: static char *smuxEntries = "snmpd.peers";
                     42: 
                     43: static FILE *servf = NULL;
                     44: static int  stayopen = 0;
                     45: 
                     46: static struct smuxEntry    ses;
                     47: 
                     48: /*  */
                     49: 
                     50: int    setsmuxEntry (f)
                     51: int    f;
                     52: {
                     53:     if (servf == NULL)
                     54:        servf = fopen (isodefile (smuxEntries, 0), "r");
                     55:     else
                     56:        rewind (servf);
                     57:     stayopen |= f;
                     58: 
                     59:     return (servf != NULL);
                     60: }
                     61: 
                     62: 
                     63: int    endsmuxEntry () {
                     64:     if (servf && !stayopen) {
                     65:        (void) fclose (servf);
                     66:        servf = NULL;
                     67:     }
                     68: 
                     69:     return 1;
                     70: }
                     71: 
                     72: /*  */
                     73: 
                     74: struct smuxEntry  *getsmuxEntry () {
                     75:     int            vecp;
                     76:     register int i;
                     77:     register struct smuxEntry *se = &ses;
                     78:     register char  *cp;
                     79:     static char buffer[BUFSIZ + 1];
                     80:     static char *vec[NVEC + NSLACK + 1];
                     81:     static unsigned int elements[NELEM + 1];
                     82: 
                     83:     if (servf == NULL
                     84:            && (servf = fopen (isodefile (smuxEntries, 0), "r")) == NULL)
                     85:        return NULL;
                     86: 
                     87:     bzero ((char *) se, sizeof *se);
                     88: 
                     89:     while (fgets (buffer, sizeof buffer, servf) != NULL) {
                     90:        if (*buffer == '#')
                     91:            continue;
                     92:        if (cp = index (buffer, '\n'))
                     93:            *cp = NULL;
                     94:        if ((vecp = str2vec (buffer, vec)) < 3)
                     95:            continue;
                     96: 
                     97:        if ((i = str2elem (vec[1], elements)) <= 1)
                     98:            continue;
                     99: 
                    100:        se -> se_name = vec[0];
                    101:        se -> se_identity.oid_elements = elements;
                    102:        se -> se_identity.oid_nelem = i;
                    103:        se -> se_password = vec[2];
                    104:        se -> se_priority = vecp > 3 ? atoi (vec[3]) : -1;
                    105: 
                    106:        return se;
                    107:     }
                    108: 
                    109:     return NULL;
                    110: }
                    111: 
                    112: /*  */
                    113: 
                    114: struct smuxEntry *getsmuxEntrybyname (name)
                    115: char   *name;
                    116: {
                    117:     register struct smuxEntry *se;
                    118: 
                    119:     (void) setsmuxEntry (0);
                    120:     while (se = getsmuxEntry ())
                    121:        if (strcmp (name, se -> se_name) == 0)
                    122:            break;
                    123:     (void) endsmuxEntry ();
                    124: 
                    125:     return se;
                    126: }
                    127: 
                    128: /*  */
                    129: 
                    130: struct smuxEntry *getsmuxEntrybyidentity (identity)
                    131: OID    identity;
                    132: {
                    133:     register struct smuxEntry *se;
                    134: 
                    135:     (void) setsmuxEntry (0);
                    136:     while (se = getsmuxEntry ())
                    137:        if (oid_cmp (identity, &se -> se_identity) == 0)
                    138:            break;
                    139:     (void) endsmuxEntry ();
                    140: 
                    141:     return se;
                    142: }
                    143: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.