diff options
| author | MHSanaei <ho3ein.sanaei@gmail.com> | 2023-06-16 00:38:35 +0300 |
|---|---|---|
| committer | MHSanaei <ho3ein.sanaei@gmail.com> | 2023-06-16 00:38:35 +0300 |
| commit | 4cc755c8830adc7c9cdd5ea769f893753a7d0a20 (patch) | |
| tree | 40f16f104f8b25a80b44dbb57ef443835e48dcad /web/job | |
| parent | 4e89c71095614ff2207f71925e18e5a8cd2cd830 (diff) | |
fix warning when there is no access.log
after this
if limitip is 0 and there is no access.log on xray config you don't see this warning
access.log doesn't exist in your config.json
-------------
better view on ip log
-------------
update dependencies
Diffstat (limited to 'web/job')
| -rw-r--r-- | web/job/check_client_ip_job.go | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/web/job/check_client_ip_job.go b/web/job/check_client_ip_job.go index 87789517..348f9b9d 100644 --- a/web/job/check_client_ip_job.go +++ b/web/job/check_client_ip_job.go @@ -29,7 +29,10 @@ func NewCheckClientIpJob() *CheckClientIpJob { func (j *CheckClientIpJob) Run() { logger.Debug("Check Client IP Job...") - processLogFile() + + if hasLimitIp() { + processLogFile() + } blockedIps := []byte(strings.Join(disAllowedIps, ",")) @@ -43,6 +46,33 @@ func (j *CheckClientIpJob) Run() { checkError(err) } +func hasLimitIp() bool { + db := database.GetDB() + var inbounds []*model.Inbound + err := db.Model(model.Inbound{}).Find(&inbounds).Error + if err != nil { + return false + } + + for _, inbound := range inbounds { + if inbound.Settings == "" { + continue + } + + settings := map[string][]model.Client{} + json.Unmarshal([]byte(inbound.Settings), &settings) + clients := settings["clients"] + + for _, client := range clients { + limitIp := client.LimitIP + if limitIp > 0 { + return true + } + } + } + return false +} + func processLogFile() { accessLogPath := GetAccessLogPath() if accessLogPath == "" { @@ -98,7 +128,7 @@ func processLogFile() { } } - + time.Sleep(time.Second * 5) //added 5 seconds delay before cleaning logs to reduce chance of logging IP that already has been banned if shouldCleanLog { @@ -211,11 +241,11 @@ func updateInboundClientIps(inboundClientIps *model.InboundClientIps, clientEmai if limitIp < len(ips) && inbound.Enable { disAllowedIps = append(disAllowedIps, ips[limitIp:]...) - for i:=limitIp; i < len(ips); i++ { + for i := limitIp; i < len(ips); i++ { logger.Info("[LIMIT_IP] Email=", clientEmail, " SRC=", ips[i]) } } - } + } } } logger.Debug("disAllowedIps ", disAllowedIps) @@ -252,4 +282,4 @@ func GetInboundByEmail(clientEmail string) (*model.Inbound, error) { return nil, err } return inbounds, nil -}
\ No newline at end of file +} |
