From cf951d631aa0f45511ec663fd229ead2a951d569 Mon Sep 17 00:00:00 2001 From: raven Date: Tue, 24 Mar 2026 18:34:37 -0500 Subject: do not limit client inbox size --- server/server.go | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/server/server.go b/server/server.go index 557abac..5e3ffe9 100644 --- a/server/server.go +++ b/server/server.go @@ -122,7 +122,7 @@ func (s *Server) Serve(ln net.Listener) { } }() var ( - ping = time.Tick(10 * time.Second) + ping = time.Tick(5 * time.Minute) tick = time.Tick(time.Second / 20) save = time.Tick(time.Minute) sigterm = make(chan os.Signal) @@ -599,8 +599,11 @@ func (cl *client) disconnect(reason string) { } func (cl *client) SendPacket(from phony.Actor, packet classic.Packet) { - cl.Act(from, func() { + deadline := time.Now().Add(5 * time.Minute) + // nil sender: we don't want to block the server on I/O + cl.Act(nil, func() { if cl.conn != nil { + cl.conn.SetWriteDeadline(deadline) cl.handleError(classic.WritePacket(cl.conn, packet)) } }) @@ -608,10 +611,12 @@ func (cl *client) SendPacket(from phony.Actor, packet classic.Packet) { func (cl *client) SendPackets( from phony.Actor, packets iter.Seq[classic.Packet]) { - cl.Act(from, func() { - if cl.conn != nil { - cl.conn.SetWriteDeadline(time.Time{}) + deadline := time.Now().Add(5 * time.Minute) + cl.Act(nil, func() { + if cl.conn == nil { + return } + cl.conn.SetWriteDeadline(deadline) for packet := range packets { if cl.conn == nil { return @@ -622,21 +627,16 @@ func (cl *client) SendPackets( } func (cl *client) SendPing(from phony.Actor) { - cl.Act(from, func() { + cl.Act(nil, func() { if cl.conn != nil { cl.conn.SetWriteDeadline(time.Now().Add(10 * time.Second)) - err := cl.handleError( - classic.WritePacket(cl.conn, &classic.Ping{}), - ) - if err == nil { - cl.conn.SetWriteDeadline(time.Time{}) - } + cl.handleError(classic.WritePacket(cl.conn, &classic.Ping{})) } }) } func (cl *client) Disconnect(from phony.Actor, reason string) { - cl.Act(from, func() { + cl.Act(nil, func() { cl.disconnect(reason) }) } -- cgit v1.2.3