diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-01-22 17:23:18 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-01-22 17:23:18 +0200 |
| commit | a6ea05146050a8b2ae5963d4ea96434dc3005f37 (patch) | |
| tree | 09128a6f90a0aae8159e0575e11562409f525a1d /internal/server/server.go | |
| parent | 645247f4ef489c9084a7d8d30db89b083287f0c6 (diff) | |
Added the ability to trust/untrust users
Diffstat (limited to 'internal/server/server.go')
| -rw-r--r-- | internal/server/server.go | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/internal/server/server.go b/internal/server/server.go index 8e69d70..3dcc16b 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -242,15 +242,25 @@ func (server *server) handleConnection(conn net.Conn) { // Send initial packets payload := api.GetUserData(ctx, sess, &packet.GetUserData{}) - dataPacket := packet.NewPacket(packet.NewMsgPackEncoder(payload)) - sess.Write(ctx, dataPacket) + if payload == &api.ErrInternalError { + return // closes the connection + } + pkt := packet.NewPacket(packet.NewMsgPackEncoder(payload)) + sess.Write(ctx, pkt) + + payload = api.GetUserTrusteds(ctx, sess) + if payload == &api.ErrInternalError { + return // closes the connection + } + pkt = packet.NewPacket(packet.NewMsgPackEncoder(payload)) + sess.Write(ctx, pkt) payload, err = api.GetNetworksInfo(ctx, sess) if err != nil { return // closes the connection } - infoPacket := packet.NewPacket(packet.NewMsgPackEncoder(payload)) - sess.Write(ctx, infoPacket) + pkt = packet.NewPacket(packet.NewMsgPackEncoder(payload)) + sess.Write(ctx, pkt) // Infinite read loop buffer := make([]byte, 512) @@ -371,6 +381,9 @@ func processRequest(ctx context.Context, sess *session.Session, request packet.P case *packet.SetMember: response = timeout(50*time.Millisecond, api.SetMember, ctx, sess, request) + case *packet.TrustUser: + response = timeout(10*time.Millisecond, api.TrustUser, ctx, sess, request) + default: response = &packet.Error{Error: "use of disallowed packet type for request"} } |
