Skip to content
Snippets Groups Projects
Commit 5b2e4b58 authored by rswindell's avatar rswindell
Browse files

Sets reply_id correctly based on time and number of original message.

reply_id property is not created if it doesn't exist in the msg header.
msg.id is based on the time the message was imported rather than written.
parent b243bc35
No related branches found
No related tags found
No related merge requests found
......@@ -323,11 +323,12 @@ static JSBool
js_get_msg_header(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
char date[128];
char msg_id[128];
char reply_id[128];
char msg_id[256];
char reply_id[256];
char* val;
ulong l;
smbmsg_t msg;
smbmsg_t orig_msg;
JSObject* hdrobj;
private_t* p;
......@@ -455,13 +456,23 @@ js_get_msg_header(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *
val=msg.reply_id;
else {
reply_id[0]=0;
if(p->smb.subnum!=INVALID_SUB && msg.hdr.thread_orig)
sprintf(reply_id,"<%lu.%s@%s>"
,msg.hdr.thread_orig,scfg->sub[p->smb.subnum]->code,scfg->sys_inetaddr);
if(p->smb.subnum!=INVALID_SUB && msg.hdr.thread_orig) {
memset(&orig_msg,0,sizeof(orig_msg));
orig_msg.hdr.number=msg.hdr.thread_orig;
if(smb_getmsgidx(&(p->smb), &orig_msg))
sprintf(reply_id,"<%s>",p->smb.last_error);
else
sprintf(reply_id,"<%08lX.%lu.%s@%s>"
,orig_msg.idx.time
,msg.hdr.thread_orig
,scfg->sub[p->smb.subnum]->code
,scfg->sys_inetaddr);
}
val=reply_id;
}
JS_DefineProperty(cx, hdrobj, "reply_id", STRING_TO_JSVAL(JS_NewStringCopyZ(cx,val))
,NULL,NULL,JSPROP_READONLY|JSPROP_ENUMERATE);
if(val[0])
JS_DefineProperty(cx, hdrobj, "reply_id", STRING_TO_JSVAL(JS_NewStringCopyZ(cx,val))
,NULL,NULL,JSPROP_READONLY|JSPROP_ENUMERATE);
/* Message-ID */
if(msg.id!=NULL)
......@@ -469,11 +480,11 @@ js_get_msg_header(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *
else {
if(p->smb.subnum==INVALID_SUB)
sprintf(msg_id,"<%08lX.%lu@%s>"
,msg.hdr.when_written.time
,msg.idx.time
,msg.idx.number,scfg->sys_inetaddr);
else
sprintf(msg_id,"<%08lX.%lu.%s@%s>"
,msg.hdr.when_written.time
,msg.idx.time
,msg.idx.number,scfg->sub[p->smb.subnum]->code,scfg->sys_inetaddr);
val=msg_id;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment