]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Backported
authorJim Jagielski <jim@apache.org>
Thu, 3 Jan 2008 13:42:06 +0000 (13:42 +0000)
committerJim Jagielski <jim@apache.org>
Thu, 3 Jan 2008 13:42:06 +0000 (13:42 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x@608484 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
STATUS
docs/manual/mod/mod_proxy.xml
include/ap_mmn.h
modules/proxy/mod_proxy.c
modules/proxy/mod_proxy.h

diff --git a/CHANGES b/CHANGES
index e55a69a17ad4fcb26116107a7ac4aefa938f2c34..efe17672b3a770875ccaf6d96f933be34b43379e 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -10,6 +10,10 @@ Changes with Apache 2.0.62
      mod_imagemap: Fix a cross-site scripting issue.  Reported by JPCERT.
      [Joe Orton]
 
+  *) Introduce the ProxyFtpDirCharset directive, allowing the administrator
+     to identify a default, or specific servers or paths which list their
+     contents in other-than ISO-8859-1 charset (e.g. utf-8). [Ruediger Pluem]
+
   *) log.c: Ensure Win32 resurrects its lost robust logger processes.
      [William Rowe]
 
diff --git a/STATUS b/STATUS
index d8a3fdb868e6c01d8f10a4af826a1e015ffd1afb..046a634f291ffe4ec00bde94cd8788445ae578f3 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -116,14 +116,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-  * mod_proxy_ftp: Introduce the ProxyFtpDirCharset directive, allowing
-    the administrator to identify a default, or specific servers or paths
-    which list their contents in other-than ISO-8859-1 charset (e.g. utf-8).
-    [Ruediger Pluem]
-      trunk version; http://svn.apache.org/viewvc?view=rev&revision=607638
-      backport;
-        http://people.apache.org/~rpluem/patches/mod_proxy_ftp_dir_listing-2.0.diff
-      +1: wrowe, rpluem, jim
 
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ please place SVN revisions from trunk here, so it is easy to
index 94c04d60d20583d4d7d45aaec02e50bee850bc73..16f11a945b32505e589438749660cd13cbad465f 100644 (file)
@@ -398,6 +398,22 @@ response</description>
 </usage>
 </directivesynopsis>
 
+<directivesynopsis>
+<name>ProxyFtpDirCharset</name>
+<description>Define the character set for proxied FTP listings</description>
+<syntax>ProxyFtpDirCharset <var>character set</var></syntax>
+<default>ProxyFtpDirCharset ISO-8859-1</default>
+<contextlist><context>server config</context><context>virtual host</context>
+<context>directory</context></contextlist>
+<compatibility>Available in Apache 2.0.62 and later</compatibility>
+
+<usage>
+    <p>The <directive>ProxyFtpDirCharset</directive> directive defines the
+    character set to be set for FTP directory listings in HTML generated by
+    <module>mod_proxy_ftp</module>.</p>
+</usage>
+</directivesynopsis>
+
 <directivesynopsis type="section">
 <name>ProxyMatch</name>
 <description>Container for directives applied to regular-expression-matched 
index 2e12465bc95b8f6dd75c739df768b9c3a1a5383f..8ba7f5c4f413d29dba6de2ee99744bbd33c799dc 100644 (file)
@@ -86,6 +86,7 @@
  * 20020903.10 (2.0.55-dev) add ap_log_cerror()
  * 20020903.11 (2.0.55-dev) added trace_enable to core_server_config
  * 20020903.12 (2.0.56-dev) added ap_get_server_revision / ap_version_t
+ * 20020903.13 (2.0.62-dev) Add *ftp_directory_charset to proxy_dir_conf
  */
 
 #define MODULE_MAGIC_COOKIE 0x41503230UL /* "AP20" */
@@ -93,7 +94,7 @@
 #ifndef MODULE_MAGIC_NUMBER_MAJOR
 #define MODULE_MAGIC_NUMBER_MAJOR 20020903
 #endif
-#define MODULE_MAGIC_NUMBER_MINOR 12                    /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 13                    /* 0...n */
 
 /**
  * Determine if the server's current MODULE_MAGIC_NUMBER is at least a
index aa51c30cab4ac54d211205bbdbb8db7c555ee7ec..84d5fb10bda7898cd31c24a46636cceb25d366b0 100644 (file)
@@ -552,10 +552,14 @@ static void *merge_proxy_dir_config(apr_pool_t *p, void *basev, void *addv)
 {
     proxy_dir_conf *new = (proxy_dir_conf *) apr_pcalloc(p, sizeof(proxy_dir_conf));
     proxy_dir_conf *add = (proxy_dir_conf *) addv;
+    proxy_dir_conf *base = (proxy_dir_conf *) basev;
 
     new->p = add->p;
     new->p_is_fnmatch = add->p_is_fnmatch;
     new->r = add->r;
+    new->ftp_directory_charset = add->ftp_directory_charset ?
+                                 add->ftp_directory_charset :
+                                 base->ftp_directory_charset;
     return new;
 }
 
@@ -940,6 +944,15 @@ static const char*
     return NULL;    
 }
 
+static const char* set_ftp_directory_charset(cmd_parms *cmd, void *dconf,
+                                             const char *arg)
+{
+    proxy_dir_conf *conf = dconf;
+
+    conf->ftp_directory_charset = arg;
+    return NULL;
+}
+
 static void ap_add_per_proxy_conf(server_rec *s, ap_conf_vector_t *dir_config)
 {
     proxy_server_conf *sconf = ap_get_module_config(s->module_config,
@@ -1076,7 +1089,8 @@ static const command_rec proxy_cmds[] =
      "This overrides the server timeout"),
     AP_INIT_TAKE1("ProxyBadHeader", set_bad_opt, NULL, RSRC_CONF,
      "How to handle bad header line in response: IsError | Ignore | StartBody"),
+    AP_INIT_TAKE1("ProxyFtpDirCharset", set_ftp_directory_charset, NULL,
+    RSRC_CONF|ACCESS_CONF, "Define the character set for proxied FTP listings"),
     {NULL}
 };
 
index 5184f2a374b26e84426b94c97364179cbbde6465..d1ed7d465ae6dbbfb0fbd8fc291b4217fccda034 100644 (file)
@@ -166,6 +166,7 @@ typedef struct {
     const char *p;            /* The path */
     int         p_is_fnmatch; /* Is this path an fnmatch candidate? */
     regex_t    *r;            /* Is this a regex? */
+    const char *ftp_directory_charset;
 } proxy_dir_conf;
 
 typedef struct {