Authentication result parsing
This commit is contained in:
12
rpc.py
12
rpc.py
@@ -112,7 +112,7 @@ class ClientSync(object):
|
||||
self.recv_rpc_msg = recv_rpc_msg(self.sock)
|
||||
self.lock = threading.Lock()
|
||||
self._server = { 'host': host, 'port': port }
|
||||
self._user = None
|
||||
self._auth = None
|
||||
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)
|
||||
@@ -148,9 +148,7 @@ class ClientSync(object):
|
||||
res = self('XUS ESSO VALIDATE', RPCType(tuple(identity[i:i+200] for i in range(0, len(identity), 200)), RPCType.GLOBAL))
|
||||
else:
|
||||
res = self('XUS AV CODE', XWBHash_encrypt(identity))
|
||||
if res[0] == '0' or res[2] != '0':
|
||||
raise RPCExcAuth(res[3], res)
|
||||
self._user = res
|
||||
self._auth = res if res[0] != '0' else None
|
||||
return res
|
||||
def keepalive(self, interval=None, *, context=('XUS SIGNON',)):
|
||||
import time
|
||||
@@ -188,7 +186,7 @@ class ClientAsync(object):
|
||||
self.arecv_rpc_msg = arecv_rpc_msg(self.reader)
|
||||
self.lock = asyncio.Lock()
|
||||
self._server = { 'host': host, 'port': port, 'info': None }
|
||||
self._user = None
|
||||
self._auth = None
|
||||
self.context = 'XUS SIGNON'
|
||||
if TCPConnect and (res := await self.TCPConnect(self.writer.get_extra_info('sockname')[0], '0', socket.gethostname())) != 'accept':
|
||||
raise RPCExcInvalidResult('TCPConnect', self.writer.get_extra_info('sockname')[0], '0', socket.gethostname(), res)
|
||||
@@ -229,9 +227,7 @@ class ClientAsync(object):
|
||||
res = await self('XUS ESSO VALIDATE', RPCType(tuple(identity[i:i+200] for i in range(0, len(identity), 200)), RPCType.GLOBAL))
|
||||
else:
|
||||
res = await self('XUS AV CODE', XWBHash_encrypt(identity))
|
||||
if res[0] == '0' or res[2] != '0':
|
||||
raise RPCExcAuth(res[3], res)
|
||||
self._user = res
|
||||
self._auth = res if res[0] != '0' else None
|
||||
return res
|
||||
async def keepalive(self, interval=None, *, context=('XUS SIGNON',)):
|
||||
interval = interval or 0.45*float((await self.XWB_GET_BROKER_INFO(context=context))[0])
|
||||
|
Reference in New Issue
Block a user