fix core restart on client change (#2603)

This commit is contained in:
Alireza Ahmadi 2024-11-16 14:35:23 +01:00 committed by GitHub
parent 0a8bfc2725
commit 2ce9c3cc81
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -588,9 +588,13 @@ func (s *InboundService) DelInboundClient(inboundId int, clientId string) (bool,
logger.Debug("Client deleted by api:", email) logger.Debug("Client deleted by api:", email)
needRestart = false needRestart = false
} else { } else {
logger.Debug("Unable to del client by api:", err1) if strings.Contains(err1.Error(), fmt.Sprintf("User %s not found.", email)) {
logger.Debug("User is already deleted. Nothing to do more...")
} else {
logger.Debug("Error in deleting client by api:", err1)
needRestart = true needRestart = true
} }
}
s.xrayApi.Close() s.xrayApi.Close()
} }
} }
@ -713,12 +717,16 @@ func (s *InboundService) UpdateInboundClient(data *model.Inbound, clientId strin
if oldClients[clientIndex].Enable { if oldClients[clientIndex].Enable {
err1 := s.xrayApi.RemoveUser(oldInbound.Tag, oldEmail) err1 := s.xrayApi.RemoveUser(oldInbound.Tag, oldEmail)
if err1 == nil { if err1 == nil {
logger.Debug("Old client deleted by api:", clients[0].Email) logger.Debug("Old client deleted by api:", oldEmail)
} else {
if strings.Contains(err1.Error(), fmt.Sprintf("User %s not found.", oldEmail)) {
logger.Debug("User is already deleted. Nothing to do more...")
} else { } else {
logger.Debug("Error in deleting client by api:", err1) logger.Debug("Error in deleting client by api:", err1)
needRestart = true needRestart = true
} }
} }
}
if clients[0].Enable { if clients[0].Enable {
cipher := "" cipher := ""
if oldInbound.Protocol == "shadowsocks" { if oldInbound.Protocol == "shadowsocks" {
@ -1037,14 +1045,10 @@ func (s *InboundService) disableInvalidInbounds(tx *gorm.DB) (bool, int64, error
if err1 == nil { if err1 == nil {
logger.Debug("Inbound disabled by api:", tag) logger.Debug("Inbound disabled by api:", tag)
} else { } else {
if strings.Contains(err1.Error(), fmt.Sprintf("User %s not found.", tag)) { logger.Debug("Error in disabling inbound by api:", err1)
logger.Debug("User is already disabled. Nothing to do more...")
} else {
logger.Debug("Error in disabling client by api:", err1)
needRestart = true needRestart = true
} }
} }
}
s.xrayApi.Close() s.xrayApi.Close()
} }