handle failed originate a little more gracefully (MODLANG-70)

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9049 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2008-07-16 06:23:35 +00:00
parent 0e41f84afd
commit 89b123d5b2
2 changed files with 26 additions and 14 deletions

View File

@ -50,9 +50,13 @@ bool Session::end_allow_threads()
void Session::setLUA(lua_State * state) void Session::setLUA(lua_State * state)
{ {
L = state; if (uuid) {
lua_setglobal(L, uuid); L = state;
lua_getfield(L, LUA_GLOBALSINDEX, uuid); lua_setglobal(L, uuid);
lua_getfield(L, LUA_GLOBALSINDEX, uuid);
} else {
//did we fail to make a session?
}
} }
lua_State *Session::getLUA() lua_State *Session::getLUA()

View File

@ -16,25 +16,33 @@ Session::Session():CoreSession()
Session::Session(char *uuid):CoreSession(uuid) Session::Session(char *uuid):CoreSession(uuid)
{ {
init_me(); init_me();
suuid = switch_core_session_sprintf(session, "main::uuid_%s\n", switch_core_session_get_uuid(session)); if (session) {
for (char *p = suuid; p && *p; p++) { suuid = switch_core_session_sprintf(session, "main::uuid_%s\n", switch_core_session_get_uuid(session));
if (*p == '-') { for (char *p = suuid; p && *p; p++) {
*p = '_'; if (*p == '-') {
} *p = '_';
if (*p == '\n') { }
*p = '\0'; if (*p == '\n') {
*p = '\0';
}
} }
} else {
//handle failure
} }
} }
Session::Session(switch_core_session_t *new_session):CoreSession(new_session) Session::Session(switch_core_session_t *new_session):CoreSession(new_session)
{ {
init_me(); init_me();
suuid = switch_core_session_sprintf(session, "main::uuid_%s\n", switch_core_session_get_uuid(session)); if (session) {
for (char *p = suuid; p && *p; p++) { suuid = switch_core_session_sprintf(session, "main::uuid_%s\n", switch_core_session_get_uuid(session));
if (*p == '-') { for (char *p = suuid; p && *p; p++) {
*p = '_'; if (*p == '-') {
*p = '_';
}
} }
} else {
//handle failure
} }
} }
static switch_status_t perl_hanguphook(switch_core_session_t *session_hungup); static switch_status_t perl_hanguphook(switch_core_session_t *session_hungup);