]> git.r.bdr.sh - rbdr/mobius/blobdiff - hotline/client_conn.go
Adopt more fixed size array types for struct fields
[rbdr/mobius] / hotline / client_conn.go
index e21d8b180e7e004537afca659284f7c2ea76b06f..0a7768f78835597e1026f386ac82dc3da9ac5702 100644 (file)
@@ -54,7 +54,7 @@ func (cc *ClientConn) sendAll(t int, fields ...Field) {
 }
 
 func (cc *ClientConn) handleTransaction(transaction Transaction) error {
-       requestNum := binary.BigEndian.Uint16(transaction.Type)
+       requestNum := binary.BigEndian.Uint16(transaction.Type[:])
        if handler, ok := TransactionHandlers[requestNum]; ok {
                for _, reqField := range handler.RequiredFields {
                        field := transaction.GetField(reqField.ID)
@@ -81,7 +81,7 @@ func (cc *ClientConn) handleTransaction(transaction Transaction) error {
 
                transactions, err := handler.Handler(cc, &transaction)
                if err != nil {
-                       return err
+                       return fmt.Errorf("error handling transaction: %w", err)
                }
                for _, t := range transactions {
                        cc.Server.outbox <- t
@@ -168,10 +168,10 @@ func (cc *ClientConn) notifyOthers(t Transaction) (trans []Transaction) {
 func (cc *ClientConn) NewReply(t *Transaction, fields ...Field) Transaction {
        return Transaction{
                IsReply:   0x01,
-               Type:      []byte{0x00, 0x00},
+               Type:      [2]byte{0x00, 0x00},
                ID:        t.ID,
                clientID:  cc.ID,
-               ErrorCode: []byte{0, 0, 0, 0},
+               ErrorCode: [4]byte{0, 0, 0, 0},
                Fields:    fields,
        }
 }
@@ -181,9 +181,9 @@ func (cc *ClientConn) NewErrReply(t *Transaction, errMsg string) Transaction {
        return Transaction{
                clientID:  cc.ID,
                IsReply:   0x01,
-               Type:      []byte{0, 0},
+               Type:      [2]byte{0, 0},
                ID:        t.ID,
-               ErrorCode: []byte{0, 0, 0, 1},
+               ErrorCode: [4]byte{0, 0, 0, 1},
                Fields: []Field{
                        NewField(FieldError, []byte(errMsg)),
                },