aboutsummaryrefslogtreecommitdiff
path: root/packets/messages/types/SvcClassInfo.go
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2022-11-10 20:16:14 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-16 21:39:39 +0300
commitfa3ba150b17d0e013b080cc29c92bfb68bf6264c (patch)
treecb75241725cd342b16c48f35ad91e1adae882348 /packets/messages/types/SvcClassInfo.go
parentnet/svc messages (diff)
downloadsdp.go-fa3ba150b17d0e013b080cc29c92bfb68bf6264c.tar.gz
sdp.go-fa3ba150b17d0e013b080cc29c92bfb68bf6264c.tar.bz2
sdp.go-fa3ba150b17d0e013b080cc29c92bfb68bf6264c.zip
deleted reduntant length fields - improved struct append
Diffstat (limited to 'packets/messages/types/SvcClassInfo.go')
-rw-r--r--packets/messages/types/SvcClassInfo.go24
1 files changed, 12 insertions, 12 deletions
diff --git a/packets/messages/types/SvcClassInfo.go b/packets/messages/types/SvcClassInfo.go
index 58e43b7..fb9dbd8 100644
--- a/packets/messages/types/SvcClassInfo.go
+++ b/packets/messages/types/SvcClassInfo.go
@@ -7,7 +7,6 @@ import (
7) 7)
8 8
9type SvcClassInfo struct { 9type SvcClassInfo struct {
10 Length uint16
11 CreateOnClient bool 10 CreateOnClient bool
12 ServerClasses []ServerClass 11 ServerClasses []ServerClass
13} 12}
@@ -19,24 +18,25 @@ type ServerClass struct {
19} 18}
20 19
21func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo { 20func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo {
21 length := reader.TryReadInt16()
22 createonclient := reader.TryReadBool()
22 var serverclasses []ServerClass 23 var serverclasses []ServerClass
23 svcclassinfo := SvcClassInfo{ 24 if createonclient {
24 Length: reader.TryReadInt16(), 25 serverclasses := make([]ServerClass, length)
25 CreateOnClient: reader.TryReadBool(), 26 for i := 0; i < int(length); i++ {
26 } 27 id, err := reader.ReadBits(int(math.Log2(float64(length))) + 1)
27 if svcclassinfo.CreateOnClient {
28 for i := 0; i < int(svcclassinfo.Length); i++ {
29 id, err := reader.ReadBits(int(math.Log2(float64(svcclassinfo.Length))) + 1)
30 if err != nil { 28 if err != nil {
31 panic(err) 29 panic(err)
32 } 30 }
33 serverclasses = append(serverclasses, ServerClass{ 31 serverclasses[i] = ServerClass{
34 ClassId: int32(id), 32 ClassId: int32(id),
35 ClassName: reader.TryReadString(), 33 ClassName: reader.TryReadString(),
36 DataTableName: reader.TryReadString(), 34 DataTableName: reader.TryReadString(),
37 }) 35 }
38 } 36 }
39 } 37 }
40 svcclassinfo.ServerClasses = serverclasses 38 return SvcClassInfo{
41 return svcclassinfo 39 CreateOnClient: createonclient,
40 ServerClasses: serverclasses,
41 }
42} 42}