Changeset 5425


Ignore:
Timestamp:
Aug 23, 2016 6:22:27 AM (8 years ago)
Author:
nanang
Message:

Fixed #1955: Fixed assertions in DNS SRV resolution with IPv6 TCP/TLS target.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsip/sip_resolve.c

    r5369 r5425  
    345345        svr_addr.entry[0].weight = 0; 
    346346        svr_addr.entry[0].type = type; 
    347         svr_addr.entry[0].addr_len = pj_sockaddr_get_len(&svr_addr.entry[0].addr); 
     347        svr_addr.entry[0].addr_len =  
     348                                pj_sockaddr_get_len(&svr_addr.entry[0].addr); 
    348349        (*cb)(status, token, &svr_addr); 
    349350 
     
    383384        query->req.def_port = 5060; 
    384385 
    385         if (type == PJSIP_TRANSPORT_TLS) { 
     386        if (type == PJSIP_TRANSPORT_TLS || type == PJSIP_TRANSPORT_TLS6) { 
    386387            query->naptr[0].res_type = pj_str("_sips._tcp."); 
    387388            query->req.def_port = 5061; 
    388         } else if (type == PJSIP_TRANSPORT_TCP) 
     389        } else if (type == PJSIP_TRANSPORT_TCP || type == PJSIP_TRANSPORT_TCP6) 
    389390            query->naptr[0].res_type = pj_str("_sip._tcp."); 
    390         else if (type == PJSIP_TRANSPORT_UDP) 
     391        else if (type == PJSIP_TRANSPORT_UDP || type == PJSIP_TRANSPORT_UDP6) 
    391392            query->naptr[0].res_type = pj_str("_sip._udp."); 
    392393        else { 
     
    587588            srv->entry[srv->count].priority = 0; 
    588589            srv->entry[srv->count].weight = 0; 
    589             srv->entry[srv->count].addr_len = sizeof(pj_sockaddr_in); 
     590            srv->entry[srv->count].addr_len = sizeof(pj_sockaddr_in6); 
    590591            pj_sockaddr_init(pj_AF_INET6(), &srv->entry[srv->count].addr, 
    591592                             0, (pj_uint16_t)query->req.def_port); 
     
    651652            srv.entry[srv.count].priority = rec->entry[i].priority; 
    652653            srv.entry[srv.count].weight = rec->entry[i].weight; 
    653             srv.entry[srv.count].addr_len = sizeof(pj_sockaddr_in); 
    654654            pj_sockaddr_init(s->addr[j].af, 
    655655                             &srv.entry[srv.count].addr, 
     
    659659            else 
    660660                srv.entry[srv.count].addr.ipv4.sin_addr = s->addr[j].ip.v4; 
     661            srv.entry[srv.count].addr_len = 
     662                            pj_sockaddr_get_len(&srv.entry[srv.count].addr); 
    661663 
    662664            /* Update transport type if this is IPv6 */ 
Note: See TracChangeset for help on using the changeset viewer.