[svn-commits] russell: branch russell/cdr-q r261225 - in /team/russell/cdr-q: ./ include/as...
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Wed May 5 02:11:06 CDT 2010
Author: russell
Date: Wed May 5 02:11:02 2010
New Revision: 261225
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=261225
Log:
resolve, reset
Modified:
team/russell/cdr-q/ (props changed)
team/russell/cdr-q/CHANGES
team/russell/cdr-q/include/asterisk/cli.h
team/russell/cdr-q/include/asterisk/manager.h
team/russell/cdr-q/main/manager.c
Propchange: team/russell/cdr-q/
------------------------------------------------------------------------------
automerge = *
Propchange: team/russell/cdr-q/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed May 5 02:11:02 2010
@@ -1,1 +1,1 @@
-/trunk:1-261163
+/trunk:1-261224
Modified: team/russell/cdr-q/CHANGES
URL: http://svnview.digium.com/svn/asterisk/team/russell/cdr-q/CHANGES?view=diff&rev=261225&r1=261224&r2=261225
==============================================================================
--- team/russell/cdr-q/CHANGES (original)
+++ team/russell/cdr-q/CHANGES Wed May 5 02:11:02 2010
@@ -461,6 +461,8 @@
can optionally accept *module* names instead (with or without the .so extension),
which applies the setting to the entire module specified, regardless of which source
files it was built from.
+ * New 'manager show settings' command showing the current settings loaded from
+ manager.conf.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 1.6.1 to Asterisk 1.6.2 -------------
Modified: team/russell/cdr-q/include/asterisk/cli.h
URL: http://svnview.digium.com/svn/asterisk/team/russell/cdr-q/include/asterisk/cli.h?view=diff&rev=261225&r1=261224&r2=261225
==============================================================================
--- team/russell/cdr-q/include/asterisk/cli.h (original)
+++ team/russell/cdr-q/include/asterisk/cli.h Wed May 5 02:11:02 2010
@@ -56,6 +56,13 @@
* printf("we have %d object%s", n, ESS(n));
*/
#define ESS(x) ((x) == 1 ? "" : "s")
+
+/*! \brief return Yes or No depending on the argument.
+ * This is used in many places in CLI command, having a function to generate
+ * this helps maintaining a consistent output (and possibly emitting the
+ * output in other languages, at some point).
+ */
+#define AST_CLI_YESNO(x) (x) ? "Yes" : "No"
/*! \page CLI_command_API CLI command API
Modified: team/russell/cdr-q/include/asterisk/manager.h
URL: http://svnview.digium.com/svn/asterisk/team/russell/cdr-q/include/asterisk/manager.h?view=diff&rev=261225&r1=261224&r2=261225
==============================================================================
--- team/russell/cdr-q/include/asterisk/manager.h (original)
+++ team/russell/cdr-q/include/asterisk/manager.h Wed May 5 02:11:02 2010
@@ -89,8 +89,7 @@
#define AST_MAX_MANHEADERS 128
/*! \brief Manager Helper Function */
-typedef int (*manager_hook_t)(int, const char *, char *);
-
+typedef int (*manager_hook_t)(int, const char *, char *);
struct manager_custom_hook {
/*! Identifier */
Modified: team/russell/cdr-q/main/manager.c
URL: http://svnview.digium.com/svn/asterisk/team/russell/cdr-q/main/manager.c?view=diff&rev=261225&r1=261224&r2=261225
==============================================================================
--- team/russell/cdr-q/main/manager.c (original)
+++ team/russell/cdr-q/main/manager.c Wed May 5 02:11:02 2010
@@ -747,6 +747,7 @@
static int broken_events_action = 0;
static int manager_enabled = 0;
static int webmanager_enabled = 0;
+static char *manager_channelvars;
#define DEFAULT_REALM "asterisk"
static char global_realm[MAXHOSTNAMELEN]; /*!< Default realm */
@@ -1357,7 +1358,6 @@
return CLI_SUCCESS;
}
-
static char *handle_showmanagers(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{
struct ast_manager_user *user = NULL;
@@ -1400,7 +1400,6 @@
return CLI_SUCCESS;
}
-
/*! \brief CLI command manager list commands */
static char *handle_showmancmds(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{
@@ -1513,18 +1512,6 @@
reload_manager();
return CLI_SUCCESS;
}
-
-
-static struct ast_cli_entry cli_manager[] = {
- AST_CLI_DEFINE(handle_showmancmd, "Show a manager interface command"),
- AST_CLI_DEFINE(handle_showmancmds, "List manager interface commands"),
- AST_CLI_DEFINE(handle_showmanconn, "List connected manager interface users"),
- AST_CLI_DEFINE(handle_showmaneventq, "List manager interface queued events"),
- AST_CLI_DEFINE(handle_showmanagers, "List configured manager users"),
- AST_CLI_DEFINE(handle_showmanager, "Display information on a specific manager user"),
- AST_CLI_DEFINE(handle_mandebug, "Show, enable, disable debugging of the manager code"),
- AST_CLI_DEFINE(handle_manager_reload, "Reload manager configurations"),
-};
static struct eventqent *unref_event(struct eventqent *e)
{
@@ -3703,9 +3690,9 @@
ast_config_AST_RUN_USER,
ast_config_AST_RUN_GROUP,
option_maxfiles,
- ast_realtime_enabled() ? "Yes" : "No",
- ast_cdr_enabled() ? "Yes" : "No",
- check_webmanager_enabled() ? "Yes" : "No"
+ AST_CLI_YESNO(ast_realtime_enabled()),
+ AST_CLI_YESNO(ast_cdr_enabled()),
+ AST_CLI_YESNO(check_webmanager_enabled())
);
return 0;
}
@@ -5559,6 +5546,61 @@
.worker_fn = session_do, /* thread handling the session */
};
+/*! \brief CLI command manager show settings */
+static char *handle_manager_show_settings(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+ switch (cmd) {
+ case CLI_INIT:
+ e->command = "manager show settings";
+ e->usage =
+ "Usage: manager show settings\n"
+ " Provides detailed list of the configuration of the Manager.\n";
+ return NULL;
+ case CLI_GENERATE:
+ return NULL;
+ }
+#define FORMAT " %-25.25s %-15.15s\n"
+#define FORMAT2 " %-25.25s %-15d\n"
+ if (a->argc != 3) {
+ return CLI_SHOWUSAGE;
+ }
+ ast_cli(a->fd, "\nGlobal Settings:\n");
+ ast_cli(a->fd, "----------------\n");
+ ast_cli(a->fd, FORMAT, "Manager (AMI):", AST_CLI_YESNO(manager_enabled));
+ ast_cli(a->fd, FORMAT, "Web Manager (AMI/HTTP):", AST_CLI_YESNO(webmanager_enabled));
+ ast_cli(a->fd, FORMAT, "TCP Bindaddress:", ast_inet_ntoa(ami_desc.local_address.sin_addr));
+ ast_cli(a->fd, FORMAT2, "TCP Port:", ntohs(ami_desc.local_address.sin_port));
+ ast_cli(a->fd, FORMAT2, "HTTP Timeout (minutes):", httptimeout);
+ ast_cli(a->fd, FORMAT, "TLS Enable:", AST_CLI_YESNO(ami_tls_cfg.enabled));
+ ast_cli(a->fd, FORMAT, "TLS Bindaddress:", ast_inet_ntoa(amis_desc.local_address.sin_addr));
+ ast_cli(a->fd, FORMAT2, "TLS Port:", ntohs(amis_desc.local_address.sin_port));
+ ast_cli(a->fd, FORMAT, "TLS Certfile:", ami_tls_cfg.certfile);
+ ast_cli(a->fd, FORMAT, "TLS Privatekey:", ami_tls_cfg.pvtfile);
+ ast_cli(a->fd, FORMAT, "TLS Cipher:", ami_tls_cfg.cipher);
+ ast_cli(a->fd, FORMAT, "Allow multiple login:", AST_CLI_YESNO(allowmultiplelogin));
+ ast_cli(a->fd, FORMAT, "Display connects:", AST_CLI_YESNO(displayconnects));
+ ast_cli(a->fd, FORMAT, "Timestamp events:", AST_CLI_YESNO(timestampevents));
+ ast_cli(a->fd, FORMAT, "Channel vars:", S_OR(manager_channelvars, ""));
+ ast_cli(a->fd, FORMAT, "Debug:", AST_CLI_YESNO(manager_debug));
+ ast_cli(a->fd, FORMAT, "Block sockets:", AST_CLI_YESNO(block_sockets));
+#undef FORMAT
+#undef FORMAT2
+
+ return CLI_SUCCESS;
+}
+
+static struct ast_cli_entry cli_manager[] = {
+ AST_CLI_DEFINE(handle_showmancmd, "Show a manager interface command"),
+ AST_CLI_DEFINE(handle_showmancmds, "List manager interface commands"),
+ AST_CLI_DEFINE(handle_showmanconn, "List connected manager interface users"),
+ AST_CLI_DEFINE(handle_showmaneventq, "List manager interface queued events"),
+ AST_CLI_DEFINE(handle_showmanagers, "List configured manager users"),
+ AST_CLI_DEFINE(handle_showmanager, "Display information on a specific manager user"),
+ AST_CLI_DEFINE(handle_mandebug, "Show, enable, disable debugging of the manager code"),
+ AST_CLI_DEFINE(handle_manager_reload, "Reload manager configurations"),
+ AST_CLI_DEFINE(handle_manager_show_settings, "Show manager global settings"),
+};
+
static int __init_manager(int reload)
{
struct ast_config *ucfg = NULL, *cfg = NULL;
@@ -5683,6 +5725,8 @@
} else if (!strcasecmp(var->name, "channelvars")) {
struct manager_channel_variable *mcv;
char *remaining = ast_strdupa(val), *next;
+ ast_free(manager_channelvars);
+ manager_channelvars = ast_strdup(val);
AST_RWLIST_WRLOCK(&channelvars);
while ((next = strsep(&remaining, ",|"))) {
if (!(mcv = ast_calloc(1, sizeof(*mcv) + strlen(next) + 1))) {
More information about the svn-commits
mailing list