re-introduce ap_satisfies API back into core and modify how the access_checker, check_user_id and auth_checker hooks are called so that they respect the precedence that is set through the satisfy ALL/ANY directive. This also restores the directives order, allow, deny, satisfyas supported directives rather than being deprecated. These directives still remain in mod_access_compat however.
check_pipeline: use AP_MODE_SPECULATIVE to check for data in the input filters
to accomodate mod_ssl's input filter. AP_MODE_EATCRLF is essentially a no-op
in that filter.
this fixes missing imbedded graphics etc when using the Event MPM with mod_ssl
with HTTP pipelining enabled in the browser. the pipelined requests after the
first were never read from mod_ssl's input filter. it might reduce unneeded
flushes with other MPMs.
Jeff Trawick [Thu, 12 Apr 2007 15:07:11 +0000 (15:07 +0000)]
HTTP proxy ProxyErrorOverride: Leave 1xx and 3xx responses alone. Only
processing of error responses (4xx, 5xx) will be altered.
PR: 39245
This is based on a patch submitted by Bart van der Schans <schans hippo.nl>
and tweaked slightly by me based on discussions on dev@ since April 2006.
I think rpleum was the first to mention the 1xx issue.
Encourage people to look at ./configure --help
Several people this week have seemed to think that this document should
list all the options. Perhaps that's not entirely unreasonable, but it
isn't going to happen any time soon.
Correct behavior of HTTP request headers sent by ab in presence of -H command-
line overrides. Previously, ab would concatenate a supplied -H User-Agent:
header to the existing one, and send duplicate headers if either -H Host: or
-H Accept: were specified on the command line.
Now, the default headers are not sent if they are overridden using the -H
command-line flag.
The apr_port_t type is unsigned, but ab was using a signed format code in
its reports. PR 42070. Submitted by Takashi Sato serai lans-tv.com,
reviewed by sctemme.
Move the thread locking upcall initialization before the hardware library init,
so the hardware library can pick up the locking callbacks. Fixes PR 20951.
Tested on Linux with trunk and an nCipher nShield card, and on Solaris 10/Sparc
on 2.0.55 with an nCipher NetHSM.
Syntax error in -C/-c directive:
API module structure 'ftp_module' in file /usr/local/apache22/modules/mod_ftp.so
is garbled - expected signature 41503230 but saw 41503232 - perhaps this is not
an Apache module DSO, or was compiled for a different Apache version?
*) adds compile-time/run time SSL-C version support
*) simplify a ton of overly-verbose legacy code
*) split the compiled-against v.s. runtime library
*) precache the results of the version string touchup
Jim Jagielski [Tue, 20 Mar 2007 15:48:23 +0000 (15:48 +0000)]
Even though we don't let our bb grow too large, still
honor flush buckets anyway... Note: maybe now we
should use something a little larger that AP_MIN_BYTES_TO_WRITE??
Jim Jagielski [Mon, 19 Mar 2007 20:04:56 +0000 (20:04 +0000)]
Some minor tweaks... return quickly if given an
empty bb, ensure EOS is the last bucket we handle
and if our chunked passing fails, then we need
to report that immediately.
Joe Orton [Mon, 19 Mar 2007 14:39:39 +0000 (14:39 +0000)]
Updates based on feedback from Ruediger and Jeff:
- correct use of "up" and "down" w.r.t. filter chain
- various grammar fixes
- recommend use of apr_brigade_cleanup() in the brigade structure section
- fix use of APR_BRIGADE_INSERT_HEAD in an example
- expand section on use of ap_save_brigade()
- simplify rule regarding fixed processing fixed # of buckets
Bradley Nicholes [Tue, 13 Mar 2007 17:53:22 +0000 (17:53 +0000)]
Remove the hardcoded size limit parameter for ldap_search_ext_s
and replace it with an APR_ defined value that is set according
to the LDAP SDK being used.
Joe Orton [Mon, 12 Mar 2007 15:05:50 +0000 (15:05 +0000)]
Generate etags consistently across 32-bit and 64-bit platforms:
* modules/http/http_etag.c (etag_uint64_to_hex): Renamed from
etag_ulong_to_hex; take an apr_uint64_t argument.
(ap_make_etag): Adjust to use new function and macro names.
Pass arguments directly to etag_uint64_to_hex without casting
down to unsigned long.
Joe Orton [Wed, 7 Mar 2007 13:44:15 +0000 (13:44 +0000)]
* support/logresolve.c (main): Simplify to avoid conditionals in handling
of lines without spaces: ensure a newline is printed for the cache-hit
path and fix a crash in apr_file_printf for the cache-miss path.
Nick Kew [Wed, 14 Feb 2007 13:34:38 +0000 (13:34 +0000)]
Return METHOD_NOT_ALLOWED, not FORBIDDEN, to a TRACE request when
TraceEnable is Off. This agrees with our documentation, and with
our Allow: header in response to OPTIONS.
Use the specified IPv4 prefix for documentation and examples (192.0.2.0/24)
from RFC3330 rather than non-reserved public internet addresses and some
RFC1918 addresses.
Ruediger Pluem [Mon, 12 Feb 2007 20:29:04 +0000 (20:29 +0000)]
* Save the key we generate during our first run of cache_generate_key_default
on each request in the request_config. During consecutive runs of
cache_generate_key_default during processing the request we restore it
from there as we might not be able to generate the same key again as
the ingredients used to compose the key might have changed and we constantly
must use a key that could be generated during the quick handler phase.
Jim Jagielski [Wed, 7 Feb 2007 14:26:37 +0000 (14:26 +0000)]
Further refinement for PR41056 / PR 19954 (mostly-fixed in r480135.)
We assume that a successful read but an empty brigade
is NOT cause for EAGAIN. Testing may or may not
confirm this assumption, in which case that test
may be required as well.
Ruediger Pluem [Tue, 6 Feb 2007 15:55:50 +0000 (15:55 +0000)]
* Add CacheIgnoreQueryString directive to cache requests with a query string
even if no expiration time is specified. Futhermore the query string will not
be used for key generation such that requests to the same URI path, but with
different query strings are mapped to the same cache entity. Turning this
setting to ON violates RFC 2616/13.9 and thus it is turned off by default.
Chris Darroch [Tue, 6 Feb 2007 00:25:15 +0000 (00:25 +0000)]
Introduce configuration groups to allow inheritance by virtual hosts of
database configurations from the main server. The post_config hook function
determines the minimal set of distinct configurations necessary so that
database connection pools are shared between virtual hosts whenever possible.
The SQL statements which should be prepared for each database connection
are now stored in a hash for each virtual host during the configuration
phase, and these hashes are merged in the normal manner using
apr_hash_overlay() with that of the main server. This allows for statements
to be de-registered by DBDPrepareSQL, if desired. The post_config hook
function then compares the statements registered for each virtual host
when determining if a separate configuration group is required. The
changes in r424798, r432560, r432562, and r466641, which still have problems
with configuration inheritance, are therefore no longer necessary.
Jeff Trawick [Sun, 4 Feb 2007 00:57:03 +0000 (00:57 +0000)]
Update the hash table of active script pids even on paths where a
script process wasn't created (storing 0 for the pid in that case).
Otherwise, the remembered pid is that of the last successful script
execution for this hash key.
Prior to this patch, the wrong process could be terminated in
rare circumstances:
- A CGI process with pid 10101 is forked for connection 99.
- After the CGI exits and some time elapses, some other process gets
pid 10101. (Connection 99 hasn't handled another CGI request yet.)
- The next time connection 99 has a CGI process, the fork()
or other early setup fails, so no CGI process is created.
- The remembered pid for connection 99 is still 10101. It
gets terminated (subject to permissions).