mirror of
https://github.com/codex-storage/deluge.git
synced 2025-01-24 02:11:06 +00:00
lt sync 2607 - fixes upnp
This commit is contained in:
parent
14a6efef2b
commit
143c1661fe
@ -268,6 +268,7 @@ private:
|
|||||||
if (m_abort) return;
|
if (m_abort) return;
|
||||||
|
|
||||||
error_code ec;
|
error_code ec;
|
||||||
|
TORRENT_ASSERT(e.expires_at > time_now());
|
||||||
m_history_timer.expires_at(e.expires_at, ec);
|
m_history_timer.expires_at(e.expires_at, ec);
|
||||||
m_history_timer.async_wait(bind(&bandwidth_manager::on_history_expire, this, _1));
|
m_history_timer.async_wait(bind(&bandwidth_manager::on_history_expire, this, _1));
|
||||||
}
|
}
|
||||||
@ -311,6 +312,7 @@ private:
|
|||||||
if (!m_history.empty() && !m_abort)
|
if (!m_history.empty() && !m_abort)
|
||||||
{
|
{
|
||||||
error_code ec;
|
error_code ec;
|
||||||
|
TORRENT_ASSERT(m_history.back().expires_at > now);
|
||||||
m_history_timer.expires_at(m_history.back().expires_at, ec);
|
m_history_timer.expires_at(m_history.back().expires_at, ec);
|
||||||
m_history_timer.async_wait(bind(&bandwidth_manager::on_history_expire, this, _1));
|
m_history_timer.async_wait(bind(&bandwidth_manager::on_history_expire, this, _1));
|
||||||
}
|
}
|
||||||
|
@ -143,14 +143,22 @@ namespace libtorrent
|
|||||||
{
|
{
|
||||||
using boost::filesystem::path;
|
using boost::filesystem::path;
|
||||||
using boost::filesystem::directory_iterator;
|
using boost::filesystem::directory_iterator;
|
||||||
|
#if BOOST_VERSION < 103600
|
||||||
std::string const& leaf = l.leaf();
|
std::string const& leaf = l.leaf();
|
||||||
|
#else
|
||||||
|
std::string const& leaf = l.filename();
|
||||||
|
#endif
|
||||||
if (leaf == ".." || leaf == ".") return;
|
if (leaf == ".." || leaf == ".") return;
|
||||||
if (!pred(l)) return;
|
if (!pred(l)) return;
|
||||||
path f(p / l);
|
path f(p / l);
|
||||||
if (is_directory(f))
|
if (is_directory(f))
|
||||||
{
|
{
|
||||||
for (directory_iterator i(f), end; i != end; ++i)
|
for (directory_iterator i(f), end; i != end; ++i)
|
||||||
|
#if BOOST_VERSION < 103600
|
||||||
add_files_impl(fs, p, l / i->leaf(), pred);
|
add_files_impl(fs, p, l / i->leaf(), pred);
|
||||||
|
#else
|
||||||
|
add_files_impl(fs, p, l / i->filename(), pred);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -162,7 +170,11 @@ namespace libtorrent
|
|||||||
template <class Pred>
|
template <class Pred>
|
||||||
void add_files(file_storage& fs, boost::filesystem::path const& file, Pred p)
|
void add_files(file_storage& fs, boost::filesystem::path const& file, Pred p)
|
||||||
{
|
{
|
||||||
|
#if BOOST_VERSION < 103600
|
||||||
detail::add_files_impl(fs, complete(file).branch_path(), file.leaf(), p);
|
detail::add_files_impl(fs, complete(file).branch_path(), file.leaf(), p);
|
||||||
|
#else
|
||||||
|
detail::add_files_impl(fs, complete(file).parent_path(), file.filename(), p);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void add_files(file_storage& fs, boost::filesystem::path const& file)
|
inline void add_files(file_storage& fs, boost::filesystem::path const& file)
|
||||||
|
@ -39,8 +39,9 @@ POSSIBILITY OF SUCH DAMAGE.
|
|||||||
|
|
||||||
#include "libtorrent/storage.hpp"
|
#include "libtorrent/storage.hpp"
|
||||||
#include <boost/thread/thread.hpp>
|
#include <boost/thread/thread.hpp>
|
||||||
#include <boost/function.hpp>
|
|
||||||
#include <boost/thread/mutex.hpp>
|
#include <boost/thread/mutex.hpp>
|
||||||
|
#include <boost/thread/condition.hpp>
|
||||||
|
#include <boost/function.hpp>
|
||||||
#include <boost/bind.hpp>
|
#include <boost/bind.hpp>
|
||||||
#include <boost/noncopyable.hpp>
|
#include <boost/noncopyable.hpp>
|
||||||
#include <boost/shared_array.hpp>
|
#include <boost/shared_array.hpp>
|
||||||
|
@ -73,7 +73,11 @@ namespace libtorrent
|
|||||||
inline boost::system::error_category const& get_system_category()
|
inline boost::system::error_category const& get_system_category()
|
||||||
{ return boost::system::get_system_category(); }
|
{ return boost::system::get_system_category(); }
|
||||||
inline boost::system::error_category const& get_posix_category()
|
inline boost::system::error_category const& get_posix_category()
|
||||||
|
#if BOOST_VERSION < 103600
|
||||||
{ return boost::system::get_posix_category(); }
|
{ return boost::system::get_posix_category(); }
|
||||||
|
#else
|
||||||
|
{ return boost::system::get_generic_category(); }
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,6 +252,7 @@ namespace libtorrent
|
|||||||
if (m_supports_dht_port && m_ses.m_dht)
|
if (m_supports_dht_port && m_ses.m_dht)
|
||||||
write_dht_port(m_ses.get_dht_settings().service_port);
|
write_dht_port(m_ses.get_dht_settings().service_port);
|
||||||
#endif
|
#endif
|
||||||
|
if (is_interesting()) write_interested();
|
||||||
}
|
}
|
||||||
|
|
||||||
void bt_peer_connection::write_dht_port(int listen_port)
|
void bt_peer_connection::write_dht_port(int listen_port)
|
||||||
@ -1435,6 +1436,9 @@ namespace libtorrent
|
|||||||
else if (t->num_have() == 0)
|
else if (t->num_have() == 0)
|
||||||
{
|
{
|
||||||
// don't send a bitfield if we don't have any pieces
|
// don't send a bitfield if we don't have any pieces
|
||||||
|
#ifdef TORRENT_VERBOSE_LOGGING
|
||||||
|
(*m_logger) << time_now_string() << " *** NOT SENDING BITFIELD";
|
||||||
|
#endif
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
m_sent_bitfield = true;
|
m_sent_bitfield = true;
|
||||||
#endif
|
#endif
|
||||||
|
@ -49,7 +49,11 @@ namespace libtorrent
|
|||||||
, m_private(false)
|
, m_private(false)
|
||||||
{
|
{
|
||||||
TORRENT_ASSERT(fs.num_files() > 0);
|
TORRENT_ASSERT(fs.num_files() > 0);
|
||||||
|
#if BOOST_VERSION < 103600
|
||||||
if (!m_multifile && m_files.at(0).path.has_branch_path()) m_multifile = true;
|
if (!m_multifile && m_files.at(0).path.has_branch_path()) m_multifile = true;
|
||||||
|
#else
|
||||||
|
if (!m_multifile && m_files.at(0).path.has_parent_path()) m_multifile = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
// make sure the size is an even power of 2
|
// make sure the size is an even power of 2
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
@ -75,7 +79,11 @@ namespace libtorrent
|
|||||||
, m_private(false)
|
, m_private(false)
|
||||||
{
|
{
|
||||||
TORRENT_ASSERT(fs.num_files() > 0);
|
TORRENT_ASSERT(fs.num_files() > 0);
|
||||||
|
#if BOOST_VERSION < 103600
|
||||||
if (!m_multifile && m_files.at(0).path.has_branch_path()) m_multifile = true;
|
if (!m_multifile && m_files.at(0).path.has_branch_path()) m_multifile = true;
|
||||||
|
#else
|
||||||
|
if (!m_multifile && m_files.at(0).path.has_parent_path()) m_multifile = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
const int target_size = 40 * 1024;
|
const int target_size = 40 * 1024;
|
||||||
int size = fs.total_size() / (target_size / 20);
|
int size = fs.total_size() / (target_size / 20);
|
||||||
@ -190,7 +198,11 @@ namespace libtorrent
|
|||||||
file_e["length"] = i->size;
|
file_e["length"] = i->size;
|
||||||
entry& path_e = file_e["path"];
|
entry& path_e = file_e["path"];
|
||||||
|
|
||||||
|
#if BOOST_VERSION < 103600
|
||||||
TORRENT_ASSERT(i->path.has_branch_path());
|
TORRENT_ASSERT(i->path.has_branch_path());
|
||||||
|
#else
|
||||||
|
TORRENT_ASSERT(i->path.has_parent_path());
|
||||||
|
#endif
|
||||||
TORRENT_ASSERT(*i->path.begin() == m_files.name());
|
TORRENT_ASSERT(*i->path.begin() == m_files.name());
|
||||||
|
|
||||||
for (fs::path::iterator j = boost::next(i->path.begin());
|
for (fs::path::iterator j = boost::next(i->path.begin());
|
||||||
|
@ -150,10 +150,10 @@ namespace libtorrent { namespace
|
|||||||
if_indextoname(*(int*)RTA_DATA(rt_attr), rt_info->name);
|
if_indextoname(*(int*)RTA_DATA(rt_attr), rt_info->name);
|
||||||
break;
|
break;
|
||||||
case RTA_GATEWAY:
|
case RTA_GATEWAY:
|
||||||
rt_info->gateway = address_v4(*(u_int*)RTA_DATA(rt_attr));
|
rt_info->gateway = address_v4(ntohl(*(u_int*)RTA_DATA(rt_attr)));
|
||||||
break;
|
break;
|
||||||
case RTA_DST:
|
case RTA_DST:
|
||||||
rt_info->destination = address_v4(*(u_int*)RTA_DATA(rt_attr));
|
rt_info->destination = address_v4(ntohl(*(u_int*)RTA_DATA(rt_attr)));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -230,9 +230,9 @@ namespace libtorrent
|
|||||||
|
|
||||||
bool in_local_network(io_service& ios, address const& addr, error_code& ec)
|
bool in_local_network(io_service& ios, address const& addr, error_code& ec)
|
||||||
{
|
{
|
||||||
std::vector<ip_interface> const& net = enum_net_interfaces(ios, ec);
|
std::vector<ip_interface> net = enum_net_interfaces(ios, ec);
|
||||||
if (ec) return false;
|
if (ec) return false;
|
||||||
for (std::vector<ip_interface>::const_iterator i = net.begin()
|
for (std::vector<ip_interface>::iterator i = net.begin()
|
||||||
, end(net.end()); i != end; ++i)
|
, end(net.end()); i != end; ++i)
|
||||||
{
|
{
|
||||||
if (in_subnet(addr, *i)) return true;
|
if (in_subnet(addr, *i)) return true;
|
||||||
|
@ -131,7 +131,11 @@ namespace libtorrent
|
|||||||
void file_storage::add_file(fs::path const& file, size_type size)
|
void file_storage::add_file(fs::path const& file, size_type size)
|
||||||
{
|
{
|
||||||
TORRENT_ASSERT(size >= 0);
|
TORRENT_ASSERT(size >= 0);
|
||||||
|
#if BOOST_VERSION < 103600
|
||||||
if (!file.has_branch_path())
|
if (!file.has_branch_path())
|
||||||
|
#else
|
||||||
|
if (!file.has_parent_path())
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
// you have already added at least one file with a
|
// you have already added at least one file with a
|
||||||
// path to the file (branch_path), which means that
|
// path to the file (branch_path), which means that
|
||||||
|
@ -88,10 +88,10 @@ namespace libtorrent
|
|||||||
lazy_entry* top = stack.back();
|
lazy_entry* top = stack.back();
|
||||||
|
|
||||||
if (int(stack.size()) > depth_limit) return fail_bdecode();
|
if (int(stack.size()) > depth_limit) return fail_bdecode();
|
||||||
if (start == end) return fail_bdecode();
|
if (start >= end) return fail_bdecode();
|
||||||
char t = *start;
|
char t = *start;
|
||||||
++start;
|
++start;
|
||||||
if (start == end && t != 'e') return fail_bdecode();
|
if (start >= end && t != 'e') return fail_bdecode();
|
||||||
|
|
||||||
switch (top->type())
|
switch (top->type())
|
||||||
{
|
{
|
||||||
@ -107,8 +107,10 @@ namespace libtorrent
|
|||||||
start = parse_int(start, end, ':', len);
|
start = parse_int(start, end, ':', len);
|
||||||
if (start == 0 || start + len + 3 > end || *start != ':') return fail_bdecode();
|
if (start == 0 || start + len + 3 > end || *start != ':') return fail_bdecode();
|
||||||
++start;
|
++start;
|
||||||
|
if (start == end) fail_bdecode();
|
||||||
lazy_entry* ent = top->dict_append(start);
|
lazy_entry* ent = top->dict_append(start);
|
||||||
start += len;
|
start += len;
|
||||||
|
if (start >= end) fail_bdecode();
|
||||||
stack.push_back(ent);
|
stack.push_back(ent);
|
||||||
t = *start;
|
t = *start;
|
||||||
++start;
|
++start;
|
||||||
|
@ -2133,6 +2133,8 @@ namespace libtorrent
|
|||||||
{
|
{
|
||||||
if (m_interesting) return;
|
if (m_interesting) return;
|
||||||
m_interesting = true;
|
m_interesting = true;
|
||||||
|
boost::shared_ptr<torrent> t = m_torrent.lock();
|
||||||
|
if (!t->valid_metadata()) return;
|
||||||
write_interested();
|
write_interested();
|
||||||
|
|
||||||
#ifdef TORRENT_VERBOSE_LOGGING
|
#ifdef TORRENT_VERBOSE_LOGGING
|
||||||
@ -2144,6 +2146,8 @@ namespace libtorrent
|
|||||||
{
|
{
|
||||||
if (!m_interesting) return;
|
if (!m_interesting) return;
|
||||||
m_interesting = false;
|
m_interesting = false;
|
||||||
|
boost::shared_ptr<torrent> t = m_torrent.lock();
|
||||||
|
if (!t->valid_metadata()) return;
|
||||||
write_not_interested();
|
write_not_interested();
|
||||||
|
|
||||||
m_became_uninteresting = time_now();
|
m_became_uninteresting = time_now();
|
||||||
|
@ -265,7 +265,11 @@ namespace libtorrent
|
|||||||
create_directory(new_path);
|
create_directory(new_path);
|
||||||
for (basic_directory_iterator<Path> i(old_path), end; i != end; ++i)
|
for (basic_directory_iterator<Path> i(old_path), end; i != end; ++i)
|
||||||
{
|
{
|
||||||
|
#if BOOST_VERSION < 103600
|
||||||
recursive_copy(i->path(), new_path / i->leaf(), ec);
|
recursive_copy(i->path(), new_path / i->leaf(), ec);
|
||||||
|
#else
|
||||||
|
recursive_copy(i->path(), new_path / i->filename(), ec);
|
||||||
|
#endif
|
||||||
if (ec) return;
|
if (ec) return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -385,7 +385,11 @@ namespace libtorrent
|
|||||||
{
|
{
|
||||||
name = tmp.leaf();
|
name = tmp.leaf();
|
||||||
}
|
}
|
||||||
|
#if BOOST_VERSION < 103600
|
||||||
else if (tmp.has_branch_path())
|
else if (tmp.has_branch_path())
|
||||||
|
#else
|
||||||
|
else if (tmp.has_parent_path())
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
fs::path p;
|
fs::path p;
|
||||||
for (fs::path::iterator i = tmp.begin()
|
for (fs::path::iterator i = tmp.begin()
|
||||||
|
@ -339,7 +339,7 @@ void upnp::on_reply(udp::endpoint const& from, char* buffer
|
|||||||
{
|
{
|
||||||
m_log << time_now_string() << " <== (" << from << ") UPnP device "
|
m_log << time_now_string() << " <== (" << from << ") UPnP device "
|
||||||
"ignored because it's not on our local network ";
|
"ignored because it's not on our local network ";
|
||||||
std::vector<ip_interface> const& net = enum_net_interfaces(m_io_service, ec);
|
std::vector<ip_interface> net = enum_net_interfaces(m_io_service, ec);
|
||||||
for (std::vector<ip_interface>::const_iterator i = net.begin()
|
for (std::vector<ip_interface>::const_iterator i = net.begin()
|
||||||
, end(net.end()); i != end; ++i)
|
, end(net.end()); i != end; ++i)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user