"</container> without matching <container> section", where
container is VirtualHost or Directory or whatever.
This was a path not covered by the fix in 2.0a4 to report
the proper line numbers (sorry!).
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85585 13f79535-47bb-0310-9956-ffa450edef68
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.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85522 13f79535-47bb-0310-9956-ffa450edef68
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.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85393 13f79535-47bb-0310-9956-ffa450edef68
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