commit:     fadffed8cef0abcddccf66627a21bec4a6309075
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 17 16:28:54 2025 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Jun 17 16:29:43 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fadffed8

net-p2p/transmission: backport http announce fix

Bug: https://bugs.gentoo.org/958253
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 .../transmission-4.0.6-http-announce-error.patch   | 35 ++++++++++++++++++++++
 ....0.6-r5.ebuild => transmission-4.0.6-r6.ebuild} |  1 +
 2 files changed, 36 insertions(+)

diff --git 
a/net-p2p/transmission/files/transmission-4.0.6-http-announce-error.patch 
b/net-p2p/transmission/files/transmission-4.0.6-http-announce-error.patch
new file mode 100644
index 000000000000..a7aa1a554dc0
--- /dev/null
+++ b/net-p2p/transmission/files/transmission-4.0.6-http-announce-error.patch
@@ -0,0 +1,35 @@
+https://github.com/transmission/transmission/pull/7086
+https://bugs.gentoo.org/958253
+
+From 036174aa0e3d1f878e2a629ffe3709942a947c06 Mon Sep 17 00:00:00 2001
+From: Yat Ho <[email protected]>
+Date: Wed, 28 Aug 2024 21:09:05 +0800
+Subject: [PATCH] fix: don't process http announce error if already succeeded
+
+---
+ libtransmission/announcer-http.cc | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/libtransmission/announcer-http.cc 
b/libtransmission/announcer-http.cc
+index cfb44022fab..4a231e64cea 100644
+--- a/libtransmission/announcer-http.cc
++++ b/libtransmission/announcer-http.cc
+@@ -154,16 +154,12 @@ void onAnnounceDone(tr_web::FetchResponse const& 
web_response)
+         }
+         else if (got_all_responses)
+         {
+-            auto const* response_used = &response;
+-
+             // All requests have been answered, but none were successful.
+             // Choose the one that went further to report.
+-            if (data->previous_response && !response.did_connect && 
!response.did_timeout)
++            if (data->previous_response)
+             {
+-                response_used = &*data->previous_response;
++                data->on_response(response.did_connect || 
response.did_timeout ? response : *data->previous_response);
+             }
+-
+-            data->on_response(*response_used);
+         }
+         else
+         {

diff --git a/net-p2p/transmission/transmission-4.0.6-r5.ebuild 
b/net-p2p/transmission/transmission-4.0.6-r6.ebuild
similarity index 98%
rename from net-p2p/transmission/transmission-4.0.6-r5.ebuild
rename to net-p2p/transmission/transmission-4.0.6-r6.ebuild
index d7bd281547f7..77fba8ab0c42 100644
--- a/net-p2p/transmission/transmission-4.0.6-r5.ebuild
+++ b/net-p2p/transmission/transmission-4.0.6-r6.ebuild
@@ -70,6 +70,7 @@ RDEPEND="${COMMON_DEPEND}
 
 PATCHES=(
        "${FILESDIR}/transmission-4.0.6-miniupnpc-2.2.8.patch"
+       "${FILESDIR}/transmission-4.0.6-http-announce-error.patch"
 )
 
 src_prepare() {

Reply via email to