]> git.r.bdr.sh - rbdr/mobius/blobdiff - hotline/client_conn.go
Update failing news test
[rbdr/mobius] / hotline / client_conn.go
index 0a5a108da9fa706a0b3f6c410131c1944b006cfa..e21d8b180e7e004537afca659284f7c2ea76b06f 100644 (file)
@@ -3,9 +3,9 @@ package hotline
 import (
        "encoding/binary"
        "fmt"
-       "go.uber.org/zap"
        "golang.org/x/crypto/bcrypt"
        "io"
+       "log/slog"
        "math/big"
        "sort"
        "strings"
@@ -44,7 +44,7 @@ type ClientConn struct {
        transfersMU sync.Mutex
        transfers   map[int]map[[4]byte]*FileTransfer
 
-       logger *zap.SugaredLogger
+       logger *slog.Logger
 }
 
 func (cc *ClientConn) sendAll(t int, fields ...Field) {
@@ -60,8 +60,8 @@ func (cc *ClientConn) handleTransaction(transaction Transaction) error {
                        field := transaction.GetField(reqField.ID)
 
                        // Validate that required field is present
-                       if field.ID == nil {
-                               cc.logger.Errorw(
+                       if field.ID == [2]byte{0, 0} {
+                               cc.logger.Error(
                                        "Missing required field",
                                        "RequestType", handler.Name, "FieldID", reqField.ID,
                                )
@@ -69,7 +69,7 @@ func (cc *ClientConn) handleTransaction(transaction Transaction) error {
                        }
 
                        if len(field.Data) < reqField.minLen {
-                               cc.logger.Infow(
+                               cc.logger.Info(
                                        "Field does not meet minLen",
                                        "RequestType", handler.Name, "FieldID", reqField.ID,
                                )
@@ -77,7 +77,7 @@ func (cc *ClientConn) handleTransaction(transaction Transaction) error {
                        }
                }
 
-               cc.logger.Debugw("Received Transaction", "RequestType", handler.Name)
+               cc.logger.Debug("Received Transaction", "RequestType", handler.Name)
 
                transactions, err := handler.Handler(cc, &transaction)
                if err != nil {
@@ -87,7 +87,7 @@ func (cc *ClientConn) handleTransaction(transaction Transaction) error {
                        cc.Server.outbox <- t
                }
        } else {
-               cc.logger.Errorw(
+               cc.logger.Error(
                        "Unimplemented transaction type received", "RequestID", requestNum)
        }
 
@@ -102,7 +102,7 @@ func (cc *ClientConn) handleTransaction(transaction Transaction) error {
                // the user is no longer away
                if cc.Idle {
                        flagBitmap := big.NewInt(int64(binary.BigEndian.Uint16(cc.Flags)))
-                       flagBitmap.SetBit(flagBitmap, userFlagAway, 0)
+                       flagBitmap.SetBit(flagBitmap, UserFlagAway, 0)
                        binary.BigEndian.PutUint16(cc.Flags, uint16(flagBitmap.Int64()))
                        cc.Idle = false
 
@@ -149,7 +149,7 @@ func (cc *ClientConn) Disconnect() {
        }
 
        if err := cc.Connection.Close(); err != nil {
-               cc.Server.Logger.Errorw("error closing client connection", "RemoteAddr", cc.RemoteAddr)
+               cc.Server.Logger.Error("error closing client connection", "RemoteAddr", cc.RemoteAddr)
        }
 }
 
@@ -166,8 +166,7 @@ func (cc *ClientConn) notifyOthers(t Transaction) (trans []Transaction) {
 
 // NewReply returns a reply Transaction with fields for the ClientConn
 func (cc *ClientConn) NewReply(t *Transaction, fields ...Field) Transaction {
-       reply := Transaction{
-               Flags:     0x00,
+       return Transaction{
                IsReply:   0x01,
                Type:      []byte{0x00, 0x00},
                ID:        t.ID,
@@ -175,15 +174,12 @@ func (cc *ClientConn) NewReply(t *Transaction, fields ...Field) Transaction {
                ErrorCode: []byte{0, 0, 0, 0},
                Fields:    fields,
        }
-
-       return reply
 }
 
 // NewErrReply returns an error reply Transaction with errMsg
 func (cc *ClientConn) NewErrReply(t *Transaction, errMsg string) Transaction {
        return Transaction{
                clientID:  cc.ID,
-               Flags:     0x00,
                IsReply:   0x01,
                Type:      []byte{0, 0},
                ID:        t.ID,