Changeset 1140 for pjproject/trunk/pjnath/src/pjnath/stun_session.c
- Timestamp:
- Apr 3, 2007 6:01:27 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjnath/src/pjnath/stun_session.c
r1126 r1140 50 50 51 51 52 static void tsx_on_complete(pj_stun_client_tsx *tsx, 53 pj_status_t status, 54 const pj_stun_msg *response); 55 static pj_status_t tsx_on_send_msg(pj_stun_client_tsx *tsx, 56 const void *stun_pkt, 57 pj_size_t pkt_size); 52 static void stun_tsx_on_complete(pj_stun_client_tsx *tsx, 53 pj_status_t status, 54 const pj_stun_msg *response); 55 static pj_status_t stun_tsx_on_send_msg(pj_stun_client_tsx *tsx, 56 const void *stun_pkt, 57 pj_size_t pkt_size); 58 static void stun_tsx_on_destroy(pj_stun_client_tsx *tsx); 58 59 59 60 static pj_stun_tsx_cb tsx_cb = 60 61 { 61 &tsx_on_complete, 62 &tsx_on_send_msg 62 &stun_tsx_on_complete, 63 &stun_tsx_on_send_msg, 64 &stun_tsx_on_destroy 63 65 }; 64 66 … … 121 123 static pj_status_t create_request_tdata(pj_stun_session *sess, 122 124 unsigned msg_type, 125 const pj_uint8_t tsx_id[12], 123 126 pj_stun_tx_data **p_tdata) 124 127 { … … 132 135 /* Create STUN message */ 133 136 status = pj_stun_msg_create(tdata->pool, msg_type, PJ_STUN_MAGIC, 134 NULL, &tdata->msg);137 tsx_id, &tdata->msg); 135 138 if (status != PJ_SUCCESS) { 136 139 pj_pool_release(tdata->pool); … … 149 152 } 150 153 154 155 static void stun_tsx_on_destroy(pj_stun_client_tsx *tsx) 156 { 157 pj_stun_tx_data *tdata; 158 159 tdata = (pj_stun_tx_data*) pj_stun_client_tsx_get_data(tsx); 160 pj_stun_client_tsx_destroy(tsx); 161 pj_pool_release(tdata->pool); 162 } 163 151 164 static void destroy_tdata(pj_stun_tx_data *tdata) 152 165 { 153 if (tdata->client_tsx) {154 tsx_erase(tdata->sess, tdata);155 pj_stun_client_tsx_destroy(tdata->client_tsx);156 tdata->client_tsx = NULL;157 }158 166 if (tdata->res_timer.id != PJ_FALSE) { 159 167 pj_timer_heap_cancel(tdata->sess->cfg->timer_heap, … … 162 170 pj_list_erase(tdata); 163 171 } 164 pj_pool_release(tdata->pool); 172 173 if (tdata->client_tsx) { 174 pj_time_val delay = {2, 0}; 175 tsx_erase(tdata->sess, tdata); 176 pj_stun_client_tsx_schedule_destroy(tdata->client_tsx, &delay); 177 tdata->client_tsx = NULL; 178 179 } else { 180 pj_pool_release(tdata->pool); 181 } 165 182 } 166 183 … … 307 324 308 325 309 static void tsx_on_complete(pj_stun_client_tsx *tsx,310 311 326 static void stun_tsx_on_complete(pj_stun_client_tsx *tsx, 327 pj_status_t status, 328 const pj_stun_msg *response) 312 329 { 313 330 pj_stun_tx_data *tdata; … … 321 338 } 322 339 323 static pj_status_t tsx_on_send_msg(pj_stun_client_tsx *tsx,324 325 340 static pj_status_t stun_tsx_on_send_msg(pj_stun_client_tsx *tsx, 341 const void *stun_pkt, 342 pj_size_t pkt_size) 326 343 { 327 344 pj_stun_tx_data *tdata; … … 442 459 PJ_DEF(pj_status_t) pj_stun_session_create_req(pj_stun_session *sess, 443 460 int method, 461 const pj_uint8_t tsx_id[12], 444 462 pj_stun_tx_data **p_tdata) 445 463 { … … 449 467 PJ_ASSERT_RETURN(sess && p_tdata, PJ_EINVAL); 450 468 451 status = create_request_tdata(sess, method, &tdata);469 status = create_request_tdata(sess, method, tsx_id, &tdata); 452 470 if (status != PJ_SUCCESS) 453 471 return status; … … 766 784 tdata = tsx_lookup(sess, msg); 767 785 if (tdata == NULL) { 768 PJ_LOG( 5,(SNAME(sess),786 PJ_LOG(4,(SNAME(sess), 769 787 "Transaction not found, response silently discarded")); 770 788 return PJ_SUCCESS;
Note: See TracChangeset
for help on using the changeset viewer.