[PATCH] libosmocore[master]: vty: fix "logging level ... everything" option

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Max gerrit-no-reply at lists.osmocom.org
Mon Mar 6 16:41:40 UTC 2017


Hello Neels Hofmeyr, Harald Welte, Jenkins Builder, Holger Freyther,

I'd like you to reexamine a change.  Please visit

    https://gerrit.osmocom.org/1582

to look at the new patch set (#8).

vty: fix "logging level ... everything" option

* remove unused parameters to log_vty_command_*() and
  logging_vty_add_cmds()
* change internal static function int check_log_to_target() to more
  appropriate bool should_log_to_target()
* make "logging level ... everything" into alias for "... debug"
* mark log level descriptors static

Related: OS#71
Change-Id: Ib51987fb2f64a70fca130f3799dc8fd71cc7085c
---
M include/osmocom/core/logging.h
M include/osmocom/vty/logging.h
M src/logging.c
M src/vty/logging_vty.c
M tests/vty/vty_test.c
5 files changed, 20 insertions(+), 19 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/82/1582/8

diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h
index 7b28b2c..1cfe4c0 100644
--- a/include/osmocom/core/logging.h
+++ b/include/osmocom/core/logging.h
@@ -328,8 +328,8 @@
 void log_del_target(struct log_target *target);
 
 /* Generate command string for VTY use */
-const char *log_vty_command_string(const struct log_info *info);
-const char *log_vty_command_description(const struct log_info *info);
+const char *log_vty_command_string();
+const char *log_vty_command_description();
 
 struct log_target *log_target_find(int type, const char *fname);
 extern struct llist_head osmo_log_target_list;
diff --git a/include/osmocom/vty/logging.h b/include/osmocom/vty/logging.h
index 9e4b98f..544d117 100644
--- a/include/osmocom/vty/logging.h
+++ b/include/osmocom/vty/logging.h
@@ -4,6 +4,6 @@
 #define FILTER_STR	"Filter log messages\n"
 
 struct log_info;
-void logging_vty_add_cmds(const struct log_info *cat);
+void logging_vty_add_cmds();
 struct vty;
 struct log_target *osmo_log_vty2tgt(struct vty *vty);
diff --git a/src/logging.c b/src/logging.c
index 6a1e929..4fc02e6 100644
--- a/src/logging.c
+++ b/src/logging.c
@@ -64,7 +64,7 @@
 #define LOGLEVEL_DEFS	6	/* Number of loglevels.*/
 
 static const struct value_string loglevel_strs[LOGLEVEL_DEFS+1] = {
-	{ 0,		"EVERYTHING" },
+	{ LOGL_DEBUG,	"EVERYTHING" },
 	{ LOGL_DEBUG,	"DEBUG" },
 	{ LOGL_INFO,	"INFO" },
 	{ LOGL_NOTICE,	"NOTICE" },
@@ -144,7 +144,7 @@
 
 /*! \brief descriptive string for each log level */
 /* You have to keep this in sync with the structure loglevel_strs. */
-const char *loglevel_descriptions[LOGLEVEL_DEFS+1] = {
+static const char *loglevel_descriptions[LOGLEVEL_DEFS+1] = {
 	"Don't use. It doesn't log anything",
 	"Log debug messages and higher levels",
 	"Log informational messages and higher levels",
@@ -359,7 +359,8 @@
 	return subsys;
 }
 
-static inline int check_log_to_target(struct log_target *tar, int subsys, int level)
+static inline bool should_log_to_target(struct log_target *tar, int subsys,
+					int level)
 {
 	struct log_category *category;
 
@@ -367,28 +368,28 @@
 
 	/* subsystem is not supposed to be logged */
 	if (!category->enabled)
-		return 0;
+		return false;
 
 	/* Check the global log level */
 	if (tar->loglevel != 0 && level < tar->loglevel)
-		return 0;
+		return false;
 
 	/* Check the category log level */
 	if (tar->loglevel == 0 && category->loglevel != 0 &&
 	    level < category->loglevel)
-		return 0;
+		return false;
 
 	/* Apply filters here... if that becomes messy we will
 	 * need to put filters in a list and each filter will
 	 * say stop, continue, output */
 	if ((tar->filter_map & (1 << LOG_FLT_ALL)) != 0)
-		return 1;
+		return true;
 
 	if (osmo_log_info->filter_fn)
 		return osmo_log_info->filter_fn(&log_context, tar);
 
 	/* TODO: Check the filter/selector too? */
-	return 1;
+	return true;
 }
 
 /*! \brief vararg version of logging function
@@ -409,7 +410,7 @@
 	llist_for_each_entry(tar, &osmo_log_target_list, entry) {
 		va_list bp;
 
-		if (!check_log_to_target(tar, subsys, level))
+		if (!should_log_to_target(tar, subsys, level))
 			continue;
 
 		/* According to the manpage, vsnprintf leaves the value of ap
@@ -776,7 +777,7 @@
  *  \param[in] unused_info Deprecated parameter, no longer used!
  *  \returns vty command string for use by VTY command node
  */
-const char *log_vty_command_string(const struct log_info *unused_info)
+const char *log_vty_command_string()
 {
 	struct log_info *info = osmo_log_info;
 	int len = 0, offset = 0, ret, i, rem;
@@ -854,7 +855,7 @@
  *  \param[in] unused_info Deprecated parameter, no longer used!
  *  \returns logging command description for use by VTY command node
  */
-const char *log_vty_command_description(const struct log_info *unused_info)
+const char *log_vty_command_description()
 {
 	struct log_info *info = osmo_log_info;
 	char *str;
@@ -985,7 +986,7 @@
 	/* TODO: The following could/should be cached (update on config) */
 
 	llist_for_each_entry(tar, &osmo_log_target_list, entry) {
-		if (!check_log_to_target(tar, subsys, level))
+		if (!should_log_to_target(tar, subsys, level))
 			continue;
 
 		/* This might get logged (ignoring filters) */
diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c
index aabcaa7..9be5dd7 100644
--- a/src/vty/logging_vty.c
+++ b/src/vty/logging_vty.c
@@ -737,7 +737,7 @@
 	return 1;
 }
 
-void logging_vty_add_cmds(const struct log_info *cat)
+void logging_vty_add_cmds()
 {
 	install_element_ve(&enable_logging_cmd);
 	install_element_ve(&disable_logging_cmd);
@@ -750,8 +750,8 @@
 	install_element_ve(&logging_set_category_mask_old_cmd);
 
 	/* Logging level strings are generated dynamically. */
-	logging_level_cmd.string = log_vty_command_string(cat);
-	logging_level_cmd.doc = log_vty_command_description(cat);
+	logging_level_cmd.string = log_vty_command_string(NULL);
+	logging_level_cmd.doc = log_vty_command_description(NULL);
 	install_element_ve(&logging_level_cmd);
 	install_element_ve(&show_logging_vty_cmd);
 	install_element_ve(&show_alarms_cmd);
diff --git a/tests/vty/vty_test.c b/tests/vty/vty_test.c
index 865c93e..1e1b495 100644
--- a/tests/vty/vty_test.c
+++ b/tests/vty/vty_test.c
@@ -318,7 +318,7 @@
 	vty_init(&vty_info);
 
 	/* Setup VTY commands */
-	logging_vty_add_cmds(&log_info);
+	logging_vty_add_cmds();
 	osmo_stats_vty_add_cmds();
 
 	test_cmd_string_from_valstr();

-- 
To view, visit https://gerrit.osmocom.org/1582
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ib51987fb2f64a70fca130f3799dc8fd71cc7085c
Gerrit-PatchSet: 8
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Owner: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Holger Freyther <holger at freyther.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>



More information about the gerrit-log mailing list