Skip to content

Commit 1ae9b21

Browse files
committed
Add functionality to get list of WiFi countries
1 parent eb06a17 commit 1ae9b21

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

netconnectd/protocol.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,12 @@ class ForgetWifiMessage(Message):
145145
class ResetMessage(Message):
146146
__cmd__ = "reset"
147147

148+
class CountryList(Message):
149+
__cmd__ = "country_list"
150+
151+
class SetCountry(Message):
152+
__cmd__ = "set_country"
153+
148154

149155
class Response(object):
150156
def __str__(self):

netconnectd/server.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
StatusMessage,
3434
SuccessResponse,
3535
ErrorResponse,
36+
CountryList,
37+
SetCountry,
3638
)
3739

3840

@@ -349,6 +351,8 @@ def start(self):
349351
message_callbacks[StatusMessage.__cmd__] = self.on_status_message
350352
message_callbacks[ResetMessage.__cmd__] = self.on_reset_message
351353
message_callbacks[ForgetWifiMessage.__cmd__] = self.on_forget_wifi_message
354+
message_callbacks[CountryList.__cmd__] = self.on_country_list_message
355+
message_callbacks[SetCountry.__cmd__] = self.on_set_country_message
352356

353357
self._socket_monitor(self.server_address, callbacks=message_callbacks)
354358

@@ -757,6 +761,24 @@ def on_link_change(self, former_link, current_link, current_devs):
757761
self.logger.info("Link still down, starting access point")
758762
self.start_ap()
759763

764+
def on_country_list_message(self, message):
765+
country = None
766+
try:
767+
with open('/etc/wpa_supplicant/wpa_supplicant.conf') as wpa_s_c:
768+
for line in wpa_s_c:
769+
line = line.strip()
770+
if line.startswith("country="):
771+
country = line.split("=", 1)[1]
772+
break
773+
except:
774+
pass
775+
return True, {"country": country,
776+
"countries": self.country_list,}
777+
778+
def on_set_country_message(self, message):
779+
# Todo - set country
780+
pass
781+
760782
@property
761783
def wifi_connection_ssid(self):
762784
ssid = None

0 commit comments

Comments
 (0)