Changeset 105 for pjproject/trunk/pjsip/src/pjsip/sip_endpoint.c
- Timestamp:
- Dec 26, 2005 12:52:19 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_endpoint.c
r82 r105 726 726 727 727 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; 730 730 PJSIP_ENDPT_LOG_ERROR((endpt, "transport", status, 731 731 "Src.addr=%s:%d, packet:--\n" … … 741 741 */ 742 742 if (msg->type == PJSIP_RESPONSE_MSG) { 743 const pj_sockaddr_in *addr; 744 const char *addr_addr; 743 const pj_str_t *addr_addr; 745 744 int port = rdata->msg_info.via->sent_by.port; 746 745 pj_bool_t mismatch = PJ_FALSE; 747 746 if (port == 0) { 748 747 int type; 749 type = rdata->tp_info.transport-> type;748 type = rdata->tp_info.transport->key.type; 750 749 port = pjsip_transport_get_default_port_for_type(type); 751 750 } 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) 755 753 mismatch = PJ_TRUE; 756 else if (port != pj_ntohs(addr->sin_port)) {754 else if (port != rdata->tp_info.transport->local_name.port) { 757 755 /* Port or address mismatch, we should discard response */ 758 756 /* But we saw one implementation (we don't want to name it to … … 762 760 * both the port in sent-by and rport. We try to be lenient here! 763 761 */ 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) 765 763 mismatch = PJ_TRUE; 766 764 else { … … 959 957 PJ_DEF(void) pjsip_endpt_resolve( pjsip_endpoint *endpt, 960 958 pj_pool_t *pool, 961 pjsip_host_ port*target,959 pjsip_host_info *target, 962 960 void *token, 963 961 pjsip_resolver_callback *cb) … … 988 986 PJ_DEF(pj_status_t) pjsip_endpt_alloc_transport( pjsip_endpoint *endpt, 989 987 pjsip_transport_type_e type, 990 const pj_sockaddr_in *remote, 988 const pj_sockaddr *remote, 989 int addr_len, 991 990 pjsip_transport **p_transport) 992 991 { 993 992 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); 996 995 } 997 996
Note: See TracChangeset
for help on using the changeset viewer.