diff options
author | Mark S. Everitt <mark.s.everitt@gmail.com> | 2017-10-31 20:03:28 +0000 |
---|---|---|
committer | Anatoli Papirovski <apapirovski@mac.com> | 2017-11-04 11:36:16 -0400 |
commit | 291ff72f859df3c4c3849021419f37cd542840a6 (patch) | |
tree | f5055e509fac0b3b6b1adf363ac3bebf4d0252a4 /lib | |
parent | 7eb5ee3ca8afdb3ca22d329195ae1f9dc4313081 (diff) | |
download | android-node-v8-291ff72f859df3c4c3849021419f37cd542840a6.tar.gz android-node-v8-291ff72f859df3c4c3849021419f37cd542840a6.tar.bz2 android-node-v8-291ff72f859df3c4c3849021419f37cd542840a6.zip |
tls: accept array of protocols in TLSSocket
Brings the ALPNProtocols & NPNProtocols options of TLSSocket in line
with the documentation. i.e. an array of strings for protocols may be
used, not only a buffer.
PR-URL: https://github.com/nodejs/node/pull/16655
Fixes: https://github.com/node/issues/16643
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/_tls_wrap.js | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/lib/_tls_wrap.js b/lib/_tls_wrap.js index d7e349b239..1bd76a7f97 100644 --- a/lib/_tls_wrap.js +++ b/lib/_tls_wrap.js @@ -280,11 +280,15 @@ function initRead(tls, wrapped) { * Provides a wrap of socket stream to do encrypted communication. */ -function TLSSocket(socket, options) { - if (options === undefined) - this._tlsOptions = {}; - else - this._tlsOptions = options; +function TLSSocket(socket, opts) { + const tlsOptions = Object.assign({}, opts); + + if (tlsOptions.NPNProtocols) + tls.convertNPNProtocols(tlsOptions.NPNProtocols, tlsOptions); + if (tlsOptions.ALPNProtocols) + tls.convertALPNProtocols(tlsOptions.ALPNProtocols, tlsOptions); + + this._tlsOptions = tlsOptions; this._secureEstablished = false; this._securePending = false; this._newSessionPending = false; @@ -1099,11 +1103,7 @@ exports.connect = function(...args /* [port,] [host,] [options,] [cb] */) { 'options.minDHSize is not a positive number: ' + options.minDHSize); - const NPN = {}; - const ALPN = {}; const context = options.secureContext || tls.createSecureContext(options); - tls.convertNPNProtocols(options.NPNProtocols, NPN); - tls.convertALPNProtocols(options.ALPNProtocols, ALPN); var socket = new TLSSocket(options.socket, { pipe: !!options.path, @@ -1112,8 +1112,8 @@ exports.connect = function(...args /* [port,] [host,] [options,] [cb] */) { requestCert: true, rejectUnauthorized: options.rejectUnauthorized !== false, session: options.session, - NPNProtocols: NPN.NPNProtocols, - ALPNProtocols: ALPN.ALPNProtocols, + NPNProtocols: options.NPNProtocols, + ALPNProtocols: options.ALPNProtocols, requestOCSP: options.requestOCSP }); |