mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 21:04:02 +03:00
Update to go 1.19
This commit is contained in:
@@ -7,7 +7,6 @@ import (
|
||||
"fmt"
|
||||
"hash/crc32"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
|
||||
"github.com/9seconds/mtg/conntypes"
|
||||
@@ -28,11 +27,14 @@ var mtprotoFramePadding = []byte{0x04, 0x00, 0x00, 0x00}
|
||||
//
|
||||
// MSGLEN is the length of the message + len of seqno and msglen.
|
||||
// SEQNO is the number of frame in the receive/send sequence. If client
|
||||
// sends a message with SeqNo 18, it has to receive message with SeqNo 18.
|
||||
//
|
||||
// sends a message with SeqNo 18, it has to receive message with SeqNo 18.
|
||||
//
|
||||
// MSG is the data which has to be written
|
||||
// CRC32 is the CRC32 checksum of MSGLEN + SEQNO + MSG
|
||||
// PADDING is custom padding schema to complete frame length to such that
|
||||
// len(frame) % 16 == 0
|
||||
//
|
||||
// len(frame) % 16 == 0
|
||||
type wrapperMtprotoFrame struct {
|
||||
parent conntypes.StreamReadWriteCloser
|
||||
logger *zap.SugaredLogger
|
||||
@@ -40,7 +42,7 @@ type wrapperMtprotoFrame struct {
|
||||
writeSeqNo int32
|
||||
}
|
||||
|
||||
func (w *wrapperMtprotoFrame) Read() (conntypes.Packet, error) { // nolint: funlen, cyclop
|
||||
func (w *wrapperMtprotoFrame) Read() (conntypes.Packet, error) { //nolint: funlen, cyclop
|
||||
buf := &bytes.Buffer{}
|
||||
|
||||
sum := crc32.NewIEEE()
|
||||
@@ -50,7 +52,7 @@ func (w *wrapperMtprotoFrame) Read() (conntypes.Packet, error) { // nolint: funl
|
||||
buf.Reset()
|
||||
sum.Reset()
|
||||
|
||||
if _, err := io.CopyN(writer, w.parent, 4); err != nil { // nolint: gomnd
|
||||
if _, err := io.CopyN(writer, w.parent, 4); err != nil { //nolint: gomnd
|
||||
return nil, fmt.Errorf("cannot read frame padding: %w", err)
|
||||
}
|
||||
|
||||
@@ -72,23 +74,23 @@ func (w *wrapperMtprotoFrame) Read() (conntypes.Packet, error) { // nolint: funl
|
||||
|
||||
buf.Reset()
|
||||
|
||||
if _, err := io.CopyN(writer, w.parent, int64(messageLength)-4-4); err != nil { // nolint: gomnd
|
||||
if _, err := io.CopyN(writer, w.parent, int64(messageLength)-4-4); err != nil { //nolint: gomnd
|
||||
return nil, fmt.Errorf("cannot read the message frame: %w", err)
|
||||
}
|
||||
|
||||
var seqNo int32
|
||||
|
||||
binary.Read(buf, binary.LittleEndian, &seqNo) // nolint: errcheck
|
||||
binary.Read(buf, binary.LittleEndian, &seqNo) //nolint: errcheck
|
||||
|
||||
if seqNo != w.readSeqNo {
|
||||
return nil, fmt.Errorf("unexpected sequence number %d (wait for %d)", seqNo, w.readSeqNo)
|
||||
}
|
||||
|
||||
data, _ := ioutil.ReadAll(buf)
|
||||
data, _ := io.ReadAll(buf)
|
||||
buf.Reset()
|
||||
// write to buf, not to writer. This is because we are going to fetch
|
||||
// crc32 checksum.
|
||||
if _, err := io.CopyN(buf, w.parent, 4); err != nil { // nolint: gomnd
|
||||
if _, err := io.CopyN(buf, w.parent, 4); err != nil { //nolint: gomnd
|
||||
return nil, fmt.Errorf("cannot read checksum: %w", err)
|
||||
}
|
||||
|
||||
@@ -109,18 +111,18 @@ func (w *wrapperMtprotoFrame) Read() (conntypes.Packet, error) { // nolint: funl
|
||||
}
|
||||
|
||||
func (w *wrapperMtprotoFrame) Write(p conntypes.Packet) error {
|
||||
messageLength := 4 + 4 + len(p) + 4 // nolint: gomnd
|
||||
messageLength := 4 + 4 + len(p) + 4 //nolint: gomnd
|
||||
paddingLength := (aes.BlockSize - messageLength%aes.BlockSize) % aes.BlockSize
|
||||
|
||||
buf := &bytes.Buffer{}
|
||||
|
||||
binary.Write(buf, binary.LittleEndian, uint32(messageLength)) // nolint: errcheck
|
||||
binary.Write(buf, binary.LittleEndian, w.writeSeqNo) // nolint: errcheck
|
||||
binary.Write(buf, binary.LittleEndian, uint32(messageLength)) //nolint: errcheck
|
||||
binary.Write(buf, binary.LittleEndian, w.writeSeqNo) //nolint: errcheck
|
||||
buf.Write(p)
|
||||
|
||||
checksum := crc32.ChecksumIEEE(buf.Bytes())
|
||||
binary.Write(buf, binary.LittleEndian, checksum) // nolint: errcheck
|
||||
buf.Write(bytes.Repeat(mtprotoFramePadding, paddingLength/4)) // nolint: gomnd
|
||||
binary.Write(buf, binary.LittleEndian, checksum) //nolint: errcheck
|
||||
buf.Write(bytes.Repeat(mtprotoFramePadding, paddingLength/4)) //nolint: gomnd
|
||||
|
||||
w.logger.Debugw("Write MTProto frame",
|
||||
"length", len(p),
|
||||
@@ -132,11 +134,11 @@ func (w *wrapperMtprotoFrame) Write(p conntypes.Packet) error {
|
||||
|
||||
_, err := w.parent.Write(buf.Bytes())
|
||||
|
||||
return err // nolint: wrapcheck
|
||||
return err //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperMtprotoFrame) Close() error {
|
||||
return w.parent.Close() // nolint: wrapcheck
|
||||
return w.parent.Close() //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperMtprotoFrame) Conn() net.Conn {
|
||||
|
||||
@@ -39,9 +39,9 @@ func (w *wrapperClientAbridged) Read(acks *conntypes.ConnectionAcks) (conntypes.
|
||||
}
|
||||
|
||||
if msgLength == clientAbridgedSmallPacketLength {
|
||||
buf.Grow(3) // nolint: gomnd
|
||||
buf.Grow(3) //nolint: gomnd
|
||||
|
||||
if _, err := io.CopyN(&buf, w.parent, 3); err != nil { // nolint: gomnd
|
||||
if _, err := io.CopyN(&buf, w.parent, 3); err != nil { //nolint: gomnd
|
||||
return nil, fmt.Errorf("cannot read correct message length: %w", err)
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ func (w *wrapperClientAbridged) Write(packet conntypes.Packet, acks *conntypes.C
|
||||
return nil
|
||||
}
|
||||
|
||||
packetLength := len(packet) / 4 // nolint: gomnd
|
||||
packetLength := len(packet) / 4 //nolint: gomnd
|
||||
|
||||
switch {
|
||||
case packetLength < clientAbridgedSmallPacketLength:
|
||||
@@ -104,7 +104,7 @@ func (w *wrapperClientAbridged) Write(packet conntypes.Packet, acks *conntypes.C
|
||||
}
|
||||
|
||||
func (w *wrapperClientAbridged) Close() error {
|
||||
return w.parent.Close() // nolint: wrapcheck
|
||||
return w.parent.Close() //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperClientAbridged) Conn() net.Conn {
|
||||
|
||||
@@ -20,9 +20,9 @@ type wrapperClientIntermediate struct {
|
||||
func (w *wrapperClientIntermediate) Read(acks *conntypes.ConnectionAcks) (conntypes.Packet, error) {
|
||||
buf := bytes.Buffer{}
|
||||
|
||||
buf.Grow(4) // nolint: gomnd
|
||||
buf.Grow(4) //nolint: gomnd
|
||||
|
||||
if _, err := io.CopyN(&buf, w.parent, 4); err != nil { // nolint: gomnd
|
||||
if _, err := io.CopyN(&buf, w.parent, 4); err != nil { //nolint: gomnd
|
||||
return nil, fmt.Errorf("cannot read message length: %w", err)
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ func (w *wrapperClientIntermediate) Write(packet conntypes.Packet, acks *conntyp
|
||||
}
|
||||
|
||||
func (w *wrapperClientIntermediate) Close() error {
|
||||
return w.parent.Close() // nolint: wrapcheck
|
||||
return w.parent.Close() //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperClientIntermediate) Conn() net.Conn {
|
||||
|
||||
@@ -20,7 +20,7 @@ func (w *wrapperClientIntermediateSecure) Read(acks *conntypes.ConnectionAcks) (
|
||||
return nil, err
|
||||
}
|
||||
|
||||
length := len(data) - (len(data) % 4) // nolint: gomnd
|
||||
length := len(data) - (len(data) % 4) //nolint: gomnd
|
||||
|
||||
return data[:length], nil
|
||||
}
|
||||
@@ -35,11 +35,11 @@ func (w *wrapperClientIntermediateSecure) Write(packet conntypes.Packet, acks *c
|
||||
}
|
||||
|
||||
buf := &bytes.Buffer{}
|
||||
paddingLength := rand.Intn(4) // nolint: gosec, gomnd
|
||||
paddingLength := rand.Intn(4) //nolint: gosec, gomnd
|
||||
|
||||
buf.Grow(4 + len(packet) + paddingLength)
|
||||
|
||||
binary.Write(buf, binary.LittleEndian, uint32(len(packet)+paddingLength)) // nolint: errcheck
|
||||
binary.Write(buf, binary.LittleEndian, uint32(len(packet)+paddingLength)) //nolint: errcheck
|
||||
buf.Write(packet)
|
||||
buf.Write(make([]byte, paddingLength))
|
||||
|
||||
|
||||
@@ -42,11 +42,11 @@ func (w *wrapperProxy) Write(packet conntypes.Packet, acks *conntypes.Connection
|
||||
buf.Write(rpc.ProxyRequestProxyTag)
|
||||
buf.WriteByte(byte(len(config.C.AdTag)))
|
||||
buf.Write(config.C.AdTag)
|
||||
buf.Write(make([]byte, (4-buf.Len()%4)%4)) // nolint: gomnd
|
||||
buf.Write(make([]byte, (4-buf.Len()%4)%4)) //nolint: gomnd
|
||||
buf.Grow(len(packet))
|
||||
buf.Write(packet)
|
||||
|
||||
return w.proxy.Write(buf.Bytes()) // nolint: wrapcheck
|
||||
return w.proxy.Write(buf.Bytes()) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperProxy) Read(acks *conntypes.ConnectionAcks) (conntypes.Packet, error) {
|
||||
|
||||
@@ -20,7 +20,7 @@ func (w *wrapperPing) Read(p []byte) (int, error) {
|
||||
}
|
||||
}
|
||||
|
||||
return n, err // nolint: wrapcheck
|
||||
return n, err //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperPing) Write(p []byte) (int, error) {
|
||||
@@ -32,11 +32,11 @@ func (w *wrapperPing) Write(p []byte) (int, error) {
|
||||
}
|
||||
}
|
||||
|
||||
return n, err // nolint: wrapcheck
|
||||
return n, err //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperPing) Close() error {
|
||||
return w.parent.Close() // nolint: wrapcheck
|
||||
return w.parent.Close() //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func NewPing(ctx context.Context, parent io.ReadWriteCloser, channelPing chan<- struct{}) io.ReadWriteCloser {
|
||||
|
||||
@@ -26,7 +26,7 @@ func (w *wrapperBlockCipher) Write(p []byte) (int, error) {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return w.parent.Write(encrypted) // nolint: wrapcheck
|
||||
return w.parent.Write(encrypted) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperBlockCipher) WriteTimeout(p []byte, timeout time.Duration) (int, error) {
|
||||
@@ -35,7 +35,7 @@ func (w *wrapperBlockCipher) WriteTimeout(p []byte, timeout time.Duration) (int,
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return w.parent.WriteTimeout(encrypted, timeout) // nolint: wrapcheck
|
||||
return w.parent.WriteTimeout(encrypted, timeout) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperBlockCipher) encrypt(p []byte) ([]byte, error) {
|
||||
@@ -50,7 +50,7 @@ func (w *wrapperBlockCipher) encrypt(p []byte) ([]byte, error) {
|
||||
}
|
||||
|
||||
func (w *wrapperBlockCipher) Close() error {
|
||||
return w.parent.Close() // nolint: wrapcheck
|
||||
return w.parent.Close() //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperBlockCipher) Conn() net.Conn {
|
||||
|
||||
@@ -33,7 +33,7 @@ func (b *bufferedReader) ReadTimeout(p []byte, _ time.Duration) (int, error) {
|
||||
|
||||
func (b *bufferedReader) flush(p []byte) (int, error) {
|
||||
if b.buf.Len() > len(p) {
|
||||
return b.buf.Read(p) // nolint: wrapcheck
|
||||
return b.buf.Read(p) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
sizeToReturn := b.buf.Len()
|
||||
|
||||
@@ -43,7 +43,7 @@ func (w *wrapperConn) Write(p []byte) (int, error) {
|
||||
w.Close()
|
||||
}
|
||||
|
||||
return n, err // nolint: wrapcheck
|
||||
return n, err //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperConn) ReadTimeout(p []byte, timeout time.Duration) (int, error) {
|
||||
@@ -64,13 +64,13 @@ func (w *wrapperConn) Read(p []byte) (int, error) {
|
||||
w.Close()
|
||||
}
|
||||
|
||||
return n, err // nolint: wrapcheck
|
||||
return n, err //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperConn) Close() error {
|
||||
w.logger.Debugw("Close connection")
|
||||
|
||||
return w.parent.Close() // nolint: wrapcheck
|
||||
return w.parent.Close() //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperConn) Conn() net.Conn {
|
||||
@@ -93,9 +93,9 @@ func newConn(parent net.Conn,
|
||||
connID conntypes.ConnID,
|
||||
purpose connPurpose,
|
||||
) conntypes.StreamReadWriteCloser {
|
||||
localAddr := *parent.LocalAddr().(*net.TCPAddr) // nolint: forcetypeassert
|
||||
localAddr := *parent.LocalAddr().(*net.TCPAddr) //nolint: forcetypeassert
|
||||
|
||||
if parent.RemoteAddr().(*net.TCPAddr).IP.To4() != nil { // nolint: forcetypeassert
|
||||
if parent.RemoteAddr().(*net.TCPAddr).IP.To4() != nil { //nolint: forcetypeassert
|
||||
if config.C.PublicIPv4.IP != nil {
|
||||
localAddr.IP = config.C.PublicIPv4.IP
|
||||
}
|
||||
@@ -118,7 +118,7 @@ func newConn(parent net.Conn,
|
||||
parent: parent,
|
||||
connID: connID,
|
||||
logger: logger,
|
||||
remoteAddr: parent.RemoteAddr().(*net.TCPAddr), // nolint: forcetypeassert
|
||||
remoteAddr: parent.RemoteAddr().(*net.TCPAddr), //nolint: forcetypeassert
|
||||
localAddr: &localAddr,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ func (w *wrapperCtx) WriteTimeout(p []byte, timeout time.Duration) (int, error)
|
||||
|
||||
return 0, fmt.Errorf("cannot write because context was closed: %w", w.ctx.Err())
|
||||
default:
|
||||
return w.parent.WriteTimeout(p, timeout) // nolint: wrapcheck
|
||||
return w.parent.WriteTimeout(p, timeout) //nolint: wrapcheck
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ func (w *wrapperCtx) Write(p []byte) (int, error) {
|
||||
|
||||
return 0, fmt.Errorf("cannot write because context was closed: %w", w.ctx.Err())
|
||||
default:
|
||||
return w.parent.Write(p) // nolint: wrapcheck
|
||||
return w.parent.Write(p) //nolint: wrapcheck
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ func (w *wrapperCtx) ReadTimeout(p []byte, timeout time.Duration) (int, error) {
|
||||
|
||||
return 0, fmt.Errorf("cannot write because context was closed: %w", w.ctx.Err())
|
||||
default:
|
||||
return w.parent.ReadTimeout(p, timeout) // nolint: wrapcheck
|
||||
return w.parent.ReadTimeout(p, timeout) //nolint: wrapcheck
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,14 +56,14 @@ func (w *wrapperCtx) Read(p []byte) (int, error) {
|
||||
|
||||
return 0, fmt.Errorf("cannot write because context was closed: %w", w.ctx.Err())
|
||||
default:
|
||||
return w.parent.Read(p) // nolint: wrapcheck
|
||||
return w.parent.Read(p) //nolint: wrapcheck
|
||||
}
|
||||
}
|
||||
|
||||
func (w *wrapperCtx) Close() error {
|
||||
w.cancel()
|
||||
|
||||
return w.parent.Close() // nolint: wrapcheck
|
||||
return w.parent.Close() //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperCtx) Conn() net.Conn {
|
||||
|
||||
@@ -20,7 +20,7 @@ type wrapperFakeTLS struct {
|
||||
|
||||
func (w *wrapperFakeTLS) Write(p []byte) (int, error) {
|
||||
return w.write(p, func(b []byte) (int, error) {
|
||||
return w.parent.Write(b) // nolint: wrapcheck
|
||||
return w.parent.Write(b) //nolint: wrapcheck
|
||||
})
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ func (w *wrapperFakeTLS) WriteTimeout(p []byte, timeout time.Duration) (int, err
|
||||
return w.write(p, func(b []byte) (int, error) {
|
||||
elapsed := time.Since(startTime)
|
||||
if elapsed > timeout {
|
||||
return w.parent.WriteTimeout(b, timeout-elapsed) // nolint: wrapcheck
|
||||
return w.parent.WriteTimeout(b, timeout-elapsed) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
return 0, errors.New("timeout")
|
||||
@@ -73,7 +73,7 @@ func (w *wrapperFakeTLS) RemoteAddr() *net.TCPAddr {
|
||||
}
|
||||
|
||||
func (w *wrapperFakeTLS) Close() error {
|
||||
return w.parent.Close() // nolint: wrapcheck
|
||||
return w.parent.Close() //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func NewFakeTLS(socket conntypes.StreamReadWriteCloser) conntypes.StreamReadWriteCloser {
|
||||
@@ -85,7 +85,7 @@ func NewFakeTLS(socket conntypes.StreamReadWriteCloser) conntypes.StreamReadWrit
|
||||
for {
|
||||
rec, err := tlstypes.ReadRecord(faketls.parent)
|
||||
if err != nil {
|
||||
return nil, err // nolint: wrapcheck
|
||||
return nil, err //nolint: wrapcheck
|
||||
}
|
||||
|
||||
switch rec.Type {
|
||||
|
||||
@@ -100,11 +100,11 @@ func mtprotoDeriveKeys(purpose mtprotoCipherPurpose,
|
||||
message.Write(req.Nonce)
|
||||
|
||||
data := message.Bytes()
|
||||
md5sum := md5.Sum(data[1:]) // nolint: gas
|
||||
sha1sum := sha1.Sum(data) // nolint: gosec
|
||||
md5sum := md5.Sum(data[1:]) //nolint: gas
|
||||
sha1sum := sha1.Sum(data) //nolint: gosec
|
||||
|
||||
key := append(md5sum[:12], sha1sum[:]...)
|
||||
iv := md5.Sum(data[2:]) // nolint: gas
|
||||
iv := md5.Sum(data[2:]) //nolint: gas
|
||||
|
||||
return key, iv[:]
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ func (w *wrapperObfuscated2) ReadTimeout(p []byte, timeout time.Duration) (int,
|
||||
func (w *wrapperObfuscated2) Read(p []byte) (int, error) {
|
||||
n, err := w.parent.Read(p)
|
||||
if err != nil {
|
||||
return n, err // nolint: wrapcheck
|
||||
return n, err //nolint: wrapcheck
|
||||
}
|
||||
|
||||
w.decryptor.XORKeyStream(p, p[:n])
|
||||
@@ -48,7 +48,7 @@ func (w *wrapperObfuscated2) WriteTimeout(p []byte, timeout time.Duration) (int,
|
||||
|
||||
w.encryptor.XORKeyStream(buf, buf)
|
||||
|
||||
return w.parent.WriteTimeout(buf, timeout) // nolint: wrapcheck
|
||||
return w.parent.WriteTimeout(buf, timeout) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperObfuscated2) Write(p []byte) (int, error) {
|
||||
@@ -60,7 +60,7 @@ func (w *wrapperObfuscated2) Write(p []byte) (int, error) {
|
||||
|
||||
w.encryptor.XORKeyStream(buf, buf)
|
||||
|
||||
return w.parent.Write(buf) // nolint: wrapcheck
|
||||
return w.parent.Write(buf) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperObfuscated2) Conn() net.Conn {
|
||||
@@ -80,7 +80,7 @@ func (w *wrapperObfuscated2) RemoteAddr() *net.TCPAddr {
|
||||
}
|
||||
|
||||
func (w *wrapperObfuscated2) Close() error {
|
||||
return w.parent.Close() // nolint: wrapcheck
|
||||
return w.parent.Close() //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func NewObfuscated2(socket conntypes.StreamReadWriteCloser,
|
||||
|
||||
@@ -24,25 +24,25 @@ type wrapperRewind struct {
|
||||
}
|
||||
|
||||
func (w *wrapperRewind) Write(p []byte) (int, error) {
|
||||
return w.parent.Write(p) // nolint: wrapcheck
|
||||
return w.parent.Write(p) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperRewind) WriteTimeout(p []byte, timeout time.Duration) (int, error) {
|
||||
return w.parent.WriteTimeout(p, timeout) // nolint: wrapcheck
|
||||
return w.parent.WriteTimeout(p, timeout) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperRewind) Read(p []byte) (int, error) {
|
||||
w.mutex.Lock()
|
||||
defer w.mutex.Unlock()
|
||||
|
||||
return w.activeReader.Read(p) // nolint: wrapcheck
|
||||
return w.activeReader.Read(p) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperRewind) ReadTimeout(p []byte, _ time.Duration) (int, error) {
|
||||
w.mutex.Lock()
|
||||
defer w.mutex.Unlock()
|
||||
|
||||
return w.activeReader.Read(p) // nolint: wrapcheck
|
||||
return w.activeReader.Read(p) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperRewind) Conn() net.Conn {
|
||||
@@ -64,7 +64,7 @@ func (w *wrapperRewind) RemoteAddr() *net.TCPAddr {
|
||||
func (w *wrapperRewind) Close() error {
|
||||
w.buf.Reset()
|
||||
|
||||
return w.parent.Close() // nolint: wrapcheck
|
||||
return w.parent.Close() //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperRewind) Rewind() {
|
||||
|
||||
@@ -17,19 +17,19 @@ type wrapperTelegramStats struct {
|
||||
}
|
||||
|
||||
func (w *wrapperTelegramStats) Write(p []byte) (int, error) {
|
||||
return w.parent.Write(p) // nolint: wrapcheck
|
||||
return w.parent.Write(p) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperTelegramStats) WriteTimeout(p []byte, timeout time.Duration) (int, error) {
|
||||
return w.parent.WriteTimeout(p, timeout) // nolint: wrapcheck
|
||||
return w.parent.WriteTimeout(p, timeout) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperTelegramStats) Read(p []byte) (int, error) {
|
||||
return w.parent.Read(p) // nolint: wrapcheck
|
||||
return w.parent.Read(p) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperTelegramStats) ReadTimeout(p []byte, timeout time.Duration) (int, error) {
|
||||
return w.parent.ReadTimeout(p, timeout) // nolint: wrapcheck
|
||||
return w.parent.ReadTimeout(p, timeout) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperTelegramStats) Conn() net.Conn {
|
||||
@@ -56,7 +56,7 @@ func (w *wrapperTelegramStats) Close() error {
|
||||
stats.Stats.TelegramDisconnected(w.dc, w.RemoteAddr())
|
||||
})
|
||||
|
||||
return err // nolint: wrapcheck
|
||||
return err //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func NewTelegramStats(dc conntypes.DC, parent conntypes.StreamReadWriteCloser) conntypes.StreamReadWriteCloser {
|
||||
|
||||
@@ -17,28 +17,28 @@ func (w *wrapperTrafficStats) Write(p []byte) (int, error) {
|
||||
n, err := w.parent.Write(p)
|
||||
stats.Stats.EgressTraffic(n)
|
||||
|
||||
return n, err // nolint: wrapcheck
|
||||
return n, err //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperTrafficStats) WriteTimeout(p []byte, timeout time.Duration) (int, error) {
|
||||
n, err := w.parent.WriteTimeout(p, timeout)
|
||||
stats.Stats.EgressTraffic(n)
|
||||
|
||||
return n, err // nolint: wrapcheck
|
||||
return n, err //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperTrafficStats) Read(p []byte) (int, error) {
|
||||
n, err := w.parent.Read(p)
|
||||
stats.Stats.IngressTraffic(n)
|
||||
|
||||
return n, err // nolint: wrapcheck
|
||||
return n, err //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperTrafficStats) ReadTimeout(p []byte, timeout time.Duration) (int, error) {
|
||||
n, err := w.parent.ReadTimeout(p, timeout)
|
||||
stats.Stats.IngressTraffic(n)
|
||||
|
||||
return n, err // nolint: wrapcheck
|
||||
return n, err //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperTrafficStats) Conn() net.Conn {
|
||||
@@ -58,7 +58,7 @@ func (w *wrapperTrafficStats) RemoteAddr() *net.TCPAddr {
|
||||
}
|
||||
|
||||
func (w *wrapperTrafficStats) Close() error {
|
||||
return w.parent.Close() // nolint: wrapcheck
|
||||
return w.parent.Close() //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func NewTrafficStats(parent conntypes.StreamReadWriteCloser) conntypes.StreamReadWriteCloser {
|
||||
|
||||
@@ -18,23 +18,23 @@ type wrapperTimeout struct {
|
||||
}
|
||||
|
||||
func (w *wrapperTimeout) WriteTimeout(p []byte, timeout time.Duration) (int, error) {
|
||||
return w.parent.WriteTimeout(p, timeout) // nolint: wrapcheck
|
||||
return w.parent.WriteTimeout(p, timeout) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperTimeout) Write(p []byte) (int, error) {
|
||||
return w.parent.WriteTimeout(p, timeoutWrite) // nolint: wrapcheck
|
||||
return w.parent.WriteTimeout(p, timeoutWrite) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperTimeout) ReadTimeout(p []byte, timeout time.Duration) (int, error) {
|
||||
return w.parent.ReadTimeout(p, timeout) // nolint: wrapcheck
|
||||
return w.parent.ReadTimeout(p, timeout) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperTimeout) Read(p []byte) (int, error) {
|
||||
return w.parent.ReadTimeout(p, timeoutRead) // nolint: wrapcheck
|
||||
return w.parent.ReadTimeout(p, timeoutRead) //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperTimeout) Close() error {
|
||||
return w.parent.Close() // nolint: wrapcheck
|
||||
return w.parent.Close() //nolint: wrapcheck
|
||||
}
|
||||
|
||||
func (w *wrapperTimeout) Conn() net.Conn {
|
||||
|
||||
Reference in New Issue
Block a user