Changeset 105 for pjproject/trunk/pjsip/src/pjsip/sip_transaction.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_transaction.c
r65 r105 499 499 static pj_status_t tsx_process_route( pjsip_transaction *tsx, 500 500 pjsip_tx_data *tdata, 501 pjsip_host_ port*send_addr )501 pjsip_host_info *send_addr ) 502 502 { 503 503 const pjsip_uri *new_request_uri, *target_uri; … … 596 596 const pjsip_url *url = (const pjsip_url*)pjsip_uri_get_uri(uri); 597 597 send_addr->flag |= (PJSIP_TRANSPORT_SECURE | PJSIP_TRANSPORT_RELIABLE); 598 pj_strdup(tdata->pool, &send_addr-> host, &url->host);599 send_addr-> port = url->port;598 pj_strdup(tdata->pool, &send_addr->addr.host, &url->host); 599 send_addr->addr.port = url->port; 600 600 send_addr->type = 601 601 pjsip_transport_get_type_from_name(&url->transport_param); … … 604 604 pjsip_uri *uri = (pjsip_uri*) target_uri; 605 605 const pjsip_url *url = (const pjsip_url*)pjsip_uri_get_uri(uri); 606 pj_strdup(tdata->pool, &send_addr-> host, &url->host);607 send_addr-> port = url->port;606 pj_strdup(tdata->pool, &send_addr->addr.host, &url->host); 607 send_addr->addr.port = url->port; 608 608 send_addr->type = 609 609 pjsip_transport_get_type_from_name(&url->transport_param); … … 651 651 struct tsx_lock_data lck; 652 652 653 pj_memcpy(addr, tsx->dest_name. host.ptr, tsx->dest_name.host.slen);654 addr[tsx->dest_name. host.slen] = '\0';653 pj_memcpy(addr, tsx->dest_name.addr.host.ptr, tsx->dest_name.addr.host.slen); 654 addr[tsx->dest_name.addr.host.slen] = '\0'; 655 655 656 656 … … 658 658 PJ_LOG(4, (tsx->obj_name, "%s connected to %s:%d", 659 659 tr->type_name, 660 addr, tsx->dest_name. port));660 addr, tsx->dest_name.addr.port)); 661 661 } else { 662 662 PJ_LOG(4, (tsx->obj_name, "%s unable to connect to %s:%d, status=%d", 663 663 tr->type_name, 664 addr, tsx->dest_name. port, status));664 addr, tsx->dest_name.addr.port, status)); 665 665 } 666 666 … … 738 738 739 739 /* Create/find the transport for the remote address. */ 740 PJ_LOG(5,(tsx->obj_name, "tsx getting transport for %s:%d",741 pj_inet_ntoa(addr->entry[0].addr.sin_addr),742 pj_ntohs(addr->entry[0].addr.sin_port)));743 744 740 tsx->transport_state = PJSIP_TSX_TRANSPORT_STATE_CONNECTING; 745 741 status = pjsip_endpt_alloc_transport( tsx->endpt, addr->entry[0].type, 746 742 &addr->entry[0].addr, 743 addr->entry[0].addr_len, 747 744 &tp); 748 745 tsx_transport_callback(tp, tsx, status); … … 852 849 */ 853 850 PJ_LOG(5,(tsx->obj_name, "tsx resolving destination %.*s:%d", 854 tsx->dest_name. host.slen,855 tsx->dest_name. host.ptr,856 tsx->dest_name. port));851 tsx->dest_name.addr.host.slen, 852 tsx->dest_name.addr.host.ptr, 853 tsx->dest_name.addr.port)); 857 854 858 855 tsx->transport_state = PJSIP_TSX_TRANSPORT_STATE_RESOLVING; … … 942 939 tsx->current_addr = 0; 943 940 tsx->remote_addr.count = 1; 944 tsx->remote_addr.entry[0].type = tsx->transport-> type;941 tsx->remote_addr.entry[0].type = tsx->transport->key.type; 945 942 pj_memcpy(&tsx->remote_addr.entry[0].addr, 946 &rdata->pkt_info. addr, rdata->pkt_info.addr_len);943 &rdata->pkt_info.src_addr, rdata->pkt_info.src_addr_len); 947 944 948 945 } else { … … 965 962 */ 966 963 PJ_LOG(5,(tsx->obj_name, "tsx resolving destination %.*s:%d", 967 tsx->dest_name. host.slen,968 tsx->dest_name. host.ptr,969 tsx->dest_name. port));964 tsx->dest_name.addr.host.slen, 965 tsx->dest_name.addr.host.ptr, 966 tsx->dest_name.addr.port)); 970 967 971 968 tsx->transport_state = PJSIP_TSX_TRANSPORT_STATE_RESOLVING; … … 1024 1021 { 1025 1022 pjsip_msg *msg; 1026 pjsip_host_ portdest_addr;1023 pjsip_host_info dest_addr; 1027 1024 pjsip_via_hdr *via; 1028 1025 struct tsx_lock_data lck; … … 1060 1057 if (dest_addr.type == tsx->dest_name.type && 1061 1058 dest_addr.flag == tsx->dest_name.flag && 1062 dest_addr. port == tsx->dest_name.port &&1063 pj_stricmp(&dest_addr. host, &tsx->dest_name.host) == 0)1059 dest_addr.addr.port == tsx->dest_name.addr.port && 1060 pj_stricmp(&dest_addr.addr.host, &tsx->dest_name.addr.host) == 0) 1064 1061 { 1065 1062 /* Equal destination. We can use current transport. */ … … 1072 1069 /* New destination; we'll have to resolve host and create new transport. */ 1073 1070 pj_memcpy(&tsx->dest_name, &dest_addr, sizeof(dest_addr)); 1074 pj_strdup(tsx->pool, &tsx->dest_name. host, &dest_addr.host);1071 pj_strdup(tsx->pool, &tsx->dest_name.addr.host, &dest_addr.addr.host); 1075 1072 1076 1073 PJ_LOG(5,(tsx->obj_name, "tsx resolving destination %.*s:%d", 1077 tsx->dest_name. host.slen,1078 tsx->dest_name. host.ptr,1079 tsx->dest_name. port));1074 tsx->dest_name.addr.host.slen, 1075 tsx->dest_name.addr.host.ptr, 1076 tsx->dest_name.addr.port)); 1080 1077 1081 1078 tsx->transport_state = PJSIP_TSX_TRANSPORT_STATE_RESOLVING; … … 1216 1213 */ 1217 1214 if (tdata->msg->type == PJSIP_REQUEST_MSG) { 1218 const pj_sockaddr_in *addr_name;1219 1215 pjsip_via_hdr *via = (pjsip_via_hdr*) 1220 1216 pjsip_msg_find_hdr(tdata->msg, PJSIP_H_VIA, NULL); … … 1226 1222 /* Don't update Via sent-by on retransmission. */ 1227 1223 if (via->sent_by.host.slen == 0) { 1228 addr_name = &tsx->transport->public_addr;1229 1224 pj_strdup2(tdata->pool, &via->transport, 1230 1225 tsx->transport->type_name); 1231 pj_strdup 2(tdata->pool, &via->sent_by.host,1232 pj_inet_ntoa(addr_name->sin_addr));1233 via->sent_by.port = pj_ntohs(addr_name->sin_port);1226 pj_strdup(tdata->pool, &via->sent_by.host, 1227 &tsx->transport->local_name.host); 1228 via->sent_by.port = tsx->transport->local_name.port; 1234 1229 } 1235 1230 } … … 1243 1238 status = pjsip_transport_send(tsx->transport, tdata, 1244 1239 &tsx->remote_addr.entry[tsx->current_addr].addr, 1240 tsx->remote_addr.entry[tsx->current_addr].addr_len, 1245 1241 tsx, &tsx_on_send_complete); 1246 1242 if (status != PJ_SUCCESS && status != PJ_EPENDING) {
Note: See TracChangeset
for help on using the changeset viewer.