Chromium Code Reviews| Index: webrtc/base/firewallsocketserver.cc |
| diff --git a/webrtc/base/firewallsocketserver.cc b/webrtc/base/firewallsocketserver.cc |
| index d6d03df3ada87ff4edf16b89b0363387bb84ca28..92ac88f97db97cff276b41b6a9239b4ab971826c 100644 |
| --- a/webrtc/base/firewallsocketserver.cc |
| +++ b/webrtc/base/firewallsocketserver.cc |
| @@ -41,13 +41,13 @@ class FirewallSocket : public AsyncSocketAdapter { |
| return SendTo(pv, cb, GetRemoteAddress()); |
| } |
| int SendTo(const void* pv, size_t cb, const SocketAddress& addr) override { |
| - if (type_ == SOCK_DGRAM) { |
| - if (!server_->Check(FP_UDP, GetLocalAddress(), addr)) { |
|
honghaiz3
2016/10/24 17:26:57
It was a bug that it did not check the TCP packet
|
| - LOG(LS_VERBOSE) << "FirewallSocket outbound UDP packet from " |
| - << GetLocalAddress().ToSensitiveString() << " to " |
| - << addr.ToSensitiveString() << " dropped"; |
| - return static_cast<int>(cb); |
| - } |
| + RTC_DCHECK(type_ == SOCK_DGRAM || type_ == SOCK_STREAM); |
| + FirewallProtocol protocol = (type_ == SOCK_DGRAM) ? FP_UDP : FP_TCP; |
| + if (!server_->Check(protocol, GetLocalAddress(), addr)) { |
| + LOG(LS_VERBOSE) << "FirewallSocket outbound packet with type " << type_ |
| + << " from " << GetLocalAddress().ToSensitiveString() |
| + << " to " << addr.ToSensitiveString() << " dropped"; |
| + return static_cast<int>(cb); |
| } |
| return AsyncSocketAdapter::SendTo(pv, cb, addr); |
| } |