minor fix in VAS GW -- better file extension to content ID
This commit is contained in:
parent
b3da1b4ead
commit
f7da8933d8
|
@ -5,7 +5,7 @@
|
||||||
2007-06-21 P. A. Bagyenda <bagyenda@dsmagic.com>
|
2007-06-21 P. A. Bagyenda <bagyenda@dsmagic.com>
|
||||||
* Better configurability of MM7/SOAP namespace URI and MM7 version.
|
* Better configurability of MM7/SOAP namespace URI and MM7 version.
|
||||||
2007-06-12 P. A. Bagyenda <bagyenda@dsmagic.com>
|
2007-06-12 P. A. Bagyenda <bagyenda@dsmagic.com>
|
||||||
* Improved DLR reporting over MM4 interface - set receipient as from address
|
* Improved DLR reporting over MM4 interface - set recipient as from address
|
||||||
2007-05-08 P. A. Bagyenda <bagyenda@dsmagic.com>
|
2007-05-08 P. A. Bagyenda <bagyenda@dsmagic.com>
|
||||||
* Improved MIME to MMS conversion conversion
|
* Improved MIME to MMS conversion conversion
|
||||||
2007-05-05 P. A. Bagyenda <bagyenda@dsmagic.com>
|
2007-05-05 P. A. Bagyenda <bagyenda@dsmagic.com>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
dnl Mbuni - Open Source MMS Gateway
|
dnl Mbuni - Open Source MMS Gateway
|
||||||
dnl
|
dnl
|
||||||
dnl Copyright (C) 2003 - 2006, Digital Solutions Ltd. - http://www.dsmagic.com
|
dnl Copyright (C) 2003 - 2007, Digital Solutions Ltd. - http://www.dsmagic.com
|
||||||
dnl
|
dnl
|
||||||
dnl Paul Bagyenda <bagyenda@dsmagic.com>
|
dnl Paul Bagyenda <bagyenda@dsmagic.com>
|
||||||
dnl
|
dnl
|
||||||
|
@ -279,7 +279,7 @@ cat<<X
|
||||||
License:
|
License:
|
||||||
Mbuni (version $M_VERSION) - Open Source MMS Gateway - http://www.mbuni.org/
|
Mbuni (version $M_VERSION) - Open Source MMS Gateway - http://www.mbuni.org/
|
||||||
|
|
||||||
Copyright (C) 2003 - 2006, Digital Solutions Ltd. - http://www.dsmagic.com
|
Copyright (C) 2003 - 2007, Digital Solutions Ltd. - http://www.dsmagic.com
|
||||||
|
|
||||||
This program is free software, distributed under the terms of
|
This program is free software, distributed under the terms of
|
||||||
the GNU General Public License, with a few exceptions granted (see LICENSE)
|
the GNU General Public License, with a few exceptions granted (see LICENSE)
|
||||||
|
|
|
@ -1591,7 +1591,8 @@ Boolean
|
||||||
file). This is useful if say you want to implement custom
|
file). This is useful if say you want to implement custom
|
||||||
filtering/transformation of content (e.g. DRM wrappers around
|
filtering/transformation of content (e.g. DRM wrappers around
|
||||||
selected content). Note that only elements
|
selected content). Note that only elements
|
||||||
referenced within the returned SMIL are filtered. See
|
referenced by URL/file name (e.g. within the returned SMIL or if fetched by
|
||||||
|
the send-mms interface via URL) are filtered. See
|
||||||
<tt>mmsbox_mt_filter.h</tt> for details. Also see
|
<tt>mmsbox_mt_filter.h</tt> for details. Also see
|
||||||
<tt>mm7-mt-filter-params</tt> config variable in the <a href="#mmsc_vasp">VAS specific
|
<tt>mm7-mt-filter-params</tt> config variable in the <a href="#mmsc_vasp">VAS specific
|
||||||
config section</a>.
|
config section</a>.
|
||||||
|
|
|
@ -1253,7 +1253,7 @@ Octstr *filename2content_type(char *fname)
|
||||||
return octstr_imm("application/octet-stream");
|
return octstr_imm("application/octet-stream");
|
||||||
}
|
}
|
||||||
|
|
||||||
char *content_type2file_ext(Octstr *ctype)
|
static char *content_type2file_ext(Octstr *ctype)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; exts[i].file_ext; i++)
|
for (i = 0; exts[i].file_ext; i++)
|
||||||
|
@ -1263,6 +1263,26 @@ char *content_type2file_ext(Octstr *ctype)
|
||||||
return "dat";
|
return "dat";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *make_file_ext(Octstr *url, Octstr *ctype, char fext[5])
|
||||||
|
{
|
||||||
|
fext[0] = 0;
|
||||||
|
if (url) {
|
||||||
|
HTTPURLParse *h = parse_url(url);
|
||||||
|
char *s, *p;
|
||||||
|
if (!h)
|
||||||
|
goto done;
|
||||||
|
|
||||||
|
s = h->path ? octstr_get_cstr(h->path) : "";
|
||||||
|
|
||||||
|
if ((p = strrchr(s, '.')) != NULL)
|
||||||
|
strncpy(fext, p+1, 4); /* max length of 4. */
|
||||||
|
|
||||||
|
http_urlparse_destroy(h);
|
||||||
|
if (fext[0]) return fext;
|
||||||
|
}
|
||||||
|
done:
|
||||||
|
return content_type2file_ext(ctype);
|
||||||
|
}
|
||||||
static int fetch_url_with_auth(HTTPCaller *c, int method, Octstr *url, List *request_headers,
|
static int fetch_url_with_auth(HTTPCaller *c, int method, Octstr *url, List *request_headers,
|
||||||
Octstr *body, Octstr *auth_hdr, List **reply_headers, Octstr **reply_body);
|
Octstr *body, Octstr *auth_hdr, List **reply_headers, Octstr **reply_body);
|
||||||
|
|
||||||
|
|
|
@ -189,8 +189,8 @@ int mms_is_token(Octstr *token);
|
||||||
/* try to guess content type from file name extension. */
|
/* try to guess content type from file name extension. */
|
||||||
Octstr *filename2content_type(char *fname);
|
Octstr *filename2content_type(char *fname);
|
||||||
|
|
||||||
/* try to give a good extension name based on the content type. */
|
/* try to give a good extension name based on the url or content type. */
|
||||||
char *content_type2file_ext(Octstr *ctype);
|
char *make_file_ext(Octstr *url, Octstr *ctype, char fext[5]);
|
||||||
|
|
||||||
#define MAXQTRIES 100
|
#define MAXQTRIES 100
|
||||||
#define BACKOFF_FACTOR 5*60 /* In seconds */
|
#define BACKOFF_FACTOR 5*60 /* In seconds */
|
||||||
|
|
|
@ -734,7 +734,7 @@ static int add_msg_part(MIMEEntity *res, xmlNodePtr node, Octstr *base_url,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctype && body) { /* If we got it, put it in. */
|
if (ctype && body) { /* If we got it, put it in. */
|
||||||
char *fext = content_type2file_ext(ctype);
|
char _fext[5] = {0}, *fext = make_file_ext(curl, ctype, _fext);
|
||||||
Octstr *attr = octstr_format("cid:%06d.%s", ++cntr,fext);
|
Octstr *attr = octstr_format("cid:%06d.%s", ++cntr,fext);
|
||||||
char *p = octstr_get_cstr(attr) + 4;
|
char *p = octstr_get_cstr(attr) + 4;
|
||||||
Octstr *cid_header_val = octstr_format("<%s>", p);
|
Octstr *cid_header_val = octstr_format("<%s>", p);
|
||||||
|
@ -953,9 +953,9 @@ static int make_and_queue_msg(Octstr *data, Octstr *ctype, List *reply_headers,
|
||||||
} else { /* all others, make the message as-is and hope for the best! */
|
} else { /* all others, make the message as-is and hope for the best! */
|
||||||
List *xh = http_create_empty_headers();
|
List *xh = http_create_empty_headers();
|
||||||
|
|
||||||
if (mt_multipart) { /* if its going to be multi-part, add some nice headers. */
|
if (mt_multipart) { /* if it's going to be multi-part, add some headers. */
|
||||||
static int cntr = 0;
|
static int cntr = 0;
|
||||||
char *fext = content_type2file_ext(ctype);
|
char _fext[5] = {0}, *fext = make_file_ext(msg_url, ctype, _fext);
|
||||||
Octstr *attr = octstr_format("%06d.%s", ++cntr,fext);
|
Octstr *attr = octstr_format("%06d.%s", ++cntr,fext);
|
||||||
Octstr *cid_header_val = octstr_format("<%S>", attr);
|
Octstr *cid_header_val = octstr_format("<%S>", attr);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue