Skip to content

Commit

Permalink
Upgrade nix to 0.28 (#5)
Browse files Browse the repository at this point in the history
  • Loading branch information
sunshowers authored Mar 1, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent cc5cf97 commit bc8c638
Showing 3 changed files with 11 additions and 6 deletions.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -15,7 +15,7 @@ categories = ["filesystem"]
rand = { version = "0.8" }

[target.'cfg(unix)'.dependencies]
nix = { version = "0.27", features = ["fs", "user"] }
nix = { version = "0.28", features = ["fs", "user"] }

[features]
default = ["unnamed-tmpfile"]
6 changes: 3 additions & 3 deletions src/imp/unix/linux.rs
Original file line number Diff line number Diff line change
@@ -7,11 +7,11 @@ use crate::imp::unix::OpenOptions;
use crate::imp::unix::RandomName;
use nix::errno::Errno;
use nix::fcntl::openat;
use nix::fcntl::AtFlags;
use nix::fcntl::OFlag;
use nix::libc;
use nix::sys::stat::Mode;
use nix::unistd::linkat;
use nix::unistd::LinkatFlags;
use std::ffi::OsStr;
use std::ffi::OsString;
use std::fs::File;
@@ -32,7 +32,7 @@ fn create_unnamed_temporary_file(dir: &Dir, opts: &OpenOptions) -> nix::Result<F
| OFlag::from_bits_truncate(opts.custom_flags & !libc::O_ACCMODE);
let create_mode = Mode::from_bits_truncate(opts.mode);

let file_fd = openat(dir.as_raw_fd(), ".", flags, create_mode)?;
let file_fd = openat(Some(dir.as_raw_fd()), ".", flags, create_mode)?;

let file = unsafe { File::from_raw_fd(file_fd) };
Ok(file)
@@ -49,7 +49,7 @@ fn rename_unnamed_temporary_file(dir: &Dir, file: &File, name: &OsStr) -> nix::R
src.as_os_str(),
Some(dir.as_raw_fd()),
random_name.next(),
LinkatFlags::SymlinkFollow,
AtFlags::AT_SYMLINK_FOLLOW,
) {
Ok(()) => break random_name.into_os_string(),
Err(Errno::EEXIST) => continue,
9 changes: 7 additions & 2 deletions src/imp/unix/mod.rs
Original file line number Diff line number Diff line change
@@ -167,7 +167,12 @@ fn create_temporary_file(

let mut random_name = RandomName::new(name);
let file_fd = loop {
match openat(dir.as_raw_fd(), random_name.next(), flags, create_mode) {
match openat(
Some(dir.as_raw_fd()),
random_name.next(),
flags,
create_mode,
) {
Ok(file_fd) => break file_fd,
Err(Errno::EEXIST) => continue,
Err(err) => return Err(err),
@@ -219,7 +224,7 @@ fn copy_file_perms<P: AsRef<Path>>(
opts: &OpenOptions,
) -> Result<()> {
let stat = match fstatat(
dir.as_raw_fd(),
Some(dir.as_raw_fd()),
copy_from.as_ref(),
AtFlags::AT_SYMLINK_NOFOLLOW,
) {

0 comments on commit bc8c638

Please sign in to comment.