Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrendan Taylor <bct@diffeq.com>2008-08-09 02:55:12 +0400
committerBrendan Taylor <bct@diffeq.com>2008-08-09 02:55:12 +0400
commitab70491d56233b599ce9789bc4155d187d7acb85 (patch)
tree2d6ef9c38e94e9264c38db0bcd977cea91f3cfa7
parentf5059b4e26fdff14df9474a2768f2c98bb342c4c (diff)
correctly decide whether to autonegotiate after a session was replaced
-rw-r--r--src/chat_control.py17
-rwxr-xr-xsrc/gajim.py3
2 files changed, 10 insertions, 10 deletions
diff --git a/src/chat_control.py b/src/chat_control.py
index b31ec65fb..8e65afe95 100644
--- a/src/chat_control.py
+++ b/src/chat_control.py
@@ -1153,7 +1153,6 @@ class ChatControl(ChatControlBase):
self.print_esession_details()
# Enable encryption if needed
- self.no_autonegotiation = False
e2e_is_active = self.session and self.session.enable_encryption
self.gpg_is_active = False
gpg_pref = gajim.config.get_per('contacts', contact.jid,
@@ -2325,18 +2324,22 @@ class ChatControl(ChatControlBase):
self.account, 'autonegotiate_esessions') and \
gajim.config.get_per('contacts',
self.contact.jid, 'autonegotiate_esessions')
+
want_e2e = not e2e_is_active and not self.gpg_is_active \
and e2e_pref
+ already_negotiating = bool(self.session and \
+ self.session.status)
+
# XXX: Once we have fallback to disco, remove
# notexistant check
- if want_e2e and not self.no_autonegotiation \
- and gajim.HAVE_PYCRYPTO \
- and gajim.capscache.is_supported(self.contact,
- NS_ESESSION) and not gajim.capscache.is_supported(
- self.contact, 'notexistant'):
+ can_e2e = gajim.HAVE_PYCRYPTO and gajim.capscache. \
+ is_supported(self.contact, NS_ESESSION) and \
+ not gajim.capscache.is_supported(self.contact,
+ 'notexistant')
+
+ if want_e2e and not already_negotiating and can_e2e:
self.begin_e2e_negotiation()
- self.no_autonegotiation = True
else:
self.send_chatstate('active', self.contact)
diff --git a/src/gajim.py b/src/gajim.py
index d520b9f42..ccb400f66 100755
--- a/src/gajim.py
+++ b/src/gajim.py
@@ -816,9 +816,6 @@ class Interface:
for sess in conn.get_sessions(ji):
if (ji+'/'+resource) != str(sess.jid):
continue
- ctrl = sess.control
- if ctrl:
- ctrl.no_autonegotiation = False
if sess.enable_encryption:
sess.terminate_e2e()
conn.delete_session(jid,