diff mbox series

[V2,3/3] handler: Print registered session & global handlers

Message ID 20240615162456.2732415-1-stefano.babic@swupdate.org
State New
Headers show
Series None | expand

Commit Message

Stefano Babic June 15, 2024, 4:24 p.m. UTC
From: "Storm, Christian" <christian.storm@siemens.com>

With Lua handlers having become session handlers, print
them as well on SWUpdate startup.

Signed-off-by: Christian Storm <christian.storm@siemens.com>
Signed-off-by: Stefano Babic <stefano.babic@swupdate.org>
---

Changes since V1:
	- fix defect discovered by coverity

 core/handler.c          | 13 +++++++++----
 core/swupdate.c         |  2 +-
 corelib/lua_interface.c |  1 +
 include/handler.h       |  2 +-
 4 files changed, 12 insertions(+), 6 deletions(-)

--
2.34.1
diff mbox series

Patch

diff --git a/core/handler.c b/core/handler.c
index 74a211ac..c6fa30ae 100644
--- a/core/handler.c
+++ b/core/handler.c
@@ -98,16 +98,21 @@  void unregister_session_handlers(void)
 	}
 }

-void print_registered_handlers(void)
+void print_registered_handlers(bool global)
 {
 	unsigned int i;

 	if (!nr_installers)
 		return;
-
-	INFO("Registered handlers:");
+	/*
+	 * Invert logic to ask for session handlers
+	 */
+	bool noglobal = !global;
+	INFO("Registered %s handlers:", global ? "global" : "session");
 	for (i = 0; i < nr_installers; i++) {
-		INFO("\t%s", supported_types[i].desc);
+		if (noglobal == supported_types[i].noglobal) {
+			INFO("\t%s", supported_types[i].desc);
+		}
 	}
 }

diff --git a/core/swupdate.c b/core/swupdate.c
index 009abbbc..8d6467b7 100644
--- a/core/swupdate.c
+++ b/core/swupdate.c
@@ -866,7 +866,7 @@  int main(int argc, char **argv)
 	if(!get_hw_revision(&swcfg.hw))
 		INFO("Running on %s Revision %s", swcfg.hw.boardname, swcfg.hw.revision);

-	print_registered_handlers();
+	print_registered_handlers(true);
 	if (swcfg.syslog_enabled) {
 		if (syslog_init()) {
 			ERROR("failed to initialize syslog notifier");
diff --git a/corelib/lua_interface.c b/corelib/lua_interface.c
index 8de2e3cd..6b425dd0 100644
--- a/corelib/lua_interface.c
+++ b/corelib/lua_interface.c
@@ -1603,6 +1603,7 @@  int lua_init(void)
 {
 	lua_State *L = luaL_newstate();
 	int res = lua_handlers_init(L);
+	print_registered_handlers(false);
 	unregister_session_handlers();
 	lua_close(L);
 	if (!gL) {
diff --git a/include/handler.h b/include/handler.h
index e100bd72..dc4bfe38 100644
--- a/include/handler.h
+++ b/include/handler.h
@@ -80,6 +80,6 @@  int unregister_handler(const char *desc);
 void unregister_session_handlers(void);

 struct installer_handler *find_handler(struct img_type *img);
-void print_registered_handlers(void);
+void print_registered_handlers(bool global);
 struct installer_handler *get_next_handler(void);
 unsigned int get_handler_mask(struct img_type *img);