diff options
author | lovetox <philipp@hoerist.com> | 2020-03-07 01:04:04 +0300 |
---|---|---|
committer | Philipp Hörist <philipp@hoerist.com> | 2020-03-07 22:30:01 +0300 |
commit | 65e6047d2e53c39732ee6bf2ccd27856be8f0a3b (patch) | |
tree | 658cef47c988925c12060aad2f71fac73b4809b3 /gajim/common/modules/httpupload.py | |
parent | dbf695caffc2942f98f56b591d12771c27dfa661 (diff) |
HTTPUpload: Use proxy if available
Diffstat (limited to 'gajim/common/modules/httpupload.py')
-rw-r--r-- | gajim/common/modules/httpupload.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gajim/common/modules/httpupload.py b/gajim/common/modules/httpupload.py index e269bf5b3..4206f9533 100644 --- a/gajim/common/modules/httpupload.py +++ b/gajim/common/modules/httpupload.py @@ -28,6 +28,7 @@ from gi.repository import Soup from gajim.common import app from gajim.common.i18n import _ from gajim.common.helpers import get_tls_error_phrase +from gajim.common.helpers import get_user_proxy from gajim.common.const import FTState from gajim.common.filetransfer import FileTransfer from gajim.common.modules.base import BaseModule @@ -47,11 +48,21 @@ class HTTPUpload(BaseModule): self.httpupload_namespace = None self.max_file_size = None # maximum file size in bytes + self._proxy_resolver = None self._queued_messages = {} self._session = Soup.Session() self._session.props.ssl_strict = False self._session.props.user_agent = 'Gajim %s' % app.version + def _set_proxy_if_available(self): + proxy = get_user_proxy(self._account) + if proxy is None: + self._proxy_resolver = None + self._session.props.proxy_resolver = None + else: + self._proxy_resolver = proxy.get_resolver() + self._session.props.proxy_resolver = self._proxy_resolver + def pass_disco(self, info): if not info.has_httpupload: return @@ -203,6 +214,7 @@ class HTTPUpload(BaseModule): message.connect('wrote-chunk', self._on_wrote_chunk, transfer) self._queued_messages[id(transfer)] = message + self._set_proxy_if_available() self._session.queue_message(message, self._on_finish, transfer) def _check_certificate(self, message): |