gentoo-ebuilds/net-misc/sunshine/files/sunshine-miniupnpc.patch
James Le Cuirot 09eb59d788
net-misc/sunshine: Fix 0.23.1 with newer miniupnpc using patch
Closes: https://bugs.gentoo.org/934173
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
2024-06-23 16:46:17 +01:00

43 lines
1.5 KiB
Diff

https://bugs.gentoo.org/934173
https://github.com/LizardByte/Sunshine/pull/2746
From 850f656676d30ffb47028e865982e56be161d179 Mon Sep 17 00:00:00 2001
From: James Le Cuirot <chewi@gentoo.org>
Date: Sun, 23 Jun 2024 16:21:23 +0100
Subject: [PATCH] fix(upnp): Support miniupnpc API version 18 (release 2.2.8)
---
src/upnp.cpp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/upnp.cpp b/src/upnp.cpp
index 2743ebae..e6ec057b 100644
--- a/src/upnp.cpp
+++ b/src/upnp.cpp
@@ -109,7 +109,11 @@ namespace upnp {
IGDdatas data;
urls_t urls;
std::array<char, INET6_ADDRESS_STRLEN> lan_addr;
+#if (MINIUPNPC_API_VERSION >= 18)
+ auto status = UPNP_GetValidIGD(device.get(), &urls.el, &data, lan_addr.data(), lan_addr.size(), nullptr, 0);
+#else
auto status = UPNP_GetValidIGD(device.get(), &urls.el, &data, lan_addr.data(), lan_addr.size());
+#endif
if (status != 1 && status != 2) {
BOOST_LOG(debug) << "No valid IPv6 IGD: "sv << status_string(status);
return false;
@@ -331,7 +335,11 @@ namespace upnp {
std::array<char, INET6_ADDRESS_STRLEN> lan_addr;
urls_t urls;
+#if (MINIUPNPC_API_VERSION >= 18)
+ auto status = UPNP_GetValidIGD(device.get(), &urls.el, &data, lan_addr.data(), lan_addr.size(), nullptr, 0);
+#else
auto status = UPNP_GetValidIGD(device.get(), &urls.el, &data, lan_addr.data(), lan_addr.size());
+#endif
if (status != 1 && status != 2) {
BOOST_LOG(error) << status_string(status);
mapped = false;
--
2.45.2