提交 8a53aad2 authored 作者: Michael Jerris's avatar Michael Jerris

add count optional arg to show calls and show channels (MODAPP-103)

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8816 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 85c73342
...@@ -1789,6 +1789,7 @@ struct holder { ...@@ -1789,6 +1789,7 @@ struct holder {
int print_title; int print_title;
switch_xml_t xml; switch_xml_t xml;
int rows; int rows;
int justcount;
}; };
static int show_as_xml_callback(void *pArg, int argc, char **argv, char **columnNames) static int show_as_xml_callback(void *pArg, int argc, char **argv, char **columnNames)
...@@ -1803,7 +1804,12 @@ static int show_as_xml_callback(void *pArg, int argc, char **argv, char **column ...@@ -1803,7 +1804,12 @@ static int show_as_xml_callback(void *pArg, int argc, char **argv, char **column
return -1; return -1;
} }
} }
if (holder->justcount) {
holder->count++;
return 0;
}
if (!(row = switch_xml_add_child_d(holder->xml, "row", holder->rows++))) { if (!(row = switch_xml_add_child_d(holder->xml, "row", holder->rows++))) {
return -1; return -1;
} }
...@@ -1836,7 +1842,12 @@ static int show_callback(void *pArg, int argc, char **argv, char **columnNames) ...@@ -1836,7 +1842,12 @@ static int show_callback(void *pArg, int argc, char **argv, char **columnNames)
{ {
struct holder *holder = (struct holder *) pArg; struct holder *holder = (struct holder *) pArg;
int x; int x;
if (holder->justcount) {
holder->count++;
return 0;
}
if (holder->print_title && holder->count == 0) { if (holder->print_title && holder->count == 0) {
if (holder->http) { if (holder->http) {
holder->stream->write_function(holder->stream, "\n<tr>"); holder->stream->write_function(holder->stream, "\n<tr>");
...@@ -1911,7 +1922,7 @@ SWITCH_STANDARD_API(alias_function) ...@@ -1911,7 +1922,7 @@ SWITCH_STANDARD_API(alias_function)
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
#define SHOW_SYNTAX "codec|application|api|dialplan|file|timer|calls|channels|aliases|complete" #define SHOW_SYNTAX "codec|application|api|dialplan|file|timer|calls [count]|channels [count]|aliases|complete"
SWITCH_STANDARD_API(show_function) SWITCH_STANDARD_API(show_function)
{ {
char sql[1024]; char sql[1024];
...@@ -1929,13 +1940,16 @@ SWITCH_STANDARD_API(show_function) ...@@ -1929,13 +1940,16 @@ SWITCH_STANDARD_API(show_function)
} }
db = switch_core_db_handle(); db = switch_core_db_handle();
holder.justcount = 0;
if (cmd && (mydata = strdup(cmd))) { if (cmd && (mydata = strdup(cmd))) {
argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0]))); argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
command = argv[0]; command = argv[0];
if (argv[2] && !strcasecmp(argv[1], "as")) { if (argv[2] && !strcasecmp(argv[1], "as")) {
as = argv[2]; as = argv[2];
} }
} }
if (stream->param_event) { if (stream->param_event) {
...@@ -1962,8 +1976,20 @@ SWITCH_STANDARD_API(show_function) ...@@ -1962,8 +1976,20 @@ SWITCH_STANDARD_API(show_function)
sprintf(sql, "select name, description, syntax from interfaces where type = '%s' and description != '' order by type,name", command); sprintf(sql, "select name, description, syntax from interfaces where type = '%s' and description != '' order by type,name", command);
} else if (!strcasecmp(command, "calls")) { } else if (!strcasecmp(command, "calls")) {
sprintf(sql, "select * from calls order by created_epoch"); sprintf(sql, "select * from calls order by created_epoch");
if (argv[1] && !strcasecmp(argv[1],"count")) {
holder.justcount = 1;
if (argv[3] && !strcasecmp(argv[2], "as")) {
as = argv[3];
}
}
} else if (!strcasecmp(command, "channels")) { } else if (!strcasecmp(command, "channels")) {
sprintf(sql, "select * from channels order by created_epoch"); sprintf(sql, "select * from channels order by created_epoch");
if (argv[1] && !strcasecmp(argv[1],"count")) {
holder.justcount = 1;
if (argv[3] && !strcasecmp(argv[2], "as")) {
as = argv[3];
}
}
} else if (!strcasecmp(command, "aliases")) { } else if (!strcasecmp(command, "aliases")) {
sprintf(sql, "select * from aliases order by alias"); sprintf(sql, "select * from aliases order by alias");
} else if (!strcasecmp(command, "complete")) { } else if (!strcasecmp(command, "complete")) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论