From 3eef6368268c2d46db3b31bf907959da36dbf2a4 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Mon, 31 Oct 2022 06:57:39 -0500 Subject: [PATCH] feat: speed up auth phase (#131) --- src/dbus_fast/aio/message_bus.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/dbus_fast/aio/message_bus.py b/src/dbus_fast/aio/message_bus.py index b0941f6..8d5aea3 100644 --- a/src/dbus_fast/aio/message_bus.py +++ b/src/dbus_fast/aio/message_bus.py @@ -430,7 +430,9 @@ class MessageBus(BaseMessageBus): async def _auth_readline(self) -> str: buf = b"" while buf[-2:] != b"\r\n": - buf += await self._loop.sock_recv(self._sock, 2) + # The auth protocol is line based, so we can read until we get a + # newline. + buf += await self._loop.sock_recv(self._sock, 1024) return buf[:-2].decode() async def _authenticate(self) -> None: @@ -455,6 +457,9 @@ class MessageBus(BaseMessageBus): ) self._stream.flush() if response == "BEGIN": + # The first octet received by the server after the \r\n of the BEGIN command + # from the client must be the first octet of the authenticated/encrypted stream + # of D-Bus messages. break def disconnect(self) -> None: