From af7021fac828d77e4d9412a053585ab698a75f1f Mon Sep 17 00:00:00 2001 From: 9seconds Date: Fri, 26 Feb 2021 08:11:34 +0300 Subject: [PATCH] Fix urls for missed IPs --- config/urls.go | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/config/urls.go b/config/urls.go index 6d05a42..f657e82 100644 --- a/config/urls.go +++ b/config/urls.go @@ -15,8 +15,8 @@ type URLs struct { } type IPURLs struct { - IPv4 URLs `json:"ipv4"` - IPv6 URLs `json:"ipv6"` + IPv4 *URLs `json:"ipv4,omitempty"` + IPv6 *URLs `json:"ipv6,omitempty"` BotSecret string `json:"secret_for_mtproxybot"` } @@ -32,25 +32,33 @@ func GetURLs() (urls IPURLs) { secret = "ee" + hex.EncodeToString(C.Secret) + hex.EncodeToString([]byte(C.CloakHost)) } - urls.IPv4 = makeURLs(C.PublicIPv4, secret) - urls.IPv6 = makeURLs(C.PublicIPv6, secret) + if C.PublicIPv4.IP != nil { + urls.IPv4 = makeURLs(C.PublicIPv4, secret) + } + + if C.PublicIPv6.IP != nil { + urls.IPv6 = makeURLs(C.PublicIPv6, secret) + } + urls.BotSecret = hex.EncodeToString(C.Secret) return urls } -func makeURLs(addr *net.TCPAddr, secret string) (urls URLs) { +func makeURLs(addr *net.TCPAddr, secret string) *URLs { + urls := &URLs{} + values := url.Values{} values.Set("server", addr.IP.String()) values.Set("port", strconv.Itoa(addr.Port)) values.Set("secret", secret) - urls.TG = makeTGURL(values) - urls.TMe = makeTMeURL(values) - urls.TGQRCode = makeQRCodeURL(urls.TG) - urls.TMeQRCode = makeQRCodeURL(urls.TMe) - - return + return &URLs{ + TG: makeTGURL(values), + TMe: makeTMeURL(values), + TGQRCode: makeQRCodeURL(urls.TG), + TMeQRCode: makeQRCodeURL(urls.TMe), + } } func makeTGURL(values url.Values) string {