MODAPP-227

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12806 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2009-03-27 17:49:10 +00:00
parent 0edf25e0bd
commit 12551b29f5
2 changed files with 21 additions and 9 deletions

View File

@ -2525,7 +2525,7 @@ SWITCH_STANDARD_API(alias_function)
return SWITCH_STATUS_SUCCESS;
}
#define SHOW_SYNTAX "codec|application|api|dialplan|file|timer|calls [count]|channels [count]|aliases|complete|chat|endpoint|management|say|interfaces|interface_types"
#define SHOW_SYNTAX "codec|application|api|dialplan|file|timer|calls [count]|channels [count]|aliases|complete|chat|endpoint|management|modules|say|interfaces|interface_types"
SWITCH_STANDARD_API(show_function)
{
char sql[1024];
@ -2589,18 +2589,24 @@ SWITCH_STANDARD_API(show_function)
if (end_of(command) == 's') {
end_of(command) = '\0';
}
sprintf(sql, "select type, name from interfaces where type = '%s' order by type,name", command);
sprintf(sql, "select type, name, key from interfaces where name = '%s' order by type,name", command);
} else if (!strncasecmp(command, "module", 6)) {
if (argv[1]) {
sprintf(sql, "select distinct type, name, key, filename from interfaces where key = '%s' order by type,name", argv[1]);
} else {
sprintf(sql, "select distinct type, name, key, filename from interfaces order by type,name");
}
} else if (!strcasecmp(command, "interfaces")) {
sprintf(sql, "select type, name from interfaces order by type,name");
sprintf(sql, "select type, name, key from interfaces order by type,name");
} else if (!strcasecmp(command, "interface_types")) {
sprintf(sql, "select type,count(type) as total from interfaces group by type order by type");
} else if (!strcasecmp(command, "tasks")) {
sprintf(sql, "select * from %s", command);
} else if (!strcasecmp(command, "application") || !strcasecmp(command, "api")) {
if (argv[1] && strcasecmp(argv[1], "as")) {
sprintf(sql, "select name, description, syntax from interfaces where type = '%s' and description != '' and name = '%s' order by type,name", command, argv[1]);
sprintf(sql, "select name, description, syntax, key from interfaces where type = '%s' and description != '' and name = '%s' order by type,name", command, argv[1]);
} else {
sprintf(sql, "select name, description, syntax from interfaces where type = '%s' and description != '' order by type,name", command);
sprintf(sql, "select name, description, syntax, key from interfaces where type = '%s' and description != '' order by type,name", command);
}
} else if (!strcasecmp(command, "calls")) {
sprintf(sql, "select * from calls order by created_epoch");
@ -2629,10 +2635,10 @@ SWITCH_STANDARD_API(show_function)
holder.print_title = 0;
if ((cmdname = strchr(command, ' ')) && strcasecmp(cmdname, "as")) {
*cmdname++ = '\0';
switch_snprintf(sql, sizeof(sql) - 1, "select name, syntax, description from interfaces where type = 'api' and name = '%s' order by name",
switch_snprintf(sql, sizeof(sql) - 1, "select name, syntax, description, key from interfaces where type = 'api' and name = '%s' order by name",
cmdname);
} else {
switch_snprintf(sql, sizeof(sql) - 1, "select name, syntax, description from interfaces where type = 'api' order by name");
switch_snprintf(sql, sizeof(sql) - 1, "select name, syntax, description, key from interfaces where type = 'api' order by name");
}
} else {
stream->write_function(stream, "-USAGE: %s\n", SHOW_SYNTAX);
@ -2651,6 +2657,8 @@ SWITCH_STANDARD_API(show_function)
holder.delim = ",";
}
/* switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "SQL: %s.\n", sql); */
if (!strcasecmp(as, "delim") || !strcasecmp(as, "csv")) {
if (switch_strlen_zero(holder.delim)) {
if (!(holder.delim = argv[3])) {

View File

@ -368,10 +368,12 @@ static void core_event_handler(switch_event_t *event)
const char *name = switch_event_get_header_nil(event, "name");
const char *description = switch_event_get_header_nil(event, "description");
const char *syntax = switch_event_get_header_nil(event, "syntax");
const char *key = switch_event_get_header_nil(event, "key");
const char *filename = switch_event_get_header_nil(event, "filename");
if (!switch_strlen_zero(type) && !switch_strlen_zero(name)) {
sql =
switch_mprintf("insert into interfaces (type,name,description,syntax) values('%q','%q','%q','%q')",
type, name, switch_str_nil(description), switch_str_nil(syntax)
switch_mprintf("insert into interfaces (type,name,description,syntax,key,filename) values('%q','%q','%q','%q','%q','%q')",
type, name, switch_str_nil(description), switch_str_nil(syntax), switch_str_nil(key), switch_str_nil(filename)
);
}
break;
@ -477,6 +479,8 @@ void switch_core_sqldb_start(switch_memory_pool_t *pool)
" type VARCHAR(255),\n"
" name VARCHAR(255),\n"
" description VARCHAR(255),\n"
" key VARCHAR(255),\n"
" filename VARCHAR(255),\n"
" syntax VARCHAR(255)\n"
");\n";
char create_tasks_sql[] =