| 12345678910111213141516171819202122232425262728293031 |
- package client
-
- import (
- "context"
- "net"
-
- "github.com/9seconds/mtg/config"
- "github.com/9seconds/mtg/mtproto"
- "github.com/9seconds/mtg/wrappers"
- )
-
- func MiddleInit(ctx context.Context, cancel context.CancelFunc, socket net.Conn, connID string,
- conf *config.Config) (wrappers.Wrap, *mtproto.ConnectionOpts, error) {
- conn, opts, err := DirectInit(ctx, cancel, socket, connID, conf)
- if err != nil {
- return nil, nil, err
- }
- connStream := conn.(wrappers.StreamReadWriteCloser)
-
- newConn := wrappers.NewMTProtoAbridged(connStream, opts)
- if opts.ConnectionType != mtproto.ConnectionTypeAbridged {
- newConn = wrappers.NewMTProtoIntermediate(connStream, opts)
- }
-
- opts.ConnectionProto = mtproto.ConnectionProtocolIPv4
- if socket.LocalAddr().(*net.TCPAddr).IP.To4() == nil {
- opts.ConnectionProto = mtproto.ConnectionProtocolIPv6
- }
-
- return newConn, opts, err
- }
|