From: <ag...@us...> - 2013-03-22 15:44:19
|
Revision: 2699 http://nagios.svn.sourceforge.net/nagios/?rev=2699&view=rev Author: ageric Date: 2013-03-22 15:44:13 +0000 (Fri, 22 Mar 2013) Log Message: ----------- core: Log deprecated variables to the 'final' logfile The previous patch made sure we started writing "real" logmessages to the right place, but could still cause some logmessages to end up in the wrong logfile. With this change we protect against that by adding deprecated variables to a list and printing their warnings when we're done parsing the entire file (which means we've always parsed the 'log_file' statement). Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/base/config.c Modified: nagioscore/trunk/base/config.c =================================================================== --- nagioscore/trunk/base/config.c 2013-03-22 15:43:53 UTC (rev 2698) +++ nagioscore/trunk/base/config.c 2013-03-22 15:44:13 UTC (rev 2699) @@ -74,12 +74,15 @@ return OK; } +static objectlist *deprecated = NULL; static void obsoleted_warning(const char *key, const char *msg) { - if (msg) - logit(NSLOG_CONFIG_WARNING, TRUE, "Warning: %s is deprecated and will be removed. %s\n", key, msg); - else - logit(NSLOG_CONFIG_WARNING, TRUE, "Warning: %s is deprecated and will be removed.\n", key); + char *buf; + asprintf(&buf, "Warning: %s is deprecated and will be removed.%s%s\n", + key, msg ? " " : "", msg ? msg : ""); + if (!buf) + return; + prepend_object_to_objectlist(&deprecated, buf); } /* process the main configuration file */ @@ -96,6 +99,7 @@ char *argptr = NULL; DIR *tmpdir = NULL; nagios_macros *mac; + objectlist *list; mac = get_global_macros(); @@ -1128,6 +1132,15 @@ } + if (deprecated) { + for (list = deprecated; list; list = list->next) { + logit(NSLOG_CONFIG_WARNING, TRUE, "%s", (char *)list->object_ptr); + free(list->object_ptr); + } + free_objectlist(&deprecated); + deprecated = NULL; + } + if (!temp_path && !(temp_path = getenv("TMPDIR")) && !(temp_path = getenv("TMP"))) { temp_path = strdup("/tmp"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |