From: Jeff Halter Date: Fri, 27 May 2022 20:50:02 +0000 (-0700) Subject: Fix issue with HL 1.5+ user flag unset X-Git-Url: https://git.r.bdr.sh/rbdr/mobius/commitdiff_plain/7f12122f861fab4f4d0e3972ca0e66ff8becae19?ds=sidebyside;hp=--cc Fix issue with HL 1.5+ user flag unset This fixes an issue where it was not possible for users to unset the "Refuse private chat/messages" preference --- 7f12122f861fab4f4d0e3972ca0e66ff8becae19 diff --git a/hotline/transaction_handlers.go b/hotline/transaction_handlers.go index 2c5a930..7e3afa1 100644 --- a/hotline/transaction_handlers.go +++ b/hotline/transaction_handlers.go @@ -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 {