You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by st...@apache.org on 2002/03/20 02:58:47 UTC
cvs commit: httpd-2.0/modules/proxy proxy_ftp.c proxy_http.c
stoddard 02/03/19 17:58:47
Modified: modules/dav/main mod_dav.c
modules/experimental cache_storage.c mod_example.c
modules/filters mod_include.c
modules/generators mod_autoindex.c mod_cgi.c mod_cgid.c
mod_info.c mod_status.c
modules/http http_protocol.c http_request.c mod_mime.c
modules/mappers mod_imap.c mod_negotiation.c mod_rewrite.c
modules/metadata mod_cern_meta.c mod_mime_magic.c
modules/proxy proxy_ftp.c proxy_http.c
Log:
First commit to introduce accessor function to set r->content_type..
Revision Changes Path
1.76 +7 -7 httpd-2.0/modules/dav/main/mod_dav.c
Index: mod_dav.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/dav/main/mod_dav.c,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -r1.75 -r1.76
--- mod_dav.c 19 Mar 2002 10:11:32 -0000 1.75
+++ mod_dav.c 20 Mar 2002 01:58:45 -0000 1.76
@@ -345,7 +345,7 @@
/* ### I really don't think this is needed; gotta test */
r->status_line = ap_get_status_line(status);
- r->content_type = "text/html";
+ ap_rset_content_type("text/html", r);
/* since we're returning DONE, ensure the request body is consumed. */
(void) ap_discard_request_body(r);
@@ -382,7 +382,7 @@
/* ### I really don't think this is needed; gotta test */
r->status_line = ap_get_status_line(err->status);
- r->content_type = DAV_XML_CONTENT_TYPE;
+ ap_rset_content_type(DAV_XML_CONTENT_TYPE, r);
/* since we're returning DONE, ensure the request body is consumed. */
(void) ap_discard_request_body(r);
@@ -455,7 +455,7 @@
{
/* Set the correct status and Content-Type */
r->status = status;
- r->content_type = DAV_XML_CONTENT_TYPE;
+ ap_rset_content_type(DAV_XML_CONTENT_TYPE, r);
/* Send the headers and actual multistatus response now... */
ap_rputs(DAV_XML_HEADER DEBUG_CR
@@ -1693,7 +1693,7 @@
/* send the options response */
r->status = HTTP_OK;
- r->content_type = DAV_XML_CONTENT_TYPE;
+ ap_rset_content_type(DAV_XML_CONTENT_TYPE, r);
/* send the headers and response body */
ap_rputs(DAV_XML_HEADER DEBUG_CR
@@ -2920,7 +2920,7 @@
(*locks_hooks->close_lockdb)(lockdb);
r->status = HTTP_OK;
- r->content_type = DAV_XML_CONTENT_TYPE;
+ ap_rset_content_type(DAV_XML_CONTENT_TYPE, r);
ap_rputs(DAV_XML_HEADER DEBUG_CR "<D:prop xmlns:D=\"DAV:\">" DEBUG_CR, r);
if (lock == NULL)
@@ -3878,7 +3878,7 @@
/* set up defaults for the report response */
r->status = HTTP_OK;
- r->content_type = DAV_XML_CONTENT_TYPE;
+ ap_rset_content_type(DAV_XML_CONTENT_TYPE, r);
/* run report hook */
if ((err = (*vsn_hooks->deliver_report)(r, resource, doc,
@@ -4125,7 +4125,7 @@
is going to do something different (i.e. an error), then it must
return a dav_error, and we'll reset these values properly. */
r->status = HTTP_OK;
- r->content_type = "text/xml";
+ ap_rset_content_type("text/xml", r);
/* ### should we do any preliminary response generation? probably not,
### because we may have an error, thus demanding something else in
1.19 +1 -1 httpd-2.0/modules/experimental/cache_storage.c
Index: cache_storage.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/experimental/cache_storage.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- cache_storage.c 13 Mar 2002 20:47:46 -0000 1.18
+++ cache_storage.c 20 Mar 2002 01:58:45 -0000 1.19
@@ -237,7 +237,7 @@
return rv;
}
- r->content_type = apr_pstrdup(r->pool, info->content_type);
+ ap_rset_content_type(apr_pstrdup(r->pool, info->content_type), r);
r->filename = apr_pstrdup(r->pool, info->filename );
return APR_SUCCESS;
1.35 +1 -1 httpd-2.0/modules/experimental/mod_example.c
Index: mod_example.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/experimental/mod_example.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- mod_example.c 13 Mar 2002 20:47:46 -0000 1.34
+++ mod_example.c 20 Mar 2002 01:58:45 -0000 1.35
@@ -552,7 +552,7 @@
* We also need to start a timer so the server can know if the connexion
* is broken.
*/
- r->content_type = "text/html";
+ ap_rset_content_type("text/html", r);
/*
* If we're only supposed to send header information (HEAD request), we're
* already there.
1.203 +1 -1 httpd-2.0/modules/filters/mod_include.c
Index: mod_include.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/filters/mod_include.c,v
retrieving revision 1.202
retrieving revision 1.203
diff -u -r1.202 -r1.203
--- mod_include.c 17 Mar 2002 17:35:39 -0000 1.202
+++ mod_include.c 20 Mar 2002 01:58:45 -0000 1.203
@@ -3453,7 +3453,7 @@
if (r->handler && (strcmp(r->handler, "server-parsed") == 0))
{
if (!r->content_type || !*r->content_type) {
- r->content_type = "text/html";
+ ap_rset_content_type("text/html", r);
}
r->handler = "default-handler";
}
1.101 +2 -2 httpd-2.0/modules/generators/mod_autoindex.c
Index: mod_autoindex.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/generators/mod_autoindex.c,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -r1.100 -r1.101
--- mod_autoindex.c 13 Mar 2002 20:47:48 -0000 1.100
+++ mod_autoindex.c 20 Mar 2002 01:58:46 -0000 1.101
@@ -1895,9 +1895,9 @@
}
#if APR_HAS_UNICODE_FS
- r->content_type = "text/html;charset=utf-8";
+ ap_rset_content_type("text/html;charset=utf-8", r);
#else
- r->content_type = "text/html";
+ ap_rset_content_type("text/html", r);
#endif
if (autoindex_opts & TRACK_MODIFIED) {
ap_update_mtime(r, r->finfo.mtime);
1.122 +1 -1 httpd-2.0/modules/generators/mod_cgi.c
Index: mod_cgi.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/generators/mod_cgi.c,v
retrieving revision 1.121
retrieving revision 1.122
diff -u -r1.121 -r1.122
--- mod_cgi.c 16 Mar 2002 18:26:57 -0000 1.121
+++ mod_cgi.c 20 Mar 2002 01:58:46 -0000 1.122
@@ -788,7 +788,7 @@
* typing rules would have called it something else.
*/
- rr->content_type = CGI_MAGIC_TYPE;
+ ap_rset_content_type(CGI_MAGIC_TYPE, rr);
/* Run it. */
1.119 +1 -2 httpd-2.0/modules/generators/mod_cgid.c
Index: mod_cgid.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/generators/mod_cgid.c,v
retrieving revision 1.118
retrieving revision 1.119
diff -u -r1.118 -r1.119
--- mod_cgid.c 17 Mar 2002 01:36:30 -0000 1.118
+++ mod_cgid.c 20 Mar 2002 01:58:46 -0000 1.119
@@ -1216,8 +1216,7 @@
/* Force sub_req to be treated as a CGI request, even if ordinary
* typing rules would have called it something else.
*/
-
- rr->content_type = CGI_MAGIC_TYPE;
+ ap_rset_content_type(CGI_MAGIC_TYPE, rr);
/* Run it. */
1.42 +1 -1 httpd-2.0/modules/generators/mod_info.c
Index: mod_info.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/generators/mod_info.c,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- mod_info.c 13 Mar 2002 20:47:48 -0000 1.41
+++ mod_info.c 20 Mar 2002 01:58:46 -0000 1.42
@@ -377,7 +377,7 @@
if (r->method_number != M_GET)
return DECLINED;
- r->content_type = "text/html";
+ ap_rset_content_type("text/html", r);
if (r->header_only) {
return 0;
}
1.63 +2 -2 httpd-2.0/modules/generators/mod_status.c
Index: mod_status.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/generators/mod_status.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- mod_status.c 16 Mar 2002 18:42:46 -0000 1.62
+++ mod_status.c 20 Mar 2002 01:58:46 -0000 1.63
@@ -283,7 +283,7 @@
if (r->method_number != M_GET)
return DECLINED;
- r->content_type = "text/html";
+ ap_rset_content_type("text/html", r);
/*
* Simple table-driven form data set parser that lets you alter the header
@@ -312,7 +312,7 @@
no_table_report = 1;
break;
case STAT_OPT_AUTO:
- r->content_type = "text/plain";
+ ap_rset_content_type("text/plain", r);
short_report = 1;
break;
}
1.397 +17 -6 httpd-2.0/modules/http/http_protocol.c
Index: http_protocol.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/http/http_protocol.c,v
retrieving revision 1.396
retrieving revision 1.397
diff -u -r1.396 -r1.397
--- http_protocol.c 19 Mar 2002 10:11:32 -0000 1.396
+++ http_protocol.c 20 Mar 2002 01:58:46 -0000 1.397
@@ -1145,7 +1145,7 @@
return rv;
}
- r->content_type = "message/http";
+ ap_rset_content_type("message/http", r);
/* Now we recreate the request, and echo it back */
@@ -1253,6 +1253,17 @@
apr_array_pstrcat(r->pool, varies, ','));
}
}
+AP_DECLARE(void) ap_rset_content_type(char *ct, request_rec *r)
+{
+ r->content_type = ct;
+
+ /* Insert filters requested by the AddOutputFiltersByType
+ * configuration directive. Content-type filters must be
+ * inserted after the content handlers have run because
+ * only then, do we reliably know the content-type.
+ */
+ ap_add_output_filters_by_type(r);
+}
typedef struct header_filter_ctx {
int headers_sent;
@@ -2039,7 +2050,7 @@
r->content_languages = NULL;
r->content_encoding = NULL;
r->clength = 0;
- r->content_type = "text/html; charset=iso-8859-1";
+ ap_rset_content_type("text/html; charset=iso-8859-1", r);
if ((status == HTTP_METHOD_NOT_ALLOWED)
|| (status == HTTP_NOT_IMPLEMENTED)) {
@@ -2593,10 +2604,10 @@
if (num_ranges > 1) {
ctx->orig_ct = r->content_type;
- r->content_type = apr_pstrcat(r->pool, "multipart",
- use_range_x(r) ? "/x-" : "/",
- "byteranges; boundary=",
- r->boundary, NULL);
+ ap_rset_content_type(apr_pstrcat(r->pool, "multipart",
+ use_range_x(r) ? "/x-" : "/",
+ "byteranges; boundary=",
+ r->boundary, NULL), r);
}
/* create a brigade in case we never call ap_save_brigade() */
1.132 +2 -2 httpd-2.0/modules/http/http_request.c
Index: http_request.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/http/http_request.c,v
retrieving revision 1.131
retrieving revision 1.132
diff -u -r1.131 -r1.132
--- http_request.c 13 Mar 2002 20:47:49 -0000 1.131
+++ http_request.c 20 Mar 2002 01:58:46 -0000 1.132
@@ -386,7 +386,7 @@
r->args = rr->args;
r->finfo = rr->finfo;
r->handler = rr->handler;
- r->content_type = rr->content_type;
+ ap_rset_content_type(rr->content_type, r);
r->content_encoding = rr->content_encoding;
r->content_languages = rr->content_languages;
r->per_dir_config = rr->per_dir_config;
@@ -428,7 +428,7 @@
int access_status;
request_rec *new = internal_internal_redirect(new_uri, r);
if (r->handler)
- new->content_type = r->content_type;
+ ap_rset_content_type(r->content_type, new);
access_status = ap_process_request_internal(new);
if (access_status == OK) {
if ((access_status = ap_invoke_handler(new)) != 0) {
1.80 +16 -16 httpd-2.0/modules/http/mod_mime.c
Index: mod_mime.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/http/mod_mime.c,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -r1.79 -r1.80
--- mod_mime.c 16 Mar 2002 20:29:38 -0000 1.79
+++ mod_mime.c 20 Mar 2002 01:58:46 -0000 1.80
@@ -76,7 +76,7 @@
#include "http_config.h"
#include "http_log.h"
#include "http_request.h"
-
+#include "http_protocol.h"
/* XXXX - fix me / EBCDIC
* there was a cludge here which would use its
@@ -744,7 +744,7 @@
int found_metadata = 0;
if (r->finfo.filetype == APR_DIR) {
- r->content_type = DIR_MAGIC_TYPE;
+ ap_rset_content_type(DIR_MAGIC_TYPE, r);
return OK;
}
@@ -793,7 +793,7 @@
if (exinfo == NULL || !exinfo->forced_type) {
if ((type = apr_hash_get(mime_type_extensions, ext,
APR_HASH_KEY_STRING)) != NULL) {
- r->content_type = type;
+ ap_rset_content_type((char*) type, r);
found = 1;
}
}
@@ -801,7 +801,7 @@
if (exinfo != NULL) {
if (exinfo->forced_type) {
- r->content_type = exinfo->forced_type;
+ ap_rset_content_type(exinfo->forced_type, r);
found = 1;
}
@@ -885,29 +885,29 @@
if ((ctp = analyze_ct(r, r->content_type))) {
param *pp = ctp->param;
- r->content_type = apr_pstrcat(r->pool, ctp->type, "/",
- ctp->subtype, NULL);
+ ap_rset_content_type(apr_pstrcat(r->pool, ctp->type, "/",
+ ctp->subtype, NULL), r);
while (pp != NULL) {
if (charset && !strcmp(pp->attr, "charset")) {
if (!override) {
- r->content_type = apr_pstrcat(r->pool, r->content_type,
- "; charset=", charset,
- NULL);
+ ap_rset_content_type(apr_pstrcat(r->pool, r->content_type,
+ "; charset=", charset,
+ NULL), r);
override = 1;
}
}
else {
- r->content_type = apr_pstrcat(r->pool, r->content_type,
- "; ", pp->attr,
- "=", pp->val,
- NULL);
+ ap_rset_content_type(apr_pstrcat(r->pool, r->content_type,
+ "; ", pp->attr,
+ "=", pp->val,
+ NULL), r);
}
pp = pp->next;
}
if (charset && !override) {
- r->content_type = apr_pstrcat(r->pool, r->content_type,
- "; charset=", charset,
- NULL);
+ ap_rset_content_type(apr_pstrcat(r->pool, r->content_type,
+ "; charset=", charset,
+ NULL), r);
}
}
}
1.36 +1 -1 httpd-2.0/modules/mappers/mod_imap.c
Index: mod_imap.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/mappers/mod_imap.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- mod_imap.c 13 Mar 2002 20:47:50 -0000 1.35
+++ mod_imap.c 20 Mar 2002 01:58:46 -0000 1.36
@@ -521,7 +521,7 @@
static void menu_header(request_rec *r, char *menu)
{
- r->content_type = "text/html";
+ ap_rset_content_type("text/html", r);
ap_rvputs(r, DOCTYPE_HTML_3_2, "<html><head>\n<title>Menu for ", r->uri,
"</title>\n</head><body>\n", NULL);
1.99 +1 -1 httpd-2.0/modules/mappers/mod_negotiation.c
Index: mod_negotiation.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/mappers/mod_negotiation.c,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -r1.98 -r1.99
--- mod_negotiation.c 13 Mar 2002 20:47:50 -0000 1.98
+++ mod_negotiation.c 20 Mar 2002 01:58:46 -0000 1.99
@@ -1115,7 +1115,7 @@
* might be doing.
*/
if (sub_req->handler && !sub_req->content_type) {
- sub_req->content_type = CGI_MAGIC_TYPE;
+ ap_rset_content_type(CGI_MAGIC_TYPE, sub_req);
}
/*
1.103 +2 -2 httpd-2.0/modules/mappers/mod_rewrite.c
Index: mod_rewrite.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/mappers/mod_rewrite.c,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -r1.102 -r1.103
--- mod_rewrite.c 16 Mar 2002 18:26:57 -0000 1.102
+++ mod_rewrite.c 20 Mar 2002 01:58:47 -0000 1.103
@@ -1311,7 +1311,7 @@
else {
rewritelog(r, 1, "force filename %s to have MIME-type '%s'",
r->filename, t);
- r->content_type = t;
+ ap_rset_content_type(t, r);
return OK;
}
}
@@ -1959,7 +1959,7 @@
*/
rewritelog(r, 1, "[per-dir %s] force %s to have MIME-type "
"'%s'", perdir, r->filename, p->forced_mimetype);
- r->content_type = p->forced_mimetype;
+ ap_rset_content_type(p->forced_mimetype, r);
}
}
return 2;
1.37 +2 -1 httpd-2.0/modules/metadata/mod_cern_meta.c
Index: mod_cern_meta.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/metadata/mod_cern_meta.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- mod_cern_meta.c 13 Mar 2002 20:47:52 -0000 1.36
+++ mod_cern_meta.c 20 Mar 2002 01:58:47 -0000 1.37
@@ -165,6 +165,7 @@
#include "util_script.h"
#include "http_log.h"
#include "http_request.h"
+#include "http_protocol.h"
#include "apr_lib.h"
#define DIR_CMD_PERMS OR_INDEXES
@@ -292,7 +293,7 @@
tmp = apr_pstrdup(r->pool, l);
ap_content_type_tolower(tmp);
- r->content_type = tmp;
+ ap_rset_content_type(tmp, r);
}
else if (!strcasecmp(w, "Status")) {
sscanf(l, "%d", &r->status);
1.55 +2 -2 httpd-2.0/modules/metadata/mod_mime_magic.c
Index: mod_mime_magic.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/metadata/mod_mime_magic.c,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -r1.54 -r1.55
--- mod_mime_magic.c 16 Mar 2002 18:26:58 -0000 1.54
+++ mod_mime_magic.c 20 Mar 2002 01:58:47 -0000 1.55
@@ -833,7 +833,7 @@
/* XXX: this could be done at config time I'm sure... but I'm
* confused by all this magic_rsl stuff. -djg */
ap_content_type_tolower(tmp);
- r->content_type = tmp;
+ ap_rset_content_type(tmp, r);
}
if (state == rsl_encoding) {
char *tmp;
@@ -2369,7 +2369,7 @@
/* extract content type/encoding/language from sub-request */
if (sub->content_type) {
- r->content_type = apr_pstrdup(r->pool, sub->content_type);
+ ap_rset_content_type(apr_pstrdup(r->pool, sub->content_type), r);
#if MIME_MAGIC_DEBUG
ap_log_rerror(APLOG_MARK, APLOG_NOERRNO | APLOG_DEBUG, 0, r,
MODNAME ": subrequest %s got %s",
1.115 +2 -2 httpd-2.0/modules/proxy/proxy_ftp.c
Index: proxy_ftp.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/proxy/proxy_ftp.c,v
retrieving revision 1.114
retrieving revision 1.115
diff -u -r1.114 -r1.115
--- proxy_ftp.c 16 Mar 2002 18:26:58 -0000 1.114
+++ proxy_ftp.c 20 Mar 2002 01:58:47 -0000 1.115
@@ -1710,7 +1710,7 @@
/* set content-type */
if (dirlisting) {
- r->content_type = "text/html";
+ ap_rset_content_type("text/html", r);
}
else {
if (r->content_type) {
@@ -1718,7 +1718,7 @@
"proxy: FTP: Content-Type set to %s", r->content_type);
}
else {
- r->content_type = ap_default_type(r);
+ ap_rset_content_type(ap_default_type(r), r);
}
if (xfer_type != 'A' && size != NULL) {
/* We "trust" the ftp server to really serve (size) bytes... */
1.136 +1 -1 httpd-2.0/modules/proxy/proxy_http.c
Index: proxy_http.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/proxy/proxy_http.c,v
retrieving revision 1.135
retrieving revision 1.136
diff -u -r1.135 -r1.136
--- proxy_http.c 13 Mar 2002 20:47:53 -0000 1.135
+++ proxy_http.c 20 Mar 2002 01:58:47 -0000 1.136
@@ -701,7 +701,7 @@
"close");
ap_proxy_clear_connection(p, r->headers_out);
if ((buf = apr_table_get(r->headers_out, "Content-Type"))) {
- r->content_type = apr_pstrdup(p, buf);
+ ap_rset_content_type(apr_pstrdup(p, buf), r);
}
ap_proxy_pre_http_request(origin,rp);
}