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 #include "net/socket/ssl_client_socket_mac.h" | 5 #include "net/socket/ssl_client_socket_mac.h" |
6 | 6 |
7 #include <CoreServices/CoreServices.h> | 7 #include <CoreServices/CoreServices.h> |
8 #include <netdb.h> | 8 #include <netdb.h> |
9 #include <sys/socket.h> | 9 #include <sys/socket.h> |
10 #include <sys/types.h> | 10 #include <sys/types.h> |
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 std::vector<SecCertificateRef> intermediate_ca_certs; | 425 std::vector<SecCertificateRef> intermediate_ca_certs; |
426 CFIndex certs_length = CFArrayGetCount(certs); | 426 CFIndex certs_length = CFArrayGetCount(certs); |
427 for (CFIndex i = 1; i < certs_length; ++i) { | 427 for (CFIndex i = 1; i < certs_length; ++i) { |
428 SecCertificateRef cert_ref = reinterpret_cast<SecCertificateRef>( | 428 SecCertificateRef cert_ref = reinterpret_cast<SecCertificateRef>( |
429 const_cast<void*>(CFArrayGetValueAtIndex(certs, i))); | 429 const_cast<void*>(CFArrayGetValueAtIndex(certs, i))); |
430 intermediate_ca_certs.push_back(cert_ref); | 430 intermediate_ca_certs.push_back(cert_ref); |
431 } | 431 } |
432 | 432 |
433 SecCertificateRef server_cert = static_cast<SecCertificateRef>( | 433 SecCertificateRef server_cert = static_cast<SecCertificateRef>( |
434 const_cast<void*>(CFArrayGetValueAtIndex(certs, 0))); | 434 const_cast<void*>(CFArrayGetValueAtIndex(certs, 0))); |
435 CFRetain(server_cert); | |
436 return X509Certificate::CreateFromHandle( | 435 return X509Certificate::CreateFromHandle( |
437 server_cert, X509Certificate::SOURCE_FROM_NETWORK, intermediate_ca_certs); | 436 server_cert, X509Certificate::SOURCE_FROM_NETWORK, intermediate_ca_certs); |
438 } | 437 } |
439 | 438 |
440 // Dynamically look up a pointer to a function exported by a bundle. | 439 // Dynamically look up a pointer to a function exported by a bundle. |
441 template <typename FNTYPE> | 440 template <typename FNTYPE> |
442 FNTYPE LookupFunction(CFStringRef bundleName, CFStringRef fnName) { | 441 FNTYPE LookupFunction(CFStringRef bundleName, CFStringRef fnName) { |
443 CFBundleRef bundle = CFBundleGetBundleWithIdentifier(bundleName); | 442 CFBundleRef bundle = CFBundleGetBundleWithIdentifier(bundleName); |
444 if (!bundle) | 443 if (!bundle) |
445 return NULL; | 444 return NULL; |
(...skipping 847 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1293 if (rv < 0 && rv != ERR_IO_PENDING) { | 1292 if (rv < 0 && rv != ERR_IO_PENDING) { |
1294 us->write_io_buf_ = NULL; | 1293 us->write_io_buf_ = NULL; |
1295 return OSStatusFromNetError(rv); | 1294 return OSStatusFromNetError(rv); |
1296 } | 1295 } |
1297 | 1296 |
1298 // always lie to our caller | 1297 // always lie to our caller |
1299 return noErr; | 1298 return noErr; |
1300 } | 1299 } |
1301 | 1300 |
1302 } // namespace net | 1301 } // namespace net |
OLD | NEW |