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:
authorPhilipp Hörist <philipp@hoerist.com>2023-06-30 16:33:47 +0300
committerPhilipp Hörist <philipp@hoerist.com>2023-06-30 16:52:47 +0300
commitc9b0dfdcef184c281aca640a0154212c526e0504 (patch)
treedbe59a6c14c3db7014ef705f7e051cd2be2d5b33
parent5529d863c2f92b10c04a0c8e817496925bf3ed2e (diff)
fix: Don’t forget ignored TLS errors from previous connects
Fixes #11574
-rw-r--r--gajim/common/client.py1
-rw-r--r--gajim/gtk/ssl_error_dialog.py7
-rw-r--r--test/dialogs/ssl_error_dialog.py2
3 files changed, 6 insertions, 4 deletions
diff --git a/gajim/common/client.py b/gajim/common/client.py
index 39f408906..0cb217425 100644
--- a/gajim/common/client.py
+++ b/gajim/common/client.py
@@ -244,6 +244,7 @@ class Client(Observable, ClientModules):
account=self._account,
client=self,
cert=cert,
+ ignored_errors=set(self._client.ignored_tls_errors),
error=errors.pop())
elif domain in (StreamError.STREAM, StreamError.BIND):
diff --git a/gajim/gtk/ssl_error_dialog.py b/gajim/gtk/ssl_error_dialog.py
index 7846cd068..04b6366c3 100644
--- a/gajim/gtk/ssl_error_dialog.py
+++ b/gajim/gtk/ssl_error_dialog.py
@@ -29,6 +29,7 @@ class SSLErrorDialog(Gtk.ApplicationWindow):
account: str,
client: Client,
cert: Gio.TlsCertificate,
+ ignored_errors: set[Gio.TlsCertificateFlags],
error: Gio.TlsCertificateFlags
) -> None:
Gtk.ApplicationWindow.__init__(self)
@@ -44,6 +45,7 @@ class SSLErrorDialog(Gtk.ApplicationWindow):
self.account = account
self._error = error
+ self._ignored_errors = ignored_errors
self._client = client
self._cert = cert
self._server = app.settings.get_account_setting(self.account,
@@ -88,9 +90,8 @@ class SSLErrorDialog(Gtk.ApplicationWindow):
if self._ui.add_certificate_checkbutton.get_active():
app.cert_store.add_certificate(self._cert)
- ignored_tls_errors = None
if self._error == Gio.TlsCertificateFlags.EXPIRED:
- ignored_tls_errors = {Gio.TlsCertificateFlags.EXPIRED}
+ self._ignored_errors.add(Gio.TlsCertificateFlags.EXPIRED)
self.destroy()
- self._client.connect(ignored_tls_errors=ignored_tls_errors)
+ self._client.connect(ignored_tls_errors=self._ignored_errors)
diff --git a/test/dialogs/ssl_error_dialog.py b/test/dialogs/ssl_error_dialog.py
index b78eee331..5155f0bc1 100644
--- a/test/dialogs/ssl_error_dialog.py
+++ b/test/dialogs/ssl_error_dialog.py
@@ -58,7 +58,7 @@ gio_cert = Gio.TlsCertificate.new_from_pem(cert, -1)
# https://lazka.github.io/pgi-docs/#Gio-2.0/flags.html#Gio.TlsCertificateFlags
ssl_error_num = cast(Gio.TlsCertificateFlags, 10)
-win = SSLErrorDialog('testacc', MagicMock(), gio_cert, ssl_error_num)
+win = SSLErrorDialog('testacc', MagicMock(), gio_cert, set(), ssl_error_num)
win.connect('destroy', Gtk.main_quit)
win.show_all()
Gtk.main()