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); |
} |