Commit Graph

143 Commits

Author SHA1 Message Date
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