Annotation of 43BSDReno/contrib/isode-beta/snmp/smuxentry.c, revision 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.