From 2724bd4a94a3f75427bc2a287c88cbca69c49124 Mon Sep 17 00:00:00 2001 From: Noah Rosamilia Date: Sat, 7 May 2016 14:59:02 -0400 Subject: esp8266/scripts/webrepl: Add optional password argument to webrepl.start() This commit fixes issue #2045 --- esp8266/scripts/webrepl.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'esp8266/scripts/webrepl.py') diff --git a/esp8266/scripts/webrepl.py b/esp8266/scripts/webrepl.py index 1a2c82277..2239c2c0d 100644 --- a/esp8266/scripts/webrepl.py +++ b/esp8266/scripts/webrepl.py @@ -49,14 +49,19 @@ def stop(): listen_s.close() -def start(port=8266): +def start(port=8266, password=None): stop() - try: - import port_config - _webrepl.password(port_config.WEBREPL_PASS) + if password is None: + try: + import port_config + _webrepl.password(port_config.WEBREPL_PASS) + setup_conn(port, accept_conn) + print("Started webrepl in normal mode") + except: + import webrepl_setup + setup_conn(port, webrepl_setup.handle_conn) + print("Started webrepl in setup mode") + else: + _webrepl.password(password) setup_conn(port, accept_conn) print("Started webrepl in normal mode") - except: - import webrepl_setup - setup_conn(port, webrepl_setup.handle_conn) - print("Started webrepl in setup mode") -- cgit v1.2.3 From 13a1acc7e2d4d7ad9812be8769671b79bdf402dc Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 8 May 2016 19:59:22 +0300 Subject: esp8266/scripts/webrepl: Add start_foreground() method. Starts WebREPL server in foreground and waits for (single) connection. --- esp8266/scripts/webrepl.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'esp8266/scripts/webrepl.py') diff --git a/esp8266/scripts/webrepl.py b/esp8266/scripts/webrepl.py index 2239c2c0d..da3e70c59 100644 --- a/esp8266/scripts/webrepl.py +++ b/esp8266/scripts/webrepl.py @@ -10,7 +10,7 @@ listen_s = None client_s = None def setup_conn(port, accept_handler): - global listen_s, client_s + global listen_s listen_s = socket.socket() listen_s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) @@ -19,11 +19,13 @@ def setup_conn(port, accept_handler): listen_s.bind(addr) listen_s.listen(1) - listen_s.setsockopt(socket.SOL_SOCKET, 20, accept_handler) + if accept_handler: + listen_s.setsockopt(socket.SOL_SOCKET, 20, accept_handler) for i in (network.AP_IF, network.STA_IF): iface = network.WLAN(i) if iface.active(): print("WebREPL daemon started on ws://%s:%d" % (iface.ifconfig()[0], port)) + return listen_s def accept_conn(listen_sock): @@ -65,3 +67,9 @@ def start(port=8266, password=None): _webrepl.password(password) setup_conn(port, accept_conn) print("Started webrepl in normal mode") + + +def start_foreground(port=8266): + stop() + s = setup_conn(port, None) + accept_conn(s) -- cgit v1.2.3