centralize api interface
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@197 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
32273a0c3f
commit
f52b45c2c9
|
@ -58,6 +58,7 @@ SWITCH_DECLARE(switch_application_interface *) loadable_module_get_application_i
|
|||
SWITCH_DECLARE(switch_api_interface *) loadable_module_get_api_interface(char *name);
|
||||
SWITCH_DECLARE(int) loadable_module_get_codecs(switch_memory_pool *pool, switch_codec_interface **array, int arraylen);
|
||||
SWITCH_DECLARE(int) loadable_module_get_codecs_sorted(switch_memory_pool *pool, switch_codec_interface **array, int arraylen, char **prefs, int preflen);
|
||||
SWITCH_DECLARE(switch_status) switch_api_execute(char *cmd, char *arg, char *retbuf, size_t len);
|
||||
SWITCH_DECLARE(void) loadable_module_shutdown(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -206,11 +206,10 @@ int on_stream (struct session *sess, int type, iks *node)
|
|||
|
||||
int on_msg (void *user_data, ikspak *pak)
|
||||
{
|
||||
switch_api_interface *api;
|
||||
switch_event *event;
|
||||
char *cmd = iks_find_cdata (pak->x, "body");
|
||||
char *arg = NULL;
|
||||
switch_event *event;
|
||||
char retbuf[512] = "";
|
||||
char retbuf[1024] = "";
|
||||
char *p;
|
||||
|
||||
if ((p = strchr(cmd, '\r'))) {
|
||||
|
@ -222,17 +221,8 @@ int on_msg (void *user_data, ikspak *pak)
|
|||
if ((arg = strchr(cmd, ' '))) {
|
||||
*arg++ = '\0';
|
||||
}
|
||||
if (arg && (p = strchr(arg, '\r'))) {
|
||||
*p++ = '\0';
|
||||
} else if ((p = strchr(cmd, '\n'))) {
|
||||
*p++ = '\0';
|
||||
}
|
||||
|
||||
if ((api = loadable_module_get_api_interface(cmd))) {
|
||||
api->function(arg, retbuf, sizeof(retbuf));
|
||||
} else {
|
||||
snprintf(retbuf, sizeof(retbuf), "INVALID COMMAND [%s]", cmd);
|
||||
}
|
||||
switch_api_execute(cmd, arg, retbuf, sizeof(retbuf));
|
||||
|
||||
if (switch_event_create(&event, SWITCH_EVENT_API) == SWITCH_STATUS_SUCCESS) {
|
||||
if (cmd) {
|
||||
|
|
|
@ -34,8 +34,8 @@
|
|||
|
||||
static int switch_console_process(char *cmd)
|
||||
{
|
||||
switch_api_interface *api;
|
||||
char *arg = NULL;
|
||||
char retbuf[1024] = "";
|
||||
|
||||
#ifdef EMBED_PERL
|
||||
const char *perlhelp = "perl - execute some perl. (print to STDERR if you want to see it.)\n";
|
||||
|
@ -58,14 +58,6 @@ char *arg = NULL;
|
|||
}
|
||||
|
||||
|
||||
if ((api = loadable_module_get_api_interface(cmd))) {
|
||||
char retbuf[512] = "";
|
||||
api->function(arg, retbuf, sizeof(retbuf));
|
||||
switch_console_printf(SWITCH_CHANNEL_CONSOLE_CLEAN, "API CALL [%s(%s)] output:\n%s\n", cmd, arg ? arg : "", retbuf);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
#ifdef EMBED_PERL
|
||||
if (!strncmp(cmd, "perl ", 5)) {
|
||||
cmd += 5;
|
||||
|
@ -74,7 +66,12 @@ char *arg = NULL;
|
|||
return 1;
|
||||
}
|
||||
#endif
|
||||
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Unknown Command: %s\n", cmd);
|
||||
|
||||
if (switch_api_execute(cmd, arg, retbuf, sizeof(retbuf)) == SWITCH_STATUS_SUCCESS) {
|
||||
switch_console_printf(SWITCH_CHANNEL_CONSOLE_CLEAN, "API CALL [%s(%s)] output:\n%s\n", cmd, arg ? arg : "", retbuf);
|
||||
} else {
|
||||
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Unknown Command: %s\n", cmd);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -406,3 +406,17 @@ SWITCH_DECLARE(int) loadable_module_get_codecs_sorted(switch_memory_pool *pool,
|
|||
|
||||
return i;
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(switch_status) switch_api_execute(char *cmd, char *arg, char *retbuf, size_t len)
|
||||
{
|
||||
switch_api_interface *api;
|
||||
|
||||
if ((api = loadable_module_get_api_interface(cmd))) {
|
||||
api->function(arg, retbuf, len);
|
||||
} else {
|
||||
snprintf(retbuf, len, "INVALID COMMAND [%s]", cmd);
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue