Some refactorings for telegram package

This commit is contained in:
9seconds
2019-10-08 14:08:34 +03:00
parent 6c7edfb7db
commit 3ae69183aa
6 changed files with 45 additions and 37 deletions
+1 -1
View File
@@ -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 {
-3
View File
@@ -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
View File
@@ -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,
},
}
+42
View File
@@ -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 -1
View File
@@ -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)
-17
View File
@@ -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
}