Revert r10159 as this breaks it completely. It's not possible to

disable E2E if for example the logging settings differ. Makes
chatting with such contacts impossible.
This commit is contained in:
js 2008-08-09 21:13:41 +00:00
parent 3e0ed305a8
commit 0f41f0613a
2 changed files with 10 additions and 10 deletions

View File

@ -1153,6 +1153,7 @@ class ChatControl(ChatControlBase):
self.print_esession_details() self.print_esession_details()
# Enable encryption if needed # Enable encryption if needed
self.no_autonegotiation = False
e2e_is_active = self.session and self.session.enable_encryption e2e_is_active = self.session and self.session.enable_encryption
self.gpg_is_active = False self.gpg_is_active = False
gpg_pref = gajim.config.get_per('contacts', contact.jid, gpg_pref = gajim.config.get_per('contacts', contact.jid,
@ -2324,22 +2325,18 @@ class ChatControl(ChatControlBase):
self.account, 'autonegotiate_esessions') and \ self.account, 'autonegotiate_esessions') and \
gajim.config.get_per('contacts', gajim.config.get_per('contacts',
self.contact.jid, 'autonegotiate_esessions') self.contact.jid, 'autonegotiate_esessions')
want_e2e = not e2e_is_active and not self.gpg_is_active \ want_e2e = not e2e_is_active and not self.gpg_is_active \
and e2e_pref and e2e_pref
already_negotiating = bool(self.session and \
self.session.status)
# XXX: Once we have fallback to disco, remove # XXX: Once we have fallback to disco, remove
# notexistant check # notexistant check
can_e2e = gajim.HAVE_PYCRYPTO and gajim.capscache. \ if want_e2e and not self.no_autonegotiation \
is_supported(self.contact, NS_ESESSION) and \ and gajim.HAVE_PYCRYPTO \
not gajim.capscache.is_supported(self.contact, and gajim.capscache.is_supported(self.contact,
'notexistant') 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.begin_e2e_negotiation()
self.no_autonegotiation = True
else: else:
self.send_chatstate('active', self.contact) self.send_chatstate('active', self.contact)

View File

@ -816,6 +816,9 @@ class Interface:
for sess in conn.get_sessions(ji): for sess in conn.get_sessions(ji):
if (ji+'/'+resource) != str(sess.jid): if (ji+'/'+resource) != str(sess.jid):
continue continue
ctrl = sess.control
if ctrl:
ctrl.no_autonegotiation = False
if sess.enable_encryption: if sess.enable_encryption:
sess.terminate_e2e() sess.terminate_e2e()
conn.delete_session(jid, conn.delete_session(jid,