Arvid Norberg
71f5510d62
make the random function produce proper random distributions, based o… ( #981 )
...
make the random function produce proper random distributions, based on uniform_int_distribution of C++11. also clean up piece_picker's priority_range to return two results instead of taking pointers to out-parameters. fix recent pe-crypto regression exposed by this change
2016-08-06 13:18:48 -04:00
arvidn
2bdeb9aa6b
fix build
2016-07-29 20:24:11 -04:00
arvidn
83dba91168
use span for to_hex and from_hex functions
2016-07-29 18:42:18 -04:00
Arvid Norberg
9c2325ff6b
modernize and improve type-safety of the DHT put implementation and test ( #929 )
...
modernize and improve type-safety of the DHT put implementation and tests. use unique_ptr instead of malloc for dht put items.
2016-07-23 15:57:04 -07:00
Alden Torres
f57612b82d
rename of aux::array_view to span ( #933 )
2016-07-22 09:31:42 -07:00
arvidn
e405f0e02f
merged RC_1_1 into master
2016-07-20 11:34:29 -07:00
Arvid Norberg
80fba1f748
fix crash in session::get_ip_filter when not having set one ( #914 )
2016-07-17 14:23:54 -07:00
Arvid Norberg
8c03718117
apply modernization transforms to headers too. nullptr, explicit constructors, = default ( #903 )
2016-07-10 14:27:42 -04:00
Arvid Norberg
e782783814
modernize use override ( #895 )
2016-07-09 20:10:38 -04:00
Arvid Norberg
770935cd46
modernize-use-nullptr ( #894 )
2016-07-09 16:26:26 -04:00
Steven Siloti
f0d7ec3954
refactor optimistic unchoke extension API ( #888 )
...
refactor optimistic unchoke extension API. The new interface is more efficient to implement and only allows extensions to affect the unchoke order in cases where the last unchoked timestamp is equal.
This is safer because it prevents extensions from overriding the round-robin ordering of optimistic unchokes.
2016-07-07 08:34:52 -04:00
Arvid Norberg
1facf0eef6
clean-up more defines ( #872 )
...
clean-up more defines. remove TORRENT_DEBUG and TORRENT_DISABLE_INVARIANT_CHECKS (instead use TORRENT_USE_ASSERTS and TORRENT_USE_INVARIANT_CHECKS)
2016-07-01 19:46:59 -04:00
arvidn
08aebd2729
format more log messages in alert constructors
2016-06-29 02:02:46 -04:00
arvidn
be30bbd08b
merged RC_1_1 into master
2016-06-25 17:48:13 -04:00
Alden Torres
ba6e1e9194
open default listen interface the same as no default ( #848 )
...
open default listen interface the same as no default
2016-06-23 17:54:31 -04:00
Alden Torres
436b781003
option to use only the openssl's sha1 implementation ( #845 )
...
separated ssl and crypto build options
2016-06-23 13:20:35 -04:00
Arvid Norberg
6917a11c6b
correct error introduced in add_torrent_impl refactor, with regards t… ( #846 )
...
correct error introduced in add_torrent_impl refactor, with regards to not having flag_duplicate_is_error set (which is not set by default)
2016-06-23 13:19:35 -04:00
Arvid Norberg
6aabe3762b
general modernization ( #836 )
...
general modernization. use nullptr instead of NULL, use std::tuple instead of boost::tuple, transition some unordered set/map from boost to std. some clean-up of includes
2016-06-20 11:32:06 -04:00
Arvid Norberg
ed077c8358
use cstdint intead of boost/cstdint.hpp ( #833 )
...
use cstdint intead of boost/cstdint.hpp
2016-06-18 14:01:38 -04:00
Alden Torres
d3cd568447
plugin callback refactor ( #823 )
...
grouping plugins per feature
2016-06-17 22:02:21 -04:00
Arvid Norberg
4d927f4029
modernize disk_buffer_holder to be move-only ( #824 )
...
modernize disk_buffer_holder to be move-only
2016-06-16 08:24:41 -04:00
Arvid Norberg
c0fb61c5d7
replace the suggest-read-cache logic with something much simpler ( #815 )
...
replace the suggest-read-cache logic with something much simpler that doesn't schedule regular jobs and doesn't query the disk cache
2016-06-15 13:29:54 -04:00
arvidn
4b186130e6
fix merge
2016-06-14 21:16:28 -04:00
Alden Torres
38f4765ebc
added assert and documentation typos ( #816 )
2016-06-13 17:16:09 -04:00
Alden Torres
d759d8f742
not add peers from url if add_torrent_impl returns invalid handle ( #814 )
2016-06-13 07:47:16 -04:00
Arvid Norberg
ef1a24518d
fix dht tests ( #803 )
...
fix tests
2016-06-11 15:37:28 -04:00
Arvid Norberg
223f24ca27
some cleanup and transition to std::unique_ptr ( #786 )
...
some cleanup and transition to std::unique_ptr
2016-06-05 14:07:24 -04:00
Alden Torres
db65eb320a
making dht counters additive ( #783 )
...
make dht counters additive to support both IPv4 and IPv6
2016-06-04 14:04:29 -04:00
Alden Torres
7c4d92a627
Share the DHT storage for both IPv4 and IPv6 ( #762 )
2016-06-03 19:44:16 -04:00
Arvid Norberg
be67553897
simplify session pause mechanism by keeping two separate states in torrents and having the session explicitly tell torrents when it's pausing ( #779 )
2016-06-03 07:32:48 -04:00
Alden Torres
42a9022065
Refactor of listen alerts for separated fields address and port ( #778 )
...
Refactor of listen alerts for separated fields address and port
2016-06-02 22:38:56 -04:00
Alden Torres
cdd067fe4e
Minor cleanup ( #775 )
...
Minor cleanup
2016-06-02 07:25:06 -04:00
Arvid Norberg
14d085f607
rename allow_peers to paused ( #773 )
2016-06-01 01:05:32 -04:00
arvidn
420b5f51e6
merged RC_1_1 into master
2016-05-27 12:35:53 -07:00
Alden Torres
f8dcf30b2e
Ported support for magnet x.pe parameter from master ( #760 )
2016-05-27 12:12:32 -04:00
Alden Torres
313006b8c7
Added support for x.pe parameter in parse_magnet_uri ( #755 )
2016-05-26 13:34:13 -04:00
Arvid Norberg
96999ad67f
replace uses of boost::bind with std::bind and lambdas ( #745 )
2016-05-25 00:31:52 -04:00
Arvid Norberg
748af6eec1
general cleanup. remove valgrind markup, log_hash_failures and C headers ( #752 )
...
general cleanup. remove valgrind markup, log_hash_failures and C headers
2016-05-23 08:15:39 -04:00
arvidn
f1216686d2
merged RC_1_1 into master
2016-05-23 00:56:16 -04:00
Arvid Norberg
cf3c95702b
Peer blocked alert ( #747 )
...
make peer_blocked_alert derive from peer_alert
2016-05-22 19:56:14 -04:00
Arvid Norberg
b5fc367d17
fix incorrect comparison function when deciding which peer to disconnect ( #746 )
...
fix incorrect comparison function when deciding which peer to disconnect
2016-05-22 13:46:37 -04:00
Arvid Norberg
dceee3b065
simplify session call and replace session_handle and torrent_handle macros ( #741 )
...
remove use of macros in session_handle and torrent_handle forwarders
2016-05-21 19:05:42 -04:00
Arvid Norberg
178a41b187
clean up natpmp logging infrastructure a bit as well as test_peer_list ( #735 )
...
clean up natpmp logging infrastructure a bit as well as test_peer_list
2016-05-18 01:54:37 -04:00
arvidn
35eff73662
fix missing include
2016-05-17 22:36:45 -04:00
Arvid Norberg
eb72bbf2d2
fix add_torrent_impl when adding a URL (which has been deprecated) when building with deprecated features disabled ( #733 )
2016-05-17 16:49:11 -04:00
Arvid Norberg
e8380e1d0b
factor out includes from config.hpp into the files actually using it. primarily, printf family of functions, since C++11 version is used now. This removes the need for an snprintf-wrapper on windows ( #732 )
2016-05-17 09:24:06 -04:00
Arvid Norberg
0d27a0acdd
fix assert when adding an empty file (as a torrent) ( #729 )
2016-05-14 13:24:29 -04:00
arvidn
c292696dcb
back-port fix adding empty file as torrent
2016-05-14 13:13:20 -04:00
Arvid Norberg
167cbe74b5
made alerts move-only and remove dispatch function and other deprecated alert functions requiring alert to be copyable ( #721 )
2016-05-13 08:19:44 -04:00
Arvid Norberg
a7213d3f5a
don't support older than msvc-14 (2015) ( #727 )
...
don't support older than msvc-14 (2015)
2016-05-12 21:24:45 -04:00
arvidn
7c108e6c19
merged RC_1_1 into master
2016-05-09 00:30:30 -04:00
Arvid Norberg
5bedf3e7b3
post add_torrent_alert before any other torrent alert ( #717 )
...
post add_torrent_alert before any other torrent alert
2016-05-08 23:48:27 -04:00
Arvid Norberg
29902be3a0
some general C++ 11 cleanup. some typedefs and for loops ( #709 )
2016-05-07 18:46:42 -04:00
arvidn
6cf5ac9dd1
merged RC_1_1 into master
2016-05-06 01:08:05 -04:00
Arvid Norberg
f9bc6dbc54
improvements to socks5 support (for 1.1.1 release) ( #567 )
...
capture listen IP and port from socks5 BIND response. add tests for socks5 and improve support for capturing the local endpoint (i.e. bind port) for BIND command socket connections. post listen_succeeded_alert when successfully bound to listen socket on SOCKS5 proxy. make sure to announce the socks5 listen port
2016-05-05 17:09:11 -04:00
Steven Siloti
fa693174e7
move vectors into alerts ( #699 )
2016-05-04 09:50:44 -04:00
Arvid Norberg
c91a700c07
Msvc warnings ( #685 )
...
fix msvc warnings and build examples with warnings-as-errors
2016-05-02 12:36:21 -04:00
Arvid Norberg
0d2c04cb2e
remove network thread pool feature ( #688 )
...
remove network thread pool feature (it was messy and mostly useful for bittorrent over SSL). The proper solution is to allow every peer run in its own asio strand and have multiple threads running the io service
2016-05-02 02:18:51 -04:00
Arvid Norberg
a3de04dffc
Merge pull request #675 from ssiloti/unique_ptr
...
Use unique_ptr where possible
2016-05-01 01:31:04 -04:00
Steven Siloti
ff0675e64e
use standard array container ( #676 )
2016-04-30 23:10:47 -04:00
Steven Siloti
2c00a613b2
use unique_ptr to network_thread_pool
2016-04-30 16:49:21 -07:00
Arvid Norberg
20b41ad0b9
Threads ( #671 )
...
use std::thread, std::mutex, std::condition_variable instead of pulling them in from boost.asio internals.
2016-04-30 18:54:23 -04:00
Arvid Norberg
98fb7df56f
use standard unordered containers ( #673 )
2016-04-30 16:53:20 -04:00
arvidn
36a5a11ee2
merge fix
2016-04-29 23:34:25 -04:00
Arvid Norberg
f0d95f5e3e
remove RSS feature ( #662 )
...
remove RSS feature
2016-04-29 15:54:21 -04:00
Arvid Norberg
46b33f920b
remove explicit cache feature ( #661 )
...
remove explicit cache feature
2016-04-29 02:32:00 -04:00
arvidn
e0e05e3961
fix asserts firing in unit tests
2016-04-28 21:59:41 -04:00
Arvid Norberg
5f5aa2361e
use array_view more along the udp packet paths ( #655 )
2016-04-28 08:20:10 -04:00
Arvid Norberg
c557432431
attempt to run cppcheck on travis ( #644 )
...
run cppcheck on travis
2016-04-26 18:09:11 -04:00
Arvid Norberg
3c785b96fc
Merge pull request #268 from ssiloti/dht-ipv6
...
Support DHT over IPv6
2016-04-25 19:19:48 -04:00
Andrei Kurushin
62eb956c54
fix x64 build with VS2015 UP2 compiler ( #640 )
...
fix VS2015 compiler warnings for: address-model=64, deprecated-functions=on, link=shared
2016-04-25 17:22:09 -04:00
Steven Siloti
2d9a6b76f1
use asio::protcol instead of an enum/bool
2016-04-24 15:18:47 -07:00
Steven Siloti
2abd9867ce
IPv6 DHT support
...
Fixes #110
2016-04-24 14:26:57 -07:00
Steven Siloti
356d2506bd
extend dht_observer to support IPv6 external addresses
2016-04-24 14:26:57 -07:00
arvidn
b5ecfa4f91
fix merge issues
2016-04-24 16:43:45 -04:00
Arvid Norberg
7251575d98
This patch does: ( #633 )
...
1. simplifies and regularizies creation of listen sockets based on the listen
interfaces setting.
2. simplifies and improves the behavior of UDP sockets, which are now explicitly
opened per listen interface
3. transitions udp tracker, DHT and uTP socket manager over to using the new
udp sockets
4. greatly simplified udp_socket to only wrap a single underlying socket (as
opposed to one IPv4 and IPv6 socket)
5. improved behavior of bind-to-device
6. introduce an array_view type to make udp packet passing code simpler
7. simplify and make setting of DF flag more robust
8. simplify and regularize port mapping of listen sockets
2016-04-24 15:26:28 -04:00
Arvid Norberg
c9c6dd2d3b
clean up the annotations used for asio debugging ( #639 )
...
clean up the annotations used for asio debugging (tracking outstanding async operations)
2016-04-23 17:29:25 -04:00
Andrei Kurushin
7b5d48c02a
fix default release build with VS2015 UP2 compiler warnings ( #624 )
...
* fix default release build with VS2015 UP2 compiler warnings
this will allow to successfully build:
bjam toolset=msvc-14.0 release deprecated-functions=off character-set=unicode link=static warnings-as-errors=on
2016-04-17 16:56:07 -04:00
arvidn
d17ae19391
Merge branch 'RC_1_1'
2016-04-11 02:08:06 -04:00
arvidn
5d499e83b6
fix uTP/SSL
2016-04-09 10:50:45 -04:00
arvidn
fd4a46342f
merge RC_1_1 into master
2016-03-30 00:33:29 -04:00
arvidn
7649610807
fix test_optimistic_unchoking sim
2016-03-27 18:40:53 -04:00
arvidn
96e2693d13
merge RC_1_1 into master
2016-03-19 16:02:46 -04:00
Arvid Norberg
e9b334ce63
Merge pull request #494 from arvidn/udp-bind-failure-1.1
...
attempt to fix issue with binding udp sockets on windows
2016-03-19 13:20:51 -04:00
arvidn
53b5e964d2
fix merge issue and properly close ssl udp socket when disabled, prevents the extra listen_succeeded alert for the ssl udp socket
2016-03-19 10:25:35 -04:00
arvidn
e9a5985609
if a udp socket is already bound to the IP and port we want to bind it to, don't reopen it
2016-03-19 10:25:30 -04:00
arvidn
f7c9062019
deprecate more parts of explicit cache as well as fixing typos of TORRENT_NO_DEPRECATE preprocessor tests
2016-03-19 07:54:29 -04:00
arvidn
3c98868f6c
deprecate explicit cache feature
2016-03-18 12:15:03 -04:00
arvidn
77ce318a84
merged RC_1_1 into master
2016-03-17 00:46:05 -04:00
arvidn
317eb2fe2a
remove unused disk allocation code
2016-03-16 20:13:28 -04:00
arvidn
f79a9c7adf
merged RC_1_1 into master
2016-03-16 19:59:53 -04:00
arvidn
36d0cfe40d
fix shutdown issue caused by peer connections being kept alive by disk buffer pool callbacks
2016-03-16 00:28:19 -04: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
arvidn
921cbeebed
add option to delete just the partfile when removing a torrent
2016-03-14 08:26:39 -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
6d85c7c5f0
merge RC_1_1 into master
2016-03-08 01:10:48 -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
arvidn
442979c318
support filtering which parts of session state are loaded by load_state()
2016-03-06 16:35:49 -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
arvidn
e851b79865
fix issue when shutting down a torrent with outstanding async operations
2016-03-02 01:16:08 -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
2fd8047308
merged RC_1_1
2016-02-24 21:22:39 -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
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
cc8066bf11
properly deprecated adding torrents by http url
2016-02-21 11:31:42 -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
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
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
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
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
6b63016b05
Merge branch 'RC_1_1'
2016-02-05 01:09:11 -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
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
f31d17c9c5
allow specifying which tracker to scrape in torrent_hadnle::scrape_tracker
2016-01-26 18:14:32 -05:00
arvidn
3153521367
merged RC_1_1 into master
2016-01-21 23:59:30 -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
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
1f9f588e75
merge copyright year update and changelog from RC_1_0
2016-01-17 18:57:46 -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
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
b9a5525ab2
Store dht_settings::max_peers in session state
2016-01-02 11:49:07 -05:00
arvidn
01e6b93854
simplify and improve unit test for distance_exp. make some immutable variables const in the DHT implementation. instead of waking up periodically just to check if it's time to refresh the DHT secret key, set the timer to only wake up to refresh the key. If we don't have a DHT observer (to ask for our external IP) or if we don't know our external IP, don't generate a node ID based on 0.0.0.0, just generate a random ID instead. Simplified and improved node replacement logic in the routing table a little bit
2016-01-01 16:42:37 -05:00
arvidn
1698dc75dc
remove redundant boost::bind
2015-12-25 15:59:50 -05:00
arvidn
2acb3dcb24
clean up use of getrlimit() by wrapping it and move it to platform_util.cpp. Also take the opportunity to make it simulator friendly (consistent in simulation)
2015-12-02 00:45:34 -05:00
arvidn
12dde0f415
actually add a test to the unit test
2015-11-30 19:07:35 -05:00
arvidn
87b64f083a
fix python build
2015-11-29 11:12:58 -05:00
arvidn
332799bff2
make alert types declared final and disable the log alert declarations when logging is disabled
2015-11-29 10:16:02 -05:00
arvidn
2c3d7ee0ef
fix a bug where the torrent's invariant was not always maintained as well as a shutdown issue (now covered by test as well)
2015-11-28 14:14:49 -05:00
arvidn
98c3b75b55
use more efficient (in-place) handler allocation for udp async_read and session second_tick
2015-11-28 00:57:44 -05:00
Steven Siloti
1f13343a70
const correctness
2015-11-22 10:02:26 -08:00
Thomas Yuan
194ad410dc
Make dht_put_alert more accurate.
2015-11-20 00:06:08 -05:00
Arvid Norberg
ef1f399fd3
Merge pull request #259 from arvidn/deterministic-rand
...
use a consistent random number generator
2015-11-12 21:45:09 -05:00
arvidn
2626159abe
use a consistent random number generator to make simulations deterministic
2015-11-12 00:21:56 -05:00
arvidn
8fa6863e15
fix IP filter bug when adding a torrent after setting the filter
2015-11-11 20:43:42 -05:00
arvidn
ebb9fdaf54
add error_code to torrent_status instead of error string
2015-11-05 20:43:23 -05:00
arvidn
729a8e9152
update libsimulator. add simulation/test for announcing twice to trackers over IPv4 and IPv6. fix bugs preventing libtorrent from doing that correctly
2015-10-27 00:21:07 -04:00
Alden Torres
62b24d8b67
Add set_dht_storage to session API.
2015-10-02 09:00:07 -04:00
arvidn
5da511f140
now that force-started torrents aren't affected by the auto-manager, they need to be explicitly kicked when entering checking state (it would be nice if all this could be done through set_state())
2015-09-29 20:49:38 -04:00
arvidn
dab0f8b8d0
simplify the queuing logic for checking torrents. make all non-auto-managed torrents always be exempt from any queuing mechanism (including checking). Extend documentation on how it works
2015-09-29 20:49:37 -04:00
Thomas Yuan
7fec9e488d
make immutable/mutable items lifetime configurable.
2015-09-21 20:32:37 -04:00
Alden Torres
25ed70b977
Create dht_storage_counters to avoid internal counter in future public API.
2015-09-21 07:46:23 -04:00
arvidn
cf15453388
forward port auto-manage fix from RC_1_0
2015-09-19 02:10:50 -04:00
Arvid Norberg
8b6b8240c1
Merge pull request #144 from thomas-yuan/master
...
load_state should restart dht/proxy if there is dht state/proxy.
2015-09-10 00:13:07 -04:00
Thomas Yuan
a06a8fe19e
load_state should restart dht/proxy if there is dht state/proxy.
2015-09-08 21:34:49 -04:00
Arvid Norberg
abe994c191
Merge pull request #128 from thomas-yuan/patch2
...
Add read-only support in dht_settings and outgoing query messages.
2015-09-08 19:47:18 -04:00
Thomas Yuan
4d6de4bcd8
save/load all dht_settings.
2015-09-08 11:03:27 -04:00
arvidn
ee3cb6cf86
move some internal headers to aux_ to fix documentation
2015-09-07 17:00:27 -04:00
arvidn
a2ea8b32db
fix more warnings
2015-09-06 22:55:41 -04:00
arvidn
17c5759829
disable warning for unused command line argument and fix warnings. remove redundant travis build config. use new preprocessor on clang to avoid warnings
2015-09-06 22:55:41 -04:00
arvidn
43ee75ce02
only post listen_succeeded_alert once all sockets have succeeded, since we may re-open previously successful ones if a later one fails
2015-09-05 22:14:04 -04:00
arvidn
0d9d632465
initial support for disabling proxy for tracker connections
2015-08-29 19:44:54 -04:00
arvidn
ba95aa27d6
cleanup unused code
2015-08-29 16:07:19 -04:00
arvidn
beb5455331
add disk I/O read asserts and fix i2p issue if a tracker responds with i2p peers when i2p is not configured on the client
2015-08-28 07:20:21 -04:00
arvidn
a42f9e0c63
fix more warnings
2015-08-22 00:28:12 +02:00
arvidn
b7b0dafcca
fix some warnings
2015-08-21 10:05:51 +02:00
arvidn
8cf8e65861
turn linked_list into a template to improve type safety and remove some casts
2015-08-20 02:02:46 +02:00
arvidn
8bc4bf1e1a
remove incorrect check for m_dht
2015-08-19 01:43:44 +02:00
arvidn
347d976a70
since starting the DHT can be delayed now, also cache dht nodes added while waiting
2015-08-18 23:35:27 +02:00
arvidn
cc4368b45a
attempt to postpone DHT until all outstanding dht router name lookups complete
2015-08-18 22:56:00 +02:00
arvidn
26fecaf037
fix more warnings
2015-08-18 16:42:03 +02:00
arvidn
eecdd3121d
fix some build warnings
2015-08-17 09:01:43 -04:00
arvidn
9a0092c120
fix some warnings
2015-08-16 12:17:23 -04:00
arvidn
16bb2de6ed
fix some warnings
2015-08-13 23:52:25 -04:00
Arvid Norberg
68bc4f2cf4
Merge pull request #12 from mlt/wip/i2p
...
Few i2p fixes
2015-08-13 21:55:27 -04:00
Alden Torres
b303a36ac2
Removed unnecessary full namespace reference to udp::endpoint in new dht_direct_request feature.
...
Add default value to userdata argument in dht_direct_request.
Minor spelling fix.
2015-08-12 00:49:09 -04:00
Steven Siloti
1b4b1c4403
fix error handling for DHT direct requests
2015-08-10 20:33:05 -07:00
Steven Siloti
1ff48aef60
add comment
2015-08-10 20:33:04 -07:00
Steven Siloti
3564562dab
pass raw buffer in dht_direct_response_alert
2015-08-10 20:33:04 -07:00
Steven Siloti
86fd8c3048
enable arbitrary direct dht requests and extension dht requests
...
If you're wondering why I used an alert for handling responses but not requests,
it's because the former was easy to do that way but the latter would have
involved some major refactoring or kludging. The DHT node is written with the
(IMO reasonable) assumption that all responses will be generated immediately, so
there was no way to easily accommodate getting a response asynchronously via
an alert.
2015-08-10 20:33:04 -07:00
arvidn
a81ca2391b
fix some warnings
2015-08-10 20:03:24 -04:00
arvidn
4fa0aa62da
simulate IP routes, interfaces and page size when building in simulation mode
2015-08-09 15:01:01 -04:00
arvidn
1c1698459c
fix warnings
2015-08-08 22:53:11 -04:00
Arvid Norberg
27c5a28637
Merge pull request #70 from thomas-yuan/master
...
Call callback function immediately when get data for mutable data.
2015-08-08 21:51:18 -04:00
Thomas
e51b61870a
Call callback function immediately when get mutable data.
2015-08-08 20:28:53 -04:00
arvidn
46803b75f8
support building libtorrent in simulation mode (using libsimulator, which is a git submodule)
2015-08-07 21:31:59 -04:00
Alden Torres
eef9f16b3b
Removed unused flag bandwidth-limit-logging and related code.
2015-08-04 01:47:15 -04:00
Steven Siloti
e6b3df3696
pass torrent_handle by const ref in the plugin api
2015-07-25 09:57:55 -07:00
Steven Siloti
423a18ecb1
add missing include
2015-07-25 08:58:32 -07:00
Steven Siloti
e0e06bc87a
switch to peer_connection_handle for optimistic unchoking
...
This is necessary to enable external plugins since the vector is passed to
plugins via on_optimistic_unchoke.
2015-07-23 20:48:35 -07:00
Steven Siloti
2c1f24c036
switch to session_handle in plugin api
2015-07-23 20:13:32 -07:00
Steven Siloti
fbc67b4e21
switch to torrent_handle in plugin api
2015-07-23 19:52:23 -07:00
Mikhail Titov
df21a7e8ce
Use scrape & i2p bitset flags for request
2015-07-14 14:13:10 -05:00
Steven Siloti
9bf1d6c5e9
peer_connection_handle
2015-07-12 14:40:03 -07:00
Alden Torres
a856ae6e9b
Added dht_get_peers and dht_announce at session level.
...
Refactored dht_put_item to dht_put_immutable_item in session_impl since the get operations are not overloaded (consistency).
Added allow_threading_guard to add_dht_node python binding.
Making dht_put_item in session returns a zeroed hash if TORRENT_DISABLE_DHT (avoid unnecessary calculation and it's more consistent).
Added missing DHT operations to the python binding.
Added missing allow_threading_guard to add_dht_node in the python binding.
2015-07-12 10:37:16 -04:00
arvidn
42638c3540
don't ignore errors from setup_listener()
2015-07-11 23:16:37 -04:00
arvidn
2739def57f
minor cleanups. use libtorrent typedefs for asio. failing to bind IPv6 UDP socket is no longer fatal. removed some redundant listen_failed_alerts
2015-07-11 23:01:27 -04:00
arvidn
ed8e4135b2
move include statement to correct place
2015-07-11 22:04:04 -04:00
arvidn
2ab445135a
only retry binding the socket to a new port if the last attempt failed with address-in-use. On other errors, give up immediately
2015-07-11 18:49:53 -04:00
arvidn
a63cfd2a95
improve logging (specifically don't emit bandwidth limiter logs when it's disabled)
2015-07-05 18:44:02 -04:00
Alden Torres
f772675d95
Removed uTP implied port logic from dht_announce.
2015-07-01 15:30:09 -04:00
Alden Torres
fcac7140f8
Added dht_get_peers and dht_announce at session_impl level.
2015-07-01 15:30:08 -04:00
arvidn
94d6e06c97
first step in making opening all the listen sockets a bit more reliable
2015-06-29 23:10:09 -04:00
arvidn
a754559ac6
improve logging aroud binding listen sockets
2015-06-28 09:13:59 -04:00
Mikhail Titov
77ca1ac16f
Quadruple handshake timeout for i2p
2015-06-24 19:40:17 -05:00
arvidn
8b66fbe194
fix bug in previous commit
2015-06-20 18:17:49 -04:00
arvidn
a500ff57be
improve logging of the choker and reliability of the test_auto_unchoke
2015-06-19 01:43:09 -04:00
arvidn
5cb095f6d2
support using 0 disk threads (to perform disk I/O in network thread)
2015-06-14 16:00:04 -04:00
arvidn
aa6598b2e6
don't return an internal session_settings type from the session, return a settings_pack instead
2015-06-07 00:23:30 -04:00
arvidn
9af8841244
remove some unnecessary asio typedefs in the libtorrent namespace, just pull ip::tcp and ip::udp
2015-06-06 13:49:18 -04:00
arvidn
41533205be
drop support for boost 1.35 and fix some more references to the asio namespace
2015-06-06 02:10:53 -04:00
Arvid Norberg
d43f7b56a2
update copyright year
2015-06-03 05:18:48 +00:00
Arvid Norberg
0351326add
separate the main thread and the io_service from session_impl. The io_service object is now simply run() in the main thread, all initialization is done by posting messages to it. This generalizes session_impl to some degree, enables future expansion to run in multiple threads (although, the peers and torrents don't support this). This patch also makes it possible to pass in a third party io_service to the session, but at this point that's mostly useful for tests, as it's not well supported
2015-06-03 03:04:44 +00:00
Arvid Norberg
9b0313bd8e
hold settings_pack by shared_ptr when passing it across thread boundaries. don't allocate it on the heap redundantly
2015-05-29 05:27:53 +00:00
Arvid Norberg
e44c8e9002
optimize logging of DHT packets by deferring copying and printing, to only do it if the alert category is enabled
2015-05-28 20:36:22 +00:00
Arvid Norberg
27cbfa164e
minor cleanup
2015-05-28 14:46:12 +00:00
Arvid Norberg
7f5aff9823
don't trigger recalculating auto-managed unconditionally when adding a new torrent, only in the case where it will most likely be started right away
2015-05-27 20:21:50 +00:00
Arvid Norberg
06bf225237
fix release build and tune want_tick
2015-05-26 20:09:19 +00:00
Arvid Norberg
09bc072c31
inactive/auto managed fixes. fix client_test key input
2015-05-26 18:39:49 +00:00
Arvid Norberg
c6f8dd408a
optimize recalculate auto-managed
2015-05-25 21:46:42 +00:00
Arvid Norberg
0052fa6c19
some cleanup to dht observers (don't expose internals)
2015-05-22 02:42:26 +00:00
Arvid Norberg
0de44067aa
fix warnings
2015-05-19 04:59:31 +00:00
Arvid Norberg
607e708bc4
fix warnings
2015-05-19 03:13:49 +00:00
Arvid Norberg
88fe6eba9c
fix issues introduced in dht logging patch
2015-05-17 20:59:18 +00:00
Arvid Norberg
c871610408
fix bug in DHT logging. clean up some whitespace
2015-05-17 02:00:43 +00:00
Arvid Norberg
58ae099cf8
clean up disk_io_job a bit to avoid old-style casts
2015-05-16 20:41:37 +00:00
Arvid Norberg
99de70604a
remove dht-verbose logging build configuration. tie it to the main logging configuration (which now is on by default) and make it less costly when dht logging alerts are disabled
2015-05-16 19:29:49 +00:00
Arvid Norberg
12c9d3de26
fix more warnings
2015-05-16 18:35:47 +00:00
Arvid Norberg
6a87dc7d84
fix some warnings
2015-05-16 16:24:11 +00:00
Arvid Norberg
2bf4519bee
make the torrent hold a pointer to the ip_filter instead of relying on a session reference
2015-05-16 06:33:37 +00:00
Arvid Norberg
494b425ea1
fix warnings and a peer logging bug
2015-05-10 18:38:10 +00:00
Arvid Norberg
1357fd5265
clean up usage of printf attribute (encapsulate it in a macro)
2015-05-10 05:11:51 +00:00
Arvid Norberg
b60934288b
turn DHT logging into alerts instead of writing to a file
2015-05-10 04:54:02 +00:00
Arvid Norberg
6557910c7f
remove the DHT's last dependency on session_impl
2015-05-09 18:06:02 +00:00
Arvid Norberg
a83dcbaaf0
removed access-log build option and log parser. added incoming_request_alert. This feature can now be implemented by clients
2015-05-09 03:04:08 +00:00
Arvid Norberg
f90537c52d
fix some more coverity issues and add more todo comments
2015-05-05 02:32:14 +00:00
Arvid Norberg
8fdacf9534
address coverity issues and build issue with non atomic 64 bit operations
2015-05-03 22:21:19 +00:00
Arvid Norberg
4f216dece3
factor out strings of peer logs to be enums instead, in peer_log_alert
2015-05-03 02:53:54 +00:00
Arvid Norberg
ab0c97755e
merged fixes from RC_1_0
2015-04-29 05:48:09 +00:00
Arvid Norberg
93a19b44c0
fix another format string issue and add comments to kademlia
2015-04-26 06:25:08 +00:00
Arvid Norberg
2fb1a0f3c7
fix msvc build issue
2015-04-26 01:25:45 +00:00
Arvid Norberg
821e34c795
fix examples build. fix print formatting bugs. fix some gcc warnings
2015-04-25 04:22:51 +00:00
Arvid Norberg
0b063de9ff
fix more warnings
2015-04-21 04:30:34 +00:00
Arvid Norberg
3951377d95
fix include paths for warning push and pop headers
2015-04-21 01:16:28 +00:00
Arvid Norberg
4fd230dbe5
fix build and some warnings
2015-04-20 00:01:27 +00:00
Arvid Norberg
408232cfc8
raise warning level. fix a few of them. filter out warnings from boost
2015-04-18 02:33:39 +00:00
Arvid Norberg
1faf2e201f
inversed TORRENT_LOGGING build config to enable logging by default. It's now disabled by TORRENT_DISABLE_LOGGING
2015-04-17 01:15:33 +00:00
Arvid Norberg
bb48b6e83c
eliminate one more session dependency in peer_connection
2015-04-10 01:50:42 +00:00
Arvid Norberg
6d09050d08
fix build without deprecated functions
2015-04-06 00:06:26 +00:00
Arvid Norberg
b07b208a4a
rate limit how often recalculate_auto_managed can be called (it's expensive)
2015-04-05 19:35:58 +00:00
Arvid Norberg
013ed36f09
landed alert_queue feature branch into trunk
2015-04-03 20:15:48 +00:00
Arvid Norberg
837e709628
deprecate RSS API
2015-03-28 17:31:27 +00:00
Arvid Norberg
ccc7e45406
landed mutable torrents branch in trunk
2015-03-21 00:12:40 +00:00
Arvid Norberg
37225b71ae
const static -> static const (thanks gubatron). helps swigs parser
2015-03-14 00:42:27 +00:00
Arvid Norberg
6c1df7eb55
landed the bdecode branch in master. lazy_bdecode/lazy_entry is now being replaced by bdecode/bdecode_node
2015-03-12 05:20:12 +00:00
Arvid Norberg
c1dc982f4f
deprecate the ptime type and related time types. just use boost::chrono / std::chrono
2015-03-12 04:34:54 +00:00
Arvid Norberg
0c8aee014c
implemented utp extension header to indicate the reason to close the connection
2015-02-28 19:51:15 +00:00
Arvid Norberg
91270a0c2b
make operation_t public and document it. include peer disconnects in client_test log
2015-02-15 05:17:09 +00:00
Arvid Norberg
9b91508c38
clean up session_interface and tracker_manager a bit. work on making tracker_manager more testable
2015-02-01 14:30:43 +00:00
Arvid Norberg
d9e69db0cb
actually make use of the max_failcount setting
2015-01-20 06:26:22 +00:00
Arvid Norberg
54eb499803
make post_torrent_updates more flexible by allowing to pass flags to it. The same flags as torrent_handle::status. Also make the default return accurante progress
2015-01-20 02:46:23 +00:00
Arvid Norberg
431fa2ac55
fix python binding build (and expose the new dht stats alert)
2015-01-18 21:36:24 +00:00
Arvid Norberg
22a02f4a1f
make dht_tracker be held by shared_ptr instead of intrusive_ptr. remove redundant performance counter (total dht sent/received). report DHT IP overhead to the IP overhead counters
2015-01-17 22:06:30 +00:00
Arvid Norberg
58d93e5aa1
add new (non-deprecated) access to dht stats, asynchronously via an alert
2015-01-17 17:02:58 +00:00
Arvid Norberg
b9b657c3d4
post alerts instead of writing to a file, in local peer discovery, when logging is enabled
2015-01-16 23:01:14 +00:00
Arvid Norberg
2943bd4d7d
make test_privacy more reliable
2015-01-14 01:59:23 +00:00
Arvid Norberg
c9075a530d
fix build
2015-01-06 22:17:22 +00:00
Arvid Norberg
1a53a454ec
fix ssl unit test
2015-01-06 08:16:03 +00:00
Arvid Norberg
0f37e3403c
transition from intrusive_ptr to shared_ptr. don't export initialize_default_settings
2015-01-06 08:08:49 +00:00
Arvid Norberg
1b254e16c2
remove comment
2015-01-05 12:25:10 +00:00
Arvid Norberg
bb33b061e4
clean up session_impl
2015-01-04 22:26:26 +00:00
Arvid Norberg
35b41858cf
deprecated session_status and session::status() in favor of performance counters
2015-01-04 21:31:02 +00:00
Arvid Norberg
68ffd3c47c
restore breakage of recalculate_automanaged_torrents, and fix the logic for checking torrents
2015-01-04 21:14:46 +00:00
Arvid Norberg
1218e328cd
SSL fixes (especially over uTP)
2015-01-04 01:04:56 +00:00
Arvid Norberg
764b09d6b5
make the peer fingerprint a regular setting and remove it from the main session constructor argument list
2014-12-31 15:51:45 +00:00
Arvid Norberg
1039d4ae86
tweak some TODO comments and fix one
2014-12-31 14:41:35 +00:00
Arvid Norberg
0977d94dbc
merged changes from RC_1_0
2014-12-25 11:24:02 +00:00
Arvid Norberg
ae04b80fe1
cancel non-critical DNS lookups when shutting down, to cut down on shutdown delay
2014-12-17 02:44:27 +00:00
Arvid Norberg
a3d1a493fd
disable logging alerts in client_test
2014-12-10 09:45:38 +00:00
Arvid Norberg
1ce3bdf0d0
update send and received byte performance counters immediately, to avoid the one second quantization in stats
2014-12-10 05:49:17 +00:00
Arvid Norberg
09bc1550e9
simplify the debug logging mechanism. There's now only one build option, logging=on or logging=off. When logging is enabled, the log level is controlled by the alert mask. All log events are delivered as alerts and it's up to the client to write them to disk in whatever way seems appropriate. removed the pointless logger plugin
2014-12-09 09:08:26 +00:00
Arvid Norberg
658e2ceefd
merged Steven Siloti's peer crypto patch into trunk
2014-11-23 06:14:47 +00:00
Arvid Norberg
601f0dc434
merged changes from RC_1_0
2014-11-03 06:15:51 +00:00
Arvid Norberg
34af25beaa
merged chagnes from RC_1_0
2014-11-01 22:47:56 +00:00
Arvid Norberg
02a9ea18b7
deprecated auto_expand_choker. started factoring out choker logic into its own translation unit (preparing for making it unit testable)
2014-10-22 22:06:56 +00:00