X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=gps303%2Fcollector.py;h=ef80cc534c0a9683f5219fc676fddb0bd0708d69;hb=b955a03a2d2146a705ac4d19047cc26b38cdd878;hp=c2efd79b82182e13319526a644abccb0e85071b9;hpb=84c11e46ef8ec36824b0d040972de37e41943b5d;p=loctrkd.git diff --git a/gps303/collector.py b/gps303/collector.py index c2efd79..ef80cc5 100644 --- a/gps303/collector.py +++ b/gps303/collector.py @@ -3,7 +3,14 @@ from configparser import ConfigParser from logging import getLogger from os import umask -from socket import socket, AF_INET6, SOCK_STREAM, SOL_SOCKET, SO_REUSEADDR +from socket import ( + socket, + AF_INET6, + SOCK_STREAM, + SOL_SOCKET, + SO_KEEPALIVE, + SO_REUSEADDR, +) from struct import pack from time import time from typing import Dict, List, Optional, Tuple @@ -206,6 +213,7 @@ def runserver(conf: ConfigParser, handle_hibernate: bool = True) -> None: break elif sk == tcpfd: clntsock, clntaddr = tcpl.accept() + clntsock.setsockopt(SOL_SOCKET, SO_KEEPALIVE, 1) topoll.append((clntsock, clntaddr)) elif fl & zmq.POLLIN: received = clients.recv(sk)