1
0
mirror of https://github.com/apache/httpd.git synced 2026-01-26 19:01:35 +03:00
Commit Graph

1989 Commits

Author SHA1 Message Date
William A. Rowe Jr
f2e2cdcdb8 My [sixth?] major revamp of service.c. Traded an event for a mutex
to the service_init completion, expanded timeouts, moved SERVICE_STOPPED
  message posting to the main thread since sometimes, in odd cirumstances,
  our SCM thread wasn't resumed prior to termination, and ripped the code
  for the stderr logs to use nt_eventlog.c instead.  And generally tried
  to make the code just a little bit more grokable [as if such a thing
  is really possible.]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93928 13f79535-47bb-0310-9956-ffa450edef68
2002-03-14 04:34:03 +00:00
William A. Rowe Jr
3dab10782e Cleanup the eventlogger code, and split it into its own source.
[got the copyright correct, no less.]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93927 13f79535-47bb-0310-9956-ffa450edef68
2002-03-14 04:19:00 +00:00
William A. Rowe Jr
6d0a9307b3 Now that we test ownership of the listeners in listen.c, -k "start"
can no longer hang on to the listeners after it checks that they are
  free.  Also, we cannot be checking listeners if we are using -k "config"
  to alter the service config, since the service might be running as we
  try this, and we cannot check the listeners in -k "restart", since we
  are pretty certain they are owned by the running service we are about
  to try restarting..


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93926 13f79535-47bb-0310-9956-ffa450edef68
2002-03-14 04:12:12 +00:00
William A. Rowe Jr
fa3ba046f1 The be-certain-we-own-the-socket patch to listen.c fails if we hang
on to the originals after duplicating sockets.  If you dup, you aught
  to be closing the source.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93925 13f79535-47bb-0310-9956-ffa450edef68
2002-03-14 04:08:51 +00:00
William A. Rowe Jr
92cf62dc0d Our ap_listeners were binding to IIS sockets, other Apache instances'
listeners, the bottoms of peoples' shoes, etc.

  Wait to set SO_REUSEADDR on Win32 until the parent is certain the
  port is all ours.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93924 13f79535-47bb-0310-9956-ffa450edef68
2002-03-14 04:06:02 +00:00
Bill Stoddard
2d9939a923 Fix win32 compile breakage.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93922 13f79535-47bb-0310-9956-ffa450edef68
2002-03-13 22:34:46 +00:00
Roy T. Fielding
845cbfd508 Update our copyright for this year.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93918 13f79535-47bb-0310-9956-ffa450edef68
2002-03-13 20:48:07 +00:00
Bill Stoddard
6752a95e45 Move the quick_handler comment to the new quick handler location. Do not
call quick handler on a dirent subrequest. This fixes a nasty problem in
mod_cache where it was serving up content on a dirent subrequest.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93915 13f79535-47bb-0310-9956-ffa450edef68
2002-03-13 19:41:56 +00:00
Jeff Trawick
ff76c93622 simplify the way we find the family of an apr_sockaddr_t
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93914 13f79535-47bb-0310-9956-ffa450edef68
2002-03-13 19:07:04 +00:00
Jeff Trawick
d86a35b7e5 Fix the calculation of thread_num in the worker score structure.
Submitted by:   Stas Bekman
Reviewed by:    Jeff Trawick


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93900 13f79535-47bb-0310-9956-ffa450edef68
2002-03-13 12:25:31 +00:00
Jeff Trawick
53d837b39b simplify the way we find the family of an apr_sockaddr_t
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93884 13f79535-47bb-0310-9956-ffa450edef68
2002-03-12 23:15:54 +00:00
Sander Striker
4fc0ba5034 Style Police comming through...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93852 13f79535-47bb-0310-9956-ffa450edef68
2002-03-12 09:02:19 +00:00
Sander Striker
f91ea17c85 Make this look a bit better.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93843 13f79535-47bb-0310-9956-ffa450edef68
2002-03-11 14:27:45 +00:00
Sander Striker
99bbb31b45 Style Police comming through...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93842 13f79535-47bb-0310-9956-ffa450edef68
2002-03-11 13:57:25 +00:00
Sander Striker
d694a08ca3 Style Police comming through...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93833 13f79535-47bb-0310-9956-ffa450edef68
2002-03-11 10:48:58 +00:00
Sander Striker
30a517c723 Style Police comming through...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93813 13f79535-47bb-0310-9956-ffa450edef68
2002-03-09 14:13:49 +00:00
Greg Ames
e311cbc704 ap_rgetline_core: fix a bug with folding observed while testing ebcdic.
Garbage characters sometimes appeared after a legitimate folded header.
We weren't allocating an extra byte for the trailing null, or copying it,
when called from get_mime_headers (folding is in use, and ap_rgetline is
responsible for allocating memory).  No need to worry about a trailing
LF - it's already been nuked.

I checked the partial line code to see if it had a similar bug.  It looked
like it did, and that the code which trims the back end of the line would
run multiple times and whack innocent bytes.  However, gdb showed that this
section of code appears to be dead due to input filter chain changes.

also, removed an assignment to a dead variable.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93804 13f79535-47bb-0310-9956-ffa450edef68
2002-03-08 20:24:07 +00:00
Greg Ames
1831fc04ee ap_rgetline: fix folding and partial line handling on ebcdic boxes. The
normal case worked OK, but due to the recursion and multiple exit points,
input bytes could go thru charset translation multiple times or not at all.

Suggested by: Justin Erenkrantz


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93776 13f79535-47bb-0310-9956-ffa450edef68
2002-03-07 22:08:46 +00:00
Sander Striker
2d21824d6d Torch a stale commented out line.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93774 13f79535-47bb-0310-9956-ffa450edef68
2002-03-07 20:03:02 +00:00
Justin Erenkrantz
3058b601ff As hinted on dev@httpd, change filter naming schemes to match our
expectations of their usage.

The reason that we should make this change now is that we have changed
the implied meaning of AP_FTYPE_HTTP_HEADER - some users of this should
be PROTOCOL while others should be CONTENT_SET.  In order to clarify it,
toss all of the bogus names and force the filter writers to make sure
they understand what they are doing.

CONTENT_SET is new (horrible name - change if you have better idea), but
it indicates that it should run between RESOURCE and PROTOCOL.
mod_deflate is the ideal CONTENT_SET filter.

The changed type names are:
CONTENT is now RESOURCE.
HTTP_HEADER is now PROTOCOL.  However, most filters that used HTTP_HEADER
may want CONTENT_SET.  (Only things like POP and HTTP belong as PROTOCOL.)

MMN bump since all filters need to be recompiled due to filter reordering.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93756 13f79535-47bb-0310-9956-ffa450edef68
2002-03-07 09:27:17 +00:00
Justin Erenkrantz
6c111e95db When using mod_ssl, it is possible that we'd be called when there are no
protocol filters, so stop the segfault.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93755 13f79535-47bb-0310-9956-ffa450edef68
2002-03-07 08:58:21 +00:00
Ryan Bloom
116497445f Remove the prev pointer from the filter chain. This removes
the complexity of trying to set the filter chain correctly, with the
side-effect of forcing us to walk the entire chain whenever we add
a filter.  Since the filter chains are small, the decrease in
complexity is worth it.
Reviewed by:	Allan Edwards


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93745 13f79535-47bb-0310-9956-ffa450edef68
2002-03-07 02:09:30 +00:00
Aaron Bannert
fce3fb4470 Fix a bug in the APR_MODE_EXHAUSTIVE mode for the core input filter.
This patch changes nothing outside of that mode.

Also, why do we ever call apr_brigade_length() in the core? This doesn't
seem right to me, so here's a comment above the other call.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93736 13f79535-47bb-0310-9956-ffa450edef68
2002-03-06 18:03:19 +00:00
Ian Holsman
da35725071 apr-utils rename apr_ansi_time_to_apr_time and
apr_exploded_time_t.

