diff --git a/cli/proxy.go b/cli/proxy.go index e8add55..f181bc6 100644 --- a/cli/proxy.go +++ b/cli/proxy.go @@ -14,6 +14,7 @@ import ( "github.com/9seconds/mtg/obfuscated2" "github.com/9seconds/mtg/proxy" "github.com/9seconds/mtg/stats" + "github.com/9seconds/mtg/telegram" "github.com/9seconds/mtg/utils" ) @@ -64,6 +65,8 @@ func Proxy() error { if err := stats.Init(ctx); err != nil { Fatal(err) } + telegram.MiddleInit() + proxyListener, err := net.Listen("tcp", config.C.ListenAddr.String()) if err != nil { Fatal(err) diff --git a/telegram/middle.go b/telegram/middle.go index c465556..f6c6b2f 100644 --- a/telegram/middle.go +++ b/telegram/middle.go @@ -16,12 +16,19 @@ import ( const middleTelegramBackgroundUpdateEvery = time.Hour -var Middle = NewMiddleTelegram() +var Middle Telegram type middleTelegram struct { baseTelegram - mutex sync.RWMutex + mutex sync.RWMutex +} + +func (m *middleTelegram) Secret() []byte { + m.mutex.RLock() + defer m.mutex.RUnlock() + + return m.baseTelegram.Secret() } func (m *middleTelegram) update() error { @@ -74,7 +81,7 @@ func (m *middleTelegram) Dial(ctx context.Context, return m.baseTelegram.dial(ctx, cancel, dc, protocol) } -func NewMiddleTelegram() Telegram { +func MiddleInit() { tg := &middleTelegram{ baseTelegram: baseTelegram{ dialer: net.Dialer{Timeout: telegramDialTimeout}, @@ -85,5 +92,5 @@ func NewMiddleTelegram() Telegram { } go tg.backgroundUpdate() - return tg + Middle = tg }