Просмотр исходного кода

Merge pull request #176 from 9seconds/fix-urls

Fix urls for missed IPs
undefined
Sergey Arkhipov 5 лет назад
Родитель
Сommit
ac0b442b43
Аккаунт пользователя с таким Email не найден
1 измененных файлов: 19 добавлений и 11 удалений
  1. 19
    11
      config/urls.go

+ 19
- 11
config/urls.go Просмотреть файл

15
 }
15
 }
16
 
16
 
17
 type IPURLs struct {
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
 	BotSecret string `json:"secret_for_mtproxybot"`
20
 	BotSecret string `json:"secret_for_mtproxybot"`
21
 }
21
 }
22
 
22
 
32
 		secret = "ee" + hex.EncodeToString(C.Secret) + hex.EncodeToString([]byte(C.CloakHost))
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
 	urls.BotSecret = hex.EncodeToString(C.Secret)
43
 	urls.BotSecret = hex.EncodeToString(C.Secret)
38
 
44
 
39
 	return urls
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
 	values := url.Values{}
51
 	values := url.Values{}
44
 	values.Set("server", addr.IP.String())
52
 	values.Set("server", addr.IP.String())
45
 	values.Set("port", strconv.Itoa(addr.Port))
53
 	values.Set("port", strconv.Itoa(addr.Port))
46
 	values.Set("secret", secret)
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
 func makeTGURL(values url.Values) string {
64
 func makeTGURL(values url.Values) string {

Загрузка…
Отмена
Сохранить