diff options
author | Philipp Hörist <philipp@hoerist.com> | 2023-04-11 00:33:19 +0300 |
---|---|---|
committer | Philipp Hörist <philipp@hoerist.com> | 2023-04-11 00:33:19 +0300 |
commit | 475d6295a7bb7bb900f968745928976527ad168b (patch) | |
tree | 96112ab0ce07ebb83bacb7085f3e69e23a7a4f86 | |
parent | 229fc4bcd5e32d37ba7f6e843ea20485766c4d3f (diff) |
fix: AccountWizard: Respect global proxy
Fixes #11452
-rw-r--r-- | gajim/common/application.py | 2 | ||||
-rw-r--r-- | gajim/gtk/account_wizard.py | 26 |
2 files changed, 19 insertions, 9 deletions
diff --git a/gajim/common/application.py b/gajim/common/application.py index 0a30fe6f6..2fca8439c 100644 --- a/gajim/common/application.py +++ b/gajim/common/application.py @@ -361,7 +361,7 @@ class CoreApplication(ged.EventHelper): 'anonymous_auth': anonymous, } - if proxy_name is not None: + if proxy_name: config['proxy'] = proxy_name use_custom_host = custom_host is not None diff --git a/gajim/gtk/account_wizard.py b/gajim/gtk/account_wizard.py index 5df4329af..f0bc97b53 100644 --- a/gajim/gtk/account_wizard.py +++ b/gajim/gtk/account_wizard.py @@ -39,6 +39,7 @@ from nbxmpp.errors import StanzaError from nbxmpp.protocol import JID from nbxmpp.protocol import validate_domainpart from nbxmpp.stringprep import saslprep +from nbxmpp.structs import ProxyData from nbxmpp.task import Task from gajim.common import app @@ -48,10 +49,12 @@ from gajim.common.const import GIO_TLS_ERRORS from gajim.common.const import SASL_ERRORS from gajim.common.events import StanzaReceived from gajim.common.events import StanzaSent +from gajim.common.helpers import get_global_proxy from gajim.common.helpers import get_proxy from gajim.common.helpers import open_uri from gajim.common.helpers import validate_jid from gajim.common.i18n import _ +from gajim.common.util.http import create_http_session from gajim.gtk.accounts import AccountsWindow from gajim.gtk.assistant import Assistant @@ -65,6 +68,8 @@ from gajim.gtk.util import get_app_window from gajim.gtk.util import get_color_for_account from gajim.gtk.util import open_window +CustomHostT = tuple[str, ConnectionProtocol, ConnectionType] + log = logging.getLogger('gajim.gtk.account_wizard') @@ -259,6 +264,15 @@ class AccountWizard(Assistant): def update_proxy_list(self) -> None: self.get_page('advanced').update_proxy_list() + def _get_proxy_data(self, advanced: bool) -> Optional[ProxyData]: + if advanced: + proxy_name = self.get_page('advanced').get_proxy() + proxy_data = get_proxy(proxy_name) + if proxy_data is not None: + return proxy_data + + return get_global_proxy() + def _get_base_client(self, domain: str, username: Optional[str], @@ -280,11 +294,9 @@ class AccountWizard(Assistant): if custom_host is not None: client.set_custom_host(*custom_host) - proxy_name = self.get_page('advanced').get_proxy() - proxy_data = get_proxy(proxy_name) - if proxy_data is not None: - client.set_proxy(proxy_data) - + proxy_data = self._get_proxy_data(advanced) + client.set_proxy(proxy_data) + client.set_http_session(create_http_session(proxy=proxy_data)) client.subscribe('disconnected', self._on_disconnected) client.subscribe('connection-failed', self._on_connection_failed) client.subscribe('stanza-sent', self._on_stanza_sent) @@ -830,9 +842,7 @@ class AdvancedSettings(Page): active = self._ui.proxies_combobox.get_active() return self._ui.proxies_combobox.get_model()[active][0] - def get_custom_host(self) -> Optional[tuple[str, - ConnectionProtocol, - ConnectionType]]: + def get_custom_host(self) -> Optional[CustomHostT]: host = self._ui.custom_host_entry.get_text() port = self._ui.custom_port_entry.get_text() if not host or not port: |