diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2022-11-10 20:16:14 +0300 |
|---|---|---|
| committer | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-09-16 21:39:39 +0300 |
| commit | fa3ba150b17d0e013b080cc29c92bfb68bf6264c (patch) | |
| tree | cb75241725cd342b16c48f35ad91e1adae882348 /packets/messages/types/SvcClassInfo.go | |
| parent | net/svc messages (diff) | |
| download | sdp.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.go | 24 |
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 | ||
| 9 | type SvcClassInfo struct { | 9 | type 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 | ||
| 21 | func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo { | 20 | func 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 | } |