]> git.r.bdr.sh - rbdr/mobius/commitdiff
Fix issue with HL 1.5+ user flag unset
authorJeff Halter <redacted>
Fri, 27 May 2022 20:50:02 +0000 (13:50 -0700)
committerJeff Halter <redacted>
Fri, 27 May 2022 20:50:02 +0000 (13:50 -0700)
This fixes an issue where it was not possible for users to unset the "Refuse private chat/messages" preference

hotline/transaction_handlers.go

index 2c5a930aee5c0ba78f1a053efe88cd0e43d9b9d7..7e3afa14de1df9217968745a98c43003bc02331b 100644 (file)
@@ -1367,17 +1367,11 @@ func HandleSetClientUserInfo(cc *ClientConn, t *Transaction) (res []Transaction,
                optBitmap := big.NewInt(int64(binary.BigEndian.Uint16(options)))
                flagBitmap := big.NewInt(int64(binary.BigEndian.Uint16(*cc.Flags)))
 
-               // Check refuse private PM option
-               if optBitmap.Bit(refusePM) == 1 {
-                       flagBitmap.SetBit(flagBitmap, userFlagRefusePM, 1)
-                       binary.BigEndian.PutUint16(*cc.Flags, uint16(flagBitmap.Int64()))
-               }
+               flagBitmap.SetBit(flagBitmap, userFlagRefusePM, optBitmap.Bit(refusePM))
+               binary.BigEndian.PutUint16(*cc.Flags, uint16(flagBitmap.Int64()))
 
-               // Check refuse private chat option
-               if optBitmap.Bit(refuseChat) == 1 {
-                       flagBitmap.SetBit(flagBitmap, userFLagRefusePChat, 1)
-                       binary.BigEndian.PutUint16(*cc.Flags, uint16(flagBitmap.Int64()))
-               }
+               flagBitmap.SetBit(flagBitmap, userFLagRefusePChat, optBitmap.Bit(refuseChat))
+               binary.BigEndian.PutUint16(*cc.Flags, uint16(flagBitmap.Int64()))
 
                // Check auto response
                if optBitmap.Bit(autoResponse) == 1 {