From 85ebd390d5ce31fef9631447d8efbb32901cbb4e Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Mon, 25 Feb 2008 08:18:30 +0000 Subject: [PATCH] Handle internet-style reply-to addresses even if the reply-to net type was not set. Use ctime() for displaying times in message headers (second-granularity). More use of SAFEPRINTF. --- src/sbbs3/readmsgs.cpp | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/sbbs3/readmsgs.cpp b/src/sbbs3/readmsgs.cpp index e07b30badd..704de2d88f 100644 --- a/src/sbbs3/readmsgs.cpp +++ b/src/sbbs3/readmsgs.cpp @@ -122,12 +122,14 @@ void sbbs_t::msghdr(smbmsg_t* msg) ,binstr((uchar *)msg->hfield_dat[i],msg->hfield[i].length,str)); /* fixed fields */ - bprintf("%-16.16s %08lX %04hX %s %s\r\n","when_written" + bprintf("%-16.16s %08lX %04hX %.24s %s\r\n","when_written" ,msg->hdr.when_written.time, msg->hdr.when_written.zone - ,timestr(msg->hdr.when_written.time), smb_zonestr(msg->hdr.when_written.zone,NULL)); - bprintf("%-16.16s %08lX %04hX %s %s\r\n","when_imported" + ,ctime((time_t*)&msg->hdr.when_written.time) + ,smb_zonestr(msg->hdr.when_written.zone,NULL)); + bprintf("%-16.16s %08lX %04hX %.24s %s\r\n","when_imported" ,msg->hdr.when_imported.time, msg->hdr.when_imported.zone - ,timestr(msg->hdr.when_imported.time), smb_zonestr(msg->hdr.when_imported.zone,NULL)); + ,ctime((time_t*)&msg->hdr.when_imported.time) + ,smb_zonestr(msg->hdr.when_imported.zone,NULL)); bprintf("%-16.16s %04Xh\r\n","type" ,msg->hdr.type); bprintf("%-16.16s %04Xh\r\n","version" ,msg->hdr.version); bprintf("%-16.16s %04Xh\r\n","attr" ,msg->hdr.attr); @@ -821,21 +823,25 @@ int sbbs_t::scanposts(uint subnum, long mode, char *find) ,msg.subj ,timestr(msg.hdr.when_written.time)); if(msg.from_net.addr==NULL) - strcpy(str,msg.from); + SAFECOPY(str,msg.from); else if(msg.from_net.type==NET_FIDO) - sprintf(str,"%s@%s",msg.from + SAFEPRINTF2(str,"%s@%s",msg.from ,smb_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==NET_INTERNET || strchr((char*)msg.from_net.addr,'@')!=NULL) { + if(msg.replyto_net.type==NET_INTERNET) + SAFECOPY(str,(char *)msg.replyto_net.addr); + else + SAFECOPY(str,(char *)msg.from_net.addr); + } else - sprintf(str,"%s@%s",msg.from,(char *)msg.from_net.addr); + SAFEPRINTF2(str,"%s@%s",msg.from,(char *)msg.from_net.addr); bputs(text[Email]); if(!getstr(str,60,K_EDIT|K_AUTODEL)) break; FREE_AND_NULL(post); quotemsg(&msg,1); - if(msg.from_net.type==NET_INTERNET && strchr(str,'@')) + if(smb_netaddr_type(str)==NET_INTERNET) inetmail(str,msg.subj,WM_QUOTE|WM_NETMAIL); else { p=strrchr(str,'@'); -- GitLab