called.
This fixes a number of segfaults on daedalus where the first line is
empty (i.e. \r\n followed by a bunch of garbage)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93332 13f79535-47bb-0310-9956-ffa450edef68
We would previously receive APR_INCOMPLETE on symlinks if wanted has
FINFO_NAME set because it isn't supported via apr_stat(). Furthermore, we
don't care what the real name is anyway (even if it apr_stat returned
.name) - we want to call it by the name the symlink says it is.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93328 13f79535-47bb-0310-9956-ffa450edef68
be longlived malloced regions, or sit upon the stack. No need to mess
with pool conflicts.
The remaining pool accesses are still a problem to resolve.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93327 13f79535-47bb-0310-9956-ffa450edef68
only in the service-mode. SetServiceDescription was borked, now fixed.
Since we don't use the posix/libc style stderr, I've also pitched that
code, which was causing an exception.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93326 13f79535-47bb-0310-9956-ffa450edef68
take us to the module struct, and working backwards, the register hooks
and then top-level init stuff. At least that's how any other Apache
module is authored.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93306 13f79535-47bb-0310-9956-ffa450edef68
GENERIC_READ|GENERIC_WRITE to the scoreboard mapping,
EVENT_MODIFY_STATE|SYNCHRONIZE to it's exit event,
and fix a _major_ bug in the NullACL code that set the length
by the size of the pointer-to-acl, rather than the size of an acl.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93300 13f79535-47bb-0310-9956-ffa450edef68
specified they want to use the CanonicalName, but they have not
configured a port with the ServerName, then use the same port that
the original request used.
Submitted by: Ryan Bloom and Ken Coar
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93296 13f79535-47bb-0310-9956-ffa450edef68
returned something like APR_EOF, since len is not set in this
case and we can go off the end of storage
make sure we set r->status to something when we bail out due
to an error; otherwise, the request goes forward with meaningless
headers
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93294 13f79535-47bb-0310-9956-ffa450edef68
since APR_BRIGADE_EMPTY() assumes a non-empty brigade, we have to check
before invoking that macro
since APR_BRIGADE_EMPTY() can make a brigade empty, we have to check
after invoking that macro
An obvious variation of this fix would be to change APR_BRIGADE_NORMALIZE()
to deal with empty brigades.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93293 13f79535-47bb-0310-9956-ffa450edef68
1. The only good assert is a deleted assert.
2. The child exit event is a very private item, can't pollute into
other processes we create, shouldn't be named, and should never
be accessable to anyone but the parent.
3. We now pass 'handles', not just a single scoreboard.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93278 13f79535-47bb-0310-9956-ffa450edef68
Suggesion: Netware needs to implement the appropriate abort() style
fn. If there is none on Netware, this is non-portable, undebuggable,
and will be yanked by tommorow evening.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93277 13f79535-47bb-0310-9956-ffa450edef68
to keep an eye on those kids.)
2. gotta return a respectable exit code.
3. gotta have a few sensible messages.
4. gotta know where we went.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93276 13f79535-47bb-0310-9956-ffa450edef68
had begun; we need to start organizing this so it can be groked by
more than one person at a time [or simply by more than one person.]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93275 13f79535-47bb-0310-9956-ffa450edef68
It's something to note, but it isn't an error worthy of logging by default.
(Also always log any status values in read_request_line() - incl. timeouts.)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93271 13f79535-47bb-0310-9956-ffa450edef68
APR_EOF instead of an EOS bucket.
- Start to try to be nice when we *know* we are EOS by removing the
bucket. This is only one case where we could end up with a 0 bucket
in ctx->b, but let's remove it and move on. (If the bucket were to
return 0 bytes and still have data left to read on blocking mode,
it's blantly broken, IMHO)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93270 13f79535-47bb-0310-9956-ffa450edef68
segfault.
(A minor change to Jeff's patch is that we ignore the EBCDIC code path.)
Submitted by: Jeff Trawick
Reviewed by: Justin Erenkrantz
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93269 13f79535-47bb-0310-9956-ffa450edef68
APR_BRIGADE_NORMALIZE(). Otherwise, we can get segfaults if a
client says it will post some data but we get FIN before any
data arrives.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93262 13f79535-47bb-0310-9956-ffa450edef68
acheived with the pre_connection hook. I have added the socket to the
pre_connection phase to make this possible.
Reviewed by: Bill Stoddard
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93259 13f79535-47bb-0310-9956-ffa450edef68
required on most (all?) platforms, regardless of what code changes
might be required to work around the ability on Windows to
inadvertently have more than one server listening on the same ports
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93252 13f79535-47bb-0310-9956-ffa450edef68
the same port. Previously, this was necessary, because the Windows MPM
was binding to the socket in both the parent and child. Today's code
passes the attached socket to the child from the parent, so we don't need
to re-attach in the child.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93248 13f79535-47bb-0310-9956-ffa450edef68
has a STDERR channel in the first place, so the first ap_open_stderr_log()
fails. We need to open it after we've initialized the service control
manager and created the stderr pipe thread that logs stderr output over
in our Application Event Log.
The failure message still looks pretty danged stupid on WinXP however;
"The Apache2 service on Local Computer started and then stopped."
[ok, that part is straightforward.] "Some services stop automatically
if they have no work to do, for example, the Performance Logs and
Alerts service." [that's the bogus bit.]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93241 13f79535-47bb-0310-9956-ffa450edef68
to the global variable ap_scoreboard_shm. Since this variable was already
being excluded by APR_HAS_SHARED_MEMORY at the beginning of the
file.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93166 13f79535-47bb-0310-9956-ffa450edef68
survives graceful restarts. This fixes a SEGV during graceful restarts.
Children who attach to this scoreboard keep the same pool as before (pchild)
since they should detach/unmap when the child process exits.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93159 13f79535-47bb-0310-9956-ffa450edef68
The child processes use the child_init phase to reattach to the shared
memory. This makes Windows work like Unix, which should make it easier
for module authors to write portable modules.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93119 13f79535-47bb-0310-9956-ffa450edef68
if there's only one listener socket (based on the implementation
in the prefork MPM). This also enables us to do single-listener
unserialized accept
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93096 13f79535-47bb-0310-9956-ffa450edef68