From 9f5e8f230d35fffb106088b72e5fdb148905f450 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Thu, 10 Nov 2022 22:59:32 +0300 Subject: added almost all net/svc messages - currently broken --- packets/messages/types/SvcClassInfo.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'packets/messages/types/SvcClassInfo.go') diff --git a/packets/messages/types/SvcClassInfo.go b/packets/messages/types/SvcClassInfo.go index fb9dbd8..d41723d 100644 --- a/packets/messages/types/SvcClassInfo.go +++ b/packets/messages/types/SvcClassInfo.go @@ -1,8 +1,6 @@ package types import ( - "math" - "github.com/pektezol/bitreader" ) @@ -24,7 +22,7 @@ func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo { if createonclient { serverclasses := make([]ServerClass, length) for i := 0; i < int(length); i++ { - id, err := reader.ReadBits(int(math.Log2(float64(length))) + 1) + id, err := reader.ReadBits(HighestBitIndex(uint(length)) + 1) if err != nil { panic(err) } @@ -40,3 +38,10 @@ func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo { ServerClasses: serverclasses, } } + +func HighestBitIndex(i uint) int { + var j int + for j = 31; j >= 0 && (i&(1<