avoid empty client id

Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
This commit is contained in:
MHSanaei 2024-03-11 11:52:28 +03:30
parent 6c73791cab
commit 5f3c2f781e

View file

@ -573,15 +573,19 @@ func (s *InboundService) UpdateInboundClient(data *model.Inbound, clientId strin
} }
oldEmail := "" oldEmail := ""
newClientId := ""
clientIndex := 0 clientIndex := 0
for index, oldClient := range oldClients { for index, oldClient := range oldClients {
oldClientId := "" oldClientId := ""
if oldInbound.Protocol == "trojan" { if oldInbound.Protocol == "trojan" {
oldClientId = oldClient.Password oldClientId = oldClient.Password
newClientId = clients[0].Password
} else if oldInbound.Protocol == "shadowsocks" { } else if oldInbound.Protocol == "shadowsocks" {
oldClientId = oldClient.Email oldClientId = oldClient.Email
newClientId = clients[0].Email
} else { } else {
oldClientId = oldClient.ID oldClientId = oldClient.ID
newClientId = clients[0].ID
} }
if clientId == oldClientId { if clientId == oldClientId {
oldEmail = oldClient.Email oldEmail = oldClient.Email
@ -590,6 +594,11 @@ func (s *InboundService) UpdateInboundClient(data *model.Inbound, clientId strin
} }
} }
// Validate new client ID
if newClientId == "" {
return false, common.NewError("empty client ID")
}
if len(clients[0].Email) > 0 && clients[0].Email != oldEmail { if len(clients[0].Email) > 0 && clients[0].Email != oldEmail {
existEmail, err := s.checkEmailsExistForClients(clients) existEmail, err := s.checkEmailsExistForClients(clients)
if err != nil { if err != nil {
@ -682,7 +691,7 @@ func (s *InboundService) UpdateInboundClient(data *model.Inbound, clientId strin
return needRestart, tx.Save(oldInbound).Error return needRestart, tx.Save(oldInbound).Error
} }
func (s *InboundService) AddTraffic(traffics []*xray.Traffic, clientTraffics []*xray.ClientTraffic) (error, bool) { func (s *InboundService) AddTraffic(inboundTraffics []*xray.Traffic, clientTraffics []*xray.ClientTraffic) (error, bool) {
var err error var err error
db := database.GetDB() db := database.GetDB()
tx := db.Begin() tx := db.Begin()
@ -694,7 +703,7 @@ func (s *InboundService) AddTraffic(traffics []*xray.Traffic, clientTraffics []*
tx.Commit() tx.Commit()
} }
}() }()
err = s.addInboundTraffic(tx, traffics) err = s.addInboundTraffic(tx, inboundTraffics)
if err != nil { if err != nil {
return err, false return err, false
} }