net/linux_kernel: add unnamed Unix-domain addresses#1240
Closed
Kijewski wants to merge 1 commit intobytecodealliance:0.38from
Closed
net/linux_kernel: add unnamed Unix-domain addresses#1240Kijewski wants to merge 1 commit intobytecodealliance:0.38from
Kijewski wants to merge 1 commit intobytecodealliance:0.38from
Conversation
I think it would be useful to have unnamed Unix-domain addressed in
rustix. This PR adds the methods `SocketAddrUnix::new_unnamed()` and
`SocketAddrUnix::is_unnamed()`.
In C it is possible to have an [unnamed Unix-domain] socket name, when
you set `len` = 2 = `sizeof(c::socklen_t)`. Then the kernel will choose
an abstract Unix-domain name for you when you bind the socket. The same
feature present also in Python, when you call [`sock.bind("")`].
Invoking [`SocketAddrUnix::new_abstract_name(b"")`] gives you an empty
abstract socket address, i.e. `SocketAddrUnix::len == 3`. The kernel
will keep this empty abstract name on calling `bind()`.
[unnamed Unix-domain]: https://manpages.debian.org/bookworm/manpages/unix.7.en.html#unnamed
[`sock.bind("")`]: https://docs.python.org/3.13/library/socket.html#socket.socket.bind
[`SocketAddrUnix::new_abstract_name(b"")`]: https://docs.rs/rustix/0.38.42/rustix/net/struct.SocketAddrUnix.html#method.new_abstract_name
Contributor
Author
|
Accidentally based on a non-HEAD branch. Replaced by #1242. |
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.
I think it would be useful to have unnamed Unix-domain addressed in rustix. This PR adds the methods
SocketAddrUnix::new_unnamed()andSocketAddrUnix::is_unnamed().In C it is possible to have an unnamed Unix-domain socket name, when you set
len= 2 =sizeof(c::socklen_t). Then the kernel will choose an abstract Unix-domain name for you when you bind the socket. The same feature present also in Python, when you callsock.bind("").Invoking
SocketAddrUnix::new_abstract_name(b"")gives you an empty abstract socket address, i.e.SocketAddrUnix::len == 3. The kernel will keep this empty abstract name on callingbind().