fix upnp assert

This commit is contained in:
Arvid Norberg 2020-03-28 22:43:10 +01:00 committed by Arvid Norberg
parent e9cff1db0b
commit 2964cbc1c6
1 changed files with 4 additions and 1 deletions

View File

@ -316,6 +316,7 @@ port_mapping_t upnp::add_mapping(portmap_protocol const p, int const external_po
{
rootdevice& d = const_cast<rootdevice&>(dev);
TORRENT_ASSERT(d.magic == 1337);
if (d.disabled) continue;
if (d.mapping.end_index() <= mapping_index)
d.mapping.resize(static_cast<int>(mapping_index) + 1);
@ -355,6 +356,7 @@ void upnp::delete_mapping(port_mapping_t const mapping)
{
rootdevice& d = const_cast<rootdevice&>(dev);
TORRENT_ASSERT(d.magic == 1337);
if (d.disabled) continue;
TORRENT_ASSERT(mapping < d.mapping.end_index());
d.mapping[mapping].act = portmap_action::del;
@ -771,6 +773,7 @@ void upnp::create_port_mapping(http_connection& c, rootdevice& d
void upnp::next(rootdevice& d, port_mapping_t const i)
{
TORRENT_ASSERT(is_single_thread());
TORRENT_ASSERT(!d.disabled);
if (i < prev(m_mappings.end_index()))
{
update_map(d, lt::next(i));
@ -1636,7 +1639,7 @@ void upnp::close()
{
rootdevice& d = const_cast<rootdevice&>(dev);
TORRENT_ASSERT(d.magic == 1337);
if (d.control_url.empty()) continue;
if (d.disabled || d.control_url.empty()) continue;
for (auto& m : d.mapping)
{
if (m.protocol == portmap_protocol::none) continue;