Ignore:
Timestamp:
Jun 21, 2016 6:55:10 AM (8 years ago)
Author:
riza
Message:

Re #1933: Update pjnath-test for IPv6 support.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjnath/src/pjnath-test/turn_sock_test.c

    r3553 r5350  
    103103    pj_stun_auth_cred cred; 
    104104    pj_status_t status; 
     105    pj_bool_t use_ipv6 = cfg->srv.flags & SERVER_IPV6; 
    105106 
    106107    /* Create client */ 
     
    114115    turn_sock_cb.on_rx_data = &turn_on_rx_data; 
    115116    turn_sock_cb.on_state = &turn_on_state; 
    116     status = pj_turn_sock_create(sess->stun_cfg, pj_AF_INET(), PJ_TURN_TP_UDP, 
    117                                  &turn_sock_cb, 0, sess, &sess->turn_sock); 
     117    status = pj_turn_sock_create(sess->stun_cfg, 
     118                                 GET_AF(use_ipv6), 
     119                                 PJ_TURN_TP_UDP,  
     120                                 &turn_sock_cb,  
     121                                 0,  
     122                                 sess,  
     123                                 &sess->turn_sock); 
    118124    if (status != PJ_SUCCESS) { 
    119125        destroy_session(sess); 
     
    122128 
    123129    /* Create test server */ 
    124     status = create_test_server(sess->stun_cfg, cfg->srv.flags, 
    125                                 SRV_DOMAIN, &sess->test_srv); 
     130    status = create_test_server(sess->stun_cfg, cfg->srv.flags, SRV_DOMAIN,  
     131                                &sess->test_srv); 
    126132    if (status != PJ_SUCCESS) { 
    127133        destroy_session(sess); 
     
    140146 
    141147    } else { 
    142         pj_str_t dns_srv = pj_str("127.0.0.1"); 
     148        pj_str_t dns_srv = use_ipv6?pj_str("::1") : pj_str("127.0.0.1"); 
    143149        pj_uint16_t dns_srv_port = (pj_uint16_t) DNS_SERVER_PORT; 
    144150        status = pj_dns_resolver_set_ns(sess->resolver, 1, &dns_srv, &dns_srv_port); 
     
    171177    } else { 
    172178        /* Explicitly specify server address */ 
    173         pj_str_t host = pj_str("127.0.0.1"); 
     179        pj_str_t host = use_ipv6?pj_str("::1") : pj_str("127.0.0.1"); 
    174180        status = pj_turn_sock_alloc(sess->turn_sock, &host, TURN_SERVER_PORT, 
    175181                                    NULL, &cred, &alloc_param); 
     
    251257///////////////////////////////////////////////////////////////////// 
    252258 
    253 static int state_progression_test(pj_stun_config  *stun_cfg) 
     259static void set_server_flag(struct test_session_cfg *test_cfg,  
     260                            pj_bool_t use_ipv6) 
     261{ 
     262    test_cfg->srv.flags &= ~(SERVER_IPV4+SERVER_IPV6); 
     263    test_cfg->srv.flags |= (use_ipv6)?SERVER_IPV6:SERVER_IPV4; 
     264} 
     265 
     266static int state_progression_test(pj_stun_config  *stun_cfg,  
     267                                  pj_bool_t use_ipv6) 
    254268{ 
    255269    struct test_session_cfg test_cfg =  
    256270    { 
    257         {   /* Client cfg */ 
    258             /* DNS SRV */   /* Destroy on state */ 
    259             PJ_TRUE,        0xFFFF 
     271        {   /* Client cfg */                     
     272            PJ_TRUE,        /* DNS SRV */        
     273            0xFFFF          /* Destroy on state */ 
    260274        }, 
    261275        {   /* Server cfg */ 
     
    267281    struct test_session *sess; 
    268282    unsigned i; 
    269     int rc; 
    270  
    271     PJ_LOG(3,("", "  state progression tests")); 
    272  
     283    int rc = 0; 
     284 
     285    PJ_LOG(3,("", "  state progression tests - (%s)",use_ipv6?"IPv6":"IPv4")); 
     286     
     287    set_server_flag(&test_cfg, use_ipv6); 
    273288    for (i=0; i<=1; ++i) { 
    274289        enum { TIMEOUT = 60 }; 
     
    373388    } 
    374389 
    375     return 0; 
     390    if (use_ipv6) 
     391        rc = state_progression_test(stun_cfg, 0); 
     392 
     393    return rc; 
    376394} 
    377395 
     
    381399static int destroy_test(pj_stun_config  *stun_cfg, 
    382400                        pj_bool_t with_dns_srv, 
    383                         pj_bool_t in_callback) 
     401                        pj_bool_t in_callback, 
     402                        pj_bool_t use_ipv6) 
    384403{ 
    385404    struct test_session_cfg test_cfg =  
    386405    { 
    387         {   /* Client cfg */ 
    388             /* DNS SRV */   /* Destroy on state */ 
    389             PJ_TRUE,        0xFFFF 
     406        {   /* Client cfg */         
     407            PJ_TRUE,        /* DNS SRV */    
     408            0xFFFF          /* Destroy on state */ 
    390409        }, 
    391410        {   /* Server cfg */ 
     
    405424 
    406425    test_cfg.client.enable_dns_srv = with_dns_srv; 
     426    set_server_flag(&test_cfg, use_ipv6);     
    407427 
    408428    for (target_state=PJ_TURN_STATE_RESOLVING; target_state<=PJ_TURN_STATE_READY; ++target_state) { 
     
    496516    } 
    497517 
    498     rc = state_progression_test(&stun_cfg); 
     518    rc = state_progression_test(&stun_cfg, USE_IPV6); 
    499519    if (rc != 0)  
    500520        goto on_return; 
     
    503523        int j; 
    504524        for (j=0; j<=1; ++j) { 
    505             rc = destroy_test(&stun_cfg, i, j); 
     525            rc = destroy_test(&stun_cfg, i, j, USE_IPV6); 
    506526            if (rc != 0) 
    507527                goto on_return; 
Note: See TracChangeset for help on using the changeset viewer.