Ignore:
Timestamp:
Jun 21, 2016 6:55:10 AM (5 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/server.c

    r5170 r5350  
    5454    char strbuf[100]; 
    5555    pj_status_t status; 
     56    pj_bool_t use_ipv6 = flags & SERVER_IPV6; 
    5657 
    5758    PJ_ASSERT_RETURN(stun_cfg && domain && p_test_srv, PJ_EINVAL); 
    5859 
    59     status = pj_gethostip(pj_AF_INET(), &hostip); 
     60    status = pj_gethostip(GET_AF(use_ipv6), &hostip); 
    6061    if (status != PJ_SUCCESS) 
    6162        return status; 
     
    7576    if (flags & CREATE_DNS_SERVER) { 
    7677        status = pj_dns_server_create(mem, test_srv->stun_cfg->ioqueue, 
    77                                       pj_AF_INET(), DNS_SERVER_PORT, 
     78                                      GET_AF(use_ipv6), DNS_SERVER_PORT, 
    7879                                      0, &test_srv->dns_server); 
    7980        if (status != PJ_SUCCESS) { 
     
    8687            pj_dns_parsed_rr rr; 
    8788            pj_str_t res_name; 
    88             pj_in_addr ip_addr; 
    8989 
    9090            pj_strdup2(pool, &res_name, domain); 
    91             ip_addr = hostip.ipv4.sin_addr; 
    92             pj_dns_init_a_rr(&rr, &res_name, PJ_DNS_CLASS_IN, 60, &ip_addr); 
     91 
     92            if (use_ipv6) { 
     93                pj_dns_init_aaaa_rr(&rr, &res_name, PJ_DNS_CLASS_IN, 60,  
     94                                    &hostip.ipv6.sin6_addr); 
     95            } else {             
     96                pj_dns_init_a_rr(&rr, &res_name, PJ_DNS_CLASS_IN, 60,  
     97                                 &hostip.ipv4.sin_addr); 
     98            } 
     99             
    93100            pj_dns_server_add_rec(test_srv->dns_server, 1, &rr); 
    94101        } 
     
    103110        stun_sock_cb.on_data_recvfrom = &stun_on_data_recvfrom; 
    104111 
    105         pj_sockaddr_in_init(&bound_addr.ipv4, NULL, STUN_SERVER_PORT); 
     112        pj_sockaddr_init(GET_AF(use_ipv6), &bound_addr,  
     113                         NULL, STUN_SERVER_PORT); 
    106114 
    107115        status = pj_activesock_create_udp(pool, &bound_addr, NULL,  
     
    124132            pj_str_t res_name, target; 
    125133            pj_dns_parsed_rr rr; 
    126             pj_in_addr ip_addr; 
    127134 
    128135            /* Add DNS entries: 
     
    141148 
    142149            res_name = target; 
    143             ip_addr = hostip.ipv4.sin_addr; 
    144             pj_dns_init_a_rr(&rr, &res_name, PJ_DNS_CLASS_IN, 60, &ip_addr); 
     150            if (use_ipv6) {              
     151                pj_dns_init_aaaa_rr(&rr, &res_name, PJ_DNS_CLASS_IN, 60,  
     152                                    &hostip.ipv6.sin6_addr); 
     153            } else {             
     154                pj_dns_init_a_rr(&rr, &res_name, PJ_DNS_CLASS_IN, 60,  
     155                                 &hostip.ipv4.sin_addr); 
     156            } 
    145157            pj_dns_server_add_rec(test_srv->dns_server, 1, &rr); 
    146158        } 
     
    155167        turn_sock_cb.on_data_recvfrom = &turn_on_data_recvfrom; 
    156168 
    157         pj_sockaddr_in_init(&bound_addr.ipv4, NULL, TURN_SERVER_PORT); 
     169        pj_sockaddr_init(GET_AF(use_ipv6), &bound_addr, NULL, TURN_SERVER_PORT); 
    158170 
    159171        status = pj_activesock_create_udp(pool, &bound_addr, NULL,  
     
    176188            pj_str_t res_name, target; 
    177189            pj_dns_parsed_rr rr; 
    178             pj_in_addr ip_addr; 
    179190 
    180191            /* Add DNS entries: 
     
    193204 
    194205            res_name = target; 
    195             ip_addr = hostip.ipv4.sin_addr; 
    196             pj_dns_init_a_rr(&rr, &res_name, PJ_DNS_CLASS_IN, 60, &ip_addr); 
     206             
     207            if (use_ipv6) {              
     208                pj_dns_init_aaaa_rr(&rr, &res_name, PJ_DNS_CLASS_IN, 60,  
     209                                    &hostip.ipv6.sin6_addr); 
     210            } else {             
     211                pj_dns_init_a_rr(&rr, &res_name, PJ_DNS_CLASS_IN, 60,  
     212                                 &hostip.ipv4.sin_addr); 
     213            } 
    197214            pj_dns_server_add_rec(test_srv->dns_server, 1, &rr); 
    198215        } 
     
    345362    unsigned i; 
    346363    pj_ssize_t len; 
     364    pj_bool_t use_ipv6 = PJ_FALSE; 
    347365 
    348366    if (status != PJ_SUCCESS) 
     
    352370 
    353371    test_srv = (test_server*) pj_activesock_get_user_data(asock); 
     372    use_ipv6 = test_srv->flags & SERVER_IPV6; 
    354373    pool = pj_pool_create(test_srv->stun_cfg->pf, NULL, 512, 512, NULL); 
    355374 
     
    481500        alloc->pool = pj_pool_create(test_srv->stun_cfg->pf, "alloc", 512, 512, NULL); 
    482501 
    483         /* Create relay socket */ 
    484         pj_sockaddr_in_init(&alloc->alloc_addr.ipv4, NULL, 0); 
    485         pj_gethostip(pj_AF_INET(), &alloc->alloc_addr); 
     502        /* Create relay socket */        
     503        pj_sockaddr_init(GET_AF(use_ipv6), &alloc->alloc_addr, NULL, 0); 
     504        pj_gethostip(GET_AF(use_ipv6), &alloc->alloc_addr); 
    486505 
    487506        status = pj_activesock_create_udp(alloc->pool, &alloc->alloc_addr, NULL,  
     
    698717    unsigned i; 
    699718 
     719    PJ_UNUSED_ARG(addr_len); 
     720 
    700721    if (status != PJ_SUCCESS) 
    701722        return PJ_TRUE; 
     
    708729    /* Check that this peer has a permission */ 
    709730    for (i=0; i<alloc->perm_cnt; ++i) { 
    710         if (pj_sockaddr_get_len(&alloc->perm[i]) == (unsigned)addr_len && 
    711             pj_memcmp(pj_sockaddr_get_addr(&alloc->perm[i]), 
    712                       pj_sockaddr_get_addr(src_addr), 
    713                       addr_len) == 0) 
     731        if (pj_sockaddr_cmp(&alloc->perm[i], src_addr) == 0) 
    714732        { 
    715733            break; 
Note: See TracChangeset for help on using the changeset viewer.