Closed lspvic closed 5 years ago
This is actually really simple to solve.
the AMIClient object already has a timeout setting that's used elsewhere:
def __init__(self, address='127.0.0.1', port=5038,
encoding='utf-8', encoding_errors='replace',
timeout=3, buffer_size=2 ** 10,
**kwargs):
The timeout would need to be handled within the connect() object due to how login() fires, but this is really straight forward!
def connect(self):
self._socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self._socket.settimeout(self._timeout)
Literally all you have to do is add the settimeout() line after the socket is created but before the actual connection is created as per https://docs.python.org/3/library/socket.html#socket-timeouts
I might have come here to specifically request this minor fix be done because I'm using python-AMI as a part of an Asterisk heartbeat setup so its either this or some value of wrapping which is bleh.
client.login
timeoutif client address is not reachable, the login function blocks for long time