Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(347)

Side by Side Diff: content/browser/renderer_host/p2p/socket_host_tcp.cc

Issue 7529039: Properly handle STUN requests and responses from relay servers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/p2p/socket_host_tcp.h" 5 #include "content/browser/renderer_host/p2p/socket_host_tcp.h"
6 6
7 #include "content/common/p2p_messages.h" 7 #include "content/common/p2p_messages.h"
8 #include "net/base/io_buffer.h" 8 #include "net/base/io_buffer.h"
9 #include "net/base/net_errors.h" 9 #include "net/base/net_errors.h"
10 #include "net/base/net_util.h" 10 #include "net/base/net_util.h"
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 DidCompleteRead(result); 131 DidCompleteRead(result);
132 if (state_ == STATE_OPEN) { 132 if (state_ == STATE_OPEN) {
133 DoRead(); 133 DoRead();
134 } 134 }
135 } 135 }
136 136
137 void P2PSocketHostTcp::OnPacket(std::vector<char>& data) { 137 void P2PSocketHostTcp::OnPacket(std::vector<char>& data) {
138 if (!authorized_) { 138 if (!authorized_) {
139 P2PSocketHost::StunMessageType type; 139 P2PSocketHost::StunMessageType type;
140 bool stun = GetStunPacketType(&*data.begin(), data.size(), &type); 140 bool stun = GetStunPacketType(&*data.begin(), data.size(), &type);
141 if (stun && (type == STUN_BINDING_REQUEST || 141 if (stun && IsRequestOrResponse(type)) {
Wez 2011/08/09 18:09:23 How does receipt of a binding/allocate request/res
Sergey Ulanov 2011/08/09 18:15:41 By sending/receiving the stun request or response
Wez 2011/08/09 18:30:57 The only effect that |authorized_| seems to have i
Sergey Ulanov 2011/08/09 19:18:26 We do block incoming data packets before stun requ
Wez 2011/08/09 19:54:50 Sorry; forgot about the |!authorized_| surrounding
Sergey Ulanov 2011/08/09 21:06:56 Ok, connected sounds good. I will rename it in a s
142 type == STUN_BINDING_RESPONSE)) {
143 authorized_ = true; 142 authorized_ = true;
144 } else if (!stun || type == STUN_DATA_INDICATION) { 143 } else if (!stun || type == STUN_DATA_INDICATION) {
145 LOG(ERROR) << "Received unexpected data packet from " 144 LOG(ERROR) << "Received unexpected data packet from "
146 << remote_address_.ToString() 145 << remote_address_.ToString()
147 << " before STUN binding is finished. " 146 << " before STUN binding is finished. "
148 << "Terminating connection."; 147 << "Terminating connection.";
149 OnError(); 148 OnError();
150 return; 149 return;
151 } 150 }
152 } 151 }
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 DoWrite(); 264 DoWrite();
266 } 265 }
267 } 266 }
268 267
269 P2PSocketHost* P2PSocketHostTcp::AcceptIncomingTcpConnection( 268 P2PSocketHost* P2PSocketHostTcp::AcceptIncomingTcpConnection(
270 const net::IPEndPoint& remote_address, int id) { 269 const net::IPEndPoint& remote_address, int id) {
271 NOTREACHED(); 270 NOTREACHED();
272 OnError(); 271 OnError();
273 return NULL; 272 return NULL;
274 } 273 }
OLDNEW
« no previous file with comments | « content/browser/renderer_host/p2p/socket_host.cc ('k') | content/browser/renderer_host/p2p/socket_host_udp.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698