From 81c4e9f959a9c9be5020b9de4781f61135de9c24 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Thu, 4 May 2006 16:04:04 +0000 Subject: [PATCH] add initial bits of show api command. This still needs some work. git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1350 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- .../applications/mod_commands/mod_commands.c | 54 ++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/src/mod/applications/mod_commands/mod_commands.c b/src/mod/applications/mod_commands/mod_commands.c index e93f2768ab..164cc9632a 100644 --- a/src/mod/applications/mod_commands/mod_commands.c +++ b/src/mod/applications/mod_commands/mod_commands.c @@ -129,12 +129,64 @@ static switch_status_t pause_function(char *cmd, char *out, size_t outlen) return SWITCH_STATUS_SUCCESS; } +struct show_return { + char *out; + size_t remaining; +}; +static int show_callback(void *pArg, int argc, char **argv, char **columnNames){ + struct show_return *returnval = (struct api_return *) pArg; + char temp[1024]; + size_t len; + + printf("%s\n", argv[1]); + + sprintf(temp, "%s\n", argv[1]); + len = strlen(temp); + + if (len < returnval->remaining) { + strcpy(returnval->out, temp); + returnval->remaining -= len; + returnval->out += len; + } + return 0; +} + +static switch_status_t show_function(char *cmd, char *out, size_t outlen) +{ + char sql[1024]; + char *errmsg; + struct show_return returnval; + switch_core_db_t *db = switch_core_db_handle(); + + sprintf (sql, "select * from interfaces"); + returnval.out = out; + returnval.remaining = outlen; + + switch_core_db_exec(db, sql, show_callback, &returnval, &errmsg); + + if (errmsg) { + snprintf(out, outlen, "SQL ERR [%s]\n",errmsg); + switch_core_db_free(errmsg); + errmsg = NULL; + } + + switch_core_db_close(db); + return SWITCH_STATUS_SUCCESS; +} + + +static switch_api_interface_t show_api_interface = { + /*.interface_name */ "show", + /*.desc */ "Show", + /*.function */ show_function, + /*.next */ NULL +}; static switch_api_interface_t pause_api_interface = { /*.interface_name */ "pause", /*.desc */ "Pause", /*.function */ pause_function, - /*.next */ NULL + /*.next */ &show_api_interface }; static switch_api_interface_t transfer_api_interface = {