Add support for UNIX sockets#224
Merged
Merged
Conversation
Breaking change. * Implement a new module `connection`, which abstracts `std::net` types into ones that can use `std::os::unix::net` types on Unix platforms. * Change `ServerConfig::addr` to a new, abstracted type and add `http_unix` method. `http` and `https` methods are unchanged and should still work. * `Request::remote_addr` now returns `Option<&SocketAddr>`. This is `Some` for TCP servers and `None` for UNIX servers (since UNIX remote sockets are almost always unnamed).
bradfier
approved these changes
Apr 2, 2022
bradfier
left a comment
Member
There was a problem hiding this comment.
LGTM, one comment about our excessive use of inline in this code but you're really following the convention so it's not something you need to change.
I'll merge this and work on a short migration guide for users of 0.11
| } | ||
|
|
||
| #[cfg(unix)] | ||
| #[inline] |
Member
There was a problem hiding this comment.
I know there are #[inline] scattered all over this project but they're really unnecessary, I should do a cleanup where I remove them...
Member
|
As you note actually, we need to check this works on Windows before we do a release, I'll try and get to that this weekend. |
This was referenced Mar 30, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Breaking change.
connection, which abstractsstd::nettypes into ones that can usestd::os::unix::nettypes on Unix platforms.ServerConfig::addrto a new, abstracted type and addhttp_unixmethod.httpandhttpsmethods are unchanged and should still work.Request::remote_addrnow returnsOption<&SocketAddr>. This isSomefor TCP servers andNonefor UNIX servers (since UNIX remote sockets are almost always unnamed).TODO: test on Windows to make sure everything still works. Will do that this evening.