+2
-12
server/peer.go
+2
-12
server/peer.go
···
1
1
package server
2
2
3
3
import (
4
-
"log/slog"
5
4
"net"
6
5
"sync"
7
-
8
-
"github.com/google/uuid"
9
6
)
10
7
11
8
// Status represents the status of a request
···
33
30
type peer struct {
34
31
conn net.Conn
35
32
connMu sync.Mutex
36
-
name string
37
33
}
38
34
39
35
func newPeer(conn net.Conn) peer {
40
36
return peer{
41
37
conn: conn,
42
-
name: uuid.New().String(),
43
38
}
44
39
}
45
40
···
50
45
type connOpp func(conn net.Conn) error
51
46
52
47
func (p *peer) connOperation(op connOpp, from string) error {
53
-
slog.Info("operation running", "from", from, "peer", p.conn.RemoteAddr(), "name", p.name, "mu addr", &p.connMu)
54
-
55
48
p.connMu.Lock()
56
-
err := op(p.conn)
57
-
p.connMu.Unlock()
49
+
defer p.connMu.Unlock()
58
50
59
-
slog.Info("operation finished", "from", from, "peer", p.conn.RemoteAddr(), "name", p.name, "mu addr", &p.connMu)
60
-
61
-
return err
51
+
return op(p.conn)
62
52
}
+1
-1
server/server.go
+1
-1
server/server.go
···
214
214
op := func(conn net.Conn) error {
215
215
dataLen, err := dataLength(conn)
216
216
if err != nil {
217
-
slog.Error(err.Error(), "peer", peer.addr())
217
+
slog.Error("failed to read data length", "error", err, "peer", peer.addr())
218
218
writeStatus(Error, "invalid data length of data provided", conn)
219
219
return nil
220
220
}
+2
-2
server/server_test.go
+2
-2
server/server_test.go
···
215
215
func TestSendsDataToTopicSubscribers(t *testing.T) {
216
216
_ = createServer(t)
217
217
218
-
subscribers := make([]net.Conn, 0, 1)
219
-
for i := 0; i < 1; i++ {
218
+
subscribers := make([]net.Conn, 0, 10)
219
+
for i := 0; i < 10; i++ {
220
220
subscriberConn := createConnectionAndSubscribe(t, []string{topicA, topicB})
221
221
222
222
subscribers = append(subscribers, subscriberConn)