diff options
| author | bt <bt@rctt.net> | 2026-04-19 21:32:53 +0200 |
|---|---|---|
| committer | bt <bt@rctt.net> | 2026-05-03 17:52:37 +0200 |
| commit | eec10d41af62fb9a93cd5fd79dcf94616701cc2a (patch) | |
| tree | d72068dcc4cb1aa43c2e0a2fae8ff094d41ed9c6 /server/remote.go | |
| parent | c00e7dd589921e6be45918d4cd589e52e2b77036 (diff) | |
| download | solec-eec10d41af62fb9a93cd5fd79dcf94616701cc2a.tar.gz solec-eec10d41af62fb9a93cd5fd79dcf94616701cc2a.zip | |
[common] Basic group channels supportv0.3.0
Diffstat (limited to 'server/remote.go')
| -rw-r--r-- | server/remote.go | 23 |
1 files changed, 22 insertions, 1 deletions
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 + } +} |
