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

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

Issue 43115: Change the bad-certificate handler for SSL (using NSS) to return an... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 8 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/base/ssl_client_socket_win.h" 5 #include "net/base/ssl_client_socket_win.h"
6 6
7 #include <schnlsp.h> 7 #include <schnlsp.h>
8 8
9 #include "base/lock.h" 9 #include "base/lock.h"
10 #include "base/singleton.h" 10 #include "base/singleton.h"
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 return ERR_NO_SSL_VERSIONS_ENABLED; 273 return ERR_NO_SSL_VERSIONS_ENABLED;
274 creds_ = GetCredHandle(ssl_version_mask); 274 creds_ = GetCredHandle(ssl_version_mask);
275 275
276 next_state_ = STATE_CONNECT; 276 next_state_ = STATE_CONNECT;
277 int rv = DoLoop(OK); 277 int rv = DoLoop(OK);
278 if (rv == ERR_IO_PENDING) 278 if (rv == ERR_IO_PENDING)
279 user_callback_ = callback; 279 user_callback_ = callback;
280 return rv; 280 return rv;
281 } 281 }
282 282
283 int SSLClientSocketWin::ReconnectIgnoringLastError(
284 CompletionCallback* callback) {
285 // TODO(darin): implement me!
286 return ERR_FAILED;
287 }
288
289 void SSLClientSocketWin::Disconnect() { 283 void SSLClientSocketWin::Disconnect() {
290 // TODO(wtc): Send SSL close_notify alert. 284 // TODO(wtc): Send SSL close_notify alert.
291 completed_handshake_ = false; 285 completed_handshake_ = false;
292 transport_->Disconnect(); 286 transport_->Disconnect();
293 287
294 if (send_buffer_.pvBuffer) 288 if (send_buffer_.pvBuffer)
295 FreeSendBuffer(); 289 FreeSendBuffer();
296 if (ctxt_.dwLower || ctxt_.dwUpper) { 290 if (ctxt_.dwLower || ctxt_.dwUpper) {
297 DeleteSecurityContext(&ctxt_); 291 DeleteSecurityContext(&ctxt_);
298 memset(&ctxt_, 0, sizeof(ctxt_)); 292 memset(&ctxt_, 0, sizeof(ctxt_));
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 rv = ERR_UNEXPECTED; 437 rv = ERR_UNEXPECTED;
444 NOTREACHED() << "unexpected state"; 438 NOTREACHED() << "unexpected state";
445 break; 439 break;
446 } 440 }
447 } while (rv != ERR_IO_PENDING && next_state_ != STATE_NONE); 441 } while (rv != ERR_IO_PENDING && next_state_ != STATE_NONE);
448 return rv; 442 return rv;
449 } 443 }
450 444
451 int SSLClientSocketWin::DoConnect() { 445 int SSLClientSocketWin::DoConnect() {
452 next_state_ = STATE_CONNECT_COMPLETE; 446 next_state_ = STATE_CONNECT_COMPLETE;
453 return transport_->Connect(&io_callback_); 447
448 // The caller has to make sure that the transport socket is connected. If
449 // it isn't, we will eventually fail when trying to negotiate an SSL session.
450 // But we cannot call transport_->Connect(), as we do not know if there is
451 // any proxy negotiation that needs to be performed prior to establishing
452 // the SSL session.
453 return OK;
454 } 454 }
455 455
456 int SSLClientSocketWin::DoConnectComplete(int result) { 456 int SSLClientSocketWin::DoConnectComplete(int result) {
457 if (result < 0) 457 if (result < 0)
458 return result; 458 return result;
459 459
460 memset(&ctxt_, 0, sizeof(ctxt_)); 460 memset(&ctxt_, 0, sizeof(ctxt_));
461 461
462 SecBufferDesc buffer_desc; 462 SecBufferDesc buffer_desc;
463 DWORD out_flags; 463 DWORD out_flags;
(...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after
974 } 974 }
975 } 975 }
976 976
977 void SSLClientSocketWin::FreeSendBuffer() { 977 void SSLClientSocketWin::FreeSendBuffer() {
978 SECURITY_STATUS status = FreeContextBuffer(send_buffer_.pvBuffer); 978 SECURITY_STATUS status = FreeContextBuffer(send_buffer_.pvBuffer);
979 DCHECK(status == SEC_E_OK); 979 DCHECK(status == SEC_E_OK);
980 memset(&send_buffer_, 0, sizeof(send_buffer_)); 980 memset(&send_buffer_, 0, sizeof(send_buffer_));
981 } 981 }
982 982
983 } // namespace net 983 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698