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

Unified Diff: net/third_party/nss/ssl/sslsock.c

Issue 8156001: net: rework the NPN patch. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ... Created 9 years, 2 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 side-by-side diff with in-line comments
Download patch
« net/third_party/nss/ssl/sslimpl.h ('K') | « net/third_party/nss/ssl/sslimpl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/third_party/nss/ssl/sslsock.c
diff --git a/net/third_party/nss/ssl/sslsock.c b/net/third_party/nss/ssl/sslsock.c
index 68fd3cb5ba5529501b86d52b0455ff7d3dc2919b..d1b5216794ddf2c12e5ba27e78d74710cee1fc4b 100644
--- a/net/third_party/nss/ssl/sslsock.c
+++ b/net/third_party/nss/ssl/sslsock.c
@@ -163,7 +163,6 @@ static const sslSocketOps ssl_secure_ops = { /* SSL. */
** default settings for socket enables
*/
static sslOptions ssl_defaults = {
- { siBuffer, NULL, 0 }, /* nextProtoNego */
PR_TRUE, /* useSecurity */
PR_FALSE, /* useSocks */
PR_FALSE, /* requestCertificate */
@@ -446,10 +445,6 @@ ssl_DestroySocketContents(sslSocket *ss)
ssl3_FreeKeyPair(ss->ephemeralECDHKeyPair);
ss->ephemeralECDHKeyPair = NULL;
}
- if (ss->opt.nextProtoNego.data) {
- PORT_Free(ss->opt.nextProtoNego.data);
- ss->opt.nextProtoNego.data = NULL;
- }
PORT_Assert(!ss->xtnData.sniNameArr);
if (ss->xtnData.sniNameArr) {
PORT_Free(ss->xtnData.sniNameArr);
@@ -1310,12 +1305,10 @@ SSL_ImportFD(PRFileDesc *model, PRFileDesc *fd)
return fd;
}
-/* SSL_SetNextProtoNego sets the list of supported protocols for the given
- * socket. The list is a series of 8-bit, length prefixed strings. */
SECStatus
-SSL_SetNextProtoNego(PRFileDesc *fd, const unsigned char *data,
- unsigned short length)
-{
+SSL_SetNextProtoCallback(PRFileDesc *fd,
+ SSLNextProtoCallback callback,
+ void *arg) {
sslSocket *ss = ssl_FindSocket(fd);
if (!ss) {
@@ -1324,59 +1317,10 @@ SSL_SetNextProtoNego(PRFileDesc *fd, const unsigned char *data,
return SECFailure;
}
- if (ssl3_ValidateNextProtoNego(data, length) != SECSuccess)
- return SECFailure;
-
ssl_GetSSL3HandshakeLock(ss);
- if (ss->opt.nextProtoNego.data)
- PORT_Free(ss->opt.nextProtoNego.data);
- ss->opt.nextProtoNego.data = PORT_Alloc(length);
- if (!ss->opt.nextProtoNego.data) {
- ssl_ReleaseSSL3HandshakeLock(ss);
- return SECFailure;
- }
- memcpy(ss->opt.nextProtoNego.data, data, length);
- ss->opt.nextProtoNego.len = length;
- ss->opt.nextProtoNego.type = siBuffer;
+ ss->nextProtoCallback = callback;
+ ss->nextProtoArg = arg;
ssl_ReleaseSSL3HandshakeLock(ss);
-
- return SECSuccess;
-}
-
-/* SSL_GetNextProto reads the resulting Next Protocol Negotiation result for
- * the given socket. It's only valid to call this once the handshake has
- * completed.
- *
- * state is set to one of the SSL_NEXT_PROTO_* constants. The negotiated
- * protocol, if any, is written into buf, which must be at least buf_len
- * bytes long. If the negotiated protocol is longer than this, it is truncated.
- * The number of bytes copied is written into length.
- */
-SECStatus
-SSL_GetNextProto(PRFileDesc *fd, int *state, unsigned char *buf,
- unsigned int *length, unsigned int buf_len)
-{
- sslSocket *ss = ssl_FindSocket(fd);
-
- if (!ss) {
- SSL_DBG(("%d: SSL[%d]: bad socket in SSL_GetNextProto", SSL_GETPID(),
- fd));
- return SECFailure;
- }
-
- *state = ss->ssl3.nextProtoState;
-
- if (ss->ssl3.nextProtoState != SSL_NEXT_PROTO_NO_SUPPORT &&
- ss->ssl3.nextProto.data) {
- *length = ss->ssl3.nextProto.len;
- if (*length > buf_len)
- *length = buf_len;
- PORT_Memcpy(buf, ss->ssl3.nextProto.data, *length);
- } else {
- *length = 0;
- }
-
- return SECSuccess;
}
PRFileDesc *
« net/third_party/nss/ssl/sslimpl.h ('K') | « net/third_party/nss/ssl/sslimpl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698