PR:
Obtained from:
Submitted by:	Thom May <thom@planetarytramp.net>
Reviewed by:	Ian Holsman


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93733 13f79535-47bb-0310-9956-ffa450edef68
2002-03-06 17:55:38 +00:00
Allan K. Edwards
1fc7cb3778 make sure r->proto_xxput_filter gets updated as necessary when
deleting a filter from the chain


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93732 13f79535-47bb-0310-9956-ffa450edef68
2002-03-06 17:29:39 +00:00
Jeff Trawick
04bde59aaf failures on the accept mutex are common at restart time, so be smart
about the log level and use APLOG_DEBUG if we're restarting


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93720 13f79535-47bb-0310-9956-ffa450edef68
2002-03-05 21:18:07 +00:00
Jeff Trawick
152c269699 fix a typo in a log message... the message claimed that apr_proc_mutex_lock()
failed when actually it was apr_proc_mutex_unlock() which failed


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93719 13f79535-47bb-0310-9956-ffa450edef68
2002-03-05 21:01:24 +00:00
Jeff Trawick
da3ac1a6e5 skip the lock release if the lock obtain failed
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93718 13f79535-47bb-0310-9956-ffa450edef68
2002-03-05 20:51:50 +00:00
Ian Holsman
17cc70b4ab Sander's Stylistic Submission
(de-tab)
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93717 13f79535-47bb-0310-9956-ffa450edef68
2002-03-05 20:43:24 +00:00
Ian Holsman
698dcdada9 Sander's Stylistic Submission
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93716 13f79535-47bb-0310-9956-ffa450edef68
2002-03-05 20:42:31 +00:00
Cliff Woolley
5d7a356565 Detabify those parts of this file which don't collide with the bucket
freelist patch.  The remaining tabs go away for free with that patch.
Submitted by:	Sander Striker
Reviewed by:	Brian Pane


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93714 13f79535-47bb-0310-9956-ffa450edef68
2002-03-05 18:21:39 +00:00
Greg Ames
4cdf0a67bb fix <Directory ~ blah> containers.
also, eradicate a few nefarious tabs which were found lurking in the vicinity.

Submitted by:  Rob Simonson <simo@us.ibm.com>
Reviewed by:   Greg Ames


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93711 13f79535-47bb-0310-9956-ffa450edef68
2002-03-05 15:46:21 +00:00
Ryan Bloom
349a0b17e4 Only insert net_filter once per request. Initialize the output
protocol filters.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93709 13f79535-47bb-0310-9956-ffa450edef68
2002-03-05 05:24:21 +00:00
Ryan Bloom
2f43d87c48 Stop the loop when we have found the correct filter, or when the filter
list is over.  Do not stop if the next filter is NULL.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93708 13f79535-47bb-0310-9956-ffa450edef68
2002-03-05 05:21:13 +00:00
Justin Erenkrantz
d3c07a160b Ensure that net_time filter isn't added on subreqs - we assume that it is
added on !r->main requests.  This led to infinite loop/SEGV when dealing
with anything that created a subreq.

(I don't think core_create_req is a good place for adding this filter.)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93694 13f79535-47bb-0310-9956-ffa450edef68
2002-03-04 09:20:03 +00:00
Ryan Bloom
b202fc0556 If we insert a protocol filter before we insert a request filter, we
must set the r->output_filter to r->proto_output_filter.  If we don't,
then as soon as we insert the request filter, the protocol filter will
be removed.  This was causing headers to not be sent on some requests.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93692 13f79535-47bb-0310-9956-ffa450edef68
2002-03-04 05:29:04 +00:00
Ryan Bloom
633f3112fe Classify some of the input filters as the correct types. Previous to
this patch, the type wasn't too important, because all filters were
put on the same list.  After this patch, the filter type is very important,
because there are three different types of filters, and they are all treated
differently, namely:

CONNECTION:	Filters of this type are valid for the lifetime of this
		connection.
PROTOCOL:	Filters of this type are valid for the lifetime of this
		request from the point of view of the client, this means
		that the request is valid from the time that the request
		is sent until the time that the response is received.
CONTENT:	Filters of this type are valid for the time that this
		content is used to satisfy a request.  For simple requests,
		this is identical to PROTOCOL, but internal redirects
		and sub-requests can change the content without ending
		the request.

It is important to realize that the three major types above are actually
broken down into smaller groups in the code, to ensure that the ordering
of filters is always correct.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93688 13f79535-47bb-0310-9956-ffa450edef68
2002-03-03 22:34:55 +00:00
Ryan Bloom
be6629235f I forgot the return, which mean meaningless log messages. This makes us
return the correct information.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93687 13f79535-47bb-0310-9956-ffa450edef68
2002-03-03 22:18:45 +00:00
Ryan Bloom
596d79f14b This fixes most of the header bug that was committed last night. The server
is seg faulting on pipelined requests currently, but I want to get people
back to a running server.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93686 13f79535-47bb-0310-9956-ffa450edef68
2002-03-03 22:04:03 +00:00
Ryan Bloom
0d7f234515 This finishes the mod_dir/mod_negotiation bug. This final part of the
solution ensures that we don't lose filters if they are added later than
we expect.  The problem could be seen if a connection filter was added
after a request-based filter was added in the past.  The problem was that
the request-based filters pointed to the first filter in the connection
record, so the new connection filter was never called.  Now, all filters
are put on their correct filter lists, and we are sure to always update
all pointers when adding a filter.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93683 13f79535-47bb-0310-9956-ffa450edef68
2002-03-03 06:04:08 +00:00
Ryan Bloom
9ac46ee310 Fix the mod_dir/mod_negotiation bug, where redirects and sub requests
were not getting the correct filters.  This is done by creating a location
in the request rec that holds protocol level filters.  Protocol level
filters survive for one request, from the time the request is received
from the user to the time the response is sent.  r->output_filters now
stores the request level filters, which are only valid for the lifetime
of one request_rec.

This patch works, but it is not complete.  The second half of the problem
is that add_any_filter doesn't check where it puts the filters that it
adds, so it is possible for filters to be put on this wrong list, and
for filters to be lost completely during request processing.  That half
of the fix will be coming in the next day or so.

Submitted by:	Will Rowe, Justin Erenkrantz, Ryan Bloom


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93682 13f79535-47bb-0310-9956-ffa450edef68
2002-03-03 02:15:52 +00:00
Bradley Nicholes
e6d10bff2d Switching from a project build file to GNU make files
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93665 13f79535-47bb-0310-9956-ffa450edef68
2002-03-01 22:21:25 +00:00
William A. Rowe Jr
689ebbaf88 For fat-fingered friends and others who like typing err and warn rather
than spelling it out on the -e argument.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93656 13f79535-47bb-0310-9956-ffa450edef68
2002-03-01 06:48:02 +00:00
Allan K. Edwards
a547ba6880 ownership of the brigade is passed in the ap_pass_brigade call
so make sure that it doesn't get left lying around. This tickled
a bug with mod_deflate and resulted in a bucket being compressed
more than once.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93610 13f79535-47bb-0310-9956-ffa450edef68
2002-02-27 21:16:19 +00:00
Doug MacEachern
4cdb6b8dec ap_calc_scoreboard_size() needs to be exported for win32
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93590 13f79535-47bb-0310-9956-ffa450edef68
2002-02-27 04:10:19 +00:00
William A. Rowe Jr
402a038805 Whoh boy that's rough... We sometimes like to answer SIGHUP in the
parent process, don't we?

  This -was- post-fork() in 1.3, but with the massive restructuring,
  we inadvertantly now whack the parent process.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93587 13f79535-47bb-0310-9956-ffa450edef68
2002-02-27 03:52:20 +00:00
Justin Erenkrantz
0e17f7f2fa Fix segfault if content_type is NULL.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93570 13f79535-47bb-0310-9956-ffa450edef68
2002-02-26 04:04:54 +00:00
Ryan Bloom
b98728f920 I learned about AP_MODE_EXHAUSTIVE while reading some of the new filter
code earlier today.  With this mode, the Perchild MPM can finally be
fixed to work with filters.  I have changed a comment in the core to make
it clear that this mode is required, but I have mentioned how dangerous
this mode is.  Also add a comment to STATUS about my plans.

Hopefully I'll have some time this week to hack through the MPM.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93565 13f79535-47bb-0310-9956-ffa450edef68
2002-02-25 06:54:40 +00:00
Cliff Woolley
03001bc176 remove a tab
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93563 13f79535-47bb-0310-9956-ffa450edef68
2002-02-25 02:10:52 +00:00
Jeff Trawick
610f8046a4 restart fixes for worker:
fix a segfault and a window in which we could miss joining
newly-created threads

we can't try to signal workers if the worker queue hasn't
been initialized (or we segfault)

make sure the start thread is done creating threads before
we try to join; otherwise we can just miss some of them and
not be able to clean them up properly


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93561 13f79535-47bb-0310-9956-ffa450edef68
2002-02-24 20:53:26 +00:00