]> git.r.bdr.sh - rbdr/mobius/blobdiff - hotline/transaction_handlers.go
Rename encode/decode methods
[rbdr/mobius] / hotline / transaction_handlers.go
index 5de2b452dec9ab9f7ccb8ae715786e5549e43655..ee95cc0cfe8abac6ace7b878ab0c96f6daff6ccd 100644 (file)
@@ -305,7 +305,7 @@ func HandleChatSend(cc *ClientConn, t *Transaction) (res []Transaction, err erro
 func HandleSendInstantMsg(cc *ClientConn, t *Transaction) (res []Transaction, err error) {
        if !cc.Authorize(accessSendPrivMsg) {
                res = append(res, cc.NewErrReply(t, "You are not allowed to send private messages."))
-               return res, err
+               return res, errors.New("user is not allowed to send private messages")
        }
 
        msg := t.GetField(FieldData)
@@ -326,7 +326,10 @@ func HandleSendInstantMsg(cc *ClientConn, t *Transaction) (res []Transaction, er
                reply.Fields = append(reply.Fields, NewField(FieldQuotingMsg, t.GetField(FieldQuotingMsg).Data))
        }
 
-       id, _ := byteToInt(ID.Data)
+       id, err := byteToInt(ID.Data)
+       if err != nil {
+               return res, errors.New("invalid client ID")
+       }
        otherClient, ok := cc.Server.Clients[uint16(id)]
        if !ok {
                return res, errors.New("invalid client ID")
@@ -636,7 +639,7 @@ func HandleSetUser(cc *ClientConn, t *Transaction) (res []Transaction, err error
                return res, err
        }
 
-       login := DecodeUserString(t.GetField(FieldUserLogin).Data)
+       login := decodeString(t.GetField(FieldUserLogin).Data)
        userName := string(t.GetField(FieldUserName).Data)
 
        newAccessLvl := t.GetField(FieldUserAccess).Data
@@ -707,7 +710,7 @@ func HandleGetUser(cc *ClientConn, t *Transaction) (res []Transaction, err error
 
        res = append(res, cc.NewReply(t,
                NewField(FieldUserName, []byte(account.Name)),
-               NewField(FieldUserLogin, negateString(t.GetField(FieldUserLogin).Data)),
+               NewField(FieldUserLogin, encodeString(t.GetField(FieldUserLogin).Data)),
                NewField(FieldUserPassword, []byte(account.Password)),
                NewField(FieldUserAccess, account.Access[:]),
        ))
@@ -752,7 +755,7 @@ func HandleUpdateUser(cc *ClientConn, t *Transaction) (res []Transaction, err er
                }
 
                if len(subFields) == 1 {
-                       login := DecodeUserString(getField(FieldData, &subFields).Data)
+                       login := decodeString(getField(FieldData, &subFields).Data)
                        cc.logger.Infow("DeleteUser", "login", login)
 
                        if !cc.Authorize(accessDeleteUser) {
@@ -766,7 +769,7 @@ func HandleUpdateUser(cc *ClientConn, t *Transaction) (res []Transaction, err er
                        continue
                }
 
-               login := DecodeUserString(getField(FieldUserLogin, &subFields).Data)
+               login := decodeString(getField(FieldUserLogin, &subFields).Data)
 
                // check if the login dataFile; if so, we know we are updating an existing user
                if acc, ok := cc.Server.Accounts[login]; ok {
@@ -790,8 +793,8 @@ func HandleUpdateUser(cc *ClientConn, t *Transaction) (res []Transaction, err er
                        }
 
                        err = cc.Server.UpdateUser(
-                               DecodeUserString(getField(FieldData, &subFields).Data),
-                               DecodeUserString(getField(FieldUserLogin, &subFields).Data),
+                               decodeString(getField(FieldData, &subFields).Data),
+                               decodeString(getField(FieldUserLogin, &subFields).Data),
                                string(getField(FieldUserName, &subFields).Data),
                                acc.Password,
                                acc.Access,
@@ -837,7 +840,7 @@ func HandleNewUser(cc *ClientConn, t *Transaction) (res []Transaction, err error
                return res, err
        }
 
-       login := DecodeUserString(t.GetField(FieldUserLogin).Data)
+       login := decodeString(t.GetField(FieldUserLogin).Data)
 
        // If the account already dataFile, reply with an error
        if _, ok := cc.Server.Accounts[login]; ok {
@@ -873,7 +876,7 @@ func HandleDeleteUser(cc *ClientConn, t *Transaction) (res []Transaction, err er
        }
 
        // TODO: Handle case where account doesn't exist; e.g. delete race condition
-       login := DecodeUserString(t.GetField(FieldUserLogin).Data)
+       login := decodeString(t.GetField(FieldUserLogin).Data)
 
        if err := cc.Server.DeleteUser(login); err != nil {
                return res, err