Changeset 5636 for pjproject/trunk/pjmedia/src/pjmedia/transport_udp.c
- Timestamp:
- Aug 2, 2017 2:51:59 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjmedia/src/pjmedia/transport_udp.c
r5597 r5636 653 653 struct transport_udp *udp = (struct transport_udp*) tp; 654 654 const pj_sockaddr *rtcp_addr; 655 pj_sockaddr sock_addr, remote_addr, remote_rtcp; 656 int rem_addr_len; 657 pj_status_t status; 655 658 656 659 /* Validate arguments */ … … 668 671 /* "Attach" the application: */ 669 672 673 rem_addr_len = sizeof(pj_sockaddr); 674 pj_sock_getsockname(udp->rtp_sock, &sock_addr, &rem_addr_len); 675 676 /* Synthesize address, if necessary. */ 677 status = pj_sockaddr_synthesize(sock_addr.addr.sa_family, 678 &remote_addr, rem_addr); 679 if (status != PJ_SUCCESS) { 680 pj_perror(3, tp->name, status, "Failed to synthesize the correct" 681 "IP address for RTP"); 682 } 683 rem_addr_len = pj_sockaddr_get_len(&remote_addr); 684 670 685 /* Copy remote RTP address */ 671 pj_memcpy(&udp->rem_rtp_addr, rem_addr,addr_len);686 pj_memcpy(&udp->rem_rtp_addr, &remote_addr, rem_addr_len); 672 687 673 688 /* Copy remote RTP address, if one is specified. */ 674 689 rtcp_addr = (const pj_sockaddr*) rem_rtcp; 675 690 if (rtcp_addr && pj_sockaddr_has_addr(rtcp_addr)) { 676 pj_memcpy(&udp->rem_rtcp_addr, rem_rtcp, addr_len); 691 pj_status_t status; 692 693 status = pj_sockaddr_synthesize(sock_addr.addr.sa_family, 694 &remote_rtcp, rem_rtcp); 695 if (status != PJ_SUCCESS) { 696 pj_perror(3, tp->name, status, "Failed to synthesize the correct" 697 "IP address for RTCP"); 698 } 699 pj_memcpy(&udp->rem_rtcp_addr, &remote_rtcp, rem_addr_len); 677 700 678 701 } else { … … 680 703 681 704 /* Otherwise guess the RTCP address from the RTP address */ 682 pj_memcpy(&udp->rem_rtcp_addr, rem_addr,addr_len);705 pj_memcpy(&udp->rem_rtcp_addr, &udp->rem_rtp_addr, rem_addr_len); 683 706 rtcp_port = pj_sockaddr_get_port(&udp->rem_rtp_addr) + 1; 684 707 pj_sockaddr_set_port(&udp->rem_rtcp_addr, (pj_uint16_t)rtcp_port); … … 691 714 692 715 /* Save address length */ 693 udp->addr_len = addr_len;716 udp->addr_len = rem_addr_len; 694 717 695 718 /* Last, mark transport as attached */
Note: See TracChangeset
for help on using the changeset viewer.