From 4210cf014eec3e3d6a3b61f20a5b4df830c1af33 Mon Sep 17 00:00:00 2001 From: 9seconds Date: Thu, 5 Jul 2018 14:59:33 +0300 Subject: [PATCH] Bugfix proxy request handler --- mtproto/rpc/proxy_request.go | 8 ++++---- mtproto/wrappers/frame.go | 5 +++-- telegram/middle.go | 2 -- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/mtproto/rpc/proxy_request.go b/mtproto/rpc/proxy_request.go index 6870273..994af28 100644 --- a/mtproto/rpc/proxy_request.go +++ b/mtproto/rpc/proxy_request.go @@ -34,14 +34,14 @@ func (r *ProxyRequest) Bytes(message []byte) []byte { buf.Write(TagProxyRequest) buf.Write(flags.Bytes()) - buf.Write(r.ConnectionID[:]) - buf.Write(r.ClientIPPort[:]) - buf.Write(r.OurIPPort[:]) + buf.Write(r.ConnectionID) + buf.Write(r.ClientIPPort) + buf.Write(r.OurIPPort) buf.Write(ProxyRequestExtraSize) buf.Write(ProxyRequestProxyTag) buf.WriteByte(byte(len(r.ADTag))) buf.Write(r.ADTag) - buf.Write(bytes.Repeat([]byte{0x00}, buf.Len()%4)) + buf.Write(make([]byte, (4-buf.Len()%4)%4)) buf.Write(message) return buf.Bytes() diff --git a/mtproto/wrappers/frame.go b/mtproto/wrappers/frame.go index d008d37..62406e7 100644 --- a/mtproto/wrappers/frame.go +++ b/mtproto/wrappers/frame.go @@ -4,6 +4,7 @@ import ( "bytes" "crypto/aes" "encoding/binary" + "fmt" "hash/crc32" "io" "io/ioutil" @@ -20,7 +21,7 @@ const ( frameRWCMaxMessageLength = 16777216 ) -var frameRWCPadding = [4]byte{0x04, 0x00, 0x00, 0x00} +var frameRWCPadding = []byte{0x04, 0x00, 0x00, 0x00} type FrameRWC struct { wrappers.BufferedReader @@ -48,7 +49,7 @@ func (f *FrameRWC) Write(buf []byte) (int, error) { checksum := crc32.ChecksumIEEE(writeBuf.Bytes()) binary.Write(writeBuf, binary.LittleEndian, checksum) - writeBuf.Write(bytes.Repeat(frameRWCPadding[:], paddingLength/4)) + writeBuf.Write(bytes.Repeat(frameRWCPadding, paddingLength/4)) _, err := f.conn.Write(writeBuf.Bytes()) return len(buf), err diff --git a/telegram/middle.go b/telegram/middle.go index 326c095..62a9c65 100644 --- a/telegram/middle.go +++ b/telegram/middle.go @@ -1,7 +1,6 @@ package telegram import ( - "fmt" "io" "net" "net/http" @@ -131,7 +130,6 @@ func (t *middleTelegram) receiveRPCHandshakeResponse(conn io.Reader, req *rpc.Ha if err = rpcHandshakeResp.Valid(req); err != nil { return nil, errors.Annotate(err, "Invalid RPC handshake response") } - fmt.Println("VICTORY") return rpcHandshakeResp, nil }