]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Fix webrtc logging for JS build
authorMatt Joiner <anacrolix@gmail.com>
Mon, 11 Apr 2022 04:53:02 +0000 (14:53 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Mon, 11 Apr 2022 04:53:02 +0000 (14:53 +1000)
.github/workflows/go.yml
webtorrent/setting-engine.go [new file with mode: 0644]
webtorrent/setting-engine_js.go [new file with mode: 0644]
webtorrent/transport.go

index af1530ffe3d72ae78d29c769414e151e6429496a..4b12c90744eb482bcf9b3faaa5a57e3c0f3bb0ba 100644 (file)
@@ -60,7 +60,7 @@ jobs:
     - uses: actions/checkout@v2
     - uses: ./.github/actions/go-common
     - name: Some packages compile for WebAssembly
-      run: GOOS=js GOARCH=wasm go build -v . ./storage ./tracker/...
+      run: GOOS=js GOARCH=wasm go build . ./storage ./tracker/...
 
   torrentfs:
     runs-on: ubuntu-latest
diff --git a/webtorrent/setting-engine.go b/webtorrent/setting-engine.go
new file mode 100644 (file)
index 0000000..a84ee02
--- /dev/null
@@ -0,0 +1,24 @@
+// These build constraints are copied from webrtc's settingengine.go.
+//go:build !js
+// +build !js
+
+package webtorrent
+
+import (
+       "io"
+
+       "github.com/pion/logging"
+       "github.com/pion/webrtc/v3"
+)
+
+var s = webrtc.SettingEngine{
+       // This could probably be done with better integration into anacrolix/log, but I'm not sure if
+       // it's worth the effort.
+       LoggerFactory: discardLoggerFactory{},
+}
+
+type discardLoggerFactory struct{}
+
+func (discardLoggerFactory) NewLogger(scope string) logging.LeveledLogger {
+       return logging.NewDefaultLeveledLoggerForScope(scope, logging.LogLevelInfo, io.Discard)
+}
diff --git a/webtorrent/setting-engine_js.go b/webtorrent/setting-engine_js.go
new file mode 100644 (file)
index 0000000..ea42d11
--- /dev/null
@@ -0,0 +1,13 @@
+// These build constraints are copied from webrtc's settingengine_js.go.
+//go:build js && wasm
+// +build js,wasm
+
+package webtorrent
+
+import (
+       "github.com/pion/webrtc/v3"
+)
+
+// I'm not sure what to do for logging for JS. See
+// https://gophers.slack.com/archives/CAK2124AG/p1649651943947579.
+var s = webrtc.SettingEngine{}
index 511ab59583999f67e55a08ee3748957348f6da44..e4c3b73d88dd9d55094523b8992c44d7613a93d9 100644 (file)
@@ -8,24 +8,13 @@ import (
 
        "github.com/anacrolix/missinggo/v2/pproffd"
        "github.com/pion/datachannel"
-       "github.com/pion/logging"
-
        "github.com/pion/webrtc/v3"
 )
 
-type DiscardLoggerFactory struct{}
-
-func (f *DiscardLoggerFactory) NewLogger(scope string) logging.LeveledLogger {
-       return logging.NewDefaultLeveledLoggerForScope(scope, logging.LogLevelInfo, io.Discard)
-}
-
 var (
        metrics = expvar.NewMap("webtorrent")
        api     = func() *webrtc.API {
                // Enable the detach API (since it's non-standard but more idiomatic).
-               s := webrtc.SettingEngine{
-                       LoggerFactory: &DiscardLoggerFactory{},
-               }
                s.DetachDataChannels()
                return webrtc.NewAPI(webrtc.WithSettingEngine(s))
        }()