extract protocol and maddr-filter

This commit is contained in:
Jeromy
2016-10-03 21:35:40 -07:00
parent b47ce3fe50
commit 1085a07654
24 changed files with 32 additions and 147 deletions

View File

@@ -10,10 +10,10 @@ import (
logging "github.com/ipfs/go-log"
ma "github.com/jbenet/go-multiaddr"
goprocess "github.com/jbenet/goprocess"
protocol "github.com/libp2p/go-libp2p-protocol"
metrics "github.com/libp2p/go-libp2p/p2p/metrics"
mstream "github.com/libp2p/go-libp2p/p2p/metrics/stream"
inet "github.com/libp2p/go-libp2p/p2p/net"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
identify "github.com/libp2p/go-libp2p/p2p/protocol/identify"
relay "github.com/libp2p/go-libp2p/p2p/protocol/relay"

View File

@@ -7,9 +7,9 @@ import (
"testing"
"time"
protocol "github.com/libp2p/go-libp2p-protocol"
host "github.com/libp2p/go-libp2p/p2p/host"
inet "github.com/libp2p/go-libp2p/p2p/net"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
testutil "github.com/libp2p/go-libp2p/p2p/test/util"
)

View File

@@ -7,9 +7,9 @@ import (
pstore "github.com/ipfs/go-libp2p-peerstore"
logging "github.com/ipfs/go-log"
ma "github.com/jbenet/go-multiaddr"
protocol "github.com/libp2p/go-libp2p-protocol"
metrics "github.com/libp2p/go-libp2p/p2p/metrics"
inet "github.com/libp2p/go-libp2p/p2p/net"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
msmux "github.com/whyrusleeping/go-multistream"
)

View File

@@ -1,7 +1,7 @@
package host
import (
"github.com/libp2p/go-libp2p/p2p/protocol"
"github.com/libp2p/go-libp2p-protocol"
"strings"
semver "github.com/coreos/go-semver/semver"

View File

@@ -10,10 +10,10 @@ import (
pstore "github.com/ipfs/go-libp2p-peerstore"
logging "github.com/ipfs/go-log"
ma "github.com/jbenet/go-multiaddr"
protocol "github.com/libp2p/go-libp2p-protocol"
host "github.com/libp2p/go-libp2p/p2p/host"
metrics "github.com/libp2p/go-libp2p/p2p/metrics"
inet "github.com/libp2p/go-libp2p/p2p/net"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
msmux "github.com/whyrusleeping/go-multistream"
)

View File

@@ -5,7 +5,7 @@ import (
"sync"
peer "github.com/ipfs/go-libp2p-peer"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
protocol "github.com/libp2p/go-libp2p-protocol"
)
type Stats struct {

View File

@@ -2,7 +2,7 @@ package metrics
import (
peer "github.com/ipfs/go-libp2p-peer"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
protocol "github.com/libp2p/go-libp2p-protocol"
)
type StreamMeterCallback func(int64, protocol.ID, peer.ID)

View File

@@ -2,9 +2,9 @@ package meterstream
import (
peer "github.com/ipfs/go-libp2p-peer"
protocol "github.com/libp2p/go-libp2p-protocol"
metrics "github.com/libp2p/go-libp2p/p2p/metrics"
inet "github.com/libp2p/go-libp2p/p2p/net"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
)
type meteredStream struct {

View File

@@ -7,8 +7,8 @@ import (
randbo "github.com/dustin/randbo"
peer "github.com/ipfs/go-libp2p-peer"
protocol "github.com/libp2p/go-libp2p-protocol"
inet "github.com/libp2p/go-libp2p/p2p/net"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
)
type FakeStream struct {

View File

@@ -9,7 +9,7 @@ import (
peer "github.com/ipfs/go-libp2p-peer"
ma "github.com/jbenet/go-multiaddr"
transport "github.com/libp2p/go-libp2p-transport"
filter "github.com/libp2p/go-libp2p/p2p/net/filter"
filter "github.com/libp2p/go-maddr-filter"
)
type PeerConn interface {

View File

@@ -15,7 +15,7 @@ import (
"github.com/jbenet/goprocess"
goprocessctx "github.com/jbenet/goprocess/context"
transport "github.com/libp2p/go-libp2p-transport"
filter "github.com/libp2p/go-libp2p/p2p/net/filter"
filter "github.com/libp2p/go-maddr-filter"
msmux "github.com/whyrusleeping/go-multistream"
)

View File

@@ -1,67 +0,0 @@
package filter
import (
"net"
"sync"
ma "github.com/jbenet/go-multiaddr"
manet "github.com/jbenet/go-multiaddr-net"
)
type Filters struct {
mu sync.RWMutex
filters map[string]*net.IPNet
}
func NewFilters() *Filters {
return &Filters{
filters: make(map[string]*net.IPNet),
}
}
func (fs *Filters) AddDialFilter(f *net.IPNet) {
fs.mu.Lock()
defer fs.mu.Unlock()
fs.filters[f.String()] = f
}
func (f *Filters) AddrBlocked(a ma.Multiaddr) bool {
maddr := ma.Split(a)
if len(maddr) == 0 {
return false
}
netaddr, err := manet.ToNetAddr(maddr[0])
if err != nil {
// if we cant parse it, its probably not blocked
return false
}
netip := net.ParseIP(netaddr.String())
if netip == nil {
return false
}
f.mu.RLock()
defer f.mu.RUnlock()
for _, ft := range f.filters {
if ft.Contains(netip) {
return true
}
}
return false
}
func (f *Filters) Filters() []*net.IPNet {
var out []*net.IPNet
f.mu.RLock()
defer f.mu.RUnlock()
for _, ff := range f.filters {
out = append(out, ff)
}
return out
}
func (f *Filters) Remove(ff *net.IPNet) {
f.mu.Lock()
defer f.mu.Unlock()
delete(f.filters, ff.String())
}

View File

@@ -1,51 +0,0 @@
package filter
import (
"net"
"testing"
ma "github.com/jbenet/go-multiaddr"
)
func TestFilter(t *testing.T) {
f := NewFilters()
for _, cidr := range []string{
"1.2.3.0/24",
"4.3.2.1/32",
"fd00::/8",
"fc00::1/128",
} {
_, ipnet, _ := net.ParseCIDR(cidr)
f.AddDialFilter(ipnet)
}
for _, blocked := range []string{
"/ip4/1.2.3.4/tcp/123",
"/ip4/4.3.2.1/udp/123",
"/ip6/fd00::2/tcp/321",
"/ip6/fc00::1/udp/321",
} {
maddr, err := ma.NewMultiaddr(blocked)
if err != nil {
t.Error(err)
}
if !f.AddrBlocked(maddr) {
t.Fatalf("expected %s to be blocked", blocked)
}
}
for _, notBlocked := range []string{
"/ip4/1.2.4.1/tcp/123",
"/ip4/4.3.2.2/udp/123",
"/ip6/fe00::1/tcp/321",
"/ip6/fc00::2/udp/321",
} {
maddr, err := ma.NewMultiaddr(notBlocked)
if err != nil {
t.Error(err)
}
if f.AddrBlocked(maddr) {
t.Fatalf("expected %s to not be blocked", notBlocked)
}
}
}

View File

@@ -8,8 +8,8 @@ import (
pstore "github.com/ipfs/go-libp2p-peerstore"
ma "github.com/jbenet/go-multiaddr"
"github.com/jbenet/goprocess"
protocol "github.com/libp2p/go-libp2p-protocol"
conn "github.com/libp2p/go-libp2p/p2p/net/conn"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
)
// MessageSizeMax is a soft (recommended) maximum for network messages.

View File

@@ -6,8 +6,8 @@ import (
"time"
process "github.com/jbenet/goprocess"
protocol "github.com/libp2p/go-libp2p-protocol"
inet "github.com/libp2p/go-libp2p/p2p/net"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
)
// stream implements inet.Stream

View File

@@ -10,8 +10,8 @@ import (
"time"
peer "github.com/ipfs/go-libp2p-peer"
protocol "github.com/libp2p/go-libp2p-protocol"
inet "github.com/libp2p/go-libp2p/p2p/net"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
testutil "github.com/libp2p/go-libp2p/testutil"
"context"

View File

@@ -15,7 +15,6 @@ import (
mconn "github.com/libp2p/go-libp2p/p2p/metrics/conn"
inet "github.com/libp2p/go-libp2p/p2p/net"
conn "github.com/libp2p/go-libp2p/p2p/net/conn"
filter "github.com/libp2p/go-libp2p/p2p/net/filter"
addrutil "github.com/libp2p/go-libp2p/p2p/net/swarm/addr"
ci "github.com/ipfs/go-libp2p-crypto"
@@ -28,6 +27,7 @@ import (
"github.com/jbenet/goprocess"
goprocessctx "github.com/jbenet/goprocess/context"
transport "github.com/libp2p/go-libp2p-transport"
filter "github.com/libp2p/go-maddr-filter"
tcpt "github.com/libp2p/go-tcp-transport"
psmss "github.com/whyrusleeping/go-smux-multistream"
spdy "github.com/whyrusleeping/go-smux-spdystream"

View File

@@ -1,8 +1,8 @@
package swarm
import (
protocol "github.com/libp2p/go-libp2p-protocol"
inet "github.com/libp2p/go-libp2p/p2p/net"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
ps "github.com/jbenet/go-peerstream"
)

View File

@@ -1,9 +0,0 @@
package protocol
// ID is an identifier used to write protocol headers in streams.
type ID string
// These are reserved protocol.IDs.
const (
TestingID ID = "/p2p/_testing"
)

View File

@@ -9,9 +9,9 @@ import (
peer "github.com/ipfs/go-libp2p-peer"
logging "github.com/ipfs/go-log"
mh "github.com/jbenet/go-multihash"
protocol "github.com/libp2p/go-libp2p-protocol"
host "github.com/libp2p/go-libp2p/p2p/host"
inet "github.com/libp2p/go-libp2p/p2p/net"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
)
var log = logging.Logger("github.com/libp2p/go-libp2p/p2p/protocol/relay")

View File

@@ -6,8 +6,8 @@ import (
"context"
logging "github.com/ipfs/go-log"
protocol "github.com/libp2p/go-libp2p-protocol"
inet "github.com/libp2p/go-libp2p/p2p/net"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
relay "github.com/libp2p/go-libp2p/p2p/protocol/relay"
testutil "github.com/libp2p/go-libp2p/p2p/test/util"
msmux "github.com/whyrusleeping/go-multistream"

View File

@@ -10,9 +10,9 @@ import (
u "github.com/ipfs/go-ipfs-util"
peer "github.com/ipfs/go-libp2p-peer"
logging "github.com/ipfs/go-log"
protocol "github.com/libp2p/go-libp2p-protocol"
host "github.com/libp2p/go-libp2p/p2p/host"
inet "github.com/libp2p/go-libp2p/p2p/net"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
testutil "github.com/libp2p/go-libp2p/p2p/test/util"
)

View File

@@ -11,10 +11,10 @@ import (
u "github.com/ipfs/go-ipfs-util"
logging "github.com/ipfs/go-log"
ps "github.com/jbenet/go-peerstream"
protocol "github.com/libp2p/go-libp2p-protocol"
host "github.com/libp2p/go-libp2p/p2p/host"
inet "github.com/libp2p/go-libp2p/p2p/net"
swarm "github.com/libp2p/go-libp2p/p2p/net/swarm"
protocol "github.com/libp2p/go-libp2p/p2p/protocol"
testutil "github.com/libp2p/go-libp2p/p2p/test/util"
)

View File

@@ -188,6 +188,18 @@
"hash": "QmXFU6HbpMaxJ3wtw96aSSqBcdJJqtuE2ipMopmh1T3be8",
"name": "go-tcp-transport",
"version": "1.0.2"
},
{
"author": "whyrusleeping",
"hash": "QmaRNdghe7SY53L9WfyVesio7yvVnyXtgSpbBd9CJYfvJg",
"name": "go-maddr-filter",
"version": "1.0.0"
},
{
"author": "whyrusleeping",
"hash": "QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN",
"name": "go-libp2p-protocol",
"version": "1.0.0"
}
],
"gxVersion": "0.4.0",