diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index df09298060284d7c3520bd396730f89b4a8390e4..2117b64093c28739e07259fe9f2e5058c4d49dc2 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -781,7 +781,7 @@ extern "C" { DLLEXPORT size_t DLLCALL strip_invalid_attr(char *str); DLLEXPORT ushort DLLCALL subject_crc(char *subj); DLLEXPORT char * DLLCALL ftn_msgid(sub_t* sub, smbmsg_t* msg); - DLLEXPORT char * DLLCALL gen_msgid(scfg_t* cfg, uint subnum, smbmsg_t* msg); + DLLEXPORT char * DLLCALL get_msgid(scfg_t* cfg, uint subnum, smbmsg_t* msg); /* date_str.c */ DLLEXPORT char * DLLCALL zonestr(short zone); diff --git a/src/sbbs3/str_util.c b/src/sbbs3/str_util.c index ff2b3e9a1ae448979fa9b2863a082c617d94d53f..28aa4df78619df219b5bb6bb0762604a23cbc472 100644 --- a/src/sbbs3/str_util.c +++ b/src/sbbs3/str_util.c @@ -342,6 +342,9 @@ char* DLLCALL ftn_msgid(sub_t *sub, smbmsg_t* msg) { static char msgid[256]; + if(msg->ftn_msgid!=NULL) + return(msg->ftn_msgid); + snprintf(msgid,sizeof(msgid) ,"%s %08lX %lu.%s %08lX\r" ,faddrtoa(&sub->faddr,NULL) @@ -357,10 +360,13 @@ char* DLLCALL ftn_msgid(sub_t *sub, smbmsg_t* msg) /****************************************************************************/ /* Return a general purpose (RFC-822) message-ID */ /****************************************************************************/ -char* DLLCALL gen_msgid(scfg_t* cfg, uint subnum, smbmsg_t* msg) +char* DLLCALL get_msgid(scfg_t* cfg, uint subnum, smbmsg_t* msg) { static char msgid[256]; + if(msg->id!=NULL) + return(msg->id); + if(subnum>=cfg->total_subs) snprintf(msgid,sizeof(msgid) ,"<%08lX.%lu@%s>"