| Index: webrtc/p2p/base/tcpport.cc
 | 
| diff --git a/webrtc/p2p/base/tcpport.cc b/webrtc/p2p/base/tcpport.cc
 | 
| index 5ccb8108a058b0ab608c7c8b454f10b2882016d9..59c4f317d4bc755bba05246e1207b55b372571d1 100644
 | 
| --- a/webrtc/p2p/base/tcpport.cc
 | 
| +++ b/webrtc/p2p/base/tcpport.cc
 | 
| @@ -387,35 +387,28 @@
 | 
|    // the one we asked for. This is seen in Chrome, where TCP sockets cannot be
 | 
|    // given a binding address, and the platform is expected to pick the
 | 
|    // correct local address.
 | 
| -  const rtc::SocketAddress& socket_addr = socket->GetLocalAddress();
 | 
| -  if (socket_addr.ipaddr() == port()->ip()) {
 | 
| -    LOG_J(LS_VERBOSE, this) << "Connection established to "
 | 
| -                            << socket->GetRemoteAddress().ToSensitiveString();
 | 
| -  } else if (IPIsAny(port()->ip())) {
 | 
| -    LOG(LS_WARNING) << "Socket is bound to a different address:"
 | 
| -                    << socket_addr.ipaddr().ToString()
 | 
| -                    << ", rather then the local port:"
 | 
| -                    << port()->ip().ToString()
 | 
| -                    << ". Still allowing it since it's any address"
 | 
| -                    << ", possibly caused by multi-routes being disabled.";
 | 
| -  } else if (socket_addr.IsLoopbackIP()) {
 | 
| -    LOG(LS_WARNING) << "Socket is bound to a different address:"
 | 
| -                    << socket_addr.ipaddr().ToString()
 | 
| -                    << ", rather then the local port:"
 | 
| -                    << port()->ip().ToString()
 | 
| -                    << ". Still allowing it since it's localhost.";
 | 
| +  const rtc::IPAddress& socket_ip = socket->GetLocalAddress().ipaddr();
 | 
| +  if (socket_ip == port()->ip() || IPIsAny(port()->ip())) {
 | 
| +    if (socket_ip == port()->ip()) {
 | 
| +      LOG_J(LS_VERBOSE, this) << "Connection established to "
 | 
| +                              << socket->GetRemoteAddress().ToSensitiveString();
 | 
| +    } else {
 | 
| +      LOG(LS_WARNING) << "Socket is bound to a different address:"
 | 
| +                      << socket->GetLocalAddress().ipaddr().ToString()
 | 
| +                      << ", rather then the local port:"
 | 
| +                      << port()->ip().ToString()
 | 
| +                      << ". Still allowing it since it's any address"
 | 
| +                      << ", possibly caused by multi-routes being disabled.";
 | 
| +    }
 | 
| +    set_connected(true);
 | 
| +    connection_pending_ = false;
 | 
|    } else {
 | 
|      LOG_J(LS_WARNING, this) << "Dropping connection as TCP socket bound to IP "
 | 
| -                            << socket_addr.ipaddr().ToSensitiveString()
 | 
| +                            << socket_ip.ToSensitiveString()
 | 
|                              << ", different from the local candidate IP "
 | 
|                              << port()->ip().ToSensitiveString();
 | 
|      OnClose(socket, 0);
 | 
| -    return;
 | 
| -  }
 | 
| -
 | 
| -  // Connection is established successfully.
 | 
| -  set_connected(true);
 | 
| -  connection_pending_ = false;
 | 
| +  }
 | 
|  }
 | 
|  
 | 
|  void TCPConnection::OnClose(rtc::AsyncPacketSocket* socket, int error) {
 | 
| 
 |