|
@@ -55,7 +55,11 @@
|
|
|
#include "../../msg_translator.h"
|
|
|
#include "../../select.h"
|
|
|
#include "../../receive.h" /* needed by process_rpc / receive_msg() */
|
|
|
+#ifdef USE_K_SL_API
|
|
|
+#include "../../modules_k/sl/sl_api.h"
|
|
|
+#else
|
|
|
#include "../sl/sl.h"
|
|
|
+#endif
|
|
|
#include "../../nonsip_hooks.h"
|
|
|
#include "../../action.h" /* run_actions */
|
|
|
#include "../../script_cb.h" /* exec_*_script_cb */
|
|
@@ -378,7 +382,11 @@ static char* xmlrpc_route=0; /* default is the main route */
|
|
|
/** Reference to the sl (stateless replies) module of SER The sl module of SER
|
|
|
* is needed so that the xmlrpc SER module can send replies back to clients
|
|
|
*/
|
|
|
+#ifdef USE_K_SL_API
|
|
|
+struct sl_binds sl;
|
|
|
+#else
|
|
|
sl_api_t sl;
|
|
|
+#endif
|
|
|
|
|
|
static int xmlrpc_route_no=DEFAULT_RT;
|
|
|
|
|
@@ -725,10 +733,20 @@ static int send_reply(sip_msg_t* msg, str* body)
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
+#ifdef USE_K_SL_API
|
|
|
+ str s;
|
|
|
+ s.s = "OK";
|
|
|
+ s.len = 2;
|
|
|
+ if (sl.send_reply(msg, 200, &s) == -1) {
|
|
|
+ ERR("Error while sending reply\n");
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+#else
|
|
|
if (sl.reply(msg, 200, "OK") == -1) {
|
|
|
ERR("Error while sending reply\n");
|
|
|
return -1;
|
|
|
}
|
|
|
+#endif
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -1961,7 +1979,6 @@ select_row_t xmlrpc_sel[] = {
|
|
|
|
|
|
static int mod_init(void)
|
|
|
{
|
|
|
- bind_sl_t bind_sl;
|
|
|
struct nonsip_hook nsh;
|
|
|
int route_no;
|
|
|
|
|
@@ -1984,12 +2001,20 @@ static int mod_init(void)
|
|
|
* We will need sl_send_reply from stateless
|
|
|
* module for sending replies
|
|
|
*/
|
|
|
- bind_sl = (bind_sl_t)find_export("bind_sl", 0, 0);
|
|
|
+#ifdef USE_K_SL_API
|
|
|
+ if (load_sl_api(&sl)!=0) {
|
|
|
+ ERR("This module requires sl module\n");
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+#else
|
|
|
+ bind_sl_t bind_sl;
|
|
|
+ bind_sl = (bind_sl_t)find_export("bind_sl", 0, 0);
|
|
|
if (!bind_sl) {
|
|
|
ERR("This module requires sl module\n");
|
|
|
return -1;
|
|
|
}
|
|
|
if (bind_sl(&sl) < 0) return -1;
|
|
|
+#endif
|
|
|
|
|
|
func_param.send = (rpc_send_f)rpc_send;
|
|
|
func_param.fault = (rpc_fault_f)rpc_fault;
|