Skip to content

Commit 3dc0eb3

Browse files
committed
fix 4.1 bugs
1 parent 216b1f8 commit 3dc0eb3

File tree

1 file changed

+8
-20
lines changed

1 file changed

+8
-20
lines changed

wifi.py

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,9 @@ def get_ap_params(cls):
148148
@classmethod
149149
def set_start_as_client(cls):
150150
cls._config["wifi_mode"] = "client"
151-
os.system("sudo sed -i s/^disabled_network=/network=/ /etc/wpa_supplicant/wpa_supplicant.conf")
151+
os.system("sudo systemctl disable hostapd")
152+
os.system("sudo systemctl disable dnsmasq")
153+
os.system("sudo cp /etc/dhcpcd.conf.client /etc/dhcpcd.conf")
152154
cls.save_config()
153155

154156
@classmethod
@@ -162,34 +164,19 @@ def start_as_client(cls):
162164
time.sleep(1.0)
163165
ipaddr = cls.get_ipaddr("wlan0")
164166
if ipaddr is None or "169.254" in ipaddr:
165-
os.system("sudo pkill wpa_supplicant")
166167
raise Exception()
167-
try:
168-
cls.register_ipaddr(cls.get_macaddr("wlan0"), cls.get_config().get('bot_name', 'CoderBot'), cls.get_ipaddr("wlan0"), "roberto.previtera@gmail.com")
169-
print("registered bot, ip: " + str(cls.get_ipaddr("wlan0") + " name: " + cls.get_config().get('bot_name', 'CoderBot')))
170-
except:
171-
pass
172168
except subprocess.CalledProcessError as e:
173169
print(e.output)
174170
raise
175171

176172
@classmethod
177173
def set_start_as_ap(cls):
178174
cls._config["wifi_mode"] = "ap"
179-
os.system("sudo sed -i s/^network=/disabled_network=/ /etc/wpa_supplicant/wpa_supplicant.conf")
175+
os.system("sudo systemctl enable hostapd")
176+
os.system("sudo systemctl enable dnsmasq")
177+
os.system("sudo cp /etc/dhcpcd.conf.ap /etc/dhcpcd.conf")
180178
cls.save_config()
181179

182-
@classmethod
183-
def start_as_ap(cls):
184-
time.sleep(1.0)
185-
out = str(subprocess.check_output(["ip", "link", "set", "dev", "wlan0", "down"]))
186-
out += str(subprocess.check_output(["ip", "a", "add", "10.0.0.1/24", "dev", "wlan0"]))
187-
out += str(subprocess.check_output(["ip", "link", "set", "dev", "wlan0", "up"]))
188-
out += str(subprocess.check_output(["ifconfig"]))
189-
print("start_as_ap: " + str(out))
190-
cls.start_hostapd()
191-
cls.start_dnsmasq()
192-
193180
@classmethod
194181
def start_service(cls):
195182
config = cls.load_config()
@@ -202,7 +189,8 @@ def start_service(cls):
202189
cls.start_as_client()
203190
except:
204191
print("Unable to register ip, revert to ap mode")
205-
cls.start_as_ap()
192+
cls.set_start_as_ap()
193+
os.system("sudo reboot")
206194

207195
@classmethod
208196
def get_hostapd_config_file(cls):

0 commit comments

Comments
 (0)