mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 13:44:03 +03:00
Some refactorings for telegram package
This commit is contained in:
+1
-1
@@ -65,7 +65,7 @@ func Proxy() error {
|
||||
if err := stats.Init(ctx); err != nil {
|
||||
Fatal(err)
|
||||
}
|
||||
telegram.MiddleInit()
|
||||
telegram.Init()
|
||||
|
||||
proxyListener, err := net.Listen("tcp", config.C.Bind.String())
|
||||
if err != nil {
|
||||
|
||||
@@ -4,15 +4,12 @@ import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"net"
|
||||
"time"
|
||||
|
||||
"github.com/9seconds/mtg/conntypes"
|
||||
"github.com/9seconds/mtg/utils"
|
||||
"github.com/9seconds/mtg/wrappers"
|
||||
)
|
||||
|
||||
const telegramDialTimeout = 10 * time.Second
|
||||
|
||||
type baseTelegram struct {
|
||||
dialer net.Dialer
|
||||
|
||||
|
||||
+1
-15
@@ -1,10 +1,6 @@
|
||||
package telegram
|
||||
|
||||
import (
|
||||
"net"
|
||||
|
||||
"github.com/9seconds/mtg/conntypes"
|
||||
)
|
||||
import "github.com/9seconds/mtg/conntypes"
|
||||
|
||||
const (
|
||||
directV4DefaultIdx conntypes.DC = 1
|
||||
@@ -43,13 +39,3 @@ func (d *directTelegram) Dial(dc conntypes.DC,
|
||||
|
||||
return d.baseTelegram.dial(dc-1, protocol)
|
||||
}
|
||||
|
||||
var Direct = &directTelegram{
|
||||
baseTelegram: baseTelegram{
|
||||
dialer: net.Dialer{Timeout: telegramDialTimeout},
|
||||
v4DefaultDC: directV4DefaultIdx,
|
||||
V6DefaultDC: directV6DefaultIdx,
|
||||
v4Addresses: directV4Addresses,
|
||||
v6Addresses: directV6Addresses,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package telegram
|
||||
|
||||
import (
|
||||
"net"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
||||
const telegramDialTimeout = 10 * time.Second
|
||||
|
||||
var (
|
||||
Direct Telegram
|
||||
Middle Telegram
|
||||
|
||||
initOnce sync.Once
|
||||
)
|
||||
|
||||
func Init() {
|
||||
initOnce.Do(func() {
|
||||
Direct = &directTelegram{
|
||||
baseTelegram: baseTelegram{
|
||||
dialer: net.Dialer{Timeout: telegramDialTimeout},
|
||||
v4DefaultDC: directV4DefaultIdx,
|
||||
V6DefaultDC: directV6DefaultIdx,
|
||||
v4Addresses: directV4Addresses,
|
||||
v6Addresses: directV6Addresses,
|
||||
},
|
||||
}
|
||||
|
||||
tg := &middleTelegram{
|
||||
baseTelegram: baseTelegram{
|
||||
dialer: net.Dialer{Timeout: telegramDialTimeout},
|
||||
},
|
||||
}
|
||||
if err := tg.update(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
go tg.backgroundUpdate()
|
||||
|
||||
Middle = tg
|
||||
})
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package telegram
|
||||
|
||||
import "github.com/9seconds/mtg/conntypes"
|
||||
import "github.com/9seconds/mtg/conntypes"
|
||||
|
||||
type Telegram interface {
|
||||
Dial(conntypes.DC, conntypes.ConnectionProtocol) (conntypes.StreamReadWriteCloser, error)
|
||||
|
||||
@@ -2,7 +2,6 @@ package telegram
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@@ -14,8 +13,6 @@ import (
|
||||
|
||||
const middleTelegramBackgroundUpdateEvery = time.Hour
|
||||
|
||||
var Middle Telegram
|
||||
|
||||
type middleTelegram struct {
|
||||
baseTelegram
|
||||
|
||||
@@ -76,17 +73,3 @@ func (m *middleTelegram) Dial(dc conntypes.DC,
|
||||
|
||||
return m.baseTelegram.dial(dc, protocol)
|
||||
}
|
||||
|
||||
func MiddleInit() {
|
||||
tg := &middleTelegram{
|
||||
baseTelegram: baseTelegram{
|
||||
dialer: net.Dialer{Timeout: telegramDialTimeout},
|
||||
},
|
||||
}
|
||||
if err := tg.update(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
go tg.backgroundUpdate()
|
||||
|
||||
Middle = tg
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user