From 9f746aa699cad00db2b926ceb38a42aaaed5e857 Mon Sep 17 00:00:00 2001 From: 9seconds Date: Mon, 2 Jul 2018 16:14:11 +0300 Subject: [PATCH] Propagate client addr with connection options --- client/direct.go | 1 + mtproto/connection_options.go | 2 ++ 2 files changed, 3 insertions(+) diff --git a/client/direct.go b/client/direct.go index 19d1ede..8ef2dc7 100644 --- a/client/direct.go +++ b/client/direct.go @@ -32,6 +32,7 @@ func DirectInit(conn net.Conn, conf *config.Config) (*mtproto.ConnectionOpts, wr return nil, nil, errors.Annotate(err, "Cannot parse obfuscated frame") } connOpts.ConnectionProto = mtproto.ConnectionProtocolAny + connOpts.ClientAddr = conn.RemoteAddr().(*net.TCPAddr) socket := wrappers.NewTimeoutRWC(conn) socket = wrappers.NewStreamCipherRWC(socket, obfs2.Encryptor, obfs2.Decryptor) diff --git a/mtproto/connection_options.go b/mtproto/connection_options.go index 29ee283..0f82ec0 100644 --- a/mtproto/connection_options.go +++ b/mtproto/connection_options.go @@ -2,6 +2,7 @@ package mtproto import ( "bytes" + "net" "github.com/juju/errors" ) @@ -18,6 +19,7 @@ type ConnectionOpts struct { DC int16 ConnectionType ConnectionType ConnectionProto ConnectionProtocol + ClientAddr *net.TCPAddr } // Different connection types which user requests from Telegram.