docs: def set_keepalive(sock, after_idle_sec=1, interval_sec=3, max_fails=5):
      """Set TCP keepalive on an open socket.
  
      It activates after 1 second (after_idle_sec) of idleness,
      then sends a keepalive ping once every 3 seconds (interval_sec),
      and closes the connection after 5 failed ping (max_fails), or 15 seconds
      """
      if hasattr(socket, "SO_KEEPALIVE"):
          sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
      if hasattr(socket, "TCP_KEEPIDLE"):
          sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, after_idle_sec)
      if hasattr(socket, "TCP_KEEPINTVL"):
          sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, interval_sec)
      if hasattr(socket, "TCP_KEEPCNT"):
          sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, max_fails)