Sunshine
latest
Self-hosted game stream host for Moonlight.
Toggle main menu visibility
upnp.h
Go to the documentation of this file.
1
5
#pragma once
6
7
// lib includes
8
#include <miniupnpc/miniupnpc.h>
9
10
// local includes
11
#include "
platform/common.h
"
12
16
namespace
upnp
{
17
constexpr
auto
INET6_ADDRESS_STRLEN
= 46;
18
constexpr
auto
IPv4
= 0;
19
constexpr
auto
IPv6
= 1;
20
constexpr
auto
PORT_MAPPING_LIFETIME
= 3600s;
21
constexpr
auto
REFRESH_INTERVAL
= 120s;
22
26
using
device_t
=
util::safe_ptr<UPNPDev, freeUPNPDevlist>
;
27
28
KITTY_USING_MOVE_T
(
urls_t
, UPNPUrls, , {
29
FreeUPNPUrls(&el);
30
});
31
44
int
UPNP_GetValidIGDStatus
(
device_t
&device,
urls_t
*urls, IGDdatas *data, std::array<char, INET6_ADDRESS_STRLEN> &lan_addr);
45
51
[[nodiscard]] std::unique_ptr<platf::deinit_t>
start
();
52
}
// namespace upnp
upnp::urls_t
Move-only RAII wrapper generated by KITTY_USING_MOVE_T. Alias for element type.
Definition
upnp.h:30
common.h
Declarations for common platform specific utilities.
upnp
UPnP port mapping.
Definition
upnp.cpp:26
upnp::INET6_ADDRESS_STRLEN
constexpr auto INET6_ADDRESS_STRLEN
Protocol or platform constant for inet6 address strlen.
Definition
upnp.h:17
upnp::REFRESH_INTERVAL
constexpr auto REFRESH_INTERVAL
Protocol or platform constant for refresh interval.
Definition
upnp.h:21
upnp::PORT_MAPPING_LIFETIME
constexpr auto PORT_MAPPING_LIFETIME
GameStream port offset for port mapping lifetime.
Definition
upnp.h:20
upnp::start
std::unique_ptr< platf::deinit_t > start()
Start UPnP port mapping and return its shutdown guard.
Definition
upnp.cpp:382
upnp::device_t
util::safe_ptr< UPNPDev, freeUPNPDevlist > device_t
Owning pointer to miniupnpc device discovery results.
Definition
upnp.h:26
upnp::IPv4
constexpr auto IPv4
I pv4.
Definition
upnp.h:18
upnp::IPv6
constexpr auto IPv6
I pv6.
Definition
upnp.h:19
upnp::UPNP_GetValidIGDStatus
int UPNP_GetValidIGDStatus(device_t &device, urls_t *urls, IGDdatas *data, std::array< char, INET6_ADDRESS_STRLEN > &lan_addr)
Get the valid IGD status.
Definition
upnp.cpp:60
util::safe_ptr
uniq_ptr< T, Destroy< T *, void, function > > safe_ptr
Unique pointer using a compile-time C-style destroy function.
Definition
utility.h:1591
KITTY_USING_MOVE_T
#define KITTY_USING_MOVE_T(move_t, t, init_val, z)
Define a move-only RAII wrapper with caller-provided initial value and destructor body.
Definition
utility.h:49
src
upnp.h
Generated by
1.18.0