From 3be40f85958cee6aaa53c857e557cf2623a35564 Mon Sep 17 00:00:00 2001 From: Alireza Ahmadi Date: Sun, 23 Jul 2023 11:51:27 +0200 Subject: [PATCH] fix logs after api changes #443 --- web/service/inbound.go | 52 ++++++++++++++++++++++++++++-------------- xray/api.go | 2 ++ 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/web/service/inbound.go b/web/service/inbound.go index 09a01391..8655de6d 100644 --- a/web/service/inbound.go +++ b/web/service/inbound.go @@ -313,14 +313,15 @@ func (s *InboundService) UpdateInbound(inbound *model.Inbound) (*model.Inbound, inboundJson, err2 := json.MarshalIndent(oldInbound.GenXrayInboundConfig(), "", " ") if err2 != nil { logger.Debug("Unable to marshal updated inbound config:", err2) - } - - err2 = s.xrayApi.AddInbound(inboundJson) - if err1 == nil { - logger.Debug("Updated inbound added by api:", oldInbound.Tag) - } else { - logger.Debug("Unable to update inbound by api:", err2) needRestart = true + } else { + err2 = s.xrayApi.AddInbound(inboundJson) + if err2 == nil { + logger.Debug("Updated inbound added by api:", oldInbound.Tag) + } else { + logger.Debug("Unable to update inbound by api:", err2) + needRestart = true + } } } } @@ -456,6 +457,7 @@ func (s *InboundService) AddInboundClient(data *model.Inbound) (bool, error) { if err1 == nil { logger.Debug("Client added by api:", client.Email) } else { + logger.Debug("Error in adding client by api:", err1) needRestart = true } } @@ -516,15 +518,18 @@ func (s *InboundService) DelInboundClient(inboundId int, clientId string) (bool, return false, err } needRestart := false - s.xrayApi.Init(p.GetAPIPort()) if len(email) > 0 { - err = s.xrayApi.RemoveUser(oldInbound.Tag, email) - if err == nil { + s.xrayApi.Init(p.GetAPIPort()) + err1 := s.xrayApi.RemoveUser(oldInbound.Tag, email) + if err1 == nil { logger.Debug("Client deleted by api:", email) needRestart = false + } else { + logger.Debug("Unable to del client by api:", err1) + needRestart = true } + s.xrayApi.Close() } - s.xrayApi.Close() return needRestart, db.Save(oldInbound).Error } @@ -622,8 +627,8 @@ func (s *InboundService) UpdateInboundClient(data *model.Inbound, clientId strin } } needRestart := false - s.xrayApi.Init(p.GetAPIPort()) if len(oldEmail) > 0 { + s.xrayApi.Init(p.GetAPIPort()) s.xrayApi.RemoveUser(oldInbound.Tag, oldEmail) if clients[0].Enable { err1 := s.xrayApi.AddUser(string(oldInbound.Protocol), oldInbound.Tag, map[string]interface{}{ @@ -634,14 +639,19 @@ func (s *InboundService) UpdateInboundClient(data *model.Inbound, clientId strin }) if err1 == nil { logger.Debug("Client edited by api:", clients[0].Email) - needRestart = false + } else { + logger.Debug("Error in adding client by api:", err1) + needRestart = true } } else { logger.Debug("Client disabled by api:", clients[0].Email) needRestart = false } + s.xrayApi.Close() + } else { + logger.Debug("Client old email not found") + needRestart = true } - s.xrayApi.Close() return needRestart, tx.Save(oldInbound).Error } @@ -695,6 +705,11 @@ func (s *InboundService) AddClientTraffic(traffics []*xray.ClientTraffic) (err e return err } + // Avoid empty slice error + if len(dbClientTraffics) == 0 { + return nil + } + dbClientTraffics, err = s.adjustTraffics(tx, dbClientTraffics) if err != nil { return err @@ -786,10 +801,11 @@ func (s *InboundService) DisableInvalidInbounds() (bool, int64, error) { } s.xrayApi.Init(p.GetAPIPort()) for _, tag := range tags { - err = s.xrayApi.DelInbound(tag) + err1 := s.xrayApi.DelInbound(tag) if err == nil { logger.Debug("Inbound disabled by api:", tag) } else { + logger.Debug("Error in disabling inbound by api:", err1) needRestart = true } } @@ -825,10 +841,11 @@ func (s *InboundService) DisableInvalidClients() (bool, int64, error) { } s.xrayApi.Init(p.GetAPIPort()) for _, result := range results { - err = s.xrayApi.RemoveUser(result.Tag, result.Email) - if err == nil { + err1 := s.xrayApi.RemoveUser(result.Tag, result.Email) + if err1 == nil { logger.Debug("Client disabled by api:", result.Email) } else { + logger.Debug("Error in disabling client by api:", err1) needRestart = true } } @@ -920,6 +937,7 @@ func (s *InboundService) ResetClientTraffic(id int, clientEmail string) (bool, e if err1 == nil { logger.Debug("Client enabled due to reset traffic:", clientEmail) } else { + logger.Debug("Error in enabling client by api:", err1) needRestart = true } s.xrayApi.Close() diff --git a/xray/api.go b/xray/api.go index 0f5b9ca3..7a7bbd88 100644 --- a/xray/api.go +++ b/xray/api.go @@ -61,10 +61,12 @@ func (x *XrayAPI) AddInbound(inbound []byte) error { err := json.Unmarshal(inbound, conf) if err != nil { logger.Debug("Failed to unmarshal inbound:", err) + return err } config, err := conf.Build() if err != nil { logger.Debug("Failed to build inbound Detur:", err) + return err } inboundConfig := command.AddInboundRequest{Inbound: config}