Return-Path: Delivered-To: apmail-perl-dev-archive@www.apache.org Received: (qmail 89051 invoked from network); 21 Apr 2005 20:58:28 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 21 Apr 2005 20:58:28 -0000 Received: (qmail 80304 invoked by uid 500); 21 Apr 2005 20:58:40 -0000 Delivered-To: apmail-perl-dev-archive@perl.apache.org Received: (qmail 80285 invoked by uid 500); 21 Apr 2005 20:58:39 -0000 Mailing-List: contact dev-help@perl.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Delivered-To: mailing list dev@perl.apache.org Received: (qmail 80259 invoked by uid 99); 21 Apr 2005 20:58:39 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: local policy) Received: from ares.cs.Virginia.EDU (HELO ares.cs.Virginia.EDU) (128.143.137.19) by apache.org (qpsmtpd/0.28) with ESMTP; Thu, 21 Apr 2005 13:58:39 -0700 Received: from cobra.cs.Virginia.EDU (cobra.cs.Virginia.EDU [128.143.137.16]) by ares.cs.Virginia.EDU (8.13.4/8.13.4/UVACS-2005041801) with ESMTP id j3LKwCi1017516; Thu, 21 Apr 2005 16:58:12 -0400 (EDT) Date: Thu, 21 Apr 2005 16:58:12 -0400 (EDT) From: Cliff Woolley X-X-Sender: jcw5q@cobra.cs.Virginia.EDU To: dev@httpd.apache.org cc: dev@perl.apache.org Subject: Re: RFC: Who owns a passed brigade? In-Reply-To: <4268036B.1010903@force-elite.com> Message-ID: References: <9b5d906c83b6650b9512eb9e7ac96be1@ricilake.net> <4268036B.1010903@force-elite.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N On Thu, 21 Apr 2005, Paul Querna wrote: > I agree that not having a clear rule has led to some possible leaks in > many filters. If some people think there has always been a 'rule', I > contend that it has never been documented. FWIW, the documentation says: -------------------------------------------------------------------- /** * Pass the current bucket brigade down to the next filter on the filter * stack. The filter returns an apr_status_t value. If the bottom-most * filter doesn't write to the network, then ::AP_NOBODY_WROTE is returned. * The caller relinquishes ownership of the brigade. * @param filter The next filter in the chain * @param bucket The current bucket brigade */ AP_DECLARE(apr_status_t) ap_pass_brigade(ap_filter_t *filter, apr_bucket_brigade *bucket); -------------------------------------------------------------------- "The caller relinquishes ownership of the brigade." This obviously differs from what some of our own filters are doing -- and from my memory of past history. It makes sense that it should be this way, though I think at some point in the past we just guaranteed that the core_output_filter always emptied the brigades it was passed so it wouldn't have mattered until other filters that didn't behave that way started getting inserted in front of c_o_f. I'll keep digging. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org For additional commands, e-mail: dev-help@perl.apache.org