diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a6b7d4..974ff97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # CHANGELOG ## not released +- client: changed socket mode from blocking to timeout (fixes #89) - parser: Added optionally distance calculation (fixes #86) - parser: Added support for weather data from FANET ground stations - parser: Added support for latency in receiver messages (OGNSDR) (fixes #87) diff --git a/ogn/client/client.py b/ogn/client/client.py index 14add06..cc60461 100644 --- a/ogn/client/client.py +++ b/ogn/client/client.py @@ -26,6 +26,7 @@ class AprsClient: # create socket, connect to server, login and make a file object associated with the socket self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) + self.sock.settimeout(5) if self.aprs_filter: port = self.settings.APRS_SERVER_PORT_CLIENT_DEFINED_FILTERS @@ -73,10 +74,10 @@ class AprsClient: break callback(packet_str, **kwargs) - except ConnectionError: - self.logger.error('ConnectionError', exc_info=True) except socket.error: self.logger.error('socket.error', exc_info=True) + except OSError: + self.logger.error('OSError', exc_info=True) except UnicodeDecodeError: self.logger.error('UnicodeDecodeError', exc_info=True)