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,8 +588,12 @@ 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)) {
needRestart = true logger.Debug("User is already deleted. Nothing to do more...")
} else {
logger.Debug("Error in deleting client by api:", err1)
needRestart = true
}
} }
s.xrayApi.Close() s.xrayApi.Close()
} }
@ -713,10 +717,14 @@ 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 { } else {
logger.Debug("Error in deleting client by api:", err1) if strings.Contains(err1.Error(), fmt.Sprintf("User %s not found.", oldEmail)) {
needRestart = true logger.Debug("User is already deleted. Nothing to do more...")
} else {
logger.Debug("Error in deleting client by api:", err1)
needRestart = true
}
} }
} }
if clients[0].Enable { if clients[0].Enable {
@ -1037,12 +1045,8 @@ 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...") needRestart = true
} else {
logger.Debug("Error in disabling client by api:", err1)
needRestart = true
}
} }
} }
s.xrayApi.Close() s.xrayApi.Close()