diff options
Diffstat (limited to 'esp8266/scripts/webrepl.py')
-rw-r--r-- | esp8266/scripts/webrepl.py | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/esp8266/scripts/webrepl.py b/esp8266/scripts/webrepl.py index 1a2c82277e..da3e70c595 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): @@ -49,14 +51,25 @@ 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") + + +def start_foreground(port=8266): + stop() + s = setup_conn(port, None) + accept_conn(s) |