Skip to content

Commit

Permalink
Fix: concurrent logging lock / Feat: listen SSL (#287)
Browse files Browse the repository at this point in the history
  • Loading branch information
HFO4 committed May 23, 2020
1 parent e038350 commit bfb5b34
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 0 deletions.
2 changes: 2 additions & 0 deletions bootstrap/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,13 @@ func CheckUpdate() {
res, err := client.Request("GET", "https://api.github.com/repos/cloudreve/cloudreve/releases", nil).GetResponse()
if err != nil {
util.Log().Warning("更新检查失败, %s", err)
return
}

var list []GitHubRelease
if err := json.Unmarshal([]byte(res), &list); err != nil {
util.Log().Warning("更新检查失败, %s", err)
return
}

if len(list) > 0 {
Expand Down
12 changes: 12 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,18 @@ func init() {

func main() {
api := routers.InitRouter()

// 如果启用了SSL
if conf.SSLConfig.CertPath != "" {
go func() {
util.Log().Info("开始监听 %s", conf.SSLConfig.Listen)
if err := api.RunTLS(conf.SSLConfig.Listen,
conf.SSLConfig.CertPath, conf.SSLConfig.KeyPath); err != nil {
util.Log().Error("无法监听[%s],%s", conf.SSLConfig.Listen, err)
}
}()
}

util.Log().Info("开始监听 %s", conf.SystemConfig.Listen)
if err := api.Run(conf.SystemConfig.Listen); err != nil {
util.Log().Error("无法监听[%s],%s", conf.SystemConfig.Listen, err)
Expand Down
7 changes: 7 additions & 0 deletions pkg/conf/conf.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ type system struct {
HashIDSalt string
}

type ssl struct {
CertPath string `validate:"omitempty,required"`
KeyPath string `validate:"omitempty,required"`
Listen string `validate:"required"`
}

// slave 作为slave存储端配置
type slave struct {
Secret string `validate:"omitempty,gte=64"`
Expand Down Expand Up @@ -113,6 +119,7 @@ func Init(path string) {
sections := map[string]interface{}{
"Database": DatabaseConfig,
"System": SystemConfig,
"SSL": SSLConfig,
"Captcha": CaptchaConfig,
"Redis": RedisConfig,
"Thumbnail": ThumbConfig,
Expand Down
6 changes: 6 additions & 0 deletions pkg/conf/defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,9 @@ var SlaveConfig = &slave{
CallbackTimeout: 20,
SignatureTTL: 60,
}

var SSLConfig = &ssl{
Listen: ":443",
CertPath: "",
KeyPath: "",
}
6 changes: 6 additions & 0 deletions pkg/util/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package util
import (
"fmt"
"github.com/fatih/color"
"sync"
"time"
)

Expand All @@ -23,6 +24,7 @@ var Level = LevelDebug
// Logger 日志
type Logger struct {
level int
mu sync.Mutex
}

// 日志颜色
Expand All @@ -49,6 +51,10 @@ func (ll *Logger) Println(prefix string, msg string) {
// color.NoColor = false

c := color.New()

ll.mu.Lock()
defer ll.mu.Unlock()

_, _ = c.Printf(
"%s%s %s %s\n",
colors[prefix]("["+prefix+"]"),
Expand Down

0 comments on commit bfb5b34

Please sign in to comment.