From 58b127de3fa98957fcc9c4d085fc54af5b39565d Mon Sep 17 00:00:00 2001 From: Jacob Champion Date: Wed, 19 Apr 2017 20:38:26 +0000 Subject: [PATCH] PR61009: be as helpful as possible during -V operation A configtest isn't useful if you're just trying to get compile settings. Move the settings dump up to just after ap_read_config(), which has already done the minimum necessary to figure out which MPM is in use. Even if ap_read_config() failed, still print as many compile settings as we can. The user will see the error log entry on stderr. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1791975 13f79535-47bb-0310-9956-ffa450edef68 --- server/main.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/server/main.c b/server/main.c index 351f0f1a56..bda60827ca 100644 --- a/server/main.c +++ b/server/main.c @@ -651,10 +651,22 @@ int main(int argc, const char * const argv[]) } ap_server_conf = ap_read_config(process, ptemp, confname, &ap_conftree); if (!ap_server_conf) { + if (showcompile) { + /* Well, we tried. Show as much as we can, but exit nonzero to + * indicate that something's not right. The cause should have + * already been logged. */ + show_compile_settings(); + } destroy_and_exit_process(process, 1); } apr_pool_cleanup_register(pconf, &ap_server_conf, ap_pool_cleanup_set_null, apr_pool_cleanup_null); + + if (showcompile) { /* deferred due to dynamically loaded MPM */ + show_compile_settings(); + destroy_and_exit_process(process, 0); + } + /* sort hooks here to make sure pre_config hooks are sorted properly */ apr_hook_sort_all(); @@ -683,10 +695,7 @@ int main(int argc, const char * const argv[]) } if (ap_run_mode != AP_SQ_RM_NORMAL) { - if (showcompile) { /* deferred due to dynamically loaded MPM */ - show_compile_settings(); - } - else if (showdirectives) { /* deferred in case of DSOs */ + if (showdirectives) { /* deferred in case of DSOs */ ap_show_directives(); destroy_and_exit_process(process, 0); } -- 2.50.1