From 4985c8a7947a5b1498774d6ee6d9a40e2d779e34 Mon Sep 17 00:00:00 2001 From: Ismael Luceno Date: Sat, 1 Feb 2025 13:09:46 +0100 Subject: [PATCH] =?UTF-8?q?Make=20=C2=B5TP=20optional=20again?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upstream-Status: Pending Signed-off-by: Ismael Luceno --- libtransmission/CMakeLists.txt | 6 +++++- libtransmission/net.cc | 4 ++++ libtransmission/peer-io.cc | 4 ++++ libtransmission/peer-mgr.cc | 2 ++ libtransmission/peer-socket.cc | 2 ++ libtransmission/session.cc | 6 ++++++ libtransmission/tr-udp.cc | 4 ++++ libtransmission/tr-utp.cc | 2 ++ 8 files changed, 29 insertions(+), 1 deletion(-) diff --git a/libtransmission/CMakeLists.txt b/libtransmission/CMakeLists.txt index 7c2127d5658e..aa08195d0428 100644 --- a/libtransmission/CMakeLists.txt +++ b/libtransmission/CMakeLists.txt @@ -178,6 +178,10 @@ target_sources(${TR_NAME} webseed.cc webseed.h) +if(NOT ENABLE_UTP) + set_source_files_properties(tr-utp.cc PROPERTIES HEADER_FILE_ONLY ON) +endif() + configure_file(version.h.in version.h) target_sources(${TR_NAME} @@ -281,7 +285,7 @@ target_link_libraries(${TR_NAME} natpmp::natpmp miniupnpc::libminiupnpc dht::dht - libutp::libutp + ${UTP_LIBRARY} libb64::libb64 ${LIBINTL_LIBRARY} ${LIBM_LIBRARY} diff --git a/libtransmission/net.cc b/libtransmission/net.cc index d7384b6bdcf1..9927bf2005b3 100644 --- a/libtransmission/net.cc +++ b/libtransmission/net.cc @@ -25,7 +25,9 @@ #include +#ifdef WITH_UTP #include +#endif #include "transmission.h" @@ -35,7 +37,9 @@ #include "session.h" #include "tr-assert.h" #include "tr-macros.h" +#ifdef WITH_UTP #include "tr-utp.h" +#endif #include "utils.h" #include "variant.h" diff --git a/libtransmission/peer-io.cc b/libtransmission/peer-io.cc index a3e143b9b606..e80462814b58 100644 --- a/libtransmission/peer-io.cc +++ b/libtransmission/peer-io.cc @@ -13,7 +13,9 @@ #include #include +#ifdef WITH_UTP #include +#endif #include @@ -24,7 +26,9 @@ #include "net.h" #include "peer-io.h" #include "tr-assert.h" +#ifdef WITH_UTP #include "tr-utp.h" +#endif #include "utils.h" // for _() #define tr_logAddErrorIo(io, msg) tr_logAddError(msg, (io)->display_name()) diff --git a/libtransmission/peer-mgr.cc b/libtransmission/peer-mgr.cc index f17577647b1f..e9810daeb208 100644 --- a/libtransmission/peer-mgr.cc +++ b/libtransmission/peer-mgr.cc @@ -45,7 +45,9 @@ #include "torrent.h" #include "torrent-magnet.h" #include "tr-assert.h" +#ifdef WITH_UTP #include "tr-utp.h" +#endif #include "utils.h" #include "webseed.h" diff --git a/libtransmission/peer-socket.cc b/libtransmission/peer-socket.cc index 380ed11c6e17..6143f885f3da 100644 --- a/libtransmission/peer-socket.cc +++ b/libtransmission/peer-socket.cc @@ -5,7 +5,9 @@ #include +#ifdef WITH_UTP #include +#endif #include "transmission.h" diff --git a/libtransmission/session.cc b/libtransmission/session.cc index 1fa954d344d6..6395b675acfc 100644 --- a/libtransmission/session.cc +++ b/libtransmission/session.cc @@ -55,7 +55,9 @@ #include "tr-assert.h" #include "tr-lpd.h" #include "tr-strbuf.h" +#ifdef WITH_UTP #include "tr-utp.h" +#endif #include "utils.h" #include "variant.h" #include "verify.h" @@ -652,7 +654,9 @@ void tr_session::initImpl(init_data& data) this->lpd_ = tr_lpd::create(lpd_mediator_, eventBase()); } +#if WITH_UTP tr_utpInit(this); +#endif /* cleanup */ tr_variantClear(&settings); @@ -1313,7 +1317,9 @@ void tr_session::closeImplPart2(std::promise* closed_promise, std::chrono: stats().saveIfDirty(); peer_mgr_.reset(); openFiles().closeAll(); +#if WITH_UTP tr_utpClose(this); +#endif this->udp_core_.reset(); // tada we are done! diff --git a/libtransmission/tr-udp.cc b/libtransmission/tr-udp.cc index ef66a4ffa1b9..bf52846ef8ee 100644 --- a/libtransmission/tr-udp.cc +++ b/libtransmission/tr-udp.cc @@ -16,7 +16,9 @@ #include "net.h" #include "session.h" #include "tr-assert.h" +#ifdef WITH_UTP #include "tr-utp.h" +#endif #include "utils.h" namespace @@ -123,6 +125,7 @@ void event_callback(evutil_socket_t s, [[maybe_unused]] short type, void* vsessi tr_logAddTrace("Couldn't parse UDP tracker packet."); } } +#ifdef WITH_UTP else if (session->allowsUTP() && (session->utp_context != nullptr)) { if (!tr_utpPacket(std::data(buf), rc, from_sa, fromlen, session)) @@ -130,6 +133,7 @@ void event_callback(evutil_socket_t s, [[maybe_unused]] short type, void* vsessi tr_logAddTrace("Unexpected UDP packet"); } } +#endif } } // namespace diff --git a/libtransmission/tr-utp.cc b/libtransmission/tr-utp.cc index 905c68e85bcd..42ab6df08f25 100644 --- a/libtransmission/tr-utp.cc +++ b/libtransmission/tr-utp.cc @@ -20,7 +20,9 @@ #include "peer-socket.h" #include "session.h" #include "timer.h" +#ifdef WITH_UTP #include "tr-utp.h" +#endif #include "utils.h" using namespace std::literals; -- 2.48.1 .