Parent Directory
|
Revision Log
| Links to HEAD: | (view) (annotate) |
| Sticky Revision: |
Replace AcceptMutex, LockFile, RewriteLock, SSLMutex, SSLStaplingMutex, and WatchdogMutexPath with a single Mutex directive. Add APIs to simplify setup and user customization of APR proc and global mutexes. (See util_mutex.h.) Build-time setting DEFAULT_LOCKFILE is no longer respected; set DEFAULT_REL_RUNTIMEDIR instead. Some existing modules, such as mod_ldap and mod_auth_digest gain configurability for their mutexes.
actually modify the MMN for the dav_error change, as expected with r882274
Remove errno from dav_error interface. Calls to dav_new_error() and dav_new_error_tag() must be adjusted to add an apr_status_t parameter. Reviewed by: jorton
Stop trying to set the referral HOP limit on each connection since most SDKs don't seem to do anything with it, and causes an error on released openldap levels. Also moves/remove some macros internal to mod_ldap out of the public header for a major bump. Reported against APR in PR47501, but httpd shouldn't be asking for the option by default.
add LDAPLibraryDebug directive to mod_ldap to turn on tracing in underlying LDAP SDK, where all the interesting tidbits about all kinds of LDAP errors are hidden. Unfortunately windows doesn't implement this LDAP_OPT.
Fix a lot of doxygen warnings. Thanks to Brad Hards for the patch. I added a few more fixes, and there are still more that might need a doxygen expert. PR: 48061 Submitted by: Brad Hards Reviewed by: poirier
Allow ProxyPreserveHost to work in <Proxy> sections PR: 34901
mod_logio: introduce new optional function ap_logio_get_last_bytes to get total byte count of last request. core: Use ap_logio_get_last_bytes to report more accurate byte counts in mod_status if mod_logio is loaded. Without mod_logio, don't increment counts for HEAD requests. PR: 25656
Enhance ap_hook_monitor to pass along a server_rec (in general the ap_server_conf) and tuck away some storage in there which may be useful as an opaque data pointer.
mod_dav: Allow other modules to add things to the DAV or Allow headers of an OPTIONS request. Submitted by: Brian France <brian brianfrance.com>
* Lower memory usage by reusing the brigade instead of constantly recerating one. Submitted by: Stefan Fritsch <sf sfritsch.de> Reviewed by: rpluem
fixed typo.
Fixed comment. Submitted by Arfrever Frehtes Taifersar Arahesis.
Fix docs and bump mmn minor
document the key API considerations related to the changes for loadable MPMs, and give unbundled modules an MMN to check for
rename the new retained-data APIs to ap_retained_data_create()/ap_retained_data_get(), for better consistency with existing APIs (e.g., slotmem) don't bother changing the MMN, which doesn't reflect recent -dev changes anyway
Provide ap_set_retained_data()/ap_get_retained_data() for preservation of module state across unload/load. The existing idiom used by modules to associate userdata with pglobal doesn't work in the earliest phases of module execution. (This does expose pglobal as an implementation detail, but it would be great to unexpose it if at all possible (but modules already have access to pglobal at almost all stages of execution anyway).)
Add conn_rec::current_thread.
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
Reflect the unixd_setup_child() rename (r739151) in the MMN (mod_backdoor needs to check that).
Add support for escaping all non-ascii chars to ap_escape_html, and use it to fix PR#25202: encoding="entity" doesn't work as advertised in mod_include. For backport, this'll need an ABI-preserving version that'll be a minor MMN bump. But if we do that in /trunk/, it'll never change.
Remove unused sb_type member from process_score structure and do major MMN bump. The sb_type field was added in r89115 but not removed in r89554 along with related unused additions. Submitted by: Torsten Foertsch <torsten.foertsch@gmx.net>
bump minor for new apis
API Cleanup in preperation for 2.4.x, make sure all exported functions or variables contain an ap_ prefix.
Prevent AP_FILTER_ERROR from being misinterpreted as SUSPENDED when checking the status code returned by a handler by updating the values of the filter error macros and consolidating them in httpd.h
* Rip out the old flushing approach for solving lifetime issues between the backend connection bucket allocator and front end connection bucket allocator. Instead copy the buckets from the backend over to ones that have been created using the front end bucket allocator. For metabucket this is done by recreating them, for data buckets this is done by reading them and putting the read data in a transient bucket. PR: 45792
Fix handling of authz configurations, make default authz logic replicate 2.2.x authz logic and support existing configurations (including .htaccess files), and replace <Satisfy*>, Reject, and AuthzMergeRules directives with Match, <Match*>, and AuthzMerge directives.
major not minor bump for r709708
remove unused AUTHZ_GROUP_NOTE define
whitespace cleanup
* Move ap_timeout_parameter_parse from mod_proxy.c to server/util.c and thus make it part of the public API.
Minor bump when exporting mod_rewrite.h
Introduce Suspendable Requests to the Event MPM.
Using this basic framework, you can return SUSPENDED from an HTTP Handler,
and then register a callback that is invoked by the MPM at a later time.
This initial version only supports _timers_ as callbacks, but in the future I
would like to add things like wait for socket activity, on a socket specified by
the handler.
Once in a callback, It is then the responsibility of the callback fucntion
to finish the HTTP Request handling, but this alows you to do cool things like
a fully async proxy, COMET support, or even rate limiting.
To prove I'm not insane, I've inlcuded an example module, mod_dialup.
You can configure it like this:
<Location "/docs">
ModemStandard "V.32"
</Location>
And for static files inside that path, you will be rate limited to V.32 speeds,
aka 9.6 kilobits/second.
Does anyone besides Rüdiger read commit emails :-) ?
I know there are likely huge problems with this, but I would like to see how far
we can push the Event MPM, figure out what to do better, if there is anything,
and then really dive into the 3.0 development before ApacheCon.
* server/mpm/experimental/event/fdqueue.h:
(timer_event_t): New structure to hold timer events and callback functions.
* server/mpm/experimental/event/fdqueue.c
(ap_queue_empty): Modify to also look at Timer Ring.
(ap_queue_init): Initialize Timer Ring.
(ap_queue_push_timer): New function, pushes a timer event into the queue.
(ap_queue_pop_something): Renamed function, returns a timer event or
a socket/pool for a worker thread to run.
* server/mpm/experimental/event/event.c
(process_socket): If the connection is in SUSPENDED state, don't force it
into linger mode yet, the callback will have to take care of that.
(push_timer2worker): New shortcut function, pushes timer event into queue
for a worker to run.
(timer_free_ring): New global data structure to recycle memory used by
timer events.
(timer_ring): New global data structure to hold active timer events.
(g_timer_ring_mtx): Thread mutex to protect timer event data structures.
(ap_mpm_register_timed_callback): New Function, registers a callback to be
invoked by the MPM at a later time.
(listener_thread): Calculate our wakeup time based on the upcoming Event
Queue, and after pollset_poll runs, push any Timers that have passed
onto worker threads to run.
(worker_thread): Call new queue pop method, and if the Timer Event is
non-null, invoke the callback. Once the callback is done, push the
structure onto the timer_free_ring, to be recycled.
(child_main): Initialize new mutex and ring structures.
* server/config.c
(ap_invoke_handler): Allow SUSPENDED aa valid return code from handlers.
* modules/http/http_core.c
(ap_process_http_async_connection): Don't close the connection when in
SUSPENDED state.
* modules/http/http_request.c
(ap_process_request_after_handler): New function, body pulled from the old,
ap_process_async_request. Split to let handlers invoke this so they
don't need to know all of the details of finishing a request.
(ap_process_async_request): If the handler returns SUSPENDED, don't do
anything but return.
* include/ap_mmn.h: Bump MMN.
* include/ap_mpm.h
(ap_mpm_register_timed_callback): New function.
* include/httpd.h:
(SUSPENDED): New return code for handlers.
(request_rec::invoke_mtx): New mutex to protect callback invokcations
from being run before the original handler finishes running.
(conn_state_e): Add a suspended state.
* include/http_request.h
(ap_process_request_after_handler): New function to make it easier for
handlers to finish the HTTP Request.
* modules/test/config.m4: Add mod_dialup to build.
* modules/test/mod_dialup.c: New rate limiting module, requires the Event MPM
to work.
mod_session_cookie, mod_session_dbd: Make sure cookies are set both within the output headers and error output headers, so that the session is maintained across redirects.
The cookie attributes to fix cookie removal required an MMN bump
Allow determination of whether to use ';' as a sticky session path delim/sep (ala mod_jk) to be runtime (and balancer-wise) configurable.
* Add the possibility to set a separate connection timeout for backend workers. PR: 45445 Submitted by: rahul <rahul sun.com> Reviewed by: rpluem
revert r672639 which lacked a necessary major bump, add a major MMN bump to account for the short-lived API addition/removal.
fix comment associated with MMN change
mod_auth_digest: Detect during startup when AuthDigestProvider is configured to use an incompatible provider via AuthnProviderAlias. PR 45196
Switch ftp_directory_charset and interpolate_env in proxy_dir_conf, with a major MMN bump. As suggested by rpluem in r661069 to enable backport *without* a major bump (ABI breakage) in 2.2.x.
Currently each of the caching module includes logic to implement the hop-by-hop rules of rfc 2616 along with the entity response rules. To make sure that they stay in sync; and to make it easier to add (http) caching modules - this change moves them all into one place (cache_util) and exposes a in-bound and out-bound version to operate on the headers. In short: we retire ap_cache_cacheable_hdrs_out() which was used for both in- and out-put headers; and replace it by a single ap_cache_cacheable_headers() which understands the hop-by-hop rules. And then wrap this into an in- and out-put specific ap_cache_cacheable_headers_in()/out() which we can teach things about entity responses and so on.. The latter which will also merge error and ensure content-type. This API change bumps up the minor MM by one.
Add major bump for removing ap_graceful_stop_signalled
Rename the ap_escape_path_segment_b function as suggested by Ruediger Pluem, and make a corresponding minor bump.
Attempt to correct major bump from previous commit (r644253). Add minor bump for r644525. Hope this looks OK.
HTTPD Core: Implement <If> sections for conditional (runtime) configuration. N.B. This is a first pass, and has a way to go!
Flesh out ap_expr with: * Re-usable parse trees * Canonical string parser function (candidate)
Introduce ap_expr expression parser API
mmn bump for chroot (r611483)
Minor bump for r611199, third time's a charm (change history modified in previous commit)
minor MMN bump for r611199
Introduce the ProxyFtpDirCharset directive, allowing the administrator to identify a default, or specific servers or paths which list their contents in other-than ISO-8859-1 charset (e.g. utf-8). Submitted by: Ruediger Pluem
* Fix a SEGFAULT by ensuring that buckets that may have been buffered in the network filters get flushed to the network. This is needed since these buckets have been created with the bucket allocator of the backend connection. This allocator either gets destroyed if conn->close is set or the worker address is not reusable which causes the connection to the backend to be closed or it will be used again by another frontend connection that wants to recycle the backend connection. In this case we could run into nasty race conditions (e.g. if the next user of the backend connection destroys the allocator before we sent the buckets to the network). Remark 1: Doing a setaside does not help here as the buckets remain created by the wrong allocator in this case. Remark 2: Yes, this creates a possible performance penalty in the case of pipelined requests as we may send only a small amount of data over the wire.
* Use a separate subpool to manage the data for the socket and the connection member of the proxy_conn_rec struct as we destroy this data more frequently than other data in the proxy_conn_rec struct like hostname and addr (at least in the case where we have keepalive connections that timed out and were closed by the backend). This fixes a memory leak with short lived and broken connections. PR: 44026
* Enable the proxy to keep connections persistent in the HTTPS case. Basicly the persistence is created by keeping the conn_rec structure created for our backend connection (whether http or https) in the connection pool. This required to adjust scoreboard.c in a way that its functions can properly deal with a NULL scoreboard handle by ignoring the call or returning an error code.
Further to r599711; document new API guarantee for handling non-NULL request_rec pointer when adding connection filters; minor MMN bump: * server/util_filter.c (add_any_filter_handle): Set f->r for connection filters even if passed-in r is non-NULL. Style nit fix also. * include/util_filter.h (ap_add_output_filter, ap_add_output_filter_handle): Document new API guarantee. * include/ap_mmn.h: Minor MMN bump.
Perform all per-LDAP-backend related memory allocations in a standalone pool, provide a local method to completely remove an LDAP backend connection so we can someday manage/dispose of extra connections in a reasonable way. Clarify some commentary around the existing murky close/cleanup API methods. Minor bump for new members appended to util_ldap_connection_t, which is not allocated by consumers of the API.
core: Add the option to keep aside a request body up to a certain size that would otherwise be discarded, to be consumed by filters such as mod_include. When enabled for a directory, POST requests to shtml files can be passed through to embedded scripts as POST requests, rather being downgraded to GET requests.
* Add a minor bump as a result of r590122 and r591760: ap_time_process_request() is now part of the public scoreboard API.
Add in SeeRequestTail directive, to handle the shortcoming of only storing 63 bytes of the request, when the requests are longer than that and only vary towards the end; eg: GET /disk1/storage/apache/htdocs/images/image-store1/food/fruits/seeded/apples.jpg GET /disk1/storage/apache/htdocs/images/image-store1/food/fruits/seeded/pears.jpg GET /disk1/storage/apache/htdocs/images/image-store1/food/fruits/seeded/plums.jpg
r588791 needed an MMN bump
MMN major bump required; this API is altogether inconsistent, transparent types should be opaque, opaque types should be transparent. Solve one aspect, follow the _by_indexes() example for ap_get_scoreboard_worker family of functions, and the primary one will now accept the abstracted conn_rec value of sbh to find that connections slot.
Semi-revert 583466; just remove the ap_proxy_isvalidenc() function until we canonically set the "allowed" list.
Abstract out "verification of valid encoding" via ap_proxy_isvalidenc(). Now we can use it in other proxy protocols.
mmn bump for r582630
year--
ap_available_mutexes_string and ap_add_available_mutexes_string cannot be data symbols when mod_ssl is built as a loadable module; using an external string constant in a loadable module is not portable. Also reorganize file and sem to follow their explicit mechanisms, and ensured that the explicit mechansims are listed in order of preference. This raises a question, would [fcntl|file] be a clearer way of indiciating what the file/sem methods devolve to?
Use correct Doxygen keywords for functions and variables. TODO: figure out whether those keywords are actually necessary. HTML-ify some documentation comments for benefit of Doxygen.
Add alternative fixes for CVE-2007-3304: * configure.in: Check for getpgid. * include/mpm_common.h (ap_mpm_safe_kill): New prototype. * server/mpm_common.c (reclaim_one_pid): Ensure pid validity before calling apr_proc_wait(). (ap_mpm_safe_kill): New function. * server/mpm/prefork/prefork.c, server/mpm/worker/worker.c, server/mpm/experimental/event/event.c: Use ap_mpm_safe_kill() on pids from the scoreboard, throughout. * include/ap_mmn.h: Minor bump.
Add the missing minor bump of r550519.
Adding the clogging input filters patch was a minor MMN bump
Change common but incorrect usage of 'depreciated' for 'deprecated'
forgot minor bump
Once SSLMutex allowed for the setting of both the locking method and the lockfile location, I never liked how AcceptMutex was linked to LockFile. This seemed unnecessary. Much better to have AcceptMutex do both as well. Plus, now that we will likely see other modules require a "standard" way of setting mutexes, why not have Apache provide that as an API of sorts. Anyway, LockFile is now depreciated and AcceptMutex is now SSLMutex-like. We also provide a short function that "parses" out a mutex parameter and strips out the mechanism and lockfile location. AcceptMutex and SSLMutex is this capability.
Bump MMN for r451575.
Replace ap_get_server_version with ap_get_server_banner() and ap_get_server_description(). High-level summary: The full server version information is now included in the error log at startup as well as server status reports, irrespective of the setting of the ServerTokens directive. Third-party modules must now use ap_get_server_banner() or ap_get_server_description() in place of ap_get_server_version().
update license header text
Add optional 'scheme://' prefix to ServerName directive. For
'https', mod_http returns "https" for the ap_hook_http_scheme and
DEFAULT_HTTPS_PORT for ap_hook_default_port. This fixes Redirect
responses to requests for directories without a trailing slash
when httpd runs behind a proxy or offload device that processes
SSL. It also enables support for Subversion in that
configuration. This change is completely backwards compatible
and passes the perl-framework. Minor mmn bump because I add a
field to server_rec.
Update the copyright year in all .c, .h and .xml files
* Avoid calling ap_proxy_http_cleanup twice as this releases a connection
from the connection pool twice. This causes this connection to be present
in the connection pool twice. Thus it may be used by different threads
at the same time which causes many troubles (segfaults in this case).
Furthermore implement a logic to prevent double releases to the connection
pool if they are triggered by buggy code and log an error message in this
case.
- mod_proxy_http.c: remove double calls to ap_proxy_http_cleanup
- proxy_util.c: Add logic to prevent double releases of a
connection to the connection pool.
PR: 38793
* Actually increase MODULE_MAGIC_NUMBER_MINOR by one as r390210 only added a comment to do so.
Document the removal of the flushing bandaid to a runtime param. Since other protocols might benefit from this, remove the ajp_ prefixes, to make it more generic looking.
Revert the refactoring of the request read code
* Adjust format of bump comments. No functional change.
* Do a minor bump as minex and minex_set had been added to cache_server_conf struct.
Authz refactoring Merge from branches/authz-dev Basically here is a list of what has been done: - Convert all of the authz modules from hook based to provider based - Remove the ap_requires field from the core_dir_config structure - Remove the function ap_requires() since its functionality is no longer supported or necessary in the refactoring - Remove the calls to ap_some_auth_required() in the core request handling to allow the hooks to be called in all cases. - Add the new module mod_authz_core which will act as the authorization provider vector and contain common authz directives such as 'Require', 'Reject' and '<RequireAlias>' - Add the new module mod_authn_core which will contain common authentication directives such as 'AuthType', 'AuthName' and '<AuthnProviderAlias>' - Move the check for METHOD_MASK out of the authz providers and into the authz_core provider vector - Define the status codes that can be returned by the authz providers as AUTHZ_DENIED, AUTHZ_GRANTED and AUTHZ_GENERAL_ERROR - Remove the 'Satisfy' directive - Implement the '<RequireAll>', '<RequireOne>' block directives to handle the 'and' and 'or' logic for authorization. - Remove the 'AuthzXXXAuthoritative' directives from all of the authz providers - Implement the 'Reject' directive that will deny authorization if the argument is true - Fold the 'Reject' directive into the '<RequireAll>', '<RequireOne>' logic - Reimplement the host based authorization functionality provided by 'allow', 'deny' and 'order' as authz providers - Remove the 'allow', 'deny' and 'order' directives - Merge mod_authn_alias into mod_authn_core - Add '<RequireAlias>' functionality which is similar to '<AuthnProviderAlias>' but specific to authorization aliasing - Remove all of the references to the 'authzxxxAuthoritative' directives from the documentation - Remove the 'Satisfy' directive from the documentation - Remove 'Allow', 'Deny', 'Order' directives from the documentation - Document '<RequireAll>', '<RequireOne>', 'Reject' directives - Reimplement the APIs ap_auth_type(), ap_auth_name() as optional functions and move the actual implementation into mod_authn_core - Reimplement the API ap_some_auth_required() as an optional function and move the actual implementation into mod_authz_core Major Changes: - Added the directives <RequireAll>, <RequireOne>, <RequireAlias>, Reject - Expanded the functionality of the directive 'Require' to handle all authorization and access control - Added the new authz providers 'env', 'ip', 'host', 'all' to handle host-based access control - Removed the directives 'Allow', 'Deny', 'Order', 'Satisfy', 'AuthzXXXAuthoritative' - Removed the ap_require() API - Moved the directives 'AuthType', 'AuthName' out of mod_core and into mod_authn_core - Moved the directive 'Require' out of mod_core and into mod_authz_core - Merged mod_authn_alias into mod_authn_core - Renamed mod_authz_dbm authz providers from 'group' and 'file-group' to 'dbm-group' and 'dbm-file-group' Benefits: - All authorization and access control is now handle through two directives, 'Require' and 'Reject' - Authorization has been expanded to allow for complex 'AND/OR' control logic through the directives '<RequireAll>' and '<RequireOne>' - Configuration is now much simpler and consistent across the board - Other modules like mod_ssl and mod_proxy should be able to plug into and take advantage of the same provider based authorization mechanism by implementing their own providers Issues: - Backwards compatibility between 2.2 and 2.3 configurations will be broken in the area of authorization and access control due to the fact that the directives 'allow', 'deny', 'order' and 'satisfy' have been removed. When moving from 2.2 to 2.3 these directives will have to be changed to 'Require all granted', 'Require all denied' or some variation of the authz host-based providers. - Existing third party authorization modules will have to adapt to the new structure.
Refactoring of ap_read_request() to store partial request state in the request rec. The point of this is to allow asynchronous MPMs do do nonblocking reads of requests. (Backported from the async-read-dev branch)
Okay, at least be nice when "breaking" the API. Tuck the new bitfield to the tail and adjust the MMN
Bump MODULE_MAGIC_COOKIE to "AP24", as we are already changing the binary ABI out-of-sync with any 2.1-dev (beta) development.
NET_TIME, as a standalone feature, was a horrid idea. The core filter will NOT operate correctly across platforms (even between Linux/Solaris) without setting up the conn->timeout, so always apply the timeout when establishing the core filter. The keep-alive-timeout is entirely an HTTP-ism, and needs to move to the http protocol handler. Note #1; this isn't triggered in the event mpm, but the event mpm introspects s->keep_alive_timeout directly adding it to the pollset, so this is a non-sequitor. Finally, once the headers are read, the named virtual host may have a different (more/less permissive) timeout for the remainder of the request body. This http-centric patch picks up that subtle detail and can switch to a named-vhost timeout.
* include/ap_mmn.h (MODULE_MAGIC_NUMBER_MAJOR): Bump for mod_ssl API change.
Doxygen fixup / cleanup submited by: Neale Ranns neale ranns.org reviewed by: Ian Holsman
c/major bump/minor bump/
This patch adds a new hook (request_status) that gets ran in proxy_handler just before the final return. This gives modules an opportunity to do something based on the proxy status. A couple of examples where this is useful: -You are using a caching module and would rather return stale content rather than an error to the client if the origin is down. -you proxy some subrequests (using SSI - mod_include) and do not want SSI errors when the backend is down. If you would normally return HTTP_BAD_GATEWAY, you may have a module that serves some other content. new hook -- so mmn bump.. i made it a major one, hope thats ok Patch From Brian Akins <Brian.Akins turner.com>
The cookie is AP22 by unanimous consent. This is because 2.1.x dies the day 2.2.0 is branched. There will be no updates to 2.1 as we continue to maintain 2.2.
Initially a no-op. Add trace_enable configuration. The http and proxy flavors of interpreting this flag are yet to be committed.
Whoops - two things at once. Document MAGIC_COOKIE "AP21"
Change Apache httpd 2.1 signature to "AP21" as this flavor is binary-incompatible to any "AP20" module.
Merge the listen-protocol sandbox branch to trunk.
I will be adding documentation for the new directives hopefully in the next day or so.
* server/core.c: Added 'Protocol' to the core module config
Added ap_{set,get}_server_protocol API.
Added new directive: 'AcceptFilter'.
Enable 'httpready' by default on systems that support it. Use dataready filters for others.
* server/listen.c: Attempt to inherit protocols from Listener Records to Server configs.
The 'Listen' directive can now optionally take a protocol arg
Move bits that determined which accept filter is applied to core.c.
Added bits to find the correct accept filter based on the core's configuration.
* include/{ap_listen.h,http_core.h}: Add Protocol to respective structures.
* include/http_core.h: Add the accf_map table to the core_server_config structure
* include/ap_mmn.h: Minor MMN Bump for the new interfacces.
* modules/ssl/ssl_engine_init.c: Use the new protocol framework to enable mod_ssl for 'https' websites.
Add AP_INIT_TAKE_ARGV. There can be some inconsistent results because of the behavoir of ap_getword_conf. Do not rely upon any last argument that is "". If the argument is in the middle of the line, it should work correctly. This is updated from the version sent to dev@httpd to fix the behavoir with 0 arguments. * include/http_config.h: minor MMN bump for the new interface. * modules/generators/mod_autoindex.c: Migrate IndexOptions to the new ARGV command type.
Add ap_vhost_iterate_given_conn() as I had previously mentioned on the mailing list.
really bump MMN Submitted by: Sander Temme
worker MPM/mod_status: Support per-worker tracking of pid and generation in the scoreboard so that mod_status can accurately represent workers in processes which are gracefully terminating. New child processes with worker MPM can take over slots of individual threads within gracefully terminating processes. Sometimes this is a problem (too many of these gracefully terminating processes), so it is helpful to have mod_status provide the information required to recognize these processes.
Fix some symbols which should -not- be exported, and decorate real_exit_code with ap_ (this symbol must be exported.) If the others were desired to be public, they should have been ap_xxx decorated.
Move the POSIX reg* implementations into the ap_* namespace; internalise the ap_reg*<->PCRE wrapper: * configure.in: Add srclib/pcre to the include path. * include/ap_regex.h: Renamed from include/pcreposix.h. Prefix all constants with AP_; prefix all functions and types with ap_. Define AP_DECLARE to nothing if necessary. Remove regcomp error codes. * include/httpd.h: Include ap_regex.h not pcreposix.h. (ap_pregcomp, ap_regexec, ap_regfree): s/regex_t/ap_regex_t/. (ap_regexec, ap_regerror): Prototypes moved to ap_regex.h. * server/util.c (regex_cleanup, ap_pregcomp, ap_pregsub, ap_pregfree): Adjust for ap_ prefixed types. (ap_regexec, ap_regerror): Removed. * server/Makefile.in: Build util_pcre.c. * server/util_pcre.c: Copied from srclib/pcre/pcreposix.c; remove use of PCRE-internals to do error mapping; rename types to add AP_/ap_ prefixes as above. Use APR includes. (ap_regerror): Use apr_snprintf. * srclib/pcre/Makefile.in: Don't build pcreposix.c into libpcre.la. * modules/*: Update to use new type and constant names. PR: 27750 (part one) Submitted by: Andres Salomon <dilinger voxel.net>, Joe Orton
Update copyright year to 2005 and standardize on current copyright owner line.
* include/ap_mmn.h: Fix typo.
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
Nobody objected: <IfModule> now takes the module identifier in addition to the filename. CAUTION: this commit breaks the build on netware. It still needs to be adjusted. (but I don't have any netware knowledge...) Also, developers need to re-run buildconf on unices. PR: 29003 Submitted by: Edward Rudd <eddie omegaware.com>, Andr� Malo
changed the following APIs to return an error instead of hard exiting: ap_add_module, ap_add_loaded_module, ap_setup_prelinked_modules, and ap_process_resource_config
ap_add_named_module is not used and maintained anymore. Drop it.
fix name of The Apache Software Foundation
fix copyright dates according to the first check in
apply Apache License, Version 2.0
Add core version query function ap_get_server_revision and accompanying ap_version_t structure (minor MMN bump). The function is similar to apr_version() and allow for exact querying of the core revision level.
update license to 2004.
SECURITY [CAN-2003-0020]: escape arbitrary data before writing into the errorlog. Reviewed by: Mark J Cox
- add XHTML doctypes to httpd.h - fix the (x)html output of mod_autoindex to be consistent and make it configurable to emit either HTML or XHTML PR: 23747
adjust mod_cgi and mod_cgid bump MMN for API change.
keep changes and mmns in sync.
Minor MMN bump: Forward port: Escape special characters (especially control characters) in mod_log_config to make a clear distinction between client-supplied strings (with special characters) and server-side strings. This was already introduced in version 1.3.25. Obtained from: Patch in 1.3.25-dev by Martin
change optional function to return the previous writer, allowing to have mutliple types of writers in the same server. (previously you could only have one) it needs a mmn bump.. sorry guys ;(
finished that boring job: update license to 2003. Happy New Year! ;-))
d'oh! was originally against 2.0. yeah, that's it..
here we go. add a directive that will keep %2f from being decoded into '/', allowing the *_walk to do their magic and return 404 if it's in the path, and allowing it in the path-info.
This bit me over the weekend. A module with old constants doesn't work well with a system looking for new... Note: we really should peg Apache against a specific APR release so that our ABI doesn't keep getting whacked due to APR(UTIL) changes.
Add a filter_init function to the filters so that a filter can execute arbitrary code before the handlers are invoked. This resolves an issue with incorrect 304s on If-Modified-Since mod_include requests since ap_meets_conditions() is not aware that this is a dynamic request and it is not possible to satisfy 304 for these requests (unless xbithack full is on, of course). When mod_include runs as a filter, it is too late to set any flag since the handler is responsible for calling ap_meets_conditions(), which it should do before generating any data. If a module doesn't need to run such arbitrary code, it can just pass NULL as the argument and all is well. PR: 9673 Reviewed by: Ryan Bloom and others
Change conn_rec->keepalive to an enumerated value of AP_CONN_UNKNOWN AP_CONN_CLOSE AP_CONN_KEEPALIVE This also fixes a problem where ap_discard_request_body would not discard the body when keepalive was 0. This actually meant the keepalive status was unknown *not* closed, but no one ever remembered that. This problem was seen with mod_dav sending error responses (as reported by Karl Fogel). Suggested by: Greg "this isn't the '80s" Stein Reviewed by: Greg Ames
Solve the 80/20 by initializing and storing server_rec->timeout and server_rec->keep_alive_timeout in apr_time_interval_t format (in apr units, whatever they be), as both values exist to pass into APR, and all APR timeouts are in apr_time_t. Reviewed by: Cliff Woolley
The recent changes require a full recompile. Lack thereof has bitten both me and Justin today.
The apr_bucket change requires a minor MMN bump. Also modify Apache's filters to use APR_BUCKET_IS_METADATA macro.
Imagine the horror. I go to try compiling PHP4, and it bombs out on r->boundary. BUT WAIT, I say, we have a test in there for that: #if !MODULE_MAGIC_AT_LEAST(20020506,0). The test doesn't seem to be working. That's odd, I think. So I go look at the ap_mmn.h. Egad, the tests are totally backwards. How on earth are we going to handle this? Surely it's wrong in 1.3.x as well. So I go look. Nope, turns out it got fixed TWO YEARS AGO in that repository. Sigh. Anyway, thanks Greg. :) Submitted by: Greg Stein, circa Apache 1.3.13
Yet another reason the MMN needs to get bumped. If there are changes that anyone's been holding off on because they would affect the MMN, might as well get them in now so we minimize the number of releases with MMN changes. I believe there are more renames pending in APR that should be done sooner rather than later, for example.
Removing a field in a core structure (r->boundary) merits a MMN bump, unfortunately. They got 2 GAs out of the old MMN. Reviewed by: Cliff Woolley
Demote to a minor bump for .36 - those affected by API changes should be a very small subset of modules. Here are the afflicted types & fns; apr_explode_time -> apr_time_exp_tz apr_explode_localtime -> apr_time_exp_lt apr_get_groupname -> apr_group_name_get deprecated apr_lock_t, apr_os_lock_t and fns, but the warnings have been there a while so no sympathy. added dav_hooks_search_t and DASL Search functions. added apr_cmdtype_e *type arg to mod_cgi opt fn ap_cgi_build_command. added proxy_fixups hook and ap_proxy_ssl_disable, and optional fn ssl_engine_disable.
The fix requires a bump
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.
Add a new parameter to the quick_handler hook to instruct quick handlers to optionally do a lookup rather than actually serve content. This is the first of several changes required fix several problems with how quick handlers work with subrequests.
Bump ap_mmn for the M_INVALID change. Add a note to CHANGES. Submitted by: Dale Ghent <daleg@elemental.org>
A little mgmt overhead for the mod_dav API change.
Update our copyright for this year.
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.
I forgot to bump the mmn.
bump bumpty bump Placing the thread-limit and server-limit values, those which define the size of internal structures in the scoreboard, actually into the scoreboard allow third-party applications to access those structures.
Introduce AddOutputFilterByType directive. AddOutputFilterByType DEFLATE text/html (I will add docco soon, I promise. If someone beats me to it, cool...)
I think this was supposed to have been bumped a couple times since the 14th, and was perhaps forgotten about? In any case, it needs to be bumped now -- pre_config hook return type has changed.
The pre_config hook now takes a return value. This allows modules to cause the server to bail out under error conditions.
fix the problem where a scoreboard init failure could leave mod_cgid stranded a pre_mpm hook can now return failures, so problems in ap_create_scoreboard percolate back to a place where Apache can exit cleanly
Input filtering prototype change: Socket blocking type should be separate from the input filter mode type. We also no longer look at readbytes to determine the method of filter operation. This makes the use of filters more obvious and allows a wider range of options for input filters modes. To start with, the new input filter modes are: AP_MODE_READBYTES (no more than *readbytes returned) AP_MODE_GETLINE (old *readbytes == 0 case) AP_MODE_EATCRLF (old AP_MODE_PEEK) AP_MODE_SPECULATIVE (will be used in a future ap_getline rewrite) AP_MODE_EXHAUSTIVE (old *readbytes == -1 case) AP_MODE_INIT (special case for NNTP over SSL) The block parameter is an apr_read_type_e: APR_BLOCK_READ, APR_NONBLOCK_READ This also allows cleanup of mod_ssl's handling in the getline case. Reviewed by: Ryan Bloom (concept), Greg Stein (concept)
Note the change in the mod_dav provider API.
Bring forward the FileETag directive enhancement from 1.3.23-dev. (Passes all 61 of the apache/etags.t test.) Bump MMN due to change to core_dir_config structure (new fields at end).
This needed bumping for all the scoreboard changes; consider it bumped.
MMN = Things that go bump in the night. (limit_req_body is now an apr_off_t)
Change core code to allow an MPM to set hard thread/server limits at startup.
Give the request_rec some information about path_info allowance. If some unnamed filter will consume the path_info, it may set up used_path_info to a non-zero value, and core.c will consume the request with path_info.
Change a comment. This change was made to 2.0.29-dev. 2.0.28 had already gone out the door when this change was made.
Change the magic # as we have changed the conn_rec structure and have change the open_log and post_config hook function PR: Obtained from: Submitted by: Reviewed by:
Goodbye r->content_lanaguage (per vote from apache-1.3/STATUS).
That last round calls for a bump. bump.
Update httpd to reflect change with free() pointer in buckets code
Bump for 2.0.23 tag
The history can evaporate later... but before someone else is bit ;/
Proper doc style
Bump mmn for 2.0.22-dev
bump and grind for another beta
Was certain I had committed this. Position the scoreboard members such that the size and members can be derrived by the most stable elements, followed by derived elements. [Harrie Hazewinkel]
No MMN bump in ages - time to start codifing this entity. Change the COOKIE to something useful, "AP20", for the new module structure.
Update copyright to 2001
renaming various functions for consistency sake see: http://apr.apache.org/~dougm/apr_rename.pl PR: Obtained from: Submitted by: Reviewed by:
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.
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.
prefix libapr functions and types with apr_
Document ap_mmn.h using ScanDoc
Update to Apache Software License version 1.1
Put the pre_config hook back into the table. This solves the problem of the pre-config hook only being valid for MPM's. This patch also distinguishes between STANDARD modules and MPM's.
Fix all the License issues. Including: s/Apache Group/Apache Software Foundation/ s/1999/2000/ s/Sascha's license/ASF license
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 |