Age | Commit message (Collapse) | Author |
|
Fix the build with bitflags-1.3.0 and newer
|
|
|
|
Constify more functions, since we're raising the MSRV from 1.41.0 to
1.46.0.
Fixes #1477
|
|
Bitflags raised its MSRV in a minor version, forcing all consumers to
follow suit.
Fixes #1491
|
|
These ranges of rustc are pickier about where to place
an #[allow(unused_doc_comments)] attribute. It caused warnings when
building for BSD-based targets.
|
|
1482: Add support for LOCAL_PEER_CRED r=asomers a=asomers
On FreeBSD and its derivatives, this socket option gets the credentials
of the connected peer.
Co-authored-by: Alan Somers <asomers@gmail.com>
|
|
1484: Optionally implement TryFrom in libc_enum! r=asomers a=asomers
This saves code in several separate places that need to do this
separately. At the same time, remove a few uses of mem::transmute that
were implementing TryFrom or similar functionality.
Issue #373
Co-authored-by: Alan Somers <asomers@gmail.com>
|
|
On FreeBSD and its derivatives, this socket option gets the credentials
of the connected peer.
|
|
1485: Replace some mem::transmute calls in signal.rs with pointer casts r=asomers a=asomers
Issue #373
Co-authored-by: Alan Somers <asomers@gmail.com>
|
|
This saves code in several separate places that need to do this
separately. At the same time, remove a few uses of mem::transmute that
were implementing TryFrom or similar functionality.
Issue #373
|
|
Issue #373
|
|
|
|
1422: Add PTRACE_INTERRUPT call as `ptrace::interrupt(pid)` r=asomers a=blaind
I've based the test on `fn test_ptrace_cont`. Removed some parts, but not 100% sure what's the proper way of testing in nix context.
From ptrace-man page:
```
PTRACE_INTERRUPT (since Linux 3.4)
Stop a tracee. If the tracee is running or sleeping in
kernel space and PTRACE_SYSCALL is in effect, the system
call is interrupted and syscall-exit-stop is reported.
(The interrupted system call is restarted when the tracee
is restarted.) If the tracee was already stopped by a
signal and PTRACE_LISTEN was sent to it, the tracee stops
with PTRACE_EVENT_STOP and WSTOPSIG(status) returns the
stop signal. If any other ptrace-stop is generated at the
same time (for example, if a signal is sent to the
tracee), this ptrace-stop happens. If none of the above
applies (for example, if the tracee is running in user
space), it stops with PTRACE_EVENT_STOP with
WSTOPSIG(status) == SIGTRAP. PTRACE_INTERRUPT only works
on tracees attached by PTRACE_SEIZE.
```
Co-authored-by: Mika Vatanen <blaind@blaind.net>
|
|
|
|
1483: Remove some actually unsupported termios iflags on redox r=asomers a=coolreader18
Related to rust-lang/libc#2327
Co-authored-by: Noah <33094578+coolreader18@users.noreply.github.com>
|
|
|
|
1302: Add getrlimit and setrlimit r=asomers a=LMJW
This PR is based on the previous PR https://github.com/nix-rust/nix/pull/1190, which has not been updated for a very long time.
I have fixed the segfault and compilation error of the original PR and rebased the changes to the latest master branch.
Please let me know if anything need to been changed.
Co-authored-by: LMJW <heysuperming@gmail.com>
|
|
This work is a continutation on previou contribution by @kpcyrd and @j1ah0ng.
|
|
1473: sys/stat: add a safe wrapper for mknodat(2) r=asomers a=lucab
This introduces a new `mknodat` helper.
Ref: https://pubs.opengroup.org/onlinepubs/9699919799/functions/mknod.html
1474: Mark most C-derived enums as non_exhaustive r=asomers a=asomers
Since libc may add new variants at any time, Nix's consumers should not
use exhaustive match patterns.
Fixes #1182
1476: Constify many functions r=asomers a=asomers
Constify most functions that can be constified. The exceptions are
mostly accessors for structs that have no const constructor.
Co-authored-by: Luca BRUNO <luca.bruno@coreos.com>
Co-authored-by: Alan Somers <asomers@gmail.com>
|
|
1481: Include `sys::eventfd` for target_os = "android" r=asomers a=flxo
Androids bionic [supports](https://android.googlesource.com/platform/bionic/+/d1ad4f6/libc/include/sys/eventfd.h) `eventfd`. The `libc` crate also exposes [`eventfd`](https://github.com/rust-lang/libc/blob/36a6a8e254db89cd31d178b4ba102055ceabf9a8/src/unix/linux_like/android/mod.rs#L2648) for target `android`.
Extend the conditional compilation check to include the target_os "android".
Fixes #1480
Co-authored-by: Felix Obenhuber <felix@obenhuber.de>
|
|
This introduces a new `mknodat` helper.
Ref: https://pubs.opengroup.org/onlinepubs/9699919799/functions/mknod.html
|
|
Androids bionic supports eventfd. Extend the conditional compilation
check to include the target_os "android".
Fixes #1480
|
|
Constify most functions that can be constified. The exceptions are
mostly accessors for structs that have no const constructor.
|
|
1471: unistd: Add conversion from User to libc::passwd r=asomers a=orvij
Add `From<User> for libc::passwd` trait implementation to convert a `User` into a `libc::passwd`
Implementation consumes the `User` struct, giving ownership over the internal members to the `libc::passwd` struct
Exposes the `User::gecos` field to 64-bit Android builds, since `libc::passwd::pw_gecos` is supported on those builds
Co-authored-by: orvij <85481483+orvij@users.noreply.github.com>
|
|
Add From<User> for libc::passwd trait implementation to convert
a User into a libc::passwd
Implementation consumes the User struct, giving ownership over
the internal members to the libc::passwd struct
Add the User::gecos field to 64-bit Android builds, since it is
supported by libc::passwd for those builds
|
|
1472: Add pthread_kill r=asomers a=mkroening
This adds `pthread_kill`, following the design of `killpg`.
What do you think?
Co-authored-by: Martin Kröning <mkroening@posteo.net>
|
|
1465: Enable creating a const TimeSpec r=asomers a=danieldulaney
Previously, there was no way to create a `TimeSpec` in a `const` context because all creation was through traits. This adds two utility functions to create a `const TimeSpec` from a `libc::timespec` or an `std::time::Duration`.
An alternative approach would be to make the inner `timespec` field `pub`, which would not require any additional functions but would expose some (potentially unwanted) implementation details.
Co-authored-by: Daniel Dulaney <dulaney.daniel@gmail.com>
Co-authored-by: Alan Somers <asomers@gmail.com>
|
|
|
|
|
|
Since libc may add new variants at any time, Nix's consumers should not
use exhaustive match patterns.
Fixes #1182
|
|
1470: Add the IPV6_V6ONLY sockopt r=asomers a=danieldulaney
`IPV6_V6ONLY` allows the user to select between dual-stack and IPv6-only sockets.
Platform support seems to be good; all platforms with IPv6 support seem to have this sockopt.
Co-authored-by: Daniel Dulaney <dulaney.daniel@gmail.com>
|
|
1469: Fix CONTRIBUTING.md formating r=asomers a=rusty-snake
Guess the label prefixes should be rendered bold and not with literal stars.
Co-authored-by: rusty-snake <41237666+rusty-snake@users.noreply.github.com>
|
|
|
|
1467: Add more errno definitions for better backwards compat with 0.21.0 r=asomers a=asomers
Fixes #1464
Co-authored-by: Alan Somers <asomers@gmail.com>
|
|
Guess the label prefixes should be rendered bold and not with literal stars.
[skip ci]
|
|
Fixes #1466
|
|
|
|
Use immutable receivers for FdSet::{highest, contains, fds}
|
|
Previously, there was no way to create a TimeSpec in a const context
because all creation was through traits. This adds two utility
functions to create a const TimeSpec from a libc::timespec or a
std::time::Duration
|
|
There was never any good reason to use mutable receives in the first
place. Nix originally did so because libc defined FD_ISSET as taking a
mutable receiver, which it did based on an inaccurate Linux man page.
But that's fixed now.
https://github.com/rust-lang/libc/pull/1725
|
|
Slim down the size of the built package
|
|
|
|
The exclude list had gotten out-of-date.
|
|
1462: Fix fork test and enable doc test r=asomers a=sporksmith
Replaces `println!` with raw `libc::write`. `println!` isn't guaranteed
to be async-signal-safe, and almost certainly *isn't* due to internal
buffering and locking.
Adds a call to `libc::_exit` in the child arm, so that it doesn't fall
through and start executing the parent code.
Adds a call to `waitpid` in the parent arm, to clean up the child
process.
Removes the `no_run` directive, so that it's run in the doc tests.
Co-authored-by: Jim Newsome <jnewsome@torproject.org>
|
|
Replaces `println!` with raw `libc::write`. `println!` isn't guaranteed
to be async-signal-safe, and almost certainly *isn't* due to internal
buffering and locking.
Adds a call to `libc::_exit` in the child arm, so that it doesn't fall
through and start executing the parent code.
Adds a call to `waitpid` in the parent arm, to clean up the child
process.
Removes the `no_run` directive, so that it's run in the doc tests.
|
|
Release v0.22.0
|
|
|
|
1455: Support SO_RXQ_OVFL socket option (android/fuchsia/linux) r=asomers a=junhochoi
This PR implements support of RXQ_OVFL flag and parsing ControlMessage
to get the packet drop counter of UDP socket.
Co-authored-by: Junho Choi <junho@cloudflare.com>
|
|
This PR implements support of RXQ_OVFL flag and parsing ControlMessage
to get the packet drop counter of UDP socket.
|
|
1458: Added support for renameat2 on linux r=asomers a=tomboland
Hi, please find my PR for adding the linux-specific `renameat2` syscall. It's largely similar to `renameat`, with an additional flags parameter:
The flags are:
* RENAME_REPLACE - performs an atomic swap.
* RENAME_NOREPLACE - returns EEXIST if the target already exists.
* RENAME_WHITEOUT - specific to overly/union filesystems, and I haven't added a test-case for this one.
PLEASE NOTE: It looks like my formatter has made numerous changes. If you have a preferred formatting config then please let me know, and I can push up changes consistent with the accepted style.
I'm not all that experienced with rust, and this is my first time looking at the nix project, so I'm more than happy to receive guidance on improving my submission.
Cheers!
Co-authored-by: Tom Boland <tom@t0mb.net>
|