Procházet zdrojové kódy

Fix urls for missed IPs

tags/v1.0.8
9seconds před 5 roky
rodič
revize
af7021fac8
1 změnil soubory, kde provedl 19 přidání a 11 odebrání
  1. 19
    11
      config/urls.go

+ 19
- 11
config/urls.go Zobrazit soubor

@@ -15,8 +15,8 @@ type URLs struct {
15 15
 }
16 16
 
17 17
 type IPURLs struct {
18
-	IPv4      URLs   `json:"ipv4"`
19
-	IPv6      URLs   `json:"ipv6"`
18
+	IPv4      *URLs  `json:"ipv4,omitempty"`
19
+	IPv6      *URLs  `json:"ipv6,omitempty"`
20 20
 	BotSecret string `json:"secret_for_mtproxybot"`
21 21
 }
22 22
 
@@ -32,25 +32,33 @@ func GetURLs() (urls IPURLs) {
32 32
 		secret = "ee" + hex.EncodeToString(C.Secret) + hex.EncodeToString([]byte(C.CloakHost))
33 33
 	}
34 34
 
35
-	urls.IPv4 = makeURLs(C.PublicIPv4, secret)
36
-	urls.IPv6 = makeURLs(C.PublicIPv6, secret)
35
+	if C.PublicIPv4.IP != nil {
36
+		urls.IPv4 = makeURLs(C.PublicIPv4, secret)
37
+	}
38
+
39
+	if C.PublicIPv6.IP != nil {
40
+		urls.IPv6 = makeURLs(C.PublicIPv6, secret)
41
+	}
42
+
37 43
 	urls.BotSecret = hex.EncodeToString(C.Secret)
38 44
 
39 45
 	return urls
40 46
 }
41 47
 
42
-func makeURLs(addr *net.TCPAddr, secret string) (urls URLs) {
48
+func makeURLs(addr *net.TCPAddr, secret string) *URLs {
49
+	urls := &URLs{}
50
+
43 51
 	values := url.Values{}
44 52
 	values.Set("server", addr.IP.String())
45 53
 	values.Set("port", strconv.Itoa(addr.Port))
46 54
 	values.Set("secret", secret)
47 55
 
48
-	urls.TG = makeTGURL(values)
49
-	urls.TMe = makeTMeURL(values)
50
-	urls.TGQRCode = makeQRCodeURL(urls.TG)
51
-	urls.TMeQRCode = makeQRCodeURL(urls.TMe)
52
-
53
-	return
56
+	return &URLs{
57
+		TG:        makeTGURL(values),
58
+		TMe:       makeTMeURL(values),
59
+		TGQRCode:  makeQRCodeURL(urls.TG),
60
+		TMeQRCode: makeQRCodeURL(urls.TMe),
61
+	}
54 62
 }
55 63
 
56 64
 func makeTGURL(values url.Values) string {

Načítá se…
Zrušit
Uložit