| This patch is against Apache 1.3.11. It may be updated as the situation |
| warrants. |
| |
| Last updated: Wed Feb 2 01:09:23 MST 2000 |
| |
| Index: htdocs/manual/mod/core.html |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/core.html,v |
| retrieving revision 1.162 |
| diff -u -r1.162 core.html |
| --- core.html 2000/01/18 19:32:49 1.162 |
| +++ core.html 2000/02/02 07:59:17 |
| @@ -23,6 +23,8 @@ |
| <UL> |
| <LI><A HREF="#accessconfig">AccessConfig</A> |
| <LI><A HREF="#accessfilename">AccessFileName</A> |
| +<LI><A HREF="#adddefaultcharset">AddDefaultCharset</A> |
| +<LI><A HREF="#adddefaultcharsetname">AddDefaultCharsetName</A> |
| <LI><A HREF="#addmodule">AddModule</A> |
| <LI><A HREF="#allowoverride">AllowOverride</A> |
| <LI><A HREF="#authname">AuthName</A> |
| @@ -162,6 +164,42 @@ |
| <Directory /><BR> |
| AllowOverride None<BR> |
| </Directory></CODE></BLOCKQUOTE><P><HR> |
| + |
| +<H2><A NAME="adddefaultcharset">AddDefaultCharset directive</A></H2> |
| +<A HREF="directive-dict.html#Syntax" REL="Help"><STRONG>Syntax:</STRONG></A> |
| +AddDefaultCharset <EM>on / off</EM><BR> |
| +<A HREF="directive-dict.html#Context" REL="Help" ><STRONG>Context:</STRONG></A> |
| +all<BR> |
| +<A HREF="directive-dict.html#Status" REL="Help" ><STRONG>Status:</STRONG></A> |
| +core<BR> |
| +<A HREF="directive-dict.html#Default" REL="Help"><STRONG>Default:</STRONG></A> |
| +<CODE>AddDefaultCharset off</CODE><BR> |
| +<A HREF="directive-dict.html#Compatibility" REL="Help"><STRONG>Compatibility: |
| +</STRONG></A> AddDefaultCharset is only available in Apache 1.3.12 and later<P> |
| +If enabled, any response that does not have any parameter on the content |
| +type in the HTTP headers will have a charset parameter added specifying |
| +the character set the client should use for the document. This will |
| +override any character set specified in the body of the document via a |
| +<CODE>META</CODE> tag. The character set added is specified by the |
| +<CODE>AddDefaultCharsetName</CODE> directive. |
| +<P><HR> |
| + |
| +<H2><A NAME="adddefaultcharsetname">AddDefaultCharsetName directive</A></H2> |
| +<A HREF="directive-dict.html#Syntax" REL="Help"><STRONG>Syntax:</STRONG></A> |
| +AddDefaultCharsetName <EM>charset</EM><BR> |
| +<A HREF="directive-dict.html#Context" REL="Help" ><STRONG>Context:</STRONG></A> |
| +all<BR> |
| +<A HREF="directive-dict.html#Status" REL="Help" ><STRONG>Status:</STRONG></A> |
| +core<BR> |
| +<A HREF="directive-dict.html#Default" REL="Help"><STRONG>Default:</STRONG></A> |
| +<CODE>AddDefaultCharsetName iso-8859-1</CODE><BR> |
| +<A HREF="directive-dict.html#Compatibility" REL="Help"><STRONG>Compatibility: |
| +</STRONG></A> AddDefaultCharsetName is only available in Apache 1.3.12 and |
| +later<P> |
| +This directive specifies the name of the character set that will be added |
| +if the <A HREF="#adddefaultcharset">AddDefaultCharset</A> directive is |
| +enabled. |
| +<P><HR> |
| |
| <H2><A NAME="addmodule">AddModule directive</A></H2> |
| <!--%plaintext <?INDEX {\tt AddModule} directive> --> |
| Index: htdocs/manual/mod/directives.html |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/directives.html,v |
| retrieving revision 1.60 |
| diff -u -r1.60 directives.html |
| --- directives.html 1999/12/19 16:34:32 1.60 |
| +++ directives.html 2000/02/02 08:09:07 |
| @@ -30,6 +30,9 @@ |
| <LI><A HREF="mod_autoindex.html#addalt">AddAlt</A> |
| <LI><A HREF="mod_autoindex.html#addaltbyencoding">AddAltByEncoding</A> |
| <LI><A HREF="mod_autoindex.html#addaltbytype">AddAltByType</A> |
| +<LI><A HREF="mod_mime.html#addcharset">AddCharset</A> |
| +<LI><A HREF="core.html#adddefaultcharset">AddDefaultCharset</A> |
| +<LI><A HREF="core.html#adddefaultcharsetname">AddDefaultCharsetName</A> |
| <LI><A HREF="mod_autoindex.html#adddescription">AddDescription</A> |
| <LI><A HREF="mod_mime.html#addencoding">AddEncoding</A> |
| <LI><A HREF="mod_mime.html#addhandler">AddHandler</A> |
| Index: htdocs/manual/mod/mod_include.html |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/mod_include.html,v |
| retrieving revision 1.23 |
| diff -u -r1.23 mod_include.html |
| --- mod_include.html 1998/09/17 12:06:40 1.23 |
| +++ mod_include.html 2000/02/02 07:59:18 |
| @@ -89,15 +89,34 @@ |
| routine when printing dates. |
| </DL> |
| |
| +<A NAME="echo"> |
| <DT><STRONG>echo</STRONG> |
| <DD> |
| This command prints one of the include variables, defined below. |
| If the variable is unset, it is printed as <CODE>(none)</CODE>. |
| Any dates printed are subject to the currently configured <CODE>timefmt</CODE>. |
| + |
| Attributes: |
| <DL> |
| <DT>var |
| <DD>The value is the name of the variable to print. |
| +<DT>encoding |
| +<DD>Specifies how Apache should encode special characters contained |
| +in the variable before outputting them. If set to "none", no encoding |
| +will be done. If set to "url", then URL encoding (also known as |
| +%-encoding; this is appropriate for use within URLs in links, etc.) |
| +will be performed. At the start of an <CODE>echo</CODE> element, |
| +the default is set to "entity", resulting in entity encoding (which |
| +is appropriate in the context of a block-level HTML element, eg. |
| +a paragraph of text). This can be changed by adding an |
| +<CODE>encoding</CODE> attribute, which will remain in effect until |
| +the next <CODE>encoding</CODE> attribute is encountered or the |
| +element ends, whichever comes first. Note that only special |
| +characters as defined in the ISO-8859-1 character encoding will be |
| +encoded. This encoding process may not have the desired result if |
| +a different character encoding is in use. Apache 1.3.12 and above; previous |
| +versions do no encoding. |
| + |
| </DL> |
| |
| <DT><STRONG>exec</STRONG> |
| @@ -181,7 +200,9 @@ |
| |
| <DT><STRONG>printenv</STRONG> |
| <DD>This prints out a listing of all existing variables and their values. |
| - No attributes. |
| + Starting with Apache 1.3.12, special characters are entity encoded (see the |
| + <A HREF="#echo"><CODE>echo</CODE></A> element for details) before being |
| + output. No attributes. |
| <DD>For example: <CODE><!--#printenv --></CODE> |
| <DD>Apache 1.2 and above. |
| |
| Index: src/CHANGES |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v |
| retrieving revision 1.1502 |
| diff -u -r1.1502 CHANGES |
| --- CHANGES 2000/01/18 17:12:13 1.1502 |
| +++ CHANGES 2000/02/02 08:09:11 |
| @@ -1,3 +1,31 @@ |
| +Changes with Apache 1.3.12 |
| + |
| + *) Add an explicit charset=iso-8859-1 to pages generated by |
| + ap_send_error_response(), such as the default 404 page. |
| + [Marc Slemko] |
| + |
| + *) Add the AddDefaultCharset and AddDefaultCharsetName directives. |
| + These allow you to tell Apache to specify the given character |
| + set on any document that does not have one explicitly specified in |
| + the headers. [Marc Slemko] |
| + |
| + *) Properly escape various messages output to the client from a number |
| + of modules and places in the core code. [Marc Slemko] |
| + |
| + *) Change mod_actions, mod_autoindex, mod_expires, and mod_log_config to |
| + not consider any parameters such as charset when making decisions |
| + based on content type. This does remove some functionality for |
| + some users, but means that when these modules are configured to do |
| + particular things with particular MIME types, the charset should |
| + not be included. A better way of addressing this for users who |
| + want to set things on a per charset basis is necessary in the future. |
| + [Marc Slemko] |
| + |
| + *) mod_include now entity encodes output from "printenv" and "echo var" |
| + by default. The encoding for "echo var" can be set to URL encoding |
| + or no encoding using the new "encoding" attribute to the echo tag. |
| + [Marc Slemko] |
| + |
| Changes with Apache 1.3.11 |
| |
| *) MPE builds are no longer stripped, which caused the executable |
| Index: src/include/http_core.h |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/src/include/http_core.h,v |
| retrieving revision 1.59 |
| diff -u -r1.59 http_core.h |
| --- http_core.h 1999/06/28 22:38:25 1.59 |
| +++ http_core.h 2000/02/02 07:59:24 |
| @@ -243,6 +243,15 @@ |
| */ |
| unsigned d_is_fnmatch : 1; |
| |
| + /* should we force a charset on any outgoing parameterless content-type? |
| + * if so, which charset? |
| + */ |
| +#define ADD_DEFAULT_CHARSET_OFF (0) |
| +#define ADD_DEFAULT_CHARSET_ON (1) |
| +#define ADD_DEFAULT_CHARSET_UNSET (2) |
| + unsigned add_default_charset : 2; |
| + char *add_default_charset_name; |
| + |
| /* System Resource Control */ |
| #ifdef RLIMIT_CPU |
| struct rlimit *limit_cpu; |
| Index: src/include/httpd.h |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/src/include/httpd.h,v |
| retrieving revision 1.303 |
| diff -u -r1.303 httpd.h |
| --- httpd.h 2000/01/30 19:46:11 1.303 |
| +++ httpd.h 2000/02/02 07:59:24 |
| @@ -409,6 +409,12 @@ |
| #endif /* default limit on number of request header fields */ |
| |
| /* |
| + * The default default character set name to add if AddDefaultCharset is |
| + * enabled. Overridden with AddDefaultCharsetName. |
| + */ |
| +#define DEFAULT_ADD_DEFAULT_CHARSET_NAME "iso-8859-1" |
| + |
| +/* |
| * The below defines the base string of the Server: header. Additional |
| * tokens can be added via the ap_add_version_component() API call. |
| * |
| Index: src/main/http_core.c |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/src/main/http_core.c,v |
| retrieving revision 1.277 |
| diff -u -r1.277 http_core.c |
| --- http_core.c 2000/01/11 14:13:40 1.277 |
| +++ http_core.c 2000/02/02 07:59:25 |
| @@ -154,6 +154,9 @@ |
| |
| conf->server_signature = srv_sig_unset; |
| |
| + conf->add_default_charset = ADD_DEFAULT_CHARSET_UNSET; |
| + conf->add_default_charset_name = DEFAULT_ADD_DEFAULT_CHARSET_NAME; |
| + |
| return (void *)conf; |
| } |
| |
| @@ -281,6 +284,14 @@ |
| conf->server_signature = new->server_signature; |
| } |
| |
| + if (new->add_default_charset != ADD_DEFAULT_CHARSET_UNSET) { |
| + conf->add_default_charset = new->add_default_charset; |
| + } |
| + |
| + if (new->add_default_charset_name) { |
| + conf->add_default_charset_name = new->add_default_charset_name; |
| + } |
| + |
| return (void*)conf; |
| } |
| |
| @@ -1035,6 +1046,28 @@ |
| } |
| #endif /*GPROF*/ |
| |
| +static const char *set_add_default_charset(cmd_parms *cmd, |
| + core_dir_config *d, int arg) |
| +{ |
| + const char *err = ap_check_cmd_context(cmd, NOT_IN_LIMIT); |
| + if (err != NULL) { |
| + return err; |
| + } |
| + d->add_default_charset = arg != 0; |
| + return NULL; |
| +} |
| + |
| +static const char *set_add_default_charset_name(cmd_parms *cmd, |
| + core_dir_config *d, char *arg) |
| +{ |
| + const char *err = ap_check_cmd_context(cmd, NOT_IN_LIMIT); |
| + if (err != NULL) { |
| + return err; |
| + } |
| + d->add_default_charset_name = arg; |
| + return NULL; |
| +} |
| + |
| static const char *set_document_root(cmd_parms *cmd, void *dummy, char *arg) |
| { |
| void *sconf = cmd->server->module_config; |
| @@ -2786,6 +2819,10 @@ |
| { "GprofDir", set_gprof_dir, NULL, RSRC_CONF, TAKE1, |
| "Directory to plop gmon.out files" }, |
| #endif |
| +{ "AddDefaultCharset", set_add_default_charset, NULL, OR_FILEINFO, FLAG, |
| + "whether or not to add a default charset to any Content-Type without one" }, |
| +{ "AddDefaultCharsetName", set_add_default_charset_name, NULL, OR_FILEINFO, |
| + TAKE1, "The name of the charset to add if AddDefaultCharset is enabled" }, |
| |
| /* Old resource config file commands */ |
| |
| Index: src/main/http_log.c |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/src/main/http_log.c,v |
| retrieving revision 1.82 |
| diff -u -r1.82 http_log.c |
| --- http_log.c 2000/01/31 22:24:07 1.82 |
| +++ http_log.c 2000/02/02 07:59:25 |
| @@ -487,7 +487,8 @@ |
| if (((level & APLOG_LEVELMASK) <= APLOG_WARNING) |
| && (ap_table_get(r->notes, "error-notes") == NULL)) { |
| ap_table_setn(r->notes, "error-notes", |
| - ap_pvsprintf(r->pool, fmt, args)); |
| + ap_escape_html(r->pool, ap_pvsprintf(r->pool, fmt, |
| + args))); |
| } |
| va_end(args); |
| } |
| Index: src/main/http_protocol.c |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/src/main/http_protocol.c,v |
| retrieving revision 1.286 |
| diff -u -r1.286 http_protocol.c |
| --- http_protocol.c 2000/01/11 14:13:41 1.286 |
| +++ http_protocol.c 2000/02/02 07:59:28 |
| @@ -103,6 +103,35 @@ |
| |
| #endif /*CHARSET_EBCDIC*/ |
| |
| +/* |
| + * Builds the content-type that should be sent to the client from the |
| + * content-type specified. The following rules are followed: |
| + * - if type is NULL, type is set to ap_default_type(r) |
| + * - if charset adding is disabled, stop processing and return type. |
| + * - then, if there are no parameters on type, add the default charset |
| + * - return type |
| + */ |
| +static const char *make_content_type(request_rec *r, const char *type) { |
| + const char *i; |
| + core_dir_config *conf = (core_dir_config *)ap_get_module_config( |
| + r->per_dir_config, &core_module); |
| + if (!type) type = ap_default_type(r); |
| + if (conf->add_default_charset != ADD_DEFAULT_CHARSET_ON) return type; |
| + |
| + i = type; |
| + while (*i && *i != ';') i++; |
| + if (*i && *i == ';') { |
| + /* already has parameter, do nothing */ |
| + /* XXX should check for actual charset=, but then we need real |
| + * parsing code |
| + */ |
| + } else { |
| + type = ap_pstrcat(r->pool, type, "; charset=", |
| + conf->add_default_charset_name, NULL); |
| + } |
| + return type; |
| +} |
| + |
| static int parse_byterange(char *range, long clength, long *start, long *end) |
| { |
| char *dash = strchr(range, '-'); |
| @@ -265,7 +294,7 @@ |
| } |
| |
| if (r->byterange > 1) { |
| - const char *ct = r->content_type ? r->content_type : ap_default_type(r); |
| + const char *ct = make_content_type(r, r->content_type); |
| char ts[MAX_STRING_LEN]; |
| |
| ap_snprintf(ts, sizeof(ts), "%ld-%ld/%ld", range_start, range_end, |
| @@ -1636,10 +1665,8 @@ |
| ap_table_setn(r->headers_out, "Content-Type", |
| ap_pstrcat(r->pool, "multipart", use_range_x(r) ? "/x-" : "/", |
| "byteranges; boundary=", r->boundary, NULL)); |
| - else if (r->content_type) |
| - ap_table_setn(r->headers_out, "Content-Type", r->content_type); |
| - else |
| - ap_table_setn(r->headers_out, "Content-Type", ap_default_type(r)); |
| + else ap_table_setn(r->headers_out, "Content-Type", make_content_type(r, |
| + r->content_type)); |
| |
| if (r->content_encoding) |
| ap_table_setn(r->headers_out, "Content-Encoding", r->content_encoding); |
| @@ -2550,7 +2577,7 @@ |
| r->content_languages = NULL; |
| r->content_encoding = NULL; |
| r->clength = 0; |
| - r->content_type = "text/html"; |
| + r->content_type = "text/html; charset=iso-8859-1"; |
| |
| if ((status == METHOD_NOT_ALLOWED) || (status == NOT_IMPLEMENTED)) |
| ap_table_setn(r->headers_out, "Allow", make_allow(r)); |
| Index: src/main/util.c |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/src/main/util.c,v |
| retrieving revision 1.176 |
| diff -u -r1.176 util.c |
| --- util.c 2000/01/12 20:57:48 1.176 |
| +++ util.c 2000/02/02 07:59:29 |
| @@ -127,6 +127,8 @@ |
| { |
| const char *semi; |
| |
| + if (intype == NULL) return NULL; |
| + |
| semi = strchr(intype, ';'); |
| if (semi == NULL) { |
| return ap_pstrdup(p, intype); |
| Index: src/modules/proxy/proxy_util.c |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/src/modules/proxy/proxy_util.c,v |
| retrieving revision 1.83 |
| diff -u -r1.83 proxy_util.c |
| --- proxy_util.c 2000/01/11 14:13:47 1.83 |
| +++ proxy_util.c 2000/02/02 07:59:29 |
| @@ -844,9 +844,12 @@ |
| ap_table_setn(r->notes, "error-notes", |
| ap_pstrcat(r->pool, |
| "The proxy server could not handle the request " |
| - "<EM><A HREF=\"", r->uri, "\">", |
| - r->method, " ", r->uri, "</A></EM>.<P>\n" |
| - "Reason: <STRONG>", message, "</STRONG>", NULL)); |
| + "<EM><A HREF=\"", ap_escape_uri(r->pool, r->uri), |
| + "\">", r->method, " ", |
| + ap_escape_html(r->pool, r->uri), "</A></EM>.<P>\n" |
| + "Reason: <STRONG>", |
| + ap_escape_html(r->pool, message), |
| + "</STRONG>", NULL)); |
| |
| /* Allow the "error-notes" string to be printed by ap_send_error_response() */ |
| ap_table_setn(r->notes, "verbose-error-to", ap_pstrdup(r->pool, "*")); |
| Index: src/modules/standard/mod_actions.c |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_actions.c,v |
| retrieving revision 1.33 |
| diff -u -r1.33 mod_actions.c |
| --- mod_actions.c 2000/01/11 14:23:03 1.33 |
| +++ mod_actions.c 2000/02/02 07:59:30 |
| @@ -195,7 +195,8 @@ |
| { |
| action_dir_config *conf = (action_dir_config *) |
| ap_get_module_config(r->per_dir_config, &action_module); |
| - const char *t, *action = r->handler ? r->handler : r->content_type; |
| + const char *t, *action = r->handler ? r->handler : |
| + ap_field_noparam(r->pool, r->content_type); |
| const char *script; |
| int i; |
| |
| Index: src/modules/standard/mod_autoindex.c |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v |
| retrieving revision 1.113 |
| diff -u -r1.113 mod_autoindex.c |
| --- mod_autoindex.c 1999/12/31 05:35:52 1.113 |
| +++ mod_autoindex.c 2000/02/02 07:59:30 |
| @@ -732,7 +732,7 @@ |
| |
| static char *find_item(request_rec *r, array_header *list, int path_only) |
| { |
| - const char *content_type = r->content_type; |
| + const char *content_type = ap_field_noparam(r->pool, r->content_type); |
| const char *content_encoding = r->content_encoding; |
| char *path = r->filename; |
| |
| Index: src/modules/standard/mod_expires.c |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_expires.c,v |
| retrieving revision 1.33 |
| diff -u -r1.33 mod_expires.c |
| --- mod_expires.c 1999/10/21 20:45:26 1.33 |
| +++ mod_expires.c 2000/02/02 07:59:30 |
| @@ -437,7 +437,8 @@ |
| if (r->content_type == NULL) |
| code = NULL; |
| else |
| - code = (char *) ap_table_get(conf->expiresbytype, r->content_type); |
| + code = (char *) ap_table_get(conf->expiresbytype, |
| + ap_field_noparam(r->pool, r->content_type)); |
| |
| if (code == NULL) { |
| /* no expires defined for that type, is there a default? */ |
| Index: src/modules/standard/mod_include.c |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_include.c,v |
| retrieving revision 1.121 |
| diff -u -r1.121 mod_include.c |
| --- mod_include.c 1999/12/31 05:35:52 1.121 |
| +++ mod_include.c 2000/02/02 07:59:30 |
| @@ -922,7 +922,10 @@ |
| { |
| char tag[MAX_STRING_LEN]; |
| char *tag_val; |
| + enum {E_NONE, E_URL, E_ENTITY} encode; |
| |
| + encode = E_ENTITY; |
| + |
| while (1) { |
| if (!(tag_val = get_tag(r->pool, in, tag, sizeof(tag), 1))) { |
| return 1; |
| @@ -931,7 +934,15 @@ |
| const char *val = ap_table_get(r->subprocess_env, tag_val); |
| |
| if (val) { |
| - ap_rputs(val, r); |
| + if (encode == E_NONE) { |
| + ap_rputs(val, r); |
| + } |
| + else if (encode == E_URL) { |
| + ap_rputs(ap_escape_uri(r->pool, val), r); |
| + } |
| + else if (encode == E_ENTITY) { |
| + ap_rputs(ap_escape_html(r->pool, val), r); |
| + } |
| } |
| else { |
| ap_rputs("(none)", r); |
| @@ -940,6 +951,19 @@ |
| else if (!strcmp(tag, "done")) { |
| return 0; |
| } |
| + else if (!strcmp(tag, "encoding")) { |
| + if (!strcasecmp(tag_val, "none")) encode = E_NONE; |
| + else if (!strcasecmp(tag_val, "url")) encode = E_URL; |
| + else if (!strcasecmp(tag_val, "entity")) encode = E_ENTITY; |
| + else { |
| + ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r, |
| + "unknown value \"%s\" to parameter \"encoding\" of " |
| + "tag echo in %s", |
| + tag_val, r->filename); |
| + ap_rputs(error, r); |
| + } |
| + } |
| + |
| else { |
| ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r, |
| "unknown parameter \"%s\" to tag echo in %s", |
| @@ -2116,7 +2140,8 @@ |
| } |
| else if (!strcmp(tag, "done")) { |
| for (i = 0; i < arr->nelts; ++i) { |
| - ap_rvputs(r, elts[i].key, "=", elts[i].val, "\n", NULL); |
| + ap_rvputs(r, ap_escape_html(r->pool, elts[i].key), "=", |
| + ap_escape_html(r->pool, elts[i].val), "\n", NULL); |
| } |
| return 0; |
| } |
| Index: src/modules/standard/mod_log_config.c |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_log_config.c,v |
| retrieving revision 1.80 |
| diff -u -r1.80 mod_log_config.c |
| --- mod_log_config.c 1999/12/15 23:04:22 1.80 |
| +++ mod_log_config.c 2000/02/02 07:59:30 |
| @@ -391,7 +391,7 @@ |
| { |
| const char *cp = ap_table_get(r->headers_out, a); |
| if (!strcasecmp(a, "Content-type") && r->content_type) { |
| - cp = r->content_type; |
| + cp = ap_field_noparam(r->pool, r->content_type); |
| } |
| if (cp) { |
| return cp; |
| Index: src/modules/standard/mod_status.c |
| =================================================================== |
| RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_status.c,v |
| retrieving revision 1.110 |
| diff -u -r1.110 mod_status.c |
| --- mod_status.c 2000/01/12 15:55:02 1.110 |
| +++ mod_status.c 2000/02/02 07:59:31 |
| @@ -597,9 +597,10 @@ |
| format_byte_out(r, bytes); |
| ap_rputs(")\n", r); |
| ap_rprintf(r, " <i>%s {%s}</i> <b>[%s]</b><br>\n\n", |
| - score_record.client, |
| + ap_escape_html(r->pool, score_record.client), |
| ap_escape_html(r->pool, score_record.request), |
| - vhost ? vhost->server_hostname : "(unavailable)"); |
| + vhost ? ap_escape_html(r->pool, |
| + vhost->server_hostname) : "(unavailable)"); |
| } |
| else { /* !no_table_report */ |
| if (score_record.status == SERVER_DEAD) |
| @@ -671,8 +672,9 @@ |
| else |
| ap_rprintf(r, |
| "<td>%s<td nowrap>%s<td nowrap>%s</tr>\n\n", |
| - score_record.client, |
| - vhost ? vhost->server_hostname : "(unavailable)", |
| + ap_escape_html(r->pool, score_record.client), |
| + vhost ? ap_escape_html(r->pool, |
| + vhost->server_hostname) : "(unavailable)", |
| ap_escape_html(r->pool, score_record.request)); |
| } /* no_table_report */ |
| } /* !short_report */ |