diff --git a/cart-packet-queue.go b/cart-packet-queue.go index 0daf92f..04e1e1a 100644 --- a/cart-packet-queue.go +++ b/cart-packet-queue.go @@ -6,6 +6,7 @@ import ( "log" "net" "sync" + "time" ) type CartPacketQueue struct { @@ -41,6 +42,7 @@ func (p *CartPacketQueue) HandleConnection(connection net.Conn) error { defer p.RemoveListeners() defer connection.Close() var packet CartPacket + connection.SetReadDeadline(time.Now().Add(time.Millisecond * 200)) reader := bufio.NewReader(connection) for { err := ReadCartPacket(reader, &packet) @@ -52,8 +54,8 @@ func (p *CartPacketQueue) HandleConnection(connection net.Conn) error { return err } if packet.Version != CurrentPacketVersion { - log.Printf("Error receiving packet: %v\n", err) - continue + log.Printf("Incorrect version: %v\n", packet.Version) + return nil } if packet.DataLength == 0 { go p.HandleData(packet.MessageType, packet.Id, CallResult{ diff --git a/packet-queue.go b/packet-queue.go index e9ebc26..d395db5 100644 --- a/packet-queue.go +++ b/packet-queue.go @@ -7,6 +7,7 @@ import ( "log" "net" "sync" + "time" ) type PacketQueue struct { @@ -46,6 +47,7 @@ func (p *PacketQueue) HandleConnection(connection net.Conn) error { defer p.RemoveListeners() var packet Packet reader := bufio.NewReader(connection) + connection.SetReadDeadline(time.Now().Add(time.Millisecond * 200)) for { err := ReadPacket(reader, &packet) if err != nil { @@ -56,7 +58,7 @@ func (p *PacketQueue) HandleConnection(connection net.Conn) error { return err } if packet.Version != CurrentPacketVersion { - log.Printf("Error receiving packet: %v\n", packet.Version) + log.Printf("Incorrect packet version: %v\n", packet.Version) return fmt.Errorf("incorrect packet version: %d", packet.Version) } if packet.DataLength == 0 {