diff options
Diffstat (limited to 'src/webdav_fs.rs')
-rw-r--r-- | src/webdav_fs.rs | 43 |
1 files changed, 26 insertions, 17 deletions
diff --git a/src/webdav_fs.rs b/src/webdav_fs.rs index c00d9fc..70e9818 100644 --- a/src/webdav_fs.rs +++ b/src/webdav_fs.rs @@ -1,7 +1,15 @@ //! Helper types and functions to allow configuring hidden files visibility //! for WebDAV handlers -use dav_server::{davpath::DavPath, fs::*, localfs::LocalFs}; +use dav_server::{ + davpath::DavPath, + fs::{ + DavDirEntry, DavFile, DavFileSystem, DavMetaData, FsError as DavFsError, + FsFuture as DavFsFuture, FsStream as DavFsStream, OpenOptions as DavOpenOptions, + ReadDirMeta as DavReadDirMeta, + }, + localfs::LocalFs, +}; use futures::{StreamExt, TryFutureExt, future::ready}; use std::path::{Component, Path}; @@ -34,50 +42,51 @@ impl DavFileSystem for RestrictedFs { fn open<'a>( &'a self, path: &'a DavPath, - options: OpenOptions, - ) -> FsFuture<'a, Box<dyn DavFile>> { + options: DavOpenOptions, + ) -> DavFsFuture<'a, Box<dyn DavFile>> { if !path_has_hidden_components(path) || self.show_hidden { self.local.open(path, options) } else { - Box::pin(ready(Err(FsError::NotFound))) + Box::pin(ready(Err(DavFsError::NotFound))) } } fn read_dir<'a>( &'a self, path: &'a DavPath, - meta: ReadDirMeta, - ) -> FsFuture<'a, FsStream<Box<dyn DavDirEntry>>> { + meta: DavReadDirMeta, + ) -> DavFsFuture<'a, DavFsStream<Box<dyn DavDirEntry>>> { if self.show_hidden { self.local.read_dir(path, meta) } else if !path_has_hidden_components(path) { Box::pin(self.local.read_dir(path, meta).map_ok(|stream| { - let dyn_stream: FsStream<Box<dyn DavDirEntry>> = Box::pin(stream.filter(|entry| { - ready(match entry { - Ok(e) => !e.name().starts_with(b"."), - _ => false, - }) - })); + let dyn_stream: DavFsStream<Box<dyn DavDirEntry>> = + Box::pin(stream.filter(|entry| { + ready(match entry { + Ok(e) => !e.name().starts_with(b"."), + _ => false, + }) + })); dyn_stream })) } else { - Box::pin(ready(Err(FsError::NotFound))) + Box::pin(ready(Err(DavFsError::NotFound))) } } - fn metadata<'a>(&'a self, path: &'a DavPath) -> FsFuture<'a, Box<dyn DavMetaData>> { + fn metadata<'a>(&'a self, path: &'a DavPath) -> DavFsFuture<'a, Box<dyn DavMetaData>> { if !path_has_hidden_components(path) || self.show_hidden { self.local.metadata(path) } else { - Box::pin(ready(Err(FsError::NotFound))) + Box::pin(ready(Err(DavFsError::NotFound))) } } - fn symlink_metadata<'a>(&'a self, path: &'a DavPath) -> FsFuture<'a, Box<dyn DavMetaData>> { + fn symlink_metadata<'a>(&'a self, path: &'a DavPath) -> DavFsFuture<'a, Box<dyn DavMetaData>> { if !path_has_hidden_components(path) || self.show_hidden { self.local.symlink_metadata(path) } else { - Box::pin(ready(Err(FsError::NotFound))) + Box::pin(ready(Err(DavFsError::NotFound))) } } } |