Age | Commit message (Collapse) | Author |
|
Apparently the Linux kernel can return smaller sizes when the value in
the last element of sockaddr_ll (`sll_addr`) is smaller than the
declared size of that field.
|
|
Remove a duplicate stanza from .cirrus.yml
|
|
|
|
Remove accept4 on Android arm
|
|
libc removed it in version 0.2.87.
https://github.com/rust-lang/libc/pull/2079
|
|
During CI, use just 1 cpu for QEMU builds
|
|
https://github.com/cirruslabs/cirrus-ci-docs/issues/741
|
|
1390: pty: Make forkpty() unsafe r=asomers a=tavianator
After the child returns from a fork() of a multi-threaded process, it is
undefined behaviour to call non-async-signal-safe functions according to
POSIX. Since forkpty() is implemented in terms of fork(), those
restrictions should apply to it too.
Fixes #1388
Co-authored-by: Tavian Barnes <tavianator@tavianator.com>
|
|
Various maintenance stuff
|
|
After the child returns from a fork() of a multi-threaded process, it is
undefined behaviour to call non-async-signal-safe functions according to
POSIX. Since forkpty() is implemented in terms of fork(), those
restrictions should apply to it too.
|
|
This eliminates some duplicate dependencies
|
|
This eliminates the need to build multiple versions of cfg-if
|
|
|
|
|
|
Prepare for release 0.20.0
|
|
|
|
|
|
1381: Close file descriptor on drop in TimerFd r=asomers a=crdumoul
This change closes the TimerFd file descriptor on drop. Note that the TimerFd will no longer be `Clone` or `Copy`. Since it has a destructor it can't be `Copy`, and if it were `Clone` you could end up trying to use a closed TimerFd, or double-closing the file descriptor.
Addresses #1379.
Co-authored-by: Christopher Dumoulin <cdumouli@akamai.com>
Co-authored-by: Alan Somers <asomers@gmail.com>
|
|
|
|
1366: x32 port r=asomers a=nabijaczleweli
I played pretty loose with the statfs bit, hoping for CI to tell me if I broke something.
Co-authored-by: наб <nabijaczleweli@nabijaczleweli.xyz>
|
|
|
|
|
|
|
|
Based on
https://github.com/nix-rust/nix/issues/1384#issuecomment-774708486
|
|
|
|
|
|
|
|
Test fix obtained from
https://github.com/nix-rust/nix/issues/1384#issuecomment-774708486
|
|
1333: Dir: Implement `IntoIterator` for `Dir` r=asomers a=wmanley
This is useful to allow returning an iterator based on a directory iterator
without needing a self-referential struct.
Co-authored-by: William Manley <will@stb-tester.com>
|
|
This is useful to allow returning an iterator based on a directory iterator
without needing a self-referential struct.
|
|
1387: fix(unsafe): remove unnecessary unsafe r=asomers a=matu3ba
libc 0.2.82 exposes status signals with macros generating safe functions
Co-authored-by: Jan Philipp Hafer <jan.hafer@rwth-aachen.de>
|
|
closes #1380
libc 0.2.82 exposes status signals with macros generating safe functions
|
|
|
|
1382: Don't implement Clone on Dir, SignalFd, and PtyMaster r=asomers a=asomers
Since they close their file descriptors on Drop, it's almost impossible
to use Clone without creating a double-close situation.
Also, check for EBADF in SignalFd::drop and Dir::drop.
Co-authored-by: Alan Somers <asomers@gmail.com>
|
|
Since they close their file descriptors on Drop, it's almost impossible
to use Clone without creating a double-close situation.
Also, check for EBADF in SignalFd::drop and Dir::drop.
|
|
1338: Add a passwd field to Group r=asomers a=blinsay
Adds a `passwd` field to unistd::Group. The `gr_passwd` field exists on `libc::group` and wasn't exposed.
I didn't see tests for `from(libc:group)` for either `User` or `Password`. Let me know if there are other tests I should add!
Co-authored-by: Ben Linsay <blinsay@gmail.com>
|
|
|
|
1372: Remove s390x exemptions from sys::statfs MAGIC constants r=asomers a=Jakob-Naucke
Since rust-lang/libc is now using the correct data type on s390x (c_uint) for
statfs constants, the s390x exemptions in the statfs MAGIC definitions like
EXT4_SUPER_MAGIC can be removed.
Signed-off-by: Jakob Naucke <jakob.naucke@ibm.com>
Co-authored-by: Jakob Naucke <jakob.naucke@ibm.com>
|
|
Since rust-lang/libc is now using the correct data type on s390x (c_uint) for
statfs constants, the s390x exemptions in the statfs MAGIC definitions like
EXT4_SUPER_MAGIC can be removed.
Signed-off-by: Jakob Naucke <jakob.naucke@ibm.com>
|
|
1344: Add support for `SockAddr::Link` when receiving packets r=asomers a=internetionals
fixes #1343
Co-authored-by: Justin Ossevoort <github@internetionals.nl>
|
|
|
|
1368: Fix fcntl for FreeBSD platform r=asomers a=AlexanderThaller
When compiling the following code with nix `0.19.1` under FreeBSD 12.2:
```
use std::os::unix::io::AsRawFd;
fn main() {
let f = std::fs::File::create("/tmp/testfile").unwrap();
nix::fcntl::posix_fadvise(
f.as_raw_fd(),
0,
0,
nix::fcntl::PosixFadviseAdvice::POSIX_FADV_NOREUSE,
).unwrap();
}
```
I get the following error:
```
error[E0433]: failed to resolve: could not find `PosixFadviseAdvice` in `fcntl`
--> src/main.rs:10:21
|
10 | nix::fcntl::PosixFadviseAdvice::POSIX_FADV_NOREUSE,
| ^^^^^^^^^^^^^^^^^^ could not find `PosixFadviseAdvice` in `fcntl`
error[E0425]: cannot find function `posix_fadvise` in module `nix::fcntl`
--> src/main.rs:6:17
|
6 | nix::fcntl::posix_fadvise(
| ^^^^^^^^^^^^^ not found in `nix::fcntl`
error: aborting due to 2 previous errors
```
Checking the documentation I noticed the documentation for the FreeBSD platform was missing:
https://docs.rs/nix/0.19.1/x86_64-unknown-freebsd/nix/?search=PosixFadviseAdvice
Checking the code I noticed that `target_env` was used instead of `target_os`:
* https://doc.rust-lang.org/reference/conditional-compilation.html#target_env
* https://doc.rust-lang.org/reference/conditional-compilation.html#target_os
Switching to `target_os` fixed the compilation errors. I also ran the tests with the fix and they seemed to be fine:
```
test result: ok. 68 passed; 0 failed; 14 ignored; 0 measured; 0 filtered out
```
I hope this makes sense to fix.
Co-authored-by: Alexander Thaller <alexander.thaller@trivago.com>
|
|
Need to use the right cfg option for the conditional compilation.
target_os is the right option to use when targeting FreeBSD. target_env
was used before which seems to be a typo.
|
|
1342: feat(unistd): Add getpeereid(3) r=asomers a=woodruffw
`getpeereid(3)` is not POSIX, but it's present on many BSD-derived Unices. It's also the standard mechanism on those OSes for retrieving socket peer credentials (compare `getsockopt` + `SO_PEERCRED` on Linux, which `nix` already supports).
Closes #1339.
Co-authored-by: William Woodruff <william@yossarian.net>
|
|
Closes #1339.
|
|
1285: Add fuchsia support r=asomers a=amanda-tait
This change adds support for the Fuchsia operating system to the nix
crate. Fuchsia developers have a use case for nix, particularly its safe
interfaces to the recvmsg(2) and sendmsg(2). Adding support requires:
* incrementing the libc dependency to 0.2.74
* conditionally not compiling nix functionality which depends on libc functionality
that does not exist for Fuchsia
Co-authored-by: Tamir Duberstein <tamird@google.com>
Co-authored-by: Amanda Tait <atait@google.com>
|
|
Allow nix to compile on Fuchsia by conditionally avoiding libc
functionality that does not exist for Fuchsia.
|
|
This was missed in d36353701341df9cfffb4fc4e88c002698d2deda.
|
|
1331: feat(sys): High-level personality(2) wrappers r=asomers a=woodruffw
Adds a high level `Persona` bitflags enum, as well as `personality::get()` and `personality::set()` for interacting with `libc::personality()`.
Closes #1330.
See also https://github.com/rust-lang/libc/pull/1974.
Co-authored-by: William Woodruff <william@trailofbits.com>
|
|
1365: Fix duplicate entry in bors.toml r=asomers a=asomers
Also, sort the entries alphabetically, since that's how Github displays
them.
Co-authored-by: Alan Somers <asomers@gmail.com>
|