Skip to content
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

Enable ALPN tests/features on MAC #45569

Closed
1 task done
Tratcher opened this issue Dec 13, 2022 · 5 comments · Fixed by dotnet/AspNetCore.Docs#28246
Closed
1 task done

Enable ALPN tests/features on MAC #45569

Tratcher opened this issue Dec 13, 2022 · 5 comments · Fixed by dotnet/AspNetCore.Docs#28246
Assignees
Labels
area-grpc Includes: GRPC wire-up, templates area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions HTTP2
Milestone

Comments

@Tratcher
Copy link
Member

Tratcher commented Dec 13, 2022

Is there an existing issue for this?

  • I have searched the existing issues

Is your feature request related to a problem? Please describe the problem.

Describe the solution you'd like

Areas of interest:

  • Kestrel HTTP/2 tests
  • Kestrel Mac specific error messages
  • gRPC tests
  • gRPC template
  • Kestrel docs
  • gRPC docs

Additional context

No response

@JamesNK
Copy link
Member

JamesNK commented Dec 14, 2022

gRPC template?

Yes. There is at least a comment about macOS to remove.

There are also a lot of docs that need to be updated. Let's focus on making sure this technically works first before thinking about them.

@halter73
Copy link
Member

We probably want to remove this check which preemptively stops you from binding to HTTP/2-only TLS endpoint on macOS at application startup. We already have logic in Kestrel's HttpConnection to fail at connection start if h2 isn't negotiate via ALPN on a HTTP/2-only TLS endpoint.

// This configuration will always fail per-request, preemptively fail it here. See HttpConnection.SelectProtocol().
if (httpProtocols == HttpProtocols.Http2)
{
if (OperatingSystem.IsMacOS())
{
throw new NotSupportedException(CoreStrings.Http2NoTlsOsx);
}

@JamesNK suggests it might make sense to ask for something along the lines of a static IsAlpnSupported property on SslStream to support this use case.

@JamesNK
Copy link
Member

JamesNK commented Dec 19, 2022

Consider waiting for dotnet/runtime#79687 before looking at this.

Edit: This API will probably take some time to make it through triage/review/implementation. Rather than block this, I think we could have a pretend internal API, and check that in places we currently check for macOS.

@adityamandaleeka
Copy link
Member

@JamesNK Is this issue at this point just to track using the new proposed runtime API? Should it be remilestoned?

@JamesNK
Copy link
Member

JamesNK commented Jan 19, 2023

Updating docs for .NET 8 can happen in preview 1.

@JamesNK JamesNK self-assigned this Jan 28, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Mar 2, 2023
@amcasey amcasey added area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions and removed area-runtime labels Jun 2, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-grpc Includes: GRPC wire-up, templates area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions HTTP2
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants