From e5f4210b092751d028aa4b259389dafdc24aafa7 Mon Sep 17 00:00:00 2001
From: Nick Craig-Wood <nick@craig-wood.com>
Date: Mon, 21 Jan 2019 16:58:27 +0000
Subject: [PATCH] serve restic: use walk.ListR for listing

This is effectively what the old code did anyway so this should not
make any functional changes.
---
 cmd/serve/restic/restic.go | 25 ++++++-------------------
 1 file changed, 6 insertions(+), 19 deletions(-)

diff --git a/cmd/serve/restic/restic.go b/cmd/serve/restic/restic.go
index 113036f48..00799dd54 100644
--- a/cmd/serve/restic/restic.go
+++ b/cmd/serve/restic/restic.go
@@ -330,25 +330,12 @@ func (s *server) listObjects(w http.ResponseWriter, r *http.Request, remote stri
 	ls := listItems{}
 
 	// if remote supports ListR use that directly, otherwise use recursive Walk
-	var err error
-	if ListR := s.f.Features().ListR; ListR != nil {
-		err = ListR(remote, func(entries fs.DirEntries) error {
-			for _, entry := range entries {
-				ls.add(entry)
-			}
-			return nil
-		})
-	} else {
-		err = walk.Walk(s.f, remote, true, -1, func(path string, entries fs.DirEntries, err error) error {
-			if err == nil {
-				for _, entry := range entries {
-					ls.add(entry)
-				}
-			}
-			return err
-		})
-	}
-
+	err := walk.ListR(s.f, remote, true, -1, walk.ListObjects, func(entries fs.DirEntries) error {
+		for _, entry := range entries {
+			ls.add(entry)
+		}
+		return nil
+	})
 	if err != nil {
 		_, err = fserrors.Cause(err)
 		if err != fs.ErrorDirNotFound {