From 0da8f5809bf19097233b3092959384442680a36c Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Sat, 1 Apr 2023 03:01:09 +0300 Subject: [PATCH 1/9] bump torrent to v1.49.0 and dms with Samsung fixes --- server/go.mod | 16 ++++++++-------- server/go.sum | 33 ++++++++++++++++----------------- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/server/go.mod b/server/go.mod index 82a7dde..bbbfa78 100644 --- a/server/go.mod +++ b/server/go.mod @@ -5,11 +5,11 @@ go 1.18 require ( github.com/agnivade/levenshtein v1.1.1 github.com/alexflint/go-arg v1.4.3 - github.com/anacrolix/dms v1.5.0 + github.com/anacrolix/dms v1.5.1-0.20230317005814-6af26ec4c733 github.com/anacrolix/log v0.13.2-0.20221123232138-02e2764801c3 github.com/anacrolix/missinggo v1.3.0 github.com/anacrolix/publicip v0.3.0 - github.com/anacrolix/torrent v1.48.1 + github.com/anacrolix/torrent v1.49.0 github.com/gin-contrib/cors v1.4.0 github.com/gin-contrib/location v0.0.2 github.com/gin-gonic/gin v1.9.0 @@ -29,7 +29,7 @@ require ( github.com/alexflint/go-scalar v1.2.0 // indirect github.com/anacrolix/chansync v0.3.0 // indirect github.com/anacrolix/dht/v2 v2.19.2-0.20221121215055-066ad8494444 // indirect - github.com/anacrolix/envpprof v1.2.1 // indirect + github.com/anacrolix/envpprof v1.3.0 // indirect github.com/anacrolix/ffprobe v1.0.1 // indirect github.com/anacrolix/generics v0.0.0-20220618083756-f99e35403a60 // indirect github.com/anacrolix/go-libutp v1.2.0 // indirect @@ -45,13 +45,13 @@ require ( github.com/benbjohnson/immutable v0.3.0 // indirect github.com/bits-and-blooms/bitset v1.5.0 // indirect github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect - github.com/bytedance/sonic v1.8.5 // indirect + github.com/bytedance/sonic v1.8.6 // indirect github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/gin-contrib/sse v0.1.0 // indirect - github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect @@ -65,14 +65,14 @@ require ( github.com/klauspost/cpuid/v2 v2.2.4 // indirect github.com/leodido/go-urn v1.2.2 // indirect github.com/lispad/go-generics-tools v1.1.0 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-isatty v0.0.18 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mschoch/smat v0.2.0 // indirect github.com/pelletier/go-toml/v2 v2.0.7 // indirect github.com/pion/datachannel v1.5.5 // indirect github.com/pion/dtls/v2 v2.2.6 // indirect - github.com/pion/ice/v2 v2.3.1 // indirect + github.com/pion/ice/v2 v2.3.2 // indirect github.com/pion/interceptor v0.1.12 // indirect github.com/pion/logging v0.2.2 // indirect github.com/pion/mdns v0.0.7 // indirect @@ -86,7 +86,7 @@ require ( github.com/pion/transport/v2 v2.0.2 // indirect github.com/pion/turn/v2 v2.1.0 // indirect github.com/pion/udp/v2 v2.0.1 // indirect - github.com/pion/webrtc/v3 v3.1.58 // indirect + github.com/pion/webrtc/v3 v3.1.59 // indirect github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect github.com/tidwall/btree v1.6.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect diff --git a/server/go.sum b/server/go.sum index 217b32b..d242f7c 100644 --- a/server/go.sum +++ b/server/go.sum @@ -35,13 +35,13 @@ github.com/anacrolix/chansync v0.3.0 h1:lRu9tbeuw3wl+PhMu/r+JJCRu5ArFXIluOgdF0ao github.com/anacrolix/chansync v0.3.0/go.mod h1:DZsatdsdXxD0WiwcGl0nJVwyjCKMDv+knl1q2iBjA2k= github.com/anacrolix/dht/v2 v2.19.2-0.20221121215055-066ad8494444 h1:8V0K09lrGoeT2KRJNOtspA7q+OMxGwQqK/Ug0IiaaRE= github.com/anacrolix/dht/v2 v2.19.2-0.20221121215055-066ad8494444/go.mod h1:MctKM1HS5YYDb3F30NGJxLE+QPuqWoT5ReW/4jt8xew= -github.com/anacrolix/dms v1.5.0 h1:2WWI++sNL3Jv1UtrlVzw2KvEcOO3yGX6LMR8UwMj6/Q= -github.com/anacrolix/dms v1.5.0/go.mod h1:5fAMpBcPFG4WQFh91zhf2E7/KYZ3/WmmRAf/WMoL0Q0= +github.com/anacrolix/dms v1.5.1-0.20230317005814-6af26ec4c733 h1:M0gzRW5+d7r2v+Fs743n/Ri267qgf1JVgT/OFOHuyTE= +github.com/anacrolix/dms v1.5.1-0.20230317005814-6af26ec4c733/go.mod h1:5fAMpBcPFG4WQFh91zhf2E7/KYZ3/WmmRAf/WMoL0Q0= github.com/anacrolix/envpprof v0.0.0-20180404065416-323002cec2fa/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c= github.com/anacrolix/envpprof v1.0.0/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c= github.com/anacrolix/envpprof v1.1.0/go.mod h1:My7T5oSqVfEn4MD4Meczkw/f5lSIndGAKu/0SM/rkf4= -github.com/anacrolix/envpprof v1.2.1 h1:25TJe6t/i0AfzzldiGFKCpD+s+dk8lONBcacJZB2rdE= -github.com/anacrolix/envpprof v1.2.1/go.mod h1:My7T5oSqVfEn4MD4Meczkw/f5lSIndGAKu/0SM/rkf4= +github.com/anacrolix/envpprof v1.3.0 h1:WJt9bpuT7A/CDCxPOv/eeZqHWlle/Y0keJUvc6tcJDk= +github.com/anacrolix/envpprof v1.3.0/go.mod h1:7QIG4CaX1uexQ3tqd5+BRa/9e2D02Wcertl6Yh0jCB0= github.com/anacrolix/ffprobe v1.0.0/go.mod h1:BIw+Bjol6CWjm/CRWrVLk2Vy+UYlkgmBZ05vpSYqZPw= github.com/anacrolix/ffprobe v1.0.1 h1:S/MfCrUNZvbkkykX/1mmLVRf8//M7mvlY3BcwHaK3bQ= github.com/anacrolix/ffprobe v1.0.1/go.mod h1:MXe+zG/RRa5OdIf5+VYYfS/CfsSqOH7RrvGIqJBzqhI= @@ -88,8 +88,8 @@ github.com/anacrolix/sync v0.4.0/go.mod h1:BbecHL6jDSExojhNtgTFSBcdGerzNc64tz3DC github.com/anacrolix/tagflag v0.0.0-20180109131632-2146c8d41bf0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw= github.com/anacrolix/tagflag v1.0.0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw= github.com/anacrolix/tagflag v1.1.0/go.mod h1:Scxs9CV10NQatSmbyjqmqmeQNwGzlNe0CMUMIxqHIG8= -github.com/anacrolix/torrent v1.48.1 h1:R4BLt2Z8mS12Z+YI2cKbT+xEfX/18dYylnL06DYiFRY= -github.com/anacrolix/torrent v1.48.1/go.mod h1:5OY82KVPu5Fq+P0HefdTQKRt0gfBXeHeRUE04VaSoQo= +github.com/anacrolix/torrent v1.49.0 h1:v/TAd8BKsZarYEYv7VkPNv8tY5zZCwQyxMMlKKbAF4I= +github.com/anacrolix/torrent v1.49.0/go.mod h1:qT3yS5oQwDUHnBXy+zf3nozLPudG7SFNDL3Jl/zQwFw= github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 h1:QAVZ3pN/J4/UziniAhJR2OZ9Ox5kOY2053tBbbqUPYA= github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96/go.mod h1:Wa6n8cYIdaG35x15aH3Zy6d03f7P728QfdcDeD/IEOs= github.com/anacrolix/utp v0.1.0 h1:FOpQOmIwYsnENnz7tAGohA+r6iXpRjrq8ssKSre2Cp4= @@ -113,8 +113,8 @@ github.com/bradfitz/iter v0.0.0-20190303215204-33e6a9893b0c/go.mod h1:PyRFw1Lt2w github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 h1:GKTyiRCL6zVf5wWaqKnf+7Qs6GbEPfd4iMOitWzXJx8= github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8/go.mod h1:spo1JLcs67NmW1aVLEgtA8Yy1elc+X8y5SRW1sFW4Og= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= -github.com/bytedance/sonic v1.8.5 h1:kjX0/vo5acEQ/sinD/18SkA/lDDUk23F0RcaHvI7omc= -github.com/bytedance/sonic v1.8.5/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/bytedance/sonic v1.8.6 h1:aUgO9S8gvdN6SyW2EhIpAw5E4ChworywIEndZCkCVXk= +github.com/bytedance/sonic v1.8.6/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= @@ -162,8 +162,8 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= @@ -270,8 +270,8 @@ github.com/lispad/go-generics-tools v1.1.0 h1:mbSgcxdFVmpoyso1X/MJHXbSbSL3dD+qhR github.com/lispad/go-generics-tools v1.1.0/go.mod h1:2csd1EJljo/gy5qG4khXol7ivCPptNjG5Uv2X8MgK84= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= +github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -306,8 +306,8 @@ github.com/pion/datachannel v1.5.5 h1:10ef4kwdjije+M9d7Xm9im2Y3O6A6ccQb0zcqZcJew github.com/pion/datachannel v1.5.5/go.mod h1:iMz+lECmfdCMqFRhXhcA/219B0SQlbpoR2V118yimL0= github.com/pion/dtls/v2 v2.2.6 h1:yXMxKr0Skd+Ub6A8UqXTRLSywskx93ooMRHsQUtd+Z4= github.com/pion/dtls/v2 v2.2.6/go.mod h1:t8fWJCIquY5rlQZwA2yWxUS1+OCrAdXrhVKXB5oD/wY= -github.com/pion/ice/v2 v2.3.1 h1:FQCmUfZe2Jpe7LYStVBOP6z1DiSzbIateih3TztgTjc= -github.com/pion/ice/v2 v2.3.1/go.mod h1:aq2kc6MtYNcn4XmMhobAv6hTNJiHzvD0yXRz80+bnP8= +github.com/pion/ice/v2 v2.3.2 h1:vh+fi4RkZ8H5fB4brZ/jm3j4BqFgMmNs+aB3X52Hu7M= +github.com/pion/ice/v2 v2.3.2/go.mod h1:AMIpuJqcpe+UwloocNebmTSWhCZM1TUCo9v7nW50jX0= github.com/pion/interceptor v0.1.12 h1:CslaNriCFUItiXS5o+hh5lpL0t0ytQkFnUcbbCs2Zq8= github.com/pion/interceptor v0.1.12/go.mod h1:bDtgAD9dRkBZpWHGKaoKb42FhDHTG2rX8Ii9LRALLVA= github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= @@ -338,8 +338,8 @@ github.com/pion/turn/v2 v2.1.0 h1:5wGHSgGhJhP/RpabkUb/T9PdsAjkGLS6toYz5HNzoSI= github.com/pion/turn/v2 v2.1.0/go.mod h1:yrT5XbXSGX1VFSF31A3c1kCNB5bBZgk/uu5LET162qs= github.com/pion/udp/v2 v2.0.1 h1:xP0z6WNux1zWEjhC7onRA3EwwSliXqu1ElUZAQhUP54= github.com/pion/udp/v2 v2.0.1/go.mod h1:B7uvTMP00lzWdyMr/1PVZXtV3wpPIxBRd4Wl6AksXn8= -github.com/pion/webrtc/v3 v3.1.58 h1:husXqiKQuk6gbOqJlPHs185OskAyxUW6iAEgHghgCrc= -github.com/pion/webrtc/v3 v3.1.58/go.mod h1:jJdqoqGBlZiE3y8Z1tg1fjSkyEDCZLL+foypUBn0Lhk= +github.com/pion/webrtc/v3 v3.1.59 h1:B3YFo8q6dwBYKA2LUjWRChP59Qtt+xvv1Ul7UPDp6Zc= +github.com/pion/webrtc/v3 v3.1.59/go.mod h1:rJGgStRoFyFOWJULHLayaimsG+jIEoenhJ5MB5gIFqw= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -511,7 +511,6 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From ae8a826ab2d912a823815cbd89ca5232899e31bd Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Sat, 1 Apr 2023 03:04:34 +0300 Subject: [PATCH 2/9] bump ver for tag --- server/version/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/version/version.go b/server/version/version.go index 7e4b2c4..a9acdc9 100644 --- a/server/version/version.go +++ b/server/version/version.go @@ -6,7 +6,7 @@ import ( // "github.com/anacrolix/torrent" ) -const Version = "MatriX.121" +const Version = "MatriX.121.1" func GetTorrentVersion() string { // _ = torrent.NewDefaultClientConfig() From a6994adf17ef1e4234313327cb0cdccd91e0943a Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Sat, 1 Apr 2023 04:36:43 +0300 Subject: [PATCH 3/9] adjust torrent client options --- server/torr/btserver.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/server/torr/btserver.go b/server/torr/btserver.go index d0b6c7f..3a89b50 100644 --- a/server/torr/btserver.go +++ b/server/torr/btserver.go @@ -89,14 +89,17 @@ func (bt *BTServer) configure(ctx context.Context) { upnpID := "TorrServer/" + version.Version cliVers := userAgent - // bt.config.AcceptPeerConnections = false + // Don't announce to trackers. This only leaves DHT to discover peers. + bt.config.DisableTrackers = true + bt.config.PeriodicallyAnnounceTorrentsToDht = true // no peers from DHT with false // bt.config.AlwaysWantConns = true bt.config.Debug = settings.BTsets.EnableDebug bt.config.DisableIPv6 = settings.BTsets.EnableIPv6 == false bt.config.DisableTCP = settings.BTsets.DisableTCP bt.config.DisableUTP = settings.BTsets.DisableUTP // https://github.com/anacrolix/torrent/issues/703 - bt.config.DisableWebtorrent = false // TODO: check memory usage + bt.config.DisableWebtorrent = true // TODO: check memory usage + bt.config.DisableWebseeds = true bt.config.NoDefaultPortForwarding = settings.BTsets.DisableUPNP bt.config.NoDHT = settings.BTsets.DisableDHT bt.config.DisablePEX = settings.BTsets.DisablePEX From 403384cea0b517e7950982d46f47af39eb4f2d7b Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Sat, 1 Apr 2023 04:39:08 +0300 Subject: [PATCH 4/9] cosmetics --- server/torr/btserver.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/torr/btserver.go b/server/torr/btserver.go index 3a89b50..e831f00 100644 --- a/server/torr/btserver.go +++ b/server/torr/btserver.go @@ -94,7 +94,7 @@ func (bt *BTServer) configure(ctx context.Context) { bt.config.PeriodicallyAnnounceTorrentsToDht = true // no peers from DHT with false // bt.config.AlwaysWantConns = true bt.config.Debug = settings.BTsets.EnableDebug - bt.config.DisableIPv6 = settings.BTsets.EnableIPv6 == false + bt.config.DisableIPv6 = !settings.BTsets.EnableIPv6 bt.config.DisableTCP = settings.BTsets.DisableTCP bt.config.DisableUTP = settings.BTsets.DisableUTP // https://github.com/anacrolix/torrent/issues/703 From 66a7895bdabb45db0a1adc5b9e6aadb1096363ce Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Thu, 6 Apr 2023 10:14:25 +0300 Subject: [PATCH 5/9] clear ffp stat after preload --- server/torr/preload.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/torr/preload.go b/server/torr/preload.go index b26b97a..c66e80f 100644 --- a/server/torr/preload.go +++ b/server/torr/preload.go @@ -43,6 +43,9 @@ func (t *Torrent) Preload(index int, size int64) { defer func() { if t.Stat == state.TorrentPreload { t.Stat = state.TorrentWorking + // Очистка по окончании прелоада + t.BitRate = "" + t.DurationSeconds = 0 } }() From 42da0ba3d722d40e101fad26495f7543d7b00ceb Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Thu, 6 Apr 2023 10:18:37 +0300 Subject: [PATCH 6/9] Update btserver.go --- server/torr/btserver.go | 9 --------- 1 file changed, 9 deletions(-) diff --git a/server/torr/btserver.go b/server/torr/btserver.go index e831f00..baabced 100644 --- a/server/torr/btserver.go +++ b/server/torr/btserver.go @@ -89,9 +89,6 @@ func (bt *BTServer) configure(ctx context.Context) { upnpID := "TorrServer/" + version.Version cliVers := userAgent - // Don't announce to trackers. This only leaves DHT to discover peers. - bt.config.DisableTrackers = true - bt.config.PeriodicallyAnnounceTorrentsToDht = true // no peers from DHT with false // bt.config.AlwaysWantConns = true bt.config.Debug = settings.BTsets.EnableDebug bt.config.DisableIPv6 = !settings.BTsets.EnableIPv6 @@ -207,12 +204,6 @@ func (bt *BTServer) RemoveTorrent(hash torrent.InfoHash) { } func isPrivateIP(ip net.IP) bool { - // log.Println(ip, "IsLoopback:", ip.IsLoopback()) - // log.Println(ip, "IsPrivate:", ip.IsPrivate()) - // log.Println(ip, "IsLinkLocalUnicast:", ip.IsLinkLocalUnicast()) - // log.Println(ip, "IsLinkLocalMulticast:", ip.IsLinkLocalMulticast()) - // log.Println(ip, "IsGlobalUnicast:", ip.IsGlobalUnicast()) - if ip.IsLoopback() || ip.IsPrivate() || ip.IsLinkLocalUnicast() || ip.IsLinkLocalMulticast() { return true } From 2dfa2fe2273c51a92ae1290f2512a285d86dda4f Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Sun, 9 Apr 2023 04:46:01 +0300 Subject: [PATCH 7/9] fix races in preload --- server/torr/preload.go | 41 ++++++++++++++++----------- server/torr/storage/torrstor/cache.go | 3 +- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/server/torr/preload.go b/server/torr/preload.go index c66e80f..b942ce6 100644 --- a/server/torr/preload.go +++ b/server/torr/preload.go @@ -77,6 +77,11 @@ func (t *Torrent) Preload(index int, size int64) { } } + if t.Stat == state.TorrentClosed { + log.TLogln("End preload: torrent closed") + return + } + // startend -> 8/16 MB startend := t.Info().PieceLength if startend < 8*1024*1024 { @@ -101,27 +106,29 @@ func (t *Torrent) Preload(index int, size int64) { readerEndStart := file.Length() - startend readerEndEnd := file.Length() - var wa sync.WaitGroup + var wg sync.WaitGroup go func() { offset := int64(0) if readerEndStart > readerStartEnd { // Если конечный ридер не входит в диапозон начального - wa.Add(1) - defer wa.Done() - readerEnd := file.NewReader() - readerEnd.SetResponsive() - readerEnd.SetReadahead(0) - readerEnd.Seek(readerEndStart, io.SeekStart) - offset = readerEndStart - tmp := make([]byte, 32768, 32768) - for offset+int64(len(tmp)) < readerEndEnd { - n, err := readerEnd.Read(tmp) - if err != nil { - break + wg.Add(1) + defer wg.Done() + if t.Stat == state.TorrentPreload { + readerEnd := file.NewReader() + readerEnd.SetResponsive() + readerEnd.SetReadahead(0) + readerEnd.Seek(readerEndStart, io.SeekStart) + offset = readerEndStart + tmp := make([]byte, 32768) + for offset+int64(len(tmp)) < readerEndEnd { + n, err := readerEnd.Read(tmp) + if err != nil { + break + } + offset += int64(n) } - offset += int64(n) + readerEnd.Close() } - readerEnd.Close() } }() @@ -132,7 +139,7 @@ func (t *Torrent) Preload(index int, size int64) { } readerStart.SetReadahead(readahead) offset := int64(0) - tmp := make([]byte, 32768, 32768) + tmp := make([]byte, 32768) for offset+int64(len(tmp)) < readerStartEnd { n, err := readerStart.Read(tmp) if err != nil { @@ -146,7 +153,7 @@ func (t *Torrent) Preload(index int, size int64) { } } - wa.Wait() + wg.Wait() } log.TLogln("End preload:", file.Torrent().InfoHash().HexString(), "Peers:[", t.Torrent.Stats().ConnectedSeeders, "]", t.Torrent.Stats().ActivePeers, "/", t.Torrent.Stats().TotalPeers) } diff --git a/server/torr/storage/torrstor/cache.go b/server/torr/storage/torrstor/cache.go index e8657d6..54873dc 100644 --- a/server/torr/storage/torrstor/cache.go +++ b/server/torr/storage/torrstor/cache.go @@ -104,10 +104,9 @@ func (c *Cache) Close() error { } } - c.pieces = nil - c.muReaders.Lock() c.readers = nil + c.pieces = nil c.muReaders.Unlock() utils.FreeOSMemGC() From 07ca15cdfef7b1d2a7457c44a5c2cc6f2bf38cf0 Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Sun, 9 Apr 2023 05:32:45 +0300 Subject: [PATCH 8/9] cosmetics --- server/torr/preload.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/torr/preload.go b/server/torr/preload.go index b942ce6..62f1c3c 100644 --- a/server/torr/preload.go +++ b/server/torr/preload.go @@ -70,8 +70,8 @@ func (t *Torrent) Preload(index int, size int64) { }() if ffprobe.Exists() { - host := "http://127.0.0.1:" + settings.Port + "/play/" + t.Hash().HexString() + "/" + strconv.Itoa(index) // + "&play" - if data, err := ffprobe.ProbeUrl(host); err == nil { + link := "http://127.0.0.1:" + settings.Port + "/play/" + t.Hash().HexString() + "/" + strconv.Itoa(index) + if data, err := ffprobe.ProbeUrl(link); err == nil { t.BitRate = data.Format.BitRate t.DurationSeconds = data.Format.DurationSeconds } From 998ebe8f26d47c26841bb0fead3512502496dc96 Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Sun, 9 Apr 2023 06:01:35 +0300 Subject: [PATCH 9/9] bump ver for tag --- server/version/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/version/version.go b/server/version/version.go index a9acdc9..9a4483c 100644 --- a/server/version/version.go +++ b/server/version/version.go @@ -6,7 +6,7 @@ import ( // "github.com/anacrolix/torrent" ) -const Version = "MatriX.121.1" +const Version = "MatriX.121.2" func GetTorrentVersion() string { // _ = torrent.NewDefaultClientConfig()