]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Switch to external anacrolix/generics
authorMatt Joiner <anacrolix@gmail.com>
Fri, 21 Jan 2022 11:28:15 +0000 (22:28 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Sat, 22 Jan 2022 07:43:04 +0000 (18:43 +1100)
client.go
generics/map.go [deleted file]
go.mod
go.sum
option/option.go [deleted file]
peerconn.go
smartban.go
torrent.go

index 773159e309dd00106ffb4824aff55b1257fcedd8..6c8befec0b59cb1617702a74236b82a2094e4197 100644 (file)
--- a/client.go
+++ b/client.go
@@ -22,6 +22,7 @@ import (
        "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"
@@ -29,8 +30,6 @@ import (
        "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"
@@ -39,6 +38,7 @@ import (
        "golang.org/x/time/rate"
 
        "github.com/anacrolix/chansync"
+       . "github.com/anacrolix/generics"
 
        "github.com/anacrolix/torrent/bencode"
        "github.com/anacrolix/torrent/internal/limiter"
@@ -1518,7 +1518,7 @@ func (cl *Client) newConnection(nc net.Conn, outgoing bool, remoteAddr PeerRemot
        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
diff --git a/generics/map.go b/generics/map.go
deleted file mode 100644 (file)
index 23ee5c5..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-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)
-}
diff --git a/go.mod b/go.mod
index 0b4274491d9e2138258b8700619a7f16c18ffab5..ee5a89e6601faa7704c8a8e470610966686ff1d7 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -11,6 +11,7 @@ require (
        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
diff --git a/go.sum b/go.sum
index 739951dcdc71377e2adc6b4de882ee0be8f9181f..2f5dc60c7e27390b259f9e552cbe719645d4220e 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -37,6 +37,8 @@ github.com/anacrolix/envpprof v1.1.1 h1:sHQCyj7HtiSfaZAzL2rJrQdyS7odLqlwO6nhk/tG
 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=
diff --git a/option/option.go b/option/option.go
deleted file mode 100644 (file)
index f53d5bb..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-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}
-}
index 2dd2ced451a987de52924f0dc3ed6f88c7486659..fcdf4646c9a259c95b98cf6de73f853bb113b026 100644 (file)
@@ -15,13 +15,12 @@ import (
        "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"
@@ -68,7 +67,7 @@ type Peer struct {
        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
index 74f645e2865d2b2269333430c0eea24b6cf93e47..15b4d44b4ed3bcabbe46671f3c43d2436d6c7126 100644 (file)
@@ -5,7 +5,7 @@ import (
        "crypto/sha1"
        "net/netip"
 
-       "github.com/anacrolix/torrent/generics"
+       "github.com/anacrolix/generics"
        "github.com/anacrolix/torrent/smartban"
 )
 
index 078dca22945e55c6e97116ee02f192d3cf702659..33ca78728d113d16721afcba264199126c92b1a5 100644 (file)
@@ -20,6 +20,7 @@ import (
        "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"
@@ -28,7 +29,6 @@ import (
        "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"
@@ -2139,7 +2139,7 @@ func (t *Torrent) dropBannedPeers() {
                        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)