aboutsummaryrefslogtreecommitdiff
path: root/packets/packet.go
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2022-11-11 23:19:01 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-16 21:39:42 +0300
commit892fb8f547ce4a31901fb029a762331b1188efb7 (patch)
tree51d38af2364d7139fc93f8637e40c77930407532 /packets/packet.go
parentupgrade bitreader to v1.2.5 (diff)
downloadsdp.go-892fb8f547ce4a31901fb029a762331b1188efb7.tar.gz
sdp.go-892fb8f547ce4a31901fb029a762331b1188efb7.tar.bz2
sdp.go-892fb8f547ce4a31901fb029a762331b1188efb7.zip
net/svc messages finally getting parsed correctly
Diffstat (limited to 'packets/packet.go')
-rw-r--r--packets/packet.go43
1 files changed, 21 insertions, 22 deletions
diff --git a/packets/packet.go b/packets/packet.go
index cc94e62..8f4a262 100644
--- a/packets/packet.go
+++ b/packets/packet.go
@@ -14,25 +14,26 @@ func ParsePacket(reader *bitreader.ReaderType) (status int) {
14 messageType := reader.TryReadInt8() 14 messageType := reader.TryReadInt8()
15 messageTick := reader.TryReadInt32() 15 messageTick := reader.TryReadInt32()
16 messageSlot := reader.TryReadInt8() 16 messageSlot := reader.TryReadInt8()
17 _ = messageSlot
17 switch messageType { 18 switch messageType {
18 case 1: // TODO: SignOn - Data 19 case 1:
19 signOn := SignOn{ 20 signOn := SignOn{
20 PacketInfo: classes.ParseCmdInfo(reader, MSSC), 21 PacketInfo: classes.ParseCmdInfo(reader, MSSC),
21 InSequence: int32(reader.TryReadInt32()), 22 InSequence: int32(reader.TryReadInt32()),
22 OutSequence: int32(reader.TryReadInt32()), 23 OutSequence: int32(reader.TryReadInt32()),
23 Size: int32(reader.TryReadInt32()),
24 } 24 }
25 signOn.Data = messages.ParseMessage(reader.TryReadBytesToSlice(int(signOn.Size))) 25 size := int(reader.TryReadInt32())
26 fmt.Printf("[%d] (%d) {%d} SignOn: %v\n", messageTick, messageType, messageSlot, signOn) 26 signOn.Data = messages.ParseMessage(reader.TryReadBytesToSlice(size))
27 // fmt.Printf("[%d] (%d) {%d} SignOn: %v\n", messageTick, messageType, messageSlot, signOn)
27 return 1 28 return 1
28 case 2: // TODO: Packet - Data 29 case 2:
29 packet := Packet{ 30 packet := Packet{
30 PacketInfo: classes.ParseCmdInfo(reader, MSSC), 31 PacketInfo: classes.ParseCmdInfo(reader, MSSC),
31 InSequence: int32(reader.TryReadInt32()), 32 InSequence: int32(reader.TryReadInt32()),
32 OutSequence: int32(reader.TryReadInt32()), 33 OutSequence: int32(reader.TryReadInt32()),
33 Size: int32(reader.TryReadInt32()),
34 } 34 }
35 packet.Data = messages.ParseMessage(reader.TryReadBytesToSlice(int(packet.Size))) 35 size := int(reader.TryReadInt32())
36 packet.Data = messages.ParseMessage(reader.TryReadBytesToSlice(size))
36 // fmt.Printf("[%d] (%d) Packet: %v\n", messageTick, messageType, packet) 37 // fmt.Printf("[%d] (%d) Packet: %v\n", messageTick, messageType, packet)
37 return 2 38 return 2
38 case 3: 39 case 3:
@@ -40,26 +41,25 @@ func ParsePacket(reader *bitreader.ReaderType) (status int) {
40 fmt.Printf("[%d] (%d) SyncTick: %v\n", messageTick, messageType, syncTick) 41 fmt.Printf("[%d] (%d) SyncTick: %v\n", messageTick, messageType, syncTick)
41 return 3 42 return 3
42 case 4: 43 case 4:
43 consoleCmd := ConsoleCmd{ 44 size := int(reader.TryReadInt32())
44 Size: int32(reader.TryReadInt32()), 45 var consoleCmd ConsoleCmd
45 } 46 consoleCmd.Data = reader.TryReadStringLen(size)
46 consoleCmd.Data = reader.TryReadStringLen(int(consoleCmd.Size))
47 // fmt.Printf("[%d] (%d) ConsoleCmd: %s\n", messageTick, messageType, consoleCmd.Data) 47 // fmt.Printf("[%d] (%d) ConsoleCmd: %s\n", messageTick, messageType, consoleCmd.Data)
48 return 4 48 return 4
49 case 5: // TODO: UserCmd - Buttons 49 case 5: // TODO: UserCmd - Buttons
50 userCmd := UserCmd{ 50 userCmd := UserCmd{
51 Cmd: int32(reader.TryReadInt32()), 51 Cmd: int32(reader.TryReadInt32()),
52 Size: int32(reader.TryReadInt32()),
53 } 52 }
54 userCmd.Data = classes.ParseUserCmdInfo(reader.TryReadBytesToSlice(int(userCmd.Size))) 53 size := int(reader.TryReadInt32())
54 userCmd.Data = classes.ParseUserCmdInfo(reader.TryReadBytesToSlice(size))
55 // fmt.Printf("[%d] (%d) UserCmd: %v\n", messageTick, messageType, userCmd) 55 // fmt.Printf("[%d] (%d) UserCmd: %v\n", messageTick, messageType, userCmd)
56 return 5 56 return 5
57 case 6: // TODO: DataTables 57 case 6: // TODO: DataTables
58 // datatables := DataTables{ 58 // datatables := DataTables{
59 // Size: int32(reader.TryReadInt32()), 59 // Size: int32(reader.TryReadInt32()),
60 // } 60 // }
61 val := reader.TryReadInt32() 61 size := int(reader.TryReadInt32())
62 reader.SkipBytes(int(val)) 62 reader.SkipBytes(size)
63 // datatables.Data = classes.ParseDataTable(reader.TryReadBytesToSlice(int(datatables.Size))) 63 // datatables.Data = classes.ParseDataTable(reader.TryReadBytesToSlice(int(datatables.Size)))
64 // fmt.Printf("[%d] (%d) DataTables: %v\n", messageTick, messageType, datatables) 64 // fmt.Printf("[%d] (%d) DataTables: %v\n", messageTick, messageType, datatables)
65 return 6 65 return 6
@@ -71,15 +71,14 @@ func ParsePacket(reader *bitreader.ReaderType) (status int) {
71 return 7 71 return 7
72 case 8: // TODO: CustomData 72 case 8: // TODO: CustomData
73 reader.SkipBytes(4) 73 reader.SkipBytes(4)
74 val := reader.TryReadInt32() 74 size := int(reader.TryReadInt32())
75 reader.SkipBytes(int(val)) 75 reader.SkipBytes(size)
76 // fmt.Printf("[%d] (%d) CustomData: \n", messageTick, messageType) 76 // fmt.Printf("[%d] (%d) CustomData: \n", messageTick, messageType)
77 return 8 77 return 8
78 case 9: // TODO: StringTables - Data 78 case 9: // TODO: StringTables - Data
79 stringTables := StringTables{ 79 var stringTables StringTables
80 Size: int32(reader.TryReadInt32()), 80 size := int(reader.TryReadInt32())
81 } 81 stringTables.Data = classes.ParseStringTable(reader.TryReadBytesToSlice(size))
82 stringTables.Data = classes.ParseStringTable(reader.TryReadBytesToSlice(int(stringTables.Size)))
83 // fmt.Printf("[%d] (%d) StringTables: %v\n", messageTick, messageType, stringTables) 82 // fmt.Printf("[%d] (%d) StringTables: %v\n", messageTick, messageType, stringTables)
84 return 9 83 return 9
85 default: 84 default: