From 973e61557b88c1d73fbfae69fad07ccde8c9bca0 Mon Sep 17 00:00:00 2001 From: Sergey Avseyev Date: Tue, 8 Jan 2019 20:03:05 +0000 Subject: [PATCH] [cervantes] automatically restore wifi connection (#4463) --- frontend/device/cervantes/device.lua | 1 + frontend/ui/network/manager.lua | 2 +- platform/cervantes/restore-wifi-async.sh | 31 ++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100755 platform/cervantes/restore-wifi-async.sh diff --git a/frontend/device/cervantes/device.lua b/frontend/device/cervantes/device.lua index 2cff9aa6d..243260c2c 100644 --- a/frontend/device/cervantes/device.lua +++ b/frontend/device/cervantes/device.lua @@ -170,6 +170,7 @@ function Cervantes:initNetworkManager(NetworkMgr) os.execute("./release-ip.sh") end function NetworkMgr:restoreWifiAsync() + os.execute("./restore-wifi-async.sh") end function NetworkMgr:isWifiOn() return 1 == isConnected() diff --git a/frontend/ui/network/manager.lua b/frontend/ui/network/manager.lua index 30da119cc..0fd99777f 100644 --- a/frontend/ui/network/manager.lua +++ b/frontend/ui/network/manager.lua @@ -187,7 +187,7 @@ function NetworkMgr:getRestoreMenuTable() return { text = _("Automatically restore Wi-Fi connection after resume"), checked_func = function() return G_reader_settings:nilOrTrue("auto_restore_wifi") end, - enabled_func = function() return Device:isKobo() end, + enabled_func = function() return Device:isKobo() or Device:isCervantes() end, callback = function() G_reader_settings:flipNilOrTrue("auto_restore_wifi") end, } end diff --git a/platform/cervantes/restore-wifi-async.sh b/platform/cervantes/restore-wifi-async.sh new file mode 100755 index 000000000..e3fa99d67 --- /dev/null +++ b/platform/cervantes/restore-wifi-async.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +RunWpaCli() { + ./luajit < /dev/null", "w") + local idx = 0 + for ssid, network in pairs(settings.data) do + cli:write("add_network\n") + cli:write("set_network " .. tostring(idx) .. " ssid \"" .. ssid .. "\"\n") + cli:write("set_network " .. tostring(idx) .. " psk \"" .. network["password"] .. "\"\n") + cli:write("enable_network " .. tostring(idx) .. "\n") + idx = idx + 1 + end + cli:close() +EOF +} + +RestoreWifi() { + echo "[$(date)] restore-wifi-async.sh: Restarting WiFi" + ./enable-wifi.sh + RunWpaCli + ./obtain-ip.sh + echo "[$(date)] restore-wifi-async.sh: Restarted WiFi" +} + +RestoreWifi &