]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Fix key logging for DNS over TLS
authorRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 6 Feb 2020 09:06:39 +0000 (10:06 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 6 Feb 2020 09:06:39 +0000 (10:06 +0100)
pdns/dnsdistdist/tcpiohandler.cc

index 59017d8f81cb268bf18bd5b483519d4688fa9ea3..71ca39f516c0e5682eddf0a0908130601c80c9d6 100644 (file)
@@ -42,6 +42,7 @@ public:
   OpenSSLTLSTicketKeysRing d_ticketKeys;
   std::map<int, std::string> d_ocspResponses;
   std::unique_ptr<SSL_CTX, void(*)(SSL_CTX*)> d_tlsCtx{nullptr, SSL_CTX_free};
+  std::unique_ptr<FILE, int(*)(FILE*)> d_keyLogFile{nullptr, fclose};
 };
 
 class OpenSSLTLSConnection: public TLSConnection
@@ -303,6 +304,10 @@ public:
 
     libssl_set_error_counters_callback(d_feContext->d_tlsCtx, &fe.d_tlsCounters);
 
+    if (!fe.d_tlsConfig.d_keyLogFile.empty()) {
+      d_feContext->d_keyLogFile = libssl_set_key_log_file(d_feContext->d_tlsCtx, fe.d_tlsConfig.d_keyLogFile);
+    }
+
     try {
       if (fe.d_tlsConfig.d_ticketKeyFile.empty()) {
         handleTicketsKeyRotation(time(nullptr));