Ignore:
Timestamp:
Apr 9, 2008 9:38:12 AM (16 years ago)
Author:
bennylp
Message:

More ticket #485: huge changeset to support TURN TCP. Please see ticket #485 for the details

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjnath/src/pjnath/ice_session.c

    r1877 r1913  
    114114/* These are the callbacks registered to the STUN sessions */ 
    115115static pj_status_t on_stun_send_msg(pj_stun_session *sess, 
     116                                    void *token, 
    116117                                    const void *pkt, 
    117118                                    pj_size_t pkt_size, 
     
    122123                                      unsigned pkt_len, 
    123124                                      const pj_stun_rx_data *rdata, 
     125                                      void *token, 
    124126                                      const pj_sockaddr_t *src_addr, 
    125127                                      unsigned src_addr_len); 
    126128static void on_stun_request_complete(pj_stun_session *stun_sess, 
    127129                                     pj_status_t status, 
     130                                     void *token, 
    128131                                     pj_stun_tx_data *tdata, 
    129132                                     const pj_stun_msg *response, 
     
    134137                                         unsigned pkt_len, 
    135138                                         const pj_stun_msg *msg, 
     139                                         void *token, 
    136140                                         const pj_sockaddr_t *src_addr, 
    137141                                         unsigned src_addr_len); 
     
    13931397    rd->clist = clist; 
    13941398    rd->ckid = check_id; 
    1395     check->tdata->user_data = (void*) rd; 
    13961399 
    13971400    /* Add PRIORITY */ 
     
    14251428 
    14261429    /* 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,  
    14291432                                      sizeof(pj_sockaddr_in), check->tdata); 
    14301433    if (status != PJ_SUCCESS) { 
     
    16451648 */ 
    16461649static pj_status_t on_stun_send_msg(pj_stun_session *sess, 
     1650                                    void *token, 
    16471651                                    const void *pkt, 
    16481652                                    pj_size_t pkt_size, 
     
    16521656    stun_data *sd = (stun_data*) pj_stun_session_get_user_data(sess); 
    16531657    pj_ice_sess *ice = sd->ice; 
     1658 
     1659    PJ_UNUSED_ARG(token); 
     1660 
    16541661    return (*ice->cb.on_tx_pkt)(ice, sd->comp_id,  
    16551662                                pkt, pkt_size,  
     
    16611668static void on_stun_request_complete(pj_stun_session *stun_sess, 
    16621669                                     pj_status_t status, 
     1670                                     void *token, 
    16631671                                     pj_stun_tx_data *tdata, 
    16641672                                     const pj_stun_msg *response, 
     
    16661674                                     unsigned src_addr_len) 
    16671675{ 
    1668     struct req_data *rd = (struct req_data*) tdata->user_data; 
     1676    struct req_data *rd = (struct req_data*) token; 
    16691677    pj_ice_sess *ice; 
    16701678    pj_ice_sess_check *check, *new_check; 
     
    19061914                                      unsigned pkt_len, 
    19071915                                      const pj_stun_rx_data *rdata, 
     1916                                      void *token, 
    19081917                                      const pj_sockaddr_t *src_addr, 
    19091918                                      unsigned src_addr_len) 
     
    19211930    PJ_UNUSED_ARG(pkt); 
    19221931    PJ_UNUSED_ARG(pkt_len); 
     1932    PJ_UNUSED_ARG(token); 
    19231933 
    19241934    /* Reject any requests except Binding request */ 
    19251935    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; 
    19341940    } 
    19351941 
     
    19952001        } else { 
    19962002            /* 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); 
    20042006            pj_mutex_unlock(ice->mutex); 
    20052007            return PJ_SUCCESS; 
     
    20112013        if (pj_cmp_timestamp(&ice->tie_breaker, &role_attr->value) < 0) { 
    20122014            /* 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); 
    20202018            pj_mutex_unlock(ice->mutex); 
    20212019            return PJ_SUCCESS; 
     
    20412039                                           PJ_TRUE, src_addr, src_addr_len); 
    20422040 
    2043     status = pj_stun_session_send_msg(sess, PJ_TRUE,  
     2041    status = pj_stun_session_send_msg(sess, NULL, PJ_TRUE, PJ_TRUE, 
    20442042                                      src_addr, src_addr_len, tdata); 
    20452043 
     
    22872285                                         unsigned pkt_len, 
    22882286                                         const pj_stun_msg *msg, 
     2287                                         void *token, 
    22892288                                         const pj_sockaddr_t *src_addr, 
    22902289                                         unsigned src_addr_len) 
     
    22942293    PJ_UNUSED_ARG(pkt_len); 
    22952294    PJ_UNUSED_ARG(msg); 
     2295    PJ_UNUSED_ARG(token); 
    22962296    PJ_UNUSED_ARG(src_addr); 
    22972297    PJ_UNUSED_ARG(src_addr_len); 
     
    23682368    if (stun_status == PJ_SUCCESS) { 
    23692369        status = pj_stun_session_on_rx_pkt(comp->stun_sess, pkt, pkt_size, 
    2370                                            PJ_STUN_IS_DATAGRAM, 
     2370                                           PJ_STUN_IS_DATAGRAM, NULL, 
    23712371                                           NULL, src_addr, src_addr_len); 
    23722372        if (status != PJ_SUCCESS) { 
Note: See TracChangeset for help on using the changeset viewer.