Annotation of researchv9/jerq/src/sysmon/from.c, revision 1.1

1.1     ! root        1: #include <stdio.h>
        !             2: #include <ctype.h>
        !             3: #include <regexp.h>
        !             4: 
        !             5: /* imports */
        !             6: extern int strlen();
        !             7: extern char *strrchr();
        !             8: extern char *strchr();
        !             9: 
        !            10: extern int
        !            11: from(addrp, src, sender)
        !            12:        char *addrp;            /* address to rewrite */
        !            13:        char *src;              /* where to source machine name */
        !            14:        char *sender;           /* where to put sender name */
        !            15: {
        !            16:        char *nsender, *nsrc, *cp;
        !            17: 
        !            18:        /* very cruddy algorithm */
        !            19:        nsender = strrchr(addrp, '!');
        !            20:        if (nsender == NULL) {
        !            21:                /* local mail */
        !            22:                nsender = addrp;
        !            23:                nsrc = "";
        !            24:        } else {
        !            25:                /* at least one ! */
        !            26:                *nsender++ = '\0';
        !            27:                nsrc = strrchr(addrp, '!');
        !            28:                if (nsrc == NULL)
        !            29:                        nsrc = addrp;
        !            30:                else
        !            31:                        *nsrc++ = '\0';
        !            32:        }
        !            33:        /* look for domain address in sender - note precedence of %, @, and . */
        !            34:        if ((cp = strchr(nsender, '%'))!=NULL ||
        !            35:            (cp = strchr(nsender, '@'))!=NULL ||
        !            36:            (cp = strchr(nsender, '.'))!=NULL) {
        !            37:                *cp = '\0';
        !            38:                nsrc = ++cp;
        !            39:        }
        !            40:        /* look for domain address in src */
        !            41:        if ((cp = strchr(nsrc, '.'))!=NULL)
        !            42:                *cp = '\0';
        !            43:        (void)strcpy(sender, nsender);
        !            44:        (void)strcpy(src, nsrc);
        !            45:        return 0;
        !            46: }

unix.superglobalmegacorp.com

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