Age | Commit message (Collapse) | Author |
|
1833: add syncfs on linux r=rtzoeller a=SteveLauC
Fixes #1818
Change has not been added to `CHANGELOG.md`, will add it when #1831 is merged, or there will be a merge conflict
Co-authored-by: Steve Lau <stevelauc@outlook.com>
|
|
Clippy is now smarter about detecting unnecessary casts and
useless conversions, which means we need to be more explicit
about when the conversions are needed for a subset of platforms.
Required changes found by repeatedly running the following command
against a list of the supported platforms.
`xargs -t -I {} sh -c "cargo clippy -Zbuild-std --target {} --all-targets -- -D warnings || exit 255"`
I removed the casts it complained about, and then restored them
with an `#[allow]` if a later target needed the cast.
|
|
|
|
|
|
Namespace filesystem magic is missing from FsType constants.
|
|
1825: Add a `sched_getcpu` wrapper r=rtzoeller a=jonas-schievink
Co-authored-by: Jonas Schievink <jonas.schievink@ferrous-systems.com>
|
|
|
|
|
|
|
|
1808: expose memfd on freebsd r=asomers a=i509VCB
Resolves #1775
Co-authored-by: i509VCB <git@i509.me>
|
|
1815: Handle unacceptable name gracefully in {User,Group}::from_name r=asomers a=magicant
Calling `unwrap` on the result of `CString::new` may cause the current thread to panic, which is a bit surprising undocumented behavior. It would be more reasonable to treat the erroneous name as a non-existing user or group.
Co-authored-by: WATANABE Yuki <magicant@wonderwand.net>
|
|
|
|
|
|
Calling `unwrap` on the result of `CString::new` may cause the current
thread to panic, which is a bit surprising undocumented behavior. It
would be more reasonable to treat the erroneous name as a non-existing
user or group.
|
|
|
|
|
|
1805: Add `line` field to `Termios` struct r=rtzoeller a=tertsdiepraam
Fixes https://github.com/nix-rust/nix/issues/1802
I have to admit I'm not really sure how to test this properly, so if that's necessary I require some help :)
Co-authored-by: Terts Diepraam <terts.diepraam@gmail.com>
|
|
|
|
1806: Remove MSRV-related workaround for doc aliases r=asomers a=rtzoeller
Remove the MSRV-related workaround added by #1693, since we now can use doc aliases in all supported versions of Rust.
Closes #1674.
Co-authored-by: Ryan Zoeller <rtzoeller@rtzoeller.com>
|
|
|
|
|
|
And fix some documentation lints warned about by the newer rustdoc.
|
|
1782: feat #1733: add F_GET_SEALS and F_ADD_SEALS on FreeBSD r=rtzoeller a=SteveLauC
Closes #1733
Co-authored-by: SteveLauC <stevelauc@outlook.com>
|
|
|
|
1776: Add support for the IP_SENDSRCADDR control message r=rtzoeller a=matttpt
This control message is available on FreeBSD, NetBSD, and OpenBSD. When used with `sendmsg`, it sets the IPv4 source address. This adds support through a new `ControlMessage::Ipv4SendSrcAddr` variant that complements `ControlMessageOwned::Ipv4RecvDstAddr`.
A few notes:
* `IP_SENDSRCADDR` is actually just an alias for `IP_RECVDSTADDR` (though the code doesn't depend on this).
* On NetBSD, `IP_PKTINFO` can be used to accomplish the same thing and is already supported by nix. On FreeBSD and OpenBSD, though, `IP_SENDSRCADDR` is the only method I'm aware of.
* The accompanying test binds a UDP socket to all local interfaces (0.0.0.0). If this is not acceptable, please let me know; however, FreeBSD requires this to use `IP_SENDSRCADDR`.
I'll add a change-log entry once I see the PR number.
Thanks!
Co-authored-by: Matthew Ingwersen <matttpt@gmail.com>
|
|
1785: Remove deprecated items r=asomers a=SteveLauC
#### What this pr does
1. Convert `assert!(x == y)` to `assert_eq!(x, y)`
2. Convert `assert!(x != y)` to `assert_ne!(x, y)`
3. Add `.unwrap()` to unused `Result/Option` (in code comments)
4. Convert `std::ixx::MAX` to `ixx::MAX`
5. Convert `Box<Trait>` to `Box<dyn Trait>`
Co-authored-by: SteveLauC <stevelauc@outlook.com>
Co-authored-by: SteveLau <stevelauc@outlook.com>
|
|
|
|
|
|
1790: minor terminology fix in User docs r=asomers a=oconnor663
Passwords are hashed, not encrypted.
Co-authored-by: Jack O'Connor <oconnor663@gmail.com>
|
|
Passwords are hashed, not encrypted.
|
|
|
|
|
|
|
|
|
|
|
|
This control message (actually just an alias for IP_RECVDSTADDR) sets
the IPv4 source address when used with sendmsg. It is available on
FreeBSD, NetBSD, OpenBSD, and DragonFlyBSD.
|
|
https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_result_states
|
|
1772: Add support for RecvOrigDstAddr on Linux r=asomers a=brianmay
Fixes #1767
Co-authored-by: Brian May <brian@linuxpenguins.xyz>
|
|
|
|
Fixes #1767
|
|
Memory fds (`memfd`) are implemented and exported by Androids bionic.
Export the `memfd` module if the target os is `android`.
https://cs.android.com/android/platform/superproject/+/master:bionic/libc/include/sys/mman.h;drc=23c7543b8e608ebcbb38b952761b54bb56065577;bpv=1;bpt=1;l=182
|
|
Add note to Changelog.md
Make changes in comments
Co-authored-by: Alan Somers <asomers@gmail.com>
Add Android as target os for ETH_P_ALL
|
|
The major users of this function are functions like gethostname, which
will always properly align their buffers. But out-of-crate consumers
could manually construct an unaligned buffer. Handle that correctly.
Enable Clippy's cast_ptr_alignment lint. It's disabled by default as it
reports many false positives, but it would've caught this problem.
Reported-by: Miri
Fixes: 1769
|
|
|
|
1741: SigSet: A new unsafe helper method to create a SigSet from a sigset_t r=rtzoeller a=germag
Currently, the only way to create a `SigSet` from a `sigset_t` object
is by using pointer casts, like:
```
unsafe {
let sigset = *(&sigset as *const libc::sigset_t as *const SigSet)
};
```
This is un-ergonomic for library creators with interfaces to C.
So, let's add a new unsafe method that creates a `SigSet` from a
`libc::sigset_t` object.
We can't implement `From` since converting from `libc::sigset_t` to
`SigSet` is unsafe, because objects of type `libc::sigset_t` must be
initialized by calling either `sigemptyset(3)` or `sigfillset(3)`
before being used. In other case, the results are undefined.
We can't implement `TryFrom` either, because there is no way to check
if an object of type `libc::sigset_t` is initialized.
Signed-off-by: German Maglione <gmaglione@redhat.com>
Co-authored-by: German Maglione <gmaglione@redhat.com>
|
|
IPv4 and stream sockets are unaffected, but for datagram sockets of
other address types libc::recvfrom might overwrite part of the stack.
Fixes #1762
|
|
|
|
|
|
This commit adds the `repr(transparent)` attribute to the `SigSet`
struct, to make sure that its representation is exactly like the
`sigset_t` struct from C, in all cases.
Signed-off-by: German Maglione <gmaglione@redhat.com>
|
|
Currently, the only way to create a `SigSet` from a `sigset_t` object
is by using pointer casts, like:
```
unsafe {
let sigset = *(&sigset as *const libc::sigset_t as *const SigSet)
};
```
This is un-ergonomic for library creators with interfaces to C.
So, let's add a new unsafe method that creates a `SigSet` from a
`libc::sigset_t` object.
We can't implement `From` since converting from `libc::sigset_t` to
`SigSet` is unsafe, because objects of type `libc::sigset_t` must be
initialized by calling either `sigemptyset(3)` or `sigfillset(3)`
before being used. In other case, the results are undefined.
We can't implement `TryFrom` either, because there is no way to check
if an object of type `libc::sigset_t` is initialized.
Signed-off-by: German Maglione <gmaglione@redhat.com>
|