]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
feat(dnsdist): Add global Server ID (unused)
authorPieter Lexis <pieter.lexis@powerdns.com>
Tue, 13 Jan 2026 09:21:30 +0000 (10:21 +0100)
committerPieter Lexis <pieter.lexis@powerdns.com>
Thu, 15 Jan 2026 16:13:20 +0000 (17:13 +0100)
pdns/dnsdistdist/dnsdist-configuration-yaml.cc
pdns/dnsdistdist/dnsdist-configuration.hh
pdns/dnsdistdist/dnsdist-lua-configuration-items.cc
pdns/dnsdistdist/dnsdist-settings-definitions.yml

index f25e41d1f40e2a2ffe736002e4d826f2a5285828..32c14ee551b31a95529b65e077245b434667e7cd 100644 (file)
@@ -1229,6 +1229,12 @@ bool loadConfigurationFromFile(const std::string& fileName, [[maybe_unused]] boo
       });
     }
 
+    if (!globalConfig.general.server_id.empty()) {
+      dnsdist::configuration::updateRuntimeConfiguration([&server_id = globalConfig.general.server_id](dnsdist::configuration::RuntimeConfiguration& config) {
+        config.d_server_id = std::string(server_id);
+      });
+    }
+
     handlePacketCacheConfiguration(globalConfig.packet_caches);
 
     loadCustomPolicies(globalConfig.load_balancing_policies.custom_policies);
index a08505258a3b14f12184a635b43bd5d3f143ab4e..67b7906b1b155cbde82ad21260828aeade99fb56 100644 (file)
@@ -134,6 +134,7 @@ struct RuntimeConfiguration
   std::string d_consoleKey;
   std::string d_secPollSuffix{"secpoll.powerdns.com."};
   std::string d_apiConfigDirectory;
+  std::string d_server_id{getHostname().value_or("localhost")};
   uint64_t d_dynBlocksPurgeInterval{60};
   size_t d_maxTCPQueriesPerConn{0};
   size_t d_maxTCPConnectionDuration{0};
index 5ee8730f8b018ab7dc85749412f1e26544007b91..82d810dd13528d437048d2c76499e0097512b8a9 100644 (file)
@@ -121,6 +121,7 @@ static const std::map<std::string, StringConfigurationItems> s_stringConfigItems
 #ifndef DISABLE_SECPOLL
   {"setSecurityPollSuffix", {[](dnsdist::configuration::RuntimeConfiguration& config, const std::string& newValue) { config.d_secPollSuffix = newValue; }}},
 #endif /* DISABLE_SECPOLL */
+  {"setServerID", {[](dnsdist::configuration::RuntimeConfiguration& config, const std::string& newValue) { config.d_server_id = newValue; }}},
 };
 
 static const std::map<std::string, BooleanImmutableConfigurationItems> s_booleanImmutableConfigItems{
index a3f79df139e4625e044cd92103c4c63413557d5d..5351ddf3399055e2a7ab379a759833310b3d6384 100644 (file)
@@ -1836,6 +1836,11 @@ logging:
 general:
   description: "General settings"
   parameters:
+    - name: "server_id"
+      type: String
+      default: ""
+      description: An identifier for this dnsdist instance, used in various places. Will be the server's hostname by default.
+      lua-name: "setServerID"
     - name: "edns_udp_payload_size_self_generated_answers"
       type: "u16"
       default: "1232"