|
|
@@ -12,11 +12,22 @@ import (
|
|
12
|
12
|
"github.com/9seconds/mtg/wrappers"
|
|
13
|
13
|
)
|
|
14
|
14
|
|
|
15
|
|
-const handshakeTimeout = 10 * time.Second
|
|
|
15
|
+const (
|
|
|
16
|
+ handshakeTimeout = 10 * time.Second
|
|
|
17
|
+ readBufferSize = 64 * 1024
|
|
|
18
|
+ writeBufferSize = 64 * 1024
|
|
|
19
|
+)
|
|
16
|
20
|
|
|
17
|
21
|
func DirectInit(socket net.Conn, connID string, conf *config.Config) (wrappers.Wrap, *mtproto.ConnectionOpts, error) {
|
|
18
|
|
- if err := config.SetSocketOptions(socket); err != nil {
|
|
19
|
|
- return nil, nil, errors.Annotate(err, "Cannot set socket options")
|
|
|
22
|
+ tcpSocket := socket.(*net.TCPConn)
|
|
|
23
|
+ if err := tcpSocket.SetNoDelay(false); err != nil {
|
|
|
24
|
+ return nil, nil, errors.Annotate(err, "Cannot disable NO_DELAY to client socket")
|
|
|
25
|
+ }
|
|
|
26
|
+ if err := tcpSocket.SetReadBuffer(readBufferSize); err != nil {
|
|
|
27
|
+ return nil, nil, errors.Annotate(err, "Cannot set read buffer size of client socket")
|
|
|
28
|
+ }
|
|
|
29
|
+ if err := tcpSocket.SetWriteBuffer(writeBufferSize); err != nil {
|
|
|
30
|
+ return nil, nil, errors.Annotate(err, "Cannot set write buffer size of client socket")
|
|
20
|
31
|
}
|
|
21
|
32
|
|
|
22
|
33
|
socket.SetReadDeadline(time.Now().Add(handshakeTimeout))
|