Index: sink.c =================================================================== RCS file: /import/cvsroot/fetchmail/sink.c,v retrieving revision 1.1.1.32 diff -u -r1.1.1.32 sink.c --- sink.c 17 Jul 2003 15:19:56 -0000 1.1.1.32 +++ sink.c 21 Jul 2003 09:17:06 -0000 @@ -206,15 +206,35 @@ ctl->destaddr = (ctl->smtphost && ctl->smtphost[0] != '/') ? ctl->smtphost : "localhost"; } else - ctl->destaddr = ctl->smtpaddress ? ctl->smtpaddress : ( ctl->smtphost && ctl->smtphost[0] != '/' ? ctl->smtphost : "localhost"); + { + if (ctl->smtpaddress) + ctl->destaddr = ctl->smtpaddress; + else if (ctl->smtphost && ctl->smtphost[0] != '/') + { + char * cp; + if (cp = strchr (ctl->smtphost, '/')) + { + char *smtpname; + xalloca(smtpname, char *, cp - ctl->smtphost + 1); + strncpy(smtpname, ctl->smtphost, cp - ctl->smtphost); + *(smtpname + cp - ctl->smtphost) = 0; + ctl->destaddr = smtpname; + } + else + ctl->destaddr = ctl->smtphost; + } + else + ctl->destaddr = "localhost"; + } if (outlevel >= O_DEBUG && ctl->smtp_socket != -1) report(stdout, GT_("forwarding to %s\n"), ctl->smtphost);