Fix wasi::fs::OpenOptions to imply write when append is on

This commit is contained in:
Yuto Kawamura 2020-08-05 20:30:06 +09:00
parent 7f8ff84b51
commit 165a6e597e

View File

@ -46,6 +46,7 @@ pub struct DirEntry {
pub struct OpenOptions {
read: bool,
write: bool,
append: bool,
dirflags: wasi::Lookupflags,
fdflags: wasi::Fdflags,
oflags: wasi::Oflags,
@ -270,8 +271,9 @@ fn oflag(&mut self, bit: wasi::Oflags, set: bool) {
}
}
pub fn append(&mut self, set: bool) {
self.fdflag(wasi::FDFLAGS_APPEND, set);
pub fn append(&mut self, append: bool) {
self.append = append;
self.fdflag(wasi::FDFLAGS_APPEND, append);
}
pub fn dsync(&mut self, set: bool) {
@ -321,7 +323,7 @@ fn rights_base(&self) -> wasi::Rights {
base |= wasi::RIGHTS_FD_READ;
base |= wasi::RIGHTS_FD_READDIR;
}
if self.write {
if self.write || self.append {
base |= wasi::RIGHTS_FD_WRITE;
base |= wasi::RIGHTS_FD_DATASYNC;
base |= wasi::RIGHTS_FD_ALLOCATE;