From eec10d41af62fb9a93cd5fd79dcf94616701cc2a Mon Sep 17 00:00:00 2001 From: bt Date: Sun, 19 Apr 2026 21:32:53 +0200 Subject: [common] Basic group channels support --- server/remote.go | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'server/remote.go') diff --git a/server/remote.go b/server/remote.go index 2449511..5d86da2 100644 --- a/server/remote.go +++ b/server/remote.go @@ -45,7 +45,7 @@ func (s *Server) handleServerConn(conn net.Conn) { s.serversMu.Unlock() }() - if err := s.readInput(conn); err != nil { + if err := s.readRemoteInput(conn); err != nil { log.Println(err) } } @@ -110,3 +110,24 @@ func (s *Server) initRemoteConn(name string) (net.Conn, error) { return conn, nil } + +func (s *Server) readRemoteInput(conn net.Conn) error { + for { + payload, err := core.Decode(conn) + if err != nil { + return err + } + if err := s.handleRemotePayload(conn, payload); err != nil { + log.Print("handler error: ", err) + } + } +} + +func (s *Server) handleRemotePayload(sender net.Conn, payload any) error { + switch v := payload.(type) { + case core.Message: + return s.handleMessage(sender, v) + default: + return core.ErrUnexpectedPayloadType + } +} -- cgit v1.2.3