From 5800c01cb08ab61e4f2c396ff17d32740c353dc3 Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Wed, 25 May 2022 14:28:32 +0300 Subject: [PATCH] add TorrentAddr cmd option --- server/cmd/main.go | 5 +++++ server/settings/settings.go | 1 + server/torr/btserver.go | 34 +++++++++++++++++++--------------- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/server/cmd/main.go b/server/cmd/main.go index 9c08831..d193748 100644 --- a/server/cmd/main.go +++ b/server/cmd/main.go @@ -32,6 +32,7 @@ type args struct { DontKill bool `arg:"-k" help:"don't kill server on signal"` UI bool `arg:"-u" help:"open torrserver page in browser"` TorrentsDir string `arg:"-t" help:"autoload torrents from dir"` + TorrentAddr string `default:":32000" help:"Torrent client address"` PubIPv4 string `arg:"-4" help:"set public IPv4 addr"` PubIPv6 string `arg:"-6" help:"set public IPv6 addr"` } @@ -74,6 +75,10 @@ func main() { }() } + if params.TorrentAddr != "" { + settings.TorAddr = params.TorrentAddr + } + if params.PubIPv4 != "" { settings.PubIPv4 = params.PubIPv4 } diff --git a/server/settings/settings.go b/server/settings/settings.go index 218de68..a59be07 100644 --- a/server/settings/settings.go +++ b/server/settings/settings.go @@ -15,6 +15,7 @@ var ( HttpAuth bool PubIPv4 string PubIPv6 string + TorAddr string ) func InitSets(readOnly bool) { diff --git a/server/torr/btserver.go b/server/torr/btserver.go index 2f8d78d..69ea7f7 100644 --- a/server/torr/btserver.go +++ b/server/torr/btserver.go @@ -120,24 +120,28 @@ func (bt *BTServer) configure(ctx context.Context) (err error) { if settings.BTsets.UploadRateLimit > 0 { bt.config.UploadRateLimiter = utils.Limit(settings.BTsets.UploadRateLimit * 1024) } - if settings.BTsets.PeersListenPort > 0 { - log.Println("Set listen port", settings.BTsets.PeersListenPort) - bt.config.ListenPort = settings.BTsets.PeersListenPort + if settings.TorAddr != "" { + bt.config.SetListenAddr(settings.TorAddr) } else { - upnpport := 32000 - for { - log.Println("Check upnp port", upnpport) - l, err := net.Listen("tcp", ":"+strconv.Itoa(upnpport)) - if l != nil { - l.Close() + if settings.BTsets.PeersListenPort > 0 { + log.Println("Set listen port", settings.BTsets.PeersListenPort) + bt.config.ListenPort = settings.BTsets.PeersListenPort + } else { + upnpport := 32000 + for { + log.Println("Check upnp port", upnpport) + l, err := net.Listen("tcp", ":"+strconv.Itoa(upnpport)) + if l != nil { + l.Close() + } + if err == nil { + break + } + upnpport++ } - if err == nil { - break - } - upnpport++ + log.Println("Set upnp port", upnpport) + bt.config.ListenPort = upnpport } - log.Println("Set upnp port", upnpport) - bt.config.ListenPort = upnpport } log.Println("Client config:", settings.BTsets)