| @ -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; | |||
| } | |||