arvidn
a9085db760
fix error handling of merkle torrents
2018-01-13 17:33:36 -05:00
arvidn
f29bb69612
fix error handling of unsupported hard-links
2018-01-13 08:36:48 -05:00
Chocobo1
1877724c17
raise auto piece size selection limit to 16 MB in create_torrent()
...
16 MB is chosen to have a bit more future proof
Also rewrite the auto piece size selection algorithm, so that it will scale with
torrent content size, suggested by @ssiloti.
2018-01-08 15:24:47 -05:00
arvidn
c8bf782bd0
bump version number to 1.1.6
2017-12-29 15:53:51 +01:00
arvidn
7ea5946305
remove some last lexical_cast residual
2017-12-27 12:44:36 +01:00
arvidn
3971897c14
remove invalid assert
2017-12-24 11:28:02 +01:00
arvidn
43d7f980d0
make the chunk header parser properly fail at end of buffer, and not require zero terminated strings
2017-12-23 17:06:50 +01:00
arvidn
b5d4bc5e62
back-port path fixup in file_storage add_file
2017-12-23 12:02:17 +01:00
arvidn
47709244d3
back-port fixed assert in chunk parser
2017-12-23 12:01:40 +01:00
arvidn
62bf524e75
disable DHT logging with the TORRENT_DISABLE_LOGGING macros as well
2017-12-23 12:01:18 +01:00
arvidn
b7decd452e
add getters for peer_class_filter and peer_class_type_filter
2017-12-23 09:25:06 +01:00
arvidn
67be35739c
:attempt to fix disconnections when torrents enter upload mode due to failures
2017-12-23 09:24:26 +01:00
sledgehammer_999
94f4e88e05
Fix local network address mappings.
2017-12-20 11:28:36 +01:00
arvidn
178281e1c5
make torrent_handler::set_priority() to use peer_classes
2017-12-18 00:56:44 +01:00
arvidn
d52763805c
back-port the tracker timeout test from master
2017-12-16 13:54:15 +01:00
arvidn
d1a63cd781
fix build against boost-1.66, specifically the boost.asio changes
2017-12-15 11:29:53 +01:00
arvidn
86c83fe976
fix asio debugging
2017-12-12 10:11:09 -05:00
arvidn
fe6473039c
fix rate limit utp feature
2017-12-11 08:40:35 -05:00
arvidn
b00b3184c0
some minor i2p cleanups
2017-12-08 09:57:21 +01:00
arvidn
a286b9da47
fix i2p support
2017-12-08 09:57:21 +01:00
arvidn
f81a20a035
fix loading resume data when in seed mode
2017-12-03 23:43:55 +01:00
arvidn
0fe2e85fee
fix part-file creation race condition (back-port from master)
2017-12-03 18:13:54 +01:00
arvidn
c745d3f00d
fix incorrect use of make_tick_handler
2017-12-02 12:20:36 +01:00
arvidn
4b467f82ac
fix issue with initializing settings on session construction
2017-12-02 12:20:36 +01:00
Arvid Norberg
e15f466137
fix issue with receiving interested before metadata ( #2557 )
2017-11-25 15:31:37 +01:00
arvidn
5e7666526e
fix IPv6 tracker announce issue
2017-11-23 10:11:59 +01:00
arvidn
1593916e62
fix ipv6 udp tracker test
2017-11-23 00:05:08 +01:00
arvidn
a57ad00e15
fix force-proxy regression (udp sockets would not be opened)
2017-11-21 08:54:16 +01:00
arvidn
04c2c35f8d
restore path sanitization behavior of ':'
2017-11-21 08:50:09 +01:00
arvidn
096ce54fae
fix issue where new listen sockets would not be opened when leaving force_proxy mode
2017-11-14 12:38:22 +01:00
Steven Siloti
dc612b6423
keep updating aux::time_now() while there are announces
...
This fixes an infinite loop when an announce during shutown fails and
aux::time_now() has fallen behind clock_type::now() by more than the
delay calculated in announce_entry::failed(). If this happens,
announce_entry::can_announce() can forever return true when called from
torrent::announce_with_tracker() because that function uses
clock_type::now().
Also change torrent::announce_with_tracker() to use aux::time_now() just
for consistency with the reset of the announce related functions.
2017-10-26 23:42:35 +02:00
arvidn
205fe5e7ea
fix full allocation failure on APFS
2017-10-16 00:08:10 +02:00
Steven Siloti
2b72a7321a
send one last state update when a paused torrent's rates reach zero ( #2436 )
2017-10-11 23:10:40 +02:00
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
arvidn
f080149081
fix parsing of torrents with certain invalid filenames
2017-10-08 15:54:08 +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
99b19366a9
fix leak of peer_class objects (when setting per-torrent rate limits)
2017-10-03 17:32:49 +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
5441874f10
fix integer overflow in whole_pieces_threshold logic
2017-09-23 06:59:13 -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
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
arvidn
c848f6d978
improve some asserts in storage.cpp
2017-09-07 23:00:58 +02:00
arvidn
061732ddec
bump version
2017-09-04 15:35:45 +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
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
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
arvidn
1f3730fa5a
fix force-recheck issue (new files would not be picked up)
2017-08-06 09:49:51 +02:00
arvidn
cedd468300
backport fix to clearing of piece picker in suggest_read_cache mode
2017-07-22 00:00:14 -07:00
arvidn
cc30434c52
fix inconsistency in file_priorities and override_resume_data behavior. file_priorities are not subject to the override_resume_data flag
2017-07-12 15:36:55 -07:00
d-komarov
85cf521145
fix bandwith rate limit calculation ( #2134 )
...
back-port of fc0cbfb789
2017-07-11 21:35:12 -07:00
d-komarov
11d6a00bec
fix storage destruction order issue ( #2138 )
...
back-ported from b553cb32f7
2017-07-10 21:35:34 -07:00
arvidn
5188c190db
bump version number
2017-07-02 15:03:46 -04:00
arvidn
20c1407612
corrected missing const qualifiers on bdecode_node
2017-06-30 08:19:10 -04:00
arvidn
506950001d
fix regression where paused torrents could not have their queue position changed
2017-06-27 12:37:08 -04:00
Steven Siloti
ec30a5e9ec
fix out-of-bounds read in bdecode
...
Fixes #2099
2017-06-24 10:52:49 -04:00
arvidn
77cc2b4eea
fix re-check issue after move_storage
2017-06-20 22:27:39 -04:00
arvidn
046bb76361
handle invalid arguments to set_piece_deadline()
2017-06-19 05:46:08 -04:00
arvidn
f04d729d43
enforce spell checking on CI
2017-06-18 15:51:51 -04:00
arvidn
53cbb607d0
first steps towards spell checking documentation
2017-06-17 22:59:57 -04:00
arvidn
a97121d6f2
move_storage did not work for torrents without metadata
2017-06-15 21:20:22 -04:00
Steven Siloti
a48cdd0281
fix check for fully allocated file on windows
...
The file allocation size is in terms of clusters so it will likely be larger
than the file size even with a freshly allocated file.
2017-06-15 06:36:34 -04:00
Arvid Norberg
94701c24da
when stopping a torrent, never perform a name lookup on the tracker ( #2021 )
...
when stopping a torrent, never perform a name lookup on the tracker, only announce to trackers whose IP we already know. This is expected to make shutdowns not hang
2017-05-25 14:58:29 -04:00
arvidn
432131e493
fix error reporting for enum_net_interfaces
2017-05-23 08:54:09 -04:00
arvidn
a985773f4b
fix previously faulty fix to enum_routes
2017-05-21 23:21:02 -04:00
Arvid Norberg
c7bb9f23ad
add debug mechanism to assert the connection list is not mutated while iterating over it ( #2016 )
2017-05-21 11:36:35 -04:00
arvidn
acd98d5c40
delay 5 seconds before reconnecting socks5 proxy for UDP ASSOCIATE
2017-05-21 08:53:29 -04:00
arvidn
83735fdbb4
fix NAT-PMP crash when removing a mapping at the wrong time
2017-05-20 14:56:04 -04:00
arvidn
56d5d795bf
improve path sanitization (filter unicode text direction characters)
2017-05-15 01:49:41 -04:00
arvidn
9333c51da6
deprecate partial_piece_info::piece_state
2017-05-14 20:15:55 -04:00
arvidn
ff63557f58
bind upnp requests to correct local address
2017-05-12 18:17:38 -04:00
arvidn
f8bda070be
don't combine reuseaddr and exclusive addruse on windows
2017-05-11 22:30:29 -04:00
arvidn
bfa455c5bd
save resume data when removing web seeds
2017-05-09 13:11:28 -04:00
Jan Berkel
b3815c5533
HTTP proxy: avoid connecting to itself ( #1978 )
2017-05-08 11:04:17 -04:00
arvidn
14dbd1c92d
fix race condition in disk I/O storage class
2017-05-07 13:47:50 -04:00
Jan Berkel
fe9f877087
Set connection timeout when next endpoint is tried ( #1952 )
2017-05-04 17:32:47 -04:00
arvidn
1ea760ae93
fix iconv cast warnings
2017-04-24 08:02:11 -04:00
Jan Berkel
afe1f685a4
Set next/min_announce to now
...
Prevents unnecessary tracker announce delays #1940
2017-04-23 16:00:53 -04:00
arvidn
7dd11268dd
removed use of boost::uintptr_t for better compatibility
2017-04-23 11:15:43 -04:00
arvidn
227830e757
fix memory leak in the disk cache. if a cached_piece_entry would stick around in a ghost list (ARC), it would keep the torrent object itself alive. when aborting read jobs, the outstanding_read flag need to be cleared on the piece. When reclaiming a block for a piece that should be deleted (not just evicted) it need to know that. This patch adds an additional bit to cached_piece_entry to communicate this
2017-04-19 22:30:27 -04:00
arvidn
2d6268b580
fix double free in disk cache
2017-04-17 19:54:05 -04:00
Steven Siloti
f86e207ba2
fix typo in natpmp::start
...
Calling update_mapping() on a mapping with protocol set to none is a no-op so
I'm pretty sure this check was meant to skip over such mappings.
2017-04-15 15:28:01 -04:00
arvidn
48e61b947a
remove mutex-release hack in file_pool
2017-04-14 12:45:18 -07:00
arvidn
b065536023
bump version number
2017-04-02 18:34:45 -04:00
pavel.pimenov
6afb0fd51b
fix m_host_resolver (for RC_1_1)
2017-03-31 07:29:03 -04:00
arvidn
02bb1251d2
removed (broken) support for incoming connections over socks5
2017-03-29 02:15:43 -04:00
arvidn
910ccc528f
deprecate torrent_added_alert in favor of add_torrent_alert
2017-03-26 22:48:17 -04:00
arvidn
4d397f5ebf
fix minor robustness issue in DHT bootstrap logic
2017-03-21 12:29:08 -04:00
arvidn
f95f5b05c2
fix issue where torrent_status::num_seeds could be negative
2017-03-20 23:58:08 -04:00
arvidn
6f650aa7d9
document deprecation of dynamic loading/unloading of torrents
2017-03-13 21:21:38 -04:00
arvidn
e37e4bfe8a
include user-agent in tracker announces in anonymous_mode for private torrents
2017-03-12 21:10:00 -04:00
arvidn
4ded26de33
fix issue with load/unload torrents
2017-03-11 19:59:53 -05:00
Arvid Norberg
3f90501934
add support for IPv6 peers from udp trackers ( #1802 )
...
add support for IPv6 peers from udp trackers
2017-03-11 02:46:51 -05:00
arvidn
08c05b9693
correctly URL encode the IPv6 argument to trackers
2017-03-10 02:27:51 -05:00
arvidn
dec8c853e3
fix default file pool size on windows
2017-03-09 23:26:53 -05:00
arvidn
5cb12318c5
fix bug where settings_pack::file_pool_size setting was not being honored
2017-03-09 08:18:10 -05:00
arvidn
faa2029f8b
add feature to periodically close files (to make windows clear disk cache)
2017-03-06 23:46:47 -05:00
arvidn
af07ce1f25
fix issue with peers not updated on metadata from magnet links
2017-03-06 18:45:58 -05:00
Steven Siloti
9a63d4696e
mark connection as upload only manually instead of with set_upload_only()
...
We can't call set_upload_only() in this context because it can trigger an invariant
check in the torrent and m_num_connecting is not consistent.
2017-03-02 00:48:55 -05:00
arvidn
9d645055ff
fix storage tick invariant check failure
2017-02-26 20:23:53 -05:00
arvidn
ff106f8c9e
default TOS marking to 0x20
2017-02-25 13:34:53 -05:00
Arvid Norberg
3e83c4119f
fix recent settings_pack ABI regression ( #1752 )
...
fix recent settings_pack ABI regression
2017-02-24 08:06:59 -05:00
arvidn
6d40d3a167
bump version number
2017-02-20 12:43:34 -05:00
arvidn
430ff6d7b4
minor fix to num_seeds
2017-02-19 18:47:32 -05:00
Arvid Norberg
6e65851b2d
add some documentation for some counters ( #1726 )
...
add some documentation for some counters
2017-02-18 12:55:20 -05:00
arvidn
7b61313b99
fix invalid access when leaving seed-mode with outstanding hash jobs
2017-02-17 15:37:56 -05:00
Arvid Norberg
116802fcdf
update tuning documentation ( #1717 )
...
update tuning documentation and make the stats header be posted when logging is disabled (if stats_notifications are enabled)
2017-02-16 07:03:43 -05:00
arvidn
1300204ff1
back-port pavel's fix to ip_interface.name
2017-02-13 08:09:01 -05:00
arvidn
cbd1c26a11
fix ABI compatibility issue introduced with preformatted entry type
2017-02-12 20:42:30 -05:00
arvidn
949d4cd12a
fix regression in windows implementation of enum_net causing infinite loop
2017-02-11 19:09:21 -05:00
arvidn
85f6febfff
fix some left-over incorrect default piece priorities (1 -> 4)
2017-02-11 15:32:51 -05:00
arvidn
964542e53b
back-port ajax16384's fix to enum_net_interfaces on windows
2017-02-08 10:01:40 -05:00
ximply
c4d96c7aa9
add web_seed_name_lookup_retry to session_settings ( #1674 )
...
add web_seed_name_lookup_retry to session_settings to control web seed
name lookup retry in seconds, default is 1800 seconds
2017-02-07 01:34:52 -05:00
Arvid Norberg
692759ba81
slightly improve proxy settings backwards compatibility-1.1 ( #1664 )
...
slightly improve proxy settings backwards compatibility
2017-02-06 00:01:04 -05:00
arvidn
7ff4f56ae2
add function to get default settings
2017-02-05 11:31:43 -05:00
Arvid Norberg
c00a25a645
back-port aldenml's fix to not save replacement nodes twice to 1.1 ( #1661 )
...
back-port aldenml's fix to not save replacement nodes twice to 1.1
2017-02-04 19:58:32 -05:00
Arvid Norberg
0a26ed8d1e
fix issue where updates to super seeding state would not include the torrent in the state_update_alert ( #1659 )
2017-02-04 16:09:42 -05:00
arvidn
c9a2fed2c9
add tests for edge cases of session settings, and fix a few integer overflows
2017-02-03 20:42:59 -05:00
arvidn
2b53eb28a9
minor cleanup in automatic connections_limit management
2017-02-01 23:28:13 -05:00
Arvid Norberg
4733670aa1
fix issue where num_seeds could be greater than num_peers in torrent_status ( #1645 )
...
fix issue where num_seeds could be greater than num_peers in torrent_status
2017-02-01 01:39:09 -05:00
arvidn
dbd734e7a2
sync. creation and clearing of file progress with the piece picker
2017-01-31 08:14:36 -05:00
Falcosc
e40bdc566c
1.1.2 set queue position by number ( #1617 )
...
set queue position by number
2017-01-30 21:31:31 -05:00
arvidn
3339b2abe1
back port file progress invariant checking to 1.1
2017-01-29 15:34:06 -05:00
arvidn
ffca4afaa6
remove unintuitive limit on peer connections (especially with large values of file_pool_size)
2017-01-29 02:45:30 -05:00
arvidn
cca5ab8368
fix integer overflow
2017-01-26 23:39:56 -05:00
Arvid Norberg
ba9fae8e1f
fix issue with unloading torrents ( #1624 )
...
fix issue with unloading torrents
2017-01-25 23:42:59 -05:00
arvidn
b19cb7bd87
fixed finished-time calculation
2017-01-25 01:56:19 -05:00
Andrei Kurushin
7c9679bf6a
fix missed static array specifier
2017-01-23 08:21:34 -05:00
arvidn
132be5101f
fix stat cache issue that sometimes would produce incorrect resume data
2017-01-22 18:14:10 -05:00
arvidn
6d17f0fb66
storage optimization to peer classes
2017-01-21 01:23:07 -05:00
Falco
c57d062e0d
fix torrent name in alerts of builds with deprecated functions and use non deprecated for internal calls
2017-01-20 19:05:05 -05:00
arvidn
c7c204280a
make sure torrent_info::is_valid returns false when the file fails to load
2017-01-18 23:58:33 -05:00
Falcosc
a07ffe42f8
fix torrent peer class index overflow ( #1557 )
...
fix peer class index width
2017-01-16 18:20:43 -05:00
arvidn
3b9c65daf1
remove unused function, has_interface()
2017-01-16 15:14:47 -05:00