diff --git a/docs/index.html b/docs/index.html index 590d8d14c..628034294 100644 --- a/docs/index.html +++ b/docs/index.html @@ -116,7 +116,7 @@ to the author of the library by including the libtorrent license in your software or documentation.

It is however greatly appreciated if additional features are contributed back to the open source project. Patches can be emailed to the mailing -list or posted to the bug tracker.

+list or posted to the bug tracker.

Acknowledgements

diff --git a/docs/manual-ref.html b/docs/manual-ref.html index da5e6f999..1403dd920 100644 --- a/docs/manual-ref.html +++ b/docs/manual-ref.html @@ -3,7 +3,7 @@ - + libtorrent API Documentation diff --git a/docs/reference-Alerts.html b/docs/reference-Alerts.html index f3d7c0213..a82d764e5 100644 --- a/docs/reference-Alerts.html +++ b/docs/reference-Alerts.html @@ -3,7 +3,7 @@ - + Alerts diff --git a/docs/reference-Bencoding.html b/docs/reference-Bencoding.html index bc0a5aa8f..31bad560d 100644 --- a/docs/reference-Bencoding.html +++ b/docs/reference-Bencoding.html @@ -3,7 +3,7 @@ - + Bencoding diff --git a/docs/reference-Core.html b/docs/reference-Core.html index 5cb4141e1..ddae65b2d 100644 --- a/docs/reference-Core.html +++ b/docs/reference-Core.html @@ -3,7 +3,7 @@ - + Core diff --git a/docs/reference-Create_Torrents.html b/docs/reference-Create_Torrents.html index 5533b97b8..1fc1fd037 100644 --- a/docs/reference-Create_Torrents.html +++ b/docs/reference-Create_Torrents.html @@ -3,7 +3,7 @@ - + Create Torrents diff --git a/docs/reference-Custom_Storage.html b/docs/reference-Custom_Storage.html index f266d2142..e78659080 100644 --- a/docs/reference-Custom_Storage.html +++ b/docs/reference-Custom_Storage.html @@ -3,7 +3,7 @@ - + Custom Storage diff --git a/docs/reference-Error_Codes.html b/docs/reference-Error_Codes.html index b6615601e..cd5c08d3d 100644 --- a/docs/reference-Error_Codes.html +++ b/docs/reference-Error_Codes.html @@ -3,7 +3,7 @@ - + Error Codes diff --git a/docs/reference-Filter.html b/docs/reference-Filter.html index 12f8296f7..28479b06e 100644 --- a/docs/reference-Filter.html +++ b/docs/reference-Filter.html @@ -3,7 +3,7 @@ - + Filter diff --git a/docs/reference-Plugins.html b/docs/reference-Plugins.html index 54815373a..cb4fbfd1b 100644 --- a/docs/reference-Plugins.html +++ b/docs/reference-Plugins.html @@ -3,7 +3,7 @@ - + diff --git a/docs/reference-RSS.html b/docs/reference-RSS.html index d3d57f603..6cbbf93e4 100644 --- a/docs/reference-RSS.html +++ b/docs/reference-RSS.html @@ -3,7 +3,7 @@ - + RSS diff --git a/docs/reference-Session.html b/docs/reference-Session.html index 32c2905f2..4940049d1 100644 --- a/docs/reference-Session.html +++ b/docs/reference-Session.html @@ -3,7 +3,7 @@ - + Session diff --git a/docs/reference-Settings.html b/docs/reference-Settings.html index 3ef8c3a76..b980bb426 100644 --- a/docs/reference-Settings.html +++ b/docs/reference-Settings.html @@ -3,7 +3,7 @@ - + Settings diff --git a/docs/reference-Storage.html b/docs/reference-Storage.html index 0affffe63..008b27feb 100644 --- a/docs/reference-Storage.html +++ b/docs/reference-Storage.html @@ -3,7 +3,7 @@ - + Storage diff --git a/docs/reference-String.html b/docs/reference-String.html index 815d46090..4541668e8 100644 --- a/docs/reference-String.html +++ b/docs/reference-String.html @@ -3,7 +3,7 @@ - + String diff --git a/docs/reference-Time.html b/docs/reference-Time.html index ca62d9aa1..f3bac0b27 100644 --- a/docs/reference-Time.html +++ b/docs/reference-Time.html @@ -3,7 +3,7 @@ - + Time diff --git a/docs/reference-Utility.html b/docs/reference-Utility.html index 544251362..61f4d5961 100644 --- a/docs/reference-Utility.html +++ b/docs/reference-Utility.html @@ -3,7 +3,7 @@ - + Utility diff --git a/docs/reference.html b/docs/reference.html index 3e3c2cee4..da6149288 100644 --- a/docs/reference.html +++ b/docs/reference.html @@ -3,7 +3,7 @@ - + libtorrent reference documentation diff --git a/docs/todo.html b/docs/todo.html index b973ac99c..c9ee3ae51 100644 --- a/docs/todo.html +++ b/docs/todo.html @@ -21,7 +21,7 @@

libtorrent todo-list

-4 important +3 important 5 relevant 15 feasible 40 notes @@ -235,7 +235,7 @@ when it doesn't have any of the file do the following

../src/web_peer_co { // we should not try this server again. t->remove_web_seed(this); -relevance 3../src/kademlia/node.cpp:328if uTP is enabled, we should say "implied_port": 1

if uTP is enabled, we should say "implied_port": 1

../src/kademlia/node.cpp:328

			, end(v.end()); i != end; ++i)
+
relevance 3../src/kademlia/node.cpp:327if uTP is enabled, we should say "implied_port": 1

if uTP is enabled, we should say "implied_port": 1

