Changeset 1913 for pjproject/trunk/pjnath/src/pjnath/ice_session.c
- Timestamp:
- Apr 9, 2008 9:38:12 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjnath/src/pjnath/ice_session.c
r1877 r1913 114 114 /* These are the callbacks registered to the STUN sessions */ 115 115 static pj_status_t on_stun_send_msg(pj_stun_session *sess, 116 void *token, 116 117 const void *pkt, 117 118 pj_size_t pkt_size, … … 122 123 unsigned pkt_len, 123 124 const pj_stun_rx_data *rdata, 125 void *token, 124 126 const pj_sockaddr_t *src_addr, 125 127 unsigned src_addr_len); 126 128 static void on_stun_request_complete(pj_stun_session *stun_sess, 127 129 pj_status_t status, 130 void *token, 128 131 pj_stun_tx_data *tdata, 129 132 const pj_stun_msg *response, … … 134 137 unsigned pkt_len, 135 138 const pj_stun_msg *msg, 139 void *token, 136 140 const pj_sockaddr_t *src_addr, 137 141 unsigned src_addr_len); … … 1393 1397 rd->clist = clist; 1394 1398 rd->ckid = check_id; 1395 check->tdata->user_data = (void*) rd;1396 1399 1397 1400 /* Add PRIORITY */ … … 1425 1428 1426 1429 /* Initiate STUN transaction to send the request */ 1427 status = pj_stun_session_send_msg(comp->stun_sess, PJ_FALSE,1428 &rcand->addr,1430 status = pj_stun_session_send_msg(comp->stun_sess, (void*)rd, PJ_FALSE, 1431 PJ_TRUE, &rcand->addr, 1429 1432 sizeof(pj_sockaddr_in), check->tdata); 1430 1433 if (status != PJ_SUCCESS) { … … 1645 1648 */ 1646 1649 static pj_status_t on_stun_send_msg(pj_stun_session *sess, 1650 void *token, 1647 1651 const void *pkt, 1648 1652 pj_size_t pkt_size, … … 1652 1656 stun_data *sd = (stun_data*) pj_stun_session_get_user_data(sess); 1653 1657 pj_ice_sess *ice = sd->ice; 1658 1659 PJ_UNUSED_ARG(token); 1660 1654 1661 return (*ice->cb.on_tx_pkt)(ice, sd->comp_id, 1655 1662 pkt, pkt_size, … … 1661 1668 static void on_stun_request_complete(pj_stun_session *stun_sess, 1662 1669 pj_status_t status, 1670 void *token, 1663 1671 pj_stun_tx_data *tdata, 1664 1672 const pj_stun_msg *response, … … 1666 1674 unsigned src_addr_len) 1667 1675 { 1668 struct req_data *rd = (struct req_data*) t data->user_data;1676 struct req_data *rd = (struct req_data*) token; 1669 1677 pj_ice_sess *ice; 1670 1678 pj_ice_sess_check *check, *new_check; … … 1906 1914 unsigned pkt_len, 1907 1915 const pj_stun_rx_data *rdata, 1916 void *token, 1908 1917 const pj_sockaddr_t *src_addr, 1909 1918 unsigned src_addr_len) … … 1921 1930 PJ_UNUSED_ARG(pkt); 1922 1931 PJ_UNUSED_ARG(pkt_len); 1932 PJ_UNUSED_ARG(token); 1923 1933 1924 1934 /* Reject any requests except Binding request */ 1925 1935 if (msg->hdr.type != PJ_STUN_BINDING_REQUEST) { 1926 status = pj_stun_session_create_res(sess, rdata, 1927 PJ_STUN_SC_BAD_REQUEST, 1928 NULL, &tdata); 1929 if (status != PJ_SUCCESS) 1930 return status; 1931 1932 return pj_stun_session_send_msg(sess, PJ_TRUE, 1933 src_addr, src_addr_len, tdata); 1936 pj_stun_session_respond(sess, rdata, PJ_STUN_SC_BAD_REQUEST, 1937 NULL, NULL, PJ_TRUE, 1938 src_addr, src_addr_len); 1939 return PJ_SUCCESS; 1934 1940 } 1935 1941 … … 1995 2001 } else { 1996 2002 /* Generate 487 response */ 1997 status = pj_stun_session_create_res(sess, rdata, 1998 PJ_STUN_SC_ROLE_CONFLICT, 1999 NULL, &tdata); 2000 if (status == PJ_SUCCESS) { 2001 pj_stun_session_send_msg(sess, PJ_TRUE, 2002 src_addr, src_addr_len, tdata); 2003 } 2003 pj_stun_session_respond(sess, rdata, PJ_STUN_SC_ROLE_CONFLICT, 2004 NULL, NULL, PJ_TRUE, 2005 src_addr, src_addr_len); 2004 2006 pj_mutex_unlock(ice->mutex); 2005 2007 return PJ_SUCCESS; … … 2011 2013 if (pj_cmp_timestamp(&ice->tie_breaker, &role_attr->value) < 0) { 2012 2014 /* Generate 487 response */ 2013 status = pj_stun_session_create_res(sess, rdata, 2014 PJ_STUN_SC_ROLE_CONFLICT, 2015 NULL, &tdata); 2016 if (status == PJ_SUCCESS) { 2017 pj_stun_session_send_msg(sess, PJ_TRUE, 2018 src_addr, src_addr_len, tdata); 2019 } 2015 pj_stun_session_respond(sess, rdata, PJ_STUN_SC_ROLE_CONFLICT, 2016 NULL, NULL, PJ_TRUE, 2017 src_addr, src_addr_len); 2020 2018 pj_mutex_unlock(ice->mutex); 2021 2019 return PJ_SUCCESS; … … 2041 2039 PJ_TRUE, src_addr, src_addr_len); 2042 2040 2043 status = pj_stun_session_send_msg(sess, PJ_TRUE,2041 status = pj_stun_session_send_msg(sess, NULL, PJ_TRUE, PJ_TRUE, 2044 2042 src_addr, src_addr_len, tdata); 2045 2043 … … 2287 2285 unsigned pkt_len, 2288 2286 const pj_stun_msg *msg, 2287 void *token, 2289 2288 const pj_sockaddr_t *src_addr, 2290 2289 unsigned src_addr_len) … … 2294 2293 PJ_UNUSED_ARG(pkt_len); 2295 2294 PJ_UNUSED_ARG(msg); 2295 PJ_UNUSED_ARG(token); 2296 2296 PJ_UNUSED_ARG(src_addr); 2297 2297 PJ_UNUSED_ARG(src_addr_len); … … 2368 2368 if (stun_status == PJ_SUCCESS) { 2369 2369 status = pj_stun_session_on_rx_pkt(comp->stun_sess, pkt, pkt_size, 2370 PJ_STUN_IS_DATAGRAM, 2370 PJ_STUN_IS_DATAGRAM, NULL, 2371 2371 NULL, src_addr, src_addr_len); 2372 2372 if (status != PJ_SUCCESS) {
Note: See TracChangeset
for help on using the changeset viewer.