mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 19:54:01 +03:00
FILE / ScuroNeko/mtg
telegram/direct.go
Исходный файл и его история в репозитории.
62 lines
1.3 KiB
Go
62 lines
1.3 KiB
Go
package telegram
|
|
|
|
import (
|
|
"context"
|
|
"net"
|
|
|
|
"github.com/9seconds/mtg/conntypes"
|
|
"github.com/9seconds/mtg/wrappers"
|
|
)
|
|
|
|
const (
|
|
directV4DefaultIdx conntypes.DC = 1
|
|
directV6DefaultIdx conntypes.DC = 1
|
|
)
|
|
|
|
var (
|
|
directV4Addresses = map[conntypes.DC][]string{
|
|
0: {"149.154.175.50:443"},
|
|
1: {"149.154.167.51:443"},
|
|
2: {"149.154.175.100:443"},
|
|
3: {"149.154.167.91:443"},
|
|
4: {"149.154.171.5:443"},
|
|
}
|
|
directV6Addresses = map[conntypes.DC][]string{
|
|
0: {"[2001:b28:f23d:f001::a]:443"},
|
|
1: {"[2001:67c:04e8:f002::a]:443"},
|
|
2: {"[2001:b28:f23d:f003::a]:443"},
|
|
3: {"[2001:67c:04e8:f004::a]:443"},
|
|
4: {"[2001:b28:f23f:f005::a]:443"},
|
|
}
|
|
)
|
|
|
|
type directTelegram struct {
|
|
baseTelegram
|
|
}
|
|
|
|
func (d *directTelegram) Dial(ctx context.Context,
|
|
cancel context.CancelFunc,
|
|
dc conntypes.DC,
|
|
protocol conntypes.ConnectionProtocol) (wrappers.StreamReadWriteCloser, error) {
|
|
switch {
|
|
case dc < 0:
|
|
dc = -dc
|
|
case dc == 0:
|
|
dc = conntypes.DCDefaultIdx
|
|
}
|
|
|
|
return d.baseTelegram.dial(ctx, cancel, dc-1, protocol)
|
|
}
|
|
|
|
func NewDirectTelegram() Telegram {
|
|
return &directTelegram{
|
|
baseTelegram: baseTelegram{
|
|
dialer: net.Dialer{Timeout: telegramDialTimeout},
|
|
v4DefaultDC: directV4DefaultIdx,
|
|
V6DefaultDC: directV6DefaultIdx,
|
|
v4Addresses: directV4Addresses,
|
|
v6Addresses: directV6Addresses,
|
|
},
|
|
}
|
|
}
|