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:
parent
3e0ed305a8
commit
0f41f0613a
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue