diff --git a/go.mod b/go.mod index 533d9933..2b74b7af 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( ) require ( - github.com/BurntSushi/toml v1.3.0 // indirect + github.com/BurntSushi/toml v1.3.1 // indirect github.com/andybalholm/brotli v1.0.5 // indirect github.com/bytedance/sonic v1.9.1 // indirect github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect diff --git a/go.sum b/go.sum index ad0a1921..8af92e75 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,6 @@ github.com/BurntSushi/toml v1.0.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/BurntSushi/toml v1.3.0 h1:Ws8e5YmnrGEHzZEzg0YvK/7COGYtTC5PbaH9oSSbgfA= -github.com/BurntSushi/toml v1.3.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.3.1 h1:rHnDkSK+/g6DlREUK73PkmIs60pqrnuduK+JmP++JmU= +github.com/BurntSushi/toml v1.3.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/Workiva/go-datastructures v1.1.0 h1:hu20UpgZneBhQ3ZvwiOGlqJSKIosin2Rd5wAKUHEO/k= github.com/Workiva/go-datastructures v1.1.0/go.mod h1:1yZL+zfsztete+ePzZz/Zb1/t5BnDuE2Ya2MMGhzP6A= github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= diff --git a/web/job/check_client_ip_job.go b/web/job/check_client_ip_job.go index fb1227f8..27a4bd7d 100644 --- a/web/job/check_client_ip_job.go +++ b/web/job/check_client_ip_job.go @@ -57,11 +57,6 @@ func processLogFile() { InboundClientIps := make(map[string][]string) checkError(err) - // clean log - if err := os.Truncate(GetAccessLogPath(), 0); err != nil { - checkError(err) - } - lines := strings.Split(string(data), "\n") for _, line := range lines { ipRegx, _ := regexp.Compile(`[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+`) @@ -101,7 +96,13 @@ func processLogFile() { addInboundClientIps(clientEmail, ips) } else { - updateInboundClientIps(inboundClientIps, clientEmail, ips) + shouldCleanLog := updateInboundClientIps(inboundClientIps, clientEmail, ips) + if shouldCleanLog { + // clean log + if err := os.Truncate(GetAccessLogPath(), 0); err != nil { + checkError(err) + } + } } } @@ -182,7 +183,7 @@ func addInboundClientIps(clientEmail string, ips []string) error { } return nil } -func updateInboundClientIps(inboundClientIps *model.InboundClientIps, clientEmail string, ips []string) error { +func updateInboundClientIps(inboundClientIps *model.InboundClientIps, clientEmail string, ips []string) bool { jsonIps, err := json.Marshal(ips) checkError(err) @@ -196,7 +197,7 @@ func updateInboundClientIps(inboundClientIps *model.InboundClientIps, clientEmai if inbound.Settings == "" { logger.Debug("wrong data ", inbound) - return nil + return false } settings := map[string][]model.Client{} @@ -211,6 +212,7 @@ func updateInboundClientIps(inboundClientIps *model.InboundClientIps, clientEmai if limitIp < len(ips) && limitIp != 0 && inbound.Enable { disAllowedIps = append(disAllowedIps, ips[limitIp:]...) + return true } } } @@ -220,10 +222,11 @@ func updateInboundClientIps(inboundClientIps *model.InboundClientIps, clientEmai db := database.GetDB() err = db.Save(inboundClientIps).Error if err != nil { - return err + return false } - return nil + return false } + func DisableInbound(id int) error { db := database.GetDB() result := db.Model(model.Inbound{}).