X-Git-Url: https://git.r.bdr.sh/rbdr/mobius/blobdiff_plain/a2ef262a164fc735b9b8471ac0c8001eea2b9bf6..6eaf9391526a808c0056427f056169311352446d:/hotline/user.go diff --git a/hotline/user.go b/hotline/user.go index 26625a2..c4e0790 100644 --- a/hotline/user.go +++ b/hotline/user.go @@ -15,7 +15,7 @@ const ( UserFlagRefusePChat = 3 // User refuses private chat ) -// FieldOptions flags are sent from v1.5+ clients as part of TranAgreed +// User options are sent from clients and represent options set in the client's preferences. const ( UserOptRefusePM = 0 // User has "Refuse private messages" pref set UserOptRefuseChat = 1 // User has "Refuse private chat" pref set @@ -24,15 +24,15 @@ const ( type UserFlags [2]byte -func (flag *UserFlags) IsSet(i int) bool { - flagBitmap := big.NewInt(int64(binary.BigEndian.Uint16(flag[:]))) +func (f *UserFlags) IsSet(i int) bool { + flagBitmap := big.NewInt(int64(binary.BigEndian.Uint16(f[:]))) return flagBitmap.Bit(i) == 1 } -func (flag *UserFlags) Set(i int, newVal uint) { - flagBitmap := big.NewInt(int64(binary.BigEndian.Uint16(flag[:]))) +func (f *UserFlags) Set(i int, newVal uint) { + flagBitmap := big.NewInt(int64(binary.BigEndian.Uint16(f[:]))) flagBitmap.SetBit(flagBitmap, i, newVal) - binary.BigEndian.PutUint16(flag[:], uint16(flagBitmap.Int64())) + binary.BigEndian.PutUint16(f[:], uint16(flagBitmap.Int64())) } type User struct { @@ -84,10 +84,10 @@ func (u *User) Write(p []byte) (int, error) { return 8 + namelen, nil } -// encodeString takes []byte s containing cleartext and rotates by 255 into obfuscated cleartext. +// EncodeString takes []byte s containing cleartext and rotates by 255 into obfuscated cleartext. // The Hotline protocol uses this format for sending passwords over network. // Not secure, but hey, it was the 90s! -func encodeString(clearText []byte) []byte { +func EncodeString(clearText []byte) []byte { obfuText := make([]byte, len(clearText)) for i := 0; i < len(clearText); i++ { obfuText[i] = 255 - clearText[i]