Received: by taz.hyperreal.com (8.6.12/8.6.5) id NAA00610; Fri, 6 Oct 1995 13:18:18 -0700 Received: by taz.hyperreal.com (8.6.12/8.6.5) id NAA00592; Fri, 6 Oct 1995 13:18:15 -0700 From: Rob Hartill Message-Id: <199510062018.NAA00592@taz.hyperreal.com> Subject: Apache Patch: timeout vs abort (fwd) To: new-httpd@hyperreal.com Date: Fri, 6 Oct 1995 13:18:15 -0700 (PDT) X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 1794 Sender: owner-new-httpd@apache.org Precedence: bulk Reply-To: new-httpd@apache.org ack sent Forwarded message: > From sabat@enterprise.Dts.Harris.COM Fri Oct 6 11:32:43 1995 > Date: Fri, 6 Oct 1995 11:30:42 -0700 > From: sabat@enterprise.Dts.Harris.COM (Steve Abatangle) > Message-Id: <9510061830.AA06186@velveeta.harris.com> > To: apache-bugs@mail.apache.org > Subject: Apache Patch: timeout vs abort > Content-Length: 1401 > > Apache .8.14 patch: timeout/abort > > > This is a patch that lets http_main.c differentiate between client > timeouts and client aborts. I whipped it up because > > a] it's useful information -- if you're getting a lot of timeouts, > you may have network problems that need fixing. A large number > of aborts might tell you your pages are too full of huge GIFs. > But if you can't tell the difference between a timeout and an > abort, you aren't able to spot these kinds of problems. > > b] NCSA has something similar in 1.4+. > > > Steve Abatangle > sabat@dts.harris.com > > > > --- http_main.c 1995/10/6 11:16:45 230c230 < char errstr[MAX_STRING_LEN]; --- > char errstr[MAX_STRING_LEN],action[MAX_STRING_LEN]; 244,248c244,259 < < sprintf(errstr,"%s timed out for %s", < timeout_name ? timeout_name : "request", < current_conn->remote_name); < --- > > if (sig==SIGALRM) { /* SIGALRM is a timeout */ > strcpy (action, "timed out"); > } > else if (sig==SIGPIPE) { /* SIGPIPE is probably an abort */ > strcpy (action, "aborted"); > } > else { /* extra wackiness just in case */ > strcpy (action, "stopped unidentifiably"); > } > > sprintf(errstr,"%s %s for %s", > timeout_name ? timeout_name : "request", > action, > current_conn->remote_name); >