Browse Source

give 5s for logon handler to call disconnect; #22

pull/34/head
Rossen Georgiev 9 years ago
parent
commit
cf7b5223b2
  1. 7
      steam/core/cm.py

7
steam/core/cm.py

@ -36,6 +36,7 @@ class CMClient(EventEmitter):
servers = None #: a instance of :class:`steam.core.cm.CMServerList`
current_server_addr = None #: (ip, port) tuple
_seen_logon = False
_connecting = False
connected = False #: :class:`True` if connected to CM
channel_secured = False #: :class:`True` once secure channel handshake is complete
@ -157,6 +158,7 @@ class CMClient(EventEmitter):
'steam_id',
'session_id',
'webapi_authenticate_user_nonce',
'_seen_logon',
'_recv_loop',
'_heartbeat_loop',
]:
@ -210,6 +212,10 @@ class CMClient(EventEmitter):
gevent.spawn(self._parse_message, message)
gevent.idle()
if not self._seen_logon and self.channel_secured:
if self.wait_event('disconnected', timeout=5) is not None:
return
gevent.spawn(self.disconnect)
def _parse_message(self, message):
@ -331,6 +337,7 @@ class CMClient(EventEmitter):
self.servers.mark_bad(self.current_server_addr)
self.disconnect(True)
elif result == EResult.OK:
self._seen_logon = True
self._reconnect_backoff_c = 0
self._LOG.debug("Logon completed")

Loading…
Cancel
Save