Ignore:
Timestamp:
Jul 15, 2016 3:02:09 PM (4 years ago)
Author:
riza
Message:

Re #1933: Handle link-local address that cause the test to fail.

File:
1 edited

Legend:

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

    r5350 r5387  
    5858    PJ_ASSERT_RETURN(stun_cfg && domain && p_test_srv, PJ_EINVAL); 
    5959 
    60     status = pj_gethostip(GET_AF(use_ipv6), &hostip); 
    61     if (status != PJ_SUCCESS) 
    62         return status; 
     60    if (use_ipv6) { 
     61        /* pj_gethostip() may return IPv6 link-local and will cause EINVAL 
     62         * error, so let's just hardcode it. 
     63         */ 
     64        pj_sockaddr_init(pj_AF_INET6(), &hostip, NULL, 0); 
     65        hostip.ipv6.sin6_addr.s6_addr[15] = 1; 
     66    } else { 
     67        status = pj_gethostip(GET_AF(use_ipv6), &hostip); 
     68        if (status != PJ_SUCCESS) 
     69            return status; 
     70    } 
    6371 
    6472    pool = pj_pool_create(mem, THIS_FILE, 512, 512, NULL); 
     
    502510        /* Create relay socket */        
    503511        pj_sockaddr_init(GET_AF(use_ipv6), &alloc->alloc_addr, NULL, 0); 
    504         pj_gethostip(GET_AF(use_ipv6), &alloc->alloc_addr); 
     512        if (use_ipv6) { 
     513            /* pj_gethostip() may return IPv6 link-local and will cause EINVAL 
     514             * error, so let's just hardcode it. 
     515             */ 
     516            pj_sockaddr_init(pj_AF_INET6(), &alloc->alloc_addr, NULL, 0); 
     517            alloc->alloc_addr.ipv6.sin6_addr.s6_addr[15] = 1; 
     518        } else { 
     519            status = pj_gethostip(GET_AF(use_ipv6), &alloc->alloc_addr); 
     520            if (status != PJ_SUCCESS) { 
     521                pj_pool_release(alloc->pool); 
     522                pj_stun_msg_create_response(pool, req, PJ_STUN_SC_SERVER_ERROR, 
     523                                            NULL, &resp); 
     524                goto send_pkt; 
     525            } 
     526        } 
    505527 
    506528        status = pj_activesock_create_udp(alloc->pool, &alloc->alloc_addr, NULL,  
Note: See TracChangeset for help on using the changeset viewer.