From 15410797f246acb9e2605e78b97b2757db30c5c3 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Thu, 11 May 2017 08:27:56 +0200 Subject: [PATCH] src: add HAVE_OPENSSL guard to crypto providers When configured --without-ssl node_crypto.h will not be included but async-wrap.h includes providers that are defined in node_crypto.h, node_crypto.cc, and tls_wrap.cc: AsyncWrap::PROVIDER_CONNECTION AsyncWrap::PROVIDER_PBKDF2REQUEST AsyncWrap::PROVIDER_RANDOMBYTESREQUEST AsyncWrap::PROVIDER_TLSWRAP These will be included as providers which will cause test-async-wrap-getasyncid.js to fail. This commit suggest adding a guard and exclude the providers that are not available when configured --without-ssl PR-URL: https://github.com/nodejs/node/pull/12967 Reviewed-By: Gibson Fahnestock Reviewed-By: Anna Henningsen Reviewed-By: Sam Roberts Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- src/async-wrap.h | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/async-wrap.h b/src/async-wrap.h index 8a93e838786..50d4f626ede 100644 --- a/src/async-wrap.h +++ b/src/async-wrap.h @@ -34,34 +34,44 @@ namespace node { #define NODE_ASYNC_ID_OFFSET 0xA1C -#define NODE_ASYNC_PROVIDER_TYPES(V) \ +#define NODE_ASYNC_NON_CRYPTO_PROVIDER_TYPES(V) \ V(NONE) \ - V(CONNECTION) \ V(FSEVENTWRAP) \ V(FSREQWRAP) \ V(GETADDRINFOREQWRAP) \ V(GETNAMEINFOREQWRAP) \ V(HTTPPARSER) \ V(JSSTREAM) \ - V(PBKDF2REQUEST) \ V(PIPECONNECTWRAP) \ V(PIPEWRAP) \ V(PROCESSWRAP) \ V(QUERYWRAP) \ - V(RANDOMBYTESREQUEST) \ V(SHUTDOWNWRAP) \ V(SIGNALWRAP) \ V(STATWATCHER) \ V(TCPCONNECTWRAP) \ V(TCPWRAP) \ V(TIMERWRAP) \ - V(TLSWRAP) \ V(TTYWRAP) \ V(UDPSENDWRAP) \ V(UDPWRAP) \ V(WRITEWRAP) \ V(ZLIB) +#if HAVE_OPENSSL +#define NODE_ASYNC_CRYPTO_PROVIDER_TYPES(V) \ + V(CONNECTION) \ + V(PBKDF2REQUEST) \ + V(RANDOMBYTESREQUEST) \ + V(TLSWRAP) +#else +#define NODE_ASYNC_CRYPTO_PROVIDER_TYPES(V) +#endif // HAVE_OPENSSL + +#define NODE_ASYNC_PROVIDER_TYPES(V) \ + NODE_ASYNC_NON_CRYPTO_PROVIDER_TYPES(V) \ + NODE_ASYNC_CRYPTO_PROVIDER_TYPES(V) + class Environment; class AsyncWrap : public BaseObject {