| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 // This file includes code SSLClientSocketNSS::DoVerifyCertComplete() derived | 5 // This file includes code SSLClientSocketNSS::DoVerifyCertComplete() derived |
| 6 // from AuthCertificateCallback() in | 6 // from AuthCertificateCallback() in |
| 7 // mozilla/security/manager/ssl/src/nsNSSCallbacks.cpp. | 7 // mozilla/security/manager/ssl/src/nsNSSCallbacks.cpp. |
| 8 | 8 |
| 9 /* ***** BEGIN LICENSE BLOCK ***** | 9 /* ***** BEGIN LICENSE BLOCK ***** |
| 10 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | 10 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
| (...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 285 int SSLClientSocketNSS::Connect(CompletionCallback* callback) { | 285 int SSLClientSocketNSS::Connect(CompletionCallback* callback) { |
| 286 EnterFunction(""); | 286 EnterFunction(""); |
| 287 DCHECK(transport_.get()); | 287 DCHECK(transport_.get()); |
| 288 DCHECK(next_handshake_state_ == STATE_NONE); | 288 DCHECK(next_handshake_state_ == STATE_NONE); |
| 289 DCHECK(!user_read_callback_); | 289 DCHECK(!user_read_callback_); |
| 290 DCHECK(!user_write_callback_); | 290 DCHECK(!user_write_callback_); |
| 291 DCHECK(!user_connect_callback_); | 291 DCHECK(!user_connect_callback_); |
| 292 DCHECK(!user_read_buf_); | 292 DCHECK(!user_read_buf_); |
| 293 DCHECK(!user_write_buf_); | 293 DCHECK(!user_write_buf_); |
| 294 | 294 |
| 295 net_log_.BeginEvent(NetLog::TYPE_SSL_CONNECT); | 295 net_log_.BeginEvent(NetLog::TYPE_SSL_CONNECT, NULL); |
| 296 | 296 |
| 297 int rv = Init(); | 297 int rv = Init(); |
| 298 if (rv != OK) { | 298 if (rv != OK) { |
| 299 net_log_.EndEvent(NetLog::TYPE_SSL_CONNECT); | 299 net_log_.EndEvent(NetLog::TYPE_SSL_CONNECT, NULL); |
| 300 return rv; | 300 return rv; |
| 301 } | 301 } |
| 302 | 302 |
| 303 rv = InitializeSSLOptions(); | 303 rv = InitializeSSLOptions(); |
| 304 if (rv != OK) { | 304 if (rv != OK) { |
| 305 net_log_.EndEvent(NetLog::TYPE_SSL_CONNECT); | 305 net_log_.EndEvent(NetLog::TYPE_SSL_CONNECT, NULL); |
| 306 return rv; | 306 return rv; |
| 307 } | 307 } |
| 308 | 308 |
| 309 GotoState(STATE_HANDSHAKE); | 309 GotoState(STATE_HANDSHAKE); |
| 310 rv = DoHandshakeLoop(OK); | 310 rv = DoHandshakeLoop(OK); |
| 311 if (rv == ERR_IO_PENDING) { | 311 if (rv == ERR_IO_PENDING) { |
| 312 user_connect_callback_ = callback; | 312 user_connect_callback_ = callback; |
| 313 } else { | 313 } else { |
| 314 net_log_.EndEvent(NetLog::TYPE_SSL_CONNECT); | 314 net_log_.EndEvent(NetLog::TYPE_SSL_CONNECT, NULL); |
| 315 } | 315 } |
| 316 | 316 |
| 317 LeaveFunction(""); | 317 LeaveFunction(""); |
| 318 return rv > OK ? OK : rv; | 318 return rv > OK ? OK : rv; |
| 319 } | 319 } |
| 320 | 320 |
| 321 int SSLClientSocketNSS::InitializeSSLOptions() { | 321 int SSLClientSocketNSS::InitializeSSLOptions() { |
| 322 // Transport connected, now hook it up to nss | 322 // Transport connected, now hook it up to nss |
| 323 // TODO(port): specify rx and tx buffer sizes separately | 323 // TODO(port): specify rx and tx buffer sizes separately |
| 324 nss_fd_ = memio_CreateIOLayer(kRecvBufferSize); | 324 nss_fd_ = memio_CreateIOLayer(kRecvBufferSize); |
| (...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 810 CompletionCallback* c = user_connect_callback_; | 810 CompletionCallback* c = user_connect_callback_; |
| 811 user_connect_callback_ = NULL; | 811 user_connect_callback_ = NULL; |
| 812 c->Run(rv > OK ? OK : rv); | 812 c->Run(rv > OK ? OK : rv); |
| 813 LeaveFunction(""); | 813 LeaveFunction(""); |
| 814 } | 814 } |
| 815 | 815 |
| 816 void SSLClientSocketNSS::OnHandshakeIOComplete(int result) { | 816 void SSLClientSocketNSS::OnHandshakeIOComplete(int result) { |
| 817 EnterFunction(result); | 817 EnterFunction(result); |
| 818 int rv = DoHandshakeLoop(result); | 818 int rv = DoHandshakeLoop(result); |
| 819 if (rv != ERR_IO_PENDING) { | 819 if (rv != ERR_IO_PENDING) { |
| 820 net_log_.EndEvent(net::NetLog::TYPE_SSL_CONNECT); | 820 net_log_.EndEvent(net::NetLog::TYPE_SSL_CONNECT, NULL); |
| 821 DoConnectCallback(rv); | 821 DoConnectCallback(rv); |
| 822 } | 822 } |
| 823 LeaveFunction(""); | 823 LeaveFunction(""); |
| 824 } | 824 } |
| 825 | 825 |
| 826 void SSLClientSocketNSS::OnSendComplete(int result) { | 826 void SSLClientSocketNSS::OnSendComplete(int result) { |
| 827 EnterFunction(result); | 827 EnterFunction(result); |
| 828 if (next_handshake_state_ == STATE_HANDSHAKE) { | 828 if (next_handshake_state_ == STATE_HANDSHAKE) { |
| 829 // In handshake phase. | 829 // In handshake phase. |
| 830 OnHandshakeIOComplete(result); | 830 OnHandshakeIOComplete(result); |
| (...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1436 PRErrorCode prerr = PR_GetError(); | 1436 PRErrorCode prerr = PR_GetError(); |
| 1437 if (prerr == PR_WOULD_BLOCK_ERROR) { | 1437 if (prerr == PR_WOULD_BLOCK_ERROR) { |
| 1438 LeaveFunction(""); | 1438 LeaveFunction(""); |
| 1439 return ERR_IO_PENDING; | 1439 return ERR_IO_PENDING; |
| 1440 } | 1440 } |
| 1441 LeaveFunction(""); | 1441 LeaveFunction(""); |
| 1442 return MapNSPRError(prerr); | 1442 return MapNSPRError(prerr); |
| 1443 } | 1443 } |
| 1444 | 1444 |
| 1445 } // namespace net | 1445 } // namespace net |
| OLD | NEW |