diff options
author | Philipp Hörist <philipp@hoerist.com> | 2023-06-30 16:33:47 +0300 |
---|---|---|
committer | Philipp Hörist <philipp@hoerist.com> | 2023-06-30 16:52:47 +0300 |
commit | c9b0dfdcef184c281aca640a0154212c526e0504 (patch) | |
tree | dbe59a6c14c3db7014ef705f7e051cd2be2d5b33 | |
parent | 5529d863c2f92b10c04a0c8e817496925bf3ed2e (diff) |
fix: Don’t forget ignored TLS errors from previous connects
Fixes #11574
-rw-r--r-- | gajim/common/client.py | 1 | ||||
-rw-r--r-- | gajim/gtk/ssl_error_dialog.py | 7 | ||||
-rw-r--r-- | test/dialogs/ssl_error_dialog.py | 2 |
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() |