| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/renderer/p2p/ipc_socket_factory.h" | 5 #include "content/renderer/p2p/ipc_socket_factory.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <list> | 10 #include <list> |
| (...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 576 // can get the resolved remote address. | 576 // can get the resolved remote address. |
| 577 SignalConnect(this); | 577 SignalConnect(this); |
| 578 } | 578 } |
| 579 } | 579 } |
| 580 | 580 |
| 581 void IpcPacketSocket::OnIncomingTcpConnection( | 581 void IpcPacketSocket::OnIncomingTcpConnection( |
| 582 const net::IPEndPoint& address, | 582 const net::IPEndPoint& address, |
| 583 P2PSocketClient* client) { | 583 P2PSocketClient* client) { |
| 584 DCHECK_EQ(base::MessageLoop::current(), message_loop_); | 584 DCHECK_EQ(base::MessageLoop::current(), message_loop_); |
| 585 | 585 |
| 586 scoped_ptr<IpcPacketSocket> socket(new IpcPacketSocket()); | 586 std::unique_ptr<IpcPacketSocket> socket(new IpcPacketSocket()); |
| 587 | 587 |
| 588 rtc::SocketAddress remote_address; | 588 rtc::SocketAddress remote_address; |
| 589 if (!jingle_glue::IPEndPointToSocketAddress(address, &remote_address)) { | 589 if (!jingle_glue::IPEndPointToSocketAddress(address, &remote_address)) { |
| 590 // Always expect correct IPv4 address to be allocated. | 590 // Always expect correct IPv4 address to be allocated. |
| 591 NOTREACHED(); | 591 NOTREACHED(); |
| 592 } | 592 } |
| 593 socket->InitAcceptedTcp(client, local_address_, remote_address); | 593 socket->InitAcceptedTcp(client, local_address_, remote_address); |
| 594 SignalNewConnection(this, socket.release()); | 594 SignalNewConnection(this, socket.release()); |
| 595 } | 595 } |
| 596 | 596 |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 739 IpcPacketSocketFactory::~IpcPacketSocketFactory() { | 739 IpcPacketSocketFactory::~IpcPacketSocketFactory() { |
| 740 } | 740 } |
| 741 | 741 |
| 742 rtc::AsyncPacketSocket* IpcPacketSocketFactory::CreateUdpSocket( | 742 rtc::AsyncPacketSocket* IpcPacketSocketFactory::CreateUdpSocket( |
| 743 const rtc::SocketAddress& local_address, | 743 const rtc::SocketAddress& local_address, |
| 744 uint16_t min_port, | 744 uint16_t min_port, |
| 745 uint16_t max_port) { | 745 uint16_t max_port) { |
| 746 rtc::SocketAddress crome_address; | 746 rtc::SocketAddress crome_address; |
| 747 P2PSocketClientImpl* socket_client = | 747 P2PSocketClientImpl* socket_client = |
| 748 new P2PSocketClientImpl(socket_dispatcher_); | 748 new P2PSocketClientImpl(socket_dispatcher_); |
| 749 scoped_ptr<IpcPacketSocket> socket(new IpcPacketSocket()); | 749 std::unique_ptr<IpcPacketSocket> socket(new IpcPacketSocket()); |
| 750 // TODO(sergeyu): Respect local_address and port limits here (need | 750 // TODO(sergeyu): Respect local_address and port limits here (need |
| 751 // to pass them over IPC channel to the browser). | 751 // to pass them over IPC channel to the browser). |
| 752 if (!socket->Init(P2P_SOCKET_UDP, socket_client, | 752 if (!socket->Init(P2P_SOCKET_UDP, socket_client, |
| 753 local_address, rtc::SocketAddress())) { | 753 local_address, rtc::SocketAddress())) { |
| 754 return NULL; | 754 return NULL; |
| 755 } | 755 } |
| 756 return socket.release(); | 756 return socket.release(); |
| 757 } | 757 } |
| 758 | 758 |
| 759 rtc::AsyncPacketSocket* IpcPacketSocketFactory::CreateServerTcpSocket( | 759 rtc::AsyncPacketSocket* IpcPacketSocketFactory::CreateServerTcpSocket( |
| 760 const rtc::SocketAddress& local_address, | 760 const rtc::SocketAddress& local_address, |
| 761 uint16_t min_port, | 761 uint16_t min_port, |
| 762 uint16_t max_port, | 762 uint16_t max_port, |
| 763 int opts) { | 763 int opts) { |
| 764 // TODO(sergeyu): Implement SSL support. | 764 // TODO(sergeyu): Implement SSL support. |
| 765 if (opts & rtc::PacketSocketFactory::OPT_SSLTCP) | 765 if (opts & rtc::PacketSocketFactory::OPT_SSLTCP) |
| 766 return NULL; | 766 return NULL; |
| 767 | 767 |
| 768 P2PSocketType type = (opts & rtc::PacketSocketFactory::OPT_STUN) ? | 768 P2PSocketType type = (opts & rtc::PacketSocketFactory::OPT_STUN) ? |
| 769 P2P_SOCKET_STUN_TCP_SERVER : P2P_SOCKET_TCP_SERVER; | 769 P2P_SOCKET_STUN_TCP_SERVER : P2P_SOCKET_TCP_SERVER; |
| 770 P2PSocketClientImpl* socket_client = | 770 P2PSocketClientImpl* socket_client = |
| 771 new P2PSocketClientImpl(socket_dispatcher_); | 771 new P2PSocketClientImpl(socket_dispatcher_); |
| 772 scoped_ptr<IpcPacketSocket> socket(new IpcPacketSocket()); | 772 std::unique_ptr<IpcPacketSocket> socket(new IpcPacketSocket()); |
| 773 if (!socket->Init(type, socket_client, local_address, | 773 if (!socket->Init(type, socket_client, local_address, |
| 774 rtc::SocketAddress())) { | 774 rtc::SocketAddress())) { |
| 775 return NULL; | 775 return NULL; |
| 776 } | 776 } |
| 777 return socket.release(); | 777 return socket.release(); |
| 778 } | 778 } |
| 779 | 779 |
| 780 rtc::AsyncPacketSocket* IpcPacketSocketFactory::CreateClientTcpSocket( | 780 rtc::AsyncPacketSocket* IpcPacketSocketFactory::CreateClientTcpSocket( |
| 781 const rtc::SocketAddress& local_address, | 781 const rtc::SocketAddress& local_address, |
| 782 const rtc::SocketAddress& remote_address, | 782 const rtc::SocketAddress& remote_address, |
| 783 const rtc::ProxyInfo& proxy_info, | 783 const rtc::ProxyInfo& proxy_info, |
| 784 const std::string& user_agent, int opts) { | 784 const std::string& user_agent, int opts) { |
| 785 P2PSocketType type; | 785 P2PSocketType type; |
| 786 if (opts & rtc::PacketSocketFactory::OPT_SSLTCP) { | 786 if (opts & rtc::PacketSocketFactory::OPT_SSLTCP) { |
| 787 type = (opts & rtc::PacketSocketFactory::OPT_STUN) ? | 787 type = (opts & rtc::PacketSocketFactory::OPT_STUN) ? |
| 788 P2P_SOCKET_STUN_SSLTCP_CLIENT : P2P_SOCKET_SSLTCP_CLIENT; | 788 P2P_SOCKET_STUN_SSLTCP_CLIENT : P2P_SOCKET_SSLTCP_CLIENT; |
| 789 } else if (opts & rtc::PacketSocketFactory::OPT_TLS) { | 789 } else if (opts & rtc::PacketSocketFactory::OPT_TLS) { |
| 790 type = (opts & rtc::PacketSocketFactory::OPT_STUN) ? | 790 type = (opts & rtc::PacketSocketFactory::OPT_STUN) ? |
| 791 P2P_SOCKET_STUN_TLS_CLIENT : P2P_SOCKET_TLS_CLIENT; | 791 P2P_SOCKET_STUN_TLS_CLIENT : P2P_SOCKET_TLS_CLIENT; |
| 792 } else { | 792 } else { |
| 793 type = (opts & rtc::PacketSocketFactory::OPT_STUN) ? | 793 type = (opts & rtc::PacketSocketFactory::OPT_STUN) ? |
| 794 P2P_SOCKET_STUN_TCP_CLIENT : P2P_SOCKET_TCP_CLIENT; | 794 P2P_SOCKET_STUN_TCP_CLIENT : P2P_SOCKET_TCP_CLIENT; |
| 795 } | 795 } |
| 796 P2PSocketClientImpl* socket_client = | 796 P2PSocketClientImpl* socket_client = |
| 797 new P2PSocketClientImpl(socket_dispatcher_); | 797 new P2PSocketClientImpl(socket_dispatcher_); |
| 798 scoped_ptr<IpcPacketSocket> socket(new IpcPacketSocket()); | 798 std::unique_ptr<IpcPacketSocket> socket(new IpcPacketSocket()); |
| 799 if (!socket->Init(type, socket_client, local_address, remote_address)) | 799 if (!socket->Init(type, socket_client, local_address, remote_address)) |
| 800 return NULL; | 800 return NULL; |
| 801 return socket.release(); | 801 return socket.release(); |
| 802 } | 802 } |
| 803 | 803 |
| 804 rtc::AsyncResolverInterface* | 804 rtc::AsyncResolverInterface* |
| 805 IpcPacketSocketFactory::CreateAsyncResolver() { | 805 IpcPacketSocketFactory::CreateAsyncResolver() { |
| 806 scoped_ptr<AsyncAddressResolverImpl> resolver( | 806 std::unique_ptr<AsyncAddressResolverImpl> resolver( |
| 807 new AsyncAddressResolverImpl(socket_dispatcher_)); | 807 new AsyncAddressResolverImpl(socket_dispatcher_)); |
| 808 return resolver.release(); | 808 return resolver.release(); |
| 809 } | 809 } |
| 810 | 810 |
| 811 } // namespace content | 811 } // namespace content |
| OLD | NEW |