Bug fix: Keep message ID constant even when message crosses multiple interfaces (mm1, mm7, etc)
This commit is contained in:
parent
593cf0436b
commit
88d7ff9a84
|
@ -628,7 +628,7 @@ Octstr *mms_queue_add(Octstr *from, List *to,
|
||||||
MmsEnvelope *e;
|
MmsEnvelope *e;
|
||||||
Octstr *msgid, *s = NULL, *r = NULL;
|
Octstr *msgid, *s = NULL, *r = NULL;
|
||||||
Octstr *ms, *res = NULL, *xfrom = NULL;
|
Octstr *ms, *res = NULL, *xfrom = NULL;
|
||||||
|
int mtype;
|
||||||
fd = mkqf(qf, subdir, directory);
|
fd = mkqf(qf, subdir, directory);
|
||||||
|
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
|
@ -636,14 +636,20 @@ Octstr *mms_queue_add(Octstr *from, List *to,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
res = xmake_qf(qf, subdir);
|
res = xmake_qf(qf, subdir);
|
||||||
|
mtype = mms_messagetype(m);
|
||||||
|
|
||||||
|
/* Get MsgID, Fixup if not there and needed. */
|
||||||
|
if ((msgid = mms_get_header_value(m, octstr_imm("Message-ID"))) == NULL) {
|
||||||
|
msgid = mms_maketransid(octstr_get_cstr(res), mmscname);
|
||||||
|
if (mtype == MMS_MSGTYPE_SEND_REQ)
|
||||||
|
mms_replace_header_value(m, "Message-ID", octstr_get_cstr(msgid));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ms = mms_tobinary(m); /* Convert message to string. */
|
ms = mms_tobinary(m); /* Convert message to string. */
|
||||||
|
|
||||||
msgid = mms_maketransid(octstr_get_cstr(res), mmscname);
|
|
||||||
xfrom = copy_and_clean_address(from);
|
xfrom = copy_and_clean_address(from);
|
||||||
|
|
||||||
e = gw_malloc(sizeof *e); /* Make envelope, clear it. */
|
e = gw_malloc(sizeof *e); /* Make envelope, clear it. */
|
||||||
memset(e, 0, sizeof *e);
|
memset(e, 0, sizeof *e);
|
||||||
|
|
||||||
|
@ -653,7 +659,7 @@ Octstr *mms_queue_add(Octstr *from, List *to,
|
||||||
|
|
||||||
e->qf.fd = fd;
|
e->qf.fd = fd;
|
||||||
|
|
||||||
e->msgtype = mms_messagetype(m);
|
e->msgtype = mtype;
|
||||||
e->from = xfrom;
|
e->from = xfrom;
|
||||||
e->created = time(NULL);
|
e->created = time(NULL);
|
||||||
e->sendt = senddate;
|
e->sendt = senddate;
|
||||||
|
@ -730,6 +736,7 @@ Octstr *mms_queue_add(Octstr *from, List *to,
|
||||||
|
|
||||||
if (xfrom)
|
if (xfrom)
|
||||||
octstr_destroy(xfrom);
|
octstr_destroy(xfrom);
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue