Index: asterisk.c =================================================================== RCS file: /usr/cvsroot/asterisk/asterisk.c,v retrieving revision 1.172 diff -u -r1.172 asterisk.c --- asterisk.c 26 Jul 2005 16:29:55 -0000 1.172 +++ asterisk.c 28 Jul 2005 05:16:37 -0000 @@ -102,6 +102,7 @@ int option_dontwarn = 0; int option_priority_jumping = 1; int fully_booted = 0; +int option_disablebang = 0; /* To allow the bang (!) in CLI */ char record_cache_dir[AST_CACHE_DIR_LEN] = AST_TMP_DIR; char debug_filename[AST_FILENAME_MAX] = ""; @@ -891,7 +892,9 @@ if (s) { /* The real handler for bang */ if (s[0] == '!') { - if (s[1]) + if ( option_disablebang ) { + fprintf(stdout, "Bang(!) has been disabled.\n"); + } else if (s[1]) ast_safe_system(s+1); else ast_safe_system(getenv("SHELL") ? getenv("SHELL") : "/bin/sh"); @@ -911,7 +914,9 @@ if (s) { /* The real handler for bang */ if (s[0] == '!') { - if (s[1]) + if ( option_disablebang ) { + fprintf(stdout, "Bang(!) has been disabled.\n"); + } else if (s[1]) ast_safe_system(s+1); else ast_safe_system(getenv("SHELL") ? getenv("SHELL") : "/bin/sh"); @@ -1794,6 +1799,9 @@ if ((sscanf(v->value, "%d", &option_maxcalls) != 1) || (option_maxcalls < 0)) { option_maxcalls = 0; } + /* Checking if we should disabled the bang or not */ + } else if (!strcasecmp(v->name, "disablebang")) { + option_disablebang = ast_true(v->value); } v = v->next; }