Ignore:
Timestamp:
Dec 26, 2005 12:52:19 PM (18 years ago)
Author:
bennylp
Message:

Modify transport to use generic sockaddr address

File:
1 edited

Legend:

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

    r82 r105  
    726726 
    727727    if (status != PJ_SUCCESS) { 
    728         const char *src_addr = pj_inet_ntoa(rdata->pkt_info.addr.sin_addr); 
    729         int port = pj_ntohs(rdata->pkt_info.addr.sin_port); 
     728        const char *src_addr = rdata->pkt_info.src_name; 
     729        int port = rdata->pkt_info.src_port; 
    730730        PJSIP_ENDPT_LOG_ERROR((endpt, "transport", status, 
    731731                               "Src.addr=%s:%d, packet:--\n" 
     
    741741     */ 
    742742    if (msg->type == PJSIP_RESPONSE_MSG) { 
    743         const pj_sockaddr_in *addr; 
    744         const char *addr_addr; 
     743        const pj_str_t *addr_addr; 
    745744        int port = rdata->msg_info.via->sent_by.port; 
    746745        pj_bool_t mismatch = PJ_FALSE; 
    747746        if (port == 0) { 
    748747            int type; 
    749             type = rdata->tp_info.transport->type; 
     748            type = rdata->tp_info.transport->key.type; 
    750749            port = pjsip_transport_get_default_port_for_type(type); 
    751750        } 
    752         addr = &rdata->tp_info.transport->public_addr; 
    753         addr_addr = pj_inet_ntoa(addr->sin_addr); 
    754         if (pj_strcmp2(&rdata->msg_info.via->sent_by.host, addr_addr) != 0) 
     751        addr_addr = &rdata->tp_info.transport->local_name.host; 
     752        if (pj_strcmp(&rdata->msg_info.via->sent_by.host, addr_addr) != 0) 
    755753            mismatch = PJ_TRUE; 
    756         else if (port != pj_ntohs(addr->sin_port)) { 
     754        else if (port != rdata->tp_info.transport->local_name.port) { 
    757755            /* Port or address mismatch, we should discard response */ 
    758756            /* But we saw one implementation (we don't want to name it to  
     
    762760             * both the port in sent-by and rport. We try to be lenient here! 
    763761             */ 
    764             if (rdata->msg_info.via->rport_param != pj_sockaddr_in_get_port(addr)) 
     762            if (rdata->msg_info.via->rport_param != rdata->tp_info.transport->local_name.port) 
    765763                mismatch = PJ_TRUE; 
    766764            else { 
     
    959957PJ_DEF(void) pjsip_endpt_resolve( pjsip_endpoint *endpt, 
    960958                                  pj_pool_t *pool, 
    961                                   pjsip_host_port *target, 
     959                                  pjsip_host_info *target, 
    962960                                  void *token, 
    963961                                  pjsip_resolver_callback *cb) 
     
    988986PJ_DEF(pj_status_t) pjsip_endpt_alloc_transport( pjsip_endpoint *endpt, 
    989987                                                  pjsip_transport_type_e type, 
    990                                                   const pj_sockaddr_in *remote, 
     988                                                  const pj_sockaddr *remote, 
     989                                                  int addr_len, 
    991990                                                  pjsip_transport **p_transport) 
    992991{ 
    993992    PJ_LOG(5, (THIS_FILE, "pjsip_endpt_alloc_transport()")); 
    994     return pjsip_tpmgr_alloc_transport( endpt->transport_mgr, type, remote, 
    995                                         p_transport); 
     993    return pjsip_tpmgr_alloc_transport( endpt->transport_mgr, type,  
     994                                        remote, addr_len, p_transport); 
    996995} 
    997996 
Note: See TracChangeset for help on using the changeset viewer.