Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
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>
|
|
Also, sort the entries alphabetically, since that's how Github displays
them.
|
|
Adds a high level `Persona` bitflags enum, as well as `personality::get()`
and `personality::set()` for interacting with `libc::personality()`.
|
|
Remove SockLevel
|
|
It's been unused since PR #133
|
|
Raise MSRV to 1.40.0
|
|
On Cirrus-CI, this test frequently fails with EINVAL. The error goes
away if I add a line of debugging, so it's probably a timing issue. But
I can't debug it myself.
Issue #1361
|
|
In older versions of Musl, ttyname_r would wrongly return ENOTTY instead
of EBADF. We expected that bug in our test suite. But Rust
1.37.0 updated Musl to 1.1.22, which fixes the problem. This change
reverts our workaround.
https://www.openwall.com/lists/musl/2018/09/15/2
https://github.com/rust-lang/rust/commit/aaf66987931dfe06a547b9f68cb709e9b6265b5c
|
|
[skip ci] Update docs and build badges for the Travis -> Cirrus move
|
|
|
|
This will shortly be needed for Fuchsia support.
|
|
Fix intermittency in the doc test for alarm
|
|
On Cirrus CI, this test would sometimes fail, probably due to pause
being awoken by SIGRT_1. sigwait is a superior alternative to pause.
Fixes #1354
|
|
Fix intermittency in some tests
|
|
On Cirrus-CI, these tests frequently segfault. It's probably indicative
of a real bug, not just a problem in the tests. But for now we need to
skip them to get CI working.
Issue #555
|
|
On OSX, this test has begun to fail in CI on OSX. Presumably it's because
aio_suspend was getting interrupted by a signal.
|
|
The test was assuming that once dropped, a temporary file's file
descriptor would be invalid. But it might not be, because another file
might be opened with the same file descriptor. Instead, use an
obviously invalid file descriptor.
|
|
Switch all builds from Travis to Cirrus
|
|
Ensure that the exec functions' arguments are valid for 'static.
Previously they were short-lived temporaries.
|
|
Travis has been super-slow lately (> 6 hours per build). Cirrus is much
faster: about 20 minutes. Cirrus also has slightly better test
coverage, mainly because it doesn't use SECCOMP.
Also,
* Fix the Redox CI build. The old Travis configuration didn't actually
build for Redox, so we never noticed that Redox can't be built with a
stable compiler. Thanks to @coolreader18 for finding this.
* Disable the udp_offload tests on cross-tested platforms. These tests
are failing with ENOPROTOOPT in Cirrus-CI. I suspect it's due to a
lack of support in QEMU. These tests were skipped on Travis because
its kernel was too old.
* Fix require_kernel_version on Cirrus-CI. Cirrus reports the Linux
kernel version as 4.19.112+, which the semver crate can't handle.
* Fix test_setfsuid on Cirrus. When run on Cirrus, it seems like the
file in /tmp gets deleted as soon as it's closed. Probably an
overzealous temporary file cleaner. Use /var/tmp, because no
temporary file cleaner should run in there.
* Skip mount tests on Cirrus. They fail for an unknown reason.
Issue #1351
* Skip the AF_ALG tests on Cirrus-CI
Issue #1352
|
|
When run in Cirrus-CI's environment, the tests generate copious SIGRT_1
signals. This commit ensures that test_alarm will ignore them.
|
|
When run in Cirrus-CI's environment, the tests generate copious SIGRT_1
signals. This commit ensures that the poll tests will retry on EINTR.
|
|
|
|
It's deprecated by Xcode, and the version of Xcode installed by
Cirrus-CI doesn't include 32 bit libraries.
|
|
|