Index: docs/manual/mod/mod_proxy.xml
===================================================================
--- docs/manual/mod/mod_proxy.xml (revision 607638)
+++ docs/manual/mod/mod_proxy.xml (working copy)
@@ -369,6 +369,22 @@
+
+ProxyFtpDirCharset
+Define the character set for proxied FTP listings
+ProxyFtpDirCharset character set
+ProxyFtpDirCharset ISO-8859-1
+server configvirtual host
+directory
+Available in Apache 2.2.7 and later
+
+
+
The ProxyFtpDirCharset directive defines the
+ character set to be set for FTP directory listings in HTML generated by
+ mod_proxy_ftp.
+
+
+
ProxyMatchContainer for directives applied to regular-expression-matched
Index: modules/proxy/mod_proxy.c
===================================================================
--- modules/proxy/mod_proxy.c (revision 607638)
+++ modules/proxy/mod_proxy.c (working copy)
@@ -1024,6 +1024,9 @@
= apr_array_append(p, base->cookie_domains, add->cookie_domains);
new->cookie_path_str = base->cookie_path_str;
new->cookie_domain_str = base->cookie_domain_str;
+ new->ftp_directory_charset = add->ftp_directory_charset ?
+ add->ftp_directory_charset :
+ base->ftp_directory_charset;
return new;
}
@@ -1724,6 +1727,15 @@
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,
@@ -1931,6 +1943,8 @@
"Configure Status: proxy status to one of: on | off | full"),
AP_INIT_RAW_ARGS("ProxySet", set_proxy_param, NULL, RSRC_CONF|ACCESS_CONF,
"A balancer or worker name with list of params"),
+ AP_INIT_TAKE1("ProxyFtpDirCharset", set_ftp_directory_charset, NULL,
+ RSRC_CONF|ACCESS_CONF, "Define the character set for proxied FTP listings"),
{NULL}
};
Index: modules/proxy/mod_proxy.h
===================================================================
--- modules/proxy/mod_proxy.h (revision 607638)
+++ modules/proxy/mod_proxy.h (working copy)
@@ -212,6 +212,7 @@
apr_array_header_t* cookie_domains;
const apr_strmatch_pattern* cookie_path_str;
const apr_strmatch_pattern* cookie_domain_str;
+ const char *ftp_directory_charset;
} proxy_dir_conf;
typedef struct {
Index: modules/proxy/mod_proxy_ftp.c
===================================================================
--- modules/proxy/mod_proxy_ftp.c (revision 607638)
+++ modules/proxy/mod_proxy_ftp.c (working copy)
@@ -1690,7 +1690,13 @@
/* set content-type */
if (dirlisting) {
- ap_set_content_type(r, "text/html");
+ proxy_dir_conf *dconf = ap_get_module_config(r->per_dir_config,
+ &proxy_module);
+
+ ap_set_content_type(r, apr_pstrcat(p, "text/html;charset=",
+ dconf->ftp_directory_charset ?
+ dconf->ftp_directory_charset :
+ "ISO-8859-1", NULL));
}
else {
if (r->content_type) {
Index: include/ap_mmn.h
===================================================================
--- include/ap_mmn.h (revision 607638)
+++ include/ap_mmn.h (working copy)
@@ -119,6 +119,7 @@
* 20051115.8 (2.2.7) Added flags to proxy_alias (minor)
* 20051115.9 (2.2.7) Add ap_send_interim_response API
* 20051115.10(2.2.7) Added ap_mod_status_reqtail (minor)
+ * 20051115.11(2.2.7) Add *ftp_directory_charset to proxy_dir_conf
*
*/
@@ -127,7 +128,7 @@
#ifndef MODULE_MAGIC_NUMBER_MAJOR
#define MODULE_MAGIC_NUMBER_MAJOR 20051115
#endif
-#define MODULE_MAGIC_NUMBER_MINOR 10 /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 11 /* 0...n */
/**
* Determine if the server's current MODULE_MAGIC_NUMBER is at least a