diff mbox series

[v3,1/4] knownnetworks: Add UPDATED event

Message ID 20231219180826.201540-1-prestwoj@gmail.com (mailing list archive)
State Accepted, archived
Headers show
Series [v3,1/4] knownnetworks: Add UPDATED event | expand

Checks

Context Check Description
tedd_an/pre-ci_am success Success
prestwoj/iwd-alpine-ci-fetch success Fetch PR
prestwoj/iwd-ci-fetch success Fetch PR
prestwoj/iwd-ci-gitlint success GitLint
prestwoj/iwd-ci-makedistcheck success Make Distcheck
prestwoj/iwd-alpine-ci-makedistcheck success Make Distcheck
prestwoj/iwd-ci-build success Build - Configure
prestwoj/iwd-alpine-ci-build success Build - Configure
prestwoj/iwd-ci-makecheckvalgrind success Make Check w/Valgrind
prestwoj/iwd-ci-makecheck success Make Check
prestwoj/iwd-ci-clang success clang PASS
prestwoj/iwd-alpine-ci-makecheckvalgrind success Make Check w/Valgrind
prestwoj/iwd-alpine-ci-makecheck success Make Check
prestwoj/iwd-ci-incremental_build success Incremental Build with patches
prestwoj/iwd-alpine-ci-incremental_build success Incremental Build with patches
prestwoj/iwd-ci-testrunner success test-runner PASS

Commit Message

James Prestwood Dec. 19, 2023, 6:08 p.m. UTC
If a known network is modified on disk known networks does not have
any way of notifying other modules. This will be needed to support a
corner case in DPP if a profile exists but is overwritten after DPP
configuration. Add this event to known networks and handle it in
network.c (though nothing needs to be done in that case).
---
 src/knownnetworks.c | 4 ++++
 src/knownnetworks.h | 1 +
 src/network.c       | 2 ++
 3 files changed, 7 insertions(+)

v3:
 * Removed bulk of this change, just emit UPDATED to let DPP know the
   profile was seen by knownnetworks

Comments

Denis Kenzior Dec. 20, 2023, 1:49 a.m. UTC | #1
Hi James,

On 12/19/23 12:08, James Prestwood wrote:
> If a known network is modified on disk known networks does not have
> any way of notifying other modules. This will be needed to support a
> corner case in DPP if a profile exists but is overwritten after DPP
> configuration. Add this event to known networks and handle it in
> network.c (though nothing needs to be done in that case).
> ---
>   src/knownnetworks.c | 4 ++++
>   src/knownnetworks.h | 1 +
>   src/network.c       | 2 ++
>   3 files changed, 7 insertions(+)
> 
> v3:
>   * Removed bulk of this change, just emit UPDATED to let DPP know the
>     profile was seen by knownnetworks
> 

All applied, thanks.

Regards,
-Denis
diff mbox series

Patch

diff --git a/src/knownnetworks.c b/src/knownnetworks.c
index d4d50a6f..04ce74ec 100644
--- a/src/knownnetworks.c
+++ b/src/knownnetworks.c
@@ -468,6 +468,10 @@  void known_network_update(struct network_info *network,
 	known_network_set_autoconnect(network, new->is_autoconnectable);
 
 	memcpy(&network->config, new, sizeof(struct network_config));
+
+	WATCHLIST_NOTIFY(&known_network_watches,
+				known_networks_watch_func_t,
+				KNOWN_NETWORKS_EVENT_UPDATED, network);
 }
 
 bool known_networks_foreach(known_networks_foreach_func_t function,
diff --git a/src/knownnetworks.h b/src/knownnetworks.h
index 0a5c9e25..e8ffac0b 100644
--- a/src/knownnetworks.h
+++ b/src/knownnetworks.h
@@ -35,6 +35,7 @@  struct network_info;
 enum known_networks_event {
 	KNOWN_NETWORKS_EVENT_ADDED,
 	KNOWN_NETWORKS_EVENT_REMOVED,
+	KNOWN_NETWORKS_EVENT_UPDATED,
 };
 
 struct network_info_ops {
diff --git a/src/network.c b/src/network.c
index 3918ae08..4723334e 100644
--- a/src/network.c
+++ b/src/network.c
@@ -2033,6 +2033,8 @@  static void known_networks_changed(enum known_networks_event event,
 	case KNOWN_NETWORKS_EVENT_REMOVED:
 		station_foreach(emit_known_network_removed, (void *) info);
 		break;
+	case KNOWN_NETWORKS_EVENT_UPDATED:
+		break;
 	}
 }