[commit] r6791 - freeswitch/trunk/src/mod/applications/mod_commands
Author: anthm Date: Fri Dec 14 12:13:20 2007 New Revision: 6791 Modified: freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c Log: add user_exists Modified: freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c ============================================================================== --- freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c (original) +++ freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c Fri Dec 14 12:13:20 2007 @@ -83,8 +83,8 @@ err = "can't find user"; goto end; } - - + + end: if (xml) { @@ -119,7 +119,8 @@ } -SWITCH_STANDARD_API(find_user_function) + +static switch_status_t _find_user(const char *cmd, switch_core_session_t *session, switch_stream_handle_t *stream, switch_bool_t tf) { switch_xml_t x_domain = NULL, x_user = NULL, xml = NULL; int argc; @@ -171,22 +172,26 @@ end: - if (err) { - if (host) { - stream->write_function(stream, "<error>%s</error>\n", err); - } else { - stream->write_function(stream, "-Error %s\n", err); + if (session || tf) { + stream->write_function(stream, err ? "false" : "true"); + switch_xml_free(xml); + } else { + if (err) { + if (host) { + stream->write_function(stream, "<error>%s</error>\n", err); + } else { + stream->write_function(stream, "-Error %s\n", err); + } } - } - if (xml && x_user) { - xmlstr = switch_xml_toxml(x_user, SWITCH_FALSE); - switch_assert(xmlstr); - - stream->write_function(stream, "%s", xmlstr); - free(xmlstr); - switch_xml_free(xml); - + if (xml && x_user) { + xmlstr = switch_xml_toxml(x_user, SWITCH_FALSE); + switch_assert(xmlstr); + + stream->write_function(stream, "%s", xmlstr); + free(xmlstr); + switch_xml_free(xml); + } } free(mydata); @@ -194,6 +199,18 @@ } +SWITCH_STANDARD_API(user_exists_function) +{ + return _find_user(cmd, session, stream, SWITCH_TRUE); +} + +SWITCH_STANDARD_API(find_user_function) +{ + return _find_user(cmd, session, stream, SWITCH_FALSE); +} + + + SWITCH_STANDARD_API(xml_locate_function) { @@ -2062,6 +2079,7 @@ SWITCH_ADD_API(commands_api_interface, "regex", "Eval a regex", regex_function, "<data>|<pattern>[|<subst string>]"); SWITCH_ADD_API(commands_api_interface, "uuid_chat", "Send a chat message", uuid_chat, UUID_CHAT_SYNTAX); SWITCH_ADD_API(commands_api_interface, "find_user_xml", "find a user", find_user_function, "<key> <user>@<domain>"); + SWITCH_ADD_API(commands_api_interface, "user_exists", "find a user", user_exists_function, "<key> <user>@<domain>"); SWITCH_ADD_API(commands_api_interface, "xml_locate", "find some xml", xml_locate_function, "[root | <section> <tag> <tag_attr_name> <tag_attr_val>]"); SWITCH_ADD_API(commands_api_interface, "user_data", "find user data", user_data_function, "<user>@<domain> [var|param] <name>");
participants (1)
-
Freeswitch SVN