Bradley Nicholes [Tue, 21 May 2002 22:00:44 +0000 (22:00 +0000)]
Fixing a memory leak with the threads bucket_allocator. We were allocating
too much and not freeing up enough. On a thread exit the bucket and the
transaction pool need to be cleaned up. When the MPM exits, the main pool
needs to be cleaned up.
Martin Kraemer [Tue, 21 May 2002 12:46:01 +0000 (12:46 +0000)]
John Von Essen <john at essenz.com> contributes the diskimg.gif icon:
> Hopefully this is the right place to send this comment. I have alot of
> disk images (.img) on my server. By default, there is no icon for a disk
> image.
>
> So I made one...
>
> AddIcon /icons/diskimg.gif .img
>
> The diskimg.gif can be found at:
>
> http://www.essenz.com/icons/diskimg.gif
>
> Could this be added into future releases? Disk images are fairly popular.
> Especially when making boot floppies or driver disks for linux.
Joshua Slive [Mon, 20 May 2002 20:44:05 +0000 (20:44 +0000)]
Shorten the comment for EnableMMap, and limit it just to the NFS issue.
The most we could say about preformance is "it's usually better to leave this
on, but sometimes it's better to turn it off", which is not really helpful
to anyone.
Clean up isapi_load, removing the request_rec arg [which we never need],
and using the given server and request rather than deref'ing r->server
[which segfaulted ISAPILoadModule in the 1.73 rev.]
As the prior commit message indicated, pass the accept thread a listen
rec as opposed to simply the listen socket.
However, the prior commit (which I crossed up with this patch) really
closed a segfault where we attempted to log messages to ap_server_conf,
after the server conf was destroyed, and prior to setting the new
value in the next go-around of post_config.
Begin passing about apr types instead of odd local conventions.
It seems there may be other uses for tracking information within
an ap_listen_rec, outside of the socket. One of my hassles (that
FirstBill found another way around) was tracking the current
accept socket when the only common data was the listen socket.
Although it appears reasonable to immediately gather the Error log and
level from the config; these are per-vhost entities that can't be
processed as we preload the config tree. There is more work to do,
as Cliff Woolley guesses, before we can make this change.
In the meantime, -e and -E should provide the admin sufficient options
to work around problematic configs. So I'm reverting those changes,
for now.
ServerRoot is global only, and it MUST be read immediately, so that
part of the last patch stays.
Cliff Woolley [Fri, 17 May 2002 18:24:07 +0000 (18:24 +0000)]
Fix the links for the PidFile directive in stopping.html and
add mpm_common and mod_cache to index-bytype.html (which, by the way,
is clearly the abused stepsister of index.xml/index.html... we should
find some automated way to generate the index-bytype as we have with the
regular index).
PR: 9187
Reported by: Max Dittrich <amax@cs.tu-berlin.de>
Doug MacEachern [Fri, 17 May 2002 18:21:12 +0000 (18:21 +0000)]
prevent possible segv in ssl_init_CheckServers if s->addrs is NULL.
for example: <VirtualHost *:>, for which the core only spits out a warning:
Name or service not known: Cannot resolve host name *: --- ignoring!
Joshua Slive [Fri, 17 May 2002 17:24:41 +0000 (17:24 +0000)]
Change the way language-dependent xslt works. Now a different
stylesheet must be used for different languages. The language-dependent
stylesheets simply include the appropriate language settings and then
include common.xsl to get the real stylesheet.
Jeff Trawick [Fri, 17 May 2002 14:49:31 +0000 (14:49 +0000)]
get binbuild working again, and zap the BinaryDistribution layout
at the same time
a few days ago the configure syntax for specifying a layout was fixed
in binbuild.sh, but the layout was broken... it turns out that we
don't need the layout
with Apache 1.3, a separate layout for binary builds was necessary
in order to install under any prefix specified by the user
with Apache 2.0, that works without any special tricks so the
BinaryDistribution layout is no longer necessary
An absolutely unnecessary hack around MSVC emits that the symbol may
not have been initialized. [Of course it was initialized, the same
code protects both it's initialization and reset.]
Cliff Woolley [Thu, 16 May 2002 19:05:24 +0000 (19:05 +0000)]
The group consensus was that we're no longer supporting "make certificate,"
as test certificates just allow people who don't know what they're doing
to dig a bigger hole for themselves and don't really help anybody who
DOES know what they're doing much. So all of the documentation references
to "make certificate" are now removed.
Ant is horribly broken for me and can't complete an entire build here without
producing an "IndexOutOfBounds" exception (no stack trace), so provide info
for Xalan-J make. (Assumes you have Xalan-J stuff in your CLASSPATH.)
Change mod_ssl from using ssl_log() to ap_log_error().
The issue is that ssl_log doesn't handle apr_status_t result codes. This
leads to a number of places (esp. with mutexes) where the error codes get
lost. Rather than extending ssl_log further, since mod_ssl is part of
our core, migrate to ap_log_error. This means that mod_ssl no longer
does its own logging.
Most uses of SSL_ADD_ERRNO are now mapped correctly to apr_status_t values
(mainly because the APIs that used to return errnos are now APRized and
have apr_status_t codes available).
SSL_LOG_TRACE and SSL_LOG_DEBUG were mapped to the APLOG_DEBUG values.
mod_ssl prints out a LOT of debugging information, so mod_ssl with LogLevel
Debug may not be a good idea - perhaps mod_ssl should be less chatty.
Numerous printf type collisions were also resolved.
(The ssl logging code itself will be removed in a subsequent commit.)
This has been discussed on dev@httpd, but the fact that there isn't
much to review besides the mindless changes, I'm going to commit now
and rely on CTR if I screwed up anything on the translation.
Stop using SSL_ADD_SSLERR option in ssl_log() and replace with new
ssl_log_ssl_error() function that wraps ap_log_error instead.
This begins the migration from ssl_log() -> ap_log_error(). Divorcing
ourselves from the SSL_ADD_SSLERR option is required to make the next
pass easier.
Document the fact that Cygwin's awk doesn't work with MSVC. This is
due to Cygwin making awk.exe a 'cygwin symlink' to gawk.exe. The windows
shell does not support symlinks, and so any Apache makefile references
to awk.exe will fail.
PR:8726
Submitted by: Jerry Baker <jerrybaker@weirdness.com>
* accept HTTP/1.1 ### Status results [another bogus convolution.]
* accept status+headers in status or headers [alone].
* fix I/O completion (correct the order of args.)
* fix a number of bugs and behavior flukes in TransmitFile.
* fix bug #8740 [truncated output due to bad status return]
Save on incremental build time. libhttpd depends on gen_test_char and
libapr. gen_test_char truly needs only apr ... however, this causes the
libhttpd to refresh the static apr and dynamic libapr.
Now... libapr.dll is in the wrong place to actually start gen_test_char.
That doesn't affect us though - the only bits gen_test_char actually
needs are APR_HAS/HAVE flags and the apr_isfoo(char) macros.
So this lightens the load while not harming the build process.
Jeff Trawick [Tue, 14 May 2002 14:22:27 +0000 (14:22 +0000)]
binbuild.sh was using the ancient syntax --with-layout=BinaryDistribution
instead of --enable-layout=BinaryDistribution
I changed the layout for BinaryDistribution to install under
/usr/local/apache2 instead of /usr/local/apache. Hopefully the
rest of the layout is reasonable.
Fix command line devenv builds for MS VS 7.0 users. msdev is a command
that no longer exists, and we won't count on .mak files [although they
are much faster if they exist, as there is no such concept as /norecurse
in this newer release.] We will use the existance of a converted
Apache.sln (solution) file as proof of 7.0, there isn't another graceful
way to check that I see.
One last commit for tonight I'd postponed ... take variable names within
mod_isapi out of Eastern Europe. Hungarian now applies to ISAPI and MS
defined fields of structures, only.
Now for the major refactoring. Introduce mod_isapi.h, as we have had
untold problems with compatibility between different Visual Studio and
PlatformSDK users [based on their generation of the MS ISAPI header.]
This header is coded from scratch in native APR types.
Replace the apr_array_t with an apr_hash_t, mutex protected, to allow us
to preload and late-load isapi modules. This closes a significant bug
with trafficed sites using uncached isapi modules, where one would be
closing the module just as another request is opening it [as if for the
first time.] This would cause some ISAPI modules to crash. Now that
we load modules for the lifetime of the server, a simple graceful restart
is all that's required to unload all the non-precached modules.
Crack out all FAKE_ASYNC code while we complete it. Total support for
the Completion Context callback and end-of-request termination is required
before we can toggle this on.
My next commit; complete fake async support. But this was all I'd had
in me for one night.
Part 3 of the ISAPI overhaul. Reframe the 'server conf' into 'dir conf'
options, creating one single cache of loaded modules [heck, that's what
it was before.] This allows finer grained control of specific modules
that must be 'configured' around to deal with their peculiarities.
This actually saves much code when we can use global config accessors.
Grant the module cache it's own pool, and straighen up some other nits.
No other substantial changes in this pass.
Instead of hardcoding srclib/apr{-util} in the INCLUDES, get the information
from ap{ru}-config --includes which knows how to deal with VPATH builds
itself.
Part two; nearly inconsequential - Made the log message prefix ISAPI:
(rather than ISAPI with no trailing colon) and normalized some variables
and static fn names to 'apache names' rather than MSisms.