The UPnP discovery process was not timing out if a discovery response was not received (e.g. if UPnP was disabled on your router). So the status would remain on "Discovering" forever and never change to "NotAvailable".
This pull request resolves this issue. Let me know if you have any questions or need anything else.
PS. I would have used the new C# 6 null-conditional operator (e.g. m_upnp?.CheckForDiscoveryTimeout()), but I wasn't sure if you were using Visual Studio 2015 yet.
The UPnP discovery process was not timing out if a discovery response was not received (e.g. if UPnP was disabled on your router). So the status would remain on "Discovering" forever and never change to "NotAvailable".
This pull request resolves this issue. Let me know if you have any questions or need anything else.
PS. I would have used the new C# 6 null-conditional operator (e.g. m_upnp?.CheckForDiscoveryTimeout()), but I wasn't sure if you were using Visual Studio 2015 yet.