From 4f007171f6981512e09e195493dea41c91088073 Mon Sep 17 00:00:00 2001 From: Joaquin Madrid Belando Date: Thu, 5 Mar 2026 16:07:08 +0100 Subject: [PATCH] Fix: resolve AMBEServer host explicitly, strip whitespace/quotes Adds socket.gethostbyname() to resolve DNS or validate IP before using it in sendto(). Also strips whitespace and quotes from host value to prevent hidden characters from config parsing. --- tts_engine.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tts_engine.py b/tts_engine.py index c817755..f8d83a8 100644 --- a/tts_engine.py +++ b/tts_engine.py @@ -177,8 +177,18 @@ def _parse_ambe_response(data): def _encode_ambe_ambeserver(wav_path, ambe_path, host, port): + host = host.strip().strip('"').strip("'") logger.info('(TTS-AMBESERVER) Conectando a AMBEServer %s:%d', host, port) + try: + _resolved_ip = socket.gethostbyname(host) + if _resolved_ip != host: + logger.info('(TTS-AMBESERVER) Host %s resuelto a %s', host, _resolved_ip) + host = _resolved_ip + except socket.gaierror as e: + logger.error('(TTS-AMBESERVER) No se puede resolver el host "%s": %s', host, e) + return False + try: sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(5.0)