Prechádzať zdrojové kódy

avoid empty client id

Co-Authored-By: Alireza Ahmadi <[email protected]>
MHSanaei 1 rok pred
rodič
commit
5f3c2f781e
1 zmenil súbory, kde vykonal 11 pridanie a 2 odobranie
  1. 11 2
      web/service/inbound.go

+ 11 - 2
web/service/inbound.go

@@ -573,15 +573,19 @@ func (s *InboundService) UpdateInboundClient(data *model.Inbound, clientId strin
 	}
 
 	oldEmail := ""
+	newClientId := ""
 	clientIndex := 0
 	for index, oldClient := range oldClients {
 		oldClientId := ""
 		if oldInbound.Protocol == "trojan" {
 			oldClientId = oldClient.Password
+			newClientId = clients[0].Password
 		} else if oldInbound.Protocol == "shadowsocks" {
 			oldClientId = oldClient.Email
+			newClientId = clients[0].Email
 		} else {
 			oldClientId = oldClient.ID
+			newClientId = clients[0].ID
 		}
 		if clientId == oldClientId {
 			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 {
 		existEmail, err := s.checkEmailsExistForClients(clients)
 		if err != nil {
@@ -682,7 +691,7 @@ func (s *InboundService) UpdateInboundClient(data *model.Inbound, clientId strin
 	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
 	db := database.GetDB()
 	tx := db.Begin()
@@ -694,7 +703,7 @@ func (s *InboundService) AddTraffic(traffics []*xray.Traffic, clientTraffics []*
 			tx.Commit()
 		}
 	}()
-	err = s.addInboundTraffic(tx, traffics)
+	err = s.addInboundTraffic(tx, inboundTraffics)
 	if err != nil {
 		return err, false
 	}