diff options
author | Eric S. Raymond <esr@thyrsus.com> | 1996-09-11 23:24:07 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 1996-09-11 23:24:07 +0000 |
commit | 1ccd1ef3797c85d2af2afa6489dede3d6654aa94 (patch) | |
tree | 3e8b75a5d807afc9013b0c860a39c9c99e1baf57 /fetchmail.c | |
parent | b2ed4d15f7bb1c53e5be028ffd4203aa3e0ce299 (diff) | |
download | fetchmail-1ccd1ef3797c85d2af2afa6489dede3d6654aa94.tar.gz fetchmail-1ccd1ef3797c85d2af2afa6489dede3d6654aa94.tar.bz2 fetchmail-1ccd1ef3797c85d2af2afa6489dede3d6654aa94.zip |
SMTP forwarding complete; now to debug it.
svn path=/trunk/; revision=82
Diffstat (limited to 'fetchmail.c')
-rw-r--r-- | fetchmail.c | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/fetchmail.c b/fetchmail.c index 726f93dc..872e22e8 100644 --- a/fetchmail.c +++ b/fetchmail.c @@ -636,106 +636,4 @@ struct hostrec *queryctl; } -/********************************************************************* - function: - description: hack message headers so replies will work properly - - arguments: - after where to put the hacked header - before header to hack - host name of the pop header - - return value: none. - calls: none. - globals: writes mda_argv. - *********************************************************************/ - -void reply_hack(buf, host) -/* hack local mail IDs -- code by Eric S. Raymond 20 Jun 1996 */ -char *buf; -const char *host; -{ - const char *from; - int state = 0; - char mycopy[POPBUFSIZE]; - - if (strncmp("From: ", buf, 6) - && strncmp("To: ", buf, 4) - && strncmp("Reply-", buf, 6) - && strncmp("Cc: ", buf, 4) - && strncmp("Bcc: ", buf, 5)) { - return; - } - - strcpy(mycopy, buf); - for (from = mycopy; *from; from++) - { - switch (state) - { - case 0: /* before header colon */ - if (*from == ':') - state = 1; - break; - - case 1: /* we've seen the colon, we're looking for addresses */ - if (*from == '"') - state = 2; - else if (*from == '(') - state = 3; - else if (*from == '<' || isalnum(*from)) - state = 4; - break; - - case 2: /* we're in a quoted human name, copy and ignore */ - if (*from == '"') - state = 1; - break; - - case 3: /* we're in a parenthesized human name, copy and ignore */ - if (*from == ')') - state = 1; - break; - - case 4: /* the real work gets done here */ - /* - * We're in something that might be an address part, - * either a bare unquoted/unparenthesized text or text - * enclosed in <> as per RFC822. - */ - /* if the address part contains an @, don't mess with it */ - if (*from == '@') - state = 5; - - /* If the address token is not properly terminated, ignore it. */ - else if (*from == ' ' || *from == '\t') - state = 1; - - /* - * On proper termination with no @, insert hostname. - * Case '>' catches <>-enclosed mail IDs. Case ',' catches - * comma-separated bare IDs. Cases \r and \n catch the case - * of a single ID alone on the line. - */ - else if (strchr(">,\r\n", *from)) - { - strcpy(buf, "@"); - strcat(buf, host); - buf += strlen(buf); - state = 1; - } - - /* everything else, including alphanumerics, just passes through */ - break; - - case 5: /* we're in a remote mail ID, no need to append hostname */ - if (*from == '>' || *from == ',' || isspace(*from)) - state = 1; - break; - } - - /* all characters from the old buffer get copied to the new one */ - *buf++ = *from; - } - *buf++ = '\0'; -} |