Changeset 639:95a784729cac in freeDiameter for extensions
- Timestamp:
- Dec 20, 2010, 1:07:06 PM (13 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- extensions
- Files:
-
- 28 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/app_acct/app_acct.c
r403 r639 46 46 47 47 /* Callback for incoming Base Accounting Accounting-Request messages */ 48 static int acct_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act)48 static int acct_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act) 49 49 { 50 50 struct msg * m; … … 135 135 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_APPLICATION, APPLICATION_BY_NAME, "Diameter Base Accounting", &data.app, ENOENT) ); 136 136 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Accounting-Request", &data.command, ENOENT) ); 137 CHECK_FCT( fd_disp_register( acct_cb, DISP_HOW_CC, &data, NULL ) );137 CHECK_FCT( fd_disp_register( acct_cb, DISP_HOW_CC, &data, NULL, NULL ) ); 138 138 139 139 /* Advertise the support for the Diameter Base Accounting application in the peer */ -
extensions/app_diameap/diameap_server.c
r610 r639 85 85 86 86 87 void diameap_cli_sess_cleanup(void * arg, char * sid )87 void diameap_cli_sess_cleanup(void * arg, char * sid, void * opaque) 88 88 { 89 89 … … 3060 3060 3061 3061 static int diameap_server_callback(struct msg ** rmsg, struct avp * ravp, 3062 struct session * sess, enum disp_action * action)3062 struct session * sess, void * opaque, enum disp_action * action) 3063 3063 { 3064 3064 TRACE_ENTRY("%p %p %p %p", rmsg, ravp, sess, action); … … 3389 3389 3390 3390 /*create handler for sessions */ 3391 CHECK_FCT(fd_sess_handler_create(&diameap_server_reg, diameap_cli_sess_cleanup ));3391 CHECK_FCT(fd_sess_handler_create(&diameap_server_reg, diameap_cli_sess_cleanup, NULL)); 3392 3392 3393 3393 /* Register the callback */ … … 3397 3397 3398 3398 /* Register the callback for EAP Application */ 3399 CHECK_FCT(fd_disp_register(diameap_server_callback, DISP_HOW_CC, &when, 3399 CHECK_FCT(fd_disp_register(diameap_server_callback, DISP_HOW_CC, &when, NULL, 3400 3400 &handle)); 3401 3401 … … 3410 3410 int diameap_stop_server(void) 3411 3411 { 3412 CHECK_FCT(fd_sess_handler_destroy(&diameap_server_reg ));3413 CHECK_FCT(fd_disp_unregister(&handle ));3412 CHECK_FCT(fd_sess_handler_destroy(&diameap_server_reg, NULL)); 3413 CHECK_FCT(fd_disp_unregister(&handle, NULL)); 3414 3414 3415 3415 return 0; -
extensions/app_radgw/rgwx_acct.c
r564 r639 173 173 memset(new, 0, sizeof(struct rgwp_config)); 174 174 175 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, free ) );175 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, free, NULL ) ); 176 176 new->confstr = conffile; 177 177 … … 284 284 TRACE_ENTRY("%p", state); 285 285 CHECK_PARAMS_DO( state, return ); 286 CHECK_FCT_DO( fd_sess_handler_destroy( &state->sess_hdl ), );286 CHECK_FCT_DO( fd_sess_handler_destroy( &state->sess_hdl, NULL ), ); 287 287 free(state); 288 288 return; -
extensions/app_radgw/rgwx_auth.c
r532 r639 139 139 memset(new, 0, sizeof(struct rgwp_config)); 140 140 141 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, free ) );141 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, free, NULL ) ); 142 142 new->confstr = confstr; 143 143 … … 225 225 TRACE_ENTRY("%p", state); 226 226 CHECK_PARAMS_DO( state, return ); 227 CHECK_FCT_DO( fd_sess_handler_destroy( &state->sess_hdl ), );227 CHECK_FCT_DO( fd_sess_handler_destroy( &state->sess_hdl, NULL ), ); 228 228 free(state); 229 229 return; -
extensions/app_radgw/rgwx_echodrop.c
r403 r639 39 39 40 40 /* If a session is destroyed, empty the list of ed_saved_attribute */ 41 static void state_delete(void * arg, char * sid ) {41 static void state_delete(void * arg, char * sid, void * opaque) { 42 42 struct fd_list * list = (struct fd_list *)arg; 43 43 … … 69 69 70 70 /* Create the session handler */ 71 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, state_delete ) );71 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, state_delete, NULL ) ); 72 72 73 73 /* Parse the configuration file */ … … 107 107 TRACE_ENTRY("%p", state); 108 108 CHECK_PARAMS_DO( state, return ); 109 CHECK_FCT_DO( fd_sess_handler_destroy( &state->sess_hdl ), );109 CHECK_FCT_DO( fd_sess_handler_destroy( &state->sess_hdl, NULL ), ); 110 110 while (! FD_IS_LIST_EMPTY(&state->attributes) ) { 111 111 struct fd_list * li = state->attributes.next; -
extensions/app_radgw/rgwx_sip.c
r584 r639 262 262 memset(new, 0, sizeof(struct rgwp_config)); 263 263 264 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, free ) );264 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, free, NULL ) ); 265 265 new->confstr = conffile; 266 266 … … 316 316 CHECK_PARAMS_DO( state, return ); 317 317 318 CHECK_FCT_DO( fd_sess_handler_destroy( &state->sess_hdl ), );318 CHECK_FCT_DO( fd_sess_handler_destroy( &state->sess_hdl, NULL ), ); 319 319 320 320 nonce_deletelistnonce(state); -
extensions/app_sip/app_sip.c
r433 r639 59 59 struct app_sip_dict sip_dict; 60 60 61 int app_sip_default_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act)62 { 63 TRACE_ENTRY("%p %p %p %p ", msg, avp, sess, act);61 int app_sip_default_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act) 62 { 63 TRACE_ENTRY("%p %p %p %p %p", msg, avp, sess, opaque, act); 64 64 65 65 return 0; … … 179 179 if(as_conf->mode==1) 180 180 { 181 // **Command Codes181 // **Command Codes 182 182 //MAR 183 183 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Multimedia-Auth-Request", &data.command, ENOENT) ); 184 CHECK_FCT( fd_disp_register( app_sip_MAR_cb, DISP_HOW_CC, &data, &app_sip_MAR_hdl ) );184 CHECK_FCT( fd_disp_register( app_sip_MAR_cb, DISP_HOW_CC, &data, NULL, &app_sip_MAR_hdl ) ); 185 185 //RTA 186 186 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Registration-Termination-Answer", &data.command, ENOENT) ); 187 CHECK_FCT( fd_disp_register( app_sip_RTA_cb, DISP_HOW_CC, &data, &app_sip_RTA_hdl ) );187 CHECK_FCT( fd_disp_register( app_sip_RTA_cb, DISP_HOW_CC, &data, NULL, &app_sip_RTA_hdl ) ); 188 188 //PPA 189 189 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Push-Profile-Answer", &data.command, ENOENT) ); 190 CHECK_FCT( fd_disp_register( app_sip_PPA_cb, DISP_HOW_CC, &data, &app_sip_PPA_hdl ) );190 CHECK_FCT( fd_disp_register( app_sip_PPA_cb, DISP_HOW_CC, &data, NULL, &app_sip_PPA_hdl ) ); 191 191 //LIR 192 192 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Location-Info-Request", &data.command, ENOENT) ); 193 CHECK_FCT( fd_disp_register( app_sip_LIR_cb, DISP_HOW_CC, &data, &app_sip_LIR_hdl ) );193 CHECK_FCT( fd_disp_register( app_sip_LIR_cb, DISP_HOW_CC, &data, NULL, &app_sip_LIR_hdl ) ); 194 194 //UAR 195 195 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "User-Authorization-Request", &data.command, ENOENT) ); 196 CHECK_FCT( fd_disp_register( app_sip_UAR_cb, DISP_HOW_CC, &data, &app_sip_UAR_hdl ) );196 CHECK_FCT( fd_disp_register( app_sip_UAR_cb, DISP_HOW_CC, &data, NULL, &app_sip_UAR_hdl ) ); 197 197 //SAR 198 198 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Server-Assignment-Request", &data.command, ENOENT) ); 199 CHECK_FCT( fd_disp_register( app_sip_SAR_cb, DISP_HOW_CC, &data, &app_sip_SAR_hdl ) );199 CHECK_FCT( fd_disp_register( app_sip_SAR_cb, DISP_HOW_CC, &data, NULL, &app_sip_SAR_hdl ) ); 200 200 } 201 201 if(as_conf->mode==2) … … 203 203 //LIR 204 204 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Location-Info-Request", &data.command, ENOENT) ); 205 CHECK_FCT( fd_disp_register( app_sip_SL_LIR_cb, DISP_HOW_CC, &data, &app_sip_SL_LIR_hdl ) );205 CHECK_FCT( fd_disp_register( app_sip_SL_LIR_cb, DISP_HOW_CC, &data, NULL, &app_sip_SL_LIR_hdl ) ); 206 206 } 207 207 //Callback for unexpected messages 208 CHECK_FCT( fd_disp_register( app_sip_default_cb, DISP_HOW_APPID, &data, &app_sip_default_hdl ) );208 CHECK_FCT( fd_disp_register( app_sip_default_cb, DISP_HOW_APPID, &data, NULL, &app_sip_default_hdl ) ); 209 209 210 210 … … 213 213 return EINVAL; 214 214 215 CHECK_FCT(fd_sess_handler_create(&ds_sess_hdl, free ));215 CHECK_FCT(fd_sess_handler_create(&ds_sess_hdl, free, NULL)); 216 216 217 217 //Creation of thread for Registration Termination … … 237 237 //TODO:unregister other callbacks 238 238 239 (void) fd_disp_unregister(&app_sip_MAR_hdl );240 CHECK_FCT_DO( fd_sess_handler_destroy(&ds_sess_hdl ),return);239 (void) fd_disp_unregister(&app_sip_MAR_hdl, NULL); 240 CHECK_FCT_DO( fd_sess_handler_destroy(&ds_sess_hdl, NULL),return); 241 241 242 242 -
extensions/app_sip/app_sip.h
r468 r639 140 140 int ds_entry(); 141 141 void fd_ext_fini(void); 142 int app_sip_default_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act);143 int app_sip_MAR_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act);144 int app_sip_RTA_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act);145 int app_sip_PPA_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act);146 int app_sip_LIR_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act);147 int app_sip_UAR_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act);148 int app_sip_SAR_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act);142 int app_sip_default_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act); 143 int app_sip_MAR_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act); 144 int app_sip_RTA_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act); 145 int app_sip_PPA_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act); 146 int app_sip_LIR_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act); 147 int app_sip_UAR_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act); 148 int app_sip_SAR_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act); 149 149 150 150 //Suscriber Locator 151 int app_sip_SL_LIR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act);152 //int app_sip_SL_SAR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act);151 int app_sip_SL_LIR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act); 152 //int app_sip_SL_SAR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act); 153 153 154 154 #define SQL_GETPASSWORD "SELECT `password` FROM ds_users WHERE `username` ='%s'" -
extensions/app_sip/locationinfo.c
r433 r639 37 37 38 38 39 int app_sip_LIR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act)39 int app_sip_LIR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act) 40 40 { 41 41 TRACE_ENTRY("%p %p %p %p", msg, paramavp, sess, act); -
extensions/app_sip/locationinfosl.c
r433 r639 37 37 38 38 //This callback is specific to SUSCRIBER LOCATOR. We must look for the "serving" SIP server 39 int app_sip_SL_LIR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act)39 int app_sip_SL_LIR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act) 40 40 { 41 41 TRACE_ENTRY("%p %p %p %p", msg, paramavp, sess, act); -
extensions/app_sip/multimediaauth.c
r433 r639 37 37 38 38 39 int app_sip_MAR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act)39 int app_sip_MAR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act) 40 40 { 41 41 struct msg *ans, *qry; -
extensions/app_sip/pushprofile.c
r440 r639 255 255 256 256 //Called when an PPA arrive 257 int app_sip_PPA_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act)257 int app_sip_PPA_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act) 258 258 { 259 259 //TODO: PPA reception -
extensions/app_sip/registrationtermination.c
r440 r639 258 258 259 259 //Called when an RTA arrive 260 int app_sip_RTA_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act)260 int app_sip_RTA_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act) 261 261 { 262 262 //TODO: RTA reception -
extensions/app_sip/serverassignment.c
r433 r639 37 37 38 38 39 int app_sip_SAR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act)39 int app_sip_SAR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act) 40 40 { 41 41 TRACE_ENTRY("%p %p %p %p", msg, paramavp, sess, act); -
extensions/app_sip/userauthorization.c
r433 r639 37 37 38 38 39 int app_sip_UAR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act)39 int app_sip_UAR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act) 40 40 { 41 41 TRACE_ENTRY("%p %p %p %p", msg, paramavp, sess, act); -
extensions/dbg_interactive/dbg_interactive.c
r625 r639 67 67 68 68 end: 69 /* Upon exit, issue the order of terminating to fD */ 70 CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_TERMINATE, 0, NULL), ); 69 /* Upon exit, issue the order of terminating to fD, if the interpreter was started without a file */ 70 if (!arg) { 71 CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_TERMINATE, 0, NULL), ); 72 } 71 73 72 74 return NULL; -
extensions/dbg_interactive/dispatch.i
r638 r639 40 40 41 41 %{ 42 /* store the python callback function here */43 static PyObject * py_dispatch_cb = NULL;44 static int py_dispatch_cb_n = 0;45 42 /* call it (will be called from a different thread than the interpreter, when message arrives) */ 46 static int call_the_python_dispatch_callback(struct msg **msg, struct avp *avp, struct session *session, enum disp_action *action) {43 static int call_the_python_dispatch_callback(struct msg **msg, struct avp *avp, struct session *session, void * pycb, enum disp_action *action) { 47 44 PyObject *PyMsg, *PyAvp, *PySess; 48 PyObject * result = NULL;45 PyObject *cb, *result = NULL; 49 46 int ret = 0; 50 47 51 if (!py_dispatch_cb) 48 if (!pycb) { 49 fd_log_debug("Internal error: missing the callback!\n"); 52 50 return ENOTSUP; 51 } 52 cb = pycb; 53 53 54 54 SWIG_PYTHON_THREAD_BEGIN_BLOCK; … … 59 59 60 60 /* Call the function */ 61 result = PyEval_CallFunction( py_dispatch_cb, "(OOO)", PyMsg, PyAvp, PySess);61 result = PyEval_CallFunction(cb, "(OOO)", PyMsg, PyAvp, PySess); 62 62 63 63 /* The result is supposedly composed of: [ ret, *msg, *action ] */ … … 108 108 struct disp_hdl * hdl = NULL; 109 109 int ret; 110 if (py_dispatch_cb && (py_dispatch_cb != PyCb)) {111 DI_ERROR(EINVAL, PyExc_SyntaxError, "Only one dispatch callback is supported at the moment in this extension\n.");112 return NULL;113 }114 py_dispatch_cb = PyCb;115 py_dispatch_cb_n += 1;116 Py_XINCREF(py_dispatch_cb);117 110 118 ret = fd_disp_register ( call_the_python_dispatch_callback, how, when, &hdl ); 111 Py_XINCREF(PyCb); 112 113 ret = fd_disp_register ( call_the_python_dispatch_callback, how, when, PyCb, &hdl ); 119 114 if (ret != 0) { 120 115 DI_ERROR(ret, NULL, NULL); … … 125 120 ~disp_hdl() { 126 121 struct disp_hdl * hdl = self; 127 int ret = fd_disp_unregister(&hdl); 122 PyObject * cb = NULL; 123 int ret = fd_disp_unregister(&hdl, (void *)&cb); 128 124 if (ret != 0) { 129 125 DI_ERROR(ret, NULL, NULL); 130 126 } 131 /* Now free the callback */ 132 Py_XDECREF(py_dispatch_cb); 133 py_dispatch_cb_n -= 1; 134 if (!py_dispatch_cb_n) 135 py_dispatch_cb = NULL; 127 Py_XDECREF(cb); 136 128 return; 137 129 } -
extensions/dbg_interactive/sessions.i
r638 r639 39 39 40 40 %{ 41 /* store the python callback function here */42 static PyObject * py_cleanup_cb = NULL;43 41 /* call it (might be called from a different thread than the interpreter, when session times out) */ 44 static void call_the_python_cleanup_callback(session_state * state, char * sid ) {42 static void call_the_python_cleanup_callback(session_state * state, char * sid, void * cb) { 45 43 PyObject *result; 46 if (!py_cleanup_cb) 44 if (!cb) { 45 fd_log_debug("Internal error: missing callback object!\n"); 47 46 return; 47 } 48 48 49 49 /* Call the function */ 50 50 SWIG_PYTHON_THREAD_BEGIN_BLOCK; 51 result = PyEval_CallFunction( py_cleanup_cb, "(Os)", state, sid);51 result = PyEval_CallFunction((PyObject *)cb, "(Os)", state, sid); 52 52 Py_XDECREF(result); 53 53 SWIG_PYTHON_THREAD_END_BLOCK; … … 64 64 struct session_handler * hdl = NULL; 65 65 int ret; 66 if (py_cleanup_cb) {67 DI_ERROR(EINVAL, PyExc_SyntaxError, "Only one session handler at a time is supported at the moment in this extension\n.");68 return NULL;69 }70 py_cleanup_cb = PyCb;71 Py_XINCREF(py_cleanup_cb);72 66 73 ret = fd_sess_handler_create_internal ( &hdl, call_the_python_cleanup_callback ); 67 Py_XINCREF(PyCb); 68 69 ret = fd_sess_handler_create_internal ( &hdl, call_the_python_cleanup_callback, PyCb ); 74 70 if (ret != 0) { 75 71 DI_ERROR(ret, NULL, NULL); … … 80 76 ~session_handler() { 81 77 struct session_handler * hdl = self; 82 int ret = fd_sess_handler_destroy(&hdl); 78 PyObject * cb = NULL; 79 80 int ret = fd_sess_handler_destroy(&hdl, (void *)&cb); 83 81 if (ret != 0) { 84 82 DI_ERROR(ret, NULL, NULL); 85 83 } 86 84 /* Now free the callback */ 87 Py_XDECREF(py_cleanup_cb); 88 py_cleanup_cb = NULL; 85 Py_XDECREF(cb); 89 86 return; 90 87 } -
extensions/test_app/ta_cli.c
r406 r639 234 234 int ta_cli_init(void) 235 235 { 236 CHECK_FCT( fd_sess_handler_create(&ta_cli_reg, free ) );236 CHECK_FCT( fd_sess_handler_create(&ta_cli_reg, free, NULL) ); 237 237 238 238 CHECK_FCT( fd_sig_register(ta_conf->signal, "test_app.cli", ta_cli_test_message ) ); … … 245 245 CHECK_FCT_DO( fd_sig_unregister(ta_conf->signal), /* continue */ ); 246 246 247 CHECK_FCT_DO( fd_sess_handler_destroy(&ta_cli_reg ), /* continue */ );247 CHECK_FCT_DO( fd_sess_handler_destroy(&ta_cli_reg, NULL), /* continue */ ); 248 248 249 249 return; -
extensions/test_app/ta_serv.c
r575 r639 42 42 43 43 /* Default callback for the application. */ 44 static int ta_fb_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act)44 static int ta_fb_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act) 45 45 { 46 46 /* This CB should never be called */ … … 53 53 54 54 /* Callback for incoming Test-Request messages */ 55 static int ta_tr_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act)55 static int ta_tr_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act) 56 56 { 57 57 struct msg *ans, *qry; … … 120 120 121 121 /* fallback CB if command != Test-Request received */ 122 CHECK_FCT( fd_disp_register( ta_fb_cb, DISP_HOW_APPID, &data, &ta_hdl_fb ) );122 CHECK_FCT( fd_disp_register( ta_fb_cb, DISP_HOW_APPID, &data, NULL, &ta_hdl_fb ) ); 123 123 124 124 /* Now specific handler for Test-Request */ 125 CHECK_FCT( fd_disp_register( ta_tr_cb, DISP_HOW_CC, &data, &ta_hdl_tr ) );125 CHECK_FCT( fd_disp_register( ta_tr_cb, DISP_HOW_CC, &data, NULL, &ta_hdl_tr ) ); 126 126 127 127 return 0; … … 131 131 { 132 132 if (ta_hdl_fb) { 133 (void) fd_disp_unregister(&ta_hdl_fb );133 (void) fd_disp_unregister(&ta_hdl_fb, NULL); 134 134 } 135 135 if (ta_hdl_tr) { 136 (void) fd_disp_unregister(&ta_hdl_tr );136 (void) fd_disp_unregister(&ta_hdl_tr, NULL); 137 137 } 138 138 -
extensions/test_sip/locationinfo.c
r430 r639 125 125 } 126 126 127 int test_sip_LIA_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act)127 int test_sip_LIA_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act) 128 128 { 129 129 -
extensions/test_sip/locationinfosl.c
r430 r639 127 127 } 128 128 129 int test_sipSL_LIA_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act)129 int test_sipSL_LIA_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act) 130 130 { 131 131 -
extensions/test_sip/multimediaauth.c
r409 r639 37 37 38 38 39 int test_sip_MAA_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act)39 int test_sip_MAA_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act) 40 40 { 41 41 /* -
extensions/test_sip/registrationtermination.c
r409 r639 37 37 38 38 39 int test_sip_RTR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act)39 int test_sip_RTR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act) 40 40 { 41 41 -
extensions/test_sip/serverassignment.c
r432 r639 168 168 } 169 169 170 int test_sip_SAA_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act)170 int test_sip_SAA_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act) 171 171 { 172 172 -
extensions/test_sip/test_sip.c
r448 r639 64 64 struct sip_dict sip_dict; 65 65 66 int test_sip_default_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act)66 int test_sip_default_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act) 67 67 { 68 68 TRACE_ENTRY("%p %p %p %p", msg, avp, sess, act); … … 187 187 //MAA 188 188 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Multimedia-Auth-Answer", &data.command, ENOENT) ); 189 CHECK_FCT( fd_disp_register( test_sip_MAA_cb, DISP_HOW_CC, &data, &test_sip_MAA_hdl ) );189 CHECK_FCT( fd_disp_register( test_sip_MAA_cb, DISP_HOW_CC, &data, NULL, &test_sip_MAA_hdl ) ); 190 190 191 191 //UAA 192 192 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "User-Authorization-Answer", &data.command, ENOENT) ); 193 CHECK_FCT( fd_disp_register( test_sip_UAA_cb, DISP_HOW_CC, &data, &test_sip_UAA_hdl ) );193 CHECK_FCT( fd_disp_register( test_sip_UAA_cb, DISP_HOW_CC, &data, NULL, &test_sip_UAA_hdl ) ); 194 194 195 195 //RTR 196 196 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Registration-Termination-Request", &data.command, ENOENT) ); 197 CHECK_FCT( fd_disp_register( test_sip_RTR_cb, DISP_HOW_CC, &data, &test_sip_RTR_hdl ) );197 CHECK_FCT( fd_disp_register( test_sip_RTR_cb, DISP_HOW_CC, &data, NULL, &test_sip_RTR_hdl ) ); 198 198 199 199 //LIA 200 200 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Location-Info-Answer", &data.command, ENOENT) ); 201 CHECK_FCT( fd_disp_register( test_sip_LIA_cb, DISP_HOW_CC, &data, &test_sip_LIA_hdl ) );201 CHECK_FCT( fd_disp_register( test_sip_LIA_cb, DISP_HOW_CC, &data, NULL, &test_sip_LIA_hdl ) ); 202 202 203 203 //LIA 204 204 CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Server-Assignment-Answer", &data.command, ENOENT) ); 205 CHECK_FCT( fd_disp_register( test_sip_SAA_cb, DISP_HOW_CC, &data, &test_sip_SAA_hdl ) );205 CHECK_FCT( fd_disp_register( test_sip_SAA_cb, DISP_HOW_CC, &data, NULL, &test_sip_SAA_hdl ) ); 206 206 207 207 //Callback for unexpected messages 208 CHECK_FCT( fd_disp_register( test_sip_default_cb, DISP_HOW_APPID, &data, &test_sip_default_hdl ) );208 CHECK_FCT( fd_disp_register( test_sip_default_cb, DISP_HOW_APPID, &data, NULL, &test_sip_default_hdl ) ); 209 209 210 210 /* … … 214 214 */ 215 215 216 CHECK_FCT(fd_sess_handler_create(&ts_sess_hdl, free ));216 CHECK_FCT(fd_sess_handler_create(&ts_sess_hdl, free, NULL)); 217 217 //CHECK_FCT( fd_sig_register(30, "test_sip", (void *)test_sipSL_LIR_cb ) ); 218 218 CHECK_FCT( fd_sig_register(30, "test_sip", (void *)test_sip_SAR_cb ) ); -
extensions/test_sip/test_sip.h
r427 r639 115 115 int test_sipSL_LIR_cb(); 116 116 117 int test_sip_default_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act);118 int test_sip_MAA_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act);119 int test_sip_RTR_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act);120 int test_sip_UAA_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act);121 int test_sip_LIA_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act);122 int test_sip_SAA_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act);123 int test_sipSL_LIA_cb( struct msg ** msg, struct avp * avp, struct session * sess, enum disp_action * act);117 int test_sip_default_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act); 118 int test_sip_MAA_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act); 119 int test_sip_RTR_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act); 120 int test_sip_UAA_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act); 121 int test_sip_LIA_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act); 122 int test_sip_SAA_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act); 123 int test_sipSL_LIA_cb( struct msg ** msg, struct avp * avp, struct session * sess, void * opaque, enum disp_action * act); -
extensions/test_sip/userauthorization.c
r430 r639 159 159 } 160 160 161 int test_sip_UAA_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, enum disp_action * act)161 int test_sip_UAA_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act) 162 162 { 163 163
Note: See TracChangeset
for help on using the changeset viewer.