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:
authorlovetox <philipp@hoerist.com>2020-03-07 01:04:04 +0300
committerPhilipp Hörist <philipp@hoerist.com>2020-03-07 22:30:01 +0300
commit65e6047d2e53c39732ee6bf2ccd27856be8f0a3b (patch)
tree658cef47c988925c12060aad2f71fac73b4809b3 /gajim/common/modules/httpupload.py
parentdbf695caffc2942f98f56b591d12771c27dfa661 (diff)
HTTPUpload: Use proxy if available
Diffstat (limited to 'gajim/common/modules/httpupload.py')
-rw-r--r--gajim/common/modules/httpupload.py12
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):