OLD | NEW |
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 // 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 667 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
678 // the close_notify alert message means EOF in the SSL layer, it is just | 678 // the close_notify alert message means EOF in the SSL layer, it is just |
679 // bytes to the transport layer below, so | 679 // bytes to the transport layer below, so |
680 // transport_->socket()->IsConnectedAndIdle() returns the desired false | 680 // transport_->socket()->IsConnectedAndIdle() returns the desired false |
681 // when we receive close_notify. | 681 // when we receive close_notify. |
682 EnterFunction(""); | 682 EnterFunction(""); |
683 bool ret = completed_handshake_ && transport_->socket()->IsConnectedAndIdle(); | 683 bool ret = completed_handshake_ && transport_->socket()->IsConnectedAndIdle(); |
684 LeaveFunction(""); | 684 LeaveFunction(""); |
685 return ret; | 685 return ret; |
686 } | 686 } |
687 | 687 |
688 int SSLClientSocketNSS::GetPeerAddress(AddressList* address) const { | 688 int SSLClientSocketNSS::GetPeerAddress(IPEndPoint* address) const { |
689 return transport_->socket()->GetPeerAddress(address); | 689 return transport_->socket()->GetPeerAddress(address); |
690 } | 690 } |
691 | 691 |
692 int SSLClientSocketNSS::GetLocalAddress(IPEndPoint* address) const { | 692 int SSLClientSocketNSS::GetLocalAddress(IPEndPoint* address) const { |
693 return transport_->socket()->GetLocalAddress(address); | 693 return transport_->socket()->GetLocalAddress(address); |
694 } | 694 } |
695 | 695 |
696 const BoundNetLog& SSLClientSocketNSS::NetLog() const { | 696 const BoundNetLog& SSLClientSocketNSS::NetLog() const { |
697 return net_log_; | 697 return net_log_; |
698 } | 698 } |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1004 SSL_SetURL(nss_fd_, host_and_port_.host().c_str()); | 1004 SSL_SetURL(nss_fd_, host_and_port_.host().c_str()); |
1005 | 1005 |
1006 // Tell SSL we're a client; needed if not letting NSPR do socket I/O | 1006 // Tell SSL we're a client; needed if not letting NSPR do socket I/O |
1007 SSL_ResetHandshake(nss_fd_, PR_FALSE); | 1007 SSL_ResetHandshake(nss_fd_, PR_FALSE); |
1008 | 1008 |
1009 return OK; | 1009 return OK; |
1010 } | 1010 } |
1011 | 1011 |
1012 int SSLClientSocketNSS::InitializeSSLPeerName() { | 1012 int SSLClientSocketNSS::InitializeSSLPeerName() { |
1013 // Tell NSS who we're connected to | 1013 // Tell NSS who we're connected to |
1014 AddressList peer_address; | 1014 IPEndPoint peer_address; |
1015 int err = transport_->socket()->GetPeerAddress(&peer_address); | 1015 int err = transport_->socket()->GetPeerAddress(&peer_address); |
1016 if (err != OK) | 1016 if (err != OK) |
1017 return err; | 1017 return err; |
1018 | 1018 |
1019 SockaddrStorage storage; | 1019 SockaddrStorage storage; |
1020 if (!peer_address.front().ToSockAddr(storage.addr, &storage.addr_len)) | 1020 if (!peer_address.ToSockAddr(storage.addr, &storage.addr_len)) |
1021 return ERR_UNEXPECTED; | 1021 return ERR_UNEXPECTED; |
1022 | 1022 |
1023 PRNetAddr peername; | 1023 PRNetAddr peername; |
1024 memset(&peername, 0, sizeof(peername)); | 1024 memset(&peername, 0, sizeof(peername)); |
1025 DCHECK_LE(static_cast<size_t>(storage.addr_len), sizeof(peername)); | 1025 DCHECK_LE(static_cast<size_t>(storage.addr_len), sizeof(peername)); |
1026 size_t len = std::min(static_cast<size_t>(storage.addr_len), | 1026 size_t len = std::min(static_cast<size_t>(storage.addr_len), |
1027 sizeof(peername)); | 1027 sizeof(peername)); |
1028 memcpy(&peername, storage.addr, len); | 1028 memcpy(&peername, storage.addr, len); |
1029 | 1029 |
1030 // Adjust the address family field for BSD, whose sockaddr | 1030 // Adjust the address family field for BSD, whose sockaddr |
(...skipping 1608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2639 EnsureThreadIdAssigned(); | 2639 EnsureThreadIdAssigned(); |
2640 base::AutoLock auto_lock(lock_); | 2640 base::AutoLock auto_lock(lock_); |
2641 return valid_thread_id_ == base::PlatformThread::CurrentId(); | 2641 return valid_thread_id_ == base::PlatformThread::CurrentId(); |
2642 } | 2642 } |
2643 | 2643 |
2644 ServerBoundCertService* SSLClientSocketNSS::GetServerBoundCertService() const { | 2644 ServerBoundCertService* SSLClientSocketNSS::GetServerBoundCertService() const { |
2645 return server_bound_cert_service_; | 2645 return server_bound_cert_service_; |
2646 } | 2646 } |
2647 | 2647 |
2648 } // namespace net | 2648 } // namespace net |
OLD | NEW |