banner_size = await self._reader.readexactly(4)
banner_size = struct.unpack('<i', banner_size)[0]
banner_message = await self._reader.readexactly(banner_size)
- # Get node instance:
self._call_id = 0
- self._coroot_guid = await self._call('attributsknoten',
- ['coroot_name',
- self.conf['name']])
async def _call(self, method, params):
await self._lock.acquire()
'params': params, 'id': self._call_id}
message = msgpack.packb(request)
size = struct.pack('<i', len(message))
- self._writer.write(size)
- self._writer.write(message)
- await self._writer.drain()
+ success = False
+ while not success:
+ self._writer.write(size)
+ self._writer.write(message)
+ try:
+ await self._writer.drain()
+ success = True
+ except ConnectionResetError:
+ await self._open_connection()
size = await self._reader.readexactly(4)
size = struct.unpack('<i', size)[0]
message = await self._reader.readexactly(size)
"""Open connection and get coroot instance for name."""
self._lock = asyncio.Lock()
await self._open_connection()
+ # Get coroot instance:
+ self._coroot_guid = await self._call('attributsknoten',
+ ['coroot_name',
+ self.conf['name']])