From 19ea8322b591cbf2cae29d420113a97b196953ff Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Wed, 10 Jul 2002 10:12:27 +0000 Subject: [PATCH] Better support for outbound addresses with both "name" and <addr> portions. --- src/sbbs3/mailsrvr.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index 1d8f672b20..340aa8bb7f 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -466,8 +466,8 @@ static ulong sockmsgtxt(SOCKET socket, smbmsg_t* msg, char* msgtxt, char* fromad if(strchr(msg->to,'@')!=NULL || msg->to_net.addr==NULL) sockprintf(socket,"To: %s",msg->to); /* Avoid double-@ */ else if(msg->to_net.type==NET_INTERNET || msg->to_net.type==NET_QWK) { - if(*((char*)msg->to_net.addr)=='<') - sockprintf(socket,"To: \"%s\" %s",msg->to,(char*)msg->to_net.addr); + if(strchr((char*)msg->to_net.addr,'<')!=NULL) + sockprintf(socket,"To: %s",(char*)msg->to_net.addr); else sockprintf(socket,"To: \"%s\" <%s>",msg->to,(char*)msg->to_net.addr); } else { @@ -1969,10 +1969,13 @@ static void smtp_thread(void* arg) p=buf+8; while(*p && *p<=' ') p++; SAFECOPY(str,p); - p=str; + p=strrchr(str,'<'); + if(p==NULL) + p=str; + else + p++; - if(*p=='<') p++; /* Skip '<' */ - tp=strchr(str,'>'); /* Truncate '>' */ + tp=strchr(str,'>'); /* Truncate at '>' */ if(tp!=NULL) *tp=0; forward=FALSE; @@ -2649,7 +2652,7 @@ static void sendmail_thread(void* arg) continue; } /* RCPT */ - if(*((char*)msg.to_net.addr)=='<') + if(strchr((char*)msg.to_net.addr,'<')!=NULL) sockprintf(sock,"RCPT TO: %s", (char*)msg.to_net.addr); else sockprintf(sock,"RCPT TO: <%s>", (char*)msg.to_net.addr); -- GitLab