property last_connection, used to prevend

double connections
This commit is contained in:
Dimitur Kirov 2006-03-15 20:10:52 +00:00
parent 032ed4f22c
commit 7afb58426a
2 changed files with 8 additions and 2 deletions

View File

@ -162,6 +162,8 @@ class Connection:
self.name = name self.name = name
self.connected = 0 # offline self.connected = 0 # offline
self.connection = None # xmpppy instance self.connection = None # xmpppy instance
# this property is used to prevent double connections
self.last_connection = None # last TcpClient instance
self.gpg = None self.gpg = None
self.vcard_sha = None self.vcard_sha = None
self.vcard_shas = {} # sha of contacts self.vcard_shas = {} # sha of contacts
@ -1816,6 +1818,9 @@ class Connection:
def connect_to_next_host(self): def connect_to_next_host(self):
if len(self._hosts): if len(self._hosts):
if self.last_connection:
self.last_connection.socket.disconnect()
self.last_connection = None
if gajim.verbose: if gajim.verbose:
con = common.xmpp.NonBlockingClient(self._hostname, caller = self, con = common.xmpp.NonBlockingClient(self._hostname, caller = self,
on_connect = self.on_connect_success, on_connect = self.on_connect_success,
@ -1824,13 +1829,14 @@ class Connection:
con = common.xmpp.NonBlockingClient(self._hostname, debug = [], caller = self, con = common.xmpp.NonBlockingClient(self._hostname, debug = [], caller = self,
on_connect = self.on_connect_success, on_connect = self.on_connect_success,
on_connect_failure = self.connect_to_next_host) on_connect_failure = self.connect_to_next_host)
self.last_connection = con
# increase default timeout for server responses # increase default timeout for server responses
common.xmpp.dispatcher_nb.DEFAULT_TIMEOUT_SECONDS = self.try_connecting_for_foo_secs common.xmpp.dispatcher_nb.DEFAULT_TIMEOUT_SECONDS = self.try_connecting_for_foo_secs
con.set_idlequeue(gajim.idlequeue) con.set_idlequeue(gajim.idlequeue)
host = self.select_next_host(self._hosts) host = self.select_next_host(self._hosts)
self._current_host = host self._current_host = host
self._hosts.remove(host) self._hosts.remove(host)
res = con.connect((host['host'], host['port']), proxy = self._proxy, con.connect((host['host'], host['port']), proxy = self._proxy,
secure = self._secure) secure = self._secure)
return return
else: else:

View File

@ -116,7 +116,7 @@ class NBCommonClient(CommonClient):
def _on_connected_failure(self): def _on_connected_failure(self):
if self.socket: if self.socket:
self.socket.PlugOut() self.socket.disconnect()
if self.on_connect_failure: if self.on_connect_failure:
self.on_connect_failure() self.on_connect_failure()