Ryan Bloom [Fri, 5 Apr 2002 21:16:11 +0000 (21:16 +0000)]
If we are doing a fast_redirect, and we don't have a main request, then
make sure that we don't have the sub_req_output_filter. This was
causing problems when there were multiple sub_Requests, and some should
have had the filter, but the last one shouldn't.
Clean up breakage introduced recently that sent the wrong headers through
the http_headers output filter. Now we will always point every filter at
the 'redirected' request, e.g. the actual error message response rather
than the request that failed.
PR:
Obtained from:
Submitted by:
Reviewed by: Ryan Bloom
remove flush bucket from ap_proxy_http_process_response.
this allows for the response content-length header to be properly
calculated/inserted.
Ryan Bloom [Fri, 5 Apr 2002 17:50:37 +0000 (17:50 +0000)]
This is a HACK! The problem is that the fast_internal_redirect is
removing the OLD_WRITE filter. Obviously that is wrong. For right now,
the fix is to hack around the problem and just make it work. Long term,
we need to find a real solution to this, but this gets autoindex working
today.
Ryan Bloom [Fri, 5 Apr 2002 17:43:03 +0000 (17:43 +0000)]
This fixes the mod_autoindex problem of not getting the list of files.
The problem was that the internal_fast_redirect removed the SUB_REQ
filter, but we are still in a sub_request. The solution is to have the
fast_internal_Redirect function check if we are in a sub_Request and
re-add the filter if we are.
Submitted by: Ryan Bloom, Greg Ames, Jeff Trawick, and Will Rowe
Brian Pane [Fri, 5 Apr 2002 07:44:14 +0000 (07:44 +0000)]
Fix for the boundary case in which each character of an SSI directive
is in a separate bucket...the code in send_parsed_content() doesn't
expect a case where ctx->state==PARSE_DIRECTIVE but ctx->tag_start_buffer
is NULL. So in found_start_sequence(), we set ctx->tag_start_buffer
to point to the next bucket if the end of the <!--# is at the very
end of the current bucket.
Get the HTTP-on-HTTPS hint to come through again. We're in AP_MODE_GETLINE
at this point, so the \r\n\r\n just confuses the http input filter.
One concern: this patch is only correct as long as we only ever call this
function while in AP_MODE_GETLINE. Ideally we would account for the mode
and return the newlines if not in GETLINE mode, but at the moment it doesn't
seem to matter.
Brian Pane [Fri, 5 Apr 2002 06:03:30 +0000 (06:03 +0000)]
Remove an invalid comment. (The only way that the bucket will
contain only a single byte is if slen==1, meaning that we've
replaced <!--# with a single-character token, and that character
is the first character in the bucket. If that happens, then
pos+slen (aka 1) is the right amount by which to increase
bytes_parsed.
One for 2.0.34 - to fix the problem of utf-8 configuration files saved
from MeSsed up editors that believe zero byte joiner lead bytes signify
a utf-8 file. Someone point me at an RFC ... gheesh.
PR:
Obtained from:
Submitted by:
Reviewed by:
avoid the error_log message: [error] mod_ssl: Certificate Verification: Error ...
if SSLProxyVerify is not configured or set to "none".
the verify callback does not happen in the server context when
SSLVerify is not configured or set to "none".
Race condition one ... we were occasionally escaping all the way out to
WSATerminate() before this thread picked up it's sleepy head to discover
the world was gone beneath it on 1GHz+ CPU WinXP configurations.
Paul J. Reder [Thu, 4 Apr 2002 21:19:32 +0000 (21:19 +0000)]
This patch fixes a core dump that occurs in mod_include during tag parsing
if the starting sequence (<!--#) finishes at the end of a bucket and the
directive starts at the beginning of the next bucket.
There is still a bug in the handling of conditional directives that span
buckets, but the core dump is now fixed and the conditional bug should
be even rarer than the core dump was. I'm fixing the conditional bug
seperately.
Jim Jagielski [Thu, 4 Apr 2002 18:36:03 +0000 (18:36 +0000)]
Added support for Posix semaphore-based mutex locking (AcceptMutex posixsem).
It's between pthread and sysvsem in the DEFAULT priority ranking. This
makes it the new default for Darwin, and adds support for it for other
platforms as well (like Solaris).
PR:
Obtained from:
Submitted by:
Reviewed by:
Jeff Trawick [Wed, 3 Apr 2002 15:47:59 +0000 (15:47 +0000)]
worker MPM:
Don't create a listener thread until we have a worker thread. Otherwise,
in situations where we'll have to wait a while to take over scoreboard
slots from a previous generation, we'll be accepting connections we can't
process yet.
Don't let the listener thread clobber the scoreboard entry of the first
worker thread.
Much easier to clone first than fix later - next batch of builds this
poorly thought out will simply be vetoed - do you really expect M$'s
defaults to make any sense? And what's with /I "C:\foo" ???
PR:
Obtained from:
Submitted by:
Reviewed by: Ryan Bloom
ap_remove_output_filter no longer works for connection filters.
change logic in the case of "HTTP spoken on HTTPS port" to disable the
ssl filters rather than attempt to remove the filters.
PR:
Obtained from:
Submitted by:
Reviewed by: Ryan Bloom
remove call to ap_proxy_reset_output_filters() and the function itself.
this call breaks ssl proxy when the client is using keepalives.
this function is also no longer needed with recent-ish filter changes.
Brian Havard [Mon, 1 Apr 2002 16:42:02 +0000 (16:42 +0000)]
Destroy the connection pool (and therefore run the cleanups) before destroying
the bucket_alloc as the cleanups refer to buckets allocated by the
bucket_alloc.
Bill Stoddard [Mon, 1 Apr 2002 16:09:46 +0000 (16:09 +0000)]
If this is a subrequest, register the cleanup against
the main request. This will prevent the cache object
from being cleaned up from under the request after the
subrequest is destroyed.
Ryan Bloom [Mon, 1 Apr 2002 08:27:42 +0000 (08:27 +0000)]
Migrate perchild to the new lock API, and clean up some of the logic
surrounding the FD passing. This doesn't work yet, but it is getting
closer. Currently, the problem is that we don't correctly read the data
from the socket so that it can be passed to the correct child.
Match the new APR_BUCKET_BUFF_SIZE. We want this to be slightly less than
8KB to leave room for the various allocators' internal structures while
still fitting into a total of 8KB.
Ryan Bloom [Mon, 1 Apr 2002 03:37:21 +0000 (03:37 +0000)]
Make perchild work with the new bucket_allocation API. Also, allow
the Perchild directives to take both numerical UID/GID and the
logical user name/group name.
PR: 9784
Submitted by: named UID/GID logic: Scott Lamb <slamb@slamb.org>
Ryan Bloom [Mon, 1 Apr 2002 00:32:39 +0000 (00:32 +0000)]
Get the Perchild MPM to compile and serve pages again. There are a lot
of bugs left in this, but I am taking things one step at a time. This
will work again. This also gets perchild using the correct variable for
MaxRequestsPerChild
Brian Pane [Sat, 30 Mar 2002 23:11:55 +0000 (23:11 +0000)]
Fixed script error logging, which I'd left commented out after making
the changes to use a brigade to read the script headers
Obtained from:
Submitted by:
Reviewed by:
Brian Pane [Sat, 30 Mar 2002 22:48:39 +0000 (22:48 +0000)]
Fix for a bug that I introduced when eliminating the single-byte
reads in mod_cgi: eof wasn't treated as an error condition when
reading the script headers, so we were delivering a 200 when a
CGI script produced no output.