Applied -- thank you. Ditto Martin's patch.
Paul.
On Aug 18, 2008, at 17:01, Vincent CHAVANIS wrote:
Hi all,
This patch fixes the Content-ID header when a 'listed' web
programming language is used to get the content (to get an image/
sound/video into a DB from a php script for example).
This also fixes the content_type2file_ext() function when Content-type
is populated with more than one values.
(We take the first one expecting the content type)
(eg: Content-Type: text/plain; charset=utf-8; name=txt1.txt)
Vincent.
--
Telemaque - 06560 SOPHIA-ANTIPOLIS - (FR)
Service Technique/Reseau - NOC
Direction du Developpement xMS+
http://www.telemaque.fr/
[EMAIL PROTECTED]
Tel : +33 4 92 90 99 84 (fax 9142)
diff -rbau /mbuni-cvs/mmlib/mms_util.c /mbuni/mmlib/mms_util.c
--- /mbuni-cvs/mmlib/mms_util.c 2008-08-07 16:09:25.0 +0200
+++ /mbuni/mmlib/mms_util.c 2008-08-18 15:53:58.0 +0200
@@ -1364,6 +1364,23 @@
{NULL, NULL}
};
+/* Some of Web languages used for generating content, but can't be
a content itself. */
+static struct {
+ char *language, *file_ext; }
+l_exts[] = {
+ {Perl, pl},
+ {Php, php},
+ {Python, py},
+ {Common Gateway Interface, cgi},
+ {Active Server Page, asp},
+ {Java Server Page, jsp},
+ {Ruby on Rails, rb},
+ {Tool Command Language, tcl},
+ {Shell Command Language, sh},
+ {Executables, exe},
+ {NULL, NULL}
+};
+
Octstr *filename2content_type(char *fname)
{
char *p = strrchr(fname, '.');
@@ -1379,7 +1396,12 @@
static char *content_type2file_ext(Octstr *ctype)
{
- int i;
+ int i,j;
+
+ /* Take the first value, expecting content-type! */
+ if ((j = octstr_search_char(ctype, ';', 0)) != -1)
+ octstr_delete(ctype, j, octstr_len(ctype));
+
for (i = 0; exts[i].file_ext; i++)
if (octstr_str_case_compare(ctype, exts[i].ctype) == 0)
return exts[i].file_ext;
@@ -1389,6 +1411,7 @@
char *make_file_ext(Octstr *url, Octstr *ctype, char fext[5])
{
+ int i;
fext[0] = 0;
if (url) {
HTTPURLParse *h = parse_url(url);
@@ -1402,6 +1425,11 @@
strncpy(fext, p+1, 4); /* max length of 4. */
http_urlparse_destroy(h);
+
+ for (i = 0; l_exts[i].file_ext; i++)
+ if (strcasecmp(fext, l_exts[i].file_ext) == 0)
+return content_type2file_ext(ctype);
+
if (fext[0]) return fext;
}
done:
___
Devel mailing list
Devel@mbuni.org
http://lists.mbuni.org/mailman/listinfo/devel
___
Devel mailing list
Devel@mbuni.org
http://lists.mbuni.org/mailman/listinfo/devel