minor fix with mmsc message routing
This commit is contained in:
parent
21f1188c4e
commit
b3f9f30919
|
@ -263,13 +263,15 @@ static int sendMsg(MmsEnvelope *e)
|
|||
e->msgId, e->expiryt, msg, e->dlr,
|
||||
&err);
|
||||
sent = 1;
|
||||
} else if (proxyrelays && gwlist_len(proxyrelays) > 0)
|
||||
} else {
|
||||
|
||||
/* else, step through proxies, look for one that matches. */
|
||||
for (j = 0, m = gwlist_len(proxyrelays); j<m; j++) {
|
||||
for (j = 0, m = proxyrelays ? gwlist_len(proxyrelays) : 0; j<m; j++) {
|
||||
MmsProxyRelay *mp = gwlist_get(proxyrelays, j);
|
||||
|
||||
if (!octstr_compare(mp->host, mmsc)) {
|
||||
Octstr *xtransid = mms_maketransid(e->xqfname, settings->host_alias);
|
||||
if (octstr_compare(mp->host, mmsc) == 0) {
|
||||
Octstr *xtransid = mms_maketransid(e->xqfname,
|
||||
settings->host_alias);
|
||||
res = mms_sendtoproxy(e->from, to->rcpt,
|
||||
e->subject, mp->host,
|
||||
octstr_get_cstr(xtransid),
|
||||
|
@ -280,6 +282,20 @@ static int sendMsg(MmsEnvelope *e)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (sent != 1) /* try mm7 delivery. Again. */
|
||||
for (j = 0, m = gwlist_len(settings->vasp_list); j < m; j++)
|
||||
if ((vasp = gwlist_get(settings->vasp_list, j)) != NULL &&
|
||||
vasp->id &&
|
||||
octstr_compare(vasp->id, mmsc) == 0) {
|
||||
res = mms_sendtovasp(vasp, e->from, to->rcpt,
|
||||
e->msgId,
|
||||
e->hdrs,
|
||||
msg, &err);
|
||||
sent = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
octstr_destroy(mmsc);
|
||||
}
|
||||
}
|
||||
|
@ -288,7 +304,7 @@ static int sendMsg(MmsEnvelope *e)
|
|||
err = octstr_format("MMSC error: Don't know how to deliver to %S !", to->rcpt);
|
||||
|
||||
}
|
||||
if (phonenum) octstr_destroy(phonenum);
|
||||
octstr_destroy(phonenum);
|
||||
}
|
||||
|
||||
done:
|
||||
|
@ -362,8 +378,8 @@ static int sendMsg(MmsEnvelope *e)
|
|||
}
|
||||
|
||||
done2:
|
||||
if (msg)
|
||||
mms_destroy(msg);
|
||||
|
||||
mms_destroy(msg);
|
||||
|
||||
if (e) { /* Update the queue if it is still valid (e.g. recipients not handled) XXX can this happen here??... */
|
||||
e->lasttry = time(NULL);
|
||||
|
@ -693,16 +709,12 @@ static int mm7eaif_send(MmsVasp *vasp, Octstr *from, Octstr *to, Octstr *msgid,
|
|||
ret = MMS_SEND_OK;
|
||||
}
|
||||
|
||||
if (rh)
|
||||
http_destroy_headers(rh);
|
||||
if (body)
|
||||
octstr_destroy(body);
|
||||
if (ph)
|
||||
http_destroy_headers(ph);
|
||||
if (rbody)
|
||||
octstr_destroy(rbody);
|
||||
if (url)
|
||||
octstr_destroy(url);
|
||||
|
||||
http_destroy_headers(rh);
|
||||
octstr_destroy(body);
|
||||
http_destroy_headers(ph);
|
||||
octstr_destroy(rbody);
|
||||
octstr_destroy(url);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue