Message-ID fixup
This commit is contained in:
parent
5b5fa1fd7b
commit
4cdb712d76
|
@ -1,3 +1,5 @@
|
||||||
|
2008-07-07 P. A. Bagyenda <bagyenda@dsmagic.com>
|
||||||
|
* Message-ID fix -- added '@'
|
||||||
2008-07-04 P. A. Bagyenda <bagyenda@dsmagic.com>
|
2008-07-04 P. A. Bagyenda <bagyenda@dsmagic.com>
|
||||||
* Minor fixes for PANICs in mms_msg.c
|
* Minor fixes for PANICs in mms_msg.c
|
||||||
2008-07-01 P. A. Bagyenda <bagyenda@dsmagic.com>
|
2008-07-01 P. A. Bagyenda <bagyenda@dsmagic.com>
|
||||||
|
|
|
@ -854,7 +854,7 @@ MmsEnvelope *mms_queue_create_envelope(Octstr *from, List *to,
|
||||||
/* Get MsgID, Fixup if not there and needed. */
|
/* Get MsgID, Fixup if not there and needed. */
|
||||||
if ((msgid = mms_get_header_value(m, octstr_imm("Message-ID"))) == NULL &&
|
if ((msgid = mms_get_header_value(m, octstr_imm("Message-ID"))) == NULL &&
|
||||||
xqfname) {
|
xqfname) {
|
||||||
msgid = mms_maketransid(xqfname, mmscname);
|
msgid = mms_make_msgid(xqfname, mmscname);
|
||||||
if (mtype == MMS_MSGTYPE_SEND_REQ)
|
if (mtype == MMS_MSGTYPE_SEND_REQ)
|
||||||
mms_replace_header_value(m, "Message-ID", octstr_get_cstr(msgid));
|
mms_replace_header_value(m, "Message-ID", octstr_get_cstr(msgid));
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,6 +158,26 @@ Octstr *mms_maketransid(char *qf, Octstr *mmscname)
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Octstr *mms_make_msgid(char *qf, Octstr *mmscname)
|
||||||
|
{/* Message ID is a little differently done. */
|
||||||
|
Octstr *res;
|
||||||
|
Octstr *x, *y = NULL;
|
||||||
|
static int ct;
|
||||||
|
|
||||||
|
if (!qf)
|
||||||
|
x = octstr_format("msg.%ld.x%d.%d.%d",
|
||||||
|
(long)time(NULL) % 10000, (++ct % 1000), getpid()%100, random()%100);
|
||||||
|
else
|
||||||
|
x = octstr_create(qf);
|
||||||
|
|
||||||
|
res = octstr_format("%S@%S", x,mmscname);
|
||||||
|
|
||||||
|
octstr_destroy(x);
|
||||||
|
octstr_destroy(y);
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
extern Octstr *mms_getqf_fromtransid(Octstr *transid)
|
extern Octstr *mms_getqf_fromtransid(Octstr *transid)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -171,6 +191,18 @@ extern Octstr *mms_getqf_fromtransid(Octstr *transid)
|
||||||
return (i >= 0) ? octstr_copy(transid, i+1, octstr_len(transid)) : octstr_duplicate(transid);
|
return (i >= 0) ? octstr_copy(transid, i+1, octstr_len(transid)) : octstr_duplicate(transid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern Octstr *mms_getqf_from_msgid(Octstr *msgid)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (msgid == NULL)
|
||||||
|
return NULL;
|
||||||
|
if ((i = octstr_search_char(msgid, '@', 0)) > 0)
|
||||||
|
return octstr_copy(msgid, 0, i);
|
||||||
|
else
|
||||||
|
return mms_getqf_fromtransid(msgid); /* For older ones where transid = msgid. */
|
||||||
|
}
|
||||||
|
|
||||||
Octstr *mms_isodate(time_t t)
|
Octstr *mms_isodate(time_t t)
|
||||||
{
|
{
|
||||||
Octstr *current_time;
|
Octstr *current_time;
|
||||||
|
|
|
@ -69,7 +69,10 @@ extern int mms_load_core_settings(mCfgGrp *cgrp);
|
||||||
|
|
||||||
extern Octstr *mms_maketransid(char *qf, Octstr *mmscname);
|
extern Octstr *mms_maketransid(char *qf, Octstr *mmscname);
|
||||||
|
|
||||||
|
extern Octstr *mms_make_msgid(char *qf, Octstr *mmscname);
|
||||||
|
|
||||||
extern Octstr *mms_getqf_fromtransid(Octstr *transid);
|
extern Octstr *mms_getqf_fromtransid(Octstr *transid);
|
||||||
|
extern Octstr *mms_getqf_from_msgid(Octstr *msgid);
|
||||||
|
|
||||||
extern Octstr *mms_isodate(time_t t);
|
extern Octstr *mms_isodate(time_t t);
|
||||||
void mms_lib_init(void);
|
void mms_lib_init(void);
|
||||||
|
|
|
@ -229,7 +229,7 @@ static void mm7soap_receive(MmsHTTPClientInfo *h)
|
||||||
octstr_get_cstr(qdir),
|
octstr_get_cstr(qdir),
|
||||||
"MM7/SOAP-IN",
|
"MM7/SOAP-IN",
|
||||||
octstr_imm(MM_NAME));
|
octstr_imm(MM_NAME));
|
||||||
msgid = mms_maketransid(octstr_get_cstr(qf), octstr_imm(MM_NAME));
|
msgid = mms_make_msgid(octstr_get_cstr(qf), octstr_imm(MM_NAME));
|
||||||
mms_log("Received", from, to, -1, msgid, NULL, h->m->id, "MMSBox", h->ua, NULL);
|
mms_log("Received", from, to, -1, msgid, NULL, h->m->id, "MMSBox", h->ua, NULL);
|
||||||
|
|
||||||
octstr_destroy(linkedid);
|
octstr_destroy(linkedid);
|
||||||
|
|
|
@ -1205,7 +1205,9 @@ static void sendmms_func(void *unused)
|
||||||
|
|
||||||
username = http_cgi_variable(cgivars, "username");
|
username = http_cgi_variable(cgivars, "username");
|
||||||
password = http_cgi_variable(cgivars, "password");
|
password = http_cgi_variable(cgivars, "password");
|
||||||
|
if (username)
|
||||||
octstr_strip_blanks(username);
|
octstr_strip_blanks(username);
|
||||||
|
if (password)
|
||||||
octstr_strip_blanks(password);
|
octstr_strip_blanks(password);
|
||||||
if ((u = auth_user(username, password)) != NULL &&
|
if ((u = auth_user(username, password)) != NULL &&
|
||||||
is_allowed_ip(sendmms_port.allow_ip, sendmms_port.deny_ip, ip)) {
|
is_allowed_ip(sendmms_port.allow_ip, sendmms_port.deny_ip, ip)) {
|
||||||
|
|
|
@ -54,7 +54,13 @@ MmscSettings *mms_load_mmsc_settings(mCfg *cfg, List **proxyrelays)
|
||||||
|
|
||||||
mms_load_core_settings(cgrp);
|
mms_load_core_settings(cgrp);
|
||||||
|
|
||||||
m->hostname = _mms_cfg_getx(grp, octstr_imm("hostname"));
|
m->hostname = mms_cfg_get(grp, octstr_imm("hostname"));
|
||||||
|
|
||||||
|
if (octstr_len(m->hostname) == 0)
|
||||||
|
m->hostname = octstr_create("localhost");
|
||||||
|
|
||||||
|
if ((m->host_alias = mms_cfg_get(grp, octstr_imm("host-alias"))) == NULL)
|
||||||
|
m->host_alias = octstr_duplicate(m->hostname);
|
||||||
|
|
||||||
if (proxyrelays)
|
if (proxyrelays)
|
||||||
*proxyrelays = mms_proxy_relays(cfg, m->hostname);
|
*proxyrelays = mms_proxy_relays(cfg, m->hostname);
|
||||||
|
@ -71,11 +77,8 @@ MmscSettings *mms_load_mmsc_settings(mCfg *cfg, List **proxyrelays)
|
||||||
} else
|
} else
|
||||||
m->strip_prefixes = NULL;
|
m->strip_prefixes = NULL;
|
||||||
|
|
||||||
if (m->hostname == NULL || octstr_len(m->hostname) == 0)
|
|
||||||
m->hostname = octstr_create("localhost");
|
|
||||||
|
|
||||||
m->name = _mms_cfg_getx(grp, octstr_imm("name"));
|
m->name = _mms_cfg_getx(grp, octstr_imm("name"));
|
||||||
m->host_alias = _mms_cfg_getx(grp, octstr_imm("host-alias"));
|
|
||||||
|
|
||||||
m->sendmail = _mms_cfg_getx(grp, octstr_imm("send-mail-prog"));
|
m->sendmail = _mms_cfg_getx(grp, octstr_imm("send-mail-prog"));
|
||||||
|
|
||||||
|
|
|
@ -288,7 +288,7 @@ int main(int argc, char *argv[])
|
||||||
mm4_type ? "MM4" : "MM3",
|
mm4_type ? "MM4" : "MM3",
|
||||||
settings->host_alias);
|
settings->host_alias);
|
||||||
if (qf) {
|
if (qf) {
|
||||||
newmsgid = mms_maketransid(octstr_get_cstr(qf),
|
newmsgid = mms_make_msgid(octstr_get_cstr(qf),
|
||||||
settings->host_alias);
|
settings->host_alias);
|
||||||
info(0, "%s Queued message to %s from %s (via %s) => %s",
|
info(0, "%s Queued message to %s from %s (via %s) => %s",
|
||||||
mm4_type ? "MM4 Incoming" : "Email2MMS",
|
mm4_type ? "MM4 Incoming" : "Email2MMS",
|
||||||
|
|
|
@ -627,7 +627,7 @@ static void sendmms_proxy(MmsHTTPClientInfo *h)
|
||||||
mresp = mms_sendconf("Error-transient-failure", "None", octstr_get_cstr(otransid),0,
|
mresp = mms_sendconf("Error-transient-failure", "None", octstr_get_cstr(otransid),0,
|
||||||
menc);
|
menc);
|
||||||
else {
|
else {
|
||||||
msgid = mms_maketransid(octstr_get_cstr(qf),
|
msgid = mms_make_msgid(octstr_get_cstr(qf),
|
||||||
settings->host_alias);
|
settings->host_alias);
|
||||||
mresp = mms_sendconf("Ok", octstr_get_cstr(msgid), octstr_get_cstr(otransid),0,
|
mresp = mms_sendconf("Ok", octstr_get_cstr(msgid), octstr_get_cstr(otransid),0,
|
||||||
menc);
|
menc);
|
||||||
|
@ -849,7 +849,7 @@ static void sendmms_proxy(MmsHTTPClientInfo *h)
|
||||||
mresp = mms_sendconf("Error-transient-failure",
|
mresp = mms_sendconf("Error-transient-failure",
|
||||||
"None", octstr_get_cstr(otransid),1,menc);
|
"None", octstr_get_cstr(otransid),1,menc);
|
||||||
else {
|
else {
|
||||||
msgid = mms_maketransid(octstr_get_cstr(qf2), settings->host_alias);
|
msgid = mms_make_msgid(octstr_get_cstr(qf2), settings->host_alias);
|
||||||
mresp = mms_sendconf("Ok",
|
mresp = mms_sendconf("Ok",
|
||||||
octstr_get_cstr(msgid),
|
octstr_get_cstr(msgid),
|
||||||
octstr_get_cstr(otransid),1,menc);
|
octstr_get_cstr(otransid),1,menc);
|
||||||
|
@ -1620,7 +1620,7 @@ static void mm7soap_dispatch(MmsHTTPClientInfo *h)
|
||||||
octstr_get_cstr(settings->global_queuedir),
|
octstr_get_cstr(settings->global_queuedir),
|
||||||
"MM7",
|
"MM7",
|
||||||
settings->host_alias);
|
settings->host_alias);
|
||||||
msgid = mms_maketransid(octstr_get_cstr(qf), settings->host_alias);
|
msgid = mms_make_msgid(octstr_get_cstr(qf), settings->host_alias);
|
||||||
mms_log("Received", from ? from : sender, to, -1, msgid, h->vasp->id, NULL, "MM7",
|
mms_log("Received", from ? from : sender, to, -1, msgid, h->vasp->id, NULL, "MM7",
|
||||||
h->ua, NULL);
|
h->ua, NULL);
|
||||||
octstr_destroy(value);
|
octstr_destroy(value);
|
||||||
|
@ -1634,7 +1634,7 @@ static void mm7soap_dispatch(MmsHTTPClientInfo *h)
|
||||||
|
|
||||||
case MM7_TAG_ReplaceReq:
|
case MM7_TAG_ReplaceReq:
|
||||||
msgid = mm7_soap_header_value(mreq, octstr_imm("MessageID"));
|
msgid = mm7_soap_header_value(mreq, octstr_imm("MessageID"));
|
||||||
if (msgid && (qf = mms_getqf_fromtransid(msgid)) != NULL &&
|
if (msgid && (qf = mms_getqf_from_msgid(msgid)) != NULL &&
|
||||||
(e = settings->qfs->mms_queue_readenvelope(octstr_get_cstr(qf),
|
(e = settings->qfs->mms_queue_readenvelope(octstr_get_cstr(qf),
|
||||||
octstr_get_cstr(settings->global_queuedir),
|
octstr_get_cstr(settings->global_queuedir),
|
||||||
1)) != NULL) {
|
1)) != NULL) {
|
||||||
|
@ -1693,7 +1693,7 @@ static void mm7soap_dispatch(MmsHTTPClientInfo *h)
|
||||||
|
|
||||||
case MM7_TAG_CancelReq:
|
case MM7_TAG_CancelReq:
|
||||||
msgid = mm7_soap_header_value(mreq, octstr_imm("MessageID"));
|
msgid = mm7_soap_header_value(mreq, octstr_imm("MessageID"));
|
||||||
if (msgid && (qf = mms_getqf_fromtransid(msgid)) != NULL &&
|
if (msgid && (qf = mms_getqf_from_msgid(msgid)) != NULL &&
|
||||||
(e = settings->qfs->mms_queue_readenvelope(octstr_get_cstr(qf),
|
(e = settings->qfs->mms_queue_readenvelope(octstr_get_cstr(qf),
|
||||||
octstr_get_cstr(settings->global_queuedir),
|
octstr_get_cstr(settings->global_queuedir),
|
||||||
1)) != NULL) {
|
1)) != NULL) {
|
||||||
|
@ -1858,7 +1858,7 @@ static void mm7eaif_dispatch(MmsHTTPClientInfo *h)
|
||||||
settings->host_alias);
|
settings->host_alias);
|
||||||
|
|
||||||
if (qf) {
|
if (qf) {
|
||||||
msgid = mms_maketransid(octstr_get_cstr(qf),
|
msgid = mms_make_msgid(octstr_get_cstr(qf),
|
||||||
settings->host_alias);
|
settings->host_alias);
|
||||||
|
|
||||||
/* Log to access log */
|
/* Log to access log */
|
||||||
|
|
Loading…
Reference in New Issue