aboutsummaryrefslogtreecommitdiffstats
path: root/src/pty.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/pty.rs')
-rw-r--r--src/pty.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/pty.rs b/src/pty.rs
index f0ebcd3..d76aa6b 100644
--- a/src/pty.rs
+++ b/src/pty.rs
@@ -11,11 +11,13 @@ impl Pty {
pub fn new() -> Result<Self> {
let pt = nix::pty::posix_openpt(
nix::fcntl::OFlag::O_RDWR | nix::fcntl::OFlag::O_NOCTTY,
- )?;
- nix::pty::grantpt(&pt)?;
- nix::pty::unlockpt(&pt)?;
+ )
+ .map_err(Error::CreatePty)?;
+ nix::pty::grantpt(&pt).map_err(Error::CreatePty)?;
+ nix::pty::unlockpt(&pt).map_err(Error::CreatePty)?;
- let ptsname = nix::pty::ptsname_r(&pt)?.into();
+ let ptsname =
+ nix::pty::ptsname_r(&pt).map_err(Error::CreatePty)?.into();
let pt_fd = pt.into_raw_fd();
let pt = unsafe { std::fs::File::from_raw_fd(pt_fd) };
@@ -31,6 +33,7 @@ impl Pty {
Ok(std::fs::OpenOptions::new()
.read(true)
.write(true)
- .open(&self.ptsname)?)
+ .open(&self.ptsname)
+ .map_err(|e| Error::OpenPts(self.ptsname.clone(), e))?)
}
}