use random torrent port in auto mode

this can help port forward overlap with more than one torrserver instance on local network
This commit is contained in:
nikk gitanes
2023-08-10 13:36:54 +03:00
parent e538ded3cc
commit afcd76d7fc

View File

@@ -5,7 +5,6 @@ import (
"fmt" "fmt"
"log" "log"
"net" "net"
"strconv"
"sync" "sync"
"github.com/anacrolix/publicip" "github.com/anacrolix/publicip"
@@ -128,20 +127,21 @@ func (bt *BTServer) configure(ctx context.Context) {
log.Println("Set listen port", settings.BTsets.PeersListenPort) log.Println("Set listen port", settings.BTsets.PeersListenPort)
bt.config.ListenPort = settings.BTsets.PeersListenPort bt.config.ListenPort = settings.BTsets.PeersListenPort
} else { } else {
lport := 32000 // lport := 32000
for { // for {
log.Println("Check listen port", lport) // log.Println("Check listen port", lport)
l, err := net.Listen("tcp", ":"+strconv.Itoa(lport)) // l, err := net.Listen("tcp", ":"+strconv.Itoa(lport))
if l != nil { // if l != nil {
l.Close() // l.Close()
} // }
if err == nil { // if err == nil {
break // break
} // }
lport++ // lport++
} // }
log.Println("Set listen port", lport) // log.Println("Set listen port", lport)
bt.config.ListenPort = lport log.Println("Set listen port to random autoselect (0)")
bt.config.ListenPort = 0 //lport
} }
} }