diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-11 15:20:12 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-11 15:20:12 +0000 |
commit | a121c90cf3279e6001d0f91472b74b02699e2976 (patch) | |
tree | 691ab98c9033861131d1f2efe3343b93bc53f611 /net/third_party/nss/ssl/sslinfo.c | |
parent | c5b97aac8117ffac51a2cf3cc7a1070ab5ff6e93 (diff) | |
download | chromium_src-a121c90cf3279e6001d0f91472b74b02699e2976.zip chromium_src-a121c90cf3279e6001d0f91472b74b02699e2976.tar.gz chromium_src-a121c90cf3279e6001d0f91472b74b02699e2976.tar.bz2 |
Update our copy of libssl from NSS CVS.
http://codereview.chromium.org/596013
BUG=none
TEST=none
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38773 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/third_party/nss/ssl/sslinfo.c')
-rw-r--r-- | net/third_party/nss/ssl/sslinfo.c | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/net/third_party/nss/ssl/sslinfo.c b/net/third_party/nss/ssl/sslinfo.c index baa1ab3..e4ee35f 100644 --- a/net/third_party/nss/ssl/sslinfo.c +++ b/net/third_party/nss/ssl/sslinfo.c @@ -34,7 +34,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -/* $Id: sslinfo.c,v 1.21 2009/11/09 22:00:18 wtc%google.com Exp $ */ +/* $Id: sslinfo.c,v 1.23 2010/01/15 01:49:33 alexei.volkov.bugs%sun.com Exp $ */ #include "ssl.h" #include "sslimpl.h" #include "sslproto.h" @@ -307,3 +307,43 @@ SSL_IsExportCipherSuite(PRUint16 cipherSuite) } return PR_FALSE; } + +SECItem* +SSL_GetNegotiatedHostInfo(PRFileDesc *fd) +{ + SECItem *sniName = NULL; + sslSocket *ss; + char *name = NULL; + + ss = ssl_FindSocket(fd); + if (!ss) { + SSL_DBG(("%d: SSL[%d]: bad socket in SSL_GetNegotiatedHostInfo", + SSL_GETPID(), fd)); + return NULL; + } + + if (ss->sec.isServer) { + if (ss->version > SSL_LIBRARY_VERSION_3_0 && + ss->ssl3.initialized) { /* TLS */ + SECItem *crsName; + ssl_GetSpecReadLock(ss); /*********************************/ + crsName = &ss->ssl3.crSpec->srvVirtName; + if (crsName->data) { + sniName = SECITEM_DupItem(crsName); + } + ssl_ReleaseSpecReadLock(ss); /*----------------------------*/ + } + return sniName; + } + name = SSL_RevealURL(fd); + if (name) { + sniName = PORT_ZNew(SECItem); + if (!sniName) { + PORT_Free(name); + return NULL; + } + sniName->data = (void*)name; + sniName->len = PORT_Strlen(name); + } + return sniName; +} |