summaryrefslogtreecommitdiff
path: root/kvmd/apps/vnc
diff options
context:
space:
mode:
authorDevaev Maxim <[email protected]>2021-05-16 05:57:08 +0300
committerDevaev Maxim <[email protected]>2021-05-16 05:57:08 +0300
commit8db0ab20e0fda9796e7b3607a551e90317dfba71 (patch)
tree12db6f56df3b0b495b2d54eb16d15f2db2574bad /kvmd/apps/vnc
parent1fc8434f0a6c7c8730c8ee5a4752fb075e190fcd (diff)
tesmart rewrite
Diffstat (limited to 'kvmd/apps/vnc')
-rw-r--r--kvmd/apps/vnc/rfb/stream.py16
-rw-r--r--kvmd/apps/vnc/server.py3
2 files changed, 4 insertions, 15 deletions
diff --git a/kvmd/apps/vnc/rfb/stream.py b/kvmd/apps/vnc/rfb/stream.py
index 3f2d38b8..235a32e4 100644
--- a/kvmd/apps/vnc/rfb/stream.py
+++ b/kvmd/apps/vnc/rfb/stream.py
@@ -27,6 +27,8 @@ import struct
from typing import Tuple
from typing import Any
+from .... import aiotools
+
from .errors import RfbConnectionError
@@ -35,18 +37,6 @@ def rfb_format_remote(writer: asyncio.StreamWriter) -> str:
return "[%s]:%d" % (writer.transport.get_extra_info("peername")[:2])
-async def rfb_close_writer(writer: asyncio.StreamWriter) -> bool:
- closing = writer.is_closing()
- if not closing:
- writer.transport.abort() # type: ignore
- writer.close()
- try:
- await writer.wait_closed()
- except Exception:
- pass
- return (not closing)
-
-
class RfbClientStream:
def __init__(self, reader: asyncio.StreamReader, writer: asyncio.StreamWriter) -> None:
self.__reader = reader
@@ -145,4 +135,4 @@ class RfbClientStream:
self.__writer = ssl_writer
async def _close(self) -> None:
- await rfb_close_writer(self.__writer)
+ await aiotools.close_writer(self.__writer)
diff --git a/kvmd/apps/vnc/server.py b/kvmd/apps/vnc/server.py
index ca391292..57c111ef 100644
--- a/kvmd/apps/vnc/server.py
+++ b/kvmd/apps/vnc/server.py
@@ -55,7 +55,6 @@ from ... import aiotools
from .rfb import RfbClient
from .rfb.stream import rfb_format_remote
-from .rfb.stream import rfb_close_writer
from .rfb.errors import RfbError
from .vncauth import VncAuthKvmdCredentials
@@ -487,7 +486,7 @@ class VncServer: # pylint: disable=too-many-instance-attributes
except Exception:
logger.exception("[entry] %s: Unhandled exception in client task", remote)
finally:
- if (await rfb_close_writer(writer)):
+ if (await aiotools.close_writer(writer)):
logger.info("[entry] %s: Connection is closed in an emergency", remote)
self.__handle_client = handle_client