diff --git a/rpc.py b/rpc.py index d3deba6..a947381 100644 --- a/rpc.py +++ b/rpc.py @@ -113,14 +113,14 @@ class ClientSync(object): self.context = 'XUS SIGNON' if TCPConnect and (res := self.TCPConnect(self.sock.getsockname()[0], '0', socket.gethostname())) != 'accept': raise RPCExcInvalidResult('TCPConnect', self.sock.getsockname()[0], '0', socket.gethostname(), res) - def __call__(self, name: str, *args: Any, command: bool=False, envelope: int=0, context: Union[bool, None]=None, encoding='latin-1'): + def __call__(self, name: str, *args: Any, command: bool=False, envelope: int=0, context: Union[Sequence, None]=None, encoding='latin-1'): name = name.replace('_', ' ') with self.lock: if name != 'XWB CREATE CONTEXT' and context and len(context) > 0 and self.context not in context: send_rpc_msg(self.sock, rpc_pack('XWB CREATE CONTEXT', XWBHash_encrypt(context[0]), envelope=envelope, encoding=encoding)) if (res := rpc_unpack_result(next(self.recv_rpc_msg), encoding=encoding)) != '1': raise RPCExcInvalidResult('XWB CREATE CONTEXT', context[0], res) - self.context = context + self.context = context[0] send_rpc_msg(self.sock, rpc_pack(name, *args, command=command, envelope=envelope, encoding=encoding)) return rpc_unpack_result(next(self.recv_rpc_msg), encoding=encoding) def __getattr__(self, key: str, commands: set={'TCPConnect'}): @@ -195,7 +195,7 @@ class ClientAsync(object): await asend_rpc_msg(self.writer, rpc_pack('XWB CREATE CONTEXT', XWBHash_encrypt(context[0]), envelope=envelope, encoding=encoding)) if (res := rpc_unpack_result(await self.arecv_rpc_msg.__anext__(), encoding=encoding)) != '1': raise RPCExcInvalidResult('XWB CREATE CONTEXT', context[0], res) - self.context = context + self.context = context[0] await asend_rpc_msg(self.writer, rpc_pack(name, *args, command=command, envelope=envelope, encoding=encoding)) return rpc_unpack_result(await self.arecv_rpc_msg.__anext__(), encoding=encoding) def __getattr__(self, key: str, commands: set={'TCPConnect'}):