Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/python-nbxmpp.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hörist <philipp@hoerist.com>2022-12-28 00:47:16 +0300
committerPhilipp Hörist <philipp@hoerist.com>2022-12-28 12:15:01 +0300
commit0da8888db96f23a7329802af544b807310792166 (patch)
treec8585d82b42cf74d2cc24b77b18b39d50f63c883 /nbxmpp/websocket.py
parent6eb48cbfbe8eb66311e00b77c738b6b7f773583a (diff)
change: Port to libsoup3
- Port code to libsoup3 - Wrap Soup.Session and Soup.Message for easier usage
Diffstat (limited to 'nbxmpp/websocket.py')
-rw-r--r--nbxmpp/websocket.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/nbxmpp/websocket.py b/nbxmpp/websocket.py
index b0cf92e..5db52d7 100644
--- a/nbxmpp/websocket.py
+++ b/nbxmpp/websocket.py
@@ -22,7 +22,6 @@ from gi.repository import GLib
from gi.repository import Gio
from nbxmpp.const import TCPState
-from nbxmpp.const import ConnectionType
from nbxmpp.util import get_websocket_close_string
from nbxmpp.util import convert_tls_error_flags
from nbxmpp.connection import Connection
@@ -35,11 +34,10 @@ class WebsocketConnection(Connection):
Connection.__init__(self, *args, **kwargs)
self._session = Soup.Session()
- self._session.props.ssl_strict = False
if self._log.getEffectiveLevel() == logging.INFO:
self._session.add_feature(
- Soup.Logger.new(Soup.LoggerLogLevel.BODY, -1))
+ Soup.Logger.new(Soup.LoggerLogLevel.BODY))
self._websocket = None
self._cancellable = Gio.Cancellable()
@@ -53,11 +51,12 @@ class WebsocketConnection(Connection):
self.state = TCPState.CONNECTING
message = Soup.Message.new('GET', self._address.uri)
- message.connect('starting', self._check_certificate)
+ message.connect('accept-certificate', self._check_certificate)
message.set_flags(Soup.MessageFlags.NO_REDIRECT)
self._session.websocket_connect_async(message,
None,
['xmpp'],
+ GLib.PRIORITY_DEFAULT,
self._cancellable,
self._on_connect,
None)
@@ -91,19 +90,20 @@ class WebsocketConnection(Connection):
# Soup.Session does this automatically
raise NotImplementedError
- def _check_certificate(self, message):
- https_used, certificate, errors = message.get_https_status()
- if not https_used and self._address.type == ConnectionType.PLAIN:
- return
+ def _check_certificate(self,
+ _message,
+ certificate,
+ errors):
self._peer_certificate = certificate
self._peer_certificate_errors = convert_tls_error_flags(errors)
if self._accept_certificate():
- return
+ return True
self.notify('bad-certificate')
self._cancellable.cancel()
+ return False
def _on_websocket_message(self, _websocket, _type, message):
data = message.get_data().decode()