agate

Simple gemini server for static files
git clone https://github.com/mbrubeck/agate.git
Log | Files | Refs | README

commit a70f5e6100a0d91a4b05a40cb4d5e5b7f1d790e5
parent 0909a4def8c798edec860a75faaa7a335a79c053
Author: Matt Brubeck <mbrubeck@limpet.net>
Date:   Sun, 27 Dec 2020 12:18:05 -0800

Use async version of read_dir

Diffstat:
Msrc/main.rs | 5+++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/main.rs b/src/main.rs @@ -228,13 +228,14 @@ async fn send_header<W: Write + Unpin>(stream: &mut W, status: &str, meta: &[&st async fn list_directory<W: Write + Unpin>(stream: &mut W, path: &Path) -> Result { log::info!("Listing directory {:?}", path); send_text_gemini_header(stream).await?; - for entry in std::fs::read_dir(path)? { + let mut entries = async_std::fs::read_dir(path).await?; + while let Some(entry) = entries.next().await { let entry = entry?; let mut name = entry.file_name().into_string().or(Err("Non-Unicode filename"))?; if name.starts_with('.') { continue; } - if entry.file_type()?.is_dir() { + if entry.file_type().await?.is_dir() { name += "/"; } stream.write_all(b"=> ").await?;