]> OzVa Git service - ozva-cloud/commitdiff
fix: search should ignore entry path (#235)
authorsigoden <sigoden@gmail.com>
Thu, 15 Jun 2023 00:28:21 +0000 (08:28 +0800)
committerGitHub <noreply@github.com>
Thu, 15 Jun 2023 00:28:21 +0000 (08:28 +0800)
src/server.rs
tests/http.rs

index dba58b03e51d11079e021209343a8d88c1eed9fb..71af7469e70a79ecf7f5849a9fef938500dea82b 100644 (file)
@@ -493,6 +493,7 @@ impl Server {
                 let mut paths: Vec<PathBuf> = vec![];
                 for dir in access_paths.leaf_paths(&path_buf) {
                     let mut it = WalkDir::new(&dir).into_iter();
+                    it.next();
                     while let Some(Ok(entry)) = it.next() {
                         if !running.load(Ordering::SeqCst) {
                             break;
@@ -1333,6 +1334,7 @@ async fn zip_dir<W: AsyncWrite + Unpin>(
         let mut paths: Vec<PathBuf> = vec![];
         for dir in access_paths.leaf_paths(&dir_clone) {
             let mut it = WalkDir::new(&dir).into_iter();
+            it.next();
             while let Some(Ok(entry)) = it.next() {
                 if !running.load(Ordering::SeqCst) {
                     break;
index cc2e29543cf28ca01678e9db242ed6aab2efdbba..9c0d4648dc2d3e92c0743c16ac741db4e1c7af81 100644 (file)
@@ -123,6 +123,15 @@ fn get_dir_search3(#[with(&["-A"])] server: TestServer) -> Result<(), Error> {
     Ok(())
 }
 
+#[rstest]
+fn get_dir_search4(#[with(&["-A"])] server: TestServer) -> Result<(), Error> {
+    let resp = reqwest::blocking::get(format!("{}dir1?q=dir1&simple", server.url()))?;
+    assert_eq!(resp.status(), 200);
+    let text = resp.text().unwrap();
+    assert!(text.is_empty());
+    Ok(())
+}
+
 #[rstest]
 fn head_dir_search(#[with(&["-A"])] server: TestServer) -> Result<(), Error> {
     let resp = fetch!(b"HEAD", format!("{}?q={}", server.url(), "test.html")).send()?;