Remove errors from wyoming server handlers

This commit is contained in:
Alex X
2025-04-24 18:32:42 +03:00
parent 518cae1476
commit 890fd78a6a
4 changed files with 14 additions and 23 deletions

View File

@@ -93,19 +93,13 @@ func handle(srv *wyoming.Server, mode string, conn net.Conn) {
log.Trace().Msgf("[wyoming] %s connected", addr) log.Trace().Msgf("[wyoming] %s connected", addr)
var err error
switch mode { switch mode {
case "mic": case "mic":
err = srv.HandleMic(conn) srv.HandleMic(conn)
case "snd": case "snd":
err = srv.HandleSnd(conn) srv.HandleSnd(conn)
default: default:
err = srv.Handle(conn) srv.Handle(conn)
}
if err != nil {
log.Error().Msgf("[wyoming] %s error: %s", addr, err)
} }
log.Trace().Msgf("[wyoming] %s disconnected", addr) log.Trace().Msgf("[wyoming] %s disconnected", addr)

View File

@@ -7,7 +7,7 @@ import (
"github.com/AlexxIT/go2rtc/pkg/core" "github.com/AlexxIT/go2rtc/pkg/core"
) )
func (s *Server) HandleMic(conn net.Conn) error { func (s *Server) HandleMic(conn net.Conn) {
defer conn.Close() defer conn.Close()
var closed core.Waiter var closed core.Waiter
@@ -26,10 +26,10 @@ func (s *Server) HandleMic(conn net.Conn) error {
mic.RemoteAddr = api.conn.RemoteAddr().String() mic.RemoteAddr = api.conn.RemoteAddr().String()
if err := s.MicHandler(mic); err != nil { if err := s.MicHandler(mic); err != nil {
return err s.Error("mic error: %s", err)
return
} }
defer mic.Stop() _ = closed.Wait()
_ = mic.Stop()
return closed.Wait()
} }

View File

@@ -37,7 +37,7 @@ func (s *Server) Serve(l net.Listener) error {
} }
} }
func (s *Server) Handle(conn net.Conn) error { func (s *Server) Handle(conn net.Conn) {
api := NewAPI(conn) api := NewAPI(conn)
sat := newSatellite(api, s) sat := newSatellite(api, s)
defer sat.Close() defer sat.Close()
@@ -45,7 +45,7 @@ func (s *Server) Handle(conn net.Conn) error {
for { for {
evt, err := api.ReadEvent() evt, err := api.ReadEvent()
if err != nil { if err != nil {
return err return
} }
switch evt.Type { switch evt.Type {

View File

@@ -1,12 +1,11 @@
package wyoming package wyoming
import ( import (
"io"
"net" "net"
"time" "time"
) )
func (s *Server) HandleSnd(conn net.Conn) error { func (s *Server) HandleSnd(conn net.Conn) {
defer conn.Close() defer conn.Close()
var snd []byte var snd []byte
@@ -15,10 +14,7 @@ func (s *Server) HandleSnd(conn net.Conn) error {
for { for {
evt, err := api.ReadEvent() evt, err := api.ReadEvent()
if err != nil { if err != nil {
if err == io.EOF { return
return nil
}
return err
} }
s.Trace("event: %s data: %s payload: %d", evt.Type, evt.Data, len(evt.Payload)) s.Trace("event: %s data: %s payload: %d", evt.Type, evt.Data, len(evt.Payload))
@@ -33,7 +29,8 @@ func (s *Server) HandleSnd(conn net.Conn) error {
time.Sleep(time.Second) // some extra delay before close time.Sleep(time.Second) // some extra delay before close
}) })
if err = s.SndHandler(prod); err != nil { if err = s.SndHandler(prod); err != nil {
return err s.Error("snd error: %s", err)
return
} }
} }
} }