Changeset 5851 for pjproject/trunk/pjsip/src/pjsip/sip_transport.c
- Timestamp:
- Aug 1, 2018 9:22:26 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_transport.c
r5701 r5851 644 644 } 645 645 646 /* Clone pjsip_tx_data. */ 647 PJ_DEF(pj_status_t) pjsip_tx_data_clone(const pjsip_tx_data *src, 648 unsigned flags, 649 pjsip_tx_data ** p_tdata) 650 { 651 pjsip_tx_data *dst; 652 const pjsip_hdr *hsrc; 653 pjsip_msg *msg; 654 pj_status_t status; 655 656 PJ_UNUSED_ARG(flags); 657 658 status = pjsip_tx_data_create(src->mgr, p_tdata); 659 if (status != PJ_SUCCESS) 660 return status; 661 662 dst = *p_tdata; 663 664 msg = pjsip_msg_create(dst->pool, PJSIP_RESPONSE_MSG); 665 dst->msg = msg; 666 pjsip_tx_data_add_ref(dst); 667 668 /* Duplicate status line */ 669 msg->line.status.code = src->msg->line.status.code; 670 pj_strdup(dst->pool, &msg->line.status.reason, 671 &src->msg->line.status.reason); 672 673 /* Duplicate all headers */ 674 hsrc = src->msg->hdr.next; 675 while (hsrc != &src->msg->hdr) { 676 pjsip_hdr *h = (pjsip_hdr*) pjsip_hdr_clone(dst->pool, hsrc); 677 pjsip_msg_add_hdr(msg, h); 678 hsrc = hsrc->next; 679 } 680 681 /* Duplicate message body */ 682 if (src->msg->body) 683 msg->body = pjsip_msg_body_clone(dst->pool, src->msg->body); 684 685 dst->is_pending = src->is_pending; 686 687 PJ_LOG(5,(THIS_FILE, 688 "Tx data %s cloned", 689 pjsip_tx_data_get_info(dst))); 690 691 return PJ_SUCCESS; 692 } 646 693 647 694 PJ_DEF(char*) pjsip_rx_data_get_info(pjsip_rx_data *rdata)
Note: See TracChangeset
for help on using the changeset viewer.