Bill Stoddard [Tue, 22 Aug 2000 03:20:44 +0000 (03:20 +0000)]
Win32: function pointers use C calling convention unless explicitly set to use
stdcall. The 'split' function pointer in ap_buckets.h points to both static functions
(which use C calling convention) and exported functions (which normally use stdcall).
Let's settle on using the C calling convention.
Bill Stoddard [Tue, 22 Aug 2000 01:24:07 +0000 (01:24 +0000)]
Win32: Reset the acceptex context on a GetQueuedCompletionStatus() failure. We were
losing contexts before this fix, and if we lost enough, the server would stop responding.
GetQueuedCompletionStatus can fail with ERROR_NETNAME_DELETED when a client closes
its end of a connection and we try to reuse the accept socket. Really bizzare... I would
have thought the AcceptEx using the recycled socket would have failed instead...
Jeff Trawick [Sun, 20 Aug 2000 03:44:20 +0000 (03:44 +0000)]
Use context data, initialized prior to insertion of the filter, to indicate
which translation handle to use. This will allow the same filter to work
for input and output.
Tony Finch [Sat, 19 Aug 2000 06:04:57 +0000 (06:04 +0000)]
Add generic support for reference-counting the resources used by
buckets, and alter the HEAP and MMAP buckets to use it. Change
the way buckets are initialised to support changing the type of
buckets in place, and use it when setting aside TRANSIENT buckets.
Change the implementation of TRANSIENT buckets so that it can be
mostly shared with IMMORTAL buckets, which are now implemented.
Jeff Trawick [Fri, 18 Aug 2000 15:33:08 +0000 (15:33 +0000)]
Tweak apache/apr builds to support dsos on OS/390.
The OS/390 compile options are hard-coded because we need the
special DLL,EXPORTALL on *all* object files that are part of the
core so that dsos can reference symbols in the core. (Of course,
we use the option on more object files than that, but it doesn't
seem to hurt anything.)
We hard-code the enablement of DSOs on OS/390 because the
library functions on OS/390 to manage explicit loading are not
portable, so there seems to be no use in probing for them.
Ryan Bloom [Fri, 18 Aug 2000 04:50:22 +0000 (04:50 +0000)]
proxy_cache.c was still in the ApacheModuleProxy project, although that
modules is deprecated. Remove it from the project.
Submitted by: Bill Rowe <wrowe@apache.org>
Ryan Bloom [Fri, 18 Aug 2000 04:46:07 +0000 (04:46 +0000)]
Fix chunking. Two bugs fixed.
1) don't put the trailing 0\r\n\r\n in lenstr; that buffer is
already in use (pointed to by another transient bucket); using
lenstr again overlays that other chunk header
2) insert the bucket with the trailing "0\r\n\r\n" *before* the eos bucket
Submitted by: Jeff Trawick <trawickj@bellsouth.net>
Ryan Bloom [Thu, 17 Aug 2000 14:54:28 +0000 (14:54 +0000)]
Mod_echo was using raw args instead of a flag to enable and disable
itself. I believe this is what was causing the module to not be able to
be enabled and disabled on a per-server basis. This patch makes it use
a flag
Ryan Bloom [Thu, 17 Aug 2000 00:54:03 +0000 (00:54 +0000)]
A first pass at the chunking filter. This is incredibly simple. As
bucket brigades are sent to this filter, it inserts the chunking header
at the front of the brigade. When the filter sees an EOS bucket, it
adds the 0 chunking trailer.
Ryan Bloom [Thu, 17 Aug 2000 00:50:34 +0000 (00:50 +0000)]
Make ap_add_filter use a LIFO stack instead of a FIFO queue to add filters
to the filter stack. This makes the chunking filter work. Without this,
the core_filter is installed in the insert_filters hook, when we get
to the ap_send_http_headers function, we insert the chunking filter, but
it has been installed after the core_filter. This means the chunk_filter
is never called.
This reverses this. The core_filter is installed in the insert_filters
hook, and we put the chunk_filter in during ap_send_http_headers. This
time, the chunking filter is installed before the core_filter, and it
gets called correctly.
Greg Stein [Wed, 16 Aug 2000 19:28:27 +0000 (19:28 +0000)]
Ryan's recent, suggested patch in this area pointed out that we were
missing the needed comparison on the request. this allows subrequests to
insert filters properly (by stopping the scan before transitioning to
the parent request's filters)
Bill Stoddard [Tue, 15 Aug 2000 12:47:46 +0000 (12:47 +0000)]
Remove the sendfile_handler (was #if 0'ed out) that does the buffer hi-jack
trick in order to send the headers out on the sendfile call. Besides, BUFF is
going away with brigades and filters...
Ken Coar [Mon, 14 Aug 2000 21:33:27 +0000 (21:33 +0000)]
Make compilable on Windows again. I'm not sure the x = { [1] = 1 }
syntax is even ANSI C, but it originally compiled for me. Oh, well.
I'd rather have this statically built at compile time, but I don't
want to add the dependencies on the method order and its being
a contiguous sequence.
Jeff Trawick [Mon, 14 Aug 2000 17:50:02 +0000 (17:50 +0000)]
When ap_register_filter() registers a cleanup function, specify
apr_null_cleanup() instead of NULL to indicate that no child
cleanup is desired. (With NULL, we branch to zero.)
Ryan Bloom [Mon, 14 Aug 2000 04:32:00 +0000 (04:32 +0000)]
Fix a minor bug in the default template file. The template used to not
escape the spaces in file names. It does now. This also adds the default
template for Apache to use.
Ryan Bloom [Sat, 12 Aug 2000 23:59:13 +0000 (23:59 +0000)]
Add an error condition to the filter code. Basically, if somehow we get
to the very bottom of the filter stack and nobody has written anything to
the network, then we need to return an error.
Ryan Bloom [Sat, 12 Aug 2000 18:45:35 +0000 (18:45 +0000)]
Initial Filtering code. This uses a bucket brigade scheme to allow modules
to add and modify data while processing a request. The docs still need
to be updated, and a simple html page needs to be created explaining all
of this.
The only filter currently in the code is the core filter. This filter
takes a bucket brigade and writes it to the network through the buff
structure. In time, the buff will go away completely.
More filters will need to be written.
Submitted by: The Apache Community
Reviewed by: The Apache Community
Ken Coar [Sat, 12 Aug 2000 00:00:08 +0000 (00:00 +0000)]
Allow <Limit*> to accept arbitrary extension method named instead
of varfing. Nothing takes advantage of this yet; that's coming
next. Also replace the shorthand Allow setup to use the new
API (this is possibly a problematical change for the core default
handler; no problem to back that out).
Ken Coar [Fri, 11 Aug 2000 23:50:15 +0000 (23:50 +0000)]
Note the connexion between the method number list and the
ap_method_name_of() routine. (This should have been included
as part of that commit but wasn't, alas.)
Ken Coar [Fri, 11 Aug 2000 23:41:53 +0000 (23:41 +0000)]
Preset the cmd_parms->limited field to the magic 'no limit active'
value, and add some prototype API routines for expanding support
for arbitrary extension HTTP methods.
Jeff Trawick [Fri, 11 Aug 2000 16:31:40 +0000 (16:31 +0000)]
Get rid of an ancient comment (which was updated for the CHARSET_EBCDIC
->APACHE_XLATE change. Once I figured out what "32/9" meant (doh!)
it was pretty clear that the comment is no longer applicable.
Jeff Trawick [Thu, 10 Aug 2000 12:52:37 +0000 (12:52 +0000)]
Tweak apr_getopt() and its use in ab to avoid compiler warnings.
(Note: apr_initopt() and/or its callers still need tweaking.)
Submitted by: Bill Rowe
Reviewed by: Jeff Trawick
Ken Coar [Thu, 10 Aug 2000 11:22:57 +0000 (11:22 +0000)]
Add support for arbitrary extension methods for the Allow
response header field, and an API routine for modifying the
allowed list in a unified manner for both known and extension
methods.
Jeff Trawick [Wed, 9 Aug 2000 20:47:06 +0000 (20:47 +0000)]
mod_cern_meta: fix broken file reading loop in scan_meta_file().
We checked the retcode from apr_fgets() improperly.
Submitted by: Rob Simonson <simo@us.ibm.com>
Reviewed by: Jeff Trawick
Fix ApacheBench for the apr_initopt/apr_getopt change. This illustrates
abusing the apr_getopt_t for direct access at the working structure, just
as we did with the global vars. By my global search, there should be no
more apr_opt*** symbols out there.