]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix lua originate
authorBrian West <brian@freeswitch.org>
Thu, 14 Aug 2008 17:35:46 +0000 (17:35 +0000)
committerBrian West <brian@freeswitch.org>
Thu, 14 Aug 2008 17:35:46 +0000 (17:35 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9297 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/languages/mod_lua/freeswitch_lua.cpp
src/mod/languages/mod_lua/freeswitch_lua.h
src/mod/languages/mod_lua/mod_lua_wrap.cpp

index 4a23b9b4deb3de27b84cf09c78232bcb858c28cd..44238757be43c4d698f97c8eaa11f9a72e0830ec 100644 (file)
@@ -59,10 +59,15 @@ void Session::setLUA(lua_State * state)
 
 }
 
-void Session::originate(CoreSession *a_leg_session, char *dest, int timeout)
+int Session::originate(CoreSession *a_leg_session, char *dest, int timeout)
 {
-       CoreSession::originate(a_leg_session, dest, timeout);
-       setLUA(L);
+       int x = CoreSession::originate(a_leg_session, dest, timeout);
+
+       if (x) {
+               setLUA(L);
+       }
+
+       return x;
 }
 
 lua_State *Session::getLUA()
index ad5f37697cc319b86f4ecef996648ab102c1f6e6..b992bd62a8a2cbc2792c7aeeb189b3f32b6bf1bd 100644 (file)
@@ -33,7 +33,7 @@ class Session : public CoreSession {
        void setInputCallback(char *cbfunc, char *funcargs = NULL);
        void setHangupHook(char *func, char *arg = NULL);
        bool ready();
-       void originate(CoreSession *a_leg_session, char *dest, int timeout);
+       int originate(CoreSession *a_leg_session, char *dest, int timeout);
        
        char *cb_function;
        char *cb_arg;
index 0b3e0d2c0800c4cb6696eeb6071cc14e4f653d4a..c13d3140fb9e75e59d142b6ebe6a0cbcd2f5bb13 100644 (file)
@@ -7438,6 +7438,7 @@ static int _wrap_Session_originate(lua_State* L) {
   CoreSession *arg2 = (CoreSession *) 0 ;
   char *arg3 = (char *) 0 ;
   int arg4 ;
+  int result;
   
   SWIG_check_num_args("originate",4,4)
   if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("originate",1,"LUA::Session *");
@@ -7456,9 +7457,9 @@ static int _wrap_Session_originate(lua_State* L) {
   
   arg3 = (char *)lua_tostring(L, 3);
   arg4 = (int)lua_tonumber(L, 4);
-  (arg1)->originate(arg2,arg3,arg4);
+  result = (int)(arg1)->originate(arg2,arg3,arg4);
   SWIG_arg=0;
-  
+  lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
   return SWIG_arg;
   
   if(0) SWIG_fail;