Parent Directory
|
Revision Log
| Links to HEAD: | (view) (annotate) |
| Sticky Revision: |
Fix remaining doxygen warnings. "make dox" is now clean with doxygen version 1.5.8. PR: 48093 Submitted by: Brad Hards Reviewed by: poirier
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
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).)
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.
"Method" in HTTP has a particular meaning, simple descriptive change to avoid using that phrase in another context.
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.
Introduce a check_config phase between pre_config and open_logs, to allow modules to review interdependent configuration directive values and adjust them while messages can still be logged to the console. The open_logs phase is already used somewhat for this purpose by certain MPMs (winnt, prefork, worker, and event) but only by forcing their functions ahead of the core ap_open_logs() function, and since this phase runs after the ap_signal_server function during startup, it can not be used to generate messages on the console when restarting. Add the check_config phase to mod_info and mod_example. Handle relevant MPM directives during this phase and format messages for both the console and the error log, as appropriate. Bounds and sanity checks on the values of the MPM directives are handled in sequence in this phase instead of in the various directive handling functions, since those functions (e.g., set_max_clients()) may not be called at all if their directives do not appear in the configuration files, and even if they are called, there is no guarantee that this will occur in any particular order. Remove from the worker and event MPMs the code in the pre_config phase that alters the configuration node tree by re-ordering ThreadsPerChild ahead of MaxClients. This code is effective but insufficient; for example, if ServerLimit follows MaxClients, the test against server_limit in set_max_clients() is invalid. (In practice, this only results in incorrect or absent warnings on the console, because server_limit is set to its configured value when the main loop re-runs the configuration process.) Prevent ap_threads_per_child from exceeding thread_limit in the winnt, worker, and event MPMs. This situation could occur if ThreadsPerChild was not specified in the configuration files and ThreadLimit was set to a value smaller than DEFAULT_THREADS_PER_CHILD, because set_threads_per_child() would never be called and therefore its bounds check against thread_limit would not be performed. Remove from the winnt, prefork, worker, and event MPMs the changed_limit_at_restart flag. Set the first_server_limit and first_thread_limit values during the first execution of the check_config function, and use them to detect changes to ServerLimit and ThreadLimit across restarts and issue appropriately formatted warnings. Remove the comments about the error log being a "bit bucket"; this was true when the code was originally committed in r92530 but that was due to a bug fixed in r92769. Be consistent about setting all MPM configuration directive values in the pre_config phase. Rephrase and reformat the console and log file messages relating to MPM configuration directives to be consistent across all MPMs. Use briefer messages when logging to the error log than to the console. Update miscellaneous stale comments and messages (e.g., reference to daemons_min_free in worker and event MPMs, "prefork open_logs" in winnt MPM, and StartServers in netware MPM). The winnt, netware, beos, and mpmt_os2 MPMs should be tested by developers with access to those platforms, especially the winnt MPM, which has unique logic with respect to distinguishing between parent and child processes during the configuration phases. Update the English documentation for the worker MPM's ThreadsPerChild directive, which no longer needs to precede other MPM directives in the configuration files if it has a non-default value. The German (.de) and Japanese (.ja) translations should be updated by developers fluent in those languages.
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
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.
Update copyright year to 2005 and standardize on current copyright owner line.
* include/http_config.h: Add missing parameter name.
general property cleanup
Implement -t -DDUMP_MODULES using generic test_config hook rather than hooking into mod_so from main.c: * include/http_config.h, server/config.c: Declare test_config hook. * server/main.c: Drop hooks into mod_so; run test_config hooks. * modules/mappers/mod_so.h: Drop ap_dump_loaded_modules optional function. * modules/mappers/mod_so.c (dump_loaded_modules): Renamed from ap_dump_loaded_modules; only run if -DDUMP_MODULES is defined. (register_hooks): Register test_config hook instead of optional function. Reviewed by: Justin Erenkrantz, Paul Querna
Added 'AllowOverride Options=Indexes,MultiViews' to give an admin better control over what options can be used in .htaccess files. PR: 29310 Submitted by: Tom Alsberg <alsbergt-apache cs.huji.ac.il>
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
update license to 2004.
Revert the change to the cmd_func typedef to avoid a type mismatch compiler error in the Metrowerks compiler
* include/http_config.h (cmd_func): Fix prototype, eliminate warning.
* include/http_config.h
(ap_get_module_config, ap_set_module_config): Use the macro
when AP_DEBUG is _not_ defined, not the other way around.
Noticed by: Jeff Trawick
* include/http_config.h
(ap_get_module_config, ap_set_module_config): Always declare.
* include/httpd.h
(ap_strchr, ap_strchr_c, ap_strrchr, ap_strrchr_c, ap_strstr, ap_strstr_c):
Always declare.
* server/util_debug.c
(ap_get_module_config, ap_set_module_config, ap_strchr, ap_strchr_c,
ap_strrchr, ap_strrchr_c, ap_strstr, ap_strstr_c):
Always implement and export.
Allow restart of httpd to occur even with syntax errors in the config file. (Out-of-date DSOs with bad MMNs will still be fatal unfortunately.) Add return parameter to ap_process_config_tree - OK on success, !OK on syntax error. We will no longer call exit() from ap_process_config_tree. The caller must exit if there is an error (makes sense anyway). This allows the initial start-up code to delay the exit until trying to let the signal_server optional function execute first. (The chances are that the syntax error isn't in the PidFile directive. If that happens, we'll try the default one. Oh, well.) PR: 16813
finished that boring job: update license to 2003. Happy New Year! ;-))
Style cleanup (remove tabs, fix alignment). Submitted by: Thom May <thom@planetarytramp.net>
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.
Typo (noticed while browsing http://docx.webperf.org/)
Update our copyright for this year.
The pre_config hook now takes a return value. This allows modules to cause the server to bail out under error conditions.
change open_logs hook to return a value, allowing you to flag a error while opening logs Obtained from: Doug MacEachern
Modify post_config hook so that it can return a error, causing the server not to start. previous method was to call exit(1) which would not fail gracefully PR: Obtained from: Submitted by: Reviewed by: (Idea only Jeff Trawick)
fix spelling
Don't know why these were missing... just an oversight, I'm guessing?
Fix spelling
Added Doxygen Comments With these 2 changes most of the Doxygen warnings go away. (these patch just modifies comments/slight moves in typedefs, no other changes)
Better doc of ap_server_root_relative()
Eliminated ap_os_[systemcase|[case_]canonical]_filename() and move ap_os_is_path_absolute() into util.c (now relies on apr.)
Provide an ap_set_deprecated() fn for quick-and-dirty 'we don't do this' entries in the command table. (Also fixes a nit about returning a single bit of an apr_int_64 as an int. Know how this group loves !! expresssions :)
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>
Doxygenation.
Separate enablement of AP_DEBUG code from enablement of code which depends on the compiler supporting designated initializers.
Implement Jeff's idea for an autoconf-defined symbol to enable the special command function prototype stuff. AP_DEBUG is always set in maintainer mode and AP_DEBUG_HAVE_GCC is set when the compiler is GCC. Submitted by: Jeff Trawick
Fix up some of the definitions, based on Ian's patch.
Add the AP_DECLARE()/AP_CORE_DECLARE macros on the return types of functions used by mod_proxy for export in DLL Submitted by: Ian Holsman <IanH@cnet.com> Reviewed by: Chuck murcko
C::Scan strikes again; include argument name in ap_invoke_handler prototype
Add ap_set_int_slot() function PR: Obtained from: Submitted by: John K. Sterling <sterling@covalent.net> Reviewed by: dougm
We need a prototype for ap_show_mpm
Reformat declaration so make_export.awk will recognize them. Yes, I know this makes lines longer than is normally acceptable but I'd like to see anyone come up with an awk script that handles these things broken over multiple lines...
Performance: Add quick_handler hook. This hook is called at the very beginning of the request processing before location_walk, translate_name, etc. This hook is useful for URI keyed content caches like Mike Abbott's Quick Shortcut Cache.
top_module global variable renamed to ap_top_module
Reconsidered the wisdom of this change... back to the drawing board. The ap_ prefix is still good, IMHO
Clean up namespace badness with s/configfile_t/ap_configfile_t/
remove ap_{post_config,child_init}_hook
replace usage with ap_run_{post_config,child_init}
PR:
Obtained from:
Submitted by:
Reviewed by:
server_rec* -> server_rec * (sorry for nit, C::Scan made me doit)
avoid c++ keywords
- more ap_conf_vector_t fixup. - break out the cmd_parms to ap_set_config_vectors to clarify/doc what is happening in there and because the function operates independent of cmds.
*) 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
fix minor prototype inconsistencies noticed with C::Scan
More doc improvements.
Add support for type-safe optional functions.
Remove AddModule and ClearModuleList. Neither directive really makes much sense anymore, since we use the hooks to order modules correctly. This also removes the possability that one module will ever register the same function for the same hook twice.
The only symbol dropped, not counting regcomp regerror regexec regfree which aren't namespace protected in the first place.
Normalize the use of AP_DECLARE_DATA
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.
Provide apr_pool_t arg to register_hooks, since anything they do in that step -must- be done with a pool that will not outlive the cmd pool, from which they may have been dynamically loaded. This needs further review, it's committed only as a stopgap for those who's builds I broke, sorry. Review tbc late this evening.
Provide apr_pool_t arg to register_hooks, since anything they do in that step -must- be done with a pool that will not outlive the cmd pool, from which they may have been dynamically loaded.
adjust remaining modules to use the new handler hook method (Alan Edwards) bring back the old handler prototype by reusing r->handler (dougm) PR: Obtained from: Submitted by: Reviewed by:
Make handlers use hooks.
Force all Apache functions to be linked into the executable, whether they are used or not. This uses the same mechanism that is used for APR and APR-util. This may not be the correct solution, but it works, and that is what I really care about. This also renames CHARSET_EBCDIC to AP_CHARSET_EBCDIC. This is for namespace correctness, but it also makes the exports script a bit easier.
Make mod_auth_db compile cleanly in 2.0
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.
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.
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.
prefix libapr functions and types with apr_
Finish the http_config.h documentation. :-)
Add more of the comments to http_config.h. This is a horrible job by the way.
Fix a couple of apparent typos.
Begin to document http_config.h. This documents most (if not all) of the structures defined by this header file. The functions will be the next thing that needs documenting.
Fix a small typo. TAKE3 directives really do need to take all 3 arguments. Submitted by: Jeff Trawick
Add the macro for AP_INIT_TAKE3 directives. I am assuming this was left out by mistake.
Back out some changes that weren't supposed to be in my last commit.
Remove all of the ap_is* functions from Apache. They were already in APR, and we all hate duplicate code. :-) This also required adding ap_isascii to APR.
blast the old names for the status codes
Use the new command-handler initializer macros in mod_auth; clean up the resulting warnings.
Provide some more missing initializer macros for when AP_DEBUG isn't defined (no, I didn't miss these in my commit this a.m. :) ).
More command handlers.
More command handler updates.
Fill in missing implementations of AP_INIT_whatever for when AP_DEBUG is not defined. Apache now compiles for me on FreeBSD 3.4 when AP_DEBUG isn't defined (albeit with a few warnings).
Command handler revamp. Note that this makes the code produce a LOT of warnings!
Fix a couple of problems with the pre/post config processing changes: 1) symptom: on system with bad/no DNS setup, ServerName isn't processed so init fails cause: ap_fini_vhost_config() called before ap_process_config_tree(), so ServerName was never stored in the config structure 2) symptom: on system with virtual hosts configured, SIGSEGV in open_multi_logs() cause: the module configs for the virtual hosts haven't been merged in yet, and open_multi_logs() gets NULL for the mod_log_config configuration This stuff needs to be cleaned up further, exploring the use of a post-config hook for fixup_virtual_hosts(), ap_fini_vhost_config(), and ap_sort_hooks(), getting a lot of logic out of main(), and processing the config tree only once.
PR: Obtained from: Submitted by: Reviewed by: Migrate the 'real' pre_config hook update from winnt.c to mpm_winnt.c and correct newly required symbols for http_main.c
Modify the config order so that we read the config, process all EXEC_ON_READ directives at the same time, run pre_config hook for all modules, and then walk the tree. This allows all modules to have a pre_config hook and know that it will be called at a reasonable time. I also made "Include" an EXEC_ON_READ directive so that it is included in the tree properly. This was required after the other changes that were made.
Add pre_config hooks back in for all modules. This is important for the server tokens code that is coming soon.
We now report the correct line number for syntax errors in config files.
PR: Obtained from: Submitted by: Reviewed by: Finally a patch that can't (well, shouldn't :-) break any other platform. Open up the symbols defined for http_main.c to move main() from the core under Win32 (that's the real main(), not that apache_main() thing). Win32 Project file changes will follow in a seperate patch.
PR: Obtained from: Submitted by: Reviewed by: Reverse out additional linkage argument from DECLARE_HOOK and IMPLEMENT_HOOK macros.
PR: Obtained from: Submitted by: Reviewed by: Reverse out all _EXPORT_VAR changes back to their original _VAR_EXPORT names for linkage (API_, CORE_, and MODULE_).
Pass the process_rec to the MPM to allow rewriting of the args list. Especially necessary under Win32, or other non-unix front ends where oddball arguments might be required, but without causing a mess in http_main.c.
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.
Move prototype of ap_hook_deregister_all to where it belongs.
Radical overhaul of the Apache-2.0/Win32 mpm <-> service schema.
1) Services and Registry are not part of the core Apache operations,
so registry.c and service.c are moved into Apache.exe - assuring
the service control layers of NT and 95 are truly isolated.
2) Isolation can't be complete, we need to know when the mpm is
fully initialized. A new pointer to a no-arg function returning
void is provided for this purpose, ap_mpm_init_complete. It is
only called if overridden with a non-NULL value prior to invoking
apache_main.
3) Control+C, Control+Break are handled on both WinNT and Win9x.
4) The window close, logoff and shutdown events are handled on WinNT.
5) The beginnings of a Win95 service startup are provided, -k startservice
but this is horribly incomplete since Win95 will NOT report shutdown.
Commit the EXEC_ON_READ changes. This allows modules to hook into the config file read phase. Full details are in the CHANGES file blurb. Examples to see how this should be used are provided for <IfModule> <IfDefine> LoadModule, AddModule and ClearModuleList expect docs in the next day or two.
add AP_ prefix to *HOOK* macros
drop the "container" param from ap_walk_config(). callers should simply
pass the first child, rather than expecting the walker to do it.
remove the nasty "static" variable inside ap_walk_config(). it now walks the
tree provided with no worries about bumping up/down levels.
minor refactor between ap_walk_config() and ap_walk_config_sub() to clean up
some logic and clarify the code.
clean up cmd_parms: config_file is no longer valid; end_token is bogus;
add directive.
move configfile_t and functions from httpd.h to http_config.h
new signature for ap_build_config() (since config_file removed from cmd_parms)
add "data" to ap_directive_t for future use by modules. add filename.
syntax checking for section-close directives: a section-open must exist,
the section-close must be </FOO>, and the open/close must match.
the file as a whole must be properly balanced (issue errors for each
unmatched section-open).
</FOO> command_rec structures are obsolete. Remove from http_core.c.
do not store </FOO> directives in the config tree.
clean out section-close logic from http_core.c (and old, related comments)
<Limit> and <LimitExcept> must walk their children.
new mechanism in ap_check_cmd_context() for testing enclosure in a
Directory/Location/File: find_parent()
<IfModule> and <IfDefine> must pass cmd->context when walking the children
several places: we had a walk followed by ap_get_module_config(). that
assumed the walk would create a config that we could fetch, which is not
true -- it is possible that the children are all from other modules
(e.g. the <Files> section in httpd.conf-dist has no "core" directives).
using ap_set_config_vectors() ensures we get a structure, and it returns
it to us.
[ note: when we had </Directory> (and friends) in the tree, the config
would get created; removing the directive removed the config; this
was a bitch to track down :-) ]
handle error messages during building and processing of the configuration.
add missing return statements, wrap some lines, remove unused vars.
move syntax error reporting and exit(1) back to the right place (to be
fixed in a future pass; the exit() is inappropriate for parsing
.htaccess files).
Parse the config tree, instead of the config file. This is a first step there are some big improvements to be made to this code, but this works now, and it is a first step.
Change ap_context_t to ap_pool_t. This compiles, runs, and serves pages on Linux, but probably breaks somewhere.
more namespace cleanup
Update to Apache Software License version 1.1
Fix the warnings associated with the pre_config patch.
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.
Clear hook registrations between reads of the config file. When DSOs are unloaded and re-loaded the old hook pointers may no longer be valid. This fix eliminates potential segfaults.
Fix all the License issues. Including: s/Apache Group/Apache Software Foundation/ s/1999/2000/ s/Sascha's license/ASF license
Well this was thought provoking. Drive out the use of malloc in two places. In listen.c, using the global process pool instead. That changes the API into listen so that a process is passed in rather than the config pool. That's all was easy. The pain is propogating a change into all N of the mpm, they are all similar but different in their use of listen.c There is a lot to dislike about similar but code scattered code. I changed the N setup_listener routines, they now take only the server since they can dig the config and global pool out of there. Free today: ap_setup_prelinked_modules now takes the process so it can allocate it's table in the process's pool rathern than use malloc.
Add process_rec to the top of {server,connection,request}_rec
hierarchy of structs that abstract server activities. Store some
stuff in process_rec (finally a place to have nearly guiltless
globals) for example the global and configuration pools. Put some
operations on process_rec in http_main, in particular the
destroy_and_exit operation, and the use it to do all the exit calls.
Change ap_read_config to operation on this "object" rather than on the
configuration pool. Modify server_rec to point to the process, so you
can get at it most all the time which should finally allow most of the
server's malloc calls to be eliminated.
There are no locks in the process struct as yet, put them in as needed.
Some of the hooks should take this rather than conf. pool.
Changed pools to contexts. Tested with prefork and pthread mpm's. I'll check this out tomorrow and make sure everything was checked in correctly.
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
Rearchitect the mess in http_main.c, http_core.c and buff.c. Basic restructuring to introduce the MPM concept; includes various changes to the module API... better described by docs/initial_blurb.txt. Created multiple process model (MPM) concept by ripping out the process guts from http_main.c and http_core.c and moving them to separate files under src/modules/mpm/ Moved socket creation stuff to listen.c. Moved connection open, maintenance and close to http_connection.c. I/O layering and BUFF revamp. Much of buff.c moved to ap_iol, iol_socket, and iol_file. See docs/buff.txt. Moved user and auth fields from connection_rec to request_rec. Removed RLIMIT stuff, supposedly to be implemented later in mod_cgi. Disabled suexec, supposedly to be reimplemented later. Submitted by: Dean Gaudet
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 |