diff --git a/src/sbbs3/js_msgbase.c b/src/sbbs3/js_msgbase.c index ee55eccde2caf74b16104633cc423d66a6a78ece..51adcd4a8cde0a490b32bd5edbc2ec9e66d98c4d 100644 --- a/src/sbbs3/js_msgbase.c +++ b/src/sbbs3/js_msgbase.c @@ -374,36 +374,6 @@ static BOOL parse_header_object(JSContext* cx, private_t* p, JSObject* hdr, smbm return(TRUE); } -BOOL get_msg_by_id(scfg_t* scfg, smb_t* smb, char* id, smbmsg_t* msg) -{ - ulong n; - int ret; - - for(n=0;n<smb->status.last_msg;n++) { - memset(msg,0,sizeof(smbmsg_t)); - msg->offset=n; - if(smb_getmsgidx(smb, msg)!=0) - break; - - if(smb_lockmsghdr(smb,msg)!=0) - continue; - - ret=smb_getmsghdr(smb,msg); - - smb_unlockmsghdr(smb,msg); - - if(ret!=SMB_SUCCESS) - continue; - - if(strcmp(get_msgid(scfg,smb->subnum,msg),id)==0) - return(TRUE); - - smb_freemsgmem(msg); - } - - return(FALSE); -} - BOOL msg_offset_by_id(scfg_t* scfg, smb_t* smb, char* id, ulong* offset) { smbmsg_t msg; diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index 513bafae5a8a69e3609a7269ba5d7b6b943eb44a..bcd83f95e855799f4fab2472e86c7c1b8bbb79fc 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -793,6 +793,7 @@ extern "C" { DLLEXPORT ushort DLLCALL subject_crc(char *subj); DLLEXPORT char * DLLCALL ftn_msgid(sub_t* sub, smbmsg_t* msg); DLLEXPORT char * DLLCALL get_msgid(scfg_t* cfg, uint subnum, smbmsg_t* msg); + DLLEXPORT BOOL DLLCALL get_msg_by_id(scfg_t* scfg, smb_t* smb, char* id, smbmsg_t* msg); DLLEXPORT char * DLLCALL ultoac(ulong l,char *str); diff --git a/src/sbbs3/str_util.c b/src/sbbs3/str_util.c index ff13347d8f86466d808475b78061e58768fedc02..d70267b3db06532eadbd05936532708bd7dba7e4 100644 --- a/src/sbbs3/str_util.c +++ b/src/sbbs3/str_util.c @@ -384,6 +384,38 @@ char* DLLCALL get_msgid(scfg_t* cfg, uint subnum, smbmsg_t* msg) return(msgid); } +/****************************************************************************/ +/* Retrieve a message by RFC822 message-ID */ +/****************************************************************************/ +BOOL DLLCALL get_msg_by_id(scfg_t* scfg, smb_t* smb, char* id, smbmsg_t* msg) +{ + ulong n; + int ret; + + for(n=0;n<smb->status.last_msg;n++) { + memset(msg,0,sizeof(smbmsg_t)); + msg->offset=n; + if(smb_getmsgidx(smb, msg)!=0) + break; + + if(smb_lockmsghdr(smb,msg)!=0) + continue; + + ret=smb_getmsghdr(smb,msg); + + smb_unlockmsghdr(smb,msg); + + if(ret!=SMB_SUCCESS) + continue; + + if(strcmp(get_msgid(scfg,smb->subnum,msg),id)==0) + return(TRUE); + + smb_freemsgmem(msg); + } + + return(FALSE); +} /****************************************************************************/ /* Returns string for 2 digit hex+ numbers up to 575 */