mirror of
https://github.com/status-im/go-libp2p-webrtc-direct.git
synced 2025-02-22 18:18:12 +00:00
chore: upgrade libp2p version
This commit is contained in:
parent
41a3151f0a
commit
a5757092a0
29
conn.go
29
conn.go
@ -13,7 +13,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
ic "github.com/libp2p/go-libp2p-core/crypto"
|
ic "github.com/libp2p/go-libp2p-core/crypto"
|
||||||
smux "github.com/libp2p/go-libp2p-core/mux"
|
"github.com/libp2p/go-libp2p-core/network"
|
||||||
peer "github.com/libp2p/go-libp2p-core/peer"
|
peer "github.com/libp2p/go-libp2p-core/peer"
|
||||||
tpt "github.com/libp2p/go-libp2p-core/transport"
|
tpt "github.com/libp2p/go-libp2p-core/transport"
|
||||||
ma "github.com/multiformats/go-multiaddr"
|
ma "github.com/multiformats/go-multiaddr"
|
||||||
@ -24,10 +24,12 @@ import (
|
|||||||
|
|
||||||
type connConfig struct {
|
type connConfig struct {
|
||||||
transport *Transport
|
transport *Transport
|
||||||
maAddr ma.Multiaddr
|
scope network.ConnManagementScope
|
||||||
addr net.Addr
|
|
||||||
isServer bool
|
maAddr ma.Multiaddr
|
||||||
remoteID peer.ID
|
addr net.Addr
|
||||||
|
isServer bool
|
||||||
|
remoteID peer.ID
|
||||||
}
|
}
|
||||||
|
|
||||||
func newConnConfig(transport *Transport, maAddr ma.Multiaddr, isServer bool) (*connConfig, error) {
|
func newConnConfig(transport *Transport, maAddr ma.Multiaddr, isServer bool) (*connConfig, error) {
|
||||||
@ -57,7 +59,7 @@ type Conn struct {
|
|||||||
lock sync.RWMutex
|
lock sync.RWMutex
|
||||||
accept chan chan detachResult
|
accept chan chan detachResult
|
||||||
isMuxed bool
|
isMuxed bool
|
||||||
muxedConn smux.MuxedConn
|
muxedConn network.MuxedConn
|
||||||
}
|
}
|
||||||
|
|
||||||
func newConn(config *connConfig, pc *webrtc.PeerConnection, initChannel datachannel.ReadWriteCloser) *Conn {
|
func newConn(config *connConfig, pc *webrtc.PeerConnection, initChannel datachannel.ReadWriteCloser) *Conn {
|
||||||
@ -191,7 +193,7 @@ func (c *Conn) IsClosed() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OpenStream creates a new stream.
|
// OpenStream creates a new stream.
|
||||||
func (c *Conn) OpenStream(ctx context.Context) (smux.MuxedStream, error) {
|
func (c *Conn) OpenStream(ctx context.Context) (network.MuxedStream, error) {
|
||||||
muxed, err := c.getMuxed()
|
muxed, err := c.getMuxed()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -235,10 +237,9 @@ func (c *Conn) getPC() (*webrtc.PeerConnection, error) {
|
|||||||
return pc, nil
|
return pc, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Conn) getMuxed() (smux.MuxedConn, error) {
|
func (c *Conn) getMuxed() (network.MuxedConn, error) {
|
||||||
c.lock.Lock()
|
c.lock.Lock()
|
||||||
defer c.lock.Unlock()
|
defer c.lock.Unlock()
|
||||||
|
|
||||||
if !c.isMuxed {
|
if !c.isMuxed {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
@ -265,8 +266,8 @@ func (c *Conn) getMuxed() (smux.MuxedConn, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Note: caller should hold the conn lock.
|
// Note: caller should hold the conn lock.
|
||||||
func (c *Conn) useMuxer(conn net.Conn, muxer smux.Multiplexer) error {
|
func (c *Conn) useMuxer(conn net.Conn, muxer network.Multiplexer) error {
|
||||||
muxed, err := muxer.NewConn(conn, c.config.isServer)
|
muxed, err := muxer.NewConn(conn, c.config.isServer, network.NullScope) // TODO: determine which scope to use
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -291,7 +292,7 @@ func (c *Conn) checkInitChannel() datachannel.ReadWriteCloser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// AcceptStream accepts a stream opened by the other side.
|
// AcceptStream accepts a stream opened by the other side.
|
||||||
func (c *Conn) AcceptStream() (smux.MuxedStream, error) {
|
func (c *Conn) AcceptStream() (network.MuxedStream, error) {
|
||||||
muxed, err := c.getMuxed()
|
muxed, err := c.getMuxed()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -363,6 +364,10 @@ func (c *Conn) Transport() tpt.Transport {
|
|||||||
return c.config.transport
|
return c.config.transport
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *Conn) Scope() network.ConnScope {
|
||||||
|
return network.NullScope
|
||||||
|
}
|
||||||
|
|
||||||
// Limit message size until we have a better
|
// Limit message size until we have a better
|
||||||
// packetizing strategy.
|
// packetizing strategy.
|
||||||
const dcWrapperBufSize = math.MaxUint16
|
const dcWrapperBufSize = math.MaxUint16
|
||||||
|
@ -5,69 +5,67 @@ go 1.17
|
|||||||
replace github.com/libp2p/go-libp2p-webrtc-direct => ../../
|
replace github.com/libp2p/go-libp2p-webrtc-direct => ../../
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/ipfs/go-log v1.0.5
|
github.com/ipfs/go-log/v2 v2.5.1
|
||||||
github.com/libp2p/go-libp2p v0.15.1
|
github.com/libp2p/go-libp2p v0.20.0
|
||||||
github.com/libp2p/go-libp2p-core v0.9.0
|
github.com/libp2p/go-libp2p-core v0.16.1
|
||||||
github.com/libp2p/go-libp2p-mplex v0.4.1
|
github.com/libp2p/go-libp2p-webrtc-direct v0.0.0-00010101000000-000000000000
|
||||||
github.com/libp2p/go-libp2p-webrtc-direct v0.0.0-20201219114432-56b02029fbb8
|
github.com/multiformats/go-multiaddr v0.6.0
|
||||||
github.com/multiformats/go-multiaddr v0.4.0
|
github.com/pion/webrtc/v3 v3.1.43
|
||||||
github.com/pion/webrtc/v3 v3.0.16
|
|
||||||
github.com/whyrusleeping/go-logging v0.0.1
|
github.com/whyrusleeping/go-logging v0.0.1
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
github.com/benbjohnson/clock v1.3.0 // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
github.com/btcsuite/btcd v0.22.0-beta // indirect
|
github.com/btcsuite/btcd v0.22.1 // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.1.1 // indirect
|
github.com/btcsuite/btcd/btcec/v2 v2.1.3 // indirect
|
||||||
|
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect
|
||||||
|
github.com/cespare/xxhash/v2 v2.1.2 // indirect
|
||||||
|
github.com/cheekybits/genny v1.0.0 // indirect
|
||||||
|
github.com/containerd/cgroups v0.0.0-20201119153540-4cbc285b3327 // indirect
|
||||||
|
github.com/coreos/go-systemd/v22 v22.1.0 // indirect
|
||||||
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect
|
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect
|
||||||
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect
|
||||||
|
github.com/docker/go-units v0.4.0 // indirect
|
||||||
|
github.com/elastic/gosigar v0.12.0 // indirect
|
||||||
github.com/flynn/noise v1.0.0 // indirect
|
github.com/flynn/noise v1.0.0 // indirect
|
||||||
|
github.com/francoispqt/gojay v1.2.13 // indirect
|
||||||
|
github.com/fsnotify/fsnotify v1.4.9 // indirect
|
||||||
|
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect
|
||||||
|
github.com/godbus/dbus/v5 v5.0.3 // indirect
|
||||||
github.com/gogo/protobuf v1.3.2 // indirect
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
github.com/golang/protobuf v1.5.2 // indirect
|
github.com/golang/protobuf v1.5.2 // indirect
|
||||||
github.com/google/gopacket v1.1.19 // indirect
|
github.com/google/gopacket v1.1.19 // indirect
|
||||||
github.com/google/uuid v1.3.0 // indirect
|
github.com/google/uuid v1.3.0 // indirect
|
||||||
github.com/gorilla/websocket v1.4.2 // indirect
|
github.com/gorilla/websocket v1.5.0 // indirect
|
||||||
github.com/hashicorp/golang-lru v0.5.4 // indirect
|
github.com/huin/goupnp v1.0.0 // indirect
|
||||||
github.com/huin/goupnp v1.0.2 // indirect
|
github.com/ipfs/go-cid v0.2.0 // indirect
|
||||||
github.com/ipfs/go-cid v0.0.7 // indirect
|
|
||||||
github.com/ipfs/go-ipfs-util v0.0.2 // indirect
|
github.com/ipfs/go-ipfs-util v0.0.2 // indirect
|
||||||
github.com/ipfs/go-log/v2 v2.3.0 // indirect
|
|
||||||
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
|
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
|
||||||
github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect
|
github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect
|
||||||
github.com/jbenet/goprocess v0.1.4 // indirect
|
github.com/klauspost/compress v1.15.1 // indirect
|
||||||
github.com/klauspost/cpuid/v2 v2.0.9 // indirect
|
github.com/klauspost/cpuid/v2 v2.0.9 // indirect
|
||||||
github.com/koron/go-ssdp v0.0.2 // indirect
|
github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d // indirect
|
||||||
github.com/libp2p/go-addr-util v0.1.0 // indirect
|
|
||||||
github.com/libp2p/go-buffer-pool v0.0.2 // indirect
|
github.com/libp2p/go-buffer-pool v0.0.2 // indirect
|
||||||
github.com/libp2p/go-conn-security-multistream v0.2.1 // indirect
|
github.com/libp2p/go-cidranger v1.1.0 // indirect
|
||||||
github.com/libp2p/go-eventbus v0.2.1 // indirect
|
github.com/libp2p/go-eventbus v0.2.1 // indirect
|
||||||
github.com/libp2p/go-flow-metrics v0.0.3 // indirect
|
github.com/libp2p/go-flow-metrics v0.0.3 // indirect
|
||||||
github.com/libp2p/go-libp2p-autonat v0.4.2 // indirect
|
github.com/libp2p/go-libp2p-asn-util v0.2.0 // indirect
|
||||||
github.com/libp2p/go-libp2p-blankhost v0.2.0 // indirect
|
github.com/libp2p/go-libp2p-peerstore v0.6.0 // indirect
|
||||||
github.com/libp2p/go-libp2p-circuit v0.4.0 // indirect
|
github.com/libp2p/go-libp2p-resource-manager v0.3.0 // indirect
|
||||||
github.com/libp2p/go-libp2p-discovery v0.5.1 // indirect
|
github.com/libp2p/go-mplex v0.7.0 // indirect
|
||||||
github.com/libp2p/go-libp2p-nat v0.0.6 // indirect
|
github.com/libp2p/go-msgio v0.2.0 // indirect
|
||||||
github.com/libp2p/go-libp2p-noise v0.2.2 // indirect
|
github.com/libp2p/go-nat v0.1.0 // indirect
|
||||||
github.com/libp2p/go-libp2p-peerstore v0.2.8 // indirect
|
github.com/libp2p/go-netroute v0.2.0 // indirect
|
||||||
github.com/libp2p/go-libp2p-pnet v0.2.0 // indirect
|
|
||||||
github.com/libp2p/go-libp2p-swarm v0.5.3 // indirect
|
|
||||||
github.com/libp2p/go-libp2p-tls v0.2.0 // indirect
|
|
||||||
github.com/libp2p/go-libp2p-transport-upgrader v0.4.6 // indirect
|
|
||||||
github.com/libp2p/go-libp2p-yamux v0.5.4 // indirect
|
|
||||||
github.com/libp2p/go-maddr-filter v0.1.0 // indirect
|
|
||||||
github.com/libp2p/go-mplex v0.3.0 // indirect
|
|
||||||
github.com/libp2p/go-msgio v0.0.6 // indirect
|
|
||||||
github.com/libp2p/go-nat v0.0.5 // indirect
|
|
||||||
github.com/libp2p/go-netroute v0.1.6 // indirect
|
|
||||||
github.com/libp2p/go-openssl v0.0.7 // indirect
|
github.com/libp2p/go-openssl v0.0.7 // indirect
|
||||||
github.com/libp2p/go-reuseport v0.0.2 // indirect
|
github.com/libp2p/go-reuseport v0.2.0 // indirect
|
||||||
github.com/libp2p/go-reuseport-transport v0.0.5 // indirect
|
github.com/libp2p/go-yamux/v3 v3.1.2 // indirect
|
||||||
github.com/libp2p/go-sockaddr v0.1.1 // indirect
|
github.com/lucas-clemente/quic-go v0.27.1 // indirect
|
||||||
github.com/libp2p/go-stream-muxer-multistream v0.3.0 // indirect
|
github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect
|
||||||
github.com/libp2p/go-tcp-transport v0.2.8 // indirect
|
github.com/marten-seemann/qtls-go1-17 v0.1.1 // indirect
|
||||||
github.com/libp2p/go-ws-transport v0.5.0 // indirect
|
github.com/marten-seemann/qtls-go1-18 v0.1.1 // indirect
|
||||||
github.com/libp2p/go-yamux/v2 v2.2.0 // indirect
|
|
||||||
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect
|
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect
|
||||||
github.com/mattn/go-isatty v0.0.13 // indirect
|
github.com/mattn/go-isatty v0.0.14 // indirect
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
|
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
|
||||||
github.com/miekg/dns v1.1.43 // indirect
|
github.com/miekg/dns v1.1.43 // indirect
|
||||||
github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect
|
github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect
|
||||||
@ -80,40 +78,52 @@ require (
|
|||||||
github.com/multiformats/go-multiaddr-dns v0.3.1 // indirect
|
github.com/multiformats/go-multiaddr-dns v0.3.1 // indirect
|
||||||
github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect
|
github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect
|
||||||
github.com/multiformats/go-multibase v0.0.3 // indirect
|
github.com/multiformats/go-multibase v0.0.3 // indirect
|
||||||
github.com/multiformats/go-multihash v0.0.15 // indirect
|
github.com/multiformats/go-multicodec v0.4.1 // indirect
|
||||||
github.com/multiformats/go-multistream v0.2.2 // indirect
|
github.com/multiformats/go-multihash v0.1.0 // indirect
|
||||||
|
github.com/multiformats/go-multistream v0.3.3 // indirect
|
||||||
github.com/multiformats/go-varint v0.0.6 // indirect
|
github.com/multiformats/go-varint v0.0.6 // indirect
|
||||||
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
github.com/nxadm/tail v1.4.8 // indirect
|
||||||
github.com/pion/datachannel v1.4.21 // indirect
|
github.com/onsi/ginkgo v1.16.5 // indirect
|
||||||
github.com/pion/dtls/v2 v2.0.8 // indirect
|
github.com/opencontainers/runtime-spec v1.0.2 // indirect
|
||||||
github.com/pion/ice/v2 v2.0.16 // indirect
|
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
|
||||||
github.com/pion/interceptor v0.0.11 // indirect
|
github.com/pion/datachannel v1.5.2 // indirect
|
||||||
|
github.com/pion/dtls/v2 v2.1.5 // indirect
|
||||||
|
github.com/pion/ice/v2 v2.2.6 // indirect
|
||||||
|
github.com/pion/interceptor v0.1.11 // indirect
|
||||||
github.com/pion/logging v0.2.2 // indirect
|
github.com/pion/logging v0.2.2 // indirect
|
||||||
github.com/pion/mdns v0.0.5 // indirect
|
github.com/pion/mdns v0.0.5 // indirect
|
||||||
github.com/pion/randutil v0.1.0 // indirect
|
github.com/pion/randutil v0.1.0 // indirect
|
||||||
github.com/pion/rtcp v1.2.6 // indirect
|
github.com/pion/rtcp v1.2.9 // indirect
|
||||||
github.com/pion/rtp v1.6.2 // indirect
|
github.com/pion/rtp v1.7.13 // indirect
|
||||||
github.com/pion/sctp v1.7.11 // indirect
|
github.com/pion/sctp v1.8.2 // indirect
|
||||||
github.com/pion/sdp/v3 v3.0.4 // indirect
|
github.com/pion/sdp/v3 v3.0.5 // indirect
|
||||||
github.com/pion/srtp/v2 v2.0.2 // indirect
|
github.com/pion/srtp/v2 v2.0.10 // indirect
|
||||||
github.com/pion/stun v0.3.5 // indirect
|
github.com/pion/stun v0.3.5 // indirect
|
||||||
github.com/pion/transport v0.12.3 // indirect
|
github.com/pion/transport v0.13.1 // indirect
|
||||||
github.com/pion/turn/v2 v2.0.5 // indirect
|
github.com/pion/turn/v2 v2.0.8 // indirect
|
||||||
github.com/pion/udp v0.1.0 // indirect
|
github.com/pion/udp v0.1.1 // indirect
|
||||||
github.com/pkg/errors v0.9.1 // indirect
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
github.com/prometheus/client_golang v1.11.0 // indirect
|
github.com/prometheus/client_golang v1.12.1 // indirect
|
||||||
github.com/prometheus/client_model v0.2.0 // indirect
|
github.com/prometheus/client_model v0.2.0 // indirect
|
||||||
github.com/prometheus/common v0.30.0 // indirect
|
github.com/prometheus/common v0.32.1 // indirect
|
||||||
github.com/prometheus/procfs v0.7.3 // indirect
|
github.com/prometheus/procfs v0.7.3 // indirect
|
||||||
|
github.com/raulk/clock v1.1.0 // indirect
|
||||||
|
github.com/raulk/go-watchdog v1.2.0 // indirect
|
||||||
github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect
|
github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect
|
||||||
|
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
||||||
github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 // indirect
|
github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 // indirect
|
||||||
go.uber.org/atomic v1.9.0 // indirect
|
go.uber.org/atomic v1.7.0 // indirect
|
||||||
go.uber.org/multierr v1.7.0 // indirect
|
go.uber.org/multierr v1.6.0 // indirect
|
||||||
go.uber.org/zap v1.19.0 // indirect
|
go.uber.org/zap v1.19.1 // indirect
|
||||||
golang.org/x/crypto v0.0.0-20210813211128-0a44fdfbc16e // indirect
|
golang.org/x/crypto v0.0.0-20220516162934-403b01795ae8 // indirect
|
||||||
golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d // indirect
|
golang.org/x/mod v0.4.2 // indirect
|
||||||
|
golang.org/x/net v0.0.0-20220630215102-69896b714898 // indirect
|
||||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
|
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
|
||||||
golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912 // indirect
|
golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664 // indirect
|
||||||
|
golang.org/x/text v0.3.7 // indirect
|
||||||
|
golang.org/x/tools v0.1.5 // indirect
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
||||||
google.golang.org/protobuf v1.27.1 // indirect
|
google.golang.org/protobuf v1.26.0 // indirect
|
||||||
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
||||||
|
lukechampine.com/blake3 v1.1.6 // indirect
|
||||||
)
|
)
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -3,27 +3,27 @@ package main
|
|||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
"context"
|
"context"
|
||||||
|
"io/ioutil"
|
||||||
|
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
|
||||||
"log"
|
"log"
|
||||||
mrand "math/rand"
|
mrand "math/rand"
|
||||||
|
|
||||||
golog "github.com/ipfs/go-log"
|
golog "github.com/ipfs/go-log/v2"
|
||||||
libp2p "github.com/libp2p/go-libp2p"
|
libp2p "github.com/libp2p/go-libp2p"
|
||||||
crypto "github.com/libp2p/go-libp2p-core/crypto"
|
crypto "github.com/libp2p/go-libp2p-core/crypto"
|
||||||
host "github.com/libp2p/go-libp2p-core/host"
|
host "github.com/libp2p/go-libp2p-core/host"
|
||||||
net "github.com/libp2p/go-libp2p-core/network"
|
net "github.com/libp2p/go-libp2p-core/network"
|
||||||
peer "github.com/libp2p/go-libp2p-core/peer"
|
peer "github.com/libp2p/go-libp2p-core/peer"
|
||||||
pstore "github.com/libp2p/go-libp2p-core/peerstore"
|
pstore "github.com/libp2p/go-libp2p-core/peerstore"
|
||||||
ma "github.com/multiformats/go-multiaddr"
|
|
||||||
gologging "github.com/whyrusleeping/go-logging"
|
|
||||||
|
|
||||||
mplex "github.com/libp2p/go-libp2p-mplex"
|
|
||||||
direct "github.com/libp2p/go-libp2p-webrtc-direct"
|
direct "github.com/libp2p/go-libp2p-webrtc-direct"
|
||||||
|
"github.com/libp2p/go-libp2p/p2p/muxer/mplex"
|
||||||
|
ma "github.com/multiformats/go-multiaddr"
|
||||||
"github.com/pion/webrtc/v3"
|
"github.com/pion/webrtc/v3"
|
||||||
|
gologging "github.com/whyrusleeping/go-logging"
|
||||||
)
|
)
|
||||||
|
|
||||||
// makeBasicHost creates a LibP2P host with a random peer ID listening on the
|
// makeBasicHost creates a LibP2P host with a random peer ID listening on the
|
||||||
@ -63,7 +63,7 @@ func makeBasicHost(listenPort int, insecure bool, randseed int64) (host.Host, er
|
|||||||
opts = append(opts, libp2p.NoSecurity)
|
opts = append(opts, libp2p.NoSecurity)
|
||||||
}
|
}
|
||||||
|
|
||||||
basicHost, err := libp2p.New(context.Background(), opts...)
|
basicHost, err := libp2p.New(opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -4,10 +4,10 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
smux "github.com/libp2p/go-libp2p-core/mux"
|
"github.com/libp2p/go-libp2p-core/network"
|
||||||
tpt "github.com/libp2p/go-libp2p-core/transport"
|
tpt "github.com/libp2p/go-libp2p-core/transport"
|
||||||
mplex "github.com/libp2p/go-libp2p-mplex"
|
|
||||||
direct "github.com/libp2p/go-libp2p-webrtc-direct"
|
direct "github.com/libp2p/go-libp2p-webrtc-direct"
|
||||||
|
mplex "github.com/libp2p/go-libp2p/p2p/muxer/mplex"
|
||||||
ma "github.com/multiformats/go-multiaddr"
|
ma "github.com/multiformats/go-multiaddr"
|
||||||
"github.com/pion/webrtc/v3"
|
"github.com/pion/webrtc/v3"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
@ -73,7 +73,7 @@ func handleConn(c tpt.CapableConn) {
|
|||||||
go handleStream(s)
|
go handleStream(s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func handleStream(s smux.MuxedStream) {
|
func handleStream(s network.MuxedStream) {
|
||||||
b, err := ioutil.ReadAll(s)
|
b, err := ioutil.ReadAll(s)
|
||||||
check(err)
|
check(err)
|
||||||
fmt.Println("[listener] Received:")
|
fmt.Println("[listener] Received:")
|
||||||
|
@ -4,8 +4,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
mplex "github.com/libp2p/go-libp2p-mplex"
|
|
||||||
direct "github.com/libp2p/go-libp2p-webrtc-direct"
|
direct "github.com/libp2p/go-libp2p-webrtc-direct"
|
||||||
|
mplex "github.com/libp2p/go-libp2p/p2p/muxer/mplex"
|
||||||
ma "github.com/multiformats/go-multiaddr"
|
ma "github.com/multiformats/go-multiaddr"
|
||||||
"github.com/pion/webrtc/v3"
|
"github.com/pion/webrtc/v3"
|
||||||
)
|
)
|
||||||
|
68
go.mod
68
go.mod
@ -3,58 +3,60 @@ module github.com/libp2p/go-libp2p-webrtc-direct
|
|||||||
go 1.17
|
go 1.17
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/ipfs/go-log v1.0.5
|
github.com/ipfs/go-log/v2 v2.5.1
|
||||||
github.com/libp2p/go-libp2p-core v0.8.5
|
github.com/libp2p/go-libp2p v0.20.0
|
||||||
github.com/libp2p/go-libp2p-mplex v0.4.1
|
github.com/libp2p/go-libp2p-core v0.16.1
|
||||||
github.com/libp2p/go-libp2p-testing v0.4.0
|
github.com/multiformats/go-multiaddr v0.6.0
|
||||||
github.com/multiformats/go-multiaddr v0.3.1
|
|
||||||
github.com/multiformats/go-multiaddr-fmt v0.1.0
|
github.com/multiformats/go-multiaddr-fmt v0.1.0
|
||||||
github.com/multiformats/go-multibase v0.0.3
|
github.com/multiformats/go-multibase v0.0.3
|
||||||
github.com/pion/datachannel v1.4.21
|
github.com/pion/datachannel v1.5.2
|
||||||
github.com/pion/webrtc/v3 v3.0.16
|
github.com/pion/webrtc/v3 v3.1.43
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/btcsuite/btcd v0.20.1-beta // indirect
|
github.com/btcsuite/btcd v0.22.1 // indirect
|
||||||
|
github.com/btcsuite/btcd/btcec/v2 v2.1.3 // indirect
|
||||||
|
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect
|
||||||
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect
|
||||||
github.com/gogo/protobuf v1.3.2 // indirect
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
github.com/google/uuid v1.2.0 // indirect
|
github.com/google/uuid v1.3.0 // indirect
|
||||||
github.com/ipfs/go-cid v0.0.7 // indirect
|
github.com/ipfs/go-cid v0.2.0 // indirect
|
||||||
github.com/ipfs/go-log/v2 v2.1.3 // indirect
|
github.com/klauspost/cpuid/v2 v2.0.9 // indirect
|
||||||
github.com/jbenet/goprocess v0.1.4 // indirect
|
|
||||||
github.com/libp2p/go-buffer-pool v0.0.2 // indirect
|
github.com/libp2p/go-buffer-pool v0.0.2 // indirect
|
||||||
github.com/libp2p/go-mplex v0.3.0 // indirect
|
github.com/libp2p/go-libp2p-testing v0.9.2 // indirect
|
||||||
|
github.com/libp2p/go-mplex v0.7.0 // indirect
|
||||||
github.com/libp2p/go-openssl v0.0.7 // indirect
|
github.com/libp2p/go-openssl v0.0.7 // indirect
|
||||||
|
github.com/mattn/go-isatty v0.0.14 // indirect
|
||||||
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect
|
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect
|
||||||
github.com/minio/sha256-simd v0.1.1 // indirect
|
github.com/minio/sha256-simd v1.0.0 // indirect
|
||||||
github.com/mr-tron/base58 v1.2.0 // indirect
|
github.com/mr-tron/base58 v1.2.0 // indirect
|
||||||
github.com/multiformats/go-base32 v0.0.3 // indirect
|
github.com/multiformats/go-base32 v0.0.3 // indirect
|
||||||
github.com/multiformats/go-base36 v0.1.0 // indirect
|
github.com/multiformats/go-base36 v0.1.0 // indirect
|
||||||
github.com/multiformats/go-multihash v0.0.14 // indirect
|
github.com/multiformats/go-multicodec v0.4.1 // indirect
|
||||||
|
github.com/multiformats/go-multihash v0.1.0 // indirect
|
||||||
github.com/multiformats/go-varint v0.0.6 // indirect
|
github.com/multiformats/go-varint v0.0.6 // indirect
|
||||||
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
github.com/pion/dtls/v2 v2.1.5 // indirect
|
||||||
github.com/pion/dtls/v2 v2.0.8 // indirect
|
github.com/pion/ice/v2 v2.2.6 // indirect
|
||||||
github.com/pion/ice/v2 v2.0.16 // indirect
|
github.com/pion/interceptor v0.1.11 // indirect
|
||||||
github.com/pion/interceptor v0.0.11 // indirect
|
|
||||||
github.com/pion/logging v0.2.2 // indirect
|
github.com/pion/logging v0.2.2 // indirect
|
||||||
github.com/pion/mdns v0.0.5 // indirect
|
github.com/pion/mdns v0.0.5 // indirect
|
||||||
github.com/pion/randutil v0.1.0 // indirect
|
github.com/pion/randutil v0.1.0 // indirect
|
||||||
github.com/pion/rtcp v1.2.6 // indirect
|
github.com/pion/rtcp v1.2.9 // indirect
|
||||||
github.com/pion/rtp v1.6.2 // indirect
|
github.com/pion/rtp v1.7.13 // indirect
|
||||||
github.com/pion/sctp v1.7.11 // indirect
|
github.com/pion/sctp v1.8.2 // indirect
|
||||||
github.com/pion/sdp/v3 v3.0.4 // indirect
|
github.com/pion/sdp/v3 v3.0.5 // indirect
|
||||||
github.com/pion/srtp/v2 v2.0.2 // indirect
|
github.com/pion/srtp/v2 v2.0.10 // indirect
|
||||||
github.com/pion/stun v0.3.5 // indirect
|
github.com/pion/stun v0.3.5 // indirect
|
||||||
github.com/pion/transport v0.12.3 // indirect
|
github.com/pion/transport v0.13.1 // indirect
|
||||||
github.com/pion/turn/v2 v2.0.5 // indirect
|
github.com/pion/turn/v2 v2.0.8 // indirect
|
||||||
github.com/pion/udp v0.1.0 // indirect
|
github.com/pion/udp v0.1.1 // indirect
|
||||||
github.com/pkg/errors v0.9.1 // indirect
|
|
||||||
github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect
|
github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect
|
||||||
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
||||||
go.uber.org/atomic v1.7.0 // indirect
|
go.uber.org/atomic v1.7.0 // indirect
|
||||||
go.uber.org/multierr v1.6.0 // indirect
|
go.uber.org/multierr v1.6.0 // indirect
|
||||||
go.uber.org/zap v1.16.0 // indirect
|
go.uber.org/zap v1.19.1 // indirect
|
||||||
golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad // indirect
|
golang.org/x/crypto v0.0.0-20220516162934-403b01795ae8 // indirect
|
||||||
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4 // indirect
|
golang.org/x/net v0.0.0-20220630215102-69896b714898 // indirect
|
||||||
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005 // indirect
|
golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664 // indirect
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
lukechampine.com/blake3 v1.1.6 // indirect
|
||||||
)
|
)
|
||||||
|
@ -4,7 +4,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
smux "github.com/libp2p/go-libp2p-core/mux"
|
"github.com/libp2p/go-libp2p-core/network"
|
||||||
peer "github.com/libp2p/go-libp2p-core/peer"
|
peer "github.com/libp2p/go-libp2p-core/peer"
|
||||||
tpt "github.com/libp2p/go-libp2p-core/transport"
|
tpt "github.com/libp2p/go-libp2p-core/transport"
|
||||||
ma "github.com/multiformats/go-multiaddr"
|
ma "github.com/multiformats/go-multiaddr"
|
||||||
@ -15,14 +15,14 @@ import (
|
|||||||
// Transport is the WebRTC transport.
|
// Transport is the WebRTC transport.
|
||||||
type Transport struct {
|
type Transport struct {
|
||||||
webrtcOptions webrtc.Configuration
|
webrtcOptions webrtc.Configuration
|
||||||
muxer smux.Multiplexer
|
muxer network.Multiplexer
|
||||||
localID peer.ID
|
localID peer.ID
|
||||||
api *webrtc.API
|
api *webrtc.API
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewTransport creates a WebRTC transport that signals over a direct HTTP connection.
|
// NewTransport creates a WebRTC transport that signals over a direct HTTP connection.
|
||||||
// It is currently required to provide a muxer.
|
// It is currently required to provide a muxer.
|
||||||
func NewTransport(webrtcOptions webrtc.Configuration, muxer smux.Multiplexer) *Transport {
|
func NewTransport(webrtcOptions webrtc.Configuration, muxer network.Multiplexer) *Transport {
|
||||||
s := webrtc.SettingEngine{}
|
s := webrtc.SettingEngine{}
|
||||||
// Use Detach data channels mode
|
// Use Detach data channels mode
|
||||||
s.DetachDataChannels()
|
s.DetachDataChannels()
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package libp2pwebrtcdirect
|
package libp2pwebrtcdirect
|
||||||
|
|
||||||
import (
|
import (
|
||||||
logging "github.com/ipfs/go-log"
|
logging "github.com/ipfs/go-log/v2"
|
||||||
smux "github.com/libp2p/go-libp2p-core/mux"
|
"github.com/libp2p/go-libp2p-core/network"
|
||||||
tpt "github.com/libp2p/go-libp2p-core/transport"
|
tpt "github.com/libp2p/go-libp2p-core/transport"
|
||||||
ma "github.com/multiformats/go-multiaddr"
|
ma "github.com/multiformats/go-multiaddr"
|
||||||
)
|
)
|
||||||
@ -16,4 +16,4 @@ var _ tpt.Transport = &Transport{}
|
|||||||
var _ tpt.CapableConn = &Conn{}
|
var _ tpt.CapableConn = &Conn{}
|
||||||
var _ tpt.Listener = &Listener{}
|
var _ tpt.Listener = &Listener{}
|
||||||
|
|
||||||
var _ smux.MuxedStream = &Stream{}
|
var _ network.MuxedStream = &Stream{}
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
package libp2pwebrtcdirect
|
package libp2pwebrtcdirect
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/pion/webrtc/v3"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
logging "github.com/ipfs/go-log"
|
"github.com/pion/webrtc/v3"
|
||||||
|
|
||||||
mplex "github.com/libp2p/go-libp2p-mplex"
|
logging "github.com/ipfs/go-log/v2"
|
||||||
utils "github.com/libp2p/go-libp2p-testing/suites/transport"
|
|
||||||
|
mplex "github.com/libp2p/go-libp2p/p2p/muxer/mplex"
|
||||||
|
utils "github.com/libp2p/go-libp2p/p2p/transport/testsuite"
|
||||||
ma "github.com/multiformats/go-multiaddr"
|
ma "github.com/multiformats/go-multiaddr"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestTransport(t *testing.T) {
|
func TestTransport(t *testing.T) {
|
||||||
t.Skip("This test is failing, see https://github.com/libp2p/go-libp2p-webrtc-direct/issues/37")
|
//t.Skip("This test is failing, see https://github.com/libp2p/go-libp2p-webrtc-direct/issues/37")
|
||||||
logging.SetLogLevel("*", "warning")
|
logging.SetLogLevel("*", "warning")
|
||||||
|
|
||||||
ta := NewTransport(
|
ta := NewTransport(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user