-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Sync shared code with aspnetcore for HTTP/3 #32779
Conversation
What is @Tratcher's concern? I would prefer to just fix it rather than remove. |
Cory |
Without this check, what's the error you get from any earlier version of Windows? Does it just fail on the next |
Indeed, I'd rather fix that than get rid of it. @jkotas's suggestion is exactly what I had in mind and I bet there's some P/invoke signature for that somewhere in corefx already that we can use.
No, and that's the problem. msquic fails with unspecified error codes at unspecified points (whenever it tries to use TLS for the first time, who knows when that is... probably when it connects) when platform support is not there, and the error codes are different depending on the platform it targets. Not very useful behavior from a library. We know TLS 1.3 is required, and so we can check for TLS 1.3 availability (I'm sitting on a patch to do that), but it also requires additional APIs beyond just basic TLS 1.3 support, so we can't leave it there. My goal is to fast-fail with a useful messages for users, and I'm hoping msquic is enhanced in the future so we can remove the check all together. |
As long as the fail-fast is accurate. |
RuntimeInformation.OSDescription: Line 22 in e1441aa
wraps a (wrapper to a) P/Invoke to it: runtime/src/libraries/Common/src/Interop/Windows/NtDll/Interop.RtlGetVersion.cs Lines 11 to 12 in 4f9ae42
|
Can we merge this as is to get the shared source back in sync and address #32575 separately? |
A few things:
|
I'm with @Tratcher here, I'd rather unblock Kestrel from using msquic in general (stub or tls) and figure out a better fix in a follow up PR. |
I don't think this is a scenario we should support. It is no longer "QUIC" in that case, and so QUIC is indeed "not supported".
How so? |
@scalablecory / @Tratcher I removed the OS check for IsQuicSupport for now; I was hitting issues where the version in aspnetcore didn't match the version in runtime. @Tratcher also had pushback on this check in general. We can discuss what we'd like to do here.