Browse Source

fix: caught 500 if no permission to access dir

releated #4
pull/8/head
sigoden 3 years ago
parent
commit
35ed4394df
  1. 8
      src/server.rs

8
src/server.rs

@ -241,7 +241,13 @@ impl InnerService { @@ -241,7 +241,13 @@ impl InnerService {
async fn handle_ls_dir(&self, path: &Path, exist: bool, res: &mut Response) -> BoxResult<()> {
let mut paths: Vec<PathItem> = vec![];
if exist {
let mut rd = fs::read_dir(path).await?;
let mut rd = match fs::read_dir(path).await {
Ok(rd) => rd,
Err(_) => {
status!(res, StatusCode::FORBIDDEN);
return Ok(());
}
};
while let Some(entry) = rd.next_entry().await? {
let entry_path = entry.path();
if let Ok(Some(item)) = self.to_pathitem(entry_path, path.to_path_buf()).await {

Loading…
Cancel
Save