| @ -0,0 +1,75 @@ | |||||
| #include "wifi_settings.h" | |||||
| #include "string_helper.h" | |||||
| WifiSettings::Network::Network(char const* name, Network* next): | |||||
| m_name(name), | |||||
| m_ssid(nullptr), | |||||
| m_pass(nullptr), | |||||
| m_next(next) | |||||
| { | |||||
| } | |||||
| WifiSettings::Network::~Network() | |||||
| { | |||||
| if(m_next != nullptr) | |||||
| delete m_next; | |||||
| } | |||||
| WifiSettings::WifiSettings(): | |||||
| m_first_network(nullptr) | |||||
| { | |||||
| } | |||||
| WifiSettings::~WifiSettings() | |||||
| { | |||||
| if(m_first_network != nullptr) | |||||
| delete m_first_network; | |||||
| } | |||||
| void WifiSettings::add_info(char const* network_name, char const* key, char const* val) | |||||
| { | |||||
| Network* net = find_network(network_name); | |||||
| if(net == nullptr) | |||||
| { | |||||
| net = new Network(string_copy(network_name), m_first_network); | |||||
| m_first_network = net; | |||||
| } | |||||
| if(string_equals(key, "ssid")) | |||||
| { | |||||
| if(net->m_ssid != nullptr) | |||||
| delete[] net->m_ssid; | |||||
| net->m_ssid = val; | |||||
| } | |||||
| else if(string_equals(key, "password")) | |||||
| { | |||||
| if(net->m_pass != nullptr) | |||||
| delete[] net->m_pass; | |||||
| net->m_pass = val; | |||||
| } | |||||
| else | |||||
| delete[] val; | |||||
| delete[] key; | |||||
| } | |||||
| WifiSettings::Network const* WifiSettings::networks_cbegin() const | |||||
| { | |||||
| return m_first_network; | |||||
| } | |||||
| WifiSettings::Network const* WifiSettings::networks_cend() const | |||||
| { | |||||
| return nullptr; | |||||
| } | |||||
| WifiSettings::Network* WifiSettings::find_network(char const* network_name) | |||||
| { | |||||
| for(Network* net = m_first_network; net != nullptr; net = net->m_next) | |||||
| if(string_equals(net->m_name, network_name)) | |||||
| return net; | |||||
| return nullptr; | |||||
| } | |||||