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

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

Issue 9716020: Add base::HostToNetXX() & NetToHostXX(), and use them to replace htonX() & ntohX() in Chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 8 years, 9 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/sys_byteorder.h" 7 #include "base/sys_byteorder.h"
8 #include "content/common/p2p_messages.h" 8 #include "content/common/p2p_messages.h"
9 #include "net/base/io_buffer.h" 9 #include "net/base/io_buffer.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 if (result == net::ERR_IO_PENDING) { 161 if (result == net::ERR_IO_PENDING) {
162 return; 162 return;
163 } else if (result < 0){ 163 } else if (result < 0){
164 LOG(ERROR) << "Error when reading from TCP socket: " << result; 164 LOG(ERROR) << "Error when reading from TCP socket: " << result;
165 OnError(); 165 OnError();
166 return; 166 return;
167 } 167 }
168 168
169 read_buffer_->set_offset(read_buffer_->offset() + result); 169 read_buffer_->set_offset(read_buffer_->offset() + result);
170 if (read_buffer_->offset() > kPacketHeaderSize) { 170 if (read_buffer_->offset() > kPacketHeaderSize) {
171 int packet_size = 171 int packet_size = base::NetToHost16(
172 ntohs(*reinterpret_cast<uint16*>(read_buffer_->StartOfBuffer())); 172 *reinterpret_cast<uint16*>(read_buffer_->StartOfBuffer()));
173 if (packet_size + kPacketHeaderSize <= read_buffer_->offset()) { 173 if (packet_size + kPacketHeaderSize <= read_buffer_->offset()) {
174 // We've got a full packet! 174 // We've got a full packet!
175 char* start = read_buffer_->StartOfBuffer() + kPacketHeaderSize; 175 char* start = read_buffer_->StartOfBuffer() + kPacketHeaderSize;
176 std::vector<char> data(start, start + packet_size); 176 std::vector<char> data(start, start + packet_size);
177 OnPacket(data); 177 OnPacket(data);
178 178
179 // Move remaining data to the start of the buffer. 179 // Move remaining data to the start of the buffer.
180 memmove(read_buffer_->StartOfBuffer(), start + packet_size, 180 memmove(read_buffer_->StartOfBuffer(), start + packet_size,
181 read_buffer_->offset() - packet_size - kPacketHeaderSize); 181 read_buffer_->offset() - packet_size - kPacketHeaderSize);
182 read_buffer_->set_offset(read_buffer_->offset() - packet_size - 182 read_buffer_->set_offset(read_buffer_->offset() - packet_size -
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 if (!stun || type == STUN_DATA_INDICATION) { 214 if (!stun || type == STUN_DATA_INDICATION) {
215 LOG(ERROR) << "Page tried to send a data packet to " << to.ToString() 215 LOG(ERROR) << "Page tried to send a data packet to " << to.ToString()
216 << " before STUN binding is finished."; 216 << " before STUN binding is finished.";
217 OnError(); 217 OnError();
218 return; 218 return;
219 } 219 }
220 } 220 }
221 221
222 int size = kPacketHeaderSize + data.size(); 222 int size = kPacketHeaderSize + data.size();
223 write_buffer_ = new net::DrainableIOBuffer(new net::IOBuffer(size), size); 223 write_buffer_ = new net::DrainableIOBuffer(new net::IOBuffer(size), size);
224 *reinterpret_cast<uint16*>(write_buffer_->data()) = htons(data.size()); 224 *reinterpret_cast<uint16*>(write_buffer_->data()) =
225 base::HostToNet16(data.size());
225 memcpy(write_buffer_->data() + kPacketHeaderSize, &data[0], data.size()); 226 memcpy(write_buffer_->data() + kPacketHeaderSize, &data[0], data.size());
226 227
227 DoWrite(); 228 DoWrite();
228 } 229 }
229 230
230 void P2PSocketHostTcp::DoWrite() { 231 void P2PSocketHostTcp::DoWrite() {
231 while (true) { 232 while (true) {
232 int result = socket_->Write(write_buffer_, write_buffer_->BytesRemaining(), 233 int result = socket_->Write(write_buffer_, write_buffer_->BytesRemaining(),
233 base::Bind(&P2PSocketHostTcp::OnWritten, 234 base::Bind(&P2PSocketHostTcp::OnWritten,
234 base::Unretained(this))); 235 base::Unretained(this)));
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 } 269 }
269 270
270 P2PSocketHost* P2PSocketHostTcp::AcceptIncomingTcpConnection( 271 P2PSocketHost* P2PSocketHostTcp::AcceptIncomingTcpConnection(
271 const net::IPEndPoint& remote_address, int id) { 272 const net::IPEndPoint& remote_address, int id) {
272 NOTREACHED(); 273 NOTREACHED();
273 OnError(); 274 OnError();
274 return NULL; 275 return NULL;
275 } 276 }
276 277
277 } // namespace content 278 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/p2p/socket_host.cc ('k') | content/browser/renderer_host/p2p/socket_host_tcp_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698