close connection more often
This commit is contained in:
@@ -26,8 +26,19 @@ func NewCartPacketQueue(connection net.Conn) *CartPacketQueue {
|
||||
return queue
|
||||
}
|
||||
|
||||
func (p *CartPacketQueue) HandleConnection(connection net.Conn) error {
|
||||
func (p *CartPacketQueue) RemoveListeners() {
|
||||
p.mu.Lock()
|
||||
defer p.mu.Unlock()
|
||||
for _, l := range p.expectedPackages {
|
||||
for _, l := range *l {
|
||||
close(l.Chan)
|
||||
}
|
||||
}
|
||||
p.expectedPackages = make(map[uint32]*CartListener)
|
||||
}
|
||||
|
||||
func (p *CartPacketQueue) HandleConnection(connection net.Conn) error {
|
||||
defer p.RemoveListeners()
|
||||
defer connection.Close()
|
||||
var packet CartPacket
|
||||
reader := bufio.NewReader(connection)
|
||||
|
||||
@@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"net"
|
||||
@@ -31,9 +32,18 @@ func NewPacketQueue(connection net.Conn) *PacketQueue {
|
||||
return queue
|
||||
}
|
||||
|
||||
func (p *PacketQueue) HandleConnection(connection net.Conn) error {
|
||||
func (p *PacketQueue) RemoveListeners() {
|
||||
p.mu.Lock()
|
||||
defer p.mu.Unlock()
|
||||
for _, l := range p.expectedPackages {
|
||||
close(l.Chan)
|
||||
}
|
||||
p.expectedPackages = make(map[uint32]*Listener)
|
||||
}
|
||||
|
||||
func (p *PacketQueue) HandleConnection(connection net.Conn) error {
|
||||
defer connection.Close()
|
||||
defer p.RemoveListeners()
|
||||
var packet Packet
|
||||
reader := bufio.NewReader(connection)
|
||||
for {
|
||||
@@ -46,8 +56,8 @@ func (p *PacketQueue) HandleConnection(connection net.Conn) error {
|
||||
return err
|
||||
}
|
||||
if packet.Version != CurrentPacketVersion {
|
||||
log.Printf("Error receiving packet: %v\n", err)
|
||||
continue
|
||||
log.Printf("Error receiving packet: %v\n", packet.Version)
|
||||
return fmt.Errorf("incorrect packet version: %d", packet.Version)
|
||||
}
|
||||
if packet.DataLength == 0 {
|
||||
go p.HandleData(packet.MessageType, CallResult{
|
||||
@@ -59,7 +69,7 @@ func (p *PacketQueue) HandleConnection(connection net.Conn) error {
|
||||
data, err := GetPacketData(reader, packet.DataLength)
|
||||
if err != nil {
|
||||
log.Printf("Error receiving packet data: %v\n", err)
|
||||
//return err
|
||||
return err
|
||||
} else {
|
||||
go p.HandleData(packet.MessageType, CallResult{
|
||||
StatusCode: packet.StatusCode,
|
||||
|
||||
@@ -118,6 +118,7 @@ func (m *TCPServerMux) HandleConnection(connection net.Conn) error {
|
||||
data, err := GetPacketData(reader, packet.DataLength)
|
||||
if err != nil {
|
||||
log.Printf("Error receiving packet data: %v\n", err)
|
||||
return err
|
||||
}
|
||||
go m.HandleData(connection, packet.MessageType, data)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user