diff options
author | Shigeki Ohtsu <ohtsu@ohtsu.org> | 2017-03-02 23:13:19 +0900 |
---|---|---|
committer | Shigeki Ohtsu <ohtsu@ohtsu.org> | 2017-03-03 14:08:42 +0900 |
commit | 02c98f480c57c02d1db3d679e8b601695f20a4ef (patch) | |
tree | 680390991b72c81475487cf5e877960b9583f15d | |
parent | 4e05952a8a75af6df625415db612d3a9a1322682 (diff) | |
download | android-node-v8-02c98f480c57c02d1db3d679e8b601695f20a4ef.tar.gz android-node-v8-02c98f480c57c02d1db3d679e8b601695f20a4ef.tar.bz2 android-node-v8-02c98f480c57c02d1db3d679e8b601695f20a4ef.zip |
tls: fix macro to check NPN feature
In order to check if NPN feature is enabled, use
`#ifndef OPENSSL_NO_NEXTPROTONEG` rather than
`#ifdef OPENSSL_NPN_NEGOTIATED` because the former is used in ssl.h.
Fixes: https://github.com/nodejs/node/issues/11650
PR-URL: https://github.com/nodejs/node/pull/11655
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
-rw-r--r-- | src/node.cc | 2 | ||||
-rw-r--r-- | src/node_constants.cc | 2 | ||||
-rw-r--r-- | src/node_crypto.cc | 16 | ||||
-rw-r--r-- | src/node_crypto.h | 6 |
4 files changed, 13 insertions, 13 deletions
diff --git a/src/node.cc b/src/node.cc index ec78339d89..525f28c114 100644 --- a/src/node.cc +++ b/src/node.cc @@ -2913,7 +2913,7 @@ static Local<Object> GetFeatures(Environment* env) { // TODO(bnoordhuis) ping libuv obj->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "ipv6"), True(env->isolate())); -#ifdef OPENSSL_NPN_NEGOTIATED +#ifndef OPENSSL_NO_NEXTPROTONEG Local<Boolean> tls_npn = True(env->isolate()); #else Local<Boolean> tls_npn = False(env->isolate()); diff --git a/src/node_constants.cc b/src/node_constants.cc index 8aa65ee7e2..a7c2d89906 100644 --- a/src/node_constants.cc +++ b/src/node_constants.cc @@ -942,7 +942,7 @@ void DefineOpenSSLConstants(Local<Object> target) { NODE_DEFINE_CONSTANT(target, DH_NOT_SUITABLE_GENERATOR); #endif -#ifdef OPENSSL_NPN_NEGOTIATED +#ifndef OPENSSL_NO_NEXTPROTONEG #define NPN_ENABLED 1 NODE_DEFINE_CONSTANT(target, NPN_ENABLED); #endif diff --git a/src/node_crypto.cc b/src/node_crypto.cc index e2a83a548a..f959f0a33c 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -147,7 +147,7 @@ template void SSLWrap<TLSWrap>::OnClientHello( void* arg, const ClientHelloParser::ClientHello& hello); -#ifdef OPENSSL_NPN_NEGOTIATED +#ifndef OPENSSL_NO_NEXTPROTONEG template int SSLWrap<TLSWrap>::AdvertiseNextProtoCallback( SSL* s, const unsigned char** data, @@ -1314,11 +1314,11 @@ void SSLWrap<Base>::AddMethods(Environment* env, Local<FunctionTemplate> t) { env->SetProtoMethod(t, "setMaxSendFragment", SetMaxSendFragment); #endif // SSL_set_max_send_fragment -#ifdef OPENSSL_NPN_NEGOTIATED +#ifndef OPENSSL_NO_NEXTPROTONEG env->SetProtoMethod(t, "getNegotiatedProtocol", GetNegotiatedProto); -#endif // OPENSSL_NPN_NEGOTIATED +#endif // OPENSSL_NO_NEXTPROTONEG -#ifdef OPENSSL_NPN_NEGOTIATED +#ifndef OPENSSL_NO_NEXTPROTONEG env->SetProtoMethod(t, "setNPNProtocols", SetNPNProtocols); #endif @@ -1338,7 +1338,7 @@ void SSLWrap<Base>::AddMethods(Environment* env, Local<FunctionTemplate> t) { template <class Base> void SSLWrap<Base>::InitNPN(SecureContext* sc) { -#ifdef OPENSSL_NPN_NEGOTIATED +#ifndef OPENSSL_NO_NEXTPROTONEG // Server should advertise NPN protocols SSL_CTX_set_next_protos_advertised_cb(sc->ctx_, AdvertiseNextProtoCallback, @@ -1346,7 +1346,7 @@ void SSLWrap<Base>::InitNPN(SecureContext* sc) { // Client should select protocol from list of advertised // If server supports NPN SSL_CTX_set_next_proto_select_cb(sc->ctx_, SelectNextProtoCallback, nullptr); -#endif // OPENSSL_NPN_NEGOTIATED +#endif // OPENSSL_NO_NEXTPROTONEG #ifdef NODE__HAVE_TLSEXT_STATUS_CB // OCSP stapling @@ -2091,7 +2091,7 @@ void SSLWrap<Base>::GetProtocol(const FunctionCallbackInfo<Value>& args) { } -#ifdef OPENSSL_NPN_NEGOTIATED +#ifndef OPENSSL_NO_NEXTPROTONEG template <class Base> int SSLWrap<Base>::AdvertiseNextProtoCallback(SSL* s, const unsigned char** data, @@ -2231,7 +2231,7 @@ void SSLWrap<Base>::SetNPNProtocols(const FunctionCallbackInfo<Value>& args) { env->npn_buffer_private_symbol(), args[0]).FromJust()); } -#endif // OPENSSL_NPN_NEGOTIATED +#endif // OPENSSL_NO_NEXTPROTONEG #ifdef TLSEXT_TYPE_application_layer_protocol_negotiation template <class Base> diff --git a/src/node_crypto.h b/src/node_crypto.h index 175206c40d..38f49ba5a0 100644 --- a/src/node_crypto.h +++ b/src/node_crypto.h @@ -249,7 +249,7 @@ class SSLWrap { const v8::FunctionCallbackInfo<v8::Value>& args); #endif // SSL_set_max_send_fragment -#ifdef OPENSSL_NPN_NEGOTIATED +#ifndef OPENSSL_NO_NEXTPROTONEG static void GetNegotiatedProto( const v8::FunctionCallbackInfo<v8::Value>& args); static void SetNPNProtocols(const v8::FunctionCallbackInfo<v8::Value>& args); @@ -263,7 +263,7 @@ class SSLWrap { const unsigned char* in, unsigned int inlen, void* arg); -#endif // OPENSSL_NPN_NEGOTIATED +#endif // OPENSSL_NO_NEXTPROTONEG static void GetALPNNegotiatedProto( const v8::FunctionCallbackInfo<v8::Value>& args); @@ -328,7 +328,7 @@ class Connection : public AsyncWrap, public SSLWrap<Connection> { static void Initialize(Environment* env, v8::Local<v8::Object> target); void NewSessionDoneCb(); -#ifdef OPENSSL_NPN_NEGOTIATED +#ifndef OPENSSL_NO_NEXTPROTONEG v8::Persistent<v8::Object> npnProtos_; v8::Persistent<v8::Value> selectedNPNProto_; #endif |