httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gst...@apache.org
Subject cvs commit: httpd-2.0/modules/http http_protocol.c
Date Mon, 17 Sep 2001 13:12:37 GMT
gstein      01/09/17 06:12:37

  Modified:    modules/http http_protocol.c
  Log:
  Temporary hack to ensure that the split results are within a brigade
  attached to the proper pool. Otherwise, ctx->b would end up associated with
  the request pool, and the SOCKET bucket from the CORE_IN filter would get
  cleared at request end (thus the next request would go to CORE_IN for more
  data and get APR_EOF, and figured there were no more requests).
  
  This section of code was only triggered when a request had a body. The
  symptom was closing the connection (even though it should have been a
  keepalive) after the response was sent.
  
  For more info, see Message-ID on dev@: <20010917061613.B466@lyra.org>
  
  Revision  Changes    Path
  1.362     +9 -1      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.361
  retrieving revision 1.362
  diff -u -r1.361 -r1.362
  --- http_protocol.c	2001/09/02 03:21:47	1.361
  +++ http_protocol.c	2001/09/17 13:12:37	1.362
  @@ -687,7 +687,15 @@
           apr_brigade_partition(ctx->b, *readbytes, &e);
           APR_BRIGADE_CONCAT(b, ctx->b);
           if (e != APR_BRIGADE_SENTINEL(ctx->b)) {
  -            ctx->b = apr_brigade_split(b, e);
  +            apr_bucket_brigade *temp;
  +
  +            temp = apr_brigade_split(b, e);
  +
  +            /* ### darn. gotta ensure the split brigade is in the proper pool.
  +               ### this is a band-aid solution; we shouldn't even be doing
  +               ### all of this brigade munging (per the comment above).
  +               ### until then, this will get the right lifetimes. */
  +            APR_BRIGADE_CONCAT(ctx->b, temp);
           }
           else {
               if (!APR_BRIGADE_EMPTY(ctx->b)) {
  
  
  

Mime
View raw message