From 4fa4197184515a3e508c5e43a4eace9147f3fab3 Mon Sep 17 00:00:00 2001 From: zarazaex69 Date: Sun, 12 Apr 2026 23:23:18 +0300 Subject: [PATCH] refactor(telemost): use static errors in peer.go --- internal/telemost/peer.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/internal/telemost/peer.go b/internal/telemost/peer.go index 4aa3295..917ba65 100644 --- a/internal/telemost/peer.go +++ b/internal/telemost/peer.go @@ -27,6 +27,13 @@ const ( defaultTelemetryInterval = 20 * time.Second ) +var ( + ErrDataChannelTimeout = fmt.Errorf("datachannel timeout") + ErrDataChannelNotReady = fmt.Errorf("datachannel not ready") + ErrSendQueueClosed = fmt.Errorf("send queue closed") + ErrSendQueueTimeout = fmt.Errorf("send queue timeout") +) + type TrafficShape struct { MaxMessageSize int MinDelay time.Duration @@ -313,19 +320,19 @@ func (p *Peer) Connect(ctx context.Context) error { case <-dcReady: return nil case <-time.After(15 * time.Second): - return fmt.Errorf("datachannel timeout") + return ErrDataChannelTimeout case <-ctx.Done(): - return ctx.Err() + return fmt.Errorf("connect context cancelled: %w", ctx.Err()) } } func (p *Peer) Send(data []byte) error { if p.dc == nil || p.dc.ReadyState() != webrtc.DataChannelStateOpen { - return fmt.Errorf("datachannel not ready") + return ErrDataChannelNotReady } if p.sendQueueClosed.Load() { - return fmt.Errorf("send queue closed") + return ErrSendQueueClosed } select { @@ -334,7 +341,7 @@ func (p *Peer) Send(data []byte) error { case <-time.After(50 * time.Millisecond): queueLen := len(p.sendQueue) log.Printf("[SEND_QUEUE] Timeout! queue_len=%d, dropping packet size=%d", queueLen, len(data)) - return fmt.Errorf("send queue timeout") + return ErrSendQueueTimeout } }