Commit Graph

9173 Commits

Author SHA1 Message Date
arvidn f19cca1374 fix infinite loop when parsing certain invalid magnet links 2017-10-11 09:11:58 +02:00
arvidn a9524550d7 don't delete pieces from cache with refcount > 0 2017-10-09 17:48:08 +02:00
Arvid Norberg 830ef0bedd prevent dependency on openssl from leaking outside of libtorrent (libssl and libcrypto should not be a usage requirement). This cleans up most tests to build without having to also link against openssl 2017-10-09 17:15:35 +02:00
Arvid Norberg 75f6b95050 clean up openssl dependency handling in Jamfile 2017-10-09 17:15:35 +02:00
arvidn f080149081 fix parsing of torrents with certain invalid filenames 2017-10-08 15:54:08 +02:00
arvidn 8ba5845643 don't hard-code the paths to find openssl on mac (but default to picking up brew). Add two new jam features, openssl-lib and openssl-include that can be used to specify which openssl to link against 2017-10-08 03:00:02 +02:00
arvidn cdd9f91999 fix leak of torrent_peer objecs (entries in peer_list) 2017-10-07 11:43:42 +02:00
arvidn 4e1c5738a2 back-port openssl API compat patch from master 2017-10-07 01:10:41 +02:00
arvidn ed31664ee3 deduce the second argument to iconv() instead of requiring it to be configured via a macro 2017-10-06 10:52:09 +02:00
arvidn dfabce3854 update build_dist.sh 2017-10-05 02:47:40 +02:00
arvidn 99b19366a9 fix leak of peer_class objects (when setting per-torrent rate limits) 2017-10-03 17:32:49 +02:00
arvidn 85a179de9a remove pointless test 2017-10-03 11:28:06 +02:00
arvidn dffe31ad7e try to link against dbghelp on mingw 2017-10-02 00:18:56 +02:00
arvidn 5f3661aaa2 back port overflow checking from master 2017-10-02 00:02:14 +02:00
arvidn 3255375095 back-port file name sanitization patch to RC_1_1 2017-10-01 16:44:10 +02:00
Andrei Kurushin c8d51689bb backport: fix windows file preallocation issue 2017-09-28 12:53:28 -07:00
arvidn d0067eafe0 fix typo 2017-09-26 09:21:30 -07:00
arvidn 9cad0d8cf2 expose peer class API in python binding 2017-09-24 23:25:20 -07:00
arvidn 08e861cca9 back port aldenml's patch from master to fix brew issue 2017-09-23 09:08:20 -07:00
arvidn 5441874f10 fix integer overflow in whole_pieces_threshold logic 2017-09-23 06:59:13 -07:00
arvidn 7f4566c694 improve share_ratio_limit documentation 2017-09-21 13:05:23 -07:00
arvidn 6cf0bfbe0d fix link in documentation footer 2017-09-21 11:11:56 -07:00
arvidn ddc8711dbe fix issue where peers could be disconnected while iterating over the peer list in the torrent. Specifically while marking peers as not-interesting 2017-09-21 07:26:13 -07:00
arvidn fc4588ad3b bump priority of storage_moved_alert and storage_moved_failed_alert 2017-09-21 05:43:18 +02:00
arvidn 1ddc710be1 fix uTP path MTU discovery issue on windows (DF bit was not set correctly) 2017-09-16 19:56:42 +02:00
arvidn 17d5d34272 fix documemtation of storage_moved_alert 2017-09-16 12:35:35 +02:00
arvidn ccbd6cbcfe remove rss_reader.py, since rss has been reprecated. fix python binding for torrent_handle, to be hashable. update client_test.py to not use deprecated APIs and follow best (libtorrent) practice 2017-09-11 22:28:57 +02:00
Steven Siloti 1cd40ee7e3 python: return torrent handles in alerts by value
This is needed to avoid a dangling reference if the client stores a
reference to the handle.
2017-09-10 08:55:02 +02:00
arvidn c848f6d978 improve some asserts in storage.cpp 2017-09-07 23:00:58 +02:00
arvidn 1280361236 update build docs 2017-09-05 19:45:40 +02:00
arvidn e36b066020 make logging alerts enabled by default in autoconf builds 2017-09-05 09:21:08 +02:00
arvidn 3da7d1d3da fix documentation issue 2017-09-04 16:50:11 +02:00
arvidn 061732ddec bump version 2017-09-04 15:35:45 +02:00
arvidn 37ffe99a19 fix gen_fwd.py to correctly put declarations in the dht namespace that belong there 2017-09-03 12:28:34 +02:00
Steven Siloti 621da10e60 hold an owning reference to storage objects in try_flush_write_blocks
It is possible for all other references to a storage object to be
destroyed while try_flush_write_blocks is running. If the storage is
destroyed then find_piece will crash when trying to re-aquire the
shared_ptr. To prevent this, keep the storage alive by holding a
shared_ptr to it in try_flush_write_blocks.

Normally the fence job when stopping a torrent would prevent the storage
object from being destroyed until all flush jobs are complete.
try_flush_write_blocks can be run after every disk job though so it has
the potential to "stradle the fence".

If the associated torrent does get unloaded then it is expected that
find_piece will return NULL thus causing the entry to be ignored.
2017-08-30 12:45:06 +02:00
Steven Siloti 52ccad23b9 read_piece: handle failure to allocate piece buffer 2017-08-29 12:24:17 +02:00
arvidn 41bfd41cea fix python binding with new boost version 2017-08-25 09:43:01 +02:00
arvidn 1ce4089229 log failures to parse interface and node lists from settings 2017-08-24 07:59:22 +02:00
arvidn fe37884bc6 fix IPv6 tracker support by performing the second announce in more cases 2017-08-19 18:56:51 +02:00
Steven Siloti 73e898e38e disable disk cache pool allocator by default
The pool allocator has known issues with not releasing memory when it should
and is of dubious benefit.

See #2251
2017-08-18 09:39:24 +02:00
arvidn b5fe0f95a2 fix issue in UTF-8 encoding validation 2017-08-16 13:15:19 +02:00
arvidn b70d3efba9 fix infinite loop when parsing torrents whose filenames have zeroes. #2247 2017-08-16 07:21:34 +02:00
arvidn fcb9c7b6f3 fix invalid read in parse_int() in bdecode_node() and lazy_bdecode() 2017-08-15 00:01:37 +02:00
Steven Siloti 50c2aee8ec don't create web seed connections if the torrent is upload only
The fix in 9a63d4696e was imcomplete.
It turns out disconnect_if_redundant decrements the connection count
which unballances the count if we do end up disconnecting the peer.

This change avoids the problem by checking if the torrent is
upload only much sooner, before the connection object is even created.
We still do a redundancy check just-in-case, but it is not expected to
trigger.
2017-08-11 08:16:00 +02:00
arvidn 5f4816f1d8 fix include in http_connection.cpp 2017-08-10 19:47:42 +02:00
arvidn 560ef29276 fix issue with very long tracker- and web seed URLs. Instead of using a fixed length stack allocated request buffer, use a dynamically growing stringstream 2017-08-10 14:01:11 +02:00
arvidn 4e497e1383 fix issue where paths were not correctly coalesced when adding files to file_storage (used more memory than necessary) 2017-08-10 12:10:46 +02:00
arvidn dbea43ab35 fix typo in comment 2017-08-10 07:59:16 +02:00
arvidn 378a0e974b fix issue of force-recheck or seeding from read-only media, torrents with empty files in them. Previously libtorrent would create empty files up-front unconditionally, now they won't be created if they already exist 2017-08-09 18:48:49 +02:00
arvidn 2b98951ace assert that trackers are not announced to while checking files 2017-08-06 20:21:03 +02:00