Changeset 1088:1d1a20a0779d in freeDiameter
- Timestamp:
- May 5, 2013, 4:25:27 AM (11 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 34 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/_sample/sample.c
r974 r1088 85 85 CHECK_FCT( fd_dict_new ( fd_g_config->cnf_dict, DICT_RULE, &rule_data, example_avp_avp, NULL )); 86 86 87 fd_dict_dump_object(example_avp_avp);88 87 } 89 88 TRACE_DEBUG(INFO, "'Example-AVP' created without error"); -
extensions/app_diameap/diameap_server.c
r1027 r1088 85 85 86 86 87 void diameap_cli_sess_cleanup(void * arg, char * sid, void * opaque) 88 { 89 90 struct diameap_sess_data_sm * diameap_sess_data = 91 (struct diameap_sess_data_sm *) arg; 87 void diameap_cli_sess_cleanup(struct sess_state * diameap_sess_data, os0_t sid, void * opaque) 88 { 89 92 90 CHECK_PARAMS_DO( diameap_sess_data, return ); 93 91 … … 141 139 static int diameap_initialize_diameap_sm( 142 140 struct diameap_state_machine * diameap_sm, 143 struct diameap_sess_data_sm* diameap_sess_data)141 struct sess_state * diameap_sess_data) 144 142 { 145 143 TRACE_ENTRY("%p %p", diameap_sm, diameap_sess_data); … … 1017 1015 1018 1016 static int diameap_sess_data_new( 1019 struct diameap_sess_data_sm*diameap_sess_data,1017 struct sess_state *diameap_sess_data, 1020 1018 struct diameap_state_machine *diameap_sm) 1021 1019 { … … 3064 3062 TRACE_ENTRY("%p %p %p %p", rmsg, ravp, sess, action); 3065 3063 3066 struct diameap_sess_data_sm* diameap_sess_data = NULL;3064 struct sess_state * diameap_sess_data = NULL; 3067 3065 struct diameap_state_machine * diameap_sm = NULL; 3068 3066 struct diameap_eap_interface eap_i; … … 3258 3256 TRACE_DEBUG(FULL+1,"%sStoring DiamEAP session data.",DIAMEAP_EXTENSION) 3259 3257 ; 3260 CHECK_MALLOC(diameap_sess_data = malloc(sizeof(struct diameap_sess_data_sm)))3261 ; 3262 memset(diameap_sess_data, 0, sizeof(struct diameap_sess_data_sm));3258 CHECK_MALLOC(diameap_sess_data = malloc(sizeof(struct sess_state))) 3259 ; 3260 memset(diameap_sess_data, 0, sizeof(struct sess_state)); 3263 3261 diameap_sess_data_new(diameap_sess_data, diameap_sm); 3264 3262 … … 3389 3387 3390 3388 /*create handler for sessions */ 3391 CHECK_FCT(fd_sess_handler_create(&diameap_server_reg, diameap_cli_sess_cleanup, NULL ));3389 CHECK_FCT(fd_sess_handler_create(&diameap_server_reg, diameap_cli_sess_cleanup, NULL, NULL)); 3392 3390 3393 3391 /* Register the callback */ -
extensions/app_diameap/diameap_server.h
r441 r1088 40 40 #define DIAMEAP_SERVER_H_ 41 41 42 42 43 43 /* session data structure to store */ 44 struct diameap_sess_data_sm44 struct sess_state 45 45 { 46 46 int invalid_eappackets; /* Number of invalid EAP Packet received*/ -
extensions/app_radgw/rgwx_acct.c
r1027 r1088 160 160 }; 161 161 162 static DECLARE_FD_DUMP_PROTOTYPE(acct_conf_session_state_dump, struct sess_state * st) 163 { 164 return fd_dump_extend( FD_DUMP_STD_PARAMS, "[rgwx sess_state](@%p): aai:%x str:%d TC:%u", st, st->auth_appl, st->send_str, st->term_cause); 165 } 166 162 167 /* Initialize the plugin */ 163 168 static int acct_conf_parse(char * conffile, struct rgwp_config ** state) … … 172 177 memset(new, 0, sizeof(struct rgwp_config)); 173 178 174 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, free, NULL ) );179 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, (void *)free, acct_conf_session_state_dump, NULL ) ); 175 180 new->confstr = conffile; 176 181 -
extensions/app_radgw/rgwx_auth.c
r1027 r1088 125 125 }; 126 126 127 struct sess_state { 128 char req_auth[16]; 129 }; 130 131 127 132 /* Initialize the plugin */ 128 133 static int auth_conf_parse(char * confstr, struct rgwp_config ** state) … … 137 142 memset(new, 0, sizeof(struct rgwp_config)); 138 143 139 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, free, NULL ) );144 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, (void *)free, NULL, NULL ) ); 140 145 new->confstr = confstr; 141 146 … … 1057 1062 /* Store the request identifier in the session (if provided) */ 1058 1063 { 1059 unsigned char * req_auth;1060 CHECK_MALLOC( req_auth = malloc(16));1061 memcpy( req_auth, &rad_req->hdr->authenticator[0], 16);1064 struct sess_state *st; 1065 CHECK_MALLOC(st = malloc(sizeof(struct sess_state))); 1066 memcpy(st->req_auth, &rad_req->hdr->authenticator[0], 16); 1062 1067 1063 CHECK_FCT( fd_sess_state_store( cs->sess_hdl, sess, & req_auth) );1068 CHECK_FCT( fd_sess_state_store( cs->sess_hdl, sess, &st ) ); 1064 1069 } 1065 1070 … … 1077 1082 int no_str = 0; /* indicate if an STR is required for this server */ 1078 1083 uint8_t tuntag = 0; 1079 unsigned char * req_auth = NULL;1084 struct sess_state *st; 1080 1085 int error_cause = 0; 1081 1086 struct session * sess; … … 1089 1094 CHECK_FCT( fd_msg_sess_get(fd_g_config->cnf_dict, *diam_ans, &sess, NULL) ); 1090 1095 if (sess) { 1091 CHECK_FCT( fd_sess_state_retrieve( cs->sess_hdl, sess, & req_auth) );1096 CHECK_FCT( fd_sess_state_retrieve( cs->sess_hdl, sess, &st ) ); 1092 1097 CHECK_FCT( fd_sess_getsid(sess, &sid, &sidlen) ); 1093 1098 } /* else ? */ … … 1759 1764 1760 1765 /* We need the request authenticator */ 1761 CHECK_PARAMS( req_auth);1766 CHECK_PARAMS(st); 1762 1767 1763 1768 /* Retrieve the shared secret */ … … 1778 1783 addr[0] = secret; 1779 1784 len[0] = secret_len; 1780 addr[1] = req_auth;1785 addr[1] = st->req_auth; 1781 1786 len[1] = 16; 1782 1787 addr[2] = &buf[1]; … … 1853 1858 1854 1859 /* We need the request authenticator */ 1855 CHECK_PARAMS( req_auth);1860 CHECK_PARAMS(st); 1856 1861 1857 1862 /* Retrieve the shared secret */ … … 1866 1871 send_len = ahdr->avp_value->os.len - recv_len; 1867 1872 1868 if ( ! radius_msg_add_mppe_keys(*rad_fw, req_auth, secret, secret_len,1873 if ( ! radius_msg_add_mppe_keys(*rad_fw, st->req_auth, secret, secret_len, 1869 1874 ahdr->avp_value->os.data + recv_len, send_len, 1870 1875 ahdr->avp_value->os.data, recv_len) ) { … … 1925 1930 1926 1931 CHECK_FCT( fd_msg_free( aoh ) ); 1927 free( req_auth);1932 free(st); 1928 1933 1929 1934 if (error_cause) { -
extensions/app_radgw/rgwx_echodrop.c
r996 r1088 38 38 #include "rgwx_echodrop.h" 39 39 40 struct sess_state { 41 struct fd_list sentinel; 42 }; 43 40 44 /* If a session is destroyed, empty the list of ed_saved_attribute */ 41 static void state_delete(void * arg, char * sid, void * opaque) { 42 struct fd_list * list = (struct fd_list *)arg; 43 44 CHECK_PARAMS_DO( list, return ); 45 46 while (!FD_IS_LIST_EMPTY(list)) { 47 struct ed_saved_attribute * esa = (struct ed_saved_attribute *)(list->next); 45 static void state_delete(struct sess_state * arg, os0_t sid, void * opaque) { 46 while (!FD_IS_LIST_EMPTY(&arg->sentinel)) { 47 struct ed_saved_attribute * esa = (struct ed_saved_attribute *)(arg->sentinel.next); 48 48 fd_list_unlink(&esa->chain); 49 49 free(esa); 50 50 } 51 free(list); 52 } 53 51 free(arg); 52 } 53 54 static DECLARE_FD_DUMP_PROTOTYPE(ed_session_state_dump, struct sess_state * st) 55 { 56 struct fd_list * li; 57 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "[rgwx sess_state](@%p):\n", st), return NULL); 58 for (li = st->sentinel.next; li != &st->sentinel; li = li->next) { 59 struct ed_saved_attribute * esa = (struct ed_saved_attribute *)(li); 60 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "[rgwx sess_state {esa}] t:%2hhx l:%2hhx d:", esa->attr.type, esa->attr.length), return NULL); 61 CHECK_MALLOC_DO( fd_dump_extend_hexdump(FD_DUMP_STD_PARAMS, (&esa->attr.length) + 1, esa->attr.length - 2, 0,0), return NULL); 62 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "\n"), return NULL); 63 } 64 } 54 65 55 66 /* Initialize the plugin and parse the configuration. */ … … 69 80 70 81 /* Create the session handler */ 71 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, state_delete, NULL ) );82 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, state_delete, ed_session_state_dump, NULL ) ); 72 83 73 84 /* Parse the configuration file */ … … 217 228 if (!FD_IS_LIST_EMPTY(&echo_list)) { 218 229 struct session * sess; 230 struct sess_state * st; 219 231 220 232 CHECK_FCT( fd_msg_sess_get(fd_g_config->cnf_dict, *diam_fw, &sess, NULL) ); … … 229 241 230 242 /* Move the values in a dynamically allocated list */ 231 CHECK_MALLOC( li = malloc(sizeof(struct fd_list)) );232 fd_list_init( li, NULL);233 fd_list_move_end( li, &echo_list);243 CHECK_MALLOC( st = malloc(sizeof(struct sess_state)) ); 244 fd_list_init(&st->sentinel, NULL); 245 fd_list_move_end(&st->sentinel, &echo_list); 234 246 235 247 /* Save the list in the session */ 236 CHECK_FCT( fd_sess_state_store( cs->sess_hdl, sess, & li) );248 CHECK_FCT( fd_sess_state_store( cs->sess_hdl, sess, &st ) ); 237 249 } 238 250 … … 243 255 static int ed_diam_ans( struct rgwp_config * cs, struct msg ** diam_ans, struct radius_msg ** rad_fw, struct rgw_client * cli ) 244 256 { 245 struct fd_list * list = NULL;246 257 struct session * sess; 258 struct sess_state * st; 247 259 248 260 TRACE_ENTRY("%p %p %p %p", cs, diam_ans, rad_fw, cli); … … 258 270 259 271 /* Now try and retrieve any data from the session */ 260 CHECK_FCT( fd_sess_state_retrieve( cs->sess_hdl, sess, & list ) );261 if ( list == NULL) {272 CHECK_FCT( fd_sess_state_retrieve( cs->sess_hdl, sess, &st ) ); 273 if (st == NULL) { 262 274 /* No attribute saved in the session, just return */ 263 275 return 0; … … 268 280 CHECK_PARAMS( rad_fw && *rad_fw); 269 281 270 while (! FD_IS_LIST_EMPTY( list) ) {271 struct ed_saved_attribute * esa = (struct ed_saved_attribute *)( list->next);282 while (! FD_IS_LIST_EMPTY(&st->sentinel) ) { 283 struct ed_saved_attribute * esa = (struct ed_saved_attribute *)(st->sentinel.next); 272 284 273 285 fd_list_unlink(&esa->chain); … … 280 292 free(esa); 281 293 } 282 free( list);294 free(st); 283 295 284 296 return 0; -
extensions/app_radgw/rgwx_sip.c
r1027 r1088 134 134 135 135 } dict; /* cache of the dictionary objects we use */ 136 struct session_handler * sess_hdl; /* We store RADIUS request authenticator information in the session */137 136 char * confstr; 138 137 //Chained list of nonce … … 258 257 memset(new, 0, sizeof(struct rgwp_config)); 259 258 260 CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, free, NULL ) );261 259 new->confstr = conffile; 262 260 … … 312 310 CHECK_PARAMS_DO( state, return ); 313 311 314 CHECK_FCT_DO( fd_sess_handler_destroy( &state->sess_hdl, NULL ), );315 316 312 nonce_deletelistnonce(state); 317 313 CHECK_POSIX_DO(pthread_mutex_destroy(&state->nonce_mutex), /*continue*/); … … 320 316 return; 321 317 } 322 323 318 324 319 /* Handle an incoming RADIUS request */ … … 717 712 //fd_msg_dump_walk(1,*diam_fw); 718 713 719 /* Store the request identifier in the session */720 {721 unsigned char * req_sip;722 CHECK_MALLOC(req_sip = malloc(16));723 memcpy(req_sip, &rad_req->hdr->authenticator[0], 16);724 725 CHECK_FCT( fd_sess_state_store( cs->sess_hdl, sess, &req_sip ) );726 }727 728 714 729 715 return 0; … … 857 843 } 858 844 859 CHECK_FCT( fd_sess_state_retrieve( cs->sess_hdl, sess, &req_sip ) );860 free(req_sip);861 862 845 return 0; 863 846 } -
extensions/app_sip/app_sip.c
r1027 r1088 50 50 51 51 struct disp_hdl * app_sip_default_hdl=NULL; 52 struct session_handler * ds_sess_hdl;53 52 54 53 //configuration stucture … … 213 212 return EINVAL; 214 213 215 CHECK_FCT(fd_sess_handler_create(&ds_sess_hdl, free, NULL));216 217 214 //Creation of thread for Registration Termination 218 215 if(pthread_create(&rtr_thread, NULL,rtr_socket, NULL)) … … 238 235 239 236 (void) fd_disp_unregister(&app_sip_MAR_hdl, NULL); 240 CHECK_FCT_DO( fd_sess_handler_destroy(&ds_sess_hdl, NULL),return);241 237 242 238 -
extensions/app_sip/app_sip.h
r1034 r1088 212 212 #define CODE_SIP_USER_DATA_TYPE 388 213 213 #define CODE_SIP_AOR 122 214 215 struct ds_nonce216 {217 char *nonce;218 };219 214 220 215 //Storage for some useful AVPs -
extensions/app_sip/multimediaauth.c
r639 r1088 36 36 #include "app_sip.h" 37 37 38 struct sess_state 39 { 40 char *nonce; 41 }; 42 38 43 39 44 int app_sip_MAR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act) … … 56 61 57 62 //The nonce we will store and retrieve in session 58 struct ds_nonce *storednonce=NULL;63 struct sess_state *storednonce=NULL; 59 64 60 65 … … 362 367 363 368 //We store the nonce (storednonce structure) inside the session 364 storednonce=malloc(sizeof(struct ds_nonce));365 memset(storednonce,0,sizeof(struct ds_nonce));369 storednonce=malloc(sizeof(struct sess_state)); 370 memset(storednonce,0,sizeof(struct sess_state)); 366 371 CHECK_MALLOC(storednonce->nonce=malloc(NONCE_SIZE*2+1)); 367 372 memcpy(storednonce->nonce,(char *)nonce,NONCE_SIZE*2+1); -
extensions/dbg_interactive/dictionary.i
r979 r1088 60 60 } 61 61 void dump() { 62 fd_dict_dump($self); 62 char * buf = NULL; 63 size_t len; 64 printf("%s", fd_dict_dump(&buf, &len, NULL, $self)); 65 free(buf); 63 66 } 64 67 PyObject * vendors_list() { … … 128 131 %extend dict_object { 129 132 void dump() { 130 fd_dict_dump_object($self); 133 char * buf = NULL; 134 size_t len; 135 printf("%s", fd_dict_dump_object(&buf, &len, NULL, $self)); 136 free(buf); 131 137 } 132 138 enum dict_object_type gettype() { -
extensions/dbg_interactive/endpoints.i
r978 r1088 126 126 127 127 void dump() { 128 fd_ep_dump_one( "", $self ); 128 char * buf = NULL; 129 size_t len; 130 printf("%s", fd_ep_dump_one(&buf, &len, NULL, $self)); 131 free(buf); 129 132 } 130 133 } -
extensions/dbg_interactive/messages.i
r1078 r1088 291 291 /* Dump */ 292 292 void dump (int tree = 1) { 293 if (tree)294 fd_msg_dump_walk(0, $self);295 else296 fd_msg_dump_one(0, $self);293 char * buf = NULL; 294 size_t len; 295 printf("%s", fd_msg_dump_treeview(&buf, &len, NULL, $self, NULL, 0, tree)); 296 free(buf); 297 297 } 298 298 … … 570 570 /* Dump */ 571 571 void dump (int tree = 1) { 572 if (tree)573 fd_msg_dump_walk(0, $self);574 else575 fd_msg_dump_one(0, $self);572 char * buf = NULL; 573 size_t len; 574 printf("%s", fd_msg_dump_treeview(&buf, &len, NULL, $self, NULL, 0, tree)); 575 free(buf); 576 576 } 577 577 -
extensions/dbg_interactive/sessions.i
r1013 r1088 39 39 40 40 %{ 41 struct sess_state { 42 PyObject * pystate; 43 }; 44 41 45 /* call it (might be called from a different thread than the interpreter, when session times out) */ 42 static void call_the_python_cleanup_callback(s ession_state * state, os0_t sid, void * cb) {46 static void call_the_python_cleanup_callback(struct sess_state * state, os0_t sid, void * cb) { 43 47 PyObject *result; 44 48 if (!cb) { … … 67 71 Py_XINCREF(PyCb); 68 72 69 ret = fd_sess_handler_create _internal ( &hdl, call_the_python_cleanup_callback, PyCb );73 ret = fd_sess_handler_create ( &hdl, call_the_python_cleanup_callback, NULL, PyCb ); 70 74 if (ret != 0) { 71 75 DI_ERROR(ret, NULL, NULL); … … 87 91 } 88 92 void dump() { 89 fd_sess_dump_hdl(0, $self); 93 char * buf = NULL; 94 size_t len; 95 printf("%s", fd_sess_dump_hdl(&buf, &len, NULL, $self)); 96 free(buf); 90 97 } 91 98 } … … 166 173 } 167 174 void dump() { 168 fd_sess_dump(0, $self); 175 char * buf = NULL; 176 size_t len = 0; 177 printf("%s", fd_sess_dump(&buf, &len, NULL, $self, 1) ); 178 free(buf); 169 179 } 170 180 void store(struct session_handler * handler, PyObject * DISOWN) { 171 181 int ret; 172 void * store = DISOWN; 182 struct sess_state * st = NULL; 183 st = malloc(sizeof(struct sess_state)); 184 st->pystate = DISOWN; 173 185 Py_XINCREF(DISOWN); 174 ret = fd_sess_state_store _internal(handler, $self, (void *) &store);186 ret = fd_sess_state_store(handler, $self, (void *) &st); 175 187 if (ret != 0) { 176 188 DI_ERROR(ret, NULL, NULL); … … 180 192 PyObject * retrieve(struct session_handler * handler) { 181 193 int ret; 194 struct sess_state * st = NULL; 182 195 PyObject * state = NULL; 183 ret = fd_sess_state_retrieve_internal(handler, $self, (void *) &st ate);184 if (ret != 0) { 185 DI_ERROR(ret, NULL, NULL); 186 return NULL; 187 } 188 if (st ate== NULL) {196 ret = fd_sess_state_retrieve_internal(handler, $self, (void *) &st); 197 if (ret != 0) { 198 DI_ERROR(ret, NULL, NULL); 199 return NULL; 200 } 201 if (st == NULL) { 189 202 Py_INCREF(Py_None); 190 203 return Py_None; 191 204 } 205 state = st->pystate; 206 free(st); 192 207 return state; 193 208 } -
extensions/dbg_monitor/dbg_monitor.c
r1083 r1088 78 78 int i = 0; 79 79 fd_log_threadname("Monitor thread"); 80 char * buf = NULL; 81 size_t len; 80 82 81 83 /* Loop */ … … 111 113 struct peer_hdr * p = (struct peer_hdr *)li->o; 112 114 113 fd_peer_dump(p, NONE);115 TRACE_DEBUG(INFO, "%s", fd_peer_dump(&buf, &len, NULL, p, 1)); 114 116 115 117 CHECK_FCT_DO( fd_stat_getstats(STAT_P_PSM, p, ¤t_count, &limit_count, &highest_count, &total_count, &total, &blocking, &last), ); … … 123 125 CHECK_FCT_DO( pthread_rwlock_unlock(&fd_g_peers_rw), /* continue */ ); 124 126 125 CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_DUMP_SERV, 0, NULL), /* continue */); 127 TRACE_DEBUG(INFO, "[dbg_monitor] Dumping servers information"); 128 TRACE_DEBUG(INFO, "%s", fd_servers_dump(&buf, &len, NULL)); 129 126 130 sleep(1); 127 131 } 128 132 133 free(buf); 129 134 return NULL; 130 135 } … … 133 138 static void got_sig() 134 139 { 135 fd_log_debug("[dbg_monitor] Dumping extra information"); 136 CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_DUMP_DICT, 0, NULL), /* continue */); 137 CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_DUMP_CONFIG, 0, NULL), /* continue */); 138 CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_DUMP_EXT, 0, NULL), /* continue */); 140 char * buf = NULL; 141 size_t len; 142 TRACE_DEBUG(INFO, "[dbg_monitor] Dumping config information"); 143 TRACE_DEBUG(INFO, "%s", fd_conf_dump(&buf, &len, NULL)); 144 TRACE_DEBUG(INFO, "[dbg_monitor] Dumping extensions information"); 145 TRACE_DEBUG(INFO, "%s", fd_ext_dump(&buf, &len, NULL)); 146 TRACE_DEBUG(INFO, "[dbg_monitor] Dumping dictionary information"); 147 TRACE_DEBUG(INFO, "%s", fd_dict_dump(&buf, &len, NULL, fd_g_config->cnf_dict)); 148 free(buf); 139 149 } 140 150 -
extensions/dict_legacy_xml/dict_lxml_xml.c
r974 r1088 1809 1809 1810 1810 TRACE_DEBUG(FULL, "Conversion from '%s' to freeDiameter internal format complete.", xmlfilename); 1811 if (TRACE_BOOL(ANNOYING)) {1812 fd_dict_dump(fd_g_config->cnf_dict);1813 }1814 1811 1815 1812 /* Done */ -
extensions/test_app/ta_cli.c
r930 r1088 46 46 static struct session_handler * ta_cli_reg = NULL; 47 47 48 struct ta_mess_info{48 struct sess_state { 49 49 int32_t randval; /* a random value to store in Test-AVP */ 50 50 struct timespec ts; /* Time of sending the message */ … … 54 54 static void ta_cb_ans(void * data, struct msg ** msg) 55 55 { 56 struct ta_mess_info* mi = NULL;56 struct sess_state * mi = NULL; 57 57 struct timespec ts; 58 58 struct session * sess; … … 177 177 struct avp * avp; 178 178 union avp_value val; 179 struct ta_mess_info* mi = NULL, *svg;179 struct sess_state * mi = NULL, *svg; 180 180 struct session *sess = NULL; 181 181 … … 191 191 192 192 /* Create the random value to store with the session */ 193 mi = malloc(sizeof(struct ta_mess_info));193 mi = malloc(sizeof(struct sess_state)); 194 194 if (mi == NULL) { 195 195 fd_log_debug("malloc failed: %s", strerror(errno)); … … 265 265 int ta_cli_init(void) 266 266 { 267 CHECK_FCT( fd_sess_handler_create(&ta_cli_reg, free, NULL) );267 CHECK_FCT( fd_sess_handler_create(&ta_cli_reg, (void *)free, NULL, NULL) ); 268 268 269 269 CHECK_FCT( fd_event_trig_regcb(ta_conf->signal, "test_app.cli", ta_cli_test_message ) ); -
extensions/test_sip/test_sip.c
r972 r1088 54 54 55 55 struct disp_hdl * test_sip_default_hdl=NULL; 56 struct session_handler * ts_sess_hdl;57 56 58 57 //configuration stucture … … 214 213 */ 215 214 216 CHECK_FCT(fd_sess_handler_create(&ts_sess_hdl, free, NULL));217 215 //CHECK_FCT( fd_event_trig_regcb(30, "test_sip", (void *)test_sipSL_LIR_cb ) ); 218 216 CHECK_FCT( fd_event_trig_regcb(30, "test_sip", (void *)test_sip_SAR_cb ) ); -
freeDiameterd/main.c
r1081 r1088 210 210 211 211 case 'd': /* Increase verbosity of debug messages. */ 212 fd_g_debug_lvl ++;212 fd_g_debug_lvl--; 213 213 break; 214 214 … … 236 236 237 237 case 'q': /* Decrease verbosity then remove debug messages. */ 238 fd_g_debug_lvl --;238 fd_g_debug_lvl++; 239 239 break; 240 240 -
include/freeDiameter/libfdcore.h
r1085 r1088 803 803 int fd_event_trig_regcb(int trigger_val, const char * module, void (*cb)(void)); 804 804 805 #ifndef SWIG 805 806 DECLARE_FD_DUMP_PROTOTYPE(fd_event_trig_dump); 806 807 … … 808 809 DECLARE_FD_DUMP_PROTOTYPE(fd_conf_dump); 809 810 DECLARE_FD_DUMP_PROTOTYPE(fd_ext_dump); 811 DECLARE_FD_DUMP_PROTOTYPE(fd_servers_dump); 812 #endif /* SWIG */ 810 813 DECLARE_FD_DUMP_PROTOTYPE(fd_peer_dump_list, int details); 811 814 DECLARE_FD_DUMP_PROTOTYPE(fd_peer_dump, struct peer_hdr * p, int details); 812 DECLARE_FD_DUMP_PROTOTYPE(fd_servers_dump);813 815 814 816 /*============================================================*/ -
include/freeDiameter/libfdproto.h
r1087 r1088 222 222 223 223 224 /* Helper function for the *dump functions that add into a buffer */224 /* Helper functions for the *dump functions that add into a buffer */ 225 225 char * fd_dump_extend(char ** buf, size_t *len, size_t *offset, const char * format, ... ) _ATTRIBUTE_PRINTFLIKE_(4,5); 226 char * fd_dump_extend_hexdump(char ** buf, size_t *len, size_t *offset, uint8_t *data, size_t datalen, size_t trunc, size_t wrap ); 226 227 227 228 /* All dump functions follow the same prototype: … … 1817 1818 1818 1819 /* The state information that a module associate with a session -- each module defines its own data format */ 1819 typedef void session_state; 1820 1821 typedef DECLARE_FD_DUMP_PROTOTYPE( session_state_dump, session_state * st);1820 struct sess_state; /* declare this in your own extension */ 1821 1822 typedef DECLARE_FD_DUMP_PROTOTYPE((*session_state_dump), struct sess_state * st); 1822 1823 1823 1824 /* The following function must be called to activate the session expiry mechanism */ … … 1843 1844 * ENOMEM : Not enough memory to complete the operation 1844 1845 */ 1845 int fd_sess_handler_create_internal ( struct session_handler ** handler, void (*cleanup)(session_state * state, os0_t sid, void * opaque), session_state_dump dumper, void * opaque ); 1846 /* Macro to avoid casting everywhere */ 1847 #define fd_sess_handler_create( _handler, _cleanup, _dumper, _opaque ) \ 1848 fd_sess_handler_create_internal( (_handler), (void (*)(session_state *, os0_t, void *))(_cleanup), _dumper, (void *)(_opaque) ) 1846 int fd_sess_handler_create ( struct session_handler ** handler, void (*cleanup)(struct sess_state * state, os0_t sid, void * opaque), session_state_dump dumper, void * opaque ); 1849 1847 1850 1848 … … 2018 2016 * ENOMEM : Not enough memory to complete the operation 2019 2017 */ 2020 int fd_sess_state_store_internal ( struct session_handler * handler, struct session * session, session_state ** state ); 2021 #define fd_sess_state_store( _handler, _session, _state ) \ 2022 fd_sess_state_store_internal( (_handler), (_session), (void *)(_state) ) 2018 int fd_sess_state_store ( struct session_handler * handler, struct session * session, struct sess_state ** state ); 2023 2019 2024 2020 /* … … 2040 2036 * EINVAL : A parameter is invalid. 2041 2037 */ 2042 int fd_sess_state_retrieve_internal ( struct session_handler * handler, struct session * session, session_state ** state ); 2043 #define fd_sess_state_retrieve( _handler, _session, _state ) \ 2044 fd_sess_state_retrieve_internal( (_handler), (_session), (void *)(_state) ) 2038 int fd_sess_state_retrieve ( struct session_handler * handler, struct session * session, struct sess_state ** state ); 2045 2039 2046 2040 -
libfdproto/fdproto-internal.h
r1085 r1088 48 48 void fd_sess_fini(void); 49 49 50 /* Where debug messages are sent */51 extern FILE * fd_g_debug_fstr;52 53 50 /* Iterator on the rules of a parent object */ 54 51 int fd_dict_iterate_rules ( struct dict_object *parent, void * data, int (*cb)(void *, struct dict_rule_data *) ); -
libfdproto/init.c
r974 r1088 58 58 } 59 59 60 /* Set the debug stream */61 fd_g_debug_fstr = stdout;62 63 60 /* Initialize the modules that need it */ 64 61 fd_msg_eteid_init(); -
libfdproto/log.c
r1085 r1088 38 38 #include <stdarg.h> 39 39 40 FILE * fd_g_debug_fstr;41 42 40 pthread_mutex_t fd_log_lock = PTHREAD_MUTEX_INITIALIZER; 43 41 pthread_key_t fd_log_thname; 44 int fd_g_debug_lvl = INFO;42 int fd_g_debug_lvl = FD_LOG_NOTICE; 45 43 46 44 static void fd_internal_logger( int, const char *, va_list ); … … 88 86 89 87 90 static void fd_internal_logger( int loglevel, const char *format, va_list ap )88 static void fd_internal_logger( int printlevel, const char *format, va_list ap ) 91 89 { 92 90 char buf[25]; 93 FILE *fstr = fd_g_debug_fstr ?: stdout; 94 int local_use_color = 0;95 96 /* logging has been decided by macros outside already */91 92 /* Do we need to trace this ? */ 93 if (printlevel < fd_g_debug_lvl) 94 return; 97 95 98 96 /* add timestamp */ 99 fprintf(fstr,"%s ", fd_log_time(NULL, buf, sizeof(buf)));97 printf("%s ", fd_log_time(NULL, buf, sizeof(buf))); 100 98 101 99 /* Use colors on stdout ? */ … … 107 105 } 108 106 109 /* now, this time log, do we use colors? */ 110 if ((fstr == stdout) && (use_colors == 1)) 111 local_use_color = 1; 107 switch(printlevel) { 108 case FD_LOG_ANNOYING: printf("%s A ", (use_colors == 1) ? "\e[0;37m" : ""); break; 109 case FD_LOG_DEBUG: printf("%s DBG ", (use_colors == 1) ? "\e[0;37m" : ""); break; 110 case FD_LOG_NOTICE: printf("%sNOTI ", (use_colors == 1) ? "\e[1;37m" : ""); break; 111 case FD_LOG_ERROR: printf("%sERROR ", (use_colors == 1) ? "\e[0;31m" : ""); break; 112 case FD_LOG_FATAL: printf("%sFATAL! ", (use_colors == 1) ? "\e[0;31m" : ""); break; 113 default: printf("%s ??? ", (use_colors == 1) ? "\e[0;31m" : ""); 114 } 115 vprintf(format, ap); 116 if (use_colors == 1) 117 printf("\e[00m"); 118 printf("\n"); 112 119 113 switch(loglevel) { 114 case FD_LOG_DEBUG: fprintf(fstr, "%s DBG ", local_use_color ? "\e[0;37m" : ""); break; 115 case FD_LOG_NOTICE: fprintf(fstr, "%sNOTI ", local_use_color ? "\e[1;37m" : ""); break; 116 case FD_LOG_ERROR: fprintf(fstr, "%sERROR ", local_use_color ? "\e[0;31m" : ""); break; 117 default: fprintf(fstr, "%s ??? ", local_use_color ? "\e[0;31m" : ""); 118 } 119 vfprintf(fstr, format, ap); 120 if (local_use_color) 121 fprintf(fstr, "\e[00m"); 122 fprintf(fstr, "\n"); 123 124 fflush(fstr); 120 fflush(stdout); 125 121 } 126 122 … … 212 208 213 209 210 static size_t sys_mempagesz = 0; 211 212 static size_t get_mempagesz(void) { 213 if (!sys_mempagesz) { 214 sys_mempagesz = sysconf(_SC_PAGESIZE); /* We alloc buffer by memory pages for efficiency */ 215 if (sys_mempagesz <= 0) 216 sys_mempagesz = 1024; /* default size if above call failed */ 217 } 218 return sys_mempagesz; 219 } 220 221 214 222 /* Helper function for fd_*_dump. Prints the format string from 'offset' into '*buf', extends if needed. The location of buf can be updated by this function. */ 215 223 char * fd_dump_extend(char ** buf, size_t *len, size_t *offset, const char * format, ... ) … … 218 226 int to_write; 219 227 size_t o = 0; 220 static size_t mempagesz = 0; 221 222 if (!mempagesz) { 223 mempagesz = sysconf(_SC_PAGESIZE); /* We alloc buffer by memory pages for efficiency */ 224 if (mempagesz <= 0) 225 mempagesz = 1024; /* default size if above call failed */ 226 } 228 size_t mempagesz = get_mempagesz(); 227 229 228 230 /* we do not TRACE_ENTRY this one on purpose */ … … 258 260 return *buf; 259 261 } 262 263 char * fd_dump_extend_hexdump(char ** buf, size_t *len, size_t *offset, uint8_t *data, size_t datalen, size_t trunc, size_t wrap ) 264 { 265 int truncated = 0; 266 size_t towrite = 0; 267 size_t o = 0; 268 int i; 269 char * p; 270 size_t mempagesz = get_mempagesz(); 271 #define TRUNK_MARK "[...]" 272 273 CHECK_PARAMS_DO(buf && len && data, return NULL); 274 275 if (trunc && (datalen > trunc)) { 276 datalen = trunc; 277 truncated = 1; 278 } 279 280 towrite = datalen * 2; 281 282 if (wrap) 283 towrite += datalen / wrap; /* add 1 '\n' every wrap byte */ 284 285 if (truncated) 286 towrite += CONSTSTRLEN(TRUNK_MARK); 287 288 289 if (offset) 290 o = *offset; 291 292 if (*buf == NULL) { 293 /* Directly allocate the size we need */ 294 *len = (((towrite + o) / mempagesz) + 1 ) * mempagesz; 295 CHECK_MALLOC_DO(*buf = malloc(*len), return NULL); 296 } else if ((towrite + o) >= *len) { 297 /* There is no room in the buffer, we extend and redo */ 298 size_t new_len = (((towrite + o) / mempagesz) + 1) * mempagesz; 299 CHECK_MALLOC_DO(*buf = realloc(*buf, new_len), return NULL); 300 *len = new_len; 301 } 302 303 p = *buf + o; 304 for (i = 0; i < datalen; i++) { 305 sprintf(p, "%2hhX", data[i]); 306 p+=2; 307 if ((wrap) && ((i+1) % wrap == 0)) { 308 *p++='\n'; *p ='\0'; /* we want to ensure the buffer is always 0-terminated */ 309 } 310 } 311 312 if (truncated) 313 memcpy(p, TRUNK_MARK, CONSTSTRLEN(TRUNK_MARK)); 314 315 if (offset) 316 *offset += towrite; 317 318 return *buf; 319 } -
libfdproto/sessions.c
r1085 r1088 69 69 int eyec; /* An eye catcher also used to ensure the object is valid, must be SH_EYEC */ 70 70 int id; /* A unique integer to identify this handler */ 71 void (*cleanup)(s ession_state *, os0_t, void *); /* The cleanup function to be called for cleaning a state */72 session_state_dump *state_dump; /* dumper function */71 void (*cleanup)(struct sess_state *, os0_t, void *); /* The cleanup function to be called for cleaning a state */ 72 session_state_dump state_dump; /* dumper function */ 73 73 void *opaque; /* a value that is passed as is to the cleanup callback */ 74 74 }; … … 81 81 struct state { 82 82 int eyec; /* Must be SD_EYEC */ 83 s ession_state*state; /* The state registered by the application, never NULL (or the whole object is deleted) */83 struct sess_state *state; /* The state registered by the application, never NULL (or the whole object is deleted) */ 84 84 struct fd_list chain; /* Chaining in the list of session's states ordered by hdl->id */ 85 85 union { … … 274 274 275 275 /* Create a new handler */ 276 int fd_sess_handler_create _internal ( struct session_handler ** handler, void (*cleanup)(session_state *, os0_t, void *), session_state_dump dumper, void * opaque )276 int fd_sess_handler_create ( struct session_handler ** handler, void (*cleanup)(struct sess_state *, os0_t, void *), session_state_dump dumper, void * opaque ) 277 277 { 278 278 struct session_handler *new; … … 720 720 721 721 /* Save a state information with a session */ 722 int fd_sess_state_store _internal ( struct session_handler * handler, struct session * session, session_state ** state )722 int fd_sess_state_store ( struct session_handler * handler, struct session * session, struct sess_state ** state ) 723 723 { 724 724 struct state *new; … … 773 773 774 774 /* Get the data back */ 775 int fd_sess_state_retrieve _internal ( struct session_handler * handler, struct session * session, session_state ** state )775 int fd_sess_state_retrieve ( struct session_handler * handler, struct session * session, struct sess_state ** state ) 776 776 { 777 777 struct fd_list * li; -
tests/testcnx.c
r974 r1088 715 715 /* For debug: dump the object */ 716 716 fd_log_debug("Dumping CER"); 717 fd_ msg_dump_walk(0, cer);717 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, cer, fd_g_config->cnf_dict, 0, 1)); 718 718 #endif 719 719 -
tests/testdict.c
r788 r1088 192 192 CHECK(1, obj ? 1 : 0 ); 193 193 #if 1 194 fd_ dict_dump_object(obj);194 fd_log_debug("%s", fd_dict_dump_object(FD_DUMP_TEST_PARAMS, obj)); 195 195 #endif 196 196 CHECK( 0, fd_dict_delete(obj) ); -
tests/testdisp.c
r1018 r1088 699 699 700 700 #if 0 701 fd_ conf_dump();701 fd_log_debug("%s", fd_conf_dump(FD_DUMP_TEST_PARAMS)); 702 702 #endif 703 703 } -
tests/testfifo.c
r1071 r1088 559 559 CHECK( 14, iter ); 560 560 561 /* fd_fifo_dump(0, "test", queue, NULL); */562 563 561 for (; i < td.nbr; i++) { 564 562 CHECK( 0, fd_fifo_tryget(queue, &item) ); -
tests/testmesg.c
r1047 r1088 61 61 #if 0 62 62 /* For debug: dump the object */ 63 fd_log_debug("Dumping Accounting-Request empty message ");64 fd_ msg_dump_walk( 0, acr);63 fd_log_debug("Dumping Accounting-Request empty message:"); 64 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, acr, fd_g_config->cnf_dict, 0, 1)); 65 65 #endif 66 66 } … … 79 79 /* For debug: dump the object */ 80 80 fd_log_debug("Dumping Proxy-Info AVP"); 81 fd_ msg_dump_walk(0, pi);81 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, pi, fd_g_config->cnf_dict, 0, 1)); 82 82 fd_log_debug("Dumping dictionary model"); 83 fd_ dict_dump_object(pi_model);83 fd_log_debug("%s", fd_dict_dump_object(FD_DUMP_TEST_PARAMS, pi_model)); 84 84 #endif 85 85 … … 107 107 /* For debug: dump the object */ 108 108 fd_log_debug("Dumping Accounting-Request with Proxy-Info AVP at the end"); 109 fd_ msg_dump_walk(0, acr);109 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, acr, fd_g_config->cnf_dict, 0, 1)); 110 110 #endif 111 111 } … … 306 306 */ 307 307 #if 0 308 fd_ dict_dump_object ( gavp);308 fd_log_debug("%s", fd_dict_dump_object(FD_DUMP_TEST_PARAMS, gavp)); 309 309 #endif 310 310 } 311 311 #if 0 312 312 { 313 fd_ dict_dump_object ( vendor);313 fd_log_debug("%s", fd_dict_dump_object(FD_DUMP_TEST_PARAMS, vendor)); 314 314 } 315 315 #endif … … 365 365 #if 0 366 366 fd_log_debug("AVP no vendor, value 3.1415:"); 367 fd_ msg_dump_one(0, avpi);367 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, avpi, fd_g_config->cnf_dict, 0, 0)); 368 368 #endif 369 369 CHECK( 0, fd_msg_avp_hdr ( avpi, &avpdata ) ); … … 382 382 #if 0 383 383 fd_log_debug("AVP vendor, value 0x123456789abcdeL:"); 384 fd_ msg_dump_one(0, avpi);384 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, avpi, fd_g_config->cnf_dict, 0, 0)); 385 385 #endif 386 386 CHECK( 0, fd_msg_avp_hdr ( avpi, &avpdata ) ); … … 408 408 #if 0 409 409 fd_log_debug("AVP enum i32, value 2 (from const):"); 410 fd_ msg_dump_one(0, avpi);410 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, avpi, fd_g_config->cnf_dict, 0, 0)); 411 411 #endif 412 412 } … … 429 429 #if 0 430 430 fd_log_debug("AVP enum i32, value -5 (from const):"); 431 fd_ msg_dump_one(0, avpi);431 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, avpi, fd_g_config->cnf_dict, 0, 0)); 432 432 #endif 433 433 /* Check the size is correct ( 12 for header + 4 for value ) */ … … 444 444 #if 0 445 445 fd_log_debug("AVP vendor enum i32, value -10 (not const):"); 446 fd_ msg_dump_one(0, avpi);446 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, avpi, fd_g_config->cnf_dict, 0, 0)); 447 447 #endif 448 448 … … 459 459 #if 0 460 460 fd_log_debug("AVP octet string, 'This\\0 is a b...'"); 461 fd_ msg_dump_one(0, avpi);461 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, avpi, fd_g_config->cnf_dict, 0, 0)); 462 462 #endif 463 463 CHECK( 0, fd_msg_avp_hdr ( avpi, &avpdata ) ); … … 488 488 #if 0 489 489 fd_log_debug("AVP Enumuerated OctetString (from const):"); 490 fd_ msg_dump_one(0, avpi);490 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, avpi, fd_g_config->cnf_dict, 0, 0)); 491 491 #endif 492 492 /* Check the size is correct ( 12 for header + 5 for value ) */ … … 513 513 #if 0 514 514 fd_log_debug("AVP Enumuerated OctetString (from const):"); 515 fd_ msg_dump_one(0, avpi);515 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, avpi, fd_g_config->cnf_dict, 0, 0)); 516 516 #endif 517 517 /* Check the size is correct ( 12 for header + 3 for value ) */ … … 535 535 #if 0 536 536 fd_log_debug("AVP octet string, '1234678'"); 537 fd_ msg_dump_one(0, avpch);537 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, avpch, fd_g_config->cnf_dict, 0, 0)); 538 538 #endif 539 539 CHECK( 0, fd_msg_update_length ( avpch ) ); … … 548 548 #if 0 549 549 fd_log_debug("AVP octet string, '12346789'"); 550 fd_ msg_dump_one(0, avpch);550 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, avpch, fd_g_config->cnf_dict, 0, 0)); 551 551 #endif 552 552 } … … 580 580 CHECK( 0, fd_msg_update_length ( msg ) ); 581 581 #if 0 582 fd_ msg_dump_walk(0, msg);582 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, msg, fd_g_config->cnf_dict, 0, 1)); 583 583 #endif 584 584 CHECK( 344, msgdata->msg_length ); … … 660 660 CHECK( 0, fd_msg_parse_buffer( &buf_cpy, 344, &msg) ); 661 661 #if 0 662 fd_ msg_dump_walk(0, msg);662 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, msg, fd_g_config->cnf_dict, 0, 1)); 663 663 #endif 664 664 … … 733 733 734 734 #if 0 735 fd_ msg_dump_walk(0, msg);735 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, msg, fd_g_config->cnf_dict, 0, 1)); 736 736 #endif 737 737 … … 769 769 CHECK( 0, fd_msg_bufferize( msg, &buftmp, NULL ) ); 770 770 771 fd_ msg_dump_walk(0, msg);771 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, msg, fd_g_config->cnf_dict, 0, 1)); 772 772 773 773 TODO("Check the Failed-AVP is as expected"); … … 783 783 CHECK( 0, fd_msg_parse_dict( msg, fd_g_config->cnf_dict, NULL ) ); 784 784 #if 0 785 fd_ msg_dump_walk(0, msg);785 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, msg, fd_g_config->cnf_dict, 0, 1)); 786 786 #endif 787 787 } … … 1336 1336 /* Okay, now delete the message and parse the buffer, then check we obtain the same values back */ 1337 1337 #if 0 1338 fd_ msg_dump_walk(0, msg);1338 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, msg, fd_g_config->cnf_dict, 0, 1)); 1339 1339 #endif 1340 1340 CHECK( 0, fd_msg_free( msg ) ); … … 1343 1343 CHECK( 0, fd_msg_parse_dict( msg, fd_g_config->cnf_dict, NULL ) ); 1344 1344 #if 0 1345 fd_ msg_dump_walk(0, msg);1345 fd_log_debug("%s", fd_msg_dump_treeview(FD_DUMP_TEST_PARAMS, msg, fd_g_config->cnf_dict, 0, 1)); 1346 1346 #endif 1347 1347 -
tests/testmesg_stress.c
r1076 r1088 197 197 < grouped > 198 198 */ 199 #if 0 200 fd_dict_dump_object ( gavp ); 201 #endif 202 } 203 #if 0 204 { 205 fd_dict_dump_object ( vendor ); 206 } 207 #endif 199 } 208 200 } 209 201 -
tests/testpeers.c
r748 r1088 57 57 } 58 58 } 59 fd_ peer_dump_list(0);59 fd_log_debug("%s", fd_peer_dump_list(FD_DUMP_TEST_PARAMS, 0)); 60 60 /* Check we are able to find again any of these */ 61 61 { -
tests/tests.h
r1078 r1088 68 68 /* Define the macro to fail a test with a message */ 69 69 #define FAILTEST( message... ){ \ 70 TRACE_ERROR(message); \ 71 TRACE_ERROR("FAILED: %s ", __STRIPPED_FILE__); \ 70 LOG_F(message); \ 71 LOG_F("FAILED: %s ", __STRIPPED_FILE__); \ 72 free(tbuf); \ 72 73 exit(FAIL); \ 73 74 } … … 75 76 /* Define the macro to pass a test */ 76 77 #define PASSTEST( ){ \ 77 TRACE_NOTICE("PASS: %s", __STRIPPED_FILE__);\78 LOG_N("PASS: %s", __STRIPPED_FILE__); \ 78 79 (void)fd_core_shutdown(); \ 79 80 (void)fd_core_wait_shutdown_complete(); \ 80 81 (void)fd_thr_term(&signal_thr); \ 82 free(tbuf); \ 81 83 exit(PASS); \ 82 84 } 83 85 84 static int test_verbo = 0;85 86 static struct fd_config conf; 86 87 extern struct fd_config * fd_g_config; 87 88 89 /* for dumps */ 90 static char * tbuf = NULL; size_t tbuflen = 0; 91 #define FD_DUMP_TEST_PARAMS &tbuf, &tbuflen, NULL 92 93 88 94 /* Define the standard check routines */ 89 95 #define CHECK( _val, _assert ){ \ 90 if (test_verbo > 0) { \ 91 TRACE_NOTICE("CHECK( %s == %s )", \ 96 LOG_D("CHECK( %s == %s )", \ 92 97 #_assert, \ 93 98 #_val); \ 94 }{ \99 { \ 95 100 __typeof__ (_val) __ret = (_assert); \ 96 101 if (__ret != (_val)) { \ … … 143 148 switch (c) { 144 149 case 'd': /* Increase verbosity of debug messages. */ 145 test_verbo++;150 fd_g_debug_lvl--; 146 151 break; 147 152 148 153 case 'q': /* Decrease verbosity. */ 149 test_verbo--;154 fd_g_debug_lvl++; 150 155 break; 151 156 … … 178 183 } 179 184 } 180 fd_g_debug_lvl = (test_verbo > 0) ? (test_verbo - 1) : 0;181 185 if (!no_timeout) { 182 186 alarm(TEST_TIMEOUT); -
tests/testsess.c
r888 r1088 43 43 44 44 #define TEST_EYEC 0x7e57e1ec 45 struct mystate {45 struct sess_state { 46 46 int eyec; /* TEST_EYEC */ 47 47 os0_t sid; /* the session with which the data was registered */ … … 50 50 }; 51 51 52 static void mycleanup( struct mystate * data, os0_t sid, void * opaque )52 static void mycleanup( struct sess_state * data, os0_t sid, void * opaque ) 53 53 { 54 54 /* sanity */ … … 67 67 } 68 68 69 static __inline__ struct mystate * new_state(os0_t sid, int *freed)69 static __inline__ struct sess_state * new_state(os0_t sid, int *freed) 70 70 { 71 struct mystate *new;72 new = malloc(sizeof(struct mystate));71 struct sess_state *new; 72 new = malloc(sizeof(struct sess_state)); 73 73 CHECK( 1, new ? 1 : 0 ); 74 memset(new, 0, sizeof(struct mystate));74 memset(new, 0, sizeof(struct sess_state)); 75 75 new->eyec = TEST_EYEC; 76 76 new->sid = os0dup(sid, strlen((char *)sid)); … … 106 106 { 107 107 void * testptr = NULL; 108 CHECK( 0, fd_sess_handler_create ( &hdl1, mycleanup, NULL ) );109 CHECK( 0, fd_sess_handler_create ( &hdl2, mycleanup, NULL ) );108 CHECK( 0, fd_sess_handler_create ( &hdl1, mycleanup, NULL, NULL ) ); 109 CHECK( 0, fd_sess_handler_create ( &hdl2, mycleanup, NULL, NULL ) ); 110 110 CHECK( 0, fd_sess_handler_destroy( &hdl2, &testptr ) ); 111 111 CHECK( 1, testptr == NULL ? 1 : 0 ); 112 CHECK( 0, fd_sess_handler_create ( &hdl2, mycleanup, g_opaque ) );113 #if 0 114 fd_ sess_dump_hdl(0, hdl1);115 fd_ sess_dump_hdl(0, hdl2);112 CHECK( 0, fd_sess_handler_create ( &hdl2, mycleanup, NULL, g_opaque ) ); 113 #if 0 114 fd_log_debug("%s\n", fd_sess_dump_hdl(FD_DUMP_TEST_PARAMS, hdl1)); 115 fd_log_debug("%s\n", fd_sess_dump_hdl(FD_DUMP_TEST_PARAMS, hdl2)); 116 116 #endif 117 117 } … … 123 123 CHECK( 0, fd_sess_new( &sess2, TEST_DIAM_ID, CONSTSTRLEN(TEST_DIAM_ID), NULL, 0 ) ); 124 124 #if 0 125 fd_ sess_dump(0, sess1);126 fd_ sess_dump(0, sess2);125 fd_log_debug("%s\n", fd_sess_dump(FD_DUMP_TEST_PARAMS, sess1, 1)); 126 fd_log_debug("%s\n", fd_sess_dump(FD_DUMP_TEST_PARAMS, sess2, 1)); 127 127 #endif 128 128 … … 141 141 CHECK( 0, fd_sess_new( &sess2, TEST_DIAM_ID, CONSTSTRLEN(TEST_DIAM_ID), TEST_OPT, CONSTSTRLEN(TEST_OPT_IN) - 1 ) ); 142 142 #if 0 143 fd_ sess_dump(0, sess1);144 fd_ sess_dump(0, sess2);143 fd_log_debug("%s\n", fd_sess_dump(FD_DUMP_TEST_PARAMS, sess1, 1)); 144 fd_log_debug("%s\n", fd_sess_dump(FD_DUMP_TEST_PARAMS, sess2, 1)); 145 145 #endif 146 146 … … 165 165 CHECK( 0, fd_sess_new( &sess2, NULL, 0, TEST_SID, CONSTSTRLEN(TEST_SID_IN) - 1 ) ); 166 166 #if 0 167 fd_ sess_dump(0, sess1);168 fd_ sess_dump(0, sess2);167 fd_log_debug("%s\n", fd_sess_dump(FD_DUMP_TEST_PARAMS, sess1, 1)); 168 fd_log_debug("%s\n", fd_sess_dump(FD_DUMP_TEST_PARAMS, sess2, 1)); 169 169 #endif 170 170 CHECK( 0, fd_sess_getsid(sess1, &str1, &str1len) ); … … 211 211 /* Test fd_sess_reclaim */ 212 212 { 213 struct mystate *tms;213 struct sess_state *tms; 214 214 215 215 CHECK( 0, fd_sess_fromsid( TEST_SID, CONSTSTRLEN(TEST_SID_IN), &sess1, &new ) ); … … 271 271 /* Test states operations */ 272 272 { 273 struct mystate * ms[6], *tms;273 struct sess_state * ms[6], *tms; 274 274 int freed[6]; 275 275 struct timespec timeout; … … 295 295 296 296 #if 0 297 fd_ sess_dump(0, sess1);297 fd_log_debug("%s\n", fd_sess_dump(FD_DUMP_TEST_PARAMS, sess1, 1)); 298 298 #endif 299 299 … … 332 332 333 333 #if 0 334 fd_ sess_dump(0, sess1);335 fd_ sess_dump(0, sess2);336 fd_ sess_dump(0, sess3);334 fd_log_debug("%s\n", fd_sess_dump(FD_DUMP_TEST_PARAMS, sess1, 1)); 335 fd_log_debug("%s\n", fd_sess_dump(FD_DUMP_TEST_PARAMS, sess2, 1)); 336 fd_log_debug("%s\n", fd_sess_dump(FD_DUMP_TEST_PARAMS, sess3, 1)); 337 337 #endif 338 338 … … 357 357 358 358 #if 1 359 fd_ sess_dump(0, sess1);360 fd_ sess_dump(0, sess2);359 fd_log_debug("%s\n", fd_sess_dump(FD_DUMP_TEST_PARAMS, sess1, 1)); 360 fd_log_debug("%s\n", fd_sess_dump(FD_DUMP_TEST_PARAMS, sess2, 1)); 361 361 #endif 362 362 … … 373 373 CHECK( 0, fd_sess_settimeout( sess2, &timeout) ); 374 374 #if 1 375 fd_ sess_dump(0, sess1);376 fd_ sess_dump(0, sess2);375 fd_log_debug("%s\n", fd_sess_dump(FD_DUMP_TEST_PARAMS, sess1, 1)); 376 fd_log_debug("%s\n", fd_sess_dump(FD_DUMP_TEST_PARAMS, sess2, 1)); 377 377 #endif 378 378 timeout.tv_sec = 0;
Note: See TracChangeset
for help on using the changeset viewer.