maybe non blocking with a new reader
Some checks failed
Build and Publish / BuildAndDeployAmd64 (push) Failing after 29s
Build and Publish / BuildAndDeploy (push) Successful in 2m20s

This commit is contained in:
matst80
2024-11-12 15:19:28 +01:00
parent d32cb07a0d
commit 28ebe47606
4 changed files with 16 additions and 8 deletions

View File

@@ -1,6 +1,7 @@
package main package main
import ( import (
"bufio"
"io" "io"
"log" "log"
"net" "net"
@@ -29,8 +30,9 @@ func (p *CartPacketQueue) HandleConnection(connection net.Conn) error {
defer connection.Close() defer connection.Close()
var packet CartPacket var packet CartPacket
reader := bufio.NewReader(connection)
for { for {
err := ReadCartPacket(connection, &packet) err := ReadCartPacket(reader, &packet)
if err != nil { if err != nil {
if err == io.EOF { if err == io.EOF {
return nil return nil
@@ -49,7 +51,7 @@ func (p *CartPacketQueue) HandleConnection(connection net.Conn) error {
}) })
continue continue
} }
data, err := GetPacketData(connection, packet.DataLength) data, err := GetPacketData(reader, 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

View File

@@ -1,6 +1,7 @@
package main package main
import ( import (
"bufio"
"io" "io"
"log" "log"
"net" "net"
@@ -34,8 +35,9 @@ func (p *PacketQueue) HandleConnection(connection net.Conn) error {
defer connection.Close() defer connection.Close()
var packet Packet var packet Packet
reader := bufio.NewReader(connection)
for { for {
err := ReadPacket(connection, &packet) err := ReadPacket(reader, &packet)
if err != nil { if err != nil {
if err == io.EOF { if err == io.EOF {
return nil return nil
@@ -54,7 +56,7 @@ func (p *PacketQueue) HandleConnection(connection net.Conn) error {
}) })
continue continue
} }
data, err := GetPacketData(connection, packet.DataLength) data, err := GetPacketData(reader, 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

View File

@@ -1,6 +1,7 @@
package main package main
import ( import (
"bufio"
"encoding/binary" "encoding/binary"
"io" "io"
"log" "log"
@@ -103,8 +104,9 @@ func (m *TCPCartServerMux) HandleConnection(connection net.Conn) error {
var packet CartPacket var packet CartPacket
var err error var err error
defer connection.Close() defer connection.Close()
reader := bufio.NewReader(connection)
for { for {
err = ReadCartPacket(connection, &packet) err = ReadCartPacket(reader, &packet)
if err != nil { if err != nil {
if err == io.EOF { if err == io.EOF {
return nil return nil
@@ -116,7 +118,7 @@ func (m *TCPCartServerMux) HandleConnection(connection net.Conn) error {
log.Printf("Incorrect packet version: %d\n", packet.Version) log.Printf("Incorrect packet version: %d\n", packet.Version)
continue continue
} }
data, err := GetPacketData(connection, packet.DataLength) data, err := GetPacketData(reader, packet.DataLength)
if err != nil { if err != nil {
log.Printf("Error getting packet data: %v\n", err) log.Printf("Error getting packet data: %v\n", err)
} }

View File

@@ -1,6 +1,7 @@
package main package main
import ( import (
"bufio"
"encoding/binary" "encoding/binary"
"io" "io"
"log" "log"
@@ -100,8 +101,9 @@ func (m *TCPServerMux) HandleConnection(connection net.Conn) error {
defer connection.Close() defer connection.Close()
var packet Packet var packet Packet
reader := bufio.NewReader(connection)
for { for {
err := ReadPacket(connection, &packet) err := ReadPacket(reader, &packet)
if err != nil { if err != nil {
if err == io.EOF { if err == io.EOF {
return nil return nil
@@ -113,7 +115,7 @@ func (m *TCPServerMux) HandleConnection(connection net.Conn) error {
log.Printf("Incorrect package version: %v\n", err) log.Printf("Incorrect package version: %v\n", err)
continue continue
} }
data, err := GetPacketData(connection, packet.DataLength) data, err := GetPacketData(reader, 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)
} }