Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Apache: CVS

cvs commit: apache/src mod_mime.c

 

 

Apache cvs RSS feed   Index | Next | Previous | View Threaded


akosut at hyperreal

Apr 9, 1996, 5:27 PM

Post #1 of 1 (161 views)
Permalink
cvs commit: apache/src mod_mime.c

akosut 96/04/09 17:27:58

Modified: src mod_mime.c
Log:
Make it so that files with unknown extensions (e.g. foo.gif.bak)
don't return content types they shouldn't (e.g. image/gif).

Revision Changes Path
1.7 +24 -4 apache/src/mod_mime.c

Index: mod_mime.c
===================================================================
RCS file: /export/home/cvs/apache/src/mod_mime.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C3 -r1.6 -r1.7
*** mod_mime.c 1996/04/08 13:04:59 1.6
--- mod_mime.c 1996/04/10 00:27:56 1.7
***************
*** 217,231 ****

/* Parse filename extensions, which can be in any order */
while ((ext = getword(r->pool, &fn, '.')) && *ext) {

/* Check for Content-Type */
if ((type = table_get (conf->forced_types, ext))
! || (type = table_get (hash_buckets[hash(*ext)], ext)))
! r->content_type = type;

/* Check for Content-Language */
! if ((type = table_get (conf->language_types, ext)))
r->content_language = type;

/* Check for Content-Encoding */
if ((type = table_get (conf->encoding_types, ext))) {
--- 217,236 ----

/* Parse filename extensions, which can be in any order */
while ((ext = getword(r->pool, &fn, '.')) && *ext) {
+ int found = 0;

/* Check for Content-Type */
if ((type = table_get (conf->forced_types, ext))
! || (type = table_get (hash_buckets[hash(*ext)], ext))) {
! r->content_type = type;
! found = 1;
! }

/* Check for Content-Language */
! if ((type = table_get (conf->language_types, ext))) {
r->content_language = type;
+ found = 1;
+ }

/* Check for Content-Encoding */
if ((type = table_get (conf->encoding_types, ext))) {
***************
*** 234,243 ****
else
r->content_encoding = pstrcat(r->pool, r->content_encoding,
", ", type, NULL);
}
/* Check for a special handler, but not for proxy request */
! if ((type = table_get (conf->handlers, ext)) && !r->proxyreq)
r->handler = type;

}

--- 239,263 ----
else
r->content_encoding = pstrcat(r->pool, r->content_encoding,
", ", type, NULL);
+ found = 1;
}
+
/* Check for a special handler, but not for proxy request */
! if ((type = table_get (conf->handlers, ext)) && !r->proxyreq) {
r->handler = type;
+ found = 1;
+ }
+
+ /* This is to deal with cases such as foo.gif.bak, which we want
+ * to not have a type. So if we find an unknown extension, we
+ * zap the type/language/encoding (but not the handler)
+ */
+
+ if (!found) {
+ r->content_type = NULL;
+ r->content_language = NULL;
+ r->content_encoding = NULL;
+ }

}

Apache cvs RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.