|
|
@@ -20,14 +20,14 @@ const (
|
|
20
|
20
|
abridgedLargePacketLength = 16777216 // 256 ^ 3
|
|
21
|
21
|
)
|
|
22
|
22
|
|
|
23
|
|
-type AbridgedReadWriteCloserAddr struct {
|
|
|
23
|
+type AbridgedReadWriteCloserWithAddr struct {
|
|
24
|
24
|
wrappers.BufferedReader
|
|
25
|
25
|
|
|
26
|
26
|
conn wrappers.ReadWriteCloserWithAddr
|
|
27
|
27
|
opts *mtproto.ConnectionOpts
|
|
28
|
28
|
}
|
|
29
|
29
|
|
|
30
|
|
-func (a *AbridgedReadWriteCloserAddr) Read(p []byte) (int, error) {
|
|
|
30
|
+func (a *AbridgedReadWriteCloserWithAddr) Read(p []byte) (int, error) {
|
|
31
|
31
|
return a.BufferedRead(p, func() error {
|
|
32
|
32
|
var msgLength uint8
|
|
33
|
33
|
if err := binary.Read(a.conn, binary.LittleEndian, &msgLength); err != nil {
|
|
|
@@ -62,7 +62,7 @@ func (a *AbridgedReadWriteCloserAddr) Read(p []byte) (int, error) {
|
|
62
|
62
|
})
|
|
63
|
63
|
}
|
|
64
|
64
|
|
|
65
|
|
-func (a *AbridgedReadWriteCloserAddr) Write(p []byte) (int, error) {
|
|
|
65
|
+func (a *AbridgedReadWriteCloserWithAddr) Write(p []byte) (int, error) {
|
|
66
|
66
|
if len(p)%4 != 0 {
|
|
67
|
67
|
return 0, errors.Errorf("Incorrect packet length %d", len(p))
|
|
68
|
68
|
}
|
|
|
@@ -92,15 +92,15 @@ func (a *AbridgedReadWriteCloserAddr) Write(p []byte) (int, error) {
|
|
92
|
92
|
}
|
|
93
|
93
|
}
|
|
94
|
94
|
|
|
95
|
|
-func (a *AbridgedReadWriteCloserAddr) Close() error {
|
|
|
95
|
+func (a *AbridgedReadWriteCloserWithAddr) Close() error {
|
|
96
|
96
|
return a.conn.Close()
|
|
97
|
97
|
}
|
|
98
|
98
|
|
|
99
|
|
-func (a *AbridgedReadWriteCloserAddr) LocalAddr() *net.TCPAddr {
|
|
|
99
|
+func (a *AbridgedReadWriteCloserWithAddr) LocalAddr() *net.TCPAddr {
|
|
100
|
100
|
return a.conn.LocalAddr()
|
|
101
|
101
|
}
|
|
102
|
102
|
|
|
103
|
|
-func (a *AbridgedReadWriteCloserAddr) RemoteAddr() *net.TCPAddr {
|
|
|
103
|
+func (a *AbridgedReadWriteCloserWithAddr) RemoteAddr() *net.TCPAddr {
|
|
104
|
104
|
return a.conn.RemoteAddr()
|
|
105
|
105
|
}
|
|
106
|
106
|
|
|
|
@@ -113,8 +113,9 @@ func fromUint24(number uint24) uint32 {
|
|
113
|
113
|
}
|
|
114
|
114
|
|
|
115
|
115
|
func NewAbridgedRWC(conn wrappers.ReadWriteCloserWithAddr, connOpts *mtproto.ConnectionOpts) wrappers.ReadWriteCloserWithAddr {
|
|
116
|
|
- return &AbridgedReadWriteCloserAddr{
|
|
117
|
|
- conn: conn,
|
|
118
|
|
- opts: connOpts,
|
|
|
116
|
+ return &AbridgedReadWriteCloserWithAddr{
|
|
|
117
|
+ BufferedReader: wrappers.NewBufferedReader(),
|
|
|
118
|
+ conn: conn,
|
|
|
119
|
+ opts: connOpts,
|
|
119
|
120
|
}
|
|
120
|
121
|
}
|