From: Jim Jagielski Date: Tue, 2 May 2017 11:00:14 +0000 (+0000) Subject: Merge r1791975 from trunk: X-Git-Tag: 2.4.26~108 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=beed75c4efa3b8cbe7dcc583d4f6b50f5f78310d;p=apache Merge r1791975 from trunk: 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. Submitted by: jchampion Reviewed by: jchampion, covener, jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1793465 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/STATUS b/STATUS index 5e0c13a870..216559963e 100644 --- a/STATUS +++ b/STATUS @@ -125,13 +125,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - * core: don't run configtest in -V mode when MPM DSOs are in use, and try to - print compile settings even if reading the configuration fails. Fixes - PR61009. - trunk patch: https://svn.apache.org/r1791975 - 2.4.x patch: trunk works - +1: jchampion, covener, jim - *) Easy patches: synch 2.4.x and trunk - mod_autoindex: Save a few bytes in the conf pool. - mod_autoindex: Use 'ap_cstr_casecmp' to simplify code + remove dead code diff --git a/server/main.c b/server/main.c index c5f35b9b44..ba9d91c6d0 100644 --- a/server/main.c +++ b/server/main.c @@ -629,10 +629,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(); @@ -661,10 +673,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); }