From d1020ce38be29fbfffed43ac6d3eeafdd5d4c5ff Mon Sep 17 00:00:00 2001 From: Daniel Lavrushin Date: Sat, 9 May 2026 13:14:49 +0200 Subject: [PATCH] fix: update port validation logic for Socks5 and MTProto configurations --- src/config/validation.go | 4 ++-- src/config/validation_test.go | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/config/validation.go b/src/config/validation.go index 7d2f5441..1a473554 100644 --- a/src/config/validation.go +++ b/src/config/validation.go @@ -264,14 +264,14 @@ func (c *Config) checkPortCollisions(v *validator) { if c.System.WebServer.Port > 0 && c.System.WebServer.Port <= 65535 { refs = append(refs, portRef{"system.web_server.port", c.System.WebServer.Port}) } - if c.System.Socks5.Enabled && c.System.Socks5.Port > 0 { + if c.System.Socks5.Enabled { if c.System.Socks5.Port < 1 || c.System.Socks5.Port > 65535 { v.add("system.socks5.port", "out_of_range", "port must be between 1 and 65535", portRangeParams) } else { refs = append(refs, portRef{"system.socks5.port", c.System.Socks5.Port}) } } - if c.System.MTProto.Enabled && c.System.MTProto.Port > 0 { + if c.System.MTProto.Enabled { if c.System.MTProto.Port < 1 || c.System.MTProto.Port > 65535 { v.add("system.mtproto.port", "out_of_range", "port must be between 1 and 65535", portRangeParams) } else { diff --git a/src/config/validation_test.go b/src/config/validation_test.go index cab79235..25ec8b4e 100644 --- a/src/config/validation_test.go +++ b/src/config/validation_test.go @@ -98,6 +98,14 @@ func TestValidate_PortOutOfRange(t *testing.T) { c.System.Socks5.Enabled = true c.System.Socks5.Port = 70000 }, "system.socks5.port"}, + {"mtproto enabled with port 0", func(c *Config) { + c.System.MTProto.Enabled = true + c.System.MTProto.Port = 0 + }, "system.mtproto.port"}, + {"socks5 enabled with port 0", func(c *Config) { + c.System.Socks5.Enabled = true + c.System.Socks5.Port = 0 + }, "system.socks5.port"}, } for _, tc := range cases { t.Run(tc.name, func(t *testing.T) {