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

Side by Side Diff: net/socket/ssl_client_socket_nss.cc

Issue 1589001: memio_SetPeerName implicitly assumes that struct sockaddr is the same as... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 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
« no previous file with comments | « net/base/nss_memio.c ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2009 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 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 nss_fd_ = memio_CreateIOLayer(kRecvBufferSize); 312 nss_fd_ = memio_CreateIOLayer(kRecvBufferSize);
313 if (nss_fd_ == NULL) { 313 if (nss_fd_ == NULL) {
314 return ERR_OUT_OF_MEMORY; // TODO(port): map NSPR error code. 314 return ERR_OUT_OF_MEMORY; // TODO(port): map NSPR error code.
315 } 315 }
316 316
317 // Tell NSS who we're connected to 317 // Tell NSS who we're connected to
318 AddressList peer_address; 318 AddressList peer_address;
319 int err = transport_->GetPeerAddress(&peer_address); 319 int err = transport_->GetPeerAddress(&peer_address);
320 if (err != OK) 320 if (err != OK)
321 return err; 321 return err;
322
322 const struct addrinfo* ai = peer_address.head(); 323 const struct addrinfo* ai = peer_address.head();
323 memio_SetPeerName(nss_fd_, ai->ai_addr, ai->ai_addrlen); 324
325 PRNetAddr peername;
326 memset(&peername, 0, sizeof(peername));
327 DCHECK_LE(ai->ai_addrlen, sizeof(peername));
328 size_t len = std::min(static_cast<size_t>(ai->ai_addrlen), sizeof(peername));
329 memcpy(&peername, ai->ai_addr, len);
330
331 // Adjust the address family field for BSD, whose sockaddr
332 // structure has a one-byte length and one-byte address family
333 // field at the beginning. PRNetAddr has a two-byte address
334 // family field at the beginning.
335 peername.raw.family = ai->ai_addr->sa_family;
336
337 memio_SetPeerName(nss_fd_, &peername);
324 338
325 // Grab pointer to buffers 339 // Grab pointer to buffers
326 nss_bufs_ = memio_GetSecret(nss_fd_); 340 nss_bufs_ = memio_GetSecret(nss_fd_);
327 341
328 /* Create SSL state machine */ 342 /* Create SSL state machine */
329 /* Push SSL onto our fake I/O socket */ 343 /* Push SSL onto our fake I/O socket */
330 nss_fd_ = SSL_ImportFD(NULL, nss_fd_); 344 nss_fd_ = SSL_ImportFD(NULL, nss_fd_);
331 if (nss_fd_ == NULL) { 345 if (nss_fd_ == NULL) {
332 return ERR_OUT_OF_MEMORY; // TODO(port): map NSPR/NSS error code. 346 return ERR_OUT_OF_MEMORY; // TODO(port): map NSPR/NSS error code.
333 } 347 }
(...skipping 1074 matching lines...) Expand 10 before | Expand all | Expand 10 after
1408 } 1422 }
1409 PRErrorCode prerr = PR_GetError(); 1423 PRErrorCode prerr = PR_GetError();
1410 if (prerr == PR_WOULD_BLOCK_ERROR) { 1424 if (prerr == PR_WOULD_BLOCK_ERROR) {
1411 return ERR_IO_PENDING; 1425 return ERR_IO_PENDING;
1412 } 1426 }
1413 LeaveFunction(""); 1427 LeaveFunction("");
1414 return MapNSPRError(prerr); 1428 return MapNSPRError(prerr);
1415 } 1429 }
1416 1430
1417 } // namespace net 1431 } // namespace net
OLDNEW
« no previous file with comments | « net/base/nss_memio.c ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698