]> Sergey Matveev's repositories - btrtrc.git/blobdiff - webrtc.go
Fix UseSources panicking when sqlite storage is closed
[btrtrc.git] / webrtc.go
index 4a86e89232a8028df5f612d7325ed16fd3bcd4ae..ca4f80fb9f19d08d7f4e9adf66e9826d75b0d32b 100644 (file)
--- a/webrtc.go
+++ b/webrtc.go
@@ -5,9 +5,13 @@ import (
        "strconv"
        "time"
 
-       "github.com/anacrolix/torrent/webtorrent"
        "github.com/pion/datachannel"
        "github.com/pion/webrtc/v3"
+       "go.opentelemetry.io/otel"
+       "go.opentelemetry.io/otel/attribute"
+       "go.opentelemetry.io/otel/trace"
+
+       "github.com/anacrolix/torrent/webtorrent"
 )
 
 const webrtcNetwork = "webrtc"
@@ -56,13 +60,26 @@ func (me webrtcNetConn) RemoteAddr() net.Addr {
 // PeerConnection or on the channel or some transport?
 
 func (w webrtcNetConn) SetDeadline(t time.Time) error {
+       w.Span.AddEvent("SetDeadline", trace.WithAttributes(attribute.String("time", t.String())))
        return nil
 }
 
 func (w webrtcNetConn) SetReadDeadline(t time.Time) error {
+       w.Span.AddEvent("SetReadDeadline", trace.WithAttributes(attribute.String("time", t.String())))
        return nil
 }
 
 func (w webrtcNetConn) SetWriteDeadline(t time.Time) error {
+       w.Span.AddEvent("SetWriteDeadline", trace.WithAttributes(attribute.String("time", t.String())))
        return nil
 }
+
+func (w webrtcNetConn) Read(b []byte) (n int, err error) {
+       _, span := otel.Tracer(tracerName).Start(w.Context, "Read")
+       defer span.End()
+       span.SetAttributes(attribute.Int("buf_len", len(b)))
+       n, err = w.ReadWriteCloser.Read(b)
+       span.RecordError(err)
+       span.SetAttributes(attribute.Int("bytes_read", n))
+       return
+}