X-Git-Url: https://git.r.bdr.sh/rbdr/mobius/blobdiff_plain/c8bfd6061f5079f6c6c0155a2de1e8cd32d8a39a..48ecb30da4babac9955891063f658207a31480ba:/hotline/client_conn.go?ds=sidebyside diff --git a/hotline/client_conn.go b/hotline/client_conn.go index 0a5a108..e21d8b1 100644 --- a/hotline/client_conn.go +++ b/hotline/client_conn.go @@ -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,