downgrade fiber

This commit is contained in:
Michał Adamski
2025-01-24 15:21:41 +01:00
parent cdb4445258
commit 04d3e60787
3 changed files with 15 additions and 24 deletions

2
go.mod
View File

@@ -3,7 +3,7 @@ module github.com/meehow/privtracker
go 1.21.4
require (
github.com/gofiber/fiber/v2 v2.52.6
github.com/gofiber/fiber/v2 v2.52.5
github.com/jackpal/bencode-go v1.0.2
golang.org/x/crypto v0.32.0
)

4
go.sum
View File

@@ -1,7 +1,7 @@
github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M=
github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY=
github.com/gofiber/fiber/v2 v2.52.6 h1:Rfp+ILPiYSvvVuIPvxrBns+HJp8qGLDnLJawAu27XVI=
github.com/gofiber/fiber/v2 v2.52.6/go.mod h1:YEcBbO/FB+5M1IZNBP9FO3J9281zgPAreiI1oqg8nDw=
github.com/gofiber/fiber/v2 v2.52.5 h1:tWoP1MJQjGEe4GB5TUGOi7P2E0ZMMRx5ZTG4rT+yGMo=
github.com/gofiber/fiber/v2 v2.52.5/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/jackpal/bencode-go v1.0.2 h1:LcCNfZ344u0LpBPOZNjpCLps/wUOuN4r87Fy9+5yU8g=

View File

@@ -24,18 +24,23 @@ func (peer Peer) String() string {
return fmt.Sprintf("%s:%d", net.IP(peer[:16]), binary.BigEndian.Uint16(peer[16:]))
}
// type serializedPeer [18]byte
type shard struct {
swarms map[Hash]swarm
swarms map[Hash]Swarm
sync.RWMutex
}
type swarm struct {
type Swarm struct {
seeders map[Peer]int64
leechers map[Peer]int64
}
func NewSwarm() Swarm {
return Swarm{
seeders: make(map[Peer]int64),
leechers: make(map[Peer]int64),
}
}
var shards = NewShards(512)
var v4InV6Prefix = []byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff}
@@ -47,29 +52,18 @@ func NewShards(size int) []*shard {
shards := make([]*shard, size)
for i := 0; i < size; i++ {
shards[i] = &shard{
swarms: make(map[Hash]swarm),
swarms: make(map[Hash]Swarm),
}
}
return shards
}
// func serialize(ip net.IP, port uint16) serializedPeer {
// var sp serializedPeer
// copy(sp[:], ip)
// sp[16] = byte(port >> 8)
// sp[17] = byte(port)
// return sp
// }
func PutPeer(room, infoHash string, peer Peer, seeding bool) {
h := sha1.Sum([]byte(room + infoHash))
shard := shards[shardIndex(h)]
shard.Lock()
if _, ok := shard.swarms[h]; !ok {
shard.swarms[h] = swarm{
seeders: make(map[Peer]int64),
leechers: make(map[Peer]int64),
}
shard.swarms[h] = NewSwarm()
}
if seeding {
shard.swarms[h].seeders[peer] = time.Now().Unix()
@@ -96,10 +90,7 @@ func GraduateLeecher(room, infoHash string, peer Peer) {
shard := shards[shardIndex(h)]
shard.Lock()
if _, ok := shard.swarms[h]; !ok {
shard.swarms[h] = swarm{
seeders: make(map[Peer]int64),
leechers: make(map[Peer]int64),
}
shard.swarms[h] = NewSwarm()
}
shard.swarms[h].seeders[peer] = time.Now().Unix()
delete(shard.swarms[h].leechers, peer)