pid = atoi(cpid);
else
pid = -1;
- snprintf(tmp, sizeof(tmp), "core verbose %d", option_verbose);
+ snprintf(tmp, sizeof(tmp), "core verbose atleast %d", option_verbose);
fdprint(ast_consock, tmp);
- snprintf(tmp, sizeof(tmp), "core debug %d", option_debug);
+ snprintf(tmp, sizeof(tmp), "core debug atleast %d", option_debug);
fdprint(ast_consock, tmp);
if (ast_opt_mute) {
snprintf(tmp, sizeof(tmp), "log and verbose output currently muted ('logger unmute' to unmute)");
static int handle_verbose(int fd, int argc, char *argv[])
{
int oldval = option_verbose;
+ int newlevel;
+ int atleast = 0;
- if (argc == 3)
- option_verbose = atoi(argv[2]);
- else
+ if ((argc < 3) || (argc > 4))
return RESULT_SHOWUSAGE;
+ if (!strcasecmp(argv[2], "atleast"))
+ atleast = 1;
+
+ if (!atleast) {
+ if (argc > 3)
+ return RESULT_SHOWUSAGE;
+
+ option_verbose = atoi(argv[2]);
+ } else {
+ if (argc < 4)
+ return RESULT_SHOWUSAGE;
+
+ newlevel = atoi(argv[3]);
+ if (newlevel > option_verbose)
+ option_verbose = newlevel;
+ }
if (oldval > 0 && option_verbose == 0)
ast_cli(fd, "Verbosity is now OFF\n");
else if (option_verbose > 0) {
{
int oldval = option_debug;
int newlevel;
+ int atleast = 0;
char *filename = '\0';
- if ((argc < 3) || (argc > 4))
+ if ((argc < 3) || (argc > 5))
return RESULT_SHOWUSAGE;
- if (sscanf(argv[2], "%d", &newlevel) != 1)
- return RESULT_SHOWUSAGE;
+ if (!strcasecmp(argv[2], "atleast"))
+ atleast = 1;
- option_debug = newlevel;
+ if (!atleast) {
+ if (argc > 4)
+ return RESULT_SHOWUSAGE;
- if (argc == 4) {
- filename = argv[3];
- ast_copy_string(debug_filename, filename, sizeof(debug_filename));
+ if (sscanf(argv[2], "%d", &newlevel) != 1)
+ return RESULT_SHOWUSAGE;
+
+ if (argc == 3) {
+ debug_filename[0] = '\0';
+ } else {
+ filename = argv[3];
+ ast_copy_string(debug_filename, filename, sizeof(debug_filename));
+ }
+
+ option_debug = newlevel;
} else {
- debug_filename[0] = '\0';
+ if (argc < 4)
+ return RESULT_SHOWUSAGE;
+
+ if (sscanf(argv[3], "%d", &newlevel) != 1)
+ return RESULT_SHOWUSAGE;
+
+ if (argc == 4) {
+ debug_filename[0] = '\0';
+ } else {
+ filename = argv[4];
+ ast_copy_string(debug_filename, filename, sizeof(debug_filename));
+ }
+
+ if (newlevel > option_debug)
+ option_debug = newlevel;
}
if (oldval > 0 && option_debug == 0)