From 4b9940fb06414975f54278053739885c2046b1b4 Mon Sep 17 00:00:00 2001 From: Alireza Ahmadi Date: Tue, 11 Apr 2023 14:25:06 +0200 Subject: [PATCH] Fix #161 --- web/service/inbound.go | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/web/service/inbound.go b/web/service/inbound.go index 84944378..829a5239 100644 --- a/web/service/inbound.go +++ b/web/service/inbound.go @@ -425,12 +425,10 @@ func (s *InboundService) adjustTraffics(traffics []*xray.ClientTraffic) (full_tr } continue } - // get settings clients - settings := map[string]interface{}{} - json.Unmarshal([]byte(inbound.Settings), &settings) - clients, ok := settings["clients"].([]model.Client) + // get clients + clients, err := s.getClients(inbound) needUpdate := false - if ok { + if err == nil { for client_index, client := range clients { if traffic.Email == client.Email { if client.ExpiryTime < 0 { @@ -445,7 +443,16 @@ func (s *InboundService) adjustTraffics(traffics []*xray.ClientTraffic) (full_tr } if needUpdate { - settings["clients"] = clients + settings := map[string]interface{}{} + json.Unmarshal([]byte(inbound.Settings), &settings) + + // Convert clients to []interface to update clients in settings + var clientsInterface []interface{} + for _, c := range clients { + clientsInterface = append(clientsInterface, interface{}(c)) + } + + settings["clients"] = clientsInterface modifiedSettings, err := json.MarshalIndent(settings, "", " ") if err != nil { return nil, err