Ignore:
Timestamp:
Mar 9, 2007 11:25:11 PM (17 years ago)
Author:
bennylp
Message:

Today's work on TURN server. All looks to be implemented

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjlib-util/src/pjlib-util/stun_session.c

    r1049 r1052  
    114114 
    115115static pj_status_t create_tdata(pj_stun_session *sess, 
    116                                 void *user_data, 
    117116                                pj_stun_tx_data **p_tdata) 
    118117{ 
     
    128127    tdata->pool = pool; 
    129128    tdata->sess = sess; 
    130     tdata->user_data = user_data; 
    131129 
    132130    *p_tdata = tdata; 
     
    137135static pj_status_t create_request_tdata(pj_stun_session *sess, 
    138136                                        unsigned msg_type, 
    139                                         void *user_data, 
    140137                                        pj_stun_tx_data **p_tdata) 
    141138{ 
     
    143140    pj_stun_tx_data *tdata; 
    144141 
    145     status = create_tdata(sess, user_data, &tdata); 
     142    status = create_tdata(sess, &tdata); 
    146143    if (status != PJ_SUCCESS) 
    147144        return status; 
     
    406403 
    407404 
    408 PJ_DEF(pj_status_t) pj_stun_session_create_bind_req(pj_stun_session *sess, 
    409                                                     pj_stun_tx_data **p_tdata) 
     405PJ_DEF(pj_status_t) pj_stun_session_create_req(pj_stun_session *sess, 
     406                                               int method, 
     407                                               pj_stun_tx_data **p_tdata) 
    410408{ 
    411409    pj_stun_tx_data *tdata = NULL; 
     
    414412    PJ_ASSERT_RETURN(sess && p_tdata, PJ_EINVAL); 
    415413 
    416     status = create_request_tdata(sess, PJ_STUN_BINDING_REQUEST, NULL,  
    417                                   &tdata); 
     414    status = create_request_tdata(sess, method, &tdata); 
    418415    if (status != PJ_SUCCESS) 
    419416        return status; 
     
    423420} 
    424421 
    425 PJ_DEF(pj_status_t) pj_stun_session_create_allocate_req(pj_stun_session *sess, 
    426                                                         pj_stun_tx_data **p_tdata) 
    427 { 
    428     PJ_UNUSED_ARG(sess); 
    429     PJ_UNUSED_ARG(p_tdata); 
    430     PJ_ASSERT_RETURN(PJ_FALSE, PJ_ENOTSUP); 
    431 } 
    432  
    433  
    434 PJ_DEF(pj_status_t)  
    435 pj_stun_session_create_set_active_destination_req(pj_stun_session *sess, 
    436                                                   pj_stun_tx_data **p_tdata) 
    437 { 
    438     PJ_UNUSED_ARG(sess); 
    439     PJ_UNUSED_ARG(p_tdata); 
    440     PJ_ASSERT_RETURN(PJ_FALSE, PJ_ENOTSUP); 
    441 } 
    442  
    443 PJ_DEF(pj_status_t) pj_stun_session_create_connect_req( pj_stun_session *sess, 
    444                                                         pj_stun_tx_data **p_tdata) 
    445 { 
    446     PJ_UNUSED_ARG(sess); 
    447     PJ_UNUSED_ARG(p_tdata); 
    448     PJ_ASSERT_RETURN(PJ_FALSE, PJ_ENOTSUP); 
    449 } 
    450  
    451 PJ_DEF(pj_status_t)  
    452 pj_stun_session_create_connection_status_ind(pj_stun_session *sess, 
    453                                              pj_stun_tx_data **p_tdata) 
    454 { 
    455     PJ_UNUSED_ARG(sess); 
    456     PJ_UNUSED_ARG(p_tdata); 
    457     PJ_ASSERT_RETURN(PJ_FALSE, PJ_ENOTSUP); 
    458 } 
    459  
    460 PJ_DEF(pj_status_t) pj_stun_session_create_send_ind( pj_stun_session *sess, 
    461                                                      pj_stun_tx_data **p_tdata) 
    462 { 
    463     PJ_UNUSED_ARG(sess); 
    464     PJ_UNUSED_ARG(p_tdata); 
    465     PJ_ASSERT_RETURN(PJ_FALSE, PJ_ENOTSUP); 
    466 } 
    467  
    468 PJ_DEF(pj_status_t) pj_stun_session_create_data_ind( pj_stun_session *sess, 
    469                                                      pj_stun_tx_data **p_tdata) 
    470 { 
    471     PJ_UNUSED_ARG(sess); 
    472     PJ_UNUSED_ARG(p_tdata); 
    473     PJ_ASSERT_RETURN(PJ_FALSE, PJ_ENOTSUP); 
    474 } 
    475  
     422PJ_DEF(pj_status_t) pj_stun_session_create_ind(pj_stun_session *sess, 
     423                                               int msg_type, 
     424                                               pj_stun_tx_data **p_tdata) 
     425{ 
     426    pj_stun_tx_data *tdata = NULL; 
     427    pj_status_t status; 
     428 
     429    PJ_ASSERT_RETURN(sess && p_tdata, PJ_EINVAL); 
     430 
     431    status = create_tdata(sess, &tdata); 
     432    if (status != PJ_SUCCESS) 
     433        return status; 
     434 
     435    /* Create STUN message */ 
     436    msg_type |= PJ_STUN_INDICATION_BIT; 
     437    status = pj_stun_msg_create(tdata->pool, msg_type,  PJ_STUN_MAGIC,  
     438                                NULL, &tdata->msg); 
     439    if (status != PJ_SUCCESS) { 
     440        pj_pool_release(tdata->pool); 
     441        return status; 
     442    } 
     443 
     444    *p_tdata = tdata; 
     445    return PJ_SUCCESS; 
     446} 
    476447 
    477448/* 
     
    487458    pj_stun_tx_data *tdata = NULL; 
    488459 
    489     status = create_tdata(sess, NULL, &tdata); 
     460    status = create_tdata(sess, &tdata); 
    490461    if (status != PJ_SUCCESS) 
    491462        return status; 
     
    811782 
    812783        status = pj_stun_msg_create_response(tmp_pool, msg,  
    813                                              PJ_STUN_STATUS_BAD_REQUEST, NULL, 
     784                                             PJ_STUN_SC_BAD_REQUEST, NULL, 
    814785                                             &response); 
    815786        if (status == PJ_SUCCESS && response) { 
Note: See TracChangeset for help on using the changeset viewer.