Commit Graph

1762 Commits

Author SHA1 Message Date
Arvid Norberg 9964b9cdb6 support a separate option to use proxies for peers or not 2011-01-24 03:24:28 +00:00
Arvid Norberg 2732a6bc47 move alert queue size limit into session_settings. make some alerts non-discardable (don't throw them out, even when the queue is full). Make session pause also pause all checking files. optimize rejecting incoming connections when the session is paused 2011-01-23 18:00:52 +00:00
Arvid Norberg 021a774168 rate limit outstanding-disk performance warnings. don't throttle reading form peers because of disk congestion if the peer isn't downloading payload. Don't time out peers that are not waiting on the network 2011-01-23 02:09:54 +00:00
Arvid Norberg de28a57954 add back version in DHT packets 2011-01-23 02:02:04 +00:00
Arvid Norberg 1dc0e71716 added torrent_error_alert when a torrent encounters an error 2011-01-22 19:06:43 +00:00
Arvid Norberg 6663f527da fixed error handling in torrent_info constructor 2011-01-19 10:07:51 +00:00
Arvid Norberg ed39e3c307 make electric fence happy by not allocating 0 bytes 2011-01-19 08:41:39 +00:00
Arvid Norberg 35aaec3b38 fix read buffer bug in udp_socket 2011-01-19 07:16:45 +00:00
Arvid Norberg ba0aed2282 initial support for DHT RSS feeds 2011-01-19 05:57:44 +00:00
Arvid Norberg c223291fb4 added support for RSS feeds 2011-01-18 03:41:54 +00:00
Arvid Norberg eec2672d26 fixed up some edge cases in DHT routing table and improved unit test of it. Primarily fixed issues where an IP could take over someone elses node ID and where an IP would change its node ID 2011-01-17 07:49:44 +00:00
Arvid Norberg baffe32942 debug logging fix 2011-01-16 22:28:31 +00:00
Arvid Norberg a2df36afcd fix typo 2011-01-16 20:46:17 +00:00
Arvid Norberg f6a32d0f25 use memcpy() instead of std::memcpy() 2011-01-16 20:45:18 +00:00
Arvid Norberg e31aceeda4 added error category and error codes for HTTP errors 2011-01-16 02:54:59 +00:00
Arvid Norberg b49999b76e made the DHT implementation slightly more robust against routing table poisoning and node ID spoofing 2011-01-08 08:54:51 +00:00
Arvid Norberg ee7c713af7 support chunked encoding in http downloads (http_connection) 2011-01-06 04:08:57 +00:00
Arvid Norberg 1bc50983dc don't connect to privileged ports by default 2010-12-31 00:33:23 +00:00
Arvid Norberg 71e4172bde minor redirect fix for http_connection 2010-12-30 22:51:15 +00:00
Arvid Norberg a3e7095f84 url downloading fix 2010-12-30 06:46:28 +00:00
Arvid Norberg 26053e4b76 support adding torrents by url to a .torrent file 2010-12-30 01:47:30 +00:00
Arvid Norberg ae41b2598b fix non-dht build 2010-12-29 02:17:44 +00:00
Arvid Norberg ea04fbb22c support CDATA in xml parser 2010-12-29 01:59:41 +00:00
Arvid Norberg fc0bd8066b use a python python dictionary for settings instead of session_settings object (in python bindings) 2010-12-26 08:03:02 +00:00
Arvid Norberg dc9af94ee1 avoid self-assignment of tcp::endpoint (causes a memcpy with overlapping ranges) 2010-12-25 09:13:50 +00:00
Arvid Norberg 8c3ad6b4f3 asio debugging fixes and test_transfer fixes 2010-12-24 18:15:01 +00:00
Arvid Norberg 18228d6615 fix warning in utp_stream 2010-12-24 01:32:26 +00:00
Arvid Norberg 451c583023 more robust mechanism to determine external IP 2010-12-24 01:31:41 +00:00
Arvid Norberg 8cec51fc47 fixes to make valgrind happy 2010-12-24 01:22:49 +00:00
Arvid Norberg 491b876329 fixed some msvc warnings 2010-12-19 09:50:58 +00:00
Arvid Norberg 650f02eba7 fixed some windows build issues 2010-12-19 08:12:31 +00:00
Arvid Norberg 20d4279177 optimized piece picking to not cause busy loops in some end-game modes 2010-12-18 10:19:34 +00:00
Arvid Norberg f2416af718 added feature to turn off making outgoing connections for seeds 2010-12-17 03:20:36 +00:00
Arvid Norberg d554cf88e6 optimized swarm startup time (shaved off about 1-2 seconds) by introducing torrent connection boost on the first tracker response for a torrent 2010-12-17 03:10:56 +00:00
Arvid Norberg 4fcfceb087 DHT optimizations and fixes. Fixed routing table bucket splitting 2010-12-12 20:36:42 +00:00
Arvid Norberg b56a1638ae DHT fixes. fixed bucket refresh issue. re-introduced refreshing our own bucket regularly. added more DHT instrumentation in session_status. added alert for when bootstrap is complete. Fixed bootstrap to ping remaining nodes when search is complete. Completed recent DHT observer rewrite to remove some redundant fields 2010-12-12 03:17:08 +00:00
Arvid Norberg 67d1c57b5e bumped some limits in dump_torrent 2010-12-11 22:00:20 +00:00
Arvid Norberg 29ed03f720 first implementation of DHT security implementation. tie the node ID to the external IP 2010-12-11 09:38:07 +00:00
Arvid Norberg 1e82df3e45 support partial hash DHT lookups 2010-12-06 06:39:16 +00:00
Arvid Norberg 779014ddac support requesting UPnP and NAT-PMP routers for our external IP address 2010-12-05 20:40:28 +00:00
Arvid Norberg 1c99bf1de3 more network thread asserts to make sure only the network thread touches network-thread only data. Also delay starting the network thread until after the session constructor is done with its setup 2010-12-04 22:20:31 +00:00
Arvid Norberg 94ef3eaf4b windows build fixes 2010-12-01 05:47:18 +00:00
Arvid Norberg f4746f4090 verbose logging cleanup 2010-12-01 04:22:03 +00:00
Arvid Norberg 2e69366b02 reverted part of the file_storage API to match the previous one more closly 2010-11-29 05:44:29 +00:00
Arvid Norberg f82321c1dd add a backwards compatible lazy_bdecode() 2010-11-29 02:48:40 +00:00
Arvid Norberg e5f980d80d merged uTP branch into trunk (yay) 2010-11-29 01:33:05 +00:00
Arvid Norberg 80611bd12c some settings save-fixes and reverting some unnecessary changes in the utp branch 2010-11-28 22:36:26 +00:00
Arvid Norberg 134dae1c8b add missing header files to makefile install 2010-11-28 18:47:20 +00:00
Arvid Norberg 2e871382d7 add debug configuration to debug shutdown-stall bugs / outstanding async operations 2010-11-28 01:47:30 +00:00
Arvid Norberg af6ac4aca9 some solaris build fixes 2010-11-28 00:26:33 +00:00
Arvid Norberg f21251cba8 limit number of torrents tracked by DHT and support DHT name lookups 2010-11-27 03:09:28 +00:00
Arvid Norberg d1cb2d52ff fixed build issues with with vernose logging enabled 2010-11-26 20:44:48 +00:00
Arvid Norberg faccbd8ae3 introduce safety limit on total number of items in bencoded trees in lazy_bdecode. Document lazy_bdecode and its error codes. Make dump_torrent able to change the decoding limits 2010-11-25 02:49:50 +00:00
Arvid Norberg 894db973e8 optimized memory usage of torrent_info and file_storage 2010-11-24 23:49:22 +00:00
Arvid Norberg d98a8b04a5 make storage constructor a boost.function for flexibility. Also added some documentation for trackerid 2010-11-18 17:36:11 +00:00
Arvid Norberg a05acc4bac support trackerid tracker extension 2010-11-18 05:51:52 +00:00
Arvid Norberg 40ed231366 fixed tracker timeout handling 2010-11-18 01:06:33 +00:00
Arvid Norberg 71d51b90e8 more size logging and potential fix for udp_tracker_connection leak 2010-11-16 06:41:35 +00:00
Arvid Norberg 62f8cac2b9 fixed typo 2010-11-15 05:15:43 +00:00
Arvid Norberg 8c404cc5c1 optimized memory usage of torrent_info 2010-11-15 05:10:36 +00:00
Arvid Norberg 79f6b5856b verbose logging fixes 2010-11-15 04:43:53 +00:00
Arvid Norberg 873febb894 don't flush every string printed to the log 2010-11-06 23:02:24 +00:00
Arvid Norberg a2a2ac08a2 move queue_position and need_save_resume into torrent_status. optimized client_test to make fewer synchronous calls and pull more out of torrent_status 2010-11-06 18:04:07 +00:00
Arvid Norberg 589c560a45 fixed build with boost-1.44 2010-11-06 16:16:00 +00:00
Arvid Norberg 1c7e5506e9 report stats on the number of dht request observers that are currently allocated 2010-11-06 07:12:57 +00:00
Arvid Norberg d3a8916f02 further simplify the DHT by getting rid of the result type and just using observers instead. This might save some memory and should fix the assert that would be triggered before 2010-11-05 19:06:50 +00:00
Arvid Norberg 8737a339c8 refactored verbose peer logging to use format strings 2010-10-31 22:12:26 +00:00
Arvid Norberg f57e1dd622 chunked encoding fixes and added support for http seeds as well 2010-10-31 03:05:11 +00:00
Arvid Norberg a76570b563 deprecated a bunch of query functions on torrent_handle in favor of using status() to get as much information as possible in fewer calls, and saving time on synchronizing with the main thread 2010-10-30 17:23:30 +00:00
Arvid Norberg 08a234f6a6 document peer turnover settings and update default settings to enable it. In trunk, make the peer turnover interval configurable as well 2010-10-30 15:59:57 +00:00
Arvid Norberg e4de1fc8b1 graceful disconnect mode which finishes transactions before disconnecting peers 2010-10-30 08:36:18 +00:00
Arvid Norberg 0dbef9103a some reordering and asserts around web seed name resolution 2010-10-30 07:11:04 +00:00
Arvid Norberg 2e05dc765a make the listen argument configurable 2010-10-29 08:10:12 +00:00
Arvid Norberg 40245c5774 increased the interval between switching peers for round-robin seeding 2010-10-29 02:52:42 +00:00
Arvid Norberg f84cc340df fixed a bunch of sloppy typos 2010-10-29 02:42:41 +00:00
Arvid Norberg 9b323c372d changed default choker behavior to use 8 unchoke slots (instead of being rate based) 2010-10-29 02:28:13 +00:00
Arvid Norberg 0d196d3c84 document the problem of the disk cache potentially modifying files after saving resume data. In trunk, add a flag to flush the cache in the same call as saving resume data 2010-10-29 02:21:43 +00:00
Arvid Norberg fc1b44b560 improve error reporting of lazy_bdecode to use error_code 2010-10-28 04:01:59 +00:00
Arvid Norberg d737dd051d added support for chunked encoding for web seeds 2010-10-27 06:39:18 +00:00
Arvid Norberg 9f37b703ea mark num_connections and num_uploads as deprecated 2010-10-25 23:11:58 +00:00
Arvid Norberg 02abc5919f fixed performance counter macro 2010-10-24 08:08:24 +00:00
Arvid Norberg 07f1b74291 fixed logging build 2010-10-24 08:06:58 +00:00
Arvid Norberg 6387910a42 use rolling average instead of a history and actual average for stats. Saves memory 2010-10-24 01:22:10 +00:00
Arvid Norberg 84d81d3a82 fixed up link test to make sure library and client are using the same configuration, also factored out common code from session constructor 2010-10-24 00:44:07 +00:00
Arvid Norberg 9a461c5e46 reduce some warnings 2010-10-22 05:39:32 +00:00
Arvid Norberg cadd4f1b8d anti-leach seeding unchoke mode 2010-10-21 05:53:13 +00:00
Arvid Norberg 2ccf08e9b5 fixed bug in create torrent when adding sha1 file hashes to each file 2010-10-18 00:46:15 +00:00
Arvid Norberg eba657d8ad reports redundant downloads to tracker, fixed downloaded calculation to be more stable when not including redundant. Improved redundant data accounting to be more accurate 2010-10-18 00:10:33 +00:00
Arvid Norberg 3948ca3179 fixed bugs in http seed connection and added unit test for it 2010-10-17 16:15:32 +00:00
Arvid Norberg 559c4bdf65 fixed some msvc warnings 2010-10-16 15:24:45 +00:00
Arvid Norberg 7bd25edc9d generalize SSL support to also include web seeds (and in theory regular peers) 2010-10-12 08:57:43 +00:00
Arvid Norberg 43b29c3627 support web seeds in create_torrent and fix issue when building without deprecated functions 2010-10-10 21:06:35 +00:00
Arvid Norberg 72322dbc10 allow extending web seeds with extra headers and custom authorization schemese 2010-10-10 18:43:58 +00:00
Arvid Norberg 3b550ece98 don't save settings that are set to the default value 2010-10-10 02:22:57 +00:00
Arvid Norberg e494cb219b made seeding choking algorithm configurable 2010-10-09 21:11:03 +00:00
Arvid Norberg 21cbd1fac4 deprecated setters for max connections, max half-open, upload and download rates and unchoke slots. These are now set through session_settings 2010-10-09 19:09:38 +00:00
Arvid Norberg 45f535e80c fixed build (with fresh boost) 2010-10-09 02:58:56 +00:00
Arvid Norberg 8212d2f161 document the new proxy interface and deprecate it in the 0.15 branch 2010-10-07 06:02:35 +00:00
Arvid Norberg e72d95384b added missing include 2010-10-04 16:12:51 +00:00
Arvid Norberg 440abdfaf2 optimistic unchoke fix 2010-10-04 04:06:14 +00:00
Arvid Norberg f11b1ce6a0 fixed failing invariant check in peer_connection's download queue 2010-10-03 22:06:53 +00:00
Arvid Norberg 8e4addf2c5 improved set_max_connections to immediately disconnect peers to match the new limit 2010-10-03 10:07:38 +00:00
Arvid Norberg a7c87e14dd added functions to query an individual peer's upload and download limit 2010-10-01 16:09:22 +00:00
Arvid Norberg cd08a61f35 expose the full peer list size through session_status 2010-10-01 04:07:38 +00:00
Arvid Norberg 29c5b99bba fixed natpmp retry issue 2010-09-30 06:33:42 +00:00
Arvid Norberg ecf13f2475 fixed typo in config relating to buffer debug builds 2010-09-26 00:44:14 +00:00
Arvid Norberg 554e329f57 remove udp_socket mutex 2010-09-25 21:39:27 +00:00
Arvid Norberg e6d400084e fix to start async operations inside the network thread to maintain thread safety within asio 2010-09-25 20:07:27 +00:00
Arvid Norberg c341f15f71 make the assert macro also be able to print a value 2010-09-25 17:46:13 +00:00
Arvid Norberg d894dd43d8 improved web seed retry behavior 2010-09-21 06:34:13 +00:00
Arvid Norberg 4aa809e558 potential 64 bit build issue related to zlib 2010-09-07 03:37:33 +00:00
Arvid Norberg 3fb9fcab9e full support for bep-21 (event=paused) 2010-09-06 04:02:15 +00:00
Arvid Norberg b6f92aa981 added initial support for share-mode 2010-09-05 16:01:36 +00:00
Arvid Norberg c072c7869f some more missing includes 2010-09-01 15:44:33 +00:00
Arvid Norberg 8e9bb58fb9 fixed missing include 2010-09-01 15:39:31 +00:00
Arvid Norberg a17f4e4e71 fixed bug where event=completed would not be sent if it violated the min-interval 2010-09-01 03:14:12 +00:00
Arvid Norberg 11f3dd2c4c DEBUG_BUFFERS doesn't work unless pool allocators are turned off 2010-09-01 02:58:51 +00:00
Arvid Norberg cf6772d9fd potential build fix for windows (in 0.14 branch) 2010-08-28 22:05:20 +00:00
Arvid Norberg 18a3d545b0 fixed potential hang issue when receiving faster than we can handle the incoming messages 2010-08-28 19:44:50 +00:00
Arvid Norberg e2ca3e1545 rate limiter fix 2010-08-27 14:52:42 +00:00
Arvid Norberg 02668e8f75 fix message posting to work from multiple threads 2010-08-26 17:00:24 +00:00
Arvid Norberg fb8ebc53dd save resume data every 15 minutes no matter what 2010-08-25 06:38:04 +00:00
Arvid Norberg 58574c236a fixed build error when using boost 1.44 2010-08-25 06:03:40 +00:00
Arvid Norberg b7b542f587 optimized file_pool lookups and string handling 2010-08-23 08:48:02 +00:00
Arvid Norberg b747cdab8a merged all proxy settings into a single one 2010-08-23 06:27:18 +00:00
Arvid Norberg 80fbe4d5ef fixed build issues 2010-08-22 17:47:07 +00:00
Arvid Norberg de3db7e84e don't lock disk cache in RAM by default 2010-08-22 17:39:48 +00:00
Arvid Norberg f70fbb45c0 optimized struct layout of torrent_info. removed boost.date_type types from public interface (replaced by time_t) 2010-08-21 22:10:16 +00:00
Arvid Norberg afd5567969 session::set_tracker_proxy fix for udp trackers 2010-08-21 22:07:29 +00:00
Arvid Norberg a85f1f5c61 improved logging 2010-08-18 17:14:40 +00:00
Arvid Norberg cbc7bd078d fix no-exception build 2010-08-08 04:06:06 +00:00
Arvid Norberg fd5f1bf80b improved SOCKS5 support 2010-08-03 09:08:37 +00:00
Arvid Norberg 9d56f3f459 restored default fail_limit to unlimited on all trackers 2010-08-03 03:00:54 +00:00
Arvid Norberg 6ab555659c anonymous mode fix (don't resolve countries, since that gives away IPs) 2010-08-02 06:16:32 +00:00
Arvid Norberg ef48c92a4e fixed SOCKS5 bug for routing UDP packets 2010-07-25 01:31:15 +00:00
Arvid Norberg 030b2b5be8 don't dereference empty strings 2010-07-24 06:46:58 +00:00
Arvid Norberg 9109af0ce1 fix for disk job queue size measurement 2010-07-23 16:15:14 +00:00
Arvid Norberg 72060e8676 removed DHT mutex since everything is in the network thread now 2010-07-19 05:27:33 +00:00
Arvid Norberg 9baa280b52 added asserts to catch broken peer allocations and frees as well as disk buffer corruption 2010-07-18 19:28:22 +00:00
Arvid Norberg a3f5962f91 ignore failures in when asking for local_endpoint 2010-07-18 14:45:43 +00:00
Arvid Norberg 1e70456f58 improved support for multi-homed clients 2010-07-17 07:13:14 +00:00
Arvid Norberg 9a9c121ec0 fixed assert typo 2010-07-15 06:31:39 +00:00
Arvid Norberg 4c6be42b74 added feature to not count downloaded bytes from web seeds in stats 2010-07-15 06:27:44 +00:00
Arvid Norberg b3f57ac293 added incoming lsd alert 2010-07-15 05:56:29 +00:00
Arvid Norberg aa25ed00c6 fix force-reannounce and tracker retry issue 2010-07-15 05:16:06 +00:00
Arvid Norberg 97afe3fca8 added option to set file priorities when adding torrents 2010-07-15 01:14:36 +00:00
Arvid Norberg a3d95677b0 fixed build errors from last check-in 2010-07-14 07:38:35 +00:00
Arvid Norberg 4e576f93fd removed the session mutex for improved performance 2010-07-14 04:16:38 +00:00
Arvid Norberg 3310198dae added upload and download activity timer stats for torrents 2010-07-08 19:29:38 +00:00
Arvid Norberg 92593abf89 added support for SOCKS5 proxies in client_test and fixed an assert when using proxies 2010-07-03 06:56:09 +00:00