From e462c349a5c3ad61dbd1c9d0c249b1f8a6f9390e Mon Sep 17 00:00:00 2001 From: hexxa Date: Sun, 12 Sep 2021 17:05:28 +0800 Subject: [PATCH] fix(files): isSharing always return true --- src/fileinfostore/file_info_store.go | 5 +++-- src/handlers/fileshdr/handlers.go | 4 ++-- src/server/server.go | 1 - src/server/server_files_test.go | 29 ++++++++++++++++------------ 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/src/fileinfostore/file_info_store.go b/src/fileinfostore/file_info_store.go index 760e8f8..8050196 100644 --- a/src/fileinfostore/file_info_store.go +++ b/src/fileinfostore/file_info_store.go @@ -102,10 +102,11 @@ func (fi *FileInfoStore) DelSharing(dirPath string) error { } func (fi *FileInfoStore) GetSharing(dirPath string) (bool, bool) { - // TODO: add lock + fi.mtx.Lock() + defer fi.mtx.Unlock() + info, err := fi.GetInfo(dirPath) if err != nil { - // TODO: error is ignored return false, false } return info.IsDir && info.Shared, true diff --git a/src/handlers/fileshdr/handlers.go b/src/handlers/fileshdr/handlers.go index 253e7df..0e71d1b 100644 --- a/src/handlers/fileshdr/handlers.go +++ b/src/handlers/fileshdr/handlers.go @@ -839,8 +839,8 @@ func (h *FileHandlers) IsSharing(c *gin.Context) { return } - _, ok := h.deps.FileInfos().GetSharing(dirPath) - if ok { + exist, ok := h.deps.FileInfos().GetSharing(dirPath) + if exist && ok { c.JSON(q.Resp(200)) } else { c.JSON(q.Resp(404)) diff --git a/src/server/server.go b/src/server/server.go index c8f0301..6b346ff 100644 --- a/src/server/server.go +++ b/src/server/server.go @@ -131,7 +131,6 @@ func initDeps(cfg gocfg.ICfg) *depidx.Deps { queueSize := cfg.GrabInt("Workers.QueueSize") sleepCyc := cfg.GrabInt("Workers.SleepCyc") workerCount := cfg.GrabInt("Workers.WorkerCount") - fmt.Println(queueSize, sleepCyc, workerCount) workers := localworker.NewWorkerPool(queueSize, sleepCyc, workerCount, logger) workers.Start() diff --git a/src/server/server_files_test.go b/src/server/server_files_test.go index a89412b..49d32ed 100644 --- a/src/server/server_files_test.go +++ b/src/server/server_files_test.go @@ -423,18 +423,14 @@ func TestFileHandlers(t *testing.T) { assertDownloadOK(t, filePath, content, addr, token) } - i := 0 for filePath := range files { - if i++; i%2 == 0 { - dirPath := filepath.Dir(filePath) - delete(sharedPaths, dirPath) + dirPath := filepath.Dir(filePath) - res, _, errs := cl.DelSharing(dirPath) - if len(errs) > 0 { - t.Fatal(errs) - } else if res.StatusCode != 200 { - t.Fatal(res.StatusCode) - } + res, _, errs := cl.DelSharing(dirPath) + if len(errs) > 0 { + t.Fatal(errs) + } else if res.StatusCode != 200 { + t.Fatal(res.StatusCode) } } @@ -446,8 +442,17 @@ func TestFileHandlers(t *testing.T) { t.Fatal(res.StatusCode) } for _, dirPath := range shRes.SharingDirs { - if !sharedPaths[dirPath] { - t.Fatalf("sharing %s not found", dirPath) + if sharedPaths[dirPath] { + t.Fatalf("sharing %s should be deleted", dirPath) + } + } + + for dirPath := range sharedPaths { + res, _, errs := cl.IsSharing(dirPath) + if len(errs) > 0 { + t.Fatal(errs) + } else if res.StatusCode != 404 { + t.Fatal(res.StatusCode) } } })