Index: webrtc/p2p/base/tcpport.cc |
diff --git a/webrtc/p2p/base/tcpport.cc b/webrtc/p2p/base/tcpport.cc |
index 2590d0aca893610551ab9af824701361afb27371..721acc2007035eb688d9a7aa072fb43475ea8477 100644 |
--- a/webrtc/p2p/base/tcpport.cc |
+++ b/webrtc/p2p/base/tcpport.cc |
@@ -184,10 +184,13 @@ void TCPPort::PrepareAddress() { |
} else { |
LOG_J(LS_INFO, this) << "Not listening due to firewall restrictions."; |
// Note: We still add the address, since otherwise the remote side won't |
- // recognize our incoming TCP connections. |
- AddAddress(rtc::SocketAddress(ip(), 0), rtc::SocketAddress(ip(), 0), |
- rtc::SocketAddress(), TCP_PROTOCOL_NAME, "", TCPTYPE_ACTIVE_STR, |
- LOCAL_PORT_TYPE, ICE_TYPE_PREFERENCE_HOST_TCP, 0, true); |
+ // recognize our incoming TCP connections. According to |
+ // https://tools.ietf.org/html/rfc6544#section-4.5, for active candidate, |
+ // the port must be set to the discard port, i.e. 9. |
+ AddAddress(rtc::SocketAddress(ip(), DISCARD_PORT), |
+ rtc::SocketAddress(ip(), 0), rtc::SocketAddress(), |
+ TCP_PROTOCOL_NAME, "", TCPTYPE_ACTIVE_STR, LOCAL_PORT_TYPE, |
+ ICE_TYPE_PREFERENCE_HOST_TCP, 0, true); |
} |
} |