support only_prefix flag on discover node

This commit is contained in:
Florent de Lamotte 2025-11-07 12:59:16 +01:00
parent d3c9c8d984
commit a61616297e
3 changed files with 17 additions and 5 deletions

View file

@ -10,9 +10,9 @@ logger = logging.getLogger("meshcore")
class ControlDataCommandHandler(CommandHandlerBase):
"""Helper functions to handle binary requests through binary commands"""
async def send_control_data (self, control_type: ControlType, payload: bytes) -> Event:
async def send_control_data (self, control_type: int, payload: bytes) -> Event:
data = bytearray([PacketType.SEND_CONTROL_DATA.value])
data.extend(control_type.value.to_bytes(1, "little", signed = False))
data.extend(control_type.to_bytes(1, "little", signed = False))
data.extend(payload)
result = await self.send(data, [EventType.OK, EventType.ERROR])
@ -21,6 +21,7 @@ class ControlDataCommandHandler(CommandHandlerBase):
async def send_node_discover_req (
self,
filter: int,
prefix_only: bool=True,
tag: int=None,
since: int=None
) -> Event:
@ -36,7 +37,11 @@ class ControlDataCommandHandler(CommandHandlerBase):
logger.debug(f"sending node discover req {data.hex()}")
res = await self.send_control_data(ControlType.NODE_DISCOVER_REQ, data)
flags = 0
flags = flags | 1 if prefix_only else flags
res = await self.send_control_data(
ControlType.NODE_DISCOVER_REQ.value|flags, data)
if res is None:
return None

View file

@ -618,7 +618,14 @@ class MessageReader:
ndr["node_type"] = payload_type & 0x0F
ndr["SNR_in"] = int.from_bytes(pbuf.read(1), byteorder="little", signed=True)/4
ndr["tag"] = pbuf.read(4).hex()
ndr["pubkey"] = pbuf.read(32).hex()
pubkey = pbuf.read()
if len(pubkey) < 32:
pubkey = pubkey[0:8]
else:
pubkey = pubkey[0:32]
ndr["pubkey"] = pubkey.hex()
attributes = {
"node_type" : ndr["node_type"],