upnp: expose interface configuration on UpnpInit2()
Adds the Interface Name as an argument to the *Init functions to make it possible to select which interface is used by upnp to detect servers. Currently "nullptr" is passed in to let the upnp library select an interface, as before.
This commit is contained in:
parent
c93195c94b
commit
4ed60a5711
@ -155,7 +155,7 @@ UpnpDatabase::Create(EventLoop &, EventLoop &io_event_loop,
|
||||
void
|
||||
UpnpDatabase::Open()
|
||||
{
|
||||
handle = UpnpClientGlobalInit();
|
||||
handle = UpnpClientGlobalInit(nullptr);
|
||||
|
||||
discovery = new UPnPDeviceDirectory(event_loop, handle);
|
||||
try {
|
||||
|
@ -57,9 +57,9 @@ DoInit()
|
||||
}
|
||||
|
||||
UpnpClient_Handle
|
||||
UpnpClientGlobalInit()
|
||||
UpnpClientGlobalInit(const char* iface)
|
||||
{
|
||||
UpnpGlobalInit();
|
||||
UpnpGlobalInit(iface);
|
||||
|
||||
try {
|
||||
const std::lock_guard<Mutex> protect(upnp_client_init_mutex);
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "Compat.hxx"
|
||||
|
||||
UpnpClient_Handle
|
||||
UpnpClientGlobalInit();
|
||||
UpnpClientGlobalInit(const char* iface);
|
||||
|
||||
void
|
||||
UpnpClientGlobalFinish() noexcept;
|
||||
|
@ -33,12 +33,13 @@ static Mutex upnp_init_mutex;
|
||||
static unsigned upnp_ref;
|
||||
|
||||
static void
|
||||
DoInit()
|
||||
DoInit(const char* iface)
|
||||
{
|
||||
|
||||
#ifdef UPNP_ENABLE_IPV6
|
||||
auto code = UpnpInit2(nullptr, 0);
|
||||
auto code = UpnpInit2(iface, 0);
|
||||
#else
|
||||
auto code = UpnpInit(nullptr, 0);
|
||||
auto code = UpnpInit(iface, 0);
|
||||
#endif
|
||||
if (code != UPNP_E_SUCCESS)
|
||||
throw FormatRuntimeError("UpnpInit() failed: %s",
|
||||
@ -53,12 +54,12 @@ DoInit()
|
||||
}
|
||||
|
||||
void
|
||||
UpnpGlobalInit()
|
||||
UpnpGlobalInit(const char* iface)
|
||||
{
|
||||
const std::lock_guard<Mutex> protect(upnp_init_mutex);
|
||||
|
||||
if (upnp_ref == 0)
|
||||
DoInit();
|
||||
DoInit(iface);
|
||||
|
||||
++upnp_ref;
|
||||
}
|
||||
|
@ -21,7 +21,7 @@
|
||||
#define MPD_UPNP_INIT_HXX
|
||||
|
||||
void
|
||||
UpnpGlobalInit();
|
||||
UpnpGlobalInit(const char* iface);
|
||||
|
||||
void
|
||||
UpnpGlobalFinish() noexcept;
|
||||
|
@ -74,7 +74,7 @@ private:
|
||||
void
|
||||
UpnpNeighborExplorer::Open()
|
||||
{
|
||||
auto handle = UpnpClientGlobalInit();
|
||||
auto handle = UpnpClientGlobalInit(nullptr);
|
||||
|
||||
discovery = new UPnPDeviceDirectory(event_loop, handle, this);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user