]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Merge r629615, r629915 from trunk:
authorJim Jagielski <jim@apache.org>
Thu, 21 Feb 2008 20:43:54 +0000 (20:43 +0000)
committerJim Jagielski <jim@apache.org>
Thu, 21 Feb 2008 20:43:54 +0000 (20:43 +0000)
  *) mod_charset_lite: Add ForceAllMimeTypes sub-option to
     CharsetOptions, allowing the administrator to skip the
     mimetype checking that precedes translation.
     PR 44458 [Eric Covener]

rename mod_charset_lite CharsetOption ForceAllMimeTypes to
TranslateAllMimeTypes (only about 18 hours old)

Submitted by: covener
Reviewed by: jim

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@629983 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
STATUS
docs/manual/mod/mod_charset_lite.html.en
docs/manual/mod/mod_charset_lite.xml
modules/filters/mod_charset_lite.c

diff --git a/CHANGES b/CHANGES
index 81358fe9748fa9e999c91bd20f063e9785ccdbef..4d5c3e5cf0e6747716ef7c9a9fb49183e1306550 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,11 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.2.9
 
+  *) mod_charset_lite: Add ForceAllMimeTypes sub-option to
+     CharsetOptions, allowing the administrator to skip the
+     mimetype checking that precedes translation.
+     PR 44458 [Eric Covener]
+
   *) mod_proxy_http: Fix processing of chunked responses if
      Connection: Transfer-Encoding is set in the response of the proxied
      system. PR 44311 [Ruediger Pluem]
diff --git a/STATUS b/STATUS
index 55084806c02dd66cec3503668325735f52f57c31..3b47c7ea3af93f1c6954bb2fa9f4a54fbb2c52a0 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -81,12 +81,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
- * mod_charset_lite: Add TranslateAllMimeTypes sub-option to
-   CharsetOptions.  PR 44458
-      Trunk version of patch:
-         http://svn.apache.org/viewvc?rev=629615&view=rev
-         http://svn.apache.org/viewvc?rev=629915&view=rev
-    +1: covener, rpluem, jim
 
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ New proposals should be added at the end of the list ]
index 72f2d082971dc661415a3ed020515ddafc100856..01e27dd5cccfb2a6e657f826640234b8741e9cad 100644 (file)
       explicitly configured using the <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code> directive, <code>NoImplicitAdd</code>
       should be specified so that <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code>
       doesn't add its filter.</dd>
+
+      <dt><code>TranslateAllMimeTypes | NoTranslateAllMimeTypes</code></dt>
+      <dd>Normally, <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> will only perform
+      translation on a small subset of possible mimetypes.  When the
+      <code>TranslateAllMimeTypes</code> keyord is specified for a given
+      configuration section, translation is performed without regard for
+      mimetype.</dd>
+
     </dl>
 
 </div>
index 30f26306827863ef1bce509c2f8a4c04b3819677..ecbd412ad234d31e3bfc0ab1234062d17b1caddb 100644 (file)
       >AddOutputFilter</directive> directive, <code>NoImplicitAdd</code>
       should be specified so that <module>mod_charset_lite</module>
       doesn't add its filter.</dd>
+
+      <dt><code>TranslateAllMimeTypes | NoTranslateAllMimeTypes</code></dt>
+      <dd>Normally, <module>mod_charset_lite</module> will only perform
+      translation on a small subset of possible mimetypes.  When the
+      <code>TranslateAllMimeTypes</code> keyord is specified for a given
+      configuration section, translation is performed without regard for
+      mimetype.</dd>
+
     </dl>
 </usage>
 </directivesynopsis>
index ed8ecbe5ca2c079193144ca275b328c228123a30..079876b1d54c17b183ba2f3047adcebe36159576 100644 (file)
@@ -76,6 +76,8 @@ typedef struct charset_dir_t {
     const char *charset_default; /* how to ship on wire */
     /** module does ap_add_*_filter()? */
     enum {IA_INIT, IA_IMPADD, IA_NOIMPADD} implicit_add;
+    /** treat all mimetypes as text? */
+    enum {FX_INIT, FX_FORCE, FX_NOFORCE} force_xlate;
 } charset_dir_t;
 
 /* charset_filter_ctx_t is created for each filter instance; because the same
@@ -138,6 +140,8 @@ static void *merge_charset_dir_conf(apr_pool_t *p, void *basev, void *overridesv
         over->charset_source ? over->charset_source : base->charset_source;
     a->implicit_add =
         over->implicit_add != IA_INIT ? over->implicit_add : base->implicit_add;
+    a->force_xlate=
+        over->force_xlate != FX_INIT ? over->force_xlate : base->force_xlate;
     return a;
 }
 
@@ -176,6 +180,12 @@ static const char *add_charset_options(cmd_parms *cmd, void *in_dc,
     else if (!strcasecmp(flag, "NoImplicitAdd")) {
         dc->implicit_add = IA_NOIMPADD;
     }
+    if (!strcasecmp(flag, "TranslateAllMimeTypes")) {
+        dc->force_xlate = FX_FORCE;
+    }
+    else if (!strcasecmp(flag, "NoTranslateAllMimeTypes")) {
+        dc->force_xlate = FX_NOFORCE;
+    }
     else if (!strncasecmp(flag, "DebugLevel=", 11)) {
         dc->debug = atoi(flag + 11);
     }
@@ -803,7 +813,8 @@ static apr_status_t xlate_out_filter(ap_filter_t *f, apr_bucket_brigade *bb)
          */
             strcmp(mime_type, DIR_MAGIC_TYPE) == 0 ||
 #endif
-            strncasecmp(mime_type, "message/", 8) == 0) {
+            strncasecmp(mime_type, "message/", 8) == 0 || 
+            dc->force_xlate == FX_FORCE) {
 
             rv = apr_xlate_open(&ctx->xlate,
                                 dc->charset_default, dc->charset_source, f->r->pool);