Parent Directory
|
Revision Log
| Links to HEAD: | (view) (annotate) |
| Sticky Revision: |
Disabled DefaultType directive and removed ap_default_type() from core. We now exclude Content-Type from responses for which a media type has not been configured via mime.types, AddType, ForceType, or some other mechanism. MMN major bump to NZ time. PR: 13986
Move the KeptBodySize directive, kept_body filters and the ap_parse_request_body function out of the http module and into a new module called mod_request, reducing the size of the core.
Add a function to the http filters that is able to parse an HTML form request with the type of application/x-www-form-urlencoded.
Remove CORE_PRIVATE. This define serves no modern purpose, since every module in the wild, including our own define it, for no purpose. If you have functions which you do not want in the 'public' API, put them in a private header, that is not installed, just like mod_ssl does.
In hopes of replacing <Limit > with <Method > - choose another example to point to for documenting these functions.
Add option not to send&clear response headers in ap_send_interim_response. We'll need this option to fix PR#43711, and ap_send_interim_response is fortunately too new an API to have made it into anything stable.
Introduce ap_send_interim_response function and API, for interim (HTTP 1xx) responses sent by an application or backend.
update license header text
Update the copyright year in all .c, .h and .xml files
Doxygen fixup / cleanup submited by: Neale Ranns neale ranns.org reviewed by: Ian Holsman
Remove ap_method_list_do and ap_method_list_vdo as previously mentioned dev@httpd.
Update copyright year to 2005 and standardize on current copyright owner line.
FINALLY Correct ap_http_method()! It is NOT a method, it's a SCHEME! Bumped mmn, and ap module cookie, for this function rename. It's not a deprecation, as ap_http_method would be a lovely function name sometime in the future: to determine what the function name implies.
general property cleanup
veto and revert win64 patch: 64bit changes must percolate from the bottom (APR/system) up -- we can't give the client a 64bit API and then cast it to 32bits internally without introducing security holes on other platforms.
WIN64: API changes to clean up Windows 64bit compile warnings
fix the invalid return value entry for ap_meets_conditions PR: Obtained from: Submitted by: Reviewed by:
declare the prototypes as well. PR: 28523 again
fix name of The Apache Software Foundation
fix copyright dates according to the first check in
apply Apache License, Version 2.0
fix out-of-date comment Submitted by: Aryeh Katz Reviewed by: Jeff Trawick
update license to 2004.
*) Add a hook (insert_error_filter) to allow filters to re-insert
themselves during processing of error responses. Enable mod_expires
to use the new hook to include Expires headers in valid error
responses. This addresses an RFC violation. It fixes PRs 19794,
24884, and 25123. [Paul J. Reder]
finished that boring job: update license to 2003. Happy New Year! ;-))
Fix comments
Re-use the same temp brigade to read all lines of a request header, to avoid the overhead of brigade creation and deletion. (This produced a 5% reduction in the total CPU usage of a minimalist httpd configuration: <JHEPKCEMGPKFFDHHDDKDMELFEKAA.bill@wstoddard.com>)
fix some major badness: error buckets *cannot* use simple_copy because they're not simple buckets. they have a private data structure which gets freed. if you're going to copy them and share whatever ->data points to (which is what simple_copy does), you have to refcount the structure, which is the whole point of apr_bucket_refcount and apr_bucket_shared_copy.
Add macro to check for an error bucket. (Can't call it APR_BUCKET_IS_ERROR since error bucket is private to httpd - hence the AP_ prefix.)
Moved ap_setup_make_content_type() declaration to http_protocol.h
fix a spelling error in a comment Submitted by: Stas Bekman Reviewed by: Jeff Trawick
fix a typo in a comment for ap_get_client_block() Submitted by: Stas Bekman Reviewed by: Jeff Trawick
Adds support for reading trailers on input by exporting get_mime_headers to ap_get_mime_headers and calling it in the appropriate place in ap_http_filter. showstoppers--;
BUCKET FREELISTS Add an allocator-passing mechanism throughout the bucket brigades API. From Apache's standpoint, the apr_bucket_alloc_t* used throughout a given connection is stored in the conn_rec by the create_connection hook. That means it's the MPM's job to optimize recycling of apr_bucket_alloc_t's -- the MPM must ensure that no two threads can ever use the same one at the same time, for instance.
Commit 2 of 2 to: 1. rename ap_rset_content_type to ap_set_content_type 2. reverse the arguments to aligh with ap_set_content_length
ap_rset_content_type() should take const char * instead of char * this is friendlier to callers and r->content_type is const char * too so it isn't harmful this fixes a fatal compile error with AIX+xlc
Final commit to add ap_rset_content_type accessor. Add AddOutputFiltersbyType filters during call to ap_rset_content_type()
The underlying change here was to add the new WebDAV/DeltaV methods now that it has an RFC. At the same time, I revamped a good chunk of the name <-> number mapping code in http_protocol.c * add M_FOO constants for the new RFC 3253 (DeltaV) methods. label where each of the builtin methods comes from. * moved METHOD_NUMBER_FIRST/LAST from http_protocol.h into http_protocol.c since they weren't used anywhere else and they weren't namespace-protected. * create register_one_method() and use it to insert all builtin methods (at _init() time) and extended methods into the registry. * add a lookup_builtin_method() to quickly map a method name to a builtin method number. * rebuild ap_method_number_of() to use the new lookup function. * revamp ap_method_name_of() to use the registry to locate the name for any method number. add a pool argument (no callers in the core code needed to be updated) * revamp make_allow() to deal with the new method numbers and all extended methods. * in mod_dav, use the new method numbers rather than registering the DeltaV methods.
Update our copyright for this year.
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
Rewrite ap_rgetline to remove the need to have an "internal" brigade stored in the core_module structure by using the AP_MODE_SPECULATIVE filter mode to determine if MIME-continuation should occur. Notes: - ap_rgetline has a new prototype. - ap_rgetline returns APR_ENOSPC when we are out of buffer space. All direct callers of ap_rgetline are now adjusted to handle this new API. ap_getline will mimic the old API for now. Reviewed by: Ryan Morgan
Added a version of ap_getline() that allocs a buffer from the request's pool, rather than copying into a caller-supplied buffer. (This lets us eliminate one copy operation on the request headers.)
ap_getline() is useful to modules outside of the core.. change declaration from AP_CORE_DECLARE to AP_DECLARE so it can be used used outside the core PR: Obtained from: Submitted by: Reviewed by:
Remove SMS from the error bucket. SMS is going away now, it isn't really used anyplace anymore. Submitted by: "Sander Striker" <striker@apache.org>
A very small optimization to the OLD_WRITE logic. This just makes us store a pointer to the OLD_WRITE frec, and instead of using strcmp or strcasecmp, we can just do a simple pointer comparison. This optimization is also available to other modules.
BUCKETS SMS PHASE 1 Update to match apr-util
Fix the new method code. We need to cast 1 to an apr_int64_t or it will be treated as a 32-bit integer, and it will wrap after being shifted 32 times. Submitted by: Cody Sherr <csherr@covalent.net> and Ryan Morgan <rmorgan@covalent.net>
Add the ability to extend the methods that Apache understands and have those methods <limit>able in the httpd.conf. It uses the same bit mask/shifted offset as the original HTTP methods such as M_GET or M_POST, but expands the total bits from an int to an ap_int64_t to handle more bits for new request methods than an int provides. Submitted by: Cody Sherr <csherr@covalent.net>
Doc formatting fixes
Change the length of the content args to apr_off_t identifiers, and fix mod_negotation to treat a size of -1 and indeterminate, instead of 0.
Update to reflect the absence of the apr_bucket_shared struct and the newly-added start field of the apr_bucket struct
Begin to move functions from the http module to the core. The goal is to have only functions that are HTTP specific in the http directory.
shift some declarations over to mod_core.h where they're totally private.
*) Introduce "ap_conf_vector_t" type to assist with legibility and provide some type safety. (unfortunately, our old "void*" is type-safe with the new one, but over time we should be better) *) Propagate the new type to all appropriate functions. *) Random cleaning, whitespace, stylistic nits.
Update copyright to 2001
rename: ap_bucket_create_error -> ap_bucket_error_create ap_bucket_make_error -> ap_bucket_error_make PR: Obtained from: Submitted by: Reviewed by:
Make the header filter use the brigade buffering functions for creating the header string. This allows us to clean up the header handling a bit, because we don't need to compute the correct length before we can create the headers.
s/l/r/ in ap_send_http_header protototype
fix minor prototype inconsistencies noticed with C::Scan
Forgot this header file when I cleaned the error_bucket code.
Was there a file that wasn't updated with the error buckets patch? Here's the export symbol for http_protocol's error bucket type, but I can't find the actual instance (which needs AP_DECLARE_DATA as well.)
filters can now report an HTTP error to the server. This is done by sending a brigade where the first bucket is an error_bucket. This bucket is a simple bucket that stores an HTTP error and a string. Currently the string is not used, but it may be needed to output an error log. The http_header_filter will find this bucket, and output the error text, and then return AP_FILTER_ERROR, which informs the server that the error web page has already been sent.
Begin mod_core.h for CORE-private information. Ideally, AP_CORE_DECLARE function decl's and CORE_PRIVATE header info should all move into this header. Start with moving the filter function declarations.
Improve the performance of the ap_r* functions by buffering their data in
[the context of] a new filter ("OLD_WRITE").
Further information/discussion of this patch is available on new-httpd
between Jan 16 and Jan 23, 2001.
We only want to define ap_send_mmap if APR_HAS_MMAP is true. Without this, we don't build successfully.
The big change. This is part 3 of the apr-util symbols rename, please see the first commit of srclib/apr-util/include (cvs apr-util/include) for the quick glance at symbols changed.
This removes all BUFF's from the HTTP proxy. This code is relatively ugly, but it does proxy pages. This even fixes the content-type bug that I introduced yesterday sometime. As soon as BUFF is removed from the FTP proxy, the buff.c and buff.h files need to go away.
Start of moving to apr_port_t in the server code. This will probably the first of a few...
The byte-ranges filter. This looks like it should work, but the Acrobat plug-in doesn't like it for some reason. This does work better than what we currently have, because at least it returns all of the requested data. This basically removes all BUFFs from the byte-range code and removes all of the byte-range code from the default-handler. Byte-ranges are now handled by a filter, which makes sense, and it allows us to handle byte-ranges for all requests, not just files.
Use apr_off_t for the content length, rather than long. Propagate through the byterange handling and ap_set_content_length(). [ ap_each_byterange() remains as an apr_size_t* so we don't mess up callers ]
Remove REQUEST_CHUNKED_PASS and change ap_discard_request_body() to use REQUEST_CHUNKED_DECHUNK. Because of this change, the need for handle_request_body() is gone, so we remove that as well.
Clean up the http filter a lot. Instead of sending a bucket per header, we now create a single bucket that has all of the headers and send that. One known issue is that this limits the headers to 8k, but it is a minor patch to fix that. This also stops us from exporting ap_send_header_field. This function no longer makes sense to export.
Compute the content length (and add appropriate header field) for the response when no content length is available and we can't use chunked encoding. This is going to be painful when the response body is huge, so I suspect we'll have additional criteria in the future.
namespace-protect dechunk_filter and http_filter
Fix the return type of ap_http_header_filter().
Fix Win32 compile break introduced by the http_header filter code.
Hack headers to work semi-properly. This is a hack that will need to be fixed, but it is good enough for now. The idea is that headers shouldn't flow through the BUFF anymore. Now, we have a header filter that is called at the end of the request-filter chain. This filter writes the headers directly to the connection filters.
Input filters and ap_get_brigade() now have a input mode parameter (blocking, non-blocking, peek) instead of a length parameter.
input filtering changes:
get dechunking working
verify that infrastructure for input filters works
(use existing AddInputFilter directive)
Unlike with my previous patch, ap_get_client_block() saves state between
calls in the core's per-request dir config.
Unlike with my previous patch, HTTP_IN keeps a count of remaining bytes
in the conn_rec. Code that needs to prod it to deliver a certain amount
of request body plays with conn_rec->remain directly.
Renamed all MODULE_EXPORT symbols to AP_MODULE_DECLARE and all symbols for CORE_EXPORT to AP_CORE_DECLARE (namespace protecting the wrapper) and retitled API_EXPORT as AP_DECLARE and APR_EXPORT as APR_DECLARE. All _VAR_ flavors changes to _DATA to be absolutely clear. Thank you Greg, for the most obvious suggestion.
Implement a length argument on input filters. There are three possible values for the length, -1, 0, and a positive number. -1 means that the next filter should return all the data it has, the current filter will take care to ensure that the protocol is followed. Most filters will never use this, because it implies they are implementing a conn_based input filter. 0 means give me exactly one line of data. A positive number means give me a maximum of n bytes.
Remove ap_send_fb and ap_send_fb_length. These functions don't make much sense anymore, because the BUFFs that Apache used to use it for have all been replaced with buckets. BUFFs can't be used with filters, and Apache doesn't use these functions anywhere anymore, so they need to go away now.
Add the first draft of the http_filter. In time this filter will split the bucket brigade between the headers and the body. Right now it just converts \r\n to \n\0.
Fix the calling convention on Windows for ap_bucket_printf() and ap_method_list_do().
Start introducing the extension-method elements so we're not bound to hard-coded names and a bitmask. We still use the bitmask for known methods, but we also have an array for extension method named. Wherever we used the M_* constants we need to use a routine that knows about the new structure instead. This is far from complete, but AFAIK this interim work doesn't break anything -- especially the compile. The rest of the work will be added in segments; this is just a checkpoint.
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
More prototypical API support for arbitrary extension HTTP methods.
Update http_protocol.h to use ScanDoc.
prefix libapr functions and types with apr_
Fix a warning associated with the ap_send_fd change from earlier today. This just changes a couple of long's to ap_size_t.
Reimplement ap_send_fd. Eliminate ap_send_fd_length. If APR_HAS_SENDFILE is defined but ap_sendfile fails with APR_ENOTIMPL, the BUFF implementation of ap_send_fd will get a shot at serving the request. This fix is required to get Apache working on 95/98 again and can also be useful on Unix systems where sendfile is available via a servicepack/fixpack/PTF on a particular level of the OS (e.g., AIX 4.3.2 base does not include sendfile but is is available with a PTF). This fix also reimplements the mod_file_cache sendfile_handler using ap_send_fd and sets the connection aborted flag if the sendfile fails. Future modification... Add code to ap_send_fd to hijack any data in the client BUFF structure and send it along with the sendfile.
add ap_get_status_line() so that modules can get a standardized
Status-Line value for their response.
Submitted by: Joe Orton <joe@orton.demon.co.uk>
Reviewed by: Greg Stein
blast the old names for the status codes
PR: Obtained from: Submitted by: Reviewed by: Reverse out additional linkage argument from DECLARE_HOOK and IMPLEMENT_HOOK macros.
This patch corrects the issues from the AP_EXPORT and linkage
specification arguments to the ap_hooks.h declarations. As with
the APR_ and AP_ patches, API_VAR_EXPORT becomes API_EXPORT_VAR,
and MODULE_VAR_EXPORT becomes MODULE_EXPORT_VAR.
I will be happy to revert the inclusion of ap_config.h from
httpd.h if this bothers anyone. More individual modules need
to be patched if we do so.
The API_EXPORTs all moved into central storage in the ap_config.h
header. Without WIN32 or API_STATIC compile time declarations,
these macros remain no-ops.
This patch also moves the following data from http_main to http_config:
const char *ap_server_argv0;
const char *ap_server_root;
ap_array_header_t *ap_server_pre_read_config;
ap_array_header_t *ap_server_post_read_config;
ap_array_header_t *ap_server_config_defines;
And the following variables had already moved into ap_hooks.c:
ap_pool_t *g_pHookPool; (initialized now in http_config)
int g_bDebugHooks; (out of http_config)
const char *g_szCurrentHookName; (out of http_config)
The changes to http_main.c are in preparation for that module to
move out to a seperate .exe for win32. Other platforms will be
unaffected, outside of these changes.
add AP_ prefix to *HOOK* macros
Update to Apache Software License version 1.1
Fix all the License issues. Including: s/Apache Group/Apache Software Foundation/ s/1999/2000/ s/Sascha's license/ASF license
time overhaul: - ap_time_t is a 64-bit scalar, microseconds since epoch - ap_exploded_time_t corresponds to struct tm with a few extras probably broken on anything except linux.
First step in getting Apache to use APR's time libraries. This gets a good number of them, but I think there are more time values still in the Apache code. This works under Linux, but has not been tested anywhere else.
Next stage of ap_mmap support. Tested on FreeBSD and BeOS.
Export ap_send_error_response
Update ap_send_fd() and ap_send_fd_length() to use an ap_file_t. Hummm... Still need to get sendfile() in. First, lets get the serving basically working again :-)
Fix warnings.
Remove all of the calls to functions like "ap_popenf". These functions were moved down to APR, but they are being removed. They are not portable, and were only moved down for backwards compatability. With this change, they can be safely removed, which is the next commit on it's way. Submitted by: Ryan Bloom and Paul Reder
Start to implement module-defined hooks that are a) fast and b) typesafe. Replace pre_connection module call with a register_hook call and implement pre_connection as a hook. The intent is that these hooks will be extended to allow Apache to be multi-protocol, and also to allow the calling order to be specified on a per-hook/per-module basis. [Ben Laurie] Port a bunch of modules to the new module structure. ["Michael H. Voase" <mvoase@midcoast.com.au>] Submitted by: Ben Laurie
Replace file descriptor with APRFile [Dean]
Apache 1.3.9 baseline for the Apache 2.0 repository. Obtained from: Apache 1.3.9 (minus unused files), tag APACHE_1_3_9 Submitted by: Apache Group
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
| apache@apache.org | ViewVC Help |
| Powered by ViewVC 1.1.2 |