Return-Path: Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: (qmail 76452 invoked from network); 14 Jan 2004 01:05:58 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 14 Jan 2004 01:05:58 -0000 Received: (qmail 36766 invoked by uid 500); 14 Jan 2004 01:05:39 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 36532 invoked by uid 500); 14 Jan 2004 01:05:37 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 36519 invoked from network); 14 Jan 2004 01:05:37 -0000 Received: from unknown (HELO prv-mail20.provo.novell.com) (137.65.81.122) by daedalus.apache.org with SMTP; 14 Jan 2004 01:05:37 -0000 Received: from INET-PRV-MTA by prv-mail20.provo.novell.com with Novell_GroupWise; Tue, 13 Jan 2004 18:05:52 -0700 Message-Id: X-Mailer: Novell GroupWise Internet Agent 6.5.2 Beta Date: Tue, 13 Jan 2004 18:05:39 -0700 From: "Brad Nicholes" To: , Subject: Re: [Bug?] cvs commit: httpd-2.0/server core.c Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 500/1000/N I don't think so because the "split into multiple bucket" code was only enabled if both large_file and send_file was enabled. Which meant that on a non-large_file build the check for ENABLE_SENDFILE_OFF wasn't there anyway. If they have large_file support and don't have send_file (ie. NetWare), then the file must be split into multiple buckets or it doesn't work (32/64 bit type mismatches in the file size). If they have large_file support and send_file, then everything is as it was before. I'm not sure why a check for ENABLE_SENDFILE_OFF is here anyway. This code doesn't really have anything to do with whether or not sendfile is used. All it does is split a large file into multiple smaller buckets. If later down the line sendfile is used to actually send the file from multiple buckets, great. If not, that is fine also (as demonstrated by the fact that NetWare doesn't have sendfile() and it all works fine). Brad Brad Nicholes Senior Software Engineer Novell, Inc., the leading provider of Net business solutions http://www.novell.com >>> wrowe@rowe-clan.net Tuesday, January 13, 2004 4:04:30 PM >>> Woha... At 11:50 AM 1/8/2004, bnicholes@apache.org wrote: >bnicholes 2004/01/08 09:50:03 > > Modified: server core.c > Log: > If large file support is enabled allow the file to be split into AP_MAX_SENDFILE sized buckets. Otherwise Apache will be unable to send files larger than 2 gig due to signed 32-bit limitations. > > RCS file: /home/cvs/httpd-2.0/server/core.c,v > retrieving revision 1.254 > retrieving revision 1.255 > diff -u -r1.254 -r1.255 > --- core.c 1 Jan 2004 13:26:23 -0000 1.254 > +++ core.c 8 Jan 2004 17:50:03 -0000 1.255 > @@ -3508,8 +3508,12 @@ > } > > bb = apr_brigade_create(r->pool, c->bucket_alloc); > -#if APR_HAS_SENDFILE && APR_HAS_LARGE_FILES > +#if APR_HAS_LARGE_FILES > +#if APR_HAS_SENDFILE > if ((d->enable_sendfile != ENABLE_SENDFILE_OFF) && > +#else > + if ( > +#endif > (r->finfo.size > AP_MAX_SENDFILE)) { > /* APR_HAS_LARGE_FILES issue; must split into mutiple buckets, > * no greater than MAX(apr_size_t), and more granular than that Ok that is a messy one to grok but I think I got it... Haven't you broken the EnableSendfile off directive if the user is trying to avoid using sendfile on non-largefile builds? E.g. if someone determines that their sendfile implementation is broken, will the server still react properly to EnableSendfile off on linux or bsd? Bill