Steven Siloti
826bbe35ee
always cache writes
2016-03-14 19:03:12 -07:00
Steven Siloti
6e8db41dd2
check_cache_level after performing a job rather than before
...
If dirty blocks are added while the job is running there is a chance of
deadlock if the dirty blocks cause the cache to exceed its size limit and
no further jobs come in to trigger another check.
2016-03-14 19:03:12 -07:00
Steven Siloti
9c5bb25d65
always clear outstanding_flush after attempting to flush a cached write
...
Also clear outstanding_flush before calling kick_hasher because kick_hasher
may unlock the cache mutex which can allow more dirty blocks to be added
which may require another flush_hashed job be added.
2016-03-14 19:03:12 -07:00
Arvid Norberg
82d177472e
Merge pull request #541 from arvidn/fix-test-transfer-1.1
...
improve message from listen_failed_alert
2016-03-14 21:43:34 -04:00
arvidn
c5861bcc04
fix failure to increment port when retrying socket binding
2016-03-14 18:52:43 -04:00
Arvid Norberg
42d423e992
Merge pull request #540 from arvidn/remove-purgable-control-1.1
...
remove the purgable control patch
2016-03-14 17:54:12 -04:00
arvidn
921cbeebed
add option to delete just the partfile when removing a torrent
2016-03-14 08:26:39 -04:00
arvidn
55cd19d1e2
remove the purgable control patch. It adds a lot of complexity and it does not perform well
2016-03-14 01:48:00 -04:00
Arvid Norberg
035f8e98d1
Merge pull request #542 from arvidn/request-timeout-1.1
...
fix seed timing-out unchoked peers for not sending requests
2016-03-14 01:44:50 -04:00
arvidn
58e73c1469
fix typo
2016-03-13 20:47:50 -04:00
Arvid Norberg
5652a46068
Merge pull request #508 from arvidn/part-file-1.1
...
attempt to fix issue where the partfile is not deleted
2016-03-13 18:05:01 -04:00
arvidn
8f14c74be8
fix issue where a seed could time-out an unchoked peer for not sending any requests, despite being busy servicing requests from the peer (and time out immediately when m_requests is drained)
2016-03-13 16:41:31 -04:00
arvidn
fb85e5e60f
improve message from listen_failed_alert. Post listen_failed_alert for every failure, including the ones that are re-tried
2016-03-13 16:18:44 -04:00
arvidn
0d0048d415
try to evict a volatile piece before allocating a new one for a hash check. It may be faster to check files without growing the cache, or reusing the same buffers.
2016-03-13 12:52:44 -04:00
arvidn
2178d1ad2b
improve robustness and performance of uTP PMTU discovery. fix duplicate ACK issue in uTP. demote an invariant check to 'expensive'
2016-03-13 12:40:59 -04:00
arvidn
6d85c7c5f0
merge RC_1_1 into master
2016-03-08 01:10:48 -05:00
arvidn
71e3fb8941
fix division by zero in super-seeding logic
2016-03-07 23:40:01 -05:00
arvidn
f5d5ac4f3a
fix bug where disk cache was wiped out after completion file-checking. factor out sim test utilities and reuse them in the regression test
2016-03-06 21:44:38 -05:00
Arvid Norberg
3fa3004b85
Merge pull request #526 from arvidn/rechecking-outstanding-1.1
...
always keep at least 2 async hash jobs outstanding
2016-03-06 20:05:56 -05:00
arvidn
442979c318
support filtering which parts of session state are loaded by load_state()
2016-03-06 16:35:49 -05:00
arvidn
67774d660d
always keep at least 2 async hash jobs outstanding when rechecking torrents (to keep the bandwidth delay product full)
2016-03-06 16:31:18 -05:00
arvidn
b40430f175
change the cache size calculation for auto cache size (-1) to be smaller, especially for machines with large amounts of RAM
2016-03-06 16:15:22 -05:00
arvidn
a02c1d2164
record cache settings in the job instead of checking it twice for more robust behavior
2016-03-06 16:15:13 -05:00
arvidn
8ca76f9d59
fix support for auto disk cache size and disk buffer pool allocator behavior
2016-03-06 16:14:55 -05:00
arvidn
26f88bb12d
add receive_buffer unit test and some more cleanup and asserts
2016-03-05 00:14:00 -05:00
arvidn
2efb9d9a6a
fix bug in receive_buffer
2016-03-05 00:13:59 -05:00
Arvid Norberg
be17b78c5f
Merge pull request #522 from arvidn/io-thread-assert-1.1
...
remove invalid assert in the disk thread
2016-03-04 23:16:02 -05:00
arvidn
2bd6ad9974
remove invalid assert in the disk thread
2016-03-04 20:20:49 -05:00
Arvid Norberg
00f3406402
Merge pull request #514 from arvidn/allowed-unchoke-1.1
...
attempt to uphold the invariant that the num_unchoke_slots
2016-03-04 16:43:38 -05:00
arvidn
b707a4de90
uphold the invariant that the num_unchoke_slots counter is int max as long as the unchoke slots limit < 0
2016-03-04 16:42:36 -05:00
Alden Torres
4998bfedc6
Documentation typos
2016-03-04 10:43:25 -05:00
arvidn
b9ec183e24
increase default connect speed. minor cleanup. add logging for short lived connections
2016-03-03 01:20:15 -05:00
arvidn
fbef47d3ec
fix edge case in uTP stream when receiving a close-reason code
2016-03-02 22:30:02 -05:00
arvidn
e1f4b5ad2d
fix typo in reporting file index in checking resume data
2016-03-02 18:43:16 -05:00
arvidn
e851b79865
fix issue when shutting down a torrent with outstanding async operations
2016-03-02 01:16:08 -05:00
arvidn
aeb9f1c5dd
fix bug in enum_net_interfaces
2016-02-29 18:14:10 -05:00
arvidn
2b6fdc1728
attempt to fix issue where the partfile is not deleted when asking to delete all files
2016-02-28 16:05:13 -05:00
arvidn
f563bf9cac
attempt to make the alert type backwards compatible with cloning the state when building with deprecated functions enabled
2016-02-27 20:25:17 -05:00
arvidn
ac2916c426
enable disk cache pool allocator by default. fix ansi escape code conversion in client_test on windows
2016-02-27 17:42:31 -05:00
arvidn
07ecf7c1bd
remove invalid assert
2016-02-27 00:25:21 -05:00
Steven Siloti
b52027a02a
set enable_dht to true in session::start_dht(entry)
...
This function needs to enable the dht to match its semantics in pre 1.1 versions
2016-02-26 19:22:28 -08:00
arvidn
8cb18d39a1
add missing file to src/Makefile
2016-02-26 18:54:27 -05:00
arvidn
2fd8047308
merged RC_1_1
2016-02-24 21:22:39 -05:00
Arvid Norberg
842d6fbca4
Merge pull request #492 from arvidn/fix-ssl-deprecated-1.1
...
fix build with openssl and deprecated functions disabled
2016-02-24 21:18:43 -05:00
arvidn
d4f259ccf0
attempt to fix race when closing a web seed while it's receiving data
2016-02-24 02:23:09 -05:00
arvidn
e5ccb63375
fix build with openssl and deprecated functions disabled
2016-02-24 02:07:27 -05:00
arvidn
dcd6af6473
more fixing of test_transfer proxy tests
2016-02-24 00:03:56 -05:00
arvidn
0b173c6651
merged RC_1_1
2016-02-23 23:48:29 -05:00
arvidn
57aa813135
fix auto-managed issue with torrents transitioning to 'slow' as they get paused, returning to life again later because of it
2016-02-23 01:28:58 -05:00
arvidn
ca75055c4b
fix documentation generation of listen_interfaces
2016-02-23 00:16:50 -05:00
arvidn
72a3771b87
attempt to fix logic around around actually closing udp sockets (specifically the SSL UDP socket)
2016-02-21 20:00:55 -05:00
arvidn
d8b88ba381
include protocol in portmap_alert
2016-02-21 19:16:00 -05:00
arvidn
61a67ece4a
fix non-openssl build
2016-02-21 18:40:06 -05:00
arvidn
cdfdbfd6aa
fix port mapping for SSL UDP socket
2016-02-21 17:40:27 -05:00
arvidn
967ec412a5
Merge branch 'RC_1_1'
2016-02-21 15:21:33 -05:00
Arvid Norberg
d172733c87
Merge pull request #487 from arvidn/fix-resume-checking-torrent
...
fix resuming of torrents that were checking files
2016-02-21 15:21:10 -05:00
arvidn
421bef5b68
fix resuming of torrents that were checking files
2016-02-21 11:32:50 -05:00
arvidn
cc8066bf11
properly deprecated adding torrents by http url
2016-02-21 11:31:42 -05:00
arvidn
3f3b366ed5
be a bit more strict about when the STL containers need complete types (to make it build under GCC with concept checks enabled). add proper assignment operator to types used in STL containers
2016-02-21 11:29:01 -05:00
arvidn
13e9eb6680
forward-port outgoing interface fix from RC_1_0
2016-02-20 20:35:52 -05:00
Arvid Norberg
5d18800e04
Merge pull request #486 from arvidn/force-recheck-1.1
...
make force recheck a bit more robust
2016-02-20 19:53:56 -05:00
arvidn
3231aa4c9d
make force recheck a bit more robust by initializing the progress state immediately
2016-02-20 15:53:43 -05:00
arvidn
3f40890eb6
simplify logic for saving resume a bit
2016-02-20 15:45:46 -05:00
arvidn
d599bef0ee
add unit test for read_resume_data
2016-02-20 13:26:21 -05:00
arvidn
b581fef437
resume checking of torrents
2016-02-20 13:26:21 -05:00
arvidn
a5d131b1bb
post fastresume_reject_alerts when building with deprecated functions enabled
2016-02-20 13:26:21 -05:00
arvidn
b23cb76b6f
load 'info-hash' in read_resume_data
2016-02-20 13:26:21 -05:00
arvidn
cc49b876bb
add flag for initializing m_need_save_resume_data when adding torrent
2016-02-20 13:26:21 -05:00
arvidn
40f6afc2f8
save and restore storage allocation mode in resume data
2016-02-20 13:26:21 -05:00
arvidn
8304cb07bc
update documentation
2016-02-20 13:26:20 -05:00
arvidn
67dbca14b7
move logic that loads torrent files from resume data into read_resume_data()
2016-02-20 13:26:20 -05:00
arvidn
c9d7e54d7b
make tests pass
2016-02-20 12:50:52 -05:00
arvidn
8135ea326f
rename async_check_fastresume to async_check_files, and make it take an add_torrent_params object instead of bencoded resume data
2016-02-20 02:00:07 -05:00
arvidn
4ef55073e3
transition mapped_files over to the new add_torrent_params
2016-02-20 02:00:07 -05:00
arvidn
6e88771981
transition merkle tree support over to the new read_resume_data()
2016-02-20 02:00:07 -05:00
arvidn
6223057b1e
added support for pieces, verified pieces and piece_priorities in new resume data scheme
2016-02-20 02:00:07 -05:00
arvidn
a60bbe0a1c
fix loading of peers and banned_peers from resume_data
2016-02-20 02:00:07 -05:00
arvidn
35b998f90d
introduce backwards-compatibility, of loading resume data and merging it with the add_torrent_params. add some more missing fields. deprecate some more flags in add_torrent_params
2016-02-20 02:00:07 -05:00
arvidn
e0ee12d4f3
remove m_resume_data and m_resume_data_loaded members from torrent
2016-02-20 02:00:06 -05:00
arvidn
197ded5a0d
revamp the way resume data is read, by providing a function for the client to parse resume data, capturing it in add_torrent_params
2016-02-20 02:00:06 -05:00
arvidn
1710b7c750
Merge branch 'RC_1_1'
2016-02-20 01:58:39 -05:00
arvidn
5cf36fd1d6
only save pieces in resume data that have actually been checked
2016-02-20 00:48:17 -05:00
arvidn
9d1f2b18ed
fix upnp mapping typo
2016-02-14 17:19:29 -08:00
arvidn
72a24b63ba
use bind_to_device for listen sockets
2016-02-12 15:46:18 -05:00
arvidn
6d77000ab0
deprecate ssl_listen setting. instead ssl sockets are specified by an 's' suffix of the port in listen_interfaces.
2016-02-12 15:46:12 -05:00
arvidn
887e79eb22
improve support for listening on multiple sockets and interfaces, with the listen_interfaces setting
2016-02-12 15:44:17 -05:00
arvidn
3842a0a197
Merge branch 'RC_1_1'
2016-02-12 15:43:13 -05:00
arvidn
828e79472d
forward port enum_net MTU fix
2016-02-11 00:46:28 -05:00
Arvid Norberg
7d8566f694
Merge pull request #473 from arvidn/bind-ssl-fix-1.1
...
fix issue in socket binding and back-port ssl test reliability fix
2016-02-10 19:47:34 -05:00
arvidn
58f8fb164e
Merge branch 'RC_1_1'
2016-02-10 18:28:54 -05:00
arvidn
ee14337894
revert listen_failed_alert::port
2016-02-10 18:28:34 -05:00
arvidn
ceb0ac6148
fix issue in socket binding and back-port ssl test reliability fix
2016-02-10 02:09:12 -05:00
arvidn
d1e4b57ad4
rename a few members of session_impl to be more descriptive
2016-02-08 18:15:47 -05:00
arvidn
4f40f84a7e
Merge branch 'RC_1_1'
2016-02-08 15:28:34 -05:00
arvidn
44abd1a59b
forward port fix to post torrent_added_alert earlier, from RC_1_0
2016-02-08 15:28:13 -05:00
arvidn
dd48faa8d4
minor debug logging issue in test facility wait-for-alert and fix minor shutdown issue with udp_socket packet subscription
2016-02-08 02:05:00 -05:00
Arvid Norberg
7b1a8ff6f1
Merge pull request #465 from arvidn/got-tracker-1.1
...
removed unused field in torrent
2016-02-07 14:50:08 -05:00
arvidn
f4627db97f
removed unused field in torrent
2016-02-07 02:37:32 -05:00
arvidn
f8a53d17ec
un-deprecate the endpoint field in listen_failed_alert
2016-02-07 02:12:58 -05:00
arvidn
660647b590
improve abstraction level of stats cache and fix test
2016-02-06 15:51:00 -05:00
arvidn
ae7058e119
remove the timestamps and file sizes from the resume data. This makes saving resume data alot cheaper, since it doesn't have to go via the disk thread. It also removes an old-standing API usage issue where there was easily a race condition introduced between saving resume data and pausing a torrent.
2016-02-06 15:50:55 -05:00
arvidn
df353bc3f9
forward port typo fix in udp_socket from RC_1_0
2016-02-06 15:49:25 -05:00
arvidn
6b63016b05
Merge branch 'RC_1_1'
2016-02-05 01:09:11 -05:00
arvidn
74554de330
forward port GetAdaptersAddresses from RC_1_0 and fix error categories in enum_net.cpp
2016-02-05 01:08:09 -05:00
arvidn
b0cc0f84ab
support NULL being passed as the listen interface to session constructor
2016-02-02 23:17:51 -05:00
arvidn
3a4f957b63
Merge branch 'RC_1_1'
2016-02-02 02:02:24 -05:00
arvidn
0f747695b7
fix error handling bug in logging
2016-02-02 01:57:56 -05:00
arvidn
e3fc6083bb
fix typo in listen_failed_alert
2016-02-01 20:53:58 -05:00
arvidn
88b7e3768f
add sim test for optimistic unchoke round-robin distribution
2016-02-01 20:28:30 -05:00
arvidn
f2ce2284da
optimize the optimistic unchoke logic. extend the API for extensions to be able to affect the order of optimistic unchokes
2016-02-01 20:28:22 -05:00
Arvid Norberg
764c8a7f0c
Merge pull request #446 from arvidn/default-gateway-fix-1.1
...
forward port removal of special case for windows and mingw-1.1
2016-02-01 01:50:28 -05:00
arvidn
55024ccc4b
forward port removal of special case for windows and mingw in get_default_gateway that appeared wrong
2016-01-31 21:14:15 -05:00
arvidn
e113e8cdf3
minor cleanup of listen sockets
2016-01-31 19:40:31 -05:00
arvidn
e584c30b29
forward-port reuse address patch for windows
2016-01-31 18:16:26 -05:00
arvidn
acd929381e
restore the endpoint field in listen_failed_alert (but deprecated) and add a port field
2016-01-31 10:20:10 -05:00
arvidn
9f1b27cf5f
Merge branch 'RC_1_1'
2016-01-30 01:47:19 -05:00
arvidn
efe32c6a0e
rewrite most of web_peer_connection::on_receive to make it a lot simpler and fix edge cases with pad-files
2016-01-28 01:58:33 -05:00
arvidn
f31d17c9c5
allow specifying which tracker to scrape in torrent_hadnle::scrape_tracker
2016-01-26 18:14:32 -05:00
arvidn
73289cb8ae
fix use of uninitialized variables in default_storage
2016-01-25 19:11:57 -05:00
Alden Torres
f71d775238
Allow xp compilation with the use GetFileInformationByHandleEx.
2016-01-25 12:22:33 -05:00
Steven Siloti
21feab838d
Enable SNI for outgoing SSL connections
...
Fixes #429
2016-01-24 12:24:33 -08:00
arvidn
2a0e64df46
add run-time check to file_storage::map_block and improve its documentation
2016-01-22 17:17:35 -05:00
arvidn
3153521367
merged RC_1_1 into master
2016-01-21 23:59:30 -05:00
Alden Torres
5c94b286b0
Removed file::m_path windows specific field
...
Removed default_storage::sparse_end
Typos
2016-01-21 12:11:33 -05:00
Alden Torres
218d33c545
Documentation typos and minor cleanup
2016-01-20 20:48:23 -05:00
arvidn
fbb246094b
fix windows build
2016-01-19 21:21:00 -05:00
arvidn
2fa84b3aa5
fix incorrect use of WaitForMultipleObjects
2016-01-19 18:47:21 -05:00
arvidn
784f8806a4
fix asio debugging feature
2016-01-18 23:13:50 -05:00
arvidn
2262a3dcaf
Merge branch 'RC_1_1'
2016-01-18 20:51:37 -05:00
arvidn
595fe157a9
fix shutdown issue
2016-01-18 20:48:27 -05:00
Arvid Norberg
a80c4f4777
Merge pull request #397 from arvidn/dht-rate-limit
...
move the DHT rate limiter into the dht_tracker class
2016-01-18 15:39:37 -05:00
arvidn
d5203c67d9
add DHT rate limit test (simulation). introduce a new counter for dropped incoming dht messages.
2016-01-18 14:34:42 -05:00
arvidn
06b52f1421
some cleanup of the dht_socket_interface and fix tests and simulations to build with the dht disabled
2016-01-18 14:34:42 -05:00
arvidn
297b8943d0
move the DHT rate limiter into the dht_tracker class and remove the rate_limited_udp_socket type. This further simplifies the udp socket (preparing for moving it into the listen_socket structure)
2016-01-18 14:34:41 -05:00
arvidn
4cbbb0620e
only strip trailing dots and spaces from filenames on windows
2016-01-18 13:07:04 -05:00
arvidn
1f9f588e75
merge copyright year update and changelog from RC_1_0
2016-01-17 18:57:46 -05:00
Arvid Norberg
fa391d4961
Merge pull request #394 from arvidn/forward-port-http-fix
...
forward port fix for web seeds not being used by torrents added by URL
2016-01-17 17:47:25 -05:00
arvidn
0c971d0d62
forward port fix for web seeds not being used by torrents added by URL
2016-01-16 23:57:33 -05:00
arvidn
3cd57b59e0
when a tracker is force announced or scraped by the user/client, the resulting response or failure alert is now posted regardless of the alert mask. Since it's user initiated, it's reasonable to expect the user to be interested in the response
2016-01-16 21:24:04 -05:00
arvidn
78d306157b
forward port of windows symlink fix from RC_1_0
2016-01-16 01:53:27 -05:00
Arvid Norberg
cdc3e720d6
Merge pull request #386 from arvidn/win-file-error-handling
...
fix missing error handling in windows preadv/pwritev emulation
2016-01-13 21:50:49 -05:00
arvidn
c8f119c1a1
fix typo
2016-01-13 01:07:27 -05:00
arvidn
4a28e95ce0
fix missing error handling in windows preadv/pwritev emulation
2016-01-13 00:49:17 -05:00
arvidn
13f03ce38a
print the actual stats in session_stats_alert::message() and make parse_session_stats.py parse the alert output. add stats_metric objects for all performance counters
2016-01-12 23:34:37 -05:00
arvidn
f4d643bd2d
instead of restarting the whole DHT when changing external IP, just rebuild the routing table and change the node IDs
2016-01-11 21:17:25 -05:00
Alden Torres
20d8f4e3f7
Removed unused fields in field class
2016-01-11 12:07:36 -05:00
arvidn
4cc2e879c4
comment out verbose pex logging. fix bug in disabled_storage and an error reporting issue on short reads in default_storage
2016-01-10 11:50:56 -05:00
Alden Torres
0f442f59f3
Avoid pass IPv6 address to current implementation of DHT while adding a node
2016-01-09 18:46:19 -05:00
arvidn
e06daa68a4
overhaul the dht simulator (setup_dht) to be more flexible and cheaper to run thousands of nodes
2016-01-09 01:08:52 -05:00
Alden Torres
7b34379c87
Doc typos
2016-01-05 08:31:04 -05:00