From: Matt Joiner Date: Mon, 11 Apr 2022 04:53:02 +0000 (+1000) Subject: Fix webrtc logging for JS build X-Git-Tag: v1.42.0~1^2 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=67df8f8cdb84f75791be0a9424f6e493d3a3f9ab;p=btrtrc.git Fix webrtc logging for JS build --- diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index af1530ff..4b12c907 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -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 index 00000000..a84ee020 --- /dev/null +++ b/webtorrent/setting-engine.go @@ -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 index 00000000..ea42d11a --- /dev/null +++ b/webtorrent/setting-engine_js.go @@ -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{} diff --git a/webtorrent/transport.go b/webtorrent/transport.go index 511ab595..e4c3b73d 100644 --- a/webtorrent/transport.go +++ b/webtorrent/transport.go @@ -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)) }()