Index: webrtc/p2p/base/tcpport.cc |
diff --git a/webrtc/p2p/base/tcpport.cc b/webrtc/p2p/base/tcpport.cc |
index 79843d82de729eba851360513815e0334a5b7c99..4fd527e5132a6a25e67b38e18d5adb4b48da5d01 100644 |
--- a/webrtc/p2p/base/tcpport.cc |
+++ b/webrtc/p2p/base/tcpport.cc |
@@ -96,23 +96,9 @@ TCPPort::TCPPort(rtc::Thread* thread, |
error_(0) { |
// TODO(mallinath) - Set preference value as per RFC 6544. |
// http://b/issue?id=7141794 |
-} |
- |
-bool TCPPort::Init() { |
if (allow_listen_) { |
- // Treat failure to create or bind a TCP socket as fatal. This |
- // should never happen. |
- socket_ = socket_factory()->CreateServerTcpSocket( |
- rtc::SocketAddress(ip(), 0), min_port(), max_port(), |
- false /* ssl */); |
- if (!socket_) { |
- LOG_J(LS_ERROR, this) << "TCP socket creation failed."; |
- return false; |
- } |
- socket_->SignalNewConnection.connect(this, &TCPPort::OnNewConnection); |
- socket_->SignalAddressReady.connect(this, &TCPPort::OnAddressReady); |
+ TryCreateServerSocket(); |
} |
- return true; |
} |
TCPPort::~TCPPort() { |
@@ -274,6 +260,18 @@ void TCPPort::OnNewConnection(rtc::AsyncPacketSocket* socket, |
incoming_.push_back(incoming); |
} |
+void TCPPort::TryCreateServerSocket() { |
+ socket_ = socket_factory()->CreateServerTcpSocket( |
+ rtc::SocketAddress(ip(), 0), min_port(), max_port(), false /* ssl */); |
+ if (!socket_) { |
+ LOG_J(LS_WARNING, this) |
+ << "TCP server socket creation failed; continuing anyway."; |
+ return; |
+ } |
+ socket_->SignalNewConnection.connect(this, &TCPPort::OnNewConnection); |
+ socket_->SignalAddressReady.connect(this, &TCPPort::OnAddressReady); |
+} |
+ |
rtc::AsyncPacketSocket* TCPPort::GetIncoming( |
const rtc::SocketAddress& addr, bool remove) { |
rtc::AsyncPacketSocket* socket = NULL; |