diff --git a/src/sbbs3/chksmb.c b/src/sbbs3/chksmb.c index ed9c7eab5d5a2ce7f4d26f7c3f8a8e5791c19d2b..bf94132894c216531e3471b038a19fd9da89d9da 100644 --- a/src/sbbs3/chksmb.c +++ b/src/sbbs3/chksmb.c @@ -391,11 +391,11 @@ int main(int argc, char **argv) ,msg.hdr.number,msg.offset+1); printf("%-20s: %s\n","Subject",msg.subj); printf("%-20s: %s","To",msg.to); - if(msg.to_net.type) + if(msg.to_net.type && msg.to_net.addr) printf(" (%s)",msg.to_net.type==NET_FIDO ? faddrtoa(*(fidoaddr_t *)msg.to_net.addr) : msg.to_net.addr); printf("\n%-20s: %s","From",msg.from); - if(msg.from_net.type) + if(msg.from_net.type && msg.from_net.addr) printf(" (%s)",msg.from_net.type==NET_FIDO ? faddrtoa(*(fidoaddr_t *)msg.from_net.addr) : msg.from_net.addr); diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index 92030b768db36717a73d6cb48d2e5ca8b16836bf..7f25418858723c4617bcf111faf600119e7f21f7 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -412,7 +412,7 @@ static ulong sockmsgtxt(SOCKET socket, smbmsg_t* msg, char* msgtxt, char* fromad else sockprintf(socket,"From: \"%s\" <%s>",msg->from,fromaddr); sockprintf(socket,"Subject: %s",msg->subj); - if(strchr(msg->to,'@')!=NULL) + 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)=='<') @@ -915,9 +915,9 @@ static void pop3_thread(void* arg) } sockprintf(socket,"+OK message follows"); - if(msg.from_net.type==NET_INTERNET) + if(msg.from_net.type==NET_INTERNET && msg.from_net.addr!=NULL) strcpy(fromaddr,msg.from_net.addr); - else if(msg.from_net.type==NET_QWK) + else if(msg.from_net.type==NET_QWK && msg.from_net.addr!=NULL) sprintf(fromaddr,"\"%s@%s\"@%s" ,msg.from,(char*)msg.from_net.addr,scfg.sys_inetaddr); else @@ -2193,7 +2193,7 @@ BOOL bounce(smb_t* smb, smbmsg_t* msg, char* err, BOOL immediate) } smb_hfield(&newmsg, RECIPIENTAGENT, sizeof(ushort), &newmsg.from_agent); smb_hfield(&newmsg, RECIPIENTNETTYPE, sizeof(newmsg.from_net.type), &newmsg.from_net.type); - if(newmsg.from_net.type) + if(newmsg.from_net.type && newmsg.from_net.addr!=NULL) smb_hfield(&newmsg, RECIPIENTNETADDR, (ushort)strlen(newmsg.from_net.addr) ,newmsg.from_net.addr); strcpy(str,"Mail Delivery Subsystem"); @@ -2344,7 +2344,7 @@ static void sendmail_thread(void* arg) } smb_unlockmsghdr(&smb,&msg); - if(msg.to_net.type!=NET_INTERNET) + if(msg.to_net.type!=NET_INTERNET || msg.to_net.addr==NULL) continue; active_sendmail=1; @@ -2473,7 +2473,7 @@ static void sendmail_thread(void* arg) continue; } /* MAIL */ - if(msg.from_net.type==NET_INTERNET) + if(msg.from_net.type==NET_INTERNET && msg.from_net.addr!=NULL) strcpy(fromaddr,msg.from_net.addr); else usermailaddr(&scfg,fromaddr,msg.from); diff --git a/src/sbbs3/readmail.cpp b/src/sbbs3/readmail.cpp index cde00758fcf6afa4b2ae74f29e8f5723fc81050a..8e8c4ae6907768e8c92c60a71cf7319e399fa48a 100644 --- a/src/sbbs3/readmail.cpp +++ b/src/sbbs3/readmail.cpp @@ -354,15 +354,15 @@ void sbbs_t::readmail(uint usernumber, int which) quotemsg(&msg,1); - if(msg.from_net.type==NET_FIDO) /* FidoNet type */ + if(msg.from_net.addr==NULL) + strcpy(str,msg.from); + else if(msg.from_net.type==NET_FIDO) /* FidoNet type */ sprintf(str,"%s @%s",msg.from ,faddrtoa((faddr_t *)msg.from_net.addr,tmp)); else if(msg.from_net.type==NET_INTERNET) strcpy(str,(char *)msg.from_net.addr); - else if(msg.from_net.type) + else sprintf(str,"%s@%s",msg.from,msg.from_net.addr); - else /* No net */ - strcpy(str,msg.from); strcpy(str2,str); diff --git a/src/sbbs3/readmsgs.cpp b/src/sbbs3/readmsgs.cpp index 35eaba1194cf13f0aa5bd3e0fc3cd65fa55c5d00..d0319fd031f872d4277e5ebbac04ef26aa2980c7 100644 --- a/src/sbbs3/readmsgs.cpp +++ b/src/sbbs3/readmsgs.cpp @@ -657,15 +657,15 @@ int sbbs_t::scanposts(uint subnum, long mode, char *find) sprintf(str2,text[Regarding] ,msg.subj ,timestr((time_t *)&msg.hdr.when_written.time)); - if(msg.from_net.type==NET_FIDO) + if(msg.from_net.addr==NULL) + strcpy(str,msg.from); + else if(msg.from_net.type==NET_FIDO) sprintf(str,"%s @%s",msg.from ,faddrtoa((faddr_t *)msg.from_net.addr,tmp)); else if(msg.from_net.type==NET_INTERNET) strcpy(str,(char *)msg.from_net.addr); - else if(msg.from_net.type) - sprintf(str,"%s@%s",msg.from,(char *)msg.from_net.addr); else - strcpy(str,msg.from); + sprintf(str,"%s@%s",msg.from,(char *)msg.from_net.addr); bputs(text[Email]); if(!getstr(str,60,K_EDIT|K_AUTODEL)) break; @@ -673,8 +673,7 @@ int sbbs_t::scanposts(uint subnum, long mode, char *find) LFREE(post); post=NULL; quotemsg(&msg,1); - if(msg.from_net.type==NET_INTERNET - && (!strcmp(str,(char *)msg.from_net.addr) || strchr(str,'@'))) + if(msg.from_net.type==NET_INTERNET && strchr(str,'@')) inetmail(str,msg.subj,WM_QUOTE|WM_NETMAIL); else { p=strrchr(str,'@');