httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j..@apache.org
Subject cvs commit: httpd-2.0/modules/proxy proxy_http.c
Date Fri, 07 May 2004 21:49:34 GMT
jim         2004/05/07 14:49:34

  Modified:    .        Tag: APACHE_2_0_BRANCH STATUS
               modules/proxy Tag: APACHE_2_0_BRANCH proxy_http.c
  Log:
  Propose solution via addition directive option.
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.751.2.850 +4 -1      httpd-2.0/STATUS
  
  Index: STATUS
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/STATUS,v
  retrieving revision 1.751.2.849
  retrieving revision 1.751.2.850
  diff -u -r1.751.2.849 -r1.751.2.850
  --- STATUS	5 May 2004 16:29:58 -0000	1.751.2.849
  +++ STATUS	7 May 2004 21:49:34 -0000	1.751.2.850
  @@ -361,6 +361,9 @@
   	  wouldn't be listening on any port so it wouldn't matter anyway.
            nd replies: But if it can't be 0 the alternatives thereafter make no
              sense anymore, right?
  +	 jim proposes: UseCanonicalName Client directive
  +	   which implements this, keeping UseCanonicalName Off
  +	   "as is". 
   
       * mod_isapi: send_response_header() failed to copy status string's 
         last character.  PR 20619.  [Jesse Pelton <jsp pkc.com>]
  
  
  
  No                   revision
  No                   revision
  1.164.2.10 +25 -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.164.2.9
  retrieving revision 1.164.2.10
  diff -u -r1.164.2.9 -r1.164.2.10
  --- proxy_http.c	9 Feb 2004 20:53:19 -0000	1.164.2.9
  +++ proxy_http.c	7 May 2004 21:49:34 -0000	1.164.2.10
  @@ -643,6 +643,12 @@
       return APR_SUCCESS;
   }
   
  +static int addit_dammit(void *v, const char *key, const char *val)
  +{
  +    apr_table_addn(v, key, val);
  +    return 1;
  +}
  +
   static
   apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r,
                                               proxy_http_conn_t *p_conn,
  @@ -662,6 +668,7 @@
                                   * in the case that the origin told us
                                   * to HTTP_CONTINUE
                                   */
  +    apr_table_t *save_table;
   
       /* Get response from the remote server, and pass it up the
        * filter chain
  @@ -733,8 +740,14 @@
               /* N.B. for HTTP/1.0 clients, we have to fold line-wrapped headers*/
               /* Also, take care with headers with multiple occurences. */
   
  +            /* First, tuck away all already existing cookies */
  +            save_table = apr_table_make(r->pool, 2);
  +            apr_table_do(addit_dammit, save_table, r->err_headers_out, "Set-Cookie",
NULL);
  +            apr_table_do(addit_dammit, save_table, r->headers_out, "Set-Cookie", NULL);
  +
               r->headers_out = ap_proxy_read_headers(r, rp, buffer,
                                                      sizeof(buffer), origin);
  +
               if (r->headers_out == NULL) {
                   ap_log_error(APLOG_MARK, APLOG_WARNING, 0,
                                r->server, "proxy: bad HTTP/%d.%d header "
  @@ -752,8 +765,19 @@
                   return r->status;
   
               } else {
  -                /* strip connection listed hop-by-hop headers from response */
                   const char *buf;
  +
  +                /* Now, add in the just read cookies */
  +                apr_table_do(addit_dammit, save_table, r->headers_out, "Set-Cookie",
NULL);
  +
  +                /* and now load 'em all in */
  +                if (!apr_is_empty_table(save_table)) {
  +                    apr_table_unset(r->headers_out, "Set-Cookie");
  +                    r->headers_out = apr_table_overlay(r->pool,
  +                                                           r->headers_out, save_table);
  +                }
  +                
  +                /* strip connection listed hop-by-hop headers from response */
                   p_conn->close += ap_proxy_liststr(apr_table_get(r->headers_out,
                                                                   "Connection"),
                                                     "close");
  
  
  

Mime
View raw message