*** empty log message ***
This commit is contained in:
parent
e3aabcccfe
commit
b5aa2c8e63
|
@ -272,17 +272,17 @@ MSoapMsg_t *mm7_parse_soap(List *headers, Octstr *body)
|
||||||
MIMEEntity *c = NULL;
|
MIMEEntity *c = NULL;
|
||||||
int i, n;
|
int i, n;
|
||||||
char *loc = octstr_get_cstr(cloc);
|
char *loc = octstr_get_cstr(cloc);
|
||||||
|
|
||||||
if (octstr_case_search(cloc, octstr_imm("cid:"), 0) == 0) /* skip 'cid:' part. */
|
if (octstr_case_search(cloc, octstr_imm("cid:"), 0) == 0) /* skip 'cid:' part. */
|
||||||
loc += 4; /* XXX This should always be there, but some MMC don't put it there. */
|
loc += 4; /* XXX This should always be there, but some MMC don't put it there. */
|
||||||
|
|
||||||
for (i = 0, n = mime_entity_num_parts(mime); i<n; i++) {
|
for (i = 0, n = mime_entity_num_parts(mime); i<n; i++) {
|
||||||
MIMEEntity *x = mime_entity_get_part(mime, i);
|
MIMEEntity *x = mime_entity_get_part(mime, i);
|
||||||
List *headers = mime_entity_headers(x);
|
List *headers = mime_entity_headers(x);
|
||||||
Octstr *y = headers ? http_header_value(headers, octstr_imm("Content-ID")) : NULL;
|
Octstr *y = headers ? http_header_value(headers, octstr_imm("Content-ID")) : NULL;
|
||||||
char *cid = (y && octstr_get_char(y, 0) == '<') ? octstr_get_cstr(y) + 1 : (y ? octstr_get_cstr(y) : "");
|
char *cid = (y && octstr_get_char(y, 0) == '<') ? octstr_get_cstr(y) + 1 : (y ? octstr_get_cstr(y) : "");
|
||||||
int cid_len = (y && octstr_get_char(y, 0) == '<') ? octstr_len(y) - 2 : (y ? octstr_len(y) : 0);
|
int cid_len = (y && octstr_get_char(y, 0) == '<') ? octstr_len(y) - 2 : (y ? octstr_len(y) : 0);
|
||||||
|
|
||||||
if (y &&
|
if (y &&
|
||||||
(strncmp(loc, cid, cid_len) == 0 ||
|
(strncmp(loc, cid, cid_len) == 0 ||
|
||||||
octstr_compare(y, cloc) == 0)) /* XXX seems wrong, but some MMC out there behave badly, so we support it */
|
octstr_compare(y, cloc) == 0)) /* XXX seems wrong, but some MMC out there behave badly, so we support it */
|
||||||
|
@ -294,12 +294,38 @@ MSoapMsg_t *mm7_parse_soap(List *headers, Octstr *body)
|
||||||
mime_entity_destroy(x);
|
mime_entity_destroy(x);
|
||||||
if (c)
|
if (c)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c)
|
if (c)
|
||||||
msg = c; /* this is already a copy. */
|
msg = c; /* this is already a copy. */
|
||||||
octstr_destroy(cloc);
|
octstr_destroy(cloc);
|
||||||
|
} else {
|
||||||
|
/* XXX Sigh! Broken MMC don't set this parameter. Lets try to be kind to them! */
|
||||||
|
int i, n = mime_entity_num_parts(mime);
|
||||||
|
int found = 0;
|
||||||
|
for (i = 0; !found && i < n; i++) {
|
||||||
|
MIMEEntity *x = mime_entity_get_part(mime,i);
|
||||||
|
List *hx = NULL;
|
||||||
|
Octstr *xctype = NULL, *xparams = NULL;
|
||||||
|
if (!x)
|
||||||
|
goto loop;
|
||||||
|
hx = mime_entity_headers(x);
|
||||||
|
get_content_type(hx, &xctype, &xparams);
|
||||||
|
|
||||||
|
if (xctype && octstr_case_compare(xctype, octstr_imm("text/xml")) != 0) {
|
||||||
|
/* Found something that might be the body, since its not XML.
|
||||||
|
* Perhaps we compare bodies? For broken ones anyway, so no bother!
|
||||||
|
*/
|
||||||
|
found = 1;
|
||||||
|
msg = x;
|
||||||
|
}
|
||||||
|
loop:
|
||||||
|
if (x && !found) mime_entity_destroy(x);
|
||||||
|
if (hx) http_destroy_headers(hx);
|
||||||
|
octstr_destroy(xctype);
|
||||||
|
octstr_destroy(xparams);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
smsg = gw_malloc(sizeof *smsg);
|
smsg = gw_malloc(sizeof *smsg);
|
||||||
smsg->envelope = h;
|
smsg->envelope = h;
|
||||||
smsg->msg = msg;
|
smsg->msg = msg;
|
||||||
|
|
|
@ -22,7 +22,9 @@
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#ifdef HAVE_LIBSSL
|
||||||
|
#include <openssl/md5.h>
|
||||||
|
#endif
|
||||||
#include "mms_util.h"
|
#include "mms_util.h"
|
||||||
#include "mms_queue.h"
|
#include "mms_queue.h"
|
||||||
#include "mms_uaprof.h"
|
#include "mms_uaprof.h"
|
||||||
|
|
|
@ -905,7 +905,7 @@ static int sendMsg(MmsEnvelope *e)
|
||||||
info(0, "%s MMSBox Outgoing Queue MMS Send: From %s, to %s, msgsize=%ld: err=%s",
|
info(0, "%s MMSBox Outgoing Queue MMS Send: From %s, to %s, msgsize=%ld: err=%s",
|
||||||
SEND_ERROR_STR(res),
|
SEND_ERROR_STR(res),
|
||||||
octstr_get_cstr(e->from), octstr_get_cstr(to->rcpt), e->msize,
|
octstr_get_cstr(e->from), octstr_get_cstr(to->rcpt), e->msize,
|
||||||
err ? octstr_get_cstr(err) : "(null)");
|
err ? octstr_get_cstr(err) : "(none)");
|
||||||
|
|
||||||
|
|
||||||
e->lasttry = tnow;
|
e->lasttry = tnow;
|
||||||
|
|
Loading…
Reference in New Issue