From 0cc6107cc9fb00a4ac5e7471fb504b3005198172 Mon Sep 17 00:00:00 2001 From: Romaric-RILLET Date: Thu, 5 Sep 2024 23:29:12 +0200 Subject: [PATCH] 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 --- micropython/net/webrepl/webrepl.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/micropython/net/webrepl/webrepl.py b/micropython/net/webrepl/webrepl.py index 00da8155c..a419c8d31 100644 --- a/micropython/net/webrepl/webrepl.py +++ b/micropython/net/webrepl/webrepl.py @@ -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