"github.com/anacrolix/chansync/events"
"github.com/anacrolix/dht/v2"
"github.com/anacrolix/dht/v2/krpc"
+ "github.com/anacrolix/generics"
"github.com/anacrolix/log"
"github.com/anacrolix/missinggo/perf"
"github.com/anacrolix/missinggo/pubsub"
"github.com/anacrolix/missinggo/v2/bitmap"
"github.com/anacrolix/missinggo/v2/pproffd"
"github.com/anacrolix/sync"
- "github.com/anacrolix/torrent/generics"
- "github.com/anacrolix/torrent/option"
request_strategy "github.com/anacrolix/torrent/request-strategy"
"github.com/davecgh/go-spew/spew"
"github.com/dustin/go-humanize"
"golang.org/x/time/rate"
"github.com/anacrolix/chansync"
+ . "github.com/anacrolix/generics"
"github.com/anacrolix/torrent/bencode"
"github.com/anacrolix/torrent/internal/limiter"
if remoteAddr != nil {
netipAddrPort, err := netip.ParseAddrPort(remoteAddr.String())
if err == nil {
- c.bannableAddr = option.Some(netipAddrPort.Addr())
+ c.bannableAddr = Some(netipAddrPort.Addr())
}
}
c.peerImpl = c
+++ /dev/null
-package generics
-
-func MakeMapIfNilAndSet[K comparable, V any](pm *map[K]V, k K, v V) {
- m := *pm
- if m == nil {
- m = make(map[K]V)
- *pm = m
- }
- m[k] = v
-}
-
-// Does this exist in the maps package?
-func MakeMap[K comparable, V any](pm *map[K]V) {
- *pm = make(map[K]V)
-}
github.com/anacrolix/dht/v2 v2.14.1-0.20211220010335-4062f7927abf
github.com/anacrolix/envpprof v1.1.1
github.com/anacrolix/fuse v0.2.0
+ github.com/anacrolix/generics v0.0.0-20220121083126-c81e77b56d6d
github.com/anacrolix/go-libutp v1.1.0
github.com/anacrolix/log v0.10.0
github.com/anacrolix/missinggo v1.3.0
github.com/anacrolix/envpprof v1.1.1/go.mod h1:My7T5oSqVfEn4MD4Meczkw/f5lSIndGAKu/0SM/rkf4=
github.com/anacrolix/fuse v0.2.0 h1:pc+To78kI2d/WUjIyrsdqeJQAesuwpGxlI3h1nAv3Do=
github.com/anacrolix/fuse v0.2.0/go.mod h1:Kfu02xBwnySDpH3N23BmrP3MDfwAQGRLUCj6XyeOvBQ=
+github.com/anacrolix/generics v0.0.0-20220121083126-c81e77b56d6d h1:hKdj31gsNwxan3Lr4S5N1wXQI+0pMnX6/qZt75GSq7U=
+github.com/anacrolix/generics v0.0.0-20220121083126-c81e77b56d6d/go.mod h1:SommN0/3j+jrAnjopAZfqkREMGw59ELwloDcx6Y0KLA=
github.com/anacrolix/go-libutp v1.1.0 h1:89XK+0NBTaKgSoG/v5OfDK0yoyrt2HInfg46I1BaT2E=
github.com/anacrolix/go-libutp v1.1.0/go.mod h1:so9zroOUhFPGnIkddyflaCCl+xdTsRSq97/AOQ2/Hjk=
github.com/anacrolix/log v0.3.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU=
+++ /dev/null
-package option
-
-type T[V any] struct {
- ok bool
- value V
-}
-
-func (me *T[V]) Ok() bool {
- return me.ok
-}
-
-func (me *T[V]) Value() V {
- if !me.ok {
- panic("not set")
- }
- return me.value
-}
-
-func Some[V any](value V) T[V] {
- return T[V]{ok: true, value: value}
-}
"time"
"github.com/RoaringBitmap/roaring"
+ "github.com/anacrolix/chansync"
+ . "github.com/anacrolix/generics"
"github.com/anacrolix/log"
"github.com/anacrolix/missinggo/iter"
"github.com/anacrolix/missinggo/v2/bitmap"
"github.com/anacrolix/multiless"
- "github.com/anacrolix/torrent/option"
-
- "github.com/anacrolix/chansync"
"github.com/anacrolix/torrent/bencode"
"github.com/anacrolix/torrent/metainfo"
"github.com/anacrolix/torrent/mse"
outgoing bool
Network string
RemoteAddr PeerRemoteAddr
- bannableAddr option.T[bannableAddr]
+ bannableAddr Option[bannableAddr]
// True if the connection is operating over MSE obfuscation.
headerEncrypted bool
cryptoMethod mse.CryptoMethod
"crypto/sha1"
"net/netip"
- "github.com/anacrolix/torrent/generics"
+ "github.com/anacrolix/generics"
"github.com/anacrolix/torrent/smartban"
)
"github.com/anacrolix/chansync"
"github.com/anacrolix/chansync/events"
"github.com/anacrolix/dht/v2"
+ . "github.com/anacrolix/generics"
"github.com/anacrolix/log"
"github.com/anacrolix/missinggo/perf"
"github.com/anacrolix/missinggo/pubsub"
"github.com/anacrolix/missinggo/v2/bitmap"
"github.com/anacrolix/multiless"
"github.com/anacrolix/sync"
- "github.com/anacrolix/torrent/option"
request_strategy "github.com/anacrolix/torrent/request-strategy"
"github.com/davecgh/go-spew/spew"
"github.com/pion/datachannel"
return
}
netipAddr := netip.MustParseAddr(remoteIp.String())
- if option.Some(netipAddr) != p.bannableAddr {
+ if Some(netipAddr) != p.bannableAddr {
log.Printf(
"peer remote ip does not match its bannable addr [peer=%v, remote ip=%v, bannable addr=%v]",
p, remoteIp, p.bannableAddr)