| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package telegram
-
- import (
- "context"
- "errors"
-
- "github.com/9seconds/mtg/v2/essentials"
- )
-
- var errNoAddresses = errors.New("no addresses")
-
- type preferIP uint8
-
- const (
- preferIPOnlyIPv4 preferIP = iota
- preferIPOnlyIPv6
- preferIPPreferIPv4
- preferIPPreferIPv6
- )
-
- type tgAddr struct {
- network string
- address string
- }
-
- // https://github.com/telegramdesktop/tdesktop/blob/master/Telegram/SourceFiles/mtproto/mtproto_dc_options.cpp#L30
- var (
- productionV4Addresses = [][]tgAddr{
- { // dc1
- {network: "tcp4", address: "149.154.175.50:443"},
- },
- { // dc2
- {network: "tcp4", address: "149.154.167.51:443"},
- {network: "tcp4", address: "95.161.76.100:443"},
- },
- { // dc3
- {network: "tcp4", address: "149.154.175.100:443"},
- },
- { // dc4
- {network: "tcp4", address: "149.154.167.91:443"},
- },
- { // dc5
- {network: "tcp4", address: "149.154.171.5:443"},
- },
- }
- productionV6Addresses = [][]tgAddr{
- { // dc1
- {network: "tcp6", address: "[2001:b28:f23d:f001::a]:443"},
- },
- { // dc2
- {network: "tcp6", address: "[2001:67c:04e8:f002::a]:443"},
- },
- { // dc3
- {network: "tcp6", address: "[2001:b28:f23d:f003::a]:443"},
- },
- { // dc4
- {network: "tcp6", address: "[2001:67c:04e8:f004::a]:443"},
- },
- { // dc5
- {network: "tcp6", address: "[2001:b28:f23f:f005::a]:443"},
- },
- }
-
- testV4Addresses = [][]tgAddr{
- { // dc1
- {network: "tcp4", address: "149.154.175.10:443"},
- },
- { // dc2
- {network: "tcp4", address: "149.154.167.40:443"},
- },
- { // dc3
- {network: "tcp4", address: "149.154.175.117:443"},
- },
- }
- testV6Addresses = [][]tgAddr{
- { // dc1
- {network: "tcp6", address: "[2001:b28:f23d:f001::e]:443"},
- },
- { // dc2
- {network: "tcp6", address: "[2001:67c:04e8:f002::e]:443"},
- },
- { // dc3
- {network: "tcp6", address: "[2001:b28:f23d:f003::e]:443"},
- },
- }
- )
-
- type Dialer interface {
- DialContext(ctx context.Context, network, address string) (essentials.Conn, error)
- }
|