You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Robert Simonson <si...@us.ibm.com> on 2001/08/29 15:41:39 UTC

[PATCH] mod_autoindex HeaderName/ReadmeName content_type

This patch is to set the content_type to the default if the subrequest
request_rec content_type is NULL.

Rob Simonson
simo@us.ibm.com

==========================================================
--- mod_autoindex.c.asfsave.c Wed Aug 29 08:29:17 2001
+++ mod_autoindex.c Wed Aug 29 08:32:15 2001
@@ -999,49 +999,49 @@
     && (rr->status == HTTP_OK)
     && (rr->filename != NULL)
     && rr->finfo.filetype == APR_REG) {
+        if (rr->content_type == NULL)
+            rr->content_type = ap_default_type(rr);
     /*
      * Check for the two specific cases we allow: text/html and
      * text/anything-else.  The former is allowed to be processed for
      * SSIs.
      */
-    if (rr->content_type != NULL) {
-        if (!strcasecmp(ap_field_noparam(r->pool, rr->content_type),
-                  "text/html")) {
-         /* Hope everything will work... */
-         emit_amble = 0;
-         emit_H1 = 0;
+        if (!strcasecmp(ap_field_noparam(r->pool, rr->content_type),
+                        "text/html")) {
+            /* Hope everything will work... */
+            emit_amble = 0;
+            emit_H1 = 0;

-         if (! suppress_amble) {
-             emit_preamble(r, title);
-         }
-         /*
-          * If there's a problem running the subrequest, display the
-          * preamble if we didn't do it before -- the header file
-          * didn't get displayed.
-          */
-         if (ap_run_sub_req(rr) != OK) {
-             /* It didn't work */
-             emit_amble = suppress_amble;
-             emit_H1 = 1;
-         }
-        }
-        else if (!strncasecmp("text/", rr->content_type, 5)) {
-         /*
-          * If we can open the file, prefix it with the preamble
-          * regardless; since we'll be sending a <pre> block around
-          * the file's contents, any HTML header it had won't end up
-          * where it belongs.
-          */
-         if (apr_file_open(&f, rr->filename, APR_READ,
-                            APR_OS_DEFAULT, r->pool) == APR_SUCCESS) {
-             emit_preamble(r, title);
-             emit_amble = 0;
-             do_emit_plain(r, f);
-             apr_file_close(f);
-             emit_H1 = 0;
-         }
-        }
-    }
+            if (! suppress_amble) {
+                emit_preamble(r, title);
+            }
+            /*
+             * If there's a problem running the subrequest, display the
+             * preamble if we didn't do it before -- the header file
+             * didn't get displayed.
+             */
+            if (ap_run_sub_req(rr) != OK) {
+                /* It didn't work */
+                emit_amble = suppress_amble;
+                emit_H1 = 1;
+            }
+        }
+        else if (!strncasecmp("text/", rr->content_type, 5)) {
+            /*
+             * If we can open the file, prefix it with the preamble
+             * regardless; since we'll be sending a <pre> block around
+             * the file's contents, any HTML header it had won't end up
+             * where it belongs.
+             */
+            if (apr_file_open(&f, rr->filename, APR_READ,
+                              APR_OS_DEFAULT, r->pool) == APR_SUCCESS) {
+                emit_preamble(r, title);
+                emit_amble = 0;
+                do_emit_plain(r, f);
+                apr_file_close(f);
+                emit_H1 = 0;
+            }
+        }
     }

     if (emit_amble) {
@@ -1082,32 +1082,32 @@
     && (rr->status == HTTP_OK)
     && (rr->filename != NULL)
     && rr->finfo.filetype == APR_REG) {
+        if (rr->content_type == NULL)
+            rr->content_type = ap_default_type(rr);
     /*
      * Check for the two specific cases we allow: text/html and
      * text/anything-else.  The former is allowed to be processed for
      * SSIs.
-     */
-    if (rr->content_type != NULL) {
-        if (!strcasecmp(ap_field_noparam(r->pool, rr->content_type),
-                  "text/html")) {
-         if (ap_run_sub_req(rr) == OK) {
-             /* worked... */
-             suppress_sig = 1;
-             suppress_post = suppress_amble;
-         }
-        }
-        else if (!strncasecmp("text/", rr->content_type, 5)) {
-         /*
-          * If we can open the file, suppress the signature.
-          */
-         if (apr_file_open(&f, rr->filename, APR_READ,
-                            APR_OS_DEFAULT, r->pool) == APR_SUCCESS) {
-             do_emit_plain(r, f);
-             apr_file_close(f);
-             suppress_sig = 1;
-         }
-        }
-    }
+         */
+        if (!strcasecmp(ap_field_noparam(r->pool, rr->content_type),
+                        "text/html")) {
+            if (ap_run_sub_req(rr) == OK) {
+                /* worked... */
+                suppress_sig = 1;
+                suppress_post = suppress_amble;
+            }
+        }
+        else if (!strncasecmp("text/", rr->content_type, 5)) {
+            /*
+             * If we can open the file, suppress the signature.
+             */
+            if (apr_file_open(&f, rr->filename, APR_READ,
+                              APR_OS_DEFAULT, r->pool) == APR_SUCCESS) {
+                do_emit_plain(r, f);
+                apr_file_close(f);
+                suppress_sig = 1;
+            }
+        }
     }

     if (!suppress_sig) {



Re: [PATCH] mod_autoindex HeaderName/ReadmeName content_type

Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
This is a wee bit to hackish.  Proper configuration of the files is more
appropriate.  On Apache 1.3, I believe the hack that works is

AddType /README text/plain
AddType /HEADER text/plain

Please don't ask why this should work ... is just does ;)

Give it a shot, let us know if it solves your problem without hassle.

Bill

----- Original Message ----- 
From: "Robert Simonson" <si...@us.ibm.com>
To: <de...@httpd.apache.org>
Sent: Wednesday, August 29, 2001 8:41 AM
Subject: [PATCH] mod_autoindex HeaderName/ReadmeName content_type


> This patch is to set the content_type to the default if the subrequest
> request_rec content_type is NULL.
> 
> Rob Simonson
> simo@us.ibm.com
> 
> ==========================================================
> --- mod_autoindex.c.asfsave.c Wed Aug 29 08:29:17 2001
> +++ mod_autoindex.c Wed Aug 29 08:32:15 2001
> @@ -999,49 +999,49 @@
>      && (rr->status == HTTP_OK)
>      && (rr->filename != NULL)
>      && rr->finfo.filetype == APR_REG) {
> +        if (rr->content_type == NULL)
> +            rr->content_type = ap_default_type(rr);
>      /*
>       * Check for the two specific cases we allow: text/html and
>       * text/anything-else.  The former is allowed to be processed for
>       * SSIs.
>       */
> -    if (rr->content_type != NULL) {
> -        if (!strcasecmp(ap_field_noparam(r->pool, rr->content_type),
> -                  "text/html")) {
> -         /* Hope everything will work... */
> -         emit_amble = 0;
> -         emit_H1 = 0;
> +        if (!strcasecmp(ap_field_noparam(r->pool, rr->content_type),
> +                        "text/html")) {
> +            /* Hope everything will work... */
> +            emit_amble = 0;
> +            emit_H1 = 0;
> 
> -         if (! suppress_amble) {
> -             emit_preamble(r, title);
> -         }
> -         /*
> -          * If there's a problem running the subrequest, display the
> -          * preamble if we didn't do it before -- the header file
> -          * didn't get displayed.
> -          */
> -         if (ap_run_sub_req(rr) != OK) {
> -             /* It didn't work */
> -             emit_amble = suppress_amble;
> -             emit_H1 = 1;
> -         }
> -        }
> -        else if (!strncasecmp("text/", rr->content_type, 5)) {
> -         /*
> -          * If we can open the file, prefix it with the preamble
> -          * regardless; since we'll be sending a <pre> block around
> -          * the file's contents, any HTML header it had won't end up
> -          * where it belongs.
> -          */
> -         if (apr_file_open(&f, rr->filename, APR_READ,
> -                            APR_OS_DEFAULT, r->pool) == APR_SUCCESS) {
> -             emit_preamble(r, title);
> -             emit_amble = 0;
> -             do_emit_plain(r, f);
> -             apr_file_close(f);
> -             emit_H1 = 0;
> -         }
> -        }
> -    }
> +            if (! suppress_amble) {
> +                emit_preamble(r, title);
> +            }
> +            /*
> +             * If there's a problem running the subrequest, display the
> +             * preamble if we didn't do it before -- the header file
> +             * didn't get displayed.
> +             */
> +            if (ap_run_sub_req(rr) != OK) {
> +                /* It didn't work */
> +                emit_amble = suppress_amble;
> +                emit_H1 = 1;
> +            }
> +        }
> +        else if (!strncasecmp("text/", rr->content_type, 5)) {
> +            /*
> +             * If we can open the file, prefix it with the preamble
> +             * regardless; since we'll be sending a <pre> block around
> +             * the file's contents, any HTML header it had won't end up
> +             * where it belongs.
> +             */
> +            if (apr_file_open(&f, rr->filename, APR_READ,
> +                              APR_OS_DEFAULT, r->pool) == APR_SUCCESS) {
> +                emit_preamble(r, title);
> +                emit_amble = 0;
> +                do_emit_plain(r, f);
> +                apr_file_close(f);
> +                emit_H1 = 0;
> +            }
> +        }
>      }
> 
>      if (emit_amble) {
> @@ -1082,32 +1082,32 @@
>      && (rr->status == HTTP_OK)
>      && (rr->filename != NULL)
>      && rr->finfo.filetype == APR_REG) {
> +        if (rr->content_type == NULL)
> +            rr->content_type = ap_default_type(rr);
>      /*
>       * Check for the two specific cases we allow: text/html and
>       * text/anything-else.  The former is allowed to be processed for
>       * SSIs.
> -     */
> -    if (rr->content_type != NULL) {
> -        if (!strcasecmp(ap_field_noparam(r->pool, rr->content_type),
> -                  "text/html")) {
> -         if (ap_run_sub_req(rr) == OK) {
> -             /* worked... */
> -             suppress_sig = 1;
> -             suppress_post = suppress_amble;
> -         }
> -        }
> -        else if (!strncasecmp("text/", rr->content_type, 5)) {
> -         /*
> -          * If we can open the file, suppress the signature.
> -          */
> -         if (apr_file_open(&f, rr->filename, APR_READ,
> -                            APR_OS_DEFAULT, r->pool) == APR_SUCCESS) {
> -             do_emit_plain(r, f);
> -             apr_file_close(f);
> -             suppress_sig = 1;
> -         }
> -        }
> -    }
> +         */
> +        if (!strcasecmp(ap_field_noparam(r->pool, rr->content_type),
> +                        "text/html")) {
> +            if (ap_run_sub_req(rr) == OK) {
> +                /* worked... */
> +                suppress_sig = 1;
> +                suppress_post = suppress_amble;
> +            }
> +        }
> +        else if (!strncasecmp("text/", rr->content_type, 5)) {
> +            /*
> +             * If we can open the file, suppress the signature.
> +             */
> +            if (apr_file_open(&f, rr->filename, APR_READ,
> +                              APR_OS_DEFAULT, r->pool) == APR_SUCCESS) {
> +                do_emit_plain(r, f);
> +                apr_file_close(f);
> +                suppress_sig = 1;
> +            }
> +        }
>      }
> 
>      if (!suppress_sig) {
> 
> 
>