This commit is contained in:
@@ -12,6 +12,8 @@ type CartPacketQueue struct {
|
|||||||
expectedPackages map[uint32]*CartListener
|
expectedPackages map[uint32]*CartListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const CurrentPacketVersion = 2
|
||||||
|
|
||||||
type CartListener map[CartId]chan []byte
|
type CartListener map[CartId]chan []byte
|
||||||
|
|
||||||
func NewCartPacketQueue(connection net.Conn) *CartPacketQueue {
|
func NewCartPacketQueue(connection net.Conn) *CartPacketQueue {
|
||||||
@@ -36,6 +38,14 @@ func (p *CartPacketQueue) HandleConnection(connection net.Conn) error {
|
|||||||
log.Printf("Error receiving packet: %v\n", err)
|
log.Printf("Error receiving packet: %v\n", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if packet.Version != CurrentPacketVersion {
|
||||||
|
log.Printf("Error receiving packet: %v\n", err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if packet.DataLength == 0 {
|
||||||
|
go p.HandleData(packet.MessageType, packet.Id, []byte{})
|
||||||
|
continue
|
||||||
|
}
|
||||||
data, err := GetPacketData(connection, packet.DataLength)
|
data, err := GetPacketData(connection, packet.DataLength)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error receiving packet data: %v\n", err)
|
log.Printf("Error receiving packet data: %v\n", err)
|
||||||
|
|||||||
@@ -52,12 +52,21 @@ func (p *PacketQueue) HandleConnection(connection net.Conn) error {
|
|||||||
log.Printf("Error receiving packet: %v\n", err)
|
log.Printf("Error receiving packet: %v\n", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if packet.Version != CurrentPacketVersion {
|
||||||
|
log.Printf("Error receiving packet: %v\n", err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if packet.DataLength == 0 {
|
||||||
|
go p.HandleData(packet.MessageType, []byte{})
|
||||||
|
continue
|
||||||
|
}
|
||||||
data, err := GetPacketData(connection, packet.DataLength)
|
data, err := GetPacketData(connection, packet.DataLength)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error receiving packet data: %v\n", err)
|
log.Printf("Error receiving packet data: %v\n", err)
|
||||||
return err
|
//return err
|
||||||
|
} else {
|
||||||
|
go p.HandleData(packet.MessageType, data)
|
||||||
}
|
}
|
||||||
go p.HandleData(packet.MessageType, data)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ func (m *TCPCartServerMux) handleFunction(connection net.Conn, messageType uint3
|
|||||||
return true, err
|
return true, err
|
||||||
}
|
}
|
||||||
err = binary.Write(connection, binary.LittleEndian, CartPacket{
|
err = binary.Write(connection, binary.LittleEndian, CartPacket{
|
||||||
Version: 1,
|
Version: CurrentPacketVersion,
|
||||||
MessageType: responseType,
|
MessageType: responseType,
|
||||||
DataLength: uint64(len(responseData)),
|
DataLength: uint64(len(responseData)),
|
||||||
Id: id,
|
Id: id,
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ func (m *TCPClient) SendPacket(messageType uint32, data []byte) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = binary.Write(m.Conn, binary.LittleEndian, Packet{
|
err = binary.Write(m.Conn, binary.LittleEndian, Packet{
|
||||||
Version: 1,
|
Version: CurrentPacketVersion,
|
||||||
MessageType: messageType,
|
MessageType: messageType,
|
||||||
DataLength: uint64(len(data)),
|
DataLength: uint64(len(data)),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ func (m *TCPServerMux) handleFunction(connection net.Conn, messageType uint32, d
|
|||||||
return true, err
|
return true, err
|
||||||
}
|
}
|
||||||
err = binary.Write(connection, binary.LittleEndian, Packet{
|
err = binary.Write(connection, binary.LittleEndian, Packet{
|
||||||
Version: 1,
|
Version: CurrentPacketVersion,
|
||||||
MessageType: responseType,
|
MessageType: responseType,
|
||||||
DataLength: uint64(len(responseData)),
|
DataLength: uint64(len(responseData)),
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user