|
@@ -107,16 +107,13 @@ str scscf_serviceroute_uri_str; /* Service Route URI */
|
|
static int mod_init(void);
|
|
static int mod_init(void);
|
|
static int child_init(int);
|
|
static int child_init(int);
|
|
static void mod_destroy(void);
|
|
static void mod_destroy(void);
|
|
-static int w_save(struct sip_msg* _m, char* _d, char* mode, char* _cflags);
|
|
|
|
|
|
+static int w_save(struct sip_msg* _m, char * _route, char* _d, char* mode, char* _cflags);
|
|
static int w_assign_server_unreg(struct sip_msg* _m, char* _route, char* _d, char* _direction);
|
|
static int w_assign_server_unreg(struct sip_msg* _m, char* _route, char* _d, char* _direction);
|
|
static int w_lookup(struct sip_msg* _m, char* _d, char* _p2);
|
|
static int w_lookup(struct sip_msg* _m, char* _d, char* _p2);
|
|
|
|
|
|
/*! \brief Fixup functions */
|
|
/*! \brief Fixup functions */
|
|
static int domain_fixup(void** param, int param_no);
|
|
static int domain_fixup(void** param, int param_no);
|
|
-static int assign_save_fixup3(void** param, int param_no);
|
|
|
|
static int assign_save_fixup3_async(void** param, int param_no);
|
|
static int assign_save_fixup3_async(void** param, int param_no);
|
|
-//static int save_fixup2(void** param, int param_no);
|
|
|
|
-//static int assign_fixup2(void** param, int param_no);
|
|
|
|
static int unreg_fixup(void** param, int param_no);
|
|
static int unreg_fixup(void** param, int param_no);
|
|
static int fetchc_fixup(void** param, int param_no);
|
|
static int fetchc_fixup(void** param, int param_no);
|
|
/*! \brief Functions */
|
|
/*! \brief Functions */
|
|
@@ -187,7 +184,7 @@ static pv_export_t mod_pvs[] = {
|
|
* Exported functions
|
|
* Exported functions
|
|
*/
|
|
*/
|
|
static cmd_export_t cmds[] = {
|
|
static cmd_export_t cmds[] = {
|
|
- {"save", (cmd_function) w_save, 1, assign_save_fixup3, 0, REQUEST_ROUTE | ONREPLY_ROUTE},
|
|
|
|
|
|
+ {"save", (cmd_function) w_save, 2, assign_save_fixup3_async, 0, REQUEST_ROUTE | ONREPLY_ROUTE},
|
|
{"lookup", (cmd_function) w_lookup, 1, domain_fixup, 0, REQUEST_ROUTE | FAILURE_ROUTE},
|
|
{"lookup", (cmd_function) w_lookup, 1, domain_fixup, 0, REQUEST_ROUTE | FAILURE_ROUTE},
|
|
{"term_impu_registered", (cmd_function) term_impu_registered, 1, domain_fixup, 0, REQUEST_ROUTE | FAILURE_ROUTE},
|
|
{"term_impu_registered", (cmd_function) term_impu_registered, 1, domain_fixup, 0, REQUEST_ROUTE | FAILURE_ROUTE},
|
|
{"impu_registered", (cmd_function) impu_registered, 1, domain_fixup, 0, REQUEST_ROUTE | FAILURE_ROUTE},
|
|
{"impu_registered", (cmd_function) impu_registered, 1, domain_fixup, 0, REQUEST_ROUTE | FAILURE_ROUTE},
|
|
@@ -511,9 +508,8 @@ static int child_init(int rank) {
|
|
/*! \brief
|
|
/*! \brief
|
|
* Wrapper to save(location)
|
|
* Wrapper to save(location)
|
|
*/
|
|
*/
|
|
-static int w_save(struct sip_msg* _m, char* _d, char* mode, char* _cflags) {
|
|
|
|
- //return save(_m, (udomain_t*)_d);
|
|
|
|
- return save(_m, _d);
|
|
|
|
|
|
+static int w_save(struct sip_msg* _m, char* _route, char* _d, char* mode, char* _cflags) {
|
|
|
|
+ return save(_m, _d, _route);
|
|
}
|
|
}
|
|
|
|
|
|
static int w_assign_server_unreg(struct sip_msg* _m, char* _route, char* _d, char* _direction) {
|
|
static int w_assign_server_unreg(struct sip_msg* _m, char* _route, char* _d, char* _direction) {
|
|
@@ -562,43 +558,6 @@ static int unreg_fixup(void** param, int param_no) {
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-/*
|
|
|
|
- * Convert the char* parameters
|
|
|
|
- */
|
|
|
|
-static int assign_save_fixup3(void** param, int param_no) {
|
|
|
|
-
|
|
|
|
- if (strlen((char*) *param) <= 0) {
|
|
|
|
- LM_ERR("empty parameter %d not allowed\n", param_no);
|
|
|
|
- return -1;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (param_no == 1) {
|
|
|
|
- udomain_t* d;
|
|
|
|
-
|
|
|
|
- if (ul.register_udomain((char*) *param, &d) < 0) {
|
|
|
|
- LM_ERR("Erroring doing fixup on assign save");
|
|
|
|
- return -1;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- *param = (void*) d;
|
|
|
|
-
|
|
|
|
- sar_param_t *ap;
|
|
|
|
- ap = (sar_param_t*) pkg_malloc(sizeof (sar_param_t));
|
|
|
|
- if (ap == NULL) {
|
|
|
|
- LM_ERR("no more pkg\n");
|
|
|
|
- return -1;
|
|
|
|
- }
|
|
|
|
- memset(ap, 0, sizeof (sar_param_t));
|
|
|
|
- ap->paction = get_action_from_param(param, param_no);
|
|
|
|
-
|
|
|
|
- ap->param = (udomain_t*) * param;
|
|
|
|
-
|
|
|
|
- *param = (void*) ap;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* Convert the char* parameters
|
|
* Convert the char* parameters
|
|
*/
|
|
*/
|