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/.
Neels Hofmeyr gerrit-no-reply at lists.osmocom.orgNeels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/10887 ) Change subject: logging vty: write: check logging levels validity ...................................................................... logging vty: write: check logging levels validity Change-Id: If683b1272ad2d5b402b91c52c496aa7975bc6315 --- M include/osmocom/core/logging_internal.h M src/logging.c M src/vty/logging_vty.c 3 files changed, 25 insertions(+), 8 deletions(-) Approvals: Neels Hofmeyr: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/core/logging_internal.h b/include/osmocom/core/logging_internal.h index 55b1bbd..a510f83 100644 --- a/include/osmocom/core/logging_internal.h +++ b/include/osmocom/core/logging_internal.h @@ -8,6 +8,7 @@ extern void *tall_log_ctx; extern const struct log_info *osmo_log_info; +extern const struct value_string loglevel_strs[]; void assert_loginfo(const char *src); diff --git a/src/logging.c b/src/logging.c index 67470a5..e7cc472 100644 --- a/src/logging.c +++ b/src/logging.c @@ -63,7 +63,7 @@ void *tall_log_ctx = NULL; LLIST_HEAD(osmo_log_target_list); -static const struct value_string loglevel_strs[] = { +const struct value_string loglevel_strs[] = { { LOGL_DEBUG, "DEBUG" }, { LOGL_INFO, "INFO" }, { LOGL_NOTICE, "NOTICE" }, diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index 6758dd2..c8e8520 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -861,21 +861,37 @@ get_value_string(logging_print_file_args, tgt->print_filename2), VTY_NEWLINE); - /* stupid old osmo logging API uses uppercase strings... */ - if (tgt->loglevel) - vty_out(vty, " logging level all %s%s", osmo_str_tolower(log_level_str(tgt->loglevel)), - VTY_NEWLINE); + if (tgt->loglevel) { + const char *level_str = get_value_string_or_null(loglevel_strs, tgt->loglevel); + level_str = osmo_str_tolower(level_str); + if (!level_str) + vty_out(vty, "%% Invalid log level %u for 'all'%s", tgt->loglevel, VTY_NEWLINE); + else + vty_out(vty, " logging level all %s%s", level_str, VTY_NEWLINE); + } for (i = 0; i < osmo_log_info->num_cat; i++) { const struct log_category *cat = &tgt->categories[i]; + const char *cat_name; + const char *level_str; /* skip empty entries in the array */ if (!osmo_log_info->cat[i].name) continue; - /* stupid old osmo logging API uses uppercase strings... */ - vty_out(vty, " logging level %s", osmo_str_tolower(osmo_log_info->cat[i].name+1)); - vty_out(vty, " %s%s", osmo_str_tolower(log_level_str(cat->loglevel)), VTY_NEWLINE); + /* Note: cat_name references the static buffer returned by osmo_str_tolower(), will + * become invalid after next osmo_str_tolower() invocation. */ + cat_name = osmo_str_tolower(osmo_log_info->cat[i].name+1); + + level_str = get_value_string_or_null(loglevel_strs, cat->loglevel); + if (!level_str) { + vty_out(vty, "%% Invalid log level %u for %s%s", cat->loglevel, cat_name, + VTY_NEWLINE); + continue; + } + + vty_out(vty, " logging level %s", cat_name); + vty_out(vty, " %s%s", osmo_str_tolower(level_str), VTY_NEWLINE); } return 1; -- To view, visit https://gerrit.osmocom.org/10887 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If683b1272ad2d5b402b91c52c496aa7975bc6315 Gerrit-Change-Number: 10887 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180913/e6bef5f8/attachment.htm>