]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
MODAPP-227
authorAnthony Minessale <anthony.minessale@gmail.com>
Fri, 27 Mar 2009 17:49:10 +0000 (17:49 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Fri, 27 Mar 2009 17:49:10 +0000 (17:49 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12806 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/applications/mod_commands/mod_commands.c
src/switch_core_sqldb.c

index 8df3cce2ede489884ddbb1a4f26ae200ccbef228..d1314b9d07d4602650c20ed1431cc604f54b5f0f 100644 (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])) {
index 029707ce85478402c5ddb6acf4fc5699c03a1681..6335eaba1152d52c5afa4a7a0190be163b8ffc93 100644 (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[] =