From fb56b27062ea2edd0b60decde0c55364b70aa62a Mon Sep 17 00:00:00 2001 From: vvisionnn <0xEFEFEF@gmail.com> Date: Mon, 9 May 2022 19:24:40 +0800 Subject: [PATCH 1/3] fix: delete socket file before run (fixed #1262) (#1279) * fix: delete socket file before run (fixed #1262) * refactor: remove useless logs --- main.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/main.go b/main.go index ed7a409..815612e 100644 --- a/main.go +++ b/main.go @@ -5,6 +5,7 @@ import ( "flag" "io" "io/fs" + "os" "strings" "github.com/cloudreve/Cloudreve/v3/bootstrap" @@ -67,6 +68,14 @@ func main() { // 如果启用了Unix if conf.UnixConfig.Listen != "" { + // delete socket file before listening + if _, err := os.Stat(conf.UnixConfig.Listen); err == nil { + if err = os.Remove(conf.UnixConfig.Listen); err != nil { + util.Log().Error("删除 socket 文件错误, %s", err) + return + } + } + util.Log().Info("开始监听 %s", conf.UnixConfig.Listen) if err := api.RunUnix(conf.UnixConfig.Listen); err != nil { util.Log().Error("无法监听[%s],%s", conf.UnixConfig.Listen, err) From 3fa12496788669a845b6e24d0a51e3986d056bbf Mon Sep 17 00:00:00 2001 From: WeidiDeng Date: Tue, 24 May 2022 10:57:20 +0800 Subject: [PATCH 2/3] fix: use file extension to search for content-type (#1313) --- pkg/webdav/prop.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/webdav/prop.go b/pkg/webdav/prop.go index 7d0b5aa..5e3b4cc 100644 --- a/pkg/webdav/prop.go +++ b/pkg/webdav/prop.go @@ -10,7 +10,9 @@ import ( "encoding/xml" "errors" "fmt" + "mime" "net/http" + "path/filepath" "strconv" "time" @@ -381,7 +383,7 @@ func findContentType(ctx context.Context, fs *filesystem.FileSystem, ls LockSyst //// Rewind file. //_, err = f.Seek(0, os.SEEK_SET) //return ctype, err - return "", nil + return mime.TypeByExtension(filepath.Ext(name)), nil } // ETager is an optional interface for the os.FileInfo objects From 36b310133ce0e1a124fb2c7c0d33d7d0d582d694 Mon Sep 17 00:00:00 2001 From: WeidiDeng Date: Tue, 24 May 2022 11:01:00 +0800 Subject: [PATCH 3/3] fix: IP address is empty in unix socket mode (#1314) --- main.go | 1 + pkg/conf/conf.go | 3 ++- pkg/conf/defaults.go | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 815612e..69e628b 100644 --- a/main.go +++ b/main.go @@ -76,6 +76,7 @@ func main() { } } + api.TrustedPlatform = conf.UnixConfig.ProxyHeader util.Log().Info("开始监听 %s", conf.UnixConfig.Listen) if err := api.RunUnix(conf.UnixConfig.Listen); err != nil { util.Log().Error("无法监听[%s],%s", conf.UnixConfig.Listen, err) diff --git a/pkg/conf/conf.go b/pkg/conf/conf.go index 35ed8b6..a9f7d06 100644 --- a/pkg/conf/conf.go +++ b/pkg/conf/conf.go @@ -35,7 +35,8 @@ type ssl struct { } type unix struct { - Listen string + Listen string + ProxyHeader string `validate:"required_with=Listen"` } // slave 作为slave存储端配置 diff --git a/pkg/conf/defaults.go b/pkg/conf/defaults.go index 44c5371..eabaee5 100644 --- a/pkg/conf/defaults.go +++ b/pkg/conf/defaults.go @@ -45,7 +45,8 @@ var SSLConfig = &ssl{ } var UnixConfig = &unix{ - Listen: "", + Listen: "", + ProxyHeader: "X-Forwarded-For", } var OptionOverwrite = map[string]interface{}{}