Skip to content

Commit b75d59e

Browse files
committed
Updating mdns_discovery module:
- To change to searching discovered_services dictionary values for expected mdns value instead of taking last or first value in list.
1 parent 26187af commit b75d59e

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/python_testing/mdns_discovery/mdns_discovery.py

+10-3
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,8 @@ async def get_operational_service(self,
191191
raise ValueError("Both node_id and compressed_fabric_id must be provided together or not at all.")
192192

193193
self._name_filter = f'{compressed_fabric_id:016x}-{node_id:016x}.{MdnsServiceType.OPERATIONAL.value}'.upper()
194-
return await self._get_service(MdnsServiceType.OPERATIONAL, log_output, discovery_timeout_sec)
194+
logger.info(f"name filter {self._name_filter}")
195+
return await self._get_service(MdnsServiceType.OPERATIONAL, log_output, discovery_timeout_sec, self._name_filter)
195196

196197
async def get_border_router_service(self, log_output: bool = False,
197198
discovery_timeout_sec: float = DISCOVERY_TIMEOUT_SEC
@@ -493,7 +494,8 @@ def _get_instance_name(self, service_info: AsyncServiceInfo) -> str:
493494

494495
async def _get_service(self, service_type: MdnsServiceType,
495496
log_output: bool,
496-
discovery_timeout_sec: float
497+
discovery_timeout_sec: float,
498+
expected_value: str = None,
497499
) -> Optional[MdnsServiceInfo]:
498500
"""
499501
Asynchronously discovers a specific type of mDNS service within the network and returns its details.
@@ -515,7 +517,12 @@ async def _get_service(self, service_type: MdnsServiceType,
515517
logger.info("Getting service from discovered services: %s", self._discovered_services)
516518

517519
if service_type.value in self._discovered_services:
518-
return self._discovered_services[service_type.value][-1]
520+
if expected_value is not None:
521+
for service in self._discovered_services[service_type.value]:
522+
if service.service_name == expected_value.replace("._MATTER._TCP.LOCAL.","._matter._tcp.local."):
523+
return service
524+
else:
525+
return self._discovered_services[service_type.value][0]
519526
else:
520527
return None
521528

0 commit comments

Comments
 (0)