From 2c008d6589e37e77f01a364ab414d6a95218de36 Mon Sep 17 00:00:00 2001 From: Cecylia Bocovich Date: Mon, 14 Feb 2022 14:00:01 -0500 Subject: [PATCH] Add connection failure events for proxy timeouts This change adds two new connection failure events for snowflake proxies. One fires when the datachannel times out and another fires when the connection to the proxy goes stale. --- client/lib/webrtc.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/client/lib/webrtc.go b/client/lib/webrtc.go index 282b54d..d5264a9 100644 --- a/client/lib/webrtc.go +++ b/client/lib/webrtc.go @@ -129,6 +129,8 @@ func (c *WebRTCPeer) checkForStaleness(timeout time.Duration) { if time.Since(lastReceive) > timeout { log.Printf("WebRTC: No messages received for %v -- closing stale connection.", timeout) + err := errors.New("no messages received, closing stale connection") + c.eventsLogger.OnNewSnowflakeEvent(event.EventOnSnowflakeConnectionFailed{Error: err}) c.Close() return } @@ -174,7 +176,9 @@ func (c *WebRTCPeer) connect(config *webrtc.Configuration, broker *BrokerChannel case <-c.open: case <-time.After(DataChannelTimeout): c.transport.Close() - return errors.New("timeout waiting for DataChannel.OnOpen") + err = errors.New("timeout waiting for DataChannel.OnOpen") + c.eventsLogger.OnNewSnowflakeEvent(event.EventOnSnowflakeConnectionFailed{Error: err}) + return err } go c.checkForStaleness(SnowflakeTimeout)