Changeset 54 for pjproject/trunk/pjsip/src/pjsip/sip_transaction.c
- Timestamp:
- Nov 18, 2005 10:43:42 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_transaction.c
r51 r54 193 193 194 194 PJ_ASSERT_RETURN(pool && str && method && rdata, PJ_EINVAL); 195 PJ_ASSERT_RETURN(rdata->msg , PJ_EINVAL);196 PJ_ASSERT_RETURN(rdata-> via, PJSIP_EMISSINGHDR);197 PJ_ASSERT_RETURN(rdata-> cseq, PJSIP_EMISSINGHDR);198 PJ_ASSERT_RETURN(rdata-> from, PJSIP_EMISSINGHDR);199 200 host = &rdata-> via->sent_by.host;201 req_uri = (pjsip_uri*)rdata->msg ->line.req.uri;195 PJ_ASSERT_RETURN(rdata->msg_info.msg, PJ_EINVAL); 196 PJ_ASSERT_RETURN(rdata->msg_info.via, PJSIP_EMISSINGHDR); 197 PJ_ASSERT_RETURN(rdata->msg_info.cseq, PJSIP_EMISSINGHDR); 198 PJ_ASSERT_RETURN(rdata->msg_info.from, PJSIP_EMISSINGHDR); 199 200 host = &rdata->msg_info.via->sent_by.host; 201 req_uri = (pjsip_uri*)rdata->msg_info.msg->line.req.uri; 202 202 203 203 /* Calculate length required. */ 204 204 len_required = 9 + /* CSeq number */ 205 rdata-> from->tag.slen + /* From tag. */206 rdata-> call_id.slen + /* Call-ID */205 rdata->msg_info.from->tag.slen + /* From tag. */ 206 rdata->msg_info.call_id.slen + /* Call-ID */ 207 207 host->slen + /* Via host. */ 208 208 9 + /* Via port. */ … … 232 232 233 233 /* Add CSeq (only the number). */ 234 len = pj_utoa(rdata-> cseq->cseq, p);234 len = pj_utoa(rdata->msg_info.cseq->cseq, p); 235 235 p += len; 236 236 *p++ = SEPARATOR; 237 237 238 238 /* Add From tag. */ 239 len = rdata-> from->tag.slen;240 pj_memcpy( p, rdata-> from->tag.ptr, len);239 len = rdata->msg_info.from->tag.slen; 240 pj_memcpy( p, rdata->msg_info.from->tag.ptr, len); 241 241 p += len; 242 242 *p++ = SEPARATOR; 243 243 244 244 /* Add Call-ID. */ 245 len = rdata-> call_id.slen;246 pj_memcpy( p, rdata-> call_id.ptr, len );245 len = rdata->msg_info.call_id.slen; 246 pj_memcpy( p, rdata->msg_info.call_id.ptr, len ); 247 247 p += len; 248 248 *p++ = SEPARATOR; … … 258 258 *p++ = ':'; 259 259 260 len = pj_utoa(rdata-> via->sent_by.port, p);260 len = pj_utoa(rdata->msg_info.via->sent_by.port, p); 261 261 p += len; 262 262 *p++ = SEPARATOR; … … 325 325 * handled as RFC2543. 326 326 */ 327 const pj_str_t *branch = &rdata-> via->branch_param;327 const pj_str_t *branch = &rdata->msg_info.via->branch_param; 328 328 329 329 if (pj_strncmp(branch,&rfc3261_branch,PJSIP_RFC3261_BRANCH_LEN)==0) { … … 643 643 * has completed, with or without error. 644 644 */ 645 static void tsx_transport_callback(pjsip_transport _t*tr,645 static void tsx_transport_callback(pjsip_transport *tr, 646 646 void *token, 647 647 pj_status_t status) … … 657 657 if (status == PJ_SUCCESS) { 658 658 PJ_LOG(4, (tsx->obj_name, "%s connected to %s:%d", 659 pjsip_transport_get_type_name(tr),659 tr->type_name, 660 660 addr, tsx->dest_name.port)); 661 661 } else { 662 662 PJ_LOG(4, (tsx->obj_name, "%s unable to connect to %s:%d, status=%d", 663 pjsip_transport_get_type_name(tr),663 tr->type_name, 664 664 addr, tsx->dest_name.port, status)); 665 665 } … … 878 878 pjsip_rx_data *rdata) 879 879 { 880 pjsip_msg *msg = rdata->msg ;880 pjsip_msg *msg = rdata->msg_info.msg; 881 881 pj_str_t *branch; 882 882 pjsip_cseq_hdr *cseq; … … 890 890 891 891 /* Keep shortcut to message */ 892 msg = rdata->msg ;892 msg = rdata->msg_info.msg; 893 893 894 894 /* Role is UAS */ … … 909 909 910 910 /* Duplicate branch parameter for transaction. */ 911 branch = &rdata-> via->branch_param;911 branch = &rdata->msg_info.via->branch_param; 912 912 pj_strdup(tsx->pool, &tsx->branch, branch); 913 913 … … 916 916 917 917 /* Save CSeq */ 918 cseq = rdata-> cseq;918 cseq = rdata->msg_info.cseq; 919 919 tsx->cseq = cseq->cseq; 920 920 … … 932 932 * then return the response using the same transport. 933 933 */ 934 if (PJSIP_TRANSPORT_IS_RELIABLE(rdata->t ransport) ||935 rdata-> via->rport_param >= 0)934 if (PJSIP_TRANSPORT_IS_RELIABLE(rdata->tp_info.transport) || 935 rdata->msg_info.via->rport_param >= 0) 936 936 { 937 tsx->transport = rdata->t ransport;937 tsx->transport = rdata->tp_info.transport; 938 938 pjsip_transport_add_ref(tsx->transport); 939 939 tsx->transport_state = PJSIP_TSX_TRANSPORT_STATE_FINAL; … … 944 944 pjsip_transport_get_type(tsx->transport); 945 945 pj_memcpy(&tsx->remote_addr.entry[0].addr, 946 &rdata-> addr, rdata->addr_len);946 &rdata->pkt_info.addr, rdata->pkt_info.addr_len); 947 947 948 948 } else { 949 949 pj_status_t status; 950 950 951 status = pjsip_get_response_addr(tsx->pool, rdata->t ransport,952 rdata-> via, &tsx->dest_name);951 status = pjsip_get_response_addr(tsx->pool, rdata->tp_info.transport, 952 rdata->msg_info.via, &tsx->dest_name); 953 953 if (status != PJ_SUCCESS) { 954 954 tsx->transport_state = PJSIP_TSX_TRANSPORT_STATE_FINAL; … … 1213 1213 /* Don't update Via sent-by on retransmission. */ 1214 1214 if (via->sent_by.host.slen == 0) { 1215 addr_name = pjsip_transport_get_addr_name(tsx->transport);1215 addr_name = &tsx->transport->public_addr; 1216 1216 pj_strdup2(tdata->pool, &via->transport, 1217 pjsip_transport_get_type_name(tsx->transport));1217 tsx->transport->type_name); 1218 1218 pj_strdup2(tdata->pool, &via->sent_by.host, 1219 1219 pj_inet_ntoa(addr_name->sin_addr)); … … 1397 1397 */ 1398 1398 /* Keep last_tx for authorization. */ 1399 code = event->body.rx_msg.rdata->msg ->line.status.code;1399 code = event->body.rx_msg.rdata->msg_info.msg->line.status.code; 1400 1400 if (tsx->method.id != PJSIP_INVITE_METHOD && code!=401 && code!=407) { 1401 1401 pjsip_tx_data_dec_ref(tsx->last_tx); … … 1666 1666 } 1667 1667 1668 tsx->status_code = event->body.rx_msg.rdata->msg ->line.status.code;1668 tsx->status_code = event->body.rx_msg.rdata->msg_info.msg->line.status.code; 1669 1669 } else { 1670 1670 tsx->status_code = PJSIP_SC_TSX_TIMEOUT; … … 1763 1763 1764 1764 if (event->type == PJSIP_EVENT_RX_MSG) { 1765 pjsip_msg *msg = event->body.rx_msg.rdata->msg ;1765 pjsip_msg *msg = event->body.rx_msg.rdata->msg_info.msg; 1766 1766 pjsip_cseq_hdr *cseq = pjsip_msg_find_hdr( msg, PJSIP_H_CSEQ, NULL ); 1767 1767 … … 1856 1856 * TU doesn't need to be informed. 1857 1857 */ 1858 pjsip_msg *msg = event->body.rx_msg.rdata->msg ;1858 pjsip_msg *msg = event->body.rx_msg.rdata->msg_info.msg; 1859 1859 pj_assert(msg->type == PJSIP_RESPONSE_MSG); 1860 1860 if (msg->type==PJSIP_RESPONSE_MSG && … … 1922 1922 1923 1923 pjsip_method_e method_id = 1924 event->body.rx_msg.rdata->msg ->line.req.method.id;1924 event->body.rx_msg.rdata->msg_info.msg->line.req.method.id; 1925 1925 1926 1926 /* Must be a request message. */ 1927 pj_assert(event->body.rx_msg.rdata->msg ->type == PJSIP_REQUEST_MSG);1927 pj_assert(event->body.rx_msg.rdata->msg_info.msg->type == PJSIP_REQUEST_MSG); 1928 1928 1929 1929 /* Must be an ACK request or a late INVITE retransmission. */
Note: See TracChangeset
for help on using the changeset viewer.