Re: [Devel] [PATCH] fix content-id when a script is giving content

2008-08-19 Thread P. A. Bagyenda

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


[Devel] [PATCH] fix content-id when a script is giving content

2008-08-18 Thread Vincent CHAVANIS

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