diff --git a/sub/subJsonService.go b/sub/subJsonService.go index 680a01c0..e5dfd9af 100644 --- a/sub/subJsonService.go +++ b/sub/subJsonService.go @@ -67,6 +67,7 @@ func NewSubJsonService(fragment string, noises string, mux string, rules string, } } +// TODO: ошибка ч массивм какая то func (s *SubJsonService) GetJson(subId string, host string) (string, string, error) { inbounds, err := s.SubService.getInboundsBySubId(subId) if err != nil || len(inbounds) == 0 { @@ -87,24 +88,28 @@ func (s *SubJsonService) GetJson(subId string, host string) (string, string, err if clients == nil { continue } - if len(inbound.Listen) > 0 && inbound.Listen[0] == '@' { - listen, port, streamSettings, err := s.SubService.getFallbackMaster(inbound.Listen, inbound.StreamSettings) - if err == nil { - inbound.Listen = listen - inbound.Port = port - inbound.StreamSettings = streamSettings + listenAddress := host + if len(inbound.Listen) > 0 { + if inbound.Listen[0] == '@' { + listen, port, streamSettings, err := s.SubService.getFallbackMaster(inbound.Listen, inbound.StreamSettings) + if err == nil { + listenAddress = listen + inbound.Port = port + inbound.StreamSettings = streamSettings + } + } else { + listenAddress = inbound.Listen } } for _, client := range clients { if client.Enable && client.SubID == subId { clientTraffics = append(clientTraffics, s.SubService.getClientTraffics(inbound.ClientStats, client.Email)) - newConfigs := s.getConfig(inbound, client, host) + newConfigs := s.getConfig(inbound, client, listenAddress) configArray = append(configArray, newConfigs...) } } } - if len(configArray) == 0 { return "", "", nil } diff --git a/sub/subService.go b/sub/subService.go index d831b192..dedff004 100644 --- a/sub/subService.go +++ b/sub/subService.go @@ -1,5 +1,7 @@ package sub +// TODO: We need to create a service for link generation and remove link generation from the frontend + import ( "encoding/base64" "fmt" @@ -33,9 +35,7 @@ func NewSubService(showInfo bool, remarkModel string) *SubService { remarkModel: remarkModel, } } - func (s *SubService) GetSubs(subId string, host string) ([]string, string, error) { - s.address = host var result []string var header string var traffic xray.ClientTraffic @@ -61,12 +61,17 @@ func (s *SubService) GetSubs(subId string, host string) ([]string, string, error if clients == nil { continue } - if len(inbound.Listen) > 0 && inbound.Listen[0] == '@' { - listen, port, streamSettings, err := s.getFallbackMaster(inbound.Listen, inbound.StreamSettings) - if err == nil { - inbound.Listen = listen - inbound.Port = port - inbound.StreamSettings = streamSettings + s.address = host + if len(inbound.Listen) > 0 { + if inbound.Listen[0] == '@' { + listen, port, streamSettings, err := s.getFallbackMaster(inbound.Listen, inbound.StreamSettings) + if err == nil { + s.address = listen + inbound.Port = port + inbound.StreamSettings = streamSettings + } + } else { + s.address = inbound.Listen } } for _, client := range clients {