diff --git a/src/ddns_service/server.py b/src/ddns_service/server.py index 50e61dd..df2f9f7 100644 --- a/src/ddns_service/server.py +++ b/src/ddns_service/server.py @@ -7,6 +7,7 @@ import ipaddress import json import logging import signal +import socket import ssl import threading @@ -648,9 +649,10 @@ def run_daemon(app): app.config["daemon"]["ssl_cert_file"], app.config["daemon"]["ssl_key_file"] ) - # Note: existing connections use old cert, new connections use new + fd = server.socket.detach() + raw_socket = socket.socket(fileno=fd) server.socket = new_context.wrap_socket( - server.socket.detach(), server_side=True + raw_socket, server_side=True ) except Exception as e: logging.error(f"Config reload failed: {e}")