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.000000000 +0200
+++ /mbuni/mmlib/mms_util.c     2008-08-18 15:53:58.000000000 +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

Reply via email to