@@ -148,7 +148,9 @@ def get_ap_params(cls):
148
148
@classmethod
149
149
def set_start_as_client (cls ):
150
150
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" )
152
154
cls .save_config ()
153
155
154
156
@classmethod
@@ -162,34 +164,19 @@ def start_as_client(cls):
162
164
time .sleep (1.0 )
163
165
ipaddr = cls .get_ipaddr ("wlan0" )
164
166
if ipaddr is None or "169.254" in ipaddr :
165
- os .system ("sudo pkill wpa_supplicant" )
166
167
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
172
168
except subprocess .CalledProcessError as e :
173
169
print (e .output )
174
170
raise
175
171
176
172
@classmethod
177
173
def set_start_as_ap (cls ):
178
174
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" )
180
178
cls .save_config ()
181
179
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
-
193
180
@classmethod
194
181
def start_service (cls ):
195
182
config = cls .load_config ()
@@ -202,7 +189,8 @@ def start_service(cls):
202
189
cls .start_as_client ()
203
190
except :
204
191
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" )
206
194
207
195
@classmethod
208
196
def get_hostapd_config_file (cls ):
0 commit comments