Browse Source

access.log #571

access.log will be clear only when limitip is not 0
MHSanaei 1 year ago
parent
commit
29e40a0bce
3 changed files with 16 additions and 13 deletions
  1. 1 1
      go.mod
  2. 2 2
      go.sum
  3. 13 10
      web/job/check_client_ip_job.go

+ 1 - 1
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

+ 2 - 2
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=

+ 13 - 10
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{}).