server: Return earlier in WSChiaConnection.__getattr__ (#13875)

* server: Return earlier in `WSChiaConnection.__getattr__`

* Tweak message names
This commit is contained in:
dustinface 2022-11-09 21:19:43 +01:00 committed by GitHub
parent 0e5168b3cf
commit 8394857ca2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -317,26 +317,26 @@ class WSChiaConnection:
if attribute is None:
raise AttributeError(f"Node type {self.connection_type} does not have method {attr_name}")
msg: Message = Message(uint8(getattr(ProtocolMessageTypes, attr_name).value), None, args[0])
request = Message(uint8(getattr(ProtocolMessageTypes, attr_name).value), None, args[0])
request_start_t = time.time()
result = await self.send_request(msg, timeout)
response = await self.send_request(request, timeout)
self.log.debug(
f"Time for request {attr_name}: {self.get_peer_logging()} = {time.time() - request_start_t}, "
f"None? {result is None}"
f"None? {response is None}"
)
if result is not None:
sent_message_type = ProtocolMessageTypes(msg.type)
recv_message_type = ProtocolMessageTypes(result.type)
if not message_response_ok(sent_message_type, recv_message_type):
# peer protocol violation
error_message = f"WSConnection.invoke sent message {sent_message_type.name} "
f"but received {recv_message_type.name}"
await self.ban_peer_bad_protocol(self.error_message)
raise ProtocolError(Err.INVALID_PROTOCOL_MESSAGE, [error_message])
if response is None:
return None
sent_message_type = ProtocolMessageTypes(request.type)
recv_message_type = ProtocolMessageTypes(response.type)
if not message_response_ok(sent_message_type, recv_message_type):
# peer protocol violation
error_message = f"WSConnection.invoke sent message {sent_message_type.name} "
f"but received {recv_message_type.name}"
await self.ban_peer_bad_protocol(self.error_message)
raise ProtocolError(Err.INVALID_PROTOCOL_MESSAGE, [error_message])
recv_method = getattr(class_for_type(self.local_type), recv_message_type.name)
result = get_metadata(recv_method).message_class.from_bytes(result.data)
return result
recv_method = getattr(class_for_type(self.local_type), recv_message_type.name)
return get_metadata(recv_method).message_class.from_bytes(response.data)
return invoke