From 3e5a43d47d98e9d70debb2cefcc1a94ea6f93a2d Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 15 Nov 2016 16:12:51 -0700 Subject: [PATCH] Update syscall and rust, add fcntl for permissions --- scheme/pipe.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scheme/pipe.rs b/scheme/pipe.rs index 30d0bd5..c608ed5 100644 --- a/scheme/pipe.rs +++ b/scheme/pipe.rs @@ -6,7 +6,7 @@ use scheme::{AtomicSchemeId, ATOMIC_SCHEMEID_INIT}; use sync::WaitCondition; use syscall::error::{Error, Result, EAGAIN, EBADF, EINVAL, EPIPE}; -use syscall::flag::{F_GETFL, F_SETFL, O_CLOEXEC, O_NONBLOCK}; +use syscall::flag::{F_GETFL, F_SETFL, O_ACCMODE, O_CLOEXEC, O_NONBLOCK}; use syscall::scheme::Scheme; /// Pipes list @@ -155,7 +155,7 @@ impl PipeRead { match cmd { F_GETFL => Ok(self.flags.load(Ordering::SeqCst)), F_SETFL => { - self.flags.store(arg, Ordering::SeqCst); + self.flags.store(arg & ! O_ACCMODE, Ordering::SeqCst); Ok(0) }, _ => Err(Error::new(EINVAL)) @@ -229,7 +229,7 @@ impl PipeWrite { match cmd { F_GETFL => Ok(self.flags.load(Ordering::SeqCst)), F_SETFL => { - self.flags.store(arg, Ordering::SeqCst); + self.flags.store(arg & ! O_ACCMODE, Ordering::SeqCst); Ok(0) }, _ => Err(Error::new(EINVAL))