in order to support SSL over uTP, the utp_socket manager either needs to be able to receive packets on multiple ports, or we need to peek into the first few bytes the payload stream of a socket to determine whether or not it's an SSL connection. (The former is simpler but won't do as well with NATs)
in order to support SSL over uTP, the utp_socket manager either
needs to be able to receive packets on multiple ports, or we need to
peek into the first few bytes the payload stream of a socket to determine
@@ -80,7 +80,7 @@ do as well with NATs)
if (added_request)
{
peers_with_requests.insert(peers_with_requests.begin(), &c);
if (i->first_requested == min_time()) i->first_requested = now;
@@ -805,11 +805,11 @@ is kind of expensive, it would be nice to not do it unnecessarily
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 up to the highest written piece in each file
make this depend on the error and on the filesystem the
+
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 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
-up to the highest written piece in each file
../src/torrent.cpp:1161
if (c) c->disconnect(errors::no_memory);
+up to the highest written piece in each file
../src/torrent.cpp:1158
if (c) c->disconnect(errors::no_memory);
return;
}
@@ -860,8 +860,8 @@ up to the highest written piece in each file
move 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:3325
for (std::vector<range>::iterator i = m_payloads.begin();
i != m_payloads.end(); ++i)
{
i->start -= bytes_transferred;
@@ -1814,58 +1814,7 @@ all completed disk operations
recalculate all connect candidates for all torrents
recalculate all connect candidates for all torrents
../src/session_impl.cpp:1943
m_upload_rate.close();
// #error closing the udp socket here means that
// the uTP connections cannot be closed gracefully
@@ -2019,7 +1968,7 @@ override at a time
have 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:3394
// --------------------------------------------------------------
if (!m_paused) m_auto_manage_time_scaler--;
if (m_auto_manage_time_scaler < 0)
{
@@ -2070,7 +2019,7 @@ override at a time
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
make this more generic to not just work if files have been
+
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
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 (;;)
{
@@ -2464,7 +2413,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)
{
-
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
what if file_base is used to merge several virtual files
+
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
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
@@ -2517,12 +2466,12 @@ 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).
-
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) 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
+
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) 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)
should be accepted automatically, given preverified is true. The leaf certificate
-need to be verified to make sure its DN matches the info-hash
../src/torrent.cpp:1362
if (pp) p->add_extension(pp);
+need to be verified to make sure its DN matches the info-hash
../src/torrent.cpp:1359
if (pp) p->add_extension(pp);
}
// if files are checked for this torrent, call the extension
@@ -2573,12 +2522,12 @@ 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;
-
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 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
+
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 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
and in the disk thread, since they both have their own mapped files structures
-which are kept in sync
../src/torrent.cpp:5171
if (m_seed_mode) m_verified.resize(m_torrent_file->num_pieces(), false);
+which are kept in sync
../src/torrent.cpp:5177
if (m_seed_mode) m_verified.resize(m_torrent_file->num_pieces(), false);
super_seeding(rd.dict_find_int_value("super_seeding", 0));
m_last_scrape = rd.dict_find_int_value("last_scrape", 0);
@@ -2629,12 +2578,12 @@ which are kept in sync
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 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 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
all the pieces. This is low priority since almost
-no one uses merkle torrents
../src/torrent.cpp:5307
add_web_seed(url, web_seed_entry::http_seed);
+no one uses merkle torrents
../src/torrent.cpp:5313
add_web_seed(url, web_seed_entry::http_seed);
}
}
@@ -2685,9 +2634,9 @@ no one uses merkle torrents
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
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
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
go through the pieces we have and count the total number
+
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
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:8037
}
+it num_interested == 0, we need to pick a new piece
../src/torrent.cpp:8048
}
rarest_pieces.clear();
rarest_rarity = pp.peer_count;
@@ -2792,7 +2741,7 @@ it num_interested == 0, we need to pick a new piece
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
it would be more efficient to not use a string here.
+
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
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
}
@@ -2845,7 +2794,7 @@ with actual strings. For example i2p trackers
../src/udp_tracker_connect
{
restart_read_timeout();
int action = detail::read_int32(buf);
-
include 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;
@@ -3102,7 +3051,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
-