return -1;
}
+static int cmd_set_debug_level(FILE *fp, FILE *fp_err, UNUSED void *ctx, fr_cmd_info_t const *info)
+{
+ int level = atoi(info->argv[0]);
+
+ if ((level < 0) || level > 5) {
+ fprintf(fp_err, "Invalid debug level '%s'", info->argv[0]);
+ return -1;
+ }
+
+ rad_debug_lvl = fr_debug_lvl = level;
+ return 0;
+}
+
+static int cmd_show_debug_level(FILE *fp, FILE *fp_err, UNUSED void *ctx, UNUSED fr_cmd_info_t const *info)
+{
+ fprintf(fp, "%d\n", rad_debug_lvl);
+ return 0;
+}
+
#ifdef CMD_TEST
static int cmd_test(FILE *fp, UNUSED FILE *fp_err, UNUSED void *ctx, fr_cmd_info_t const *info)
{
NULL
};
+static char const *set_debug_parents[] = {
+ "set", "debug",
+ NULL
+};
+
+static char const *show_debug_parents[] = {
+ "show", "debug",
+ NULL
+};
+
static fr_cmd_table_t cmd_table[] = {
{
.syntax = "exit",
.parents = stats_parents,
},
+ {
+ .syntax = "level INTEGER",
+ .func = cmd_set_debug_level,
+ .help = "set debug level INTEGER",
+ .read_only = true,
+ .parents = set_debug_parents,
+ },
+
+ {
+ .syntax = "level",
+ .func = cmd_show_debug_level,
+ .help = "show debug level",
+ .read_only = false,
+ .parents = show_debug_parents,
+ },
+
CMD_TABLE_END
};