Martin Kraemer [Tue, 12 Jun 2001 08:39:03 +0000 (08:39 +0000)]
Fixes to produce the Cygwin 1.x binaries out-of-the-box;
Fix perform_idle_server_maintenance() for Cygwin: use SIGKILL rather
than SIGUSR1 because the latter has no effect.
PR: PR#7837 and PR#7838
Submitted by: Stipe Tolj <tolj@wapme-systems.de>
Reviewed by: Martin Kraemer
Bill Stoddard [Sat, 2 Jun 2001 20:34:03 +0000 (20:34 +0000)]
Fix problem with lingering_close() on Windows. Issuing read() on the
socket descriptor on Windows always fails. Should be calling
recv() instead of read() on Windows. Thanks to Bill Rowe (and bounds checker :-)
for pointing this out.
Cleaning up/fix proxy/Host: header logic. Working to do the same
for apache-2.0 where we also have an ascii [num] representation of
IPv6's to take into account which currently only takes the non
proxy situation into account.
Bradley Nicholes [Wed, 23 May 2001 16:57:14 +0000 (16:57 +0000)]
Added a clean up on exit routine to try to make sure that the ApacheC nlm
on NetWare is exited gracefully even on an abnormal shutdown. This fixes
the Ouch! out of memory problem when trying to restart Apache for NetWare
after an abnormal shutdown.
Bradley Nicholes [Wed, 23 May 2001 16:53:38 +0000 (16:53 +0000)]
Added a check to make sure that Apache is starting in a clean
environment. This protects against ill behaved modules that exit the web
server rudely leaving ApacheC.nlm in an unknown state.
Martin Kraemer [Fri, 18 May 2001 15:45:40 +0000 (15:45 +0000)]
Change the compile switches for ReliantUNIX SVR4 not to use
SYSV semaphores, because upon reaching the system limit of
semaphores, the whole server exits (not just one child).
Apache could be improved to use Dean's NO_SEM_UNDO flag (see test/time-sem.c)
which is currently implemented only in the time-sem test program, but not in
apache. Until then, revert to using fcntl() locks.
On TPF, "HAVE_ISNAN" is erroneously being defined (due to cross-platform
compiler issues unique to TPF). TPF needs this patch to ignore the
TestCompile results.
Submitted by: David McCreedy <mccreedy@us.ibm.com>
Jeff Trawick [Thu, 10 May 2001 17:25:00 +0000 (17:25 +0000)]
get ab to compile on OS/390 by using strchr() instead of index()
(we could instead have included the proper header, but this is
the way Dirk fixed it in 2.0 since we already use strchr() and
thus had the proper header everywhere)
Get rid of incorrect code to save (and then ignore) the retval
from signal(). "void *" isn't compatible with any sort of
function pointer.
*) Correct a vulnerability in the Win32 and OS2 ports, by which a
client submitting a carefully constructed URI could cause a GP
(segment) fault in the child process, which would have to be
cleared by the operator to resume operation. This vulnerability
introduced no identified means to comprimize the server's data.
Reported by Auriemma Luigi <kaino3@genie.it>.
[William Rowe, Brian Harvard]
Resolve the win32 exec cmd bug, at least as far as some unixes support
it. Presume the command contains a filepath and transpose forward
slashes to backslashes in the path. (Note part of the bug, correctly
identified by the poster of 7415, was the /c flag being transposed to \c).
There has to be a better way, but at least this is now partially, and not
entirely broken. Command.com _does_ accept quoted file paths with spaces
for the executable.
Ken Coar [Sun, 6 May 2001 22:00:02 +0000 (22:00 +0000)]
Add ability to escape characters in Rewrite* input strings using
'\' (e.g., "\$" to keep it from having its special meaning), and
NoEscape/NE flag to disable filtering the rewritten output through
URI encoding.
Changed the initial screen handling for NetWare so that the -s parameter will
properly destroy the Apache console screen and switch to the system
console screen. Also removed the call to clrscr() for NetWare so that any
warning messages produced during startup are visible.
Martin Kraemer [Wed, 11 Apr 2001 21:23:54 +0000 (21:23 +0000)]
Fix two bugs in ab:
1) The Host: header was not filled in correctly (it used the proxyhost,
not the destination host), and
2) on POST requests, the wrong path was used.
*Sigh.* Taking tjis back out *again,* to keep things fast in the default case.
This appears not to be expected to return the port in all cases; module
authors should not expect this to be the case.
Needed to check this, but ap_parse_uri_components was not ensuring that
the parsed uri's port field was set. This one-liner takes care of that.
Reviewed by: Chuck Murcko <chuck@topsail.org>
Martin Kraemer [Mon, 2 Apr 2001 09:22:11 +0000 (09:22 +0000)]
Integrate support for the Cygwin 1.x platform (a POSIX emulation layer
for Win32 systems, see http://www.cygwin.com)
[Stipe Tolj <tolj@wapme-systems.de>]
PR: #2936
Submitted by: Stipe Tolj <tolj@wapme-systems.de>
Reviewed by: Roy Fielding, Martin Kraemer
It turns out that 'ab' has been under reporting apache's performance
for years; this patch fixes that; and also adds
- median/standard deviation calculations; to get an
idea of how good your measurement is. And a warning
if results are way out of bound.
- prints a 'percentile' table. Which shows the time it
took to process 50,66,80,90 etc percent of the requests.
- fixes a significant int overrun bug which caused longer
runs to generate realistic but totally bogus results. And
also changes in the write/pipe error handling to not cause
those skew a test unnoticed) Credits to Sander Temme
<sander@covalent.net> for solving this riddle.
- add's gnuplot/CSV output for postprocessing.
- adds very rudimentary SSL support.
For full details on why this was nessesary (and lead to surprizing
results to say the leat); attend Sander Temme his talk at the
Santa Clara Apache Con next week:
TH18: Measuring and Enhancing Apache Performance
Day: Thu Time: 18h30
This presentation will describe a facility for testing web
server performance and will present some test results
for various system- and Apache configuration options.
Additionally, some suggestions on performance tuning will be presented.
Sorry for the size of the patch - but for various reasons we did not
get round to committing it :-( Getting results and getting confidence
in the output was just more important. I will do asap for 2.0 as well.
Input/comments/cronstructive critism as to the processing and presentation
of the data is greatly appreciated !
Resolve the stdcall/cdecl ambiguity that caused Win2K to crash with the
set service description patch. Also lighten the load (don't allocate
a handle) to get at the advapi32.dll we already statically link to.
PR: 7471
Submitted by: Roman Neuhauser <cynic@mail.cz>
Solved a very serious threading problem with WinNT/2K Services. The
moment master_main told that the shutdown was complete, the parent
control thread exited Apache, leaving mod_jserv's Java process running
and alternately invoking mod_perl's cleanups from the correct thread
or the service control thread. [William Rowe]
Clean out a bunch of stale code. This patch should effectively be a
noop, simply making the code easier to follow before committing the
real fix to our thread-jumping mod_perl/mod_jserv parent process bug.
Jeff Trawick [Fri, 16 Mar 2001 14:13:40 +0000 (14:13 +0000)]
Change any slashes in the "uname -m" output to underbars. HP machines
have slashes in the name, and a slash in the machine name, and thus the
name of a binary distribution, messes up binbuild.sh (among other things).
Chuck Murcko [Fri, 16 Mar 2001 07:01:23 +0000 (07:01 +0000)]
Allow empty headers in mod_proxy. See below:
Empty headers are allowed by RFC2068 section 4.2. The presence or
absence of an empty header can be significant. The current mod_proxy
of httpd 1.3.x removes empty headers. Change mod_proxy to preserve
empty headers.
Submitted by: Christian von Roques <roques@mti.ag>
Reviewed by: Graham Leggett, Chuck Murcko
Jeff Trawick [Wed, 14 Mar 2001 04:43:04 +0000 (04:43 +0000)]
Fix a typo in a comment.
PR: 7404 (which had a patch for the hostname lookup core dump
which was already fixed as well as this typo)
Submitted by: Kunihiro Tanaka <tanaka@apache.or.jp>
Ken Coar [Tue, 13 Mar 2001 20:05:05 +0000 (20:05 +0000)]
Improve customisability of rotatelogs' behaviour. Allow the
logfile name to be formatted according to strftime(3), and
let the user specify an offset from UTC.
Martin Kraemer [Tue, 13 Mar 2001 10:22:21 +0000 (10:22 +0000)]
Ignasi writes,...
The first correction is not important, only removes a redundant line,
the ap_pstrdup(a, "127.0.0.1") is done anyway at the end of the function.
The second correction is really a bug the p-> can be NULL.
Martin Kraemer [Mon, 12 Mar 2001 10:23:34 +0000 (10:23 +0000)]
Brad writes,
Even though I don't run AIX, I was reading BUILD.NOTES and went to the URL
specified in the AIX section about the PTFs to find the URL does not work
anymore, I have found this URL to find the PTFs at
http://techsupport.services.ibm.com/rs6k/fixdb.html
Martin Kraemer [Fri, 9 Mar 2001 10:17:48 +0000 (10:17 +0000)]
David McCreedy writes:
> I've update the text files in os/tpf/samples, in part due to these ebcdic
> patches.
> I'd like to
>
> - remove os/tpf/samples/linkdll.jcl
> - add os/tpf/samples/linkhttp.jcl
Submitted by: "David McCreedy" <mccreedy@us.ibm.com>
Martin Kraemer [Fri, 9 Mar 2001 10:10:55 +0000 (10:10 +0000)]
I added configurable EBCDIC configuration functionality to http_core.c;
because conversion is a base feature, this looked like the only sensible
place to me. Other basic features like Resource limits live there too.
* make EBCDIC conversion truly configurable. Up to know, there was a
hardwired assumption that only files of MIME type text/* (and a few
exceptions) could be EBCDIC files; and everything else HAD TO BE
binary. This assumption breaks (again and again) for MIME types like
application/postscript, model/vrml, application/x-javascript and
others, which can never be stored as EBCDIC text files.
I now implemented two new directives for defining the conversion
based on MIME type or file extension. The conversion can be set for
upload and download independently, on or off, for any file.
* make EBCDIC conversion symmetric. Up to now, there was no clean way
to deal with uploaded content (POST with Content-Type:, PUT with
Content-Type:) because a) there was no MIME checker attached to the
header-reader, and b) you could not actually define a conversion
based on MIME type. Both deficiencies have now been addressed (the
ap_checkconv_in() routine is called upon parsing of an uploaded
Content-Type: line, and it can set a flag which is different from
the download conversion flag. Also, its change is triggered at a
different phase in the request handling: the upload conversion
is set as soon as a Content-Type: for an uploaded document is
detected, but the download conversion is only set when the
response is about to be returned). All this was impossible in the
past.
* unify the EBCDIC tables to be in a single common file
src/ap/ap_ebcdic.c (and src/include/ap_ebcdic.h) instead
of having redundant copies under src/os/{tpf,bs2000,os390}/ebcdic.{c,h}
The common file will have the correct translation table
conditionally compiled based on #ifdef TPF/OS390/_OSD_POSIX.
Up to now, each EBCDIC had its own copy, cloned and slightly
adapted.
* Also, put the conversion checker ap_checkconv() to http_core,
because is is an essential central cog in the whole conversion
clockwork. Until now, three almost incompatible copies were
spread throughout the EBCDIC platforms' os.c files.