From cdf8cb6444f3b3f9aeb76053edc05bf595d4a583 Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Tue, 5 Apr 2022 07:54:15 +0200 Subject: [PATCH] dispatcher: check valid values for ds_dns_mode --- src/modules/dispatcher/dispatch.c | 6 +----- src/modules/dispatcher/dispatch.h | 6 +++++- src/modules/dispatcher/dispatcher.c | 6 ++++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/modules/dispatcher/dispatch.c b/src/modules/dispatcher/dispatch.c index 0ca8839c890..d59eebe23e2 100644 --- a/src/modules/dispatcher/dispatch.c +++ b/src/modules/dispatcher/dispatch.c @@ -82,10 +82,6 @@ #define DS_HN_SIZE 256 -#define DS_DNS_MODE_INIT 0 -#define DS_DNS_MODE_ALWAYS 1 -#define DS_DNS_MODE_CACHE 2 - /* increment call load */ #define DS_LOAD_INC(dgrp, didx) do { \ lock_get(&(dgrp)->lock); \ @@ -490,7 +486,7 @@ ds_dest_t *pack_dest(str iuri, int flags, int priority, str *attrs, int dload) /* Do a DNS-Lookup for the Host-Name, if not disabled via dst flags */ if(dp->flags & DS_NODNSARES_DST) { dp->irmode |= DS_IRMODE_NOIPADDR; - } else if (ds_dns_mode==DS_DNS_MODE_INIT || ds_dns_mode==DS_DNS_MODE_CACHE) { + } else if (ds_dns_mode==DS_DNS_MODE_INIT || ds_dns_mode==DS_DNS_MODE_TIMER) { he = resolvehost(hn); if(he == 0) { LM_ERR("could not resolve %.*s (missing no-probing flag?!?)\n", diff --git a/src/modules/dispatcher/dispatch.h b/src/modules/dispatcher/dispatch.h index e360e675922..36e01e96ef3 100644 --- a/src/modules/dispatcher/dispatch.h +++ b/src/modules/dispatcher/dispatch.h @@ -73,8 +73,12 @@ #define DS_XAVP_CTX_SKIP_CNT 1 #define DS_IRMODE_NOIPADDR 1 -/* clang-format on */ +#define DS_DNS_MODE_INIT 0 +#define DS_DNS_MODE_ALWAYS 1 +#define DS_DNS_MODE_TIMER 2 + +/* clang-format on */ typedef struct ds_rctx { int flags; int code; diff --git a/src/modules/dispatcher/dispatcher.c b/src/modules/dispatcher/dispatcher.c index 42b1a41aa84..6317334fba9 100644 --- a/src/modules/dispatcher/dispatcher.c +++ b/src/modules/dispatcher/dispatcher.c @@ -327,6 +327,12 @@ static int mod_init(void) param_hooks_t phooks; param_t *pit = NULL; + if(ds_dns_mode!=DS_DNS_MODE_INIT && ds_dns_mode!=DS_DNS_MODE_ALWAYS + && ds_dns_mode!=DS_DNS_MODE_TIMER) { + LM_ERR("invalid dns mode %d\n", ds_dns_mode); + return -1; + } + if(ds_ping_active_init() < 0) { return -1; }