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.
First pass at trying to standardize httpd-2.0's usage of APR and APR-util
so that they can be separated - use an installed APR and APR-util with
httpd-2.0. This is not expected to achieve full separation, but is
merely the first step in the process. The tree should still be buildable
in the source-only case.
This commit does the following things:
- Use the standard find_apr.m4 and find_apu.m4 m4 macro files that flood and
Subversion already use for locating APR and APR-util. This adds the
--with-apr and --with-apr-util configure options.
- Stop using APRVARS and export_vars.sh.
- Use apr-config and apu-config to determine dependencies.
- Add AP_BUILD_SRCLIB_DIRS and AP_CLEAN_SRCLIB_DIRS values (names stink)
to dynamically figure out what subdirs in srclib we will build.
(What we really want to do is set one value - go L->R on build and
R->L on clean. I can't think of a way to do this.)
- If we are using APR and APR-util that are already installed, don't
specify them in srclib. (This still needs some work I bet.)
Considering the overall goal of making APR and APR-util being used
out-of-tree, AP_LIBS can not be a PROGRAM_DEPENDENCY, but just a library
that we link against - therefore, it belongs under PROGRAM_LDADD.
(A program dependency implies that we can build it - that will not
always be the case with APR and APR-util.)
Fix mod_deflate corruption when using multiple input buckets. We should
only clear *_out when we are the beginning or avail_out == 0.
Justin was tracking this down before he went to WWDC and didn't finish
before he left. A (virtual) beer goes to Asada who filed this PR with
the right patch!
Rich Bowen [Sun, 12 May 2002 23:53:42 +0000 (23:53 +0000)]
The suexec arguments now start with --with.
Note that there are also two arguments missing, according to ./configure
--help. Specifically, --with-suexec-bin and --with-suexec-umask. Can I
can add those in, if desired, but if someone more familiar with it could
do so, perhaps it would be a little more descriptive.
Obtained from: #apache on openprojects.net
Jeff Trawick [Thu, 9 May 2002 10:53:28 +0000 (10:53 +0000)]
Fix a mod_ssl build problem on OS/390.
This is admittedly rather ugly code to come up with a unique 4-byte
identifier for the thread. Since our threads are pthreads and a pthread
maps 1:1 to a TCB, the address of the TCB is sufficient. Yes, every
TCB sees a different piece of real storage mapped to the first page,
so the code does make sense.
Use the ap_get_server_xxx() calls to return the info rather than short cutting it with the server_rec. This avoids port showing up as 0 and also respects the UseCanonicalName setting in the .conf file.
Cliff Woolley [Tue, 7 May 2002 22:31:38 +0000 (22:31 +0000)]
Changing *any* default behavior is a bad idea without _very_ careful
consideration, IMO, as it can silently break existing configs. Principle
of least astonishment applies. Besides, the security argument is bubkus.
Security through obscurity at best, and hardly even that.