[shibboleth-sp2] 18/119: Can't overlap headers or we'll break multiple Set-Cookies.
Ferenc Wágner
wferi-guest at moszumanska.debian.org
Tue Jan 26 21:29:45 UTC 2016
This is an automated email from the git hooks/post-receive script.
wferi-guest pushed a commit to annotated tag 1.3.1
in repository shibboleth-sp2.
commit ea680465c4f9c9d6c47584d87c4cd6f113f1cc26
Author: Scott Cantor <cantor.2 at osu.edu>
Date: Wed Apr 4 04:01:40 2007 +0000
Can't overlap headers or we'll break multiple Set-Cookies.
---
apache/mod_apache.cpp | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/apache/mod_apache.cpp b/apache/mod_apache.cpp
index aab8433..f1fb1eb 100644
--- a/apache/mod_apache.cpp
+++ b/apache/mod_apache.cpp
@@ -1081,6 +1081,12 @@ static void set_error_filter(request_rec *r)
ap_add_output_filter("SHIB_HEADERS_ERR", NULL, r, r->connection);
}
+static int _table_add(void *v, const char *key, const char *value)
+{
+ apr_table_addn((apr_table_t*)v, key, value);
+ return 1;
+}
+
static apr_status_t do_output_filter(ap_filter_t *f, apr_bucket_brigade *in)
{
request_rec *r = f->r;
@@ -1088,7 +1094,9 @@ static apr_status_t do_output_filter(ap_filter_t *f, apr_bucket_brigade *in)
if (rc) {
ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(r),"shib_out_filter: merging %d headers", apr_table_elts(rc->hdr_out)->nelts);
- apr_table_overlap(r->headers_out, rc->hdr_out, APR_OVERLAP_TABLES_MERGE);
+ apr_table_do(_table_add,r->headers_out, rc->hdr_out,NULL);
+ // can't use overlap call because it will collapse Set-Cookie headers
+ //apr_table_overlap(r->headers_out, rc->hdr_out, APR_OVERLAP_TABLES_MERGE);
}
/* remove ourselves from the filter chain */
@@ -1105,7 +1113,9 @@ static apr_status_t do_error_filter(ap_filter_t *f, apr_bucket_brigade *in)
if (rc) {
ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(r),"shib_err_filter: merging %d headers", apr_table_elts(rc->hdr_err)->nelts);
- apr_table_overlap(r->err_headers_out, rc->hdr_err, APR_OVERLAP_TABLES_MERGE);
+ apr_table_do(_table_add,r->err_headers_out, rc->hdr_err,NULL);
+ // can't use overlap call because it will collapse Set-Cookie headers
+ //apr_table_overlap(r->err_headers_out, rc->hdr_err, APR_OVERLAP_TABLES_MERGE);
}
/* remove ourselves from the filter chain */
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-shibboleth/shibboleth-sp2.git
More information about the Pkg-shibboleth-devel
mailing list