../src/kademlia/node.cpp:327

			, end(v.end()); i != end; ++i)
 		{
 #ifdef TORRENT_DHT_VERBOSE_LOGGING
 			TORRENT_LOG(node) << "  announce-distance: " << (160 - distance_exp(ih, i->first.id));
@@ -286,59 +286,7 @@ void node_impl::add_node(udp::endpoint node)
 #endif
 	entry e;
 	e["y"] = "q";
-
relevance 3../include/libtorrent/kademlia/find_data.hpp:60rename this class to get_peers, since that's what it does find_data is an unnecessarily generic name

rename this class to get_peers, since that's what it does -find_data is an unnecessarily generic name

../include/libtorrent/kademlia/find_data.hpp:60

#include <libtorrent/kademlia/node_id.hpp>
-#include <libtorrent/kademlia/routing_table.hpp>
-#include <libtorrent/kademlia/rpc_manager.hpp>
-#include <libtorrent/kademlia/observer.hpp>
-#include <libtorrent/kademlia/msg.hpp>
-
-#include <boost/optional.hpp>
-#include <boost/function/function1.hpp>
-#include <boost/function/function2.hpp>
-
-namespace libtorrent { namespace dht
-{
-
-typedef std::vector<char> packet_t;
-
-class rpc_manager;
-class node_impl;
-
-// -------- find data -----------
-
-
struct find_data : traversal_algorithm -
{ -public: - typedef boost::function<void(std::vector<tcp::endpoint> const&)> data_callback; - typedef boost::function<void(std::vector<std::pair<node_entry, std::string> > const&, bool)> nodes_callback; - - void got_peers(std::vector<tcp::endpoint> const& peers); - void got_write_token(node_id const& n, std::string const& write_token) - { m_write_tokens[n] = write_token; } - - find_data(node_impl& node, node_id target - , data_callback const& dcallback - , nodes_callback const& ncallback - , bool noseeds); - - virtual void start(); - - virtual char const* name() const; - - node_id const target() const { return m_target; } - -protected: - - virtual void done(); - observer_ptr new_observer(void* ptr, udp::endpoint const& ep - , node_id const& id); - virtual bool invoke(observer_ptr o); - - data_callback m_data_callback; - nodes_callback m_nodes_callback; - std::map<node_id, std::string> m_write_tokens; -
relevance 2../src/torrent.cpp:8258will pick_pieces ever return an empty set?

will pick_pieces ever return an empty set?

../src/torrent.cpp:8258

				if (added_request)
+
relevance 2../src/torrent.cpp:8258will pick_pieces ever return an empty set?

will pick_pieces ever return an empty set?

../src/torrent.cpp:8258

				if (added_request)
 				{
 					peers_with_requests.insert(peers_with_requests.begin(), &c);
 					if (i->first_requested == min_time()) i->first_requested = now;
@@ -389,7 +337,7 @@ protected:
 	void torrent::remove_web_seed(std::string const& url, web_seed_entry::type_t type)
 	{
 		std::list<web_seed_entry>::iterator i = std::find_if(m_web_seeds.begin(), m_web_seeds.end()
-
relevance 2../src/utp_stream.cpp:1862we might want to do something else here as well, to resend the packet immediately without it being an MTU probe

we might want to do something else here +relevance 2../src/utp_stream.cpp:1862we might want to do something else here as well, to resend the packet immediately without it being an MTU probe

we might want to do something else here as well, to resend the packet immediately without it being an MTU probe

../src/utp_stream.cpp:1862

//	if ((rand() % 100) > 0)
 #endif
@@ -442,7 +390,7 @@ it being an MTU probe

../src/utp_stream.cpp:1862

relevance 2../src/utp_stream.cpp:2505sequence number, source IP and connection ID should be verified before accepting a reset packet

sequence number, source IP and connection ID should be +

relevance 2../src/utp_stream.cpp:2505sequence number, source IP and connection ID should be verified before accepting a reset packet

sequence number, source IP and connection ID should be verified before accepting a reset packet

../src/utp_stream.cpp:2505

		m_reply_micro = boost::uint32_t(total_microseconds(receive_time - min_time()))
 			- ph->timestamp_microseconds;
 		boost::uint32_t prev_base = m_their_delay_hist.initialized() ? m_their_delay_hist.base() : 0;
@@ -494,7 +442,7 @@ verified before accepting a reset packet

../src/utp_stream.cpp:2505

, this, int(ph->ack_nr), m_seq_nr); m_sm->inc_stats_counter(utp_socket_manager::redundant_pkts_in); return true; -
relevance 2../src/web_peer_connection.cpp:546create a mapping of file-index to redirection URLs. Use that to form URLs instead. Support to reconnect to a new server without destructing this peer_connection

create a mapping of file-index to redirection URLs. Use that to form URLs instead. Support to reconnect to a new server without destructing this peer_connection

../src/web_peer_connection.cpp:546

						t->remove_web_seed(this);
+
relevance 2../src/web_peer_connection.cpp:546create a mapping of file-index to redirection URLs. Use that to form URLs instead. Support to reconnect to a new server without destructing this peer_connection

create a mapping of file-index to redirection URLs. Use that to form URLs instead. Support to reconnect to a new server without destructing this peer_connection

../src/web_peer_connection.cpp:546

						t->remove_web_seed(this);
 						disconnect(errors::missing_location, 2);
 #ifdef TORRENT_DEBUG
 						TORRENT_ASSERT(m_statistics.last_payload_downloaded()
@@ -545,14 +493,14 @@ verified before accepting a reset packet

../src/utp_stream.cpp:2505

return; } -
relevance 2../src/kademlia/node.cpp:69make this configurable in dht_settings

make this configurable in dht_settings

../src/kademlia/node.cpp:69

#include "libtorrent/kademlia/routing_table.hpp"
+
relevance 2../src/kademlia/node.cpp:68make this configurable in dht_settings

make this configurable in dht_settings

../src/kademlia/node.cpp:68

#include "libtorrent/kademlia/rpc_manager.hpp"
+#include "libtorrent/kademlia/routing_table.hpp"
 #include "libtorrent/kademlia/node.hpp"
-#include <libtorrent/kademlia/dht_observer.hpp>
+#include "libtorrent/kademlia/dht_observer.hpp"
 
 #include "libtorrent/kademlia/refresh.hpp"
-#include "libtorrent/kademlia/find_data.hpp"
-
-#include "ed25519.h"
+#include "libtorrent/kademlia/get_peers.hpp"
+#include "libtorrent/kademlia/get_item.hpp"
 
 #ifdef TORRENT_USE_VALGRIND
 #include <valgrind/memcheck.h>
@@ -596,7 +544,7 @@ void purge_peers(std::set<peer_entry>& peers)
 
 void nop() {}
 
-
relevance 1../src/http_seed_connection.cpp:117in chunked encoding mode, this assert won't hold. the chunk headers should be subtracted from the receive_buffer_size

in chunked encoding mode, this assert won't hold. +

relevance 1../src/http_seed_connection.cpp:117in chunked encoding mode, this assert won't hold. the chunk headers should be subtracted from the receive_buffer_size

in chunked encoding mode, this assert won't hold. the chunk headers should be subtracted from the receive_buffer_size

../src/http_seed_connection.cpp:117

	boost::optional<piece_block_progress>
 	http_seed_connection::downloading_piece_progress() const
 	{
@@ -648,7 +596,7 @@ the chunk headers should be subtracted from the receive_buffer_size

../s std::string request; request.reserve(400); -

relevance 1../src/peer_connection.cpp:2570peers should really be corked/uncorked outside of all completed disk operations

peers should really be corked/uncorked outside of +relevance 1../src/peer_connection.cpp:2570peers should really be corked/uncorked outside of all completed disk operations

peers should really be corked/uncorked outside of all completed disk operations

../src/peer_connection.cpp:2570

		}
 
 		if (is_disconnecting()) return;
@@ -700,7 +648,7 @@ all completed disk operations

../src/peer_connection.cpp:2570

relevance 1../src/session_impl.cpp:5553report the proper address of the router as the source IP of this understanding of our external address, instead of the empty address

report the proper address of the router as the source IP of +

relevance 1../src/session_impl.cpp:5553report the proper address of the router as the source IP of this understanding of our external address, instead of the empty address

report the proper address of the router as the source IP of this understanding of our external address, instead of the empty address

../src/session_impl.cpp:5553

	void session_impl::on_port_mapping(int mapping, address const& ip, int port
 		, error_code const& ec, int map_transport)
 	{
@@ -752,7 +700,7 @@ this understanding of our external address, instead of the empty address

relevance 1../src/session_impl.cpp:5763report errors as alerts

report errors as alerts

../src/session_impl.cpp:5763

	}
+
relevance 1../src/session_impl.cpp:5763report errors as alerts

report errors as alerts

../src/session_impl.cpp:5763

	}
 
 	void session_impl::add_dht_router(std::pair<std::string, int> const& node)
 	{
@@ -803,7 +751,7 @@ this understanding of our external address, instead of the empty address

relevance 1../src/session_impl.cpp:6234we only need to do this if our global IPv4 address has changed since the DHT (currently) only supports IPv4. Since restarting the DHT is kind of expensive, it would be nice to not do it unnecessarily

we only need to do this if our global IPv4 address has changed +

relevance 1../src/session_impl.cpp:6234we only need to do this if our global IPv4 address has changed since the DHT (currently) only supports IPv4. Since restarting the DHT is kind of expensive, it would be nice to not do it unnecessarily

we only need to do this if our global IPv4 address has changed since the DHT (currently) only supports IPv4. Since restarting the DHT is kind of expensive, it would be nice to not do it unnecessarily

../src/session_impl.cpp:6234

	void session_impl::set_external_address(address const& ip
 		, int source_type, address const& source)
@@ -856,7 +804,7 @@ is kind of expensive, it would be nice to not do it unnecessarily

../src #ifdef TORRENT_DISK_STATS TORRENT_ASSERT(m_buffer_allocations >= 0); -

relevance 1../src/torrent.cpp:1043make this depend on the error and on the filesystem the files are being downloaded to. If the error is no_space_left_on_device and the filesystem doesn't support sparse files, only zero the priorities of the pieces that are at the tails of all files, leaving everything up to the highest written piece in each file

make this depend on the error and on the filesystem the +

relevance 1../src/torrent.cpp:1043make this depend on the error and on the filesystem the files are being downloaded to. If the error is no_space_left_on_device and the filesystem doesn't support sparse files, only zero the priorities of the pieces that are at the tails of all files, leaving everything up to the highest written piece in each file

make this depend on the error and on the filesystem the files are being downloaded to. If the error is no_space_left_on_device and the filesystem doesn't support sparse files, only zero the priorities of the pieces that are at the tails of all files, leaving everything @@ -911,7 +859,7 @@ up to the highest written piece in each file

../src/torrent.cpp:1043

relevance 1../src/torrent.cpp:5330save the send_stats state instead of throwing them away it may pose an issue when downgrading though

save the send_stats state instead of throwing them away +

relevance 1../src/torrent.cpp:5330save the send_stats state instead of throwing them away it may pose an issue when downgrading though

save the send_stats state instead of throwing them away it may pose an issue when downgrading though

../src/torrent.cpp:5330

						? (1 << k) : 0;
 					bitmask.append(1, v);
 					TORRENT_ASSERT(bits == 8 || j == num_bitmask_bytes - 1);
@@ -963,7 +911,7 @@ it may pose an issue when downgrading though

../src/torrent.cpp:5330

relevance 1../src/torrent.cpp:6236should disconnect all peers that have the pieces we have not just seeds. It would be pretty expensive to check all pieces for all peers though

should disconnect all peers that have the pieces we have +

relevance 1../src/torrent.cpp:6236should disconnect all peers that have the pieces we have not just seeds. It would be pretty expensive to check all pieces for all peers though

should disconnect all peers that have the pieces we have not just seeds. It would be pretty expensive to check all pieces for all peers though

../src/torrent.cpp:6236

		TORRENT_ASSERT(m_state != torrent_status::finished && m_state != torrent_status::seeding);
 
@@ -1016,7 +964,7 @@ for all peers though

../src/torrent.cpp:6236

relevance 1../src/torrent_info.cpp:181we might save constructing a std::string if this would take a char const* instead

we might save constructing a std::string if this would take a char const* instead

../src/torrent_info.cpp:181

			{
+
relevance 1../src/torrent_info.cpp:181we might save constructing a std::string if this would take a char const* instead

we might save constructing a std::string if this would take a char const* instead

../src/torrent_info.cpp:181

			{
 				tmp_path += i[0];
 				tmp_path += i[1];
 				tmp_path += i[2];
@@ -1067,7 +1015,7 @@ for all peers though

../src/torrent.cpp:6236

relevance 1../src/torrent_info.cpp:401this logic should be a separate step done once the torrent is loaded, and the original filenames should be preserved!

this logic should be a separate step +

relevance 1../src/torrent_info.cpp:401this logic should be a separate step done once the torrent is loaded, and the original filenames should be preserved!

this logic should be a separate step done once the torrent is loaded, and the original filenames should be preserved!

../src/torrent_info.cpp:401

	
 			while (*s1 != 0 || *s2 != 0)
@@ -1120,7 +1068,7 @@ filenames should be preserved!

../src/torrent_info.cpp:401

relevance 1../src/torrent_info.cpp:437once the filename renaming is removed from here this check can be removed as well

once the filename renaming is removed from here +

relevance 1../src/torrent_info.cpp:437once the filename renaming is removed from here this check can be removed as well

once the filename renaming is removed from here this check can be removed as well

../src/torrent_info.cpp:437

			// increase the counter
 			int cnt = 0;
 			if (!files.insert(e.path).second)
@@ -1172,7 +1120,7 @@ this check can be removed as well

../src/torrent_info.cpp:437

relevance 1../src/kademlia/node.cpp:782find_node should write directly to the response entry

find_node should write directly to the response entry

../src/kademlia/node.cpp:782

		{
+
relevance 1../src/kademlia/node.cpp:793find_node should write directly to the response entry

find_node should write directly to the response entry

../src/kademlia/node.cpp:793

		{
 			TORRENT_LOG(node) << " values: " << reply["values"].list().size();
 		}
 #endif
@@ -1223,7 +1171,7 @@ this check can be removed as well

../src/torrent_info.cpp:437

relevance 1../include/libtorrent/ip_voter.hpp:100instead, have one instance per possible subnet, global IPv4, global IPv6, loopback, 192.168.x.x, 10.x.x.x, etc.

instead, have one instance per possible subnet, global IPv4, global IPv6, loopback, 192.168.x.x, 10.x.x.x, etc.

../include/libtorrent/ip_voter.hpp:100

		bloom_filter<32> m_external_address_voters;
+
relevance 1../include/libtorrent/ip_voter.hpp:100instead, have one instance per possible subnet, global IPv4, global IPv6, loopback, 192.168.x.x, 10.x.x.x, etc.

instead, have one instance per possible subnet, global IPv4, global IPv6, loopback, 192.168.x.x, 10.x.x.x, etc.

../include/libtorrent/ip_voter.hpp:100

		bloom_filter<32> m_external_address_voters;
 		std::vector<external_ip_t> m_external_addresses;
 		address m_external_address;
 	};
@@ -1250,7 +1198,7 @@ this check can be removed as well

../src/torrent_info.cpp:437

relevance 1../include/libtorrent/utp_stream.hpp:378implement blocking write. Low priority since it's not used (yet)

implement blocking write. Low priority since it's not used (yet)

../include/libtorrent/utp_stream.hpp:378

		for (typename Mutable_Buffers::const_iterator i = buffers.begin()
+
relevance 1../include/libtorrent/utp_stream.hpp:378implement blocking write. Low priority since it's not used (yet)

implement blocking write. Low priority since it's not used (yet)

../include/libtorrent/utp_stream.hpp:378

		for (typename Mutable_Buffers::const_iterator i = buffers.begin()
 			, end(buffers.end()); i != end; ++i)
 		{
 			using asio::buffer_cast;
@@ -1301,7 +1249,7 @@ this check can be removed as well

../src/torrent_info.cpp:437

relevance 1../include/libtorrent/web_peer_connection.hpp:126if we make this be a disk_buffer_holder instead we would save a copy sometimes use allocate_disk_receive_buffer and release_disk_receive_buffer

if we make this be a disk_buffer_holder instead +

relevance 1../include/libtorrent/web_peer_connection.hpp:126if we make this be a disk_buffer_holder instead we would save a copy sometimes use allocate_disk_receive_buffer and release_disk_receive_buffer

if we make this be a disk_buffer_holder instead we would save a copy sometimes use allocate_disk_receive_buffer and release_disk_receive_buffer

../include/libtorrent/web_peer_connection.hpp:126

 		bool maybe_harvest_block();
@@ -1354,7 +1302,7 @@ use allocate_disk_receive_buffer and release_disk_receive_buffer

../incl }; } -

relevance 0../src/bt_peer_connection.cpp:625this could be optimized using knuth morris pratt

this could be optimized using knuth morris pratt

../src/bt_peer_connection.cpp:625

		{
+
relevance 0../src/bt_peer_connection.cpp:625this could be optimized using knuth morris pratt

this could be optimized using knuth morris pratt

../src/bt_peer_connection.cpp:625

		{
 			disconnect(errors::no_memory);
 			return;
 		}
@@ -1405,7 +1353,7 @@ use allocate_disk_receive_buffer and release_disk_receive_buffer

../incl // } // no complete sync -

relevance 0../src/bt_peer_connection.cpp:2089if we're finished, send upload_only message

if we're finished, send upload_only message

../src/bt_peer_connection.cpp:2089

			if (msg[5 + k / 8] & (0x80 >> (k % 8))) bitfield_string[k] = '1';
+
relevance 0../src/bt_peer_connection.cpp:2089if we're finished, send upload_only message

if we're finished, send upload_only message

../src/bt_peer_connection.cpp:2089

			if (msg[5 + k / 8] & (0x80 >> (k % 8))) bitfield_string[k] = '1';
 			else bitfield_string[k] = '0';
 		}
 		peer_log("==> BITFIELD [ %s ]", bitfield_string.c_str());
@@ -1456,7 +1404,7 @@ use allocate_disk_receive_buffer and release_disk_receive_buffer

../incl std::back_insert_iterator<std::string> out(remote_address); detail::write_address(remote().address(), out); handshake["yourip"] = remote_address; -

relevance 0../src/bt_peer_connection.cpp:3329move the erasing into the loop above remove all payload ranges that has been sent

move the erasing into the loop above +

relevance 0../src/bt_peer_connection.cpp:3329move the erasing into the loop above remove all payload ranges that has been sent

move the erasing into the loop above remove all payload ranges that has been sent

../src/bt_peer_connection.cpp:3329

			for (std::vector<range>::iterator i = m_payloads.begin();
 				i != m_payloads.end(); ++i)
 			{
@@ -1508,7 +1456,7 @@ remove all payload ranges that has been sent

../src/bt_peer_connection.c TORRENT_ASSERT(m_sent_handshake); } -

relevance 0../src/file.cpp:1370is there any way to pre-fetch data from a file on windows?

is there any way to pre-fetch data from a file on windows?

../src/file.cpp:1370

+
relevance 0../src/file.cpp:1370is there any way to pre-fetch data from a file on windows?

is there any way to pre-fetch data from a file on windows?

../src/file.cpp:1370

 	void file::init_file()
 	{
 		if (m_page_size != 0) return;
@@ -1559,7 +1507,7 @@ remove all payload ranges that has been sent

../src/bt_peer_connection.c #ifdef TORRENT_DEBUG if (m_open_mode & no_buffer) { -

relevance 0../src/http_tracker_connection.cpp:99support authentication (i.e. user name and password) in the URL

support authentication (i.e. user name and password) in the URL

../src/http_tracker_connection.cpp:99

		, aux::session_impl const& ses
+
relevance 0../src/http_tracker_connection.cpp:99support authentication (i.e. user name and password) in the URL

support authentication (i.e. user name and password) in the URL

../src/http_tracker_connection.cpp:99

		, aux::session_impl const& ses
 		, proxy_settings const& ps
 		, std::string const& auth
 #if TORRENT_USE_I2P
@@ -1610,7 +1558,7 @@ remove all payload ranges that has been sent

../src/bt_peer_connection.c if (arguments_start != std::string::npos) url += "&"; else -

relevance 0../src/i2p_stream.cpp:204move this to proxy_base and use it in all proxies

move this to proxy_base and use it in all proxies

../src/i2p_stream.cpp:204

+
relevance 0../src/i2p_stream.cpp:204move this to proxy_base and use it in all proxies

move this to proxy_base and use it in all proxies

../src/i2p_stream.cpp:204

 	i2p_stream::i2p_stream(io_service& io_service)
 		: proxy_base(io_service)
 		, m_id(0)
@@ -1661,7 +1609,7 @@ remove all payload ranges that has been sent

../src/bt_peer_connection.c void i2p_stream::connected(error_code const& e, boost::shared_ptr<handler_type> h) { TORRENT_ASSERT(m_magic == 0x1337); -

relevance 0../src/packet_buffer.cpp:176use compare_less_wrap for this comparison as well

use compare_less_wrap for this comparison as well

../src/packet_buffer.cpp:176

		while (new_size < size)
+
relevance 0../src/packet_buffer.cpp:176use compare_less_wrap for this comparison as well

use compare_less_wrap for this comparison as well

../src/packet_buffer.cpp:176

		while (new_size < size)
 			new_size <<= 1;
 
 		void** new_storage = (void**)malloc(sizeof(void*) * new_size);
@@ -1712,7 +1660,7 @@ remove all payload ranges that has been sent

../src/bt_peer_connection.c if (m_storage[m_last & mask]) break; ++m_last; m_last &= 0xffff; -

relevance 0../src/peer_connection.cpp:2733this might need something more so that once we have the metadata we can construct a full bitfield

this might need something more +

relevance 0../src/peer_connection.cpp:2733this might need something more so that once we have the metadata we can construct a full bitfield

this might need something more so that once we have the metadata we can construct a full bitfield

../src/peer_connection.cpp:2733

 #ifdef TORRENT_VERBOSE_LOGGING
@@ -1765,7 +1713,7 @@ we can construct a full bitfield

../src/peer_connection.cpp:2733

relevance 0../src/peer_connection.cpp:2864sort the allowed fast set in priority order

sort the allowed fast set in priority order

../src/peer_connection.cpp:2864

		// this piece index later
+
relevance 0../src/peer_connection.cpp:2864sort the allowed fast set in priority order

sort the allowed fast set in priority order

../src/peer_connection.cpp:2864

		// this piece index later
 		m_allowed_fast.push_back(index);
 
 		// if the peer has the piece and we want
@@ -1816,7 +1764,7 @@ we can construct a full bitfield

../src/peer_connection.cpp:2733

relevance 0../src/peer_connection.cpp:4584peers should really be corked/uncorked outside of all completed disk operations

peers should really be corked/uncorked outside of +

relevance 0../src/peer_connection.cpp:4584peers should really be corked/uncorked outside of all completed disk operations

peers should really be corked/uncorked outside of all completed disk operations

../src/peer_connection.cpp:4584

				// this means we're in seed mode and we haven't yet
 				// verified this piece (r.piece)
 				t->filesystem().async_read_and_hash(r, boost::bind(&peer_connection::on_disk_read_complete
@@ -1868,7 +1816,7 @@ all completed disk operations

../src/peer_connection.cpp:4584

relevance 0../src/policy.cpp:857only allow _one_ connection to use this override at a time

only allow _one_ connection to use this +

relevance 0../src/policy.cpp:857only allow _one_ connection to use this override at a time

only allow _one_ connection to use this override at a time

../src/policy.cpp:857

				" external: " << external.external_address(m_peers[candidate]->address()) <<
 				" t: " << (session_time - m_peers[candidate]->last_connected) <<
 				" ]\n";
@@ -1920,7 +1868,7 @@ override at a time

../src/policy.cpp:857

relevance 0../src/policy.cpp:1902how do we deal with our external address changing? Pass in a force-update maybe? and keep a version number in policy

how do we deal with our external address changing? Pass in a force-update maybe? and keep a version number in policy

../src/policy.cpp:1902

#endif
+
relevance 0../src/policy.cpp:1902how do we deal with our external address changing? Pass in a force-update maybe? and keep a version number in policy

how do we deal with our external address changing? Pass in a force-update maybe? and keep a version number in policy

../src/policy.cpp:1902

#endif
 		, on_parole(false)
 		, banned(false)
 #ifndef TORRENT_DISABLE_DHT
@@ -1971,7 +1919,7 @@ override at a time

../src/policy.cpp:857

relevance 0../src/session_impl.cpp:1764recalculate all connect candidates for all torrents

recalculate all connect candidates for all torrents

../src/session_impl.cpp:1764

		// #error closing the udp socket here means that
+
relevance 0../src/session_impl.cpp:1764recalculate all connect candidates for all torrents

recalculate all connect candidates for all torrents

../src/session_impl.cpp:1764

		// #error closing the udp socket here means that
 		// the uTP connections cannot be closed gracefully
 		m_udp_socket.close();
 		m_external_udp_port = 0;
@@ -2022,7 +1970,7 @@ override at a time

../src/policy.cpp:857

relevance 0../src/session_impl.cpp:3227have a separate list for these connections, instead of having to loop through all of them

have a separate list for these connections, instead of having to loop through all of them

../src/session_impl.cpp:3227

		// --------------------------------------------------------------
+
relevance 0../src/session_impl.cpp:3227have a separate list for these connections, instead of having to loop through all of them

have a separate list for these connections, instead of having to loop through all of them

../src/session_impl.cpp:3227

		// --------------------------------------------------------------
 		if (!m_paused) m_auto_manage_time_scaler--;
 		if (m_auto_manage_time_scaler < 0)
 		{
@@ -2073,7 +2021,7 @@ override at a time

../src/policy.cpp:857

relevance 0../src/session_impl.cpp:4317allow extensions to sort torrents for queuing

allow extensions to sort torrents for queuing

../src/session_impl.cpp:4317

			else if (!t->is_paused())
+
relevance 0../src/session_impl.cpp:4317allow extensions to sort torrents for queuing

allow extensions to sort torrents for queuing

../src/session_impl.cpp:4317

			else if (!t->is_paused())
 			{
 				TORRENT_ASSERT(t->m_resume_data_loaded || !t->valid_metadata());
 				--hard_limit;
@@ -2124,7 +2072,7 @@ override at a time

../src/policy.cpp:857

relevance 0../src/session_impl.cpp:4473use a lower limit than m_settings.connections_limit to allocate the to 10% or so of connection slots for incoming connections

use a lower limit than m_settings.connections_limit +

relevance 0../src/session_impl.cpp:4473use a lower limit than m_settings.connections_limit to allocate the to 10% or so of connection slots for incoming connections

use a lower limit than m_settings.connections_limit to allocate the to 10% or so of connection slots for incoming connections

../src/session_impl.cpp:4473

		{
 			if (m_boost_connections > max_connections)
@@ -2177,7 +2125,7 @@ connections

../src/session_impl.cpp:4473

relevance 0../src/session_impl.cpp:4507make this bias configurable

make this bias configurable

../src/session_impl.cpp:4507

relevance 0../src/session_impl.cpp:4508also take average_peers into account, to create a bias for downloading torrents with < average peers

also take average_peers into account, to create a bias for downloading torrents with < average peers

../src/session_impl.cpp:4508

				average_peers = num_downloads_peers / num_downloads;
+
relevance 0../src/session_impl.cpp:4507make this bias configurable

make this bias configurable

../src/session_impl.cpp:4507

relevance 0../src/session_impl.cpp:4508also take average_peers into account, to create a bias for downloading torrents with < average peers

also take average_peers into account, to create a bias for downloading torrents with < average peers

../src/session_impl.cpp:4508

				average_peers = num_downloads_peers / num_downloads;
 
 			if (m_next_connect_torrent == m_torrents.end())
 				m_next_connect_torrent = m_torrents.begin();
@@ -2228,7 +2176,7 @@ connections

../src/session_impl.cpp:4473

relevance 0../src/session_impl.cpp:4652make configurable

make configurable

../src/session_impl.cpp:4652

+
relevance 0../src/session_impl.cpp:4652make configurable

make configurable

../src/session_impl.cpp:4652

 #ifdef TORRENT_DEBUG
 			for (std::vector<peer_connection*>::const_iterator i = peers.begin()
 				, end(peers.end()), prev(peers.end()); i != end; ++i)
@@ -2261,7 +2209,7 @@ connections

../src/session_impl.cpp:4473

relevance 0../src/session_impl.cpp:4666make configurable

make configurable

../src/session_impl.cpp:4666

						>= (*i)->uploaded_in_last_round() * 1000
+
relevance 0../src/session_impl.cpp:4666make configurable

make configurable

../src/session_impl.cpp:4666

						>= (*i)->uploaded_in_last_round() * 1000
 						* (1 + t2->priority()) / total_milliseconds(unchoke_interval));
 				}
 				prev = i;
@@ -2312,7 +2260,7 @@ connections

../src/session_impl.cpp:4473

relevance 0../src/storage.cpp:324if the read fails, set error and exit immediately

if the read fails, set error and exit immediately

../src/storage.cpp:324

			if (m_storage->disk_pool()) block_size = m_storage->disk_pool()->block_size();
+
relevance 0../src/storage.cpp:324if the read fails, set error and exit immediately

if the read fails, set error and exit immediately

../src/storage.cpp:324

			if (m_storage->disk_pool()) block_size = m_storage->disk_pool()->block_size();
 			int size = slot_size;
 			int num_blocks = (size + block_size - 1) / block_size;
 
@@ -2363,7 +2311,7 @@ connections

../src/session_impl.cpp:4473

relevance 0../src/storage.cpp:358if the read fails, set error and exit immediately

if the read fails, set error and exit immediately

../src/storage.cpp:358

					{
+
relevance 0../src/storage.cpp:358if the read fails, set error and exit immediately

if the read fails, set error and exit immediately

../src/storage.cpp:358

					{
 						ph.h.update((char const*)bufs[i].iov_base, bufs[i].iov_len);
 						small_piece_size -= bufs[i].iov_len;
 					}
@@ -2414,7 +2362,7 @@ connections

../src/session_impl.cpp:4473

relevance 0../src/storage.cpp:629make this more generic to not just work if files have been renamed, but also if they have been merged into a single file for instance maybe use the same format as .torrent files and reuse some code from torrent_info

make this more generic to not just work if files have been +

relevance 0../src/storage.cpp:629make this more generic to not just work if files have been renamed, but also if they have been merged into a single file for instance maybe use the same format as .torrent files and reuse some code from torrent_info

make this more generic to not just work if files have been renamed, but also if they have been merged into a single file for instance maybe use the same format as .torrent files and reuse some code from torrent_info

../src/storage.cpp:629

		for (;;)
 		{
@@ -2467,7 +2415,7 @@ maybe use the same format as .torrent files and reuse some code from torrent_inf
 		
 		for (int i = 0; i < file_sizes_ent->list_size(); ++i)
 		{
-
relevance 0../src/storage.cpp:1246what if file_base is used to merge several virtual files into a single physical file? We should probably disable this if file_base is used. This is not a widely used feature though

what if file_base is used to merge several virtual files +

relevance 0../src/storage.cpp:1246what if file_base is used to merge several virtual files into a single physical file? We should probably disable this if file_base is used. This is not a widely used feature though

what if file_base is used to merge several virtual files into a single physical file? We should probably disable this if file_base is used. This is not a widely used feature though

../src/storage.cpp:1246

			int bytes_transferred = 0;
 			// if the file is opened in no_buffer mode, and the
@@ -2520,7 +2468,7 @@ if file_base is used. This is not a widely used feature though

../src/st // makes unaligned requests (and the disk cache is disabled or fully utilized // for write cache). -

relevance 0../src/torrent.cpp:1245is verify_peer_cert called once per certificate in the chain, and this function just tells us which depth we're at right now? If so, the comment makes sense. any certificate that isn't the leaf (i.e. the one presented by the peer) should be accepted automatically, given preverified is true. The leaf certificate need to be verified to make sure its DN matches the info-hash

is verify_peer_cert called once per certificate in the chain, and +

relevance 0../src/torrent.cpp:1245is verify_peer_cert called once per certificate in the chain, and this function just tells us which depth we're at right now? If so, the comment makes sense. any certificate that isn't the leaf (i.e. the one presented by the peer) should be accepted automatically, given preverified is true. The leaf certificate need to be verified to make sure its DN matches the info-hash

is verify_peer_cert called once per certificate in the chain, and this function just tells us which depth we're at right now? If so, the comment makes sense. any certificate that isn't the leaf (i.e. the one presented by the peer) @@ -2576,7 +2524,7 @@ need to be verified to make sure its DN matches the info-hash

../src/tor { #if defined(TORRENT_VERBOSE_LOGGING) || defined(TORRENT_LOGGING) match = true; -

relevance 0../src/torrent.cpp:5063make this more generic to not just work if files have been renamed, but also if they have been merged into a single file for instance maybe use the same format as .torrent files and reuse some code from torrent_info The mapped_files needs to be read both in the network thread and in the disk thread, since they both have their own mapped files structures which are kept in sync

make this more generic to not just work if files have been +

relevance 0../src/torrent.cpp:5063make this more generic to not just work if files have been renamed, but also if they have been merged into a single file for instance maybe use the same format as .torrent files and reuse some code from torrent_info The mapped_files needs to be read both in the network thread and in the disk thread, since they both have their own mapped files structures which are kept in sync

make this more generic to not just work if files have been renamed, but also if they have been merged into a single file for instance maybe use the same format as .torrent files and reuse some code from torrent_info The mapped_files needs to be read both in the network thread @@ -2632,7 +2580,7 @@ which are kept in sync

../src/torrent.cpp:5063

relevance 0../src/torrent.cpp:5199if this is a merkle torrent and we can't restore the tree, we need to wipe all the bits in the have array, but not necessarily we might want to do a full check to see if we have all the pieces. This is low priority since almost no one uses merkle torrents

if this is a merkle torrent and we can't +

relevance 0../src/torrent.cpp:5199if this is a merkle torrent and we can't restore the tree, we need to wipe all the bits in the have array, but not necessarily we might want to do a full check to see if we have all the pieces. This is low priority since almost no one uses merkle torrents

if this is a merkle torrent and we can't restore the tree, we need to wipe all the bits in the have array, but not necessarily we might want to do a full check to see if we have @@ -2688,7 +2636,7 @@ no one uses merkle torrents

../src/torrent.cpp:5199

relevance 0../src/torrent.cpp:5387make this more generic to not just work if files have been renamed, but also if they have been merged into a single file for instance. using file_base

make this more generic to not just work if files have been +

relevance 0../src/torrent.cpp:5387make this more generic to not just work if files have been renamed, but also if they have been merged into a single file for instance. using file_base

make this more generic to not just work if files have been renamed, but also if they have been merged into a single file for instance. using file_base

../src/torrent.cpp:5387

		entry::string_type& pieces = ret["pieces"].string();
 		pieces.resize(m_torrent_file->num_pieces());
@@ -2741,7 +2689,7 @@ using file_base

../src/torrent.cpp:5387

relevance 0../src/torrent.cpp:7937go through the pieces we have and count the total number of downloaders we have. Only count peers that are interested in us since some peers might not send have messages for pieces we have it num_interested == 0, we need to pick a new piece

go through the pieces we have and count the total number +

relevance 0../src/torrent.cpp:7937go through the pieces we have and count the total number of downloaders we have. Only count peers that are interested in us since some peers might not send have messages for pieces we have it num_interested == 0, we need to pick a new piece

go through the pieces we have and count the total number of downloaders we have. Only count peers that are interested in us since some peers might not send have messages for pieces we have it num_interested == 0, we need to pick a new piece

../src/torrent.cpp:7937

			}
@@ -2795,7 +2743,7 @@ it num_interested == 0, we need to pick a new piece

../src/torrent.cpp:7 { m_picker->get_availability(avail_vec); } -

relevance 0../src/udp_tracker_connection.cpp:550it would be more efficient to not use a string here. however, the problem is that some trackers will respond with actual strings. For example i2p trackers

it would be more efficient to not use a string here. +

relevance 0../src/udp_tracker_connection.cpp:550it would be more efficient to not use a string here. however, the problem is that some trackers will respond with actual strings. For example i2p trackers

it would be more efficient to not use a string here. however, the problem is that some trackers will respond with actual strings. For example i2p trackers

../src/udp_tracker_connection.cpp:550

		}
 
@@ -2848,7 +2796,7 @@ with actual strings. For example i2p trackers

../src/udp_tracker_connect { restart_read_timeout(); int action = detail::read_int32(buf); -

relevance 0../src/utp_stream.cpp:1573this loop may not be very efficient

this loop may not be very efficient

../src/utp_stream.cpp:1573

	TORRENT_ASSERT(p->header_size >= sizeof(utp_header) + sack_size + 2);
+
relevance 0../src/utp_stream.cpp:1573this loop may not be very efficient

this loop may not be very efficient

../src/utp_stream.cpp:1573

	TORRENT_ASSERT(p->header_size >= sizeof(utp_header) + sack_size + 2);
 	memmove(ptr, ptr + sack_size + 2, p->size - p->header_size);
 	p->header_size -= sack_size + 2;
 	p->size -= sack_size + 2;
@@ -2899,7 +2847,7 @@ bool utp_socket_impl::send_pkt(int flags)
 		if (sack > 32) sack = 32;
 	}
 
-
relevance 0../src/kademlia/routing_table.cpp:293instad of refreshing a bucket by using find_nodes, ping each node periodically

instad of refreshing a bucket by using find_nodes, +

relevance 0../src/kademlia/routing_table.cpp:293instad of refreshing a bucket by using find_nodes, ping each node periodically

instad of refreshing a bucket by using find_nodes, ping each node periodically

../src/kademlia/routing_table.cpp:293

		os << "]\n";
 	}
 }
@@ -2951,7 +2899,7 @@ bool compare_bucket_refresh(routing_table_node const& lhs, routing_table_nod
 	node_id mask = generate_prefix_mask(num_bits);
 
 	// target = (target & ~mask) | (root & mask)
-
relevance 0../include/libtorrent/config.hpp:326Make this count Unicode characters instead of bytes on windows

Make this count Unicode characters instead of bytes on windows

../include/libtorrent/config.hpp:326

+
relevance 0../include/libtorrent/config.hpp:326Make this count Unicode characters instead of bytes on windows

Make this count Unicode characters instead of bytes on windows

../include/libtorrent/config.hpp:326

 // ==== eCS(OS/2) ===
 #elif defined __OS2__
 #define TORRENT_OS2
@@ -3002,7 +2950,7 @@ bool compare_bucket_refresh(routing_table_node const& lhs, routing_table_nod
 #include <stdarg.h>
 
 // internal
-
relevance 0../include/libtorrent/peer_connection.hpp:729make this private

make this private

../include/libtorrent/peer_connection.hpp:729

		void set_soft_packet_size(int size) { m_soft_packet_size = size; }
+
relevance 0../include/libtorrent/peer_connection.hpp:729make this private

make this private

../include/libtorrent/peer_connection.hpp:729

		void set_soft_packet_size(int size) { m_soft_packet_size = size; }
 
 		// if allow_encrypted is false, and the torrent 'ih' turns out
 		// to be an encrypted torrent (AES-256 encrypted) the peer will
@@ -3053,7 +3001,7 @@ bool compare_bucket_refresh(routing_table_node const& lhs, routing_table_nod
 		// we have choked the upload to the peer
 		bool m_choked:1;
 
-
relevance 0../include/libtorrent/peer_connection.hpp:810make these private as well

make these private as well

../include/libtorrent/peer_connection.hpp:810

+
relevance 0../include/libtorrent/peer_connection.hpp:810make these private as well

make these private as well

../include/libtorrent/peer_connection.hpp:810

 		// when this is set, the peer_connection socket is
 		// corked, similar to the linux TCP feature TCP_CORK.
 		// we won't send anything to the actual socket, just
@@ -3104,7 +3052,7 @@ bool compare_bucket_refresh(routing_table_node const& lhs, routing_table_nod
 		sliding_average<20> m_send_rate;
 
 	private:
-
relevance 0../include/libtorrent/proxy_base.hpp:166it would be nice to remember the bind port and bind once we know where the proxy is m_sock.bind(endpoint, ec);

it would be nice to remember the bind port and bind once we know where the proxy is +

relevance 0../include/libtorrent/proxy_base.hpp:166it would be nice to remember the bind port and bind once we know where the proxy is m_sock.bind(endpoint, ec);

it would be nice to remember the bind port and bind once we know where the proxy is m_sock.bind(endpoint, ec);

../include/libtorrent/proxy_base.hpp:166

	{
 		return m_sock.get_option(opt, ec);
 	}
@@ -3156,7 +3104,7 @@ m_sock.bind(endpoint, ec);

../include/libtorrent/proxy_base.hpp:166

m_sock.close(ec); m_resolver.cancel(); } -
relevance 0../include/libtorrent/stat.hpp:113this is 4 bytes of padding!

this is 4 bytes of padding!

../include/libtorrent/stat.hpp:113

+
relevance 0../include/libtorrent/stat.hpp:113this is 4 bytes of padding!

this is 4 bytes of padding!

../include/libtorrent/stat.hpp:113

 		int counter() const { return m_counter; }
 
 		void clear()
@@ -3207,7 +3155,7 @@ m_sock.bind(endpoint, ec);

../include/libtorrent/proxy_base.hpp:166

#endif } -
relevance 0../include/libtorrent/torrent.hpp:1349there's space for another 2 bits here

there's space for another 2 bits here

../include/libtorrent/torrent.hpp:1349

		// session_impl's m_state_update list, this bit is set
+
relevance 0../include/libtorrent/torrent.hpp:1349there's space for another 2 bits here

there's space for another 2 bits here

../include/libtorrent/torrent.hpp:1349

		// session_impl's m_state_update list, this bit is set
 		// to never add the same torrent twice
 		bool m_in_state_updates:1;
 
@@ -3258,7 +3206,7 @@ m_sock.bind(endpoint, ec);

../include/libtorrent/proxy_base.hpp:166

// if this is true, libtorrent may pause and resume // this torrent depending on queuing rules. Torrents -
relevance 0../include/libtorrent/torrent_info.hpp:123include the number of peers received from this tracker, at last announce

include the number of peers received from this tracker, at last announce

../include/libtorrent/torrent_info.hpp:123

+
relevance 0../include/libtorrent/torrent_info.hpp:123include the number of peers received from this tracker, at last announce

include the number of peers received from this tracker, at last announce

../include/libtorrent/torrent_info.hpp:123

 		// if this tracker failed the last time it was contacted
 		// this error code specifies what error occurred
 		error_code last_error;
@@ -3309,7 +3257,7 @@ m_sock.bind(endpoint, ec);

../include/libtorrent/proxy_base.hpp:166

// flags for the source bitmask, each indicating where // we heard about this tracker enum tracker_source -
relevance 0../include/libtorrent/upnp.hpp:121support using the windows API for UPnP operations as well

support using the windows API for UPnP operations as well

../include/libtorrent/upnp.hpp:121

	{
+
relevance 0../include/libtorrent/upnp.hpp:121support using the windows API for UPnP operations as well

support using the windows API for UPnP operations as well

../include/libtorrent/upnp.hpp:121

	{
 		virtual const char* name() const BOOST_SYSTEM_NOEXCEPT;
 		virtual std::string message(int ev) const BOOST_SYSTEM_NOEXCEPT;
 		virtual boost::system::error_condition default_error_condition(int ev) const BOOST_SYSTEM_NOEXCEPT