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.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85326 13f79535-47bb-0310-9956-ffa450edef68
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_).
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85318 13f79535-47bb-0310-9956-ffa450edef68
ap_pool_t *g_pHookPool; becomes ap_global_hook_pool
int g_bDebugHooks; becomes ap_debug_module_hooks
const char *g_szCurrentHookName; becomes ap_debug_module_name
Just as a reminder, these are now declared in ap_hooks.c
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85310 13f79535-47bb-0310-9956-ffa450edef68
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.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85309 13f79535-47bb-0310-9956-ffa450edef68
evaluating an EXEC_ON_READ directive, and the directive's sub_tree is empty,
we don't try to set the node's parent pointer. This stops a seg fault.
Submitted by: Jeff Trawick
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85269 13f79535-47bb-0310-9956-ffa450edef68
reading that is the first item in a container, we have to return that tree
and set the parent pointers correctly.
Submitted by: Jeff Trawick
Reviewed by: Ryan Bloom
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85233 13f79535-47bb-0310-9956-ffa450edef68
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.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85217 13f79535-47bb-0310-9956-ffa450edef68
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.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85025 13f79535-47bb-0310-9956-ffa450edef68
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 :-) ]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85024 13f79535-47bb-0310-9956-ffa450edef68
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).
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85023 13f79535-47bb-0310-9956-ffa450edef68
needs to be there until we have a validating tree. Without this, it is
possible for a config file to read:
<Ifmodule mod_foo.c>
some directive
</Limit>
and still be read correctly. When the tree building functions can validate
for us, this should be removed, and there is a comment that says so.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84979 13f79535-47bb-0310-9956-ffa450edef68
When DSOs are unloaded and re-loaded the old hook pointers may
no longer be valid. This fix eliminates potential segfaults.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84828 13f79535-47bb-0310-9956-ffa450edef68
are best described as feature creep. Allows ${ENV} constructs
in the config file. This avoids the need for mod_perl or
m4 cleverness whilst mainting some of the usefullness. It
does not do (of course) multiline things or anything that clever.
Feel free to flame me.
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84765 13f79535-47bb-0310-9956-ffa450edef68
all of the Apache macros that modules don't need access to. This should
have been committed with the modules, but I wasn't paying attention to the
directory I was in when I ran the commit.
Submitted by: Manoj Kasichainula and Ryan Bloom
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84493 13f79535-47bb-0310-9956-ffa450edef68
I defined APLOG_STARTUP, which refrains from printing the date string
and the log level information in log_error_core. I then changed all the
fprintf(stderr calls to ap_log_error, and used APLOG_STARTUP.
log_error_core on Unix takes care of creating a log file and directing
it to stderr if a log file isn't already active. I will continue to
make these changes tomorrow. Currently, the main code and the dexter
mpm have been modified.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84134 13f79535-47bb-0310-9956-ffa450edef68
is needed. It is much easier to do this conversion by hand than by
searching for old comments, so they are going away now.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84128 13f79535-47bb-0310-9956-ffa450edef68
apr_status codes in our error logs. The main advantage of this, is portable
error codes. Now, Windows will finally be able to use errno!
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84007 13f79535-47bb-0310-9956-ffa450edef68
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.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@83943 13f79535-47bb-0310-9956-ffa450edef68
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.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@83942 13f79535-47bb-0310-9956-ffa450edef68
fruit, and moves most of the result parameters to the first argument.
Future patches in this series will move the rest of the result parameters
to the beginning of the list, and will move the context's to the end of the
list
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@83927 13f79535-47bb-0310-9956-ffa450edef68
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
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@83879 13f79535-47bb-0310-9956-ffa450edef68