From 7f12122f861fab4f4d0e3972ca0e66ff8becae19 Mon Sep 17 00:00:00 2001 From: Jeff Halter <868228+jhalter@users.noreply.github.com> Date: Fri, 27 May 2022 13:50:02 -0700 Subject: 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 --- hotline/transaction_handlers.go | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'hotline') 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 { -- cgit