forked from platformio/platformio-core
Improved listing of multicast DNS services
This commit is contained in:
@ -8,9 +8,10 @@ PlatformIO Core 5
|
|||||||
|
|
||||||
**A professional collaborative platform for embedded development**
|
**A professional collaborative platform for embedded development**
|
||||||
|
|
||||||
5.0.4 (2020-12-??)
|
5.0.5 (2021-??-??)
|
||||||
~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
* Improved listing of `multicast DNS services <https://docs.platformio.org/page/core/userguide/device/cmd_list.html>`_
|
||||||
* Check for debug server's "ready_pattern" in "stderr"
|
* Check for debug server's "ready_pattern" in "stderr"
|
||||||
|
|
||||||
5.0.4 (2020-12-30)
|
5.0.4 (2020-12-30)
|
||||||
|
@ -24,8 +24,9 @@ from functools import wraps
|
|||||||
from glob import glob
|
from glob import glob
|
||||||
|
|
||||||
import click
|
import click
|
||||||
|
import zeroconf
|
||||||
|
|
||||||
from platformio import __version__, exception, proc
|
from platformio import __version__, compat, exception, proc
|
||||||
from platformio.compat import PY2, WINDOWS
|
from platformio.compat import PY2, WINDOWS
|
||||||
from platformio.fs import cd, load_json # pylint: disable=unused-import
|
from platformio.fs import cd, load_json # pylint: disable=unused-import
|
||||||
from platformio.proc import exec_command # pylint: disable=unused-import
|
from platformio.proc import exec_command # pylint: disable=unused-import
|
||||||
@ -162,14 +163,7 @@ def get_logical_devices():
|
|||||||
|
|
||||||
|
|
||||||
def get_mdns_services():
|
def get_mdns_services():
|
||||||
# pylint: disable=import-outside-toplevel
|
compat.ensure_python3()
|
||||||
try:
|
|
||||||
import zeroconf
|
|
||||||
except ImportError:
|
|
||||||
from platformio.package.manager.core import inject_contrib_pysite
|
|
||||||
|
|
||||||
inject_contrib_pysite()
|
|
||||||
import zeroconf # pylint: disable=import-outside-toplevel
|
|
||||||
|
|
||||||
class mDNSListener(object):
|
class mDNSListener(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -178,7 +172,15 @@ def get_mdns_services():
|
|||||||
self._found_services = []
|
self._found_services = []
|
||||||
|
|
||||||
def __enter__(self):
|
def __enter__(self):
|
||||||
zeroconf.ServiceBrowser(self._zc, "_services._dns-sd._udp.local.", self)
|
zeroconf.ServiceBrowser(
|
||||||
|
self._zc,
|
||||||
|
[
|
||||||
|
"_http._tcp.local.",
|
||||||
|
"_hap._tcp.local.",
|
||||||
|
"_services._dns-sd._udp.local.",
|
||||||
|
],
|
||||||
|
self,
|
||||||
|
)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def __exit__(self, etype, value, traceback):
|
def __exit__(self, etype, value, traceback):
|
||||||
@ -225,12 +227,7 @@ def get_mdns_services():
|
|||||||
{
|
{
|
||||||
"type": service.type,
|
"type": service.type,
|
||||||
"name": service.name,
|
"name": service.name,
|
||||||
"ip": ".".join(
|
"ip": ", ".join(service.parsed_addresses()),
|
||||||
[
|
|
||||||
str(c if isinstance(c, int) else ord(c))
|
|
||||||
for c in service.address
|
|
||||||
]
|
|
||||||
),
|
|
||||||
"port": service.port,
|
"port": service.port,
|
||||||
"properties": properties,
|
"properties": properties,
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user