server: Handle malformed server responses.
This commit is contained in:
parent
4b67dc015b
commit
32df9230ea
2 changed files with 15 additions and 3 deletions
8
main.py
8
main.py
|
@ -35,7 +35,7 @@ import logbook
|
||||||
from logbook import Logger, StderrHandler, StreamHandler
|
from logbook import Logger, StderrHandler, StreamHandler
|
||||||
|
|
||||||
import nio
|
import nio
|
||||||
from nio import TransportType
|
from nio import TransportType, RemoteTransportError
|
||||||
|
|
||||||
from matrix.colors import Formatted
|
from matrix.colors import Formatted
|
||||||
from matrix.utf import utf8_decode
|
from matrix.utf import utf8_decode
|
||||||
|
@ -296,7 +296,11 @@ def receive_cb(server_name, file_descriptor):
|
||||||
server.disconnect()
|
server.disconnect()
|
||||||
break
|
break
|
||||||
|
|
||||||
server.client.receive(data)
|
try:
|
||||||
|
server.client.receive(data)
|
||||||
|
except RemoteTransportError as e:
|
||||||
|
server.error(str(e))
|
||||||
|
server.disconnect()
|
||||||
|
|
||||||
response = server.client.next_response()
|
response = server.client.next_response()
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ from matrix.plugin_options import Option, DebugType
|
||||||
from matrix.utils import (key_from_value, prnt_debug, server_buffer_prnt,
|
from matrix.utils import (key_from_value, prnt_debug, server_buffer_prnt,
|
||||||
create_server_buffer)
|
create_server_buffer)
|
||||||
from matrix.utf import utf8_decode
|
from matrix.utf import utf8_decode
|
||||||
from matrix.globals import W, SERVERS
|
from matrix.globals import W, SERVERS, SCRIPT_NAME
|
||||||
from .buffer import RoomBuffer, OwnMessage, OwnAction
|
from .buffer import RoomBuffer, OwnMessage, OwnAction
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -279,6 +279,14 @@ class MatrixServer:
|
||||||
# type: (MatrixServer) -> None
|
# type: (MatrixServer) -> None
|
||||||
self.send_buffer = b""
|
self.send_buffer = b""
|
||||||
|
|
||||||
|
def error(self, message):
|
||||||
|
buf = ""
|
||||||
|
if self.server_buffer:
|
||||||
|
buf = self.server_buffer
|
||||||
|
|
||||||
|
msg = "{prefix}{}: {}".format(SCRIPT_NAME, message)
|
||||||
|
W.prnt(buf, msg)
|
||||||
|
|
||||||
def send(self, data):
|
def send(self, data):
|
||||||
# type: (bytes) -> bool
|
# type: (bytes) -> bool
|
||||||
self.try_send(data)
|
self.try_send(data)
|
||||||
|
|
Loading…
Add table
Reference in a new issue