mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 15:14:03 +03:00
Support different client connection types
This commit is contained in:
+10
-8
@@ -6,6 +6,7 @@ import (
|
||||
"github.com/juju/errors"
|
||||
|
||||
"github.com/9seconds/mtg/config"
|
||||
"github.com/9seconds/mtg/mtproto"
|
||||
"github.com/9seconds/mtg/obfuscated2"
|
||||
"github.com/9seconds/mtg/wrappers"
|
||||
)
|
||||
@@ -31,18 +32,19 @@ type directTelegram struct {
|
||||
baseTelegram
|
||||
}
|
||||
|
||||
func (t *directTelegram) Dial(dcIdx int16) (io.ReadWriteCloser, error) {
|
||||
if dcIdx < 0 {
|
||||
dcIdx = -dcIdx
|
||||
} else if dcIdx == 0 {
|
||||
dcIdx = 1
|
||||
func (t *directTelegram) Dial(connOpts *mtproto.ConnectionOpts) (io.ReadWriteCloser, error) {
|
||||
dc := connOpts.DC
|
||||
if dc < 0 {
|
||||
dc = -dc
|
||||
} else if dc == 0 {
|
||||
dc = 1
|
||||
}
|
||||
|
||||
return t.baseTelegram.Dial(dcIdx - 1)
|
||||
return t.baseTelegram.dial(dc - 1)
|
||||
}
|
||||
|
||||
func (t *directTelegram) Init(conn io.ReadWriteCloser) (io.ReadWriteCloser, error) {
|
||||
obfs2, frame := obfuscated2.MakeTelegramObfuscated2Frame()
|
||||
func (t *directTelegram) Init(connOpts *mtproto.ConnectionOpts, conn io.ReadWriteCloser) (io.ReadWriteCloser, error) {
|
||||
obfs2, frame := obfuscated2.MakeTelegramObfuscated2Frame(connOpts)
|
||||
defer obfuscated2.ReturnFrame(frame)
|
||||
|
||||
if n, err := conn.Write(*frame); err != nil || n != len(*frame) {
|
||||
|
||||
Reference in New Issue
Block a user