Annotation of researchv10no/cmd/upas/smtp/log.c, revision 1.1

1.1     ! root        1: #include <stdio.h>
        !             2: #include <ctype.h>
        !             3: #include "sys.h"
        !             4: 
        !             5: struct loglevellookup {
        !             6:        char *name;
        !             7:        int level;
        !             8: } loglevellookup[] = {
        !             9:        { "emerg",      LOG_EMERG },
        !            10:        { "alert",      LOG_ALERT },
        !            11:        { "crit",       LOG_CRIT },
        !            12:        { "err",        LOG_ERR },
        !            13:        { "warning",    LOG_WARNING },
        !            14:        { "notice",     LOG_NOTICE },
        !            15:        { "info",       LOG_INFO },
        !            16:        { "debug",      LOG_DEBUG },
        !            17:        { NULL,         -1 },
        !            18: };
        !            19: 
        !            20: 
        !            21: extern int debug;
        !            22: 
        !            23: /*
        !            24:  * This is a poor substitute for varargs, but
        !            25:  * syslog doesn't have the equivalent of vfprintf, so this
        !            26:  * will have to do.
        !            27:  */
        !            28: Syslog(level, fmt, p0, p1, p2, p3, p4)
        !            29:        int level;
        !            30:        char *fmt;
        !            31: {
        !            32:        syslog(level, fmt, p0, p1, p2, p3, p4);
        !            33:        if (debug)
        !            34:                fprintf(stderr, fmt, p0, p1, p2, p3, p4);
        !            35: }
        !            36: 
        !            37: Openlog(label, flags, log)
        !            38: char *label;
        !            39: int flags;
        !            40: int log;
        !            41: {
        !            42:        openlog(label, flags, log);
        !            43: }
        !            44: 
        !            45: setloglevel(arg)
        !            46:        char *arg;
        !            47: {
        !            48:        int newlevel = -1, i;
        !            49:        char *cp;
        !            50: 
        !            51:        for (cp=arg; *cp; cp++)
        !            52:                if (isupper(*cp))
        !            53:                        *cp = tolower(*cp);
        !            54: 
        !            55:        if (isdigit(*arg)) {
        !            56:                newlevel = atoi(arg);
        !            57:        } else {
        !            58:                for (i=0; loglevellookup[i].name; i++)
        !            59:                        if (strcmp(loglevellookup[i].name, arg) == 0) {
        !            60:                                newlevel = loglevellookup[i].level;
        !            61:                                break;
        !            62:                        }
        !            63:        }
        !            64:        if (newlevel < 0)
        !            65:                Syslog(LOG_WARNING, "Illegal log parameter - %s\n", arg);
        !            66:        else
        !            67:                setlogmask(LOG_UPTO(newlevel));
        !            68: }

unix.superglobalmegacorp.com

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