Ignore:
Timestamp:
Jun 8, 2016 3:17:45 AM (8 years ago)
Author:
nanang
Message:

Re #422: Added IPv6 support to PJNATH, changes:

  • Deprecated 'pj_ice_strans_cfg.af', if set, the value will be ignored, address family setting is now specified via transport setting, i.e: 'pj_ice_strans_cfg.stun_tp/turn_tp'.
  • Deprecated 'pj_ice_strans_cfg.stun/turn', for backward compatibility, this field value will be checked if 'pj_ice_strans_cfg.stun_tp_cnt/turn_tp_cnt' is set to zero.
  • Added 'pj_ice_strans_stun_cfg' & 'pj_ice_strans_stun_cfg' and the corresponding 'pj_ice_strans_stun/turn_cfg_default()'
  • Added 'pj_ice_strans_cfg.stun_tp/turn_tp' as replacement of 'pj_ice_strans_cfg.stun/turn', it is now an array so app can have multiple STUN/TURN transports.
  • Added macro PJ_ICE_MAX_STUN/TURN to specify maximum number of STUN/TURN transports in each ICE component in compile-time.
  • Miscellaneous: fixed socket number limit in concurrency test in pjnath-test, updated pjsua_media.c to use new 'pj_ice_strans_cfg' setting.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/src/pjmedia/transport_ice.c

    r4949 r5339  
    5151    pjmedia_transport    base; 
    5252    pj_pool_t           *pool; 
    53     int                  af; 
    5453    unsigned             options;       /**< Transport options.             */ 
    5554 
     
    236235    tp_ice = PJ_POOL_ZALLOC_T(pool, struct transport_ice); 
    237236    tp_ice->pool = pool; 
    238     tp_ice->af = cfg->af; 
    239237    tp_ice->options = options; 
    240238    tp_ice->comp_cnt = comp_cnt; 
     
    823821    pj_sockaddr rem_conn_addr, rtcp_addr; 
    824822    unsigned i; 
     823    int rem_af = 0; 
    825824    pj_status_t status; 
    826825 
     
    849848 
    850849    /* Verify address family matches */ 
     850    /* 
    851851    if ((tp_ice->af==pj_AF_INET() &&  
    852852         pj_strcmp(&rem_conn->addr_type, &STR_IP4)!=0) || 
     
    856856        return PJMEDIA_SDP_ETPORTNOTEQUAL; 
    857857    } 
     858    */ 
     859 
     860    /* Get remote address family */ 
     861    if (pj_strcmp(&rem_conn->addr_type, &STR_IP4)==0) 
     862        rem_af = pj_AF_INET(); 
     863    else if (pj_strcmp(&rem_conn->addr_type, &STR_IP6)==0) 
     864        rem_af = pj_AF_INET6(); 
     865    else 
     866        pj_assert(!"Unsupported address family"); 
    858867 
    859868    /* Assign remote connection address */ 
    860     status = pj_sockaddr_init(tp_ice->af, &rem_conn_addr, &rem_conn->addr, 
     869    status = pj_sockaddr_init(rem_af, &rem_conn_addr, &rem_conn->addr, 
    861870                              (pj_uint16_t)rem_m->desc.port); 
    862871    if (status != PJ_SUCCESS) 
     
    884893            if (rtcp_attr.addr.slen) { 
    885894                /* Verify address family matches */ 
     895                /* 
    886896                if ((tp_ice->af==pj_AF_INET() &&  
    887897                     pj_strcmp(&rtcp_attr.addr_type, &STR_IP4)!=0) || 
     
    891901                    return PJMEDIA_SDP_ETPORTNOTEQUAL; 
    892902                } 
     903                */ 
    893904 
    894905                /* Assign RTCP address */ 
    895                 status = pj_sockaddr_init(tp_ice->af, &rtcp_addr, 
     906                status = pj_sockaddr_init(rem_af, &rtcp_addr, 
    896907                                          &rtcp_attr.addr, 
    897908                                          (pj_uint16_t)rtcp_attr.port); 
     
    901912            } else { 
    902913                /* Assign RTCP address */ 
    903                 status = pj_sockaddr_init(tp_ice->af, &rtcp_addr,  
     914                status = pj_sockaddr_init(rem_af, &rtcp_addr,  
    904915                                          NULL,  
    905916                                          (pj_uint16_t)rtcp_attr.port); 
Note: See TracChangeset for help on using the changeset viewer.