-
Notifications
You must be signed in to change notification settings - Fork 29.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Missing exports : TLSv1_2_client_method, TLSv1_2_server_method #20369
Comments
Just for clarity: What you are saying is that these symbols are not available to addons on Windows when they should be? |
They previously were available, so addons can link to and use the same version of OpenSSL as node. Edit: very annoying to workaround; the code that links against most of OpenSSL doesn't itself know about node.h (node_version.h) and it's not an issue with OpenSSL itself; that and I no longer get to control 'only 1.2' instead of 'best available' Edit2: Node-gyp doesn't seem to have/get the node version to pass to projects; I can get that with cmake-js but was trying to support both (for those that don't have cmake for some odd reason). So I can't even pass it a define when compiling to specify the NODE_MAJOR_VERSION. |
Should be easy to fix. @d3x0r Does this patch work for you? diff --git a/node.gyp b/node.gyp
index ba65eafee9..694c3e86d6 100644
--- a/node.gyp
+++ b/node.gyp
@@ -594,7 +594,7 @@
# Categories to export.
'-CAES,BF,BIO,DES,DH,DSA,EC,ECDH,ECDSA,ENGINE,EVP,HMAC,MD4,MD5,'
'PSK,RC2,RC4,RSA,SHA,SHA0,SHA1,SHA256,SHA512,SOCK,STDIO,TLSEXT,'
- 'FP_API',
+ 'FP_API,TLS1_2_METHOD',
# Defines.
'-DWIN32',
# Symbols to filter from the export list. |
@d3x0r Any luck with that patch? |
Applied to version tagged 10.0.0
even cleaned everything from old builds so it would build clean... but no joy; I don't know. if you can get a node 10.0.0 to build; the node.lib should contain
should be able to be found in clear text |
That's after V10.0.0 tag. SHA-1: cf41627
I guess it's not that long ago; I can just build against head... |
@d3x0r Yes, might even be the case that that fixes the problem for you then. 😄 The patch completely changed the mechanism of the copy operation that’s failing there, so I just thought it would be related to that |
Yes that change restores the two missing methods that I know of :) (clicked wrong button close and commented) |
Upstream deprecated them and moved them into categories of their own. Add those categories to the export list. Node.js doesn't use them but some add-ons do. Fixes: nodejs#20369 PR-URL: nodejs#20712 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Tobias Nie�en <tniessen@tnie.de>
Upstream deprecated them and moved them into categories of their own. Add those categories to the export list. Node.js doesn't use them but some add-ons do. Fixes: #20369 PR-URL: #20712 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Tobias Nie�en <tniessen@tnie.de>
|
I can look into the export defs, but how do I reproduce this? I'm not seeing a difference between 6 and 11, am I using
|
Hmm On windows.... node.lib __imp_DTLS_server_method |
Ah, sorry, I've no idea how to fix that on Windows. Perhaps @refack does? |
Can this be reopened? |
Hello @d3x0r, |
|
#20369 (comment) |
Thanks! This will surely help. I hope to get to it tomorrow. |
So the problem is that the node/deps/openssl/openssl/util/libssl.num Line 157 in 49b0f7f
PR - #24329 |
Opened #25991. |
Methods such as `TLSv1_server_method` are categorized as `DEPRECATEDIN_1_1_0`. Add the deprecated categories to the list of categories to include passed to `mkssldef.py`. Adds a regression test to `test/addons/openssl-binding`. Refs: nodejs#20369 Refs: nodejs#25981
Methods such as `TLSv1_server_method` are categorized as `DEPRECATEDIN_1_1_0`. Add the deprecated categories to the list of categories to include passed to `mkssldef.py`. Adds a regression test to `test/addons/openssl-binding`. PR-URL: #25991 Refs: #20369 Refs: #25981 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Methods such as `TLSv1_server_method` are categorized as `DEPRECATEDIN_1_1_0`. Add the deprecated categories to the list of categories to include passed to `mkssldef.py`. Adds a regression test to `test/addons/openssl-binding`. PR-URL: #25991 Refs: #20369 Refs: #25981 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Fixed by fcaeb1f. Released in Node.js 11.10.0 (d5d163d8b9). |
Version: 10.0.0
Platform: Win32-x64
Subsystem:
TLSv1_2_client_method and TLSv1_2_server_method are not exported.
there is TLS_client_method() and TLS_server_method(); but then node versions previous to 10 don't export that, but instead export the previous methods.
As a workaround - going to investigate a node version definition to #ifdef the code.
The text was updated successfully, but these errors were encountered: