Chromium Code Reviews| Index: net/socket/ssl_client_socket_nss.cc |
| diff --git a/net/socket/ssl_client_socket_nss.cc b/net/socket/ssl_client_socket_nss.cc |
| index 23c1d151d8ae1b2f50e57605698b429b84fd09c8..997270bd89cadd9e203d41072ed7983a79ac6eca 100644 |
| --- a/net/socket/ssl_client_socket_nss.cc |
| +++ b/net/socket/ssl_client_socket_nss.cc |
| @@ -94,7 +94,6 @@ |
| #include "net/base/ssl_cert_request_info.h" |
| #include "net/base/ssl_connection_status_flags.h" |
| #include "net/base/ssl_info.h" |
| -#include "net/base/sys_addrinfo.h" |
| #include "net/base/x509_certificate_net_log_param.h" |
| #include "net/ocsp/nss_ocsp.h" |
| #include "net/socket/client_socket_handle.h" |
| @@ -1023,20 +1022,22 @@ int SSLClientSocketNSS::InitializeSSLPeerName() { |
| if (err != OK) |
| return err; |
| - const struct addrinfo* ai = peer_address.head(); |
| + SockaddrStorage storage; |
| + if (!peer_address[0].ToSockAddr(storage.addr, &storage.addr_len)) |
|
eroman
2012/05/04 01:08:41
nit: [0] vs .front().
|
| + return ERR_UNEXPECTED; |
| PRNetAddr peername; |
| memset(&peername, 0, sizeof(peername)); |
| - DCHECK_LE(ai->ai_addrlen, sizeof(peername)); |
| - size_t len = std::min(static_cast<size_t>(ai->ai_addrlen), |
| + DCHECK_LE(static_cast<size_t>(storage.addr_len), sizeof(peername)); |
| + size_t len = std::min(static_cast<size_t>(storage.addr_len), |
| sizeof(peername)); |
| - memcpy(&peername, ai->ai_addr, len); |
| + memcpy(&peername, storage.addr, len); |
| // Adjust the address family field for BSD, whose sockaddr |
| // structure has a one-byte length and one-byte address family |
| // field at the beginning. PRNetAddr has a two-byte address |
| // family field at the beginning. |
| - peername.raw.family = ai->ai_addr->sa_family; |
| + peername.raw.family = storage.addr->sa_family; |
| memio_SetPeerName(nss_fd_, &peername); |