Sfoglia il codice sorgente

Defer counters

tags/0.9
9seconds 7 anni fa
parent
commit
a99c5b2442

+ 8
- 6
wrappers/mtproto_abridged.go Vedi File

@@ -28,6 +28,10 @@ type MTProtoAbridged struct {
28 28
 }
29 29
 
30 30
 func (m *MTProtoAbridged) Read() ([]byte, error) {
31
+	defer func() {
32
+		m.readCounter++
33
+	}()
34
+
31 35
 	m.logger.Debugw("Read packet",
32 36
 		"simple_ack", m.opts.ReadHacks.SimpleAck,
33 37
 		"quick_ack", m.opts.ReadHacks.QuickAck,
@@ -75,16 +79,18 @@ func (m *MTProtoAbridged) Read() ([]byte, error) {
75 79
 
76 80
 	buf.Reset()
77 81
 	buf.Grow(int(msgLength32))
78
-
79 82
 	if _, err := io.CopyN(buf, m.conn, int64(msgLength32)); err != nil {
80 83
 		return nil, errors.Annotate(err, "Cannot read message")
81 84
 	}
82
-	m.readCounter++
83 85
 
84 86
 	return buf.Bytes(), nil
85 87
 }
86 88
 
87 89
 func (m *MTProtoAbridged) Write(p []byte) (int, error) {
90
+	defer func() {
91
+		m.writeCounter++
92
+	}()
93
+
88 94
 	m.logger.Debugw("Write packet",
89 95
 		"length", len(p),
90 96
 		"simple_ack", m.opts.WriteHacks.SimpleAck,
@@ -97,7 +103,6 @@ func (m *MTProtoAbridged) Write(p []byte) (int, error) {
97 103
 	}
98 104
 
99 105
 	if m.opts.WriteHacks.SimpleAck {
100
-		m.writeCounter++
101 106
 		return m.conn.Write(utils.ReverseBytes(p))
102 107
 	}
103 108
 
@@ -105,8 +110,6 @@ func (m *MTProtoAbridged) Write(p []byte) (int, error) {
105 110
 	switch {
106 111
 	case packetLength < mtprotoAbridgedSmallPacketLength:
107 112
 		newData := append([]byte{byte(packetLength)}, p...)
108
-
109
-		m.writeCounter++
110 113
 		return m.conn.Write(newData)
111 114
 
112 115
 	case packetLength < mtprotoAbridgedLargePacketLength:
@@ -119,7 +122,6 @@ func (m *MTProtoAbridged) Write(p []byte) (int, error) {
119 122
 		buf.Write(length24[:])
120 123
 		buf.Write(p)
121 124
 
122
-		m.writeCounter++
123 125
 		return m.conn.Write(buf.Bytes())
124 126
 	}
125 127
 

+ 8
- 2
wrappers/mtproto_intermediate.go Vedi File

@@ -24,6 +24,10 @@ type MTProtoIntermediate struct {
24 24
 }
25 25
 
26 26
 func (m *MTProtoIntermediate) Read() ([]byte, error) {
27
+	defer func() {
28
+		m.readCounter++
29
+	}()
30
+
27 31
 	m.logger.Debugw("Read packet",
28 32
 		"simple_ack", m.opts.ReadHacks.SimpleAck,
29 33
 		"quick_ack", m.opts.ReadHacks.QuickAck,
@@ -59,18 +63,20 @@ func (m *MTProtoIntermediate) Read() ([]byte, error) {
59 63
 	if length%4 != 0 {
60 64
 		length -= length % 4
61 65
 	}
62
-	m.readCounter++
63 66
 
64 67
 	return buf.Bytes()[:length], nil
65 68
 }
66 69
 
67 70
 func (m *MTProtoIntermediate) Write(p []byte) (int, error) {
71
+	defer func() {
72
+		m.writeCounter++
73
+	}()
74
+
68 75
 	m.logger.Debugw("Write packet",
69 76
 		"simple_ack", m.opts.WriteHacks.SimpleAck,
70 77
 		"quick_ack", m.opts.WriteHacks.QuickAck,
71 78
 		"counter", m.writeCounter,
72 79
 	)
73
-	m.writeCounter++
74 80
 
75 81
 	if m.opts.ReadHacks.SimpleAck {
76 82
 		return m.conn.Write(p)

+ 8
- 4
wrappers/mtproto_proxy.go Vedi File

@@ -22,6 +22,10 @@ type MTProtoProxy struct {
22 22
 }
23 23
 
24 24
 func (m *MTProtoProxy) Read() ([]byte, error) {
25
+	defer func() {
26
+		m.readCounter++
27
+	}()
28
+
25 29
 	m.logger.Debugw("Read packet",
26 30
 		"counter", m.readCounter,
27 31
 		"simple_ack", m.req.Options.WriteHacks.SimpleAck,
@@ -32,9 +36,6 @@ func (m *MTProtoProxy) Read() ([]byte, error) {
32 36
 	if err != nil {
33 37
 		return nil, errors.Annotate(err, "Cannot read packet")
34 38
 	}
35
-	defer func() {
36
-		m.readCounter++
37
-	}()
38 39
 
39 40
 	m.logger.Debugw("Read packet length",
40 41
 		"counter", m.readCounter,
@@ -95,13 +96,16 @@ func (m *MTProtoProxy) readCloseExt(data []byte) ([]byte, error) {
95 96
 }
96 97
 
97 98
 func (m *MTProtoProxy) Write(p []byte) (int, error) {
99
+	defer func() {
100
+		m.writeCounter++
101
+	}()
102
+
98 103
 	m.logger.Debugw("Write packet",
99 104
 		"length", len(p),
100 105
 		"counter", m.writeCounter,
101 106
 		"simple_ack", m.req.Options.ReadHacks.SimpleAck,
102 107
 		"quick_ack", m.req.Options.ReadHacks.QuickAck,
103 108
 	)
104
-	m.writeCounter++
105 109
 
106 110
 	header := m.req.MakeHeader(p)
107 111
 	if ce := m.logger.Desugar().Check(zap.DebugLevel, "RPC_PROXY_REQ header"); ce != nil {

Loading…
Annulla
Salva