-
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
[QUIC] API QuicConnection #71783
[QUIC] API QuicConnection #71783
Conversation
Note regarding the This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change. |
Tagging subscribers to this area: @dotnet/ncl |
88ad8f3
to
e02c32c
Compare
189b9f5
to
b480845
Compare
This is fairly stable now, ready for review. Still letting it in draft due to unapproved API. Also note that stream will be soon in PR as well. |
src/libraries/System.Net.Quic/src/System/Net/Quic/QuicConnection.cs
Outdated
Show resolved
Hide resolved
|
||
internal static unsafe QuicAddr ToQuicAddr(this IPEndPoint iPEndPoint) | ||
{ | ||
// TODO: is the layout same for SocketAddress.Buffer and QuicAddr on all platforms? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it should AFAIK. It would be nice to have some assert about it. It differs among platforms but MsQUIC now uses native layout e.g. same as SocketAddress.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
authenticationOptions.ClientCertificates ?? new X509CertificateCollection(), | ||
null, | ||
Array.Empty<string>()); | ||
if (selectedCertificate.HasPrivateKey()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be nice to throw or at least log. I know this is what we we in SslStream for historical reasons but the failures when we silently ignore given certificate are annoying IMHO.
(this could be separate work)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is update based on the last version of API from #68902 (comment)
@CarnaViire @wfurt @rzikm please give it look |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, modulo comments.
src/libraries/System.Net.Quic/src/System/Net/Quic/QuicConnection.cs
Outdated
Show resolved
Hide resolved
src/libraries/System.Net.Quic/src/System/Net/Quic/QuicConnectionOptions.cs
Outdated
Show resolved
Hide resolved
src/libraries/System.Net.Quic/src/System/Net/Quic/QuicConnectionOptions.cs
Outdated
Show resolved
Hide resolved
src/libraries/System.Net.Quic/src/System/Net/Quic/QuicDefaults.cs
Outdated
Show resolved
Hide resolved
Failure is #71890, it's been closed in the meantime. |
/backport to release/7.0-preview7 |
Started backporting to release/7.0-preview7: https://github.com/dotnet/runtime/actions/runs/2664595774 |
@ManickaP backporting to release/7.0-preview7 failed, the patch most likely resulted in conflicts: $ git am --3way --ignore-whitespace --keep-non-patch changes.patch
Applying: Listener comment; PreviewFeature attribute
Applying: Feedback
Applying: QuicConnection new API including compilable implementation
error: sha1 information is lacking or useless (src/libraries/System.Net.Quic/src/System/Net/Quic/QuicListener.cs).
error: could not build fake ancestor
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0003 QuicConnection new API including compilable implementation
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
Error: The process '/usr/bin/git' failed with exit code 128 Please backport manually! |
* Listener comment; PreviewFeature attribute * Feedback * QuicConnection new API including compilable implementation * Fixed logging * Fixed S.N.Quic and S.N.Http tests * Options now correspond to the issue * Feedback * Comments, PreviewFeature attribute and RemoteCertificate disposal. * Preview feature attribute is assembly wide * Some typos * Fixed test with certificate * Default values as constants * Event handlers split into methods called via switch expression. * Some more comments * Unified unsafe usage * Fixed some more tests * Cleaned up some exceptions and resource strings. * Feedback * Latest greatest API proposal. * Fixed Http solution * Feedback
@JamesNK this will need your reaction as well. Note that the options classes were changed in the last API review and we removed the |
…72031) (#72106) * [QUIC] API QuicConnection (#71783) * Listener comment; PreviewFeature attribute * Feedback * QuicConnection new API including compilable implementation * Fixed logging * Fixed S.N.Quic and S.N.Http tests * Options now correspond to the issue * Feedback * Comments, PreviewFeature attribute and RemoteCertificate disposal. * Preview feature attribute is assembly wide * Some typos * Fixed test with certificate * Default values as constants * Event handlers split into methods called via switch expression. * Some more comments * Unified unsafe usage * Fixed some more tests * Cleaned up some exceptions and resource strings. * Feedback * Latest greatest API proposal. * Fixed Http solution * Feedback * [QUIC] API QuicStream (#71969) * Quic stream API surface * Fixed test compilation * Fixed http test compilation * HttpLoopbackConnection Dispose -> DisposeAsync * QuicStream implementation * Fixed some tests * Fixed all QUIC and HTTP tests * Fixed exception type for stream closed by connection close * Feedback * Fixed WebSocket.Client test build * Feedback, test fixes * Fixed build on framework and windows * Fixed winhandler test * Swap variable based on order in defining class * Post merge fixes * Feedback and build * Reverted connection state to pass around abort error code * Fixed exception type. * [QUIC] System.Net.Quic API made public (#72031) * System.Net.Quic removed from ASP transport package and made part of SDK ref * Removed manual references to System.Net.Quic.csproj
Fixes #68902
Contributes to #69675
This PR is based on #71579 so it shows more changes that it actually contains.