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.
pull/26/head
Joaquin Madrid Belando 3 weeks ago
parent dc9520e00a
commit 4f007171f6

@ -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)

Loading…
Cancel
Save

Powered by TurnKey Linux.