diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2022-11-10 22:59:32 +0300 |
|---|---|---|
| committer | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-09-16 21:39:40 +0300 |
| commit | 9f5e8f230d35fffb106088b72e5fdb148905f450 (patch) | |
| tree | 2f22a5357a7bea2ce516b9a5e56e21435414529a /packets/messages/types/SvcClassInfo.go | |
| parent | upgraded to v1.2.3 (diff) | |
| download | sdp.go-9f5e8f230d35fffb106088b72e5fdb148905f450.tar.gz sdp.go-9f5e8f230d35fffb106088b72e5fdb148905f450.tar.bz2 sdp.go-9f5e8f230d35fffb106088b72e5fdb148905f450.zip | |
added almost all net/svc messages - currently broken
Diffstat (limited to 'packets/messages/types/SvcClassInfo.go')
| -rw-r--r-- | packets/messages/types/SvcClassInfo.go | 11 |
1 files changed, 8 insertions, 3 deletions
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 @@ | |||
| 1 | package types | 1 | package types |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "math" | ||
| 5 | |||
| 6 | "github.com/pektezol/bitreader" | 4 | "github.com/pektezol/bitreader" |
| 7 | ) | 5 | ) |
| 8 | 6 | ||
| @@ -24,7 +22,7 @@ func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo { | |||
| 24 | if createonclient { | 22 | if createonclient { |
| 25 | serverclasses := make([]ServerClass, length) | 23 | serverclasses := make([]ServerClass, length) |
| 26 | for i := 0; i < int(length); i++ { | 24 | for i := 0; i < int(length); i++ { |
| 27 | id, err := reader.ReadBits(int(math.Log2(float64(length))) + 1) | 25 | id, err := reader.ReadBits(HighestBitIndex(uint(length)) + 1) |
| 28 | if err != nil { | 26 | if err != nil { |
| 29 | panic(err) | 27 | panic(err) |
| 30 | } | 28 | } |
| @@ -40,3 +38,10 @@ func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo { | |||
| 40 | ServerClasses: serverclasses, | 38 | ServerClasses: serverclasses, |
| 41 | } | 39 | } |
| 42 | } | 40 | } |
| 41 | |||
| 42 | func HighestBitIndex(i uint) int { | ||
| 43 | var j int | ||
| 44 | for j = 31; j >= 0 && (i&(1<<j)) == 0; j-- { | ||
| 45 | } | ||
| 46 | return j | ||
| 47 | } | ||