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

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: Switch a few remaining call-sites. 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) 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 "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 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 if (result == net::ERR_IO_PENDING) { 159 if (result == net::ERR_IO_PENDING) {
160 return; 160 return;
161 } else if (result < 0){ 161 } else if (result < 0){
162 LOG(ERROR) << "Error when reading from TCP socket: " << result; 162 LOG(ERROR) << "Error when reading from TCP socket: " << result;
163 OnError(); 163 OnError();
164 return; 164 return;
165 } 165 }
166 166
167 read_buffer_->set_offset(read_buffer_->offset() + result); 167 read_buffer_->set_offset(read_buffer_->offset() + result);
168 if (read_buffer_->offset() > kPacketHeaderSize) { 168 if (read_buffer_->offset() > kPacketHeaderSize) {
169 int packet_size = 169 int packet_size = base::NetToHost16(
170 ntohs(*reinterpret_cast<uint16*>(read_buffer_->StartOfBuffer())); 170 *reinterpret_cast<uint16*>(read_buffer_->StartOfBuffer()));
171 if (packet_size + kPacketHeaderSize <= read_buffer_->offset()) { 171 if (packet_size + kPacketHeaderSize <= read_buffer_->offset()) {
172 // We've got a full packet! 172 // We've got a full packet!
173 char* start = read_buffer_->StartOfBuffer() + kPacketHeaderSize; 173 char* start = read_buffer_->StartOfBuffer() + kPacketHeaderSize;
174 std::vector<char> data(start, start + packet_size); 174 std::vector<char> data(start, start + packet_size);
175 OnPacket(data); 175 OnPacket(data);
176 176
177 // Move remaining data to the start of the buffer. 177 // Move remaining data to the start of the buffer.
178 memmove(read_buffer_->StartOfBuffer(), start + packet_size, 178 memmove(read_buffer_->StartOfBuffer(), start + packet_size,
179 read_buffer_->offset() - packet_size - kPacketHeaderSize); 179 read_buffer_->offset() - packet_size - kPacketHeaderSize);
180 read_buffer_->set_offset(read_buffer_->offset() - packet_size - 180 read_buffer_->set_offset(read_buffer_->offset() - packet_size -
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 if (!stun || type == STUN_DATA_INDICATION) { 212 if (!stun || type == STUN_DATA_INDICATION) {
213 LOG(ERROR) << "Page tried to send a data packet to " << to.ToString() 213 LOG(ERROR) << "Page tried to send a data packet to " << to.ToString()
214 << " before STUN binding is finished."; 214 << " before STUN binding is finished.";
215 OnError(); 215 OnError();
216 return; 216 return;
217 } 217 }
218 } 218 }
219 219
220 int size = kPacketHeaderSize + data.size(); 220 int size = kPacketHeaderSize + data.size();
221 write_buffer_ = new net::DrainableIOBuffer(new net::IOBuffer(size), size); 221 write_buffer_ = new net::DrainableIOBuffer(new net::IOBuffer(size), size);
222 *reinterpret_cast<uint16*>(write_buffer_->data()) = htons(data.size()); 222 *reinterpret_cast<uint16*>(write_buffer_->data()) =
223 base::HostToNet16(data.size());
223 memcpy(write_buffer_->data() + kPacketHeaderSize, &data[0], data.size()); 224 memcpy(write_buffer_->data() + kPacketHeaderSize, &data[0], data.size());
224 225
225 DoWrite(); 226 DoWrite();
226 } 227 }
227 228
228 void P2PSocketHostTcp::DoWrite() { 229 void P2PSocketHostTcp::DoWrite() {
229 while (true) { 230 while (true) {
230 int result = socket_->Write(write_buffer_, write_buffer_->BytesRemaining(), 231 int result = socket_->Write(write_buffer_, write_buffer_->BytesRemaining(),
231 base::Bind(&P2PSocketHostTcp::OnWritten, 232 base::Bind(&P2PSocketHostTcp::OnWritten,
232 base::Unretained(this))); 233 base::Unretained(this)));
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 } 267 }
267 268
268 P2PSocketHost* P2PSocketHostTcp::AcceptIncomingTcpConnection( 269 P2PSocketHost* P2PSocketHostTcp::AcceptIncomingTcpConnection(
269 const net::IPEndPoint& remote_address, int id) { 270 const net::IPEndPoint& remote_address, int id) {
270 NOTREACHED(); 271 NOTREACHED();
271 OnError(); 272 OnError();
272 return NULL; 273 return NULL;
273 } 274 }
274 275
275 } // namespace content 276 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698