feat: validate credentials, persist them, and switch without rebooting
This commit is contained in:
@@ -16,6 +16,8 @@ int main(void) {
|
||||
assert(network_manager_tick(&manager, 30009U) == NETWORK_ACTION_NONE);
|
||||
assert(network_manager_tick(&manager, 30010U) == NETWORK_ACTION_FALLBACK);
|
||||
assert(network_manager_disconnected(&manager, 400U) == NETWORK_ACTION_CONNECT);
|
||||
assert(network_manager_disconnected(&manager, 1000U) == NETWORK_ACTION_CONNECT);
|
||||
assert(network_manager_tick(&manager, 30400U) == NETWORK_ACTION_FALLBACK);
|
||||
assert(network_manager_connected(&manager) == NETWORK_ACTION_NONE && manager.state == NETWORK_STATE_EXTERNAL);
|
||||
assert(network_manager_begin_validation(&manager, &next));
|
||||
assert(network_manager_finish_validation(&manager, false, 500U) == NETWORK_ACTION_NONE && strcmp(manager.profile.ssid, "Home") == 0);
|
||||
@@ -24,6 +26,8 @@ int main(void) {
|
||||
network_credential_record_t record; network_profile_t restored = {0};
|
||||
assert(network_credential_encode(&next, &record)); assert(network_credential_decode(&record, &restored)); assert(strcmp(restored.password, "newsecret") == 0);
|
||||
record.profile.ssid[0] = 'X'; assert(!network_credential_decode(&record, &restored));
|
||||
assert(network_credential_encode(&next, &record)); ++record.version; assert(!network_credential_decode(&record, &restored));
|
||||
assert(network_credential_encode(&next, &record)); record.profile.password[0] = '\0'; assert(!network_credential_decode(&record, &restored));
|
||||
memory_store_t store = {0}; network_credential_backend_t backend = {&store, read_record, write_record, delete_record};
|
||||
assert(network_credential_replace(&backend, &home)); assert(network_credential_load(&backend, &restored)); assert(strcmp(restored.ssid, "Home") == 0);
|
||||
store.record.profile.ssid[0] = 'X'; assert(!network_credential_load(&backend, &restored));
|
||||
|
||||
Reference in New Issue
Block a user