Commit Graph

382 Commits

Author SHA1 Message Date
Steven Siloti 2fed4103f8 scalable thread pool (#770) 2016-06-15 20:49:28 -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
Arvid Norberg e1f7899310 update libsimulator submodule, to reduce warnings (#821) 2016-06-14 18:28:20 -04:00
Arvid Norberg 590f68cd3d make parse_interface_list more robust and improve string tests (#806)
make parse_interface_list more robust and improve string tests
2016-06-12 02:00:10 -04:00
Arvid Norberg ef1a24518d fix dht tests (#803)
fix tests
2016-06-11 15:37:28 -04:00
arvidn 8d51e04344 enable asserts in test build variants 2016-06-10 18:50:07 -04:00
arvidn fd8c575e7e fix mere issue 2016-06-10 14:54:50 -04:00
arvidn c76911e4c6 fix merge 2016-06-10 14:15:22 -04:00
arvidn 1946e6c58b merged RC_1_1 into master 2016-06-10 01:38:32 -04:00
Arvid Norberg 327af3a69e optimize allow-fast logic (#800)
optimize allow-fast logic
2016-06-10 01:24:37 -04:00
Alden Torres 0882d02c53 early resume data reset when fatal_disk_error (#798) 2016-06-10 01:09:49 -04:00
arvidn f4a95131c5 improve asserts in dht_storage 2016-06-10 00:55:17 -04:00
Arvid Norberg 830a79dbcf optimize allow-fast logic (#800)
optimize allow-fast logic
2016-06-09 08:02:41 -04:00
Alden Torres 9d3cf5e68b changed min_distance_exp for correctness and clarity (#789)
changed min_distance_exp for correctness and clarity
2016-06-06 18:22:33 -04:00
Arvid Norberg cbeb7adbde fix .travis script to run simulations (#791)
fix .travis script to run simulations
2016-06-05 22:13:01 -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
Arvid Norberg fa8232cd13 remove some old cruft and defines (#785)
remove some old cruft and defines
2016-06-04 10:03:13 -04:00
Arvid Norberg 8c8f5bb03b deprecated public to_hex() and from_hex() functions (#784) 2016-06-04 10:01:43 -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
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 aa0d29b67d merged RC_1_1 into master 2016-05-19 01:28:22 -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 53bd03558c Dht stats 1.1 (#720)
fix missing dht stats counter updates
2016-05-12 21:27:11 -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
arvidn 5cd022cadb fix submodule 2016-05-07 21:43:06 -04:00
arvidn 254906eddc back-port torrent peer-class fix from master 2016-05-07 14:56:22 -04:00
arvidn 6d49d9d061 update libsimulator submodule 2016-05-06 17:41:52 -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 ff0675e64e use standard array container (#676) 2016-04-30 23:10:47 -04:00
Arvid Norberg 4e97bf556c use override and final keywords (unconditionally) (#668)
use override and final keywords instead of macros.
2016-04-30 11:05:54 -04:00
Arvid Norberg 46b33f920b remove explicit cache feature (#661)
remove explicit cache feature
2016-04-29 02:32:00 -04:00
Steven Siloti 2d9a6b76f1 use asio::protcol instead of an enum/bool 2016-04-24 15:18:47 -07:00
Steven Siloti 43be11177b Add dual stack DHT node simulation tests 2016-04-24 14:26:57 -07:00
Steven Siloti 2abd9867ce IPv6 DHT support
Fixes #110
2016-04-24 14:26:57 -07: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
arvidn 04a3c04075 merged RC_1_1 into master 2016-04-20 08:08:05 -04:00
arvidn bd6efe1179 fix simulator submodule 2016-04-18 08:37:58 -04:00
arvidn 93408a02ff fix classification of UDP packets as peer traffic 2016-04-18 01:29:46 -04:00
arvidn 8dd1da9d32 fix warnings 2016-04-17 01:56:05 -04:00
arvidn 680eddf3d4 remove -msse4.2 commandline option from configure script 2016-04-15 23:50:45 -04:00
arvidn d84a38fdf2 improve converters for add_torrent_params 2016-04-15 00:48:47 -04:00
arvidn d17ae19391 Merge branch 'RC_1_1' 2016-04-11 02:08:06 -04:00
arvidn ccc038a7df update libsimulator submodule 2016-04-09 14:22:05 -04:00
arvidn 5d499e83b6 fix uTP/SSL 2016-04-09 10:50:45 -04:00
arvidn 044ee0f054 update simulator submodule 2016-04-08 22:42:48 -04:00
arvidn db4d46b492 fix test_tracker sim 2016-04-08 08:41:19 -04:00
arvidn 867b83ccda merged RC_1_1 into master 2016-04-08 02:20:24 -04:00
arvidn 876cef0d4c restore the ipv6 http tracker argument, but restricted to only private torrents 2016-04-07 00:06:04 -04:00
arvidn f299d1578c restore libsimulator submodule 2016-04-06 22:59:29 -04:00
arvidn 387498e54f clean up in piece picker 2016-04-06 00:45:21 -04:00
Steven Siloti 4949721389 apply {get,set}_option to the appropriate socket based on the option's level
This avoids spurious errors being returned when trying to apply IPv4 options to
the IPv6 socket and vice-versa.
2016-04-04 13:45:06 -07:00
arvidn 9c712421c6 add missing include file to makefile 2016-03-30 01:46:33 -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 2b00eb1b38 refactor and clean up some sim tests 2016-03-27 18:40:49 -04:00
arvidn 96e2693d13 merge RC_1_1 into master 2016-03-19 16:02:46 -04:00
arvidn d3df16cd12 convert tracker try-next test to be a simulation (and deterministic) 2016-03-18 14:38:45 -04:00
arvidn f79a9c7adf merged RC_1_1 into master 2016-03-16 19:59:53 -04:00
arvidn 921cbeebed add option to delete just the partfile when removing a torrent 2016-03-14 08:26:39 -04:00
arvidn 0b4339064f extend timeouts 2016-03-13 23:13:12 -04:00
arvidn 58e73c1469 fix typo 2016-03-13 20:47:50 -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 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 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 2fd8047308 merged RC_1_1 2016-02-24 21:22:39 -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 c9d7e54d7b make tests pass 2016-02-20 12:50:52 -05:00
arvidn 3a4f957b63 Merge branch 'RC_1_1' 2016-02-02 02:02:24 -05:00
arvidn 88b7e3768f add sim test for optimistic unchoke round-robin distribution 2016-02-01 20:28:30 -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 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 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
Steven Siloti 7b5bdc3be9 DHT nodes can NOT share a receive buffer
While the simulation is single threaded, because async_receive_from_impl uses
post() to invoke the receive handler it is possible for multiple receive
handlers to be queued up in the io_service at the same time. If this happens
with a shared receive buffer the last packet received will overwrite all the
other packets before they are handled.

The use of post() is necessary to avoid unbounded recursion in the read handler
so each node must get its own buffer.
2016-01-10 18:30:16 -08: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
arvidn fb8d40a50c update libsimulator to fix msvc build 2015-12-31 21:31:15 -05:00
arvidn 448951af9c update libsimulator submodule 2015-12-28 19:48:58 -05:00
arvidn 1698dc75dc remove redundant boost::bind 2015-12-25 15:59:50 -05:00
arvidn fb9d788bf9 update libsimulator submodule 2015-12-23 23:04:09 -05:00
arvidn 9fd8b1d7c3 update libsimulator submodule 2015-12-23 21:52:11 -05:00
arvidn 63c3ff61e2 update submodule 2015-12-22 01:26:49 -05:00
arvidn 197ca4e06d transition http proxy test for http_connection to the sim 2015-12-22 00:45:16 -05:00
arvidn 99091a67d4 fix submodule 2015-12-19 00:11:04 -05:00
arvidn 1f3f06a836 forward port fix for deleting files of magnet link to master 2015-12-18 18:33:31 -05:00
arvidn 49b5a0d7d9 add support for codecov.io 2015-12-17 00:51:35 -05:00
arvidn 1712a8e4b4 polish the stop-when-ready flag and improve documentation 2015-12-13 20:31:28 -05:00
Arvid Norberg 550b0bb047 Merge pull request #313 from arvidn/setup-swarm-cleanup
clean up setup-swarm simulation utility to be more flexible
2015-12-12 14:07:26 -05:00
arvidn d505f93d7a port sim tests to use the new setup_swarm API 2015-12-12 00:41:47 -05:00
arvidn 1f453bf159 clean up setup-swarm simulation utility to be more flexible to make it easier to add new tests. remove swarm_suite layer as it's not necessary anymore 2015-12-12 00:41:40 -05:00
arvidn d80a129871 fix gcc warnings 2015-12-12 07:15:24 +02:00
arvidn 99eb440945 comment in test_swarm 2015-12-04 23:39:37 -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 7b84c8122e extend test_transfer to include IPv6-only networks 2015-11-28 01:00:06 -05:00
arvidn a8e31fd8ca add first coverage of test_transfer as a proper sim 2015-11-28 00:59:39 -05:00
arvidn 847cd340ee extend tracker sim test and fix some bugs in tracker error reporting 2015-11-24 23:38:49 -05:00
arvidn eed17f0bc1 remove the cases from non-sim test that are covered by the new http_connection sim test 2015-11-24 00:39:02 -05:00
arvidn 47cd496617 extend http_connection sim test to proxy hostnames 2015-11-24 00:39:02 -05:00
arvidn 710e510c4b fix format string to be msvc compatible and work-around issue with boost.asio beeing header-only and instantiating multiple error_category objects when linking shared 2015-11-24 00:39:02 -05:00
arvidn e3dad98fbe fix an old use of posix_category. make http_connection translate IPs into proper endpoints when connecting over socks (instead of passing the IP on as a hostname string). add test coverage 2015-11-24 00:39:02 -05:00
arvidn 92236a9923 clean up error_code use, and use error_condition to test for errors in test_http_connection 2015-11-24 00:39:01 -05:00
arvidn fa3215f8c7 don't capture buffer by value in lambda expression 2015-11-24 00:39:01 -05:00
arvidn 8db3fef969 update libsimulator 2015-11-24 00:39:01 -05:00
arvidn 174e0aeb46 fix semantics of socks5_stream and http_connection to make them not close themselves. Add socks5 and socks4 proxy coverage in test_http_connection 2015-11-24 00:39:01 -05:00
arvidn 91868f2086 add test for gzipped http responses 2015-11-24 00:39:01 -05:00
arvidn 9e971895dc test chunked encoding in new http_connection test 2015-11-24 00:39:01 -05:00
arvidn c6e46ae305 improve http_connection simulation test and extend it 2015-11-24 00:39:01 -05:00
arvidn f4a2b4d949 start of an http_connection test under the simulator 2015-11-24 00:39:01 -05:00
arvidn ed3dbaa78e also make sure trackers are subject to the IP filter 2015-11-21 09:30:02 -05:00
arvidn 73381d223b add integration test for IP filter 2015-11-21 02:31:53 -05:00
arvidn 4a30653084 improve coverage of stop-start-test 2015-11-20 22:27:33 -05:00
arvidn c0d6b20634 extend swarm simulation test to include stopping and starting and graceful pause 2015-11-20 22:27:12 -05:00
arvidn 74d12bd35b update libsimulator 2015-11-07 22:50:51 -05:00
arvidn 2592acfd8c fix c++98 build 2015-11-07 21:14:52 -05:00
arvidn 06f702b21a fix test_tracker build 2015-11-07 14:57:25 -05:00
arvidn 1fa184ba8a fix msvc-10.0 build 2015-11-07 10:01:01 -05:00
arvidn ee7774ea37 fix appveyor build 2015-11-07 00:22:13 -05:00
arvidn 1046f0c121 update libsimulator submodule 2015-11-02 01:16:40 -05:00
arvidn b756465157 update libsimulator 2015-10-31 10:58:20 -04:00
arvidn 3462c061a7 merged error handling fix from RC_1_0 2015-10-31 10:06:15 -04: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
arvidn b2796af5b3 update libsimulator submodule and fix a warning 2015-10-25 16:59:28 -04:00
arvidn 6009547613 update libsimulator submodule 2015-10-25 14:44:05 -04:00
arvidn 3cc464805f update libsimulator submodule 2015-10-25 10:55:20 -04:00
arvidn a75dfe2eb6 silence warnings in boost headers in dht_storage 2015-10-25 09:30:56 -04:00
arvidn 234ac8adeb update libsimulator submodule with IPv6 support 2015-10-24 15:57:22 -04:00
arvidn 51c6079c42 add stop-when-ready feature, to support checking torrents without starting the download afterwards 2015-10-04 13:08:23 -04:00
arvidn cae4e3dfe2 fix documentation 2015-09-29 21:05:18 -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
Alden Torres 197a443465 Fix of dht_storage_counters::peers counter. 2015-09-24 10:50:04 -04:00
arvidn e7a2bd8614 update libsimulator 2015-09-21 16:31:05 -07:00
arvidn fb2f659a31 fix bug in time keeping of active_time, seeding_time, finished_time etc. 2015-09-21 00:38:56 -07:00
arvidn 67a33dd792 update libsimulator 2015-09-20 19:55:29 -07:00
arvidn 73d2b8dc89 more msvc-12 support, and build sim config first on appveyor 2015-09-20 19:31:04 -07:00
arvidn 7000576588 attempt msvc-12 support 2015-09-20 18:52:34 -07:00
arvidn b628692223 separate out announce_entry and torrent_status into their own headers 2015-09-18 08:08:08 -04:00
arvidn c9a0212ee0 add simulation of tracker announces 2015-09-16 20:49:10 -04:00
arvidn 28ffc6969a revert appveyor build image 2015-09-15 08:08:00 -04:00
arvidn 5e3d0dcbb9 update libsimulator submodule 2015-09-12 13:45:35 -04:00
arvidn edc26cf90d update libsimulator 2015-09-10 00:08:39 -04:00
arvidn c0a4f7ba26 fix super seeding assert (forward port from RC_1_0) 2015-09-08 18:17:13 -04:00
arvidn cb65694578 fix const correctness in xml_parse(). update unit tests rss and upnp to use new signature for parser callback 2015-09-06 00:38:33 -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 b0a395aa61 remove unused includes from test 2015-08-30 21:51:32 -04:00
arvidn cc29a99c90 (merge commit from Andrew Starr-Bochicchio <asb@debian.org>) Running setup.py without LDFLAGS or explicitly passing includes will attempt to use bjam. This causes "python setup.py clean -a" to fail when building the package. 2015-08-27 06:52:13 -04:00
arvidn 7f24fb41ef fix test_metadata_extension 2015-08-22 08:09:09 +02:00
arvidn 91a08606cf attempt tp get submodules to work on travis again 2015-08-19 21:38:41 +02:00
arvidn a3608a39fe fix some warnings 2015-08-19 02:00:46 +02:00
arvidn d14e8a3487 update libsimulator 2015-08-17 09:08:41 -04:00
arvidn eecdd3121d fix some build warnings 2015-08-17 09:01:43 -04:00
arvidn 2e5a85056b fix uninitialized variable in test_dht (would cause stall) 2015-08-16 20:45:54 -04:00
arvidn 506d515151 disable dht simulation for now 2015-08-14 08:15:52 -04:00
arvidn 54e483647c scale down the DHT simulation even more 2015-08-13 23:07:32 -04:00
arvidn 225b82d9a0 move test_trackers_extensions over to a simulation and some minor metadata extension and tracker re-announce fixes 2015-08-13 23:07:04 -04:00
arvidn d2819cd1b9 fix uninitialized variable in test_pe_crypto simulation 2015-08-12 20:18:47 -04:00
arvidn 874bfcc89e transitioned test_super_seeding to a simulation (and remove the live test for test_swarm, which already has been transitioned to a simulation) 2015-08-10 10:18:36 -04:00
arvidn f2455c8689 made test_metadata_extension a bit more reliable 2015-08-10 10:02:01 -04:00
arvidn a75699eff1 move test_metadata_extension to a simulation instead of a live test 2015-08-10 09:17:41 -04:00
arvidn a3dbbd6a37 transition the test_pe_crypto system tests to be simulation 2015-08-10 06:57:51 -04:00
arvidn e557e63d05 scale down the dht simulation, to try to make it pass travis and appveyor time limits 2015-08-09 22:07:27 -04:00
arvidn d977f2e68f attempt to make appveyor happy 2015-08-09 17:54:10 -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 6068418def fix and re-enable simulations 2015-08-09 00:56:37 -04:00
arvidn 912243833e fix shared linking of simulations 2015-08-08 23:04:49 -04:00
arvidn 8ea2c0fa48 update libsimulator 2015-08-08 20:41:34 -04:00
arvidn 6cb8b0eeaa update libsimulator 2015-08-08 20:08:45 -04:00
arvidn 3f0a9c6f4d update libsimulator version 2015-08-08 19:31:20 -04:00
arvidn 3963d47385 fix shared linking against libtorrent_test 2015-08-08 18:13:43 -04:00
arvidn 72286eb0dc minor asio.ssl abstraction cleanup. update libsimulator with build fix. only run simulator on one of the build variants on travis, since the simulator does not support ssl 2015-08-08 16:19:44 -04:00
arvidn 3594da7839 on travis, use libc++ together with clang. Update libsimulator to fix gcc build 2015-08-08 13:08:41 -04:00
arvidn 2b0920f407 update libsimulator 2015-08-08 02:53:20 -04:00
arvidn 290ba39d8d update libsmulator 2015-08-07 23:52:11 -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