-
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
Feature-detect "use regular streams as an underlying socket for tls.connect()" #981
Comments
Not sure about the state it leaves the SSL context in, but something like: var supportswrappedjsstreams = (function(){
var s = require("stream").Duplex(); s._read = s._write = Function();
require('tls').connect({socket: s});
return require('events').listenerCount('error', s) > 0;
}); should work since TLS/streamwrap will always have to install error handlers. |
Ah, yes, that does seem to work, even to weed out Node.js stuff. Thanks! |
Oops, I may have closed that too early, because I only tested the pre-1.4.1 versions; it actually seems to have 0 listeners, even on 1.4.1:
|
Ah, whoops: it should be |
Interesting question! Why not just check the |
Checking |
@mathiasbynens the proposed check is much more brittle than version checking. We have semver, so this thing can't go away until |
@dougwilson I think the check works now – ok to close? |
The only working check that was provided here was to sniff the version and at the same time, I'm told in this thread not to sniff the version. I need clarification still: should I start version sniffing io.js features or can someone come up with a non-version-sniffing solution to this? |
@dougwilson Did you see my message about the order of |
Oops, I missed it's specifics. Let me test that real quick. I'll either close this or provide an update today. |
@chrisdickinson I'm very sorry for the delay. This does not seem to work:
The value seems to be different in various versions and doing the |
I don't see an issue with version sniffing as long as you are conservative with major versions. Semver is for machines. @dougwilson would you like to keep this open? |
No, we can close it, because I just ended up ignoring io.js the entire time until the merge, so never ended up taking advantage of the feature since |
Hi, I'm looking for a good solution to be able to detect if this feature exists in the runtime my module is running on so I can throw if it's not supported. It was suggested on IRC to make an issue here.
I originally thought perhaps if I just construct a duplex stream and pass it into
tls.connect
, but it doesn't seem to throw an error on pre-1.4.1 versions. Suggestions?The text was updated successfully, but these errors were encountered: