Sunshine v2025.118.151840
Self-hosted game stream host for Moonlight.
upnp.h
Go to the documentation of this file.
1
5#pragma once
6
7#include <miniupnpc/miniupnpc.h>
8
9#include "platform/common.h"
10
14namespace upnp {
15 constexpr auto INET6_ADDRESS_STRLEN = 46;
16 constexpr auto IPv4 = 0;
17 constexpr auto IPv6 = 1;
18 constexpr auto PORT_MAPPING_LIFETIME = 3600s;
19 constexpr auto REFRESH_INTERVAL = 120s;
20
22
23 KITTY_USING_MOVE_T(urls_t, UPNPUrls, , {
24 FreeUPNPUrls(&el);
25 });
26
39 int
40 UPNP_GetValidIGDStatus(device_t &device, urls_t *urls, IGDdatas *data, std::array<char, INET6_ADDRESS_STRLEN> &lan_addr);
41
42 [[nodiscard]] std::unique_ptr<platf::deinit_t>
43 start();
44} // namespace upnp
Definition utility.h:496
Declarations for common platform specific utilities.
UPnP port mapping.
Definition upnp.cpp:21
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:54