--- f/sink.c 2003-07-17 17:19:56.000000000 +0200 +++ fetchmail/sink.c 2003-07-26 21:30:15.000000000 +0200 @@ -206,7 +206,27 @@ 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 +1); + cp = strchr(smtpname, '/'); + *cp = 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);