diff --git a/src/output-json-dns.c b/src/output-json-dns.c index 676866b750..4045c97da3 100644 --- a/src/output-json-dns.c +++ b/src/output-json-dns.c @@ -510,28 +510,36 @@ static DnsVersion JsonDnsParseVersion(ConfNode *conf) DnsVersion version = DNS_VERSION_DEFAULT; intmax_t config_version; - if (ConfGetChildValueInt(conf, "version", &config_version)) { - switch(config_version) { - case 1: - version = DNS_VERSION_1; - break; - case 2: - version = DNS_VERSION_2; - break; - default: - SCLogWarning(SC_ERR_INVALID_ARGUMENT, - "invalid eve-log dns version option: %"PRIuMAX", " - "forcing it to version %u", - config_version, DNS_VERSION_DEFAULT); - version = DNS_VERSION_DEFAULT; - break; + const ConfNode *has_version = ConfNodeLookupChild(conf, "version"); + + if (has_version != NULL) { + bool invalid = false; + if (ConfGetChildValueInt(conf, "version", &config_version)) { + switch(config_version) { + case 1: + version = DNS_VERSION_1; + break; + case 2: + version = DNS_VERSION_2; + break; + default: + invalid = true; + break; + } + } else { + invalid = true; + } + if (invalid) { + SCLogWarning(SC_ERR_INVALID_ARGUMENT, + "invalid eve-log dns version option: %s, " + "defaulting to version %u", + has_version->val, version); } } else { - SCLogWarning(SC_ERR_INVALID_ARGUMENT, - "eve-log dns version not found, forcing it to version %u", - DNS_VERSION_DEFAULT); - version = DNS_VERSION_DEFAULT; + SCLogConfig("eve-log dns version not set, defaulting to version %u", + version); } + return version; }