Consolidated the startup attributes for building the command line for a CGI
binary into a single structure. This allows platform integrator to manipulate
the startup parameters much more easily. Also added the detach attribute
so that each CGI binary can be spawn appropriately for the OS.
Bill Stoddard [Wed, 5 Jun 2002 21:47:58 +0000 (21:47 +0000)]
Fix segfault at startup when the startup fails before running the post config
hook. We were setting the hash table cleanup in the create_per_server_config
hook and allocating the hash table in the post config hook. Move the register_cleanup
to the post_config hook
Cliff Woolley [Wed, 5 Jun 2002 19:42:19 +0000 (19:42 +0000)]
Updating 2.0.37 status. Even though this is dragging on, I'm glad to see
us ironing these issues out before the release, lest we have to deal with
another month's worth of duplicates of the same three PR's like we have with
the last two releases. :)
Also demoting the server-pushed CGI thing to not-a-showstopper since there
has been zero to virtually zero talk about it since I added it to the
showstoppers list.
Solve the -k start bug [thanks for the pointers, FirstBill!]
The answer was really trivial. Unlike all other cases where you
expect to send argv[0] and get argv[0] in the created process,
the service control manager (SCM) just don't work like that.
StartService() argv passed must not include an element zero.
Element zero is inserted by the SCM, containing the service name,
without any help from the outside.
Only reason this bug 'appeared' is that Jeff's patch introduced
a bit of strictness to refuse arguments without a flag.
Jeff Trawick [Wed, 5 Jun 2002 11:59:26 +0000 (11:59 +0000)]
Fix apxs to allow it to work when the build directory is somewhere
besides server-root/build.
PR: 8453
Submitted by: a number of people hit this problem and offered hints or
partial fixes; Thom May and Pier Fumagalli had a patch to
apxs, a subset of which mostly fixed this problem; there
were hints in PRs 8453 and 9316
Bill Stoddard [Tue, 4 Jun 2002 20:33:15 +0000 (20:33 +0000)]
Jean-Jacques is reporting that this change dramatically improves the
distribution in the hash table resulting in a 20% performance boost when
caching 6000+ files in a hash table with 512 collision chains.
Ryan Bloom [Tue, 4 Jun 2002 18:50:13 +0000 (18:50 +0000)]
Allow ap_discard_request_body to be called multiple times in the
same request. Essentially, ap_http_filter keeps track of whether
it has sent an EOS bucket up the stack, if so, it will only ever
send an EOS bucket for this request.
Submitted by: Ryan Bloom, Justin Erenkrantz, Greg Stein
The style police have arrested mod_alias on charges of violating law and
order. It has been released after submitting to rehabilitation.
(No functional changes.)
The only remaining question ... are nested or strictly unnested locks
expected by OpenSSL? Right now I've left it as _DEFAULT for the platform
preference. Very simple code really - the server_rec was superfluous.
Jeff Trawick [Mon, 3 Jun 2002 18:14:44 +0000 (18:14 +0000)]
make a note about an issue listed as a showstopper
even with no change, user can --disable-threads so I wonder if
this should really be a showstopper; it would be nice to get
feedback from the user on my patch
Jeff Trawick [Mon, 3 Jun 2002 15:25:11 +0000 (15:25 +0000)]
On OS/390, the compiler/linker front-end doesn't handle
"-L/path/to/lib after "-o target". After looking into build failures,
it turned out that we specify EXTRA_LDFLAGS twice (once before "-o
target" and once after "-o target") for httpd and for the support
utilities.
Ian Holsman [Fri, 31 May 2002 21:21:10 +0000 (21:21 +0000)]
add 2 new enviornment variables to deal with misbehaving backends
"proxy-nokeepalive" which removes the Connection: line completely
"force-proxy-request-1.0" which forces the request to be HTTP/1.0
this allows apache to reverse proxy misbehaving appservers
Enable SSL negotation in ab.c. It is that, or remove all the entirely
BOGUS ssl config options from ab.c. If it works, nifty, if not, we now
have directives that have some effect, rather than no effect, for SSL.
Bradley Nicholes [Fri, 31 May 2002 17:52:51 +0000 (17:52 +0000)]
Fixed the @exp_cgidir@ replacement value so that it resolves to the correct
location when the AWK file generates the default httpd.conf file for NetWare.
Fix the case where we generate both a 401 and 413 and we go bonkers.
- If an error would drop the connection, we do not return the top-level
error anymore as we will assume this new one takes precedence over the
original error. This also ensures that we will not read the input
body (which is the point of returning these special error messages in
the first place).
- The ap_discard_request_body return value in ap_die() must be checked
to make sure we don't encounter this recursive case and print two errors.
Kudos to Jeff Trawick for his sample input which pointed this out.
Fix the case where if there is no ErrorDocument specified for an error,
the error would be sent to the client *twice* because both the filter
and the core would trigger error responses.
The problem is that the filters have already handled some errors (say 413)
and due to the ap_get_client_block API, the error was morphed into 400.
Therefore, ap_discard_request_body must use brigades directly rather than
the ap_get_client_block API so that any potential errors are not dropped.
The special value AP_FILTER_ERROR indicates that the lower level has
already dealt with this problem (ap_die() will realize this). Otherwise,
we'll error with HTTP_BAD_REQUEST and ap_die() will take it from there.
This also prevents needless memory copies when we are just going to
discard it anyway.
Thanks to Cliff Woolley who found this wacky problem.
Cliff Woolley [Fri, 31 May 2002 05:03:09 +0000 (05:03 +0000)]
fix some major badness: error buckets *cannot* use simple_copy because
they're not simple buckets. they have a private data structure which
gets freed. if you're going to copy them and share whatever ->data points
to (which is what simple_copy does), you have to refcount the structure,
which is the whole point of apr_bucket_refcount and apr_bucket_shared_copy.
Removing mod_bucketeer from the output filters seems to be the cure. Why?
So, this isn't a showstopper since no one will enable bucketeer in
production.
Aaron Bannert [Fri, 31 May 2002 00:23:34 +0000 (00:23 +0000)]
This fixes a failed assert when r->remaining is left in a negative
state and we hit some other error (like permission failure) causing
an internal redirect causing us to reevaluate the input buffers
(for discarding the request body).
- Fix case where the initial chunk length was 0 was not handled correctly.
- Fix bucket lifetimes so that they don't live longer than their brigades.
That's not nice.
- Simplify some usage of f->r->connection to f->c in the bucket creation
calls.
Cliff Woolley [Thu, 30 May 2002 22:39:08 +0000 (22:39 +0000)]
This definitely gets the award for least useful error message of the month.
Not only should it just say "can't do that on win32," which is after all
the bottom line, it was spitting out openssl error messages which were
totally useless. Eg:
[30/May/2002 17:31:17 05760] [error] Init: PassPhraseDialog BuiltIn not
supported in server private key from file
F:/Apache/Apache2/conf/ssl/secure.key (OpenSSL library error follows)
[30/May/2002 17:31:17 05760] [error] OpenSSL: error:0D084069:asn1
encoding routines:d2i_ASN1_SET:bad tag
[30/May/2002 17:31:17 05760] [error] OpenSSL: error:0D09D082:asn1
encoding routines:d2i_RSAPrivateKey:parsing
[30/May/2002 17:31:17 05760] [error] OpenSSL: error:0D09B00D:asn1
encoding routines:d2i_PrivateKey:ASN1 lib
Which is essentially saying "OpenSSL couldn't read your private key because
it was encrypted, and we can't get the passphrase the way you asked us to
on this platform."
Brought to my attention by the inquiry of: Chris Hsiang <chsiang@ivivos.com>