fix authentication header extra space (issue #5329)
[asterisk/asterisk.git] / dnsmgr.c
index 5afa776..95253d0 100755 (executable)
--- a/dnsmgr.c
+++ b/dnsmgr.c
@@ -1,14 +1,25 @@
 /*
- * Asterisk -- A telephony toolkit for Linux.
+ * Asterisk -- An open source telephony toolkit.
  *
- * Background DNS update manager
- * 
  * Copyright (C) 2005, Kevin P. Fleming
  *
  * Kevin P. Fleming <kpfleming@digium.com>
  *
+ * See http://www.asterisk.org for more information about
+ * the Asterisk project. Please do not directly contact
+ * any of the maintainers of this project for assistance;
+ * the project provides a web site, mailing lists and IRC
+ * channels for your use.
+ *
  * This program is free software, distributed under the terms of
- * the GNU General Public License
+ * the GNU General Public License Version 2. See the LICENSE file
+ * at the top of the source tree.
+ */
+
+/*
+ *
+ * Background DNS update manager
+ * 
  */
 
 #include <sys/types.h>
 #include <regex.h>
 #include <signal.h>
 
-#include <asterisk/dnsmgr.h>
-#include <asterisk/linkedlists.h>
-#include <asterisk/utils.h>
-#include <asterisk/config.h>
-#include <asterisk/logger.h>
-#include <asterisk/sched.h>
-#include <asterisk/options.h>
-#include <asterisk/cli.h>
 #include "asterisk.h"
 
+ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
+
+#include "asterisk/dnsmgr.h"
+#include "asterisk/linkedlists.h"
+#include "asterisk/utils.h"
+#include "asterisk/config.h"
+#include "asterisk/logger.h"
+#include "asterisk/sched.h"
+#include "asterisk/options.h"
+#include "asterisk/cli.h"
+
 static struct sched_context *sched;
 static int refresh_sched = -1;
 static pthread_t refresh_thread = AST_PTHREADT_NULL;
@@ -55,6 +69,7 @@ static int refresh_interval;
 struct refresh_info {
        struct entry_list *entries;
        int verbose;
+       unsigned int regex_present:1;
        regex_t filter;
 };
 
@@ -70,7 +85,7 @@ struct ast_dnsmgr_entry *ast_dnsmgr_get(const char *name, struct in_addr *result
        if (!name || !result || ast_strlen_zero(name))
                return NULL;
 
-       entry = calloc(1, sizeof(*result) + strlen(name));
+       entry = calloc(1, sizeof(*entry) + strlen(name));
        if (!entry)
                return NULL;
 
@@ -157,7 +172,7 @@ static int refresh_list(void *data)
                ast_verbose(VERBOSE_PREFIX_2 "Refreshing DNS lookups.\n");
        AST_LIST_LOCK(info->entries);
        AST_LIST_TRAVERSE(info->entries, entry, list) {
-               if (info->filter.used && regexec(&info->filter, entry->name, 0, NULL, 0))
+               if (info->regex_present && regexec(&info->filter, entry->name, 0, NULL, 0))
                    continue;
 
                if (info->verbose && (option_verbose > 2))
@@ -200,11 +215,13 @@ static int handle_cli_refresh(int fd, int argc, char *argv[])
        if (argc == 3) {
                if (regcomp(&info.filter, argv[2], REG_EXTENDED | REG_NOSUB))
                        return RESULT_SHOWUSAGE;
+               else
+                       info.regex_present = 1;
        }
 
        refresh_list(&info);
 
-       if (info.filter.used)
+       if (info.regex_present)
                regfree(&info.filter);
 
        return 0;
@@ -297,7 +314,7 @@ static int do_reload(int loading)
                ast_sched_del(sched, refresh_sched);
 
        if ((config = ast_config_load("dnsmgr.conf"))) {
-               if ((enabled_value = ast_variable_retrieve(config, "general", "enabled"))) {
+               if ((enabled_value = ast_variable_retrieve(config, "general", "enable"))) {
                        enabled = ast_true(enabled_value);
                }
                if ((interval_value = ast_variable_retrieve(config, "general", "refreshinterval"))) {