diff --git a/src/enum_net.cpp b/src/enum_net.cpp index 51d5116a0..582ad2da2 100644 --- a/src/enum_net.cpp +++ b/src/enum_net.cpp @@ -126,8 +126,8 @@ namespace libtorrent ifc.ifc_buf = buf; if (ioctl(s, SIOCGIFCONF, &ifc) < 0) { - close(s); ec = asio::error_code(errno, asio::error::system_category); + close(s); return ret; } @@ -154,8 +154,8 @@ namespace libtorrent } else { - close(s); ec = asio::error_code(errno, asio::error::system_category); + close(s); return ret; } } @@ -369,7 +369,6 @@ namespace libtorrent address ret; if (GetAdaptersInfo(adapter_info, &out_buf_size) == NO_ERROR) { - for (PIP_ADAPTER_INFO adapter = adapter_info; adapter != 0; adapter = adapter->Next) { diff --git a/src/upnp.cpp b/src/upnp.cpp index c6ee10c32..31a5117c6 100644 --- a/src/upnp.cpp +++ b/src/upnp.cpp @@ -256,8 +256,23 @@ void upnp::on_reply(udp::endpoint const& from, char* buffer // this upnp device is filtered because it's not in the // list of configured routers #ifdef TORRENT_UPNP_LOGGING - m_log << time_now_string() << " <== (" << from << ") UPnP device " - "ignored because it's not on our network" << std::endl; + if (ec) + { + m_log << time_now_string() << " <== (" << from << ") error: " + << ec.message() << std::endl; + } + else + { + std::vector const& net = enum_net_interfaces(m_io_service, ec); + m_log << time_now_string() << " <== (" << from << ") UPnP device " + "ignored because it's not on our network "; + for (std::vector::const_iterator i = net.begin() + , end(net.end()); i != end; ++i) + { + m_log << "(" << i->interface_address << ", " << i->netmask << ") "; + } + m_log << std::endl; + } #endif return; }