Browse Source

[migrate] remove orphaned traffics

Co-Authored-By: Alireza Ahmadi <[email protected]>
MHSanaei 1 year ago
parent
commit
103a26edb6
1 changed files with 7 additions and 0 deletions
  1. 7 0
      web/service/inbound.go

+ 7 - 0
web/service/inbound.go

@@ -912,6 +912,8 @@ func (s *InboundService) SearchInbounds(query string) ([]*model.Inbound, error)
 
 func (s *InboundService) MigrationRequirements() {
 	db := database.GetDB()
+
+	// Fix inbounds based problems
 	var inbounds []*model.Inbound
 	err := db.Model(model.Inbound{}).Where("protocol IN (?)", []string{"vmess", "vless", "trojan"}).Find(&inbounds).Error
 	if err != nil && err != gorm.ErrRecordNotFound {
@@ -922,6 +924,7 @@ func (s *InboundService) MigrationRequirements() {
 		json.Unmarshal([]byte(inbounds[inbound_index].Settings), &settings)
 		clients, ok := settings["clients"].([]interface{})
 		if ok {
+			// Fix Clinet configuration problems
 			var newClients []interface{}
 			for client_index := range clients {
 				c := clients[client_index].(map[string]interface{})
@@ -947,6 +950,7 @@ func (s *InboundService) MigrationRequirements() {
 
 			inbounds[inbound_index].Settings = string(modifiedSettings)
 		}
+		// Add client traffic row for all clients which has email
 		modelClients, err := s.getClients(inbounds[inbound_index])
 		if err != nil {
 			return
@@ -962,4 +966,7 @@ func (s *InboundService) MigrationRequirements() {
 		}
 	}
 	db.Save(inbounds)
+
+	// Remove orphaned traffics
+	db.Where("inbound_id = 0").Delete(xray.ClientTraffic{})
 }