-
Notifications
You must be signed in to change notification settings - Fork 286
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
Simplify SNIProxy #934
Simplify SNIProxy #934
Conversation
@cheenamalhotra @David-Engel this has been open 3 months now. It's trivial and passed all tests when it was opened. |
Hi @Wraith2 We'll be adding this and many more PRs to the next release cycle preview milestone after planning happens, as at this point driver code is under security testing and preparation for GA 3.0 and only already planned changes are considered right now. In a week or two, you can expect activities resuming on PRs. |
@Wraith2 can you address the conflict please? |
Done, if it hadn't been left so long there wouldn't have been conflicts to deal with. |
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.
I couldn't find any usage for SspiClientContextResult
, I believe it can be removed.
CC @cheenamalhotra
src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SNI/SNIProxy.cs
Outdated
Show resolved
Hide resolved
...Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/TdsParserStateObjectManaged.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SNI/SNIProxy.cs
Show resolved
Hide resolved
I think this would have been added before NegotiateStreamPal was added and it stayed as is.. I don't see any use of this class either. |
|
...Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/TdsParserStateObjectManaged.cs
Show resolved
Hide resolved
Some build failures: |
Fixed and CI is green. |
yay! |
SniProxy is used as a single instance and called like this:
This involves calling the GetInstance() method to get the single instance and then calling a function on that instance which only uses the parameters that are passed in. In these cases the functions could be static or merged into the callsite if there is only one use of the function.
The only thing that can't be removed from this single instance pattern is the GetLastError functions. I've investigated what it would take to remove it and it's very very complicated and involves significant changes to the StateObject interface between shared and platform implementations. I choose not to do that now.