webrepl: Support LAN as well as WLAN boards.

When webrepl starts, it prints out the IP address, however it does
this by querying the network.WLAN object.
This fail for board with an Ethernet interface but no WiFi interface.
We try both type of interface (and print error if none exist).

Signed-off-by: Romaric-RILLET <romaric.rillet@gmail.com>
pull/920/head
Romaric-RILLET 2024-09-05 23:29:12 +02:00
rodzic 01047889eb
commit 0cc6107cc9
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 2F3B932A0432CC65
1 zmienionych plików z 18 dodań i 3 usunięć

Wyświetl plik

@ -102,10 +102,25 @@ def setup_conn(port, accept_handler):
listen_s.listen(1)
if accept_handler:
listen_s.setsockopt(socket.SOL_SOCKET, 20, accept_handler)
started = False
for i in (network.WLAN.IF_AP, network.WLAN.IF_STA):
iface = network.WLAN(i)
if iface.active():
print("WebREPL server started on http://%s:%d/" % (iface.ifconfig()[0], port))
try:
iface = network.WLAN(i)
if iface.active():
print("WebREPL server started on http://%s:%d/" % (iface.ifconfig()[0], port))
started = True
except AttributeError:
pass
for i in (0, 1):
try:
iface = network.LAN(i)
if iface.active():
print("WebREPL server started on http://%s:%d/" % (iface.ifconfig()[0], port))
started = True
except (AttributeError, ValueError):
pass
if not started:
print("WebREPL no active interface")
return listen_s