Annotation of researchv8dc/cmd/upas/send/okrmt.c, revision 1.1

1.1     ! root        1: #include <stdio.h>
        !             2: #define GFLIST "forwardlist"
        !             3: #define LFLIST "forwardlist.lo"
        !             4: 
        !             5: /* imported */
        !             6: extern char *upaspath();
        !             7: 
        !             8: static checkfile();
        !             9: 
        !            10: /*
        !            11:  *     Return nonzero if forwarding is allowed to the system
        !            12:  *     named in the string at "cp".  If we can't read the file
        !            13:  *     which contains the systems, assume blanket forwarding.
        !            14:  */
        !            15: okrmt(cp)
        !            16: char *cp;
        !            17: {
        !            18:        /* always accept the null string */
        !            19:        if (*cp == '\0')
        !            20:                return 1;
        !            21: 
        !            22:        /* try both general and local forwardlists */
        !            23:        switch (checkfile(cp, GFLIST)) {
        !            24:        case -1:
        !            25:                return checkfile(cp, LFLIST);
        !            26:        case 0:
        !            27:                return checkfile(cp, LFLIST) == 1;
        !            28:        }
        !            29:        return 1;
        !            30: }
        !            31: 
        !            32: static
        !            33: checkfile(cp, file)
        !            34: char *cp;
        !            35: char *file;
        !            36: {
        !            37:        register FILE *fp;
        !            38:        char buf[20];
        !            39: 
        !            40:        /* try to open the file; allow forwarding on failure */
        !            41:        fp = fopen (upaspath(file), "r");
        !            42:        if (fp == NULL)
        !            43:                return -1;
        !            44: 
        !            45:        /* one iteration per system name in the file */
        !            46:        while (fgets (buf, sizeof buf, fp) != NULL) {
        !            47:                buf[strlen(buf)-1] = '\0';
        !            48:                if (strcmp (buf, cp) == 0) {
        !            49:                        /* found it, allow forwarding */
        !            50:                        fclose (fp);
        !            51:                        return 1;
        !            52:                }
        !            53:        }
        !            54: 
        !            55:        /* didn't find it, prohibit forwarding */
        !            56:        fclose (fp);
        !            57:        return 0;
        !            58: }

unix.superglobalmegacorp.com

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