]> git.proxmox.com Git - proxmox.git/commitdiff
update proxmox-sys to nix 0.24.1
authorWolfgang Bumiller <w.bumiller@proxmox.com>
Wed, 1 Jun 2022 13:02:48 +0000 (15:02 +0200)
committerFabian Grünbichler <f.gruenbichler@proxmox.com>
Thu, 2 Jun 2022 11:34:09 +0000 (13:34 +0200)
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
proxmox-sys/Cargo.toml
proxmox-sys/src/error.rs
proxmox-sys/src/fs/dir.rs
proxmox-sys/src/fs/file.rs
proxmox-sys/src/lib.rs
proxmox-sys/src/linux/pty.rs
proxmox-sys/src/linux/tty.rs

index 2be7534f0b0841e1e9ed2ddf6718f0ab6d4dc0d1..cc7934e3e3e1bf54b7f8df42dc1b277c361ac158 100644 (file)
@@ -14,7 +14,7 @@ base64 = "0.13"
 lazy_static = "1.4"
 libc = "0.2.107"
 log = "0.4.17"
-nix = "0.19.1"
+nix = "0.24.1"
 regex = "1.2"
 serde_json = "1.0"
 serde = { version = "1.0", features = [ "derive" ] }
index 78f846b231847a0737791e0eb6dbf80e6906660c..74377659c4870900a99e67a5af213c68e0f627de 100644 (file)
@@ -16,7 +16,6 @@
 use std::io;
 
 use nix::errno::Errno;
-use nix::Error;
 
 use proxmox_lang::error::io_err_other;
 
@@ -91,14 +90,16 @@ impl SysError for io::Error {
 impl SysError for nix::Error {
     #[inline]
     fn is_errno(&self, value: Errno) -> bool {
-        *self == Error::Sys(value)
+        *self == value
     }
 
     #[inline]
     fn into_io_error(self) -> io::Error {
         match self {
-            Error::Sys(raw) => io::Error::from_raw_os_error(raw as _),
-            other => io::Error::new(io::ErrorKind::Other, other.to_string()),
+            Errno::UnknownErrno => {
+                io::Error::new(io::ErrorKind::Other, "unknown error".to_string())
+            }
+            other => io::Error::from_raw_os_error(other as _),
         }
     }
 }
index 5912e1e3d2d9f1b9cc2c7e855106a2d5baa55664..567a2dbf4a8173d83f865503ef7e22682334fab0 100644 (file)
@@ -134,7 +134,7 @@ fn create_path_at_do(
                     .unwrap_or(stat::Mode::from_bits_truncate(0o755));
 
                 created = match stat::mkdirat(at.as_raw_fd(), path, mode) {
-                    Err(nix::Error::Sys(Errno::EEXIST)) => false,
+                    Err(Errno::EEXIST) => false,
                     Err(e) => return Err(e.into()),
                     Ok(_) => true,
                 };
index a096db43037b19a54680c5fa9f70688c827815dd..ffddc2017240e861ba58f8f32c7db48a3bd79340 100644 (file)
@@ -273,7 +273,7 @@ pub fn atomic_open_or_create_file<P: AsRef<Path>>(
                 new_path.as_ptr(),
                 libc::RENAME_NOREPLACE,
             )) {
-                Err(nix::Error::Sys(Errno::EINVAL)) => (), // dumb file system, try `link`+`unlink`
+                Err(Errno::EINVAL) => (), // dumb file system, try `link`+`unlink`
                 other => return other,
             };
             // but some file systems don't support `RENAME_NOREPLACE`
index 35e0c22ecddafce4f4eef5258c07a9af746c6ddd..1e21ea60ad9446a2b6256f2516668875d1ab1020 100644 (file)
@@ -1,3 +1,5 @@
+use std::os::unix::ffi::OsStrExt;
+
 pub mod command;
 pub mod crypt;
 pub mod email;
@@ -34,12 +36,17 @@ use fd::Fd;
 pub fn nodename() -> &'static str {
     lazy_static::lazy_static! {
         static ref NODENAME: String = {
-            nix::sys::utsname::uname()
-                .nodename()
-                .split('.')
-                .next()
-                .unwrap()
-                .to_owned()
+            std::str::from_utf8(
+                nix::sys::utsname::uname()
+                    .expect("failed to get nodename")
+                    .nodename()
+                    .as_bytes(),
+            )
+            .expect("non utf-8 nodename not supported")
+            .split('.')
+            .next()
+            .unwrap()
+            .to_owned()
         };
     }
 
index b97a2aac175d8d563f2a0f477ae44f7b64d0b4f5..b62dc076a2af6e5af6d6bc1edac885f3e69a3966 100644 (file)
@@ -4,7 +4,6 @@
 
 use std::os::unix::io::{AsRawFd, RawFd};
 
-use nix::errno::Errno::EINVAL;
 use nix::fcntl::OFlag;
 use nix::pty::{grantpt, posix_openpt, ptsname_r, unlockpt, PtyMaster};
 use nix::sys::stat::Mode;
@@ -109,19 +108,13 @@ impl PTY {
 
 impl std::io::Read for PTY {
     fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize> {
-        match nix::unistd::read(self.primary.as_raw_fd(), buf) {
-            Ok(val) => Ok(val),
-            Err(err) => Err(err.as_errno().unwrap_or(EINVAL).into()),
-        }
+        Ok(nix::unistd::read(self.primary.as_raw_fd(), buf)?)
     }
 }
 
 impl std::io::Write for PTY {
     fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> {
-        match nix::unistd::write(self.primary.as_raw_fd(), buf) {
-            Ok(size) => Ok(size),
-            Err(err) => Err(err.as_errno().unwrap_or(EINVAL).into()),
-        }
+        Ok(nix::unistd::write(self.primary.as_raw_fd(), buf)?)
     }
 
     fn flush(&mut self) -> std::io::Result<()> {
index b7b32ced12136b1cdbdee3ffbe4e13c90ca0c6df..7795d7ecfdf26c753894b0e7fe961e3089155813 100644 (file)
@@ -9,7 +9,6 @@ use nix::sys::stat::Mode;
 use proxmox_lang::try_block;
 
 use crate::c_try;
-use crate::error::SysError;
 use crate::fd::Fd;
 
 /// Get the current size of the terminal (for stdout).
@@ -86,8 +85,8 @@ impl TtyOutput {
                 Mode::empty(),
             ) {
                 Ok(fd) => Ok(Some(TtyOutput::DevTty(fd))),
-                Err(nix::Error::Sys(nix::errno::Errno::ENXIO)) => Ok(None),
-                Err(err) => Err(err.into_io_error()),
+                Err(nix::errno::Errno::ENXIO) => Ok(None),
+                Err(err) => Err(err.into()),
             }
         }
     }