Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.4) id IAA12103; Sat, 26 Apr 1997 08:46:43 -0700 (PDT) Received: from gate-isdn.ukweb.com (gate-isdn.ukweb.com [194.152.65.149]) by hyperreal.com (8.8.5/8.8.4) with SMTP id IAA12094 for ; Sat, 26 Apr 1997 08:46:39 -0700 (PDT) Received: from aardvark.ukweb.com [192.168.2.4] by gate-isdn.ukweb.com with smtp (Exim 1.61 #1) id 0wL9hj-0000wJ-00; Sat, 26 Apr 1997 16:48:03 +0100 Date: Sat, 26 Apr 1997 16:46:33 +0100 (BST) From: Paul Sutton To: new-httpd@apache.org Subject: Re: [PATCH] Handle write errors when no SIGPIPE In-Reply-To: <9704252107.aa19838@paris.ics.uci.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: new-httpd-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org On Fri, 25 Apr 1997, Roy T. Fielding wrote: > Nathan's comments caused me to revisit the code that I had stared at > for so long looking for an EPIPE. I don't know why I missed it the first > time, but the below patch will fix this problem. Note that it is needed > for all systems, since our current code will silently toss data if an > interim write fails for any reason (very bad). It will also be a huge > load reducer for sites sending large messages to impatient users. I've not studied the buff.c stuff in too much detail, but doesn't bwrite already loop if it gets an EINTR on a write()? If so, the caller here doesn't need to check it again. And can't bwrite() itself loop on EAGAIN's? If bwrite() doesn't and can't do both of these, do we need a similar loop around the bwrite() in rprintf() and rvputs() in http_protocol.c? (and http_bprintf.c, which has several bwrite's with unchecked return status). //pcs