Improve using Signature to connect socket #147
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Allows to create a signature from an Address object and still have a hostname.
Description
The first commit just adds creation of Socket with an Address using the enums for socketType and protocol
The second one rearranges
func connect(using
so that if an address is in the signature this is used for the connection. It also only converts that address back to a hostname if it wasn't included in the Signature.Previously this would have used the hostname and ignored the address - note this cannot change any existing code because before it wasn't possible to create a Signature with both address and hostname.
I also think its a bit clearly whats going on in the function as before the ordering of checks was complicated with nested ifs and guards.
There are a couple of bonus commits :)
Motivation and Context
The main motivation was that I need to resolve a hostname early on, and use that address to make a connection later and still have TLS work.
How Has This Been Tested?
I have tested and used these changes on both iOS and MacOS
Checklist: