Annotation of researchv9/jerq/src/sysmon/from.c, revision 1.1.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.