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

Side by Side Diff: net/socket/ssl_client_socket_win.cc

Issue 7084007: Adds URLRequestJob bytes read to NetLog. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: sync Created 9 years, 6 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 "net/socket/ssl_client_socket_win.h" 5 #include "net/socket/ssl_client_socket_win.h"
6 6
7 #include <schnlsp.h> 7 #include <schnlsp.h>
8 #include <map> 8 #include <map>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 722 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 733
734 int SSLClientSocketWin::Read(IOBuffer* buf, int buf_len, 734 int SSLClientSocketWin::Read(IOBuffer* buf, int buf_len,
735 CompletionCallback* callback) { 735 CompletionCallback* callback) {
736 DCHECK(completed_handshake()); 736 DCHECK(completed_handshake());
737 DCHECK(!user_read_callback_); 737 DCHECK(!user_read_callback_);
738 738
739 // If we have surplus decrypted plaintext, satisfy the Read with it without 739 // If we have surplus decrypted plaintext, satisfy the Read with it without
740 // reading more ciphertext from the transport socket. 740 // reading more ciphertext from the transport socket.
741 if (bytes_decrypted_ != 0) { 741 if (bytes_decrypted_ != 0) {
742 int len = std::min(buf_len, bytes_decrypted_); 742 int len = std::min(buf_len, bytes_decrypted_);
743 LogByteTransfer(net_log_, NetLog::TYPE_SSL_SOCKET_BYTES_RECEIVED, len, 743 net_log_.AddByteTransferEvent(NetLog::TYPE_SSL_SOCKET_BYTES_RECEIVED, len,
744 decrypted_ptr_); 744 decrypted_ptr_);
745 memcpy(buf->data(), decrypted_ptr_, len); 745 memcpy(buf->data(), decrypted_ptr_, len);
746 decrypted_ptr_ += len; 746 decrypted_ptr_ += len;
747 bytes_decrypted_ -= len; 747 bytes_decrypted_ -= len;
748 if (bytes_decrypted_ == 0) { 748 if (bytes_decrypted_ == 0) {
749 decrypted_ptr_ = NULL; 749 decrypted_ptr_ = NULL;
750 if (bytes_received_ != 0) { 750 if (bytes_received_ != 0) {
751 memmove(recv_buffer_.get(), received_ptr_, bytes_received_); 751 memmove(recv_buffer_.get(), received_ptr_, bytes_received_);
752 received_ptr_ = recv_buffer_.get(); 752 received_ptr_ = recv_buffer_.get();
753 } 753 }
754 } 754 }
(...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after
1354 // application, even though more is already buffered and ready to be 1354 // application, even though more is already buffered and ready to be
1355 // decoded. 1355 // decoded.
1356 if (len) 1356 if (len)
1357 break; 1357 break;
1358 } 1358 }
1359 1359
1360 // If we decrypted 0 bytes, don't report 0 bytes read, which would be 1360 // If we decrypted 0 bytes, don't report 0 bytes read, which would be
1361 // mistaken for EOF. Continue decrypting or read more. 1361 // mistaken for EOF. Continue decrypting or read more.
1362 if (len == 0) 1362 if (len == 0)
1363 return DoPayloadRead(); 1363 return DoPayloadRead();
1364 LogByteTransfer(net_log_, NetLog::TYPE_SSL_SOCKET_BYTES_RECEIVED, len, 1364 net_log_.AddByteTransferEvent(NetLog::TYPE_SSL_SOCKET_BYTES_RECEIVED, len,
1365 user_read_buf_->data()); 1365 user_read_buf_->data());
1366 return len; 1366 return len;
1367 } 1367 }
1368 1368
1369 int SSLClientSocketWin::DoPayloadEncrypt() { 1369 int SSLClientSocketWin::DoPayloadEncrypt() {
1370 DCHECK(completed_handshake()); 1370 DCHECK(completed_handshake());
1371 DCHECK(user_write_buf_); 1371 DCHECK(user_write_buf_);
1372 DCHECK(user_write_buf_len_ > 0); 1372 DCHECK(user_write_buf_len_ > 0);
1373 1373
1374 ULONG message_len = std::min( 1374 ULONG message_len = std::min(
1375 stream_sizes_.cbMaximumMessage, static_cast<ULONG>(user_write_buf_len_)); 1375 stream_sizes_.cbMaximumMessage, static_cast<ULONG>(user_write_buf_len_));
1376 ULONG alloc_len = 1376 ULONG alloc_len =
1377 message_len + stream_sizes_.cbHeader + stream_sizes_.cbTrailer; 1377 message_len + stream_sizes_.cbHeader + stream_sizes_.cbTrailer;
1378 user_write_buf_len_ = message_len; 1378 user_write_buf_len_ = message_len;
1379 1379
1380 payload_send_buffer_.reset(new char[alloc_len]); 1380 payload_send_buffer_.reset(new char[alloc_len]);
1381 memcpy(&payload_send_buffer_[stream_sizes_.cbHeader], 1381 memcpy(&payload_send_buffer_[stream_sizes_.cbHeader],
1382 user_write_buf_->data(), message_len); 1382 user_write_buf_->data(), message_len);
1383 LogByteTransfer(net_log_, NetLog::TYPE_SSL_SOCKET_BYTES_SENT, message_len, 1383 net_log_.AddByteTransferEvent(NetLog::TYPE_SSL_SOCKET_BYTES_SENT, message_len,
1384 user_write_buf_->data()); 1384 user_write_buf_->data());
1385 1385
1386 SecBuffer buffers[4]; 1386 SecBuffer buffers[4];
1387 buffers[0].pvBuffer = payload_send_buffer_.get(); 1387 buffers[0].pvBuffer = payload_send_buffer_.get();
1388 buffers[0].cbBuffer = stream_sizes_.cbHeader; 1388 buffers[0].cbBuffer = stream_sizes_.cbHeader;
1389 buffers[0].BufferType = SECBUFFER_STREAM_HEADER; 1389 buffers[0].BufferType = SECBUFFER_STREAM_HEADER;
1390 1390
1391 buffers[1].pvBuffer = &payload_send_buffer_[stream_sizes_.cbHeader]; 1391 buffers[1].pvBuffer = &payload_send_buffer_[stream_sizes_.cbHeader];
1392 buffers[1].cbBuffer = message_len; 1392 buffers[1].cbBuffer = message_len;
1393 buffers[1].BufferType = SECBUFFER_DATA; 1393 buffers[1].BufferType = SECBUFFER_DATA;
1394 1394
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1530 UpdateConnectionTypeHistograms(CONNECTION_SSL_MD2_CA); 1530 UpdateConnectionTypeHistograms(CONNECTION_SSL_MD2_CA);
1531 } 1531 }
1532 1532
1533 void SSLClientSocketWin::FreeSendBuffer() { 1533 void SSLClientSocketWin::FreeSendBuffer() {
1534 SECURITY_STATUS status = FreeContextBuffer(send_buffer_.pvBuffer); 1534 SECURITY_STATUS status = FreeContextBuffer(send_buffer_.pvBuffer);
1535 DCHECK(status == SEC_E_OK); 1535 DCHECK(status == SEC_E_OK);
1536 memset(&send_buffer_, 0, sizeof(send_buffer_)); 1536 memset(&send_buffer_, 0, sizeof(send_buffer_));
1537 } 1537 }
1538 1538
1539 } // namespace net 1539 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698