Commit Graph

594 Commits

Author SHA1 Message Date
Arvid Norberg 8c3ad6b4f3 asio debugging fixes and test_transfer fixes 2010-12-24 18:15:01 +00:00
Arvid Norberg 451c583023 more robust mechanism to determine external IP 2010-12-24 01:31:41 +00:00
Arvid Norberg c4422cd34e optimize test_transfer. fix set_upload_mode() bug for seeds. clean up some verbose logging. fix tests to not fail by EAGAIN on stdout 2010-12-24 00:37:01 +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 0b213d95d2 add missing settings mappings 2010-12-17 03:16:30 +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 5ee6266e93 more DHT fixes 2010-12-12 09:15:54 +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 779014ddac support requesting UPnP and NAT-PMP routers for our external IP address 2010-12-05 20:40:28 +00:00
Arvid Norberg 03bd547f40 potential memory corruption fix when connections close when the disk becomes available 2010-12-04 23:24:42 +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 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 2e871382d7 add debug configuration to debug shutdown-stall bugs / outstanding async operations 2010-11-28 01:47:30 +00:00
Arvid Norberg d1cb2d52ff fixed build issues with with vernose logging enabled 2010-11-26 20:44:48 +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 79f6b5856b verbose logging fixes 2010-11-15 04:43:53 +00:00
Arvid Norberg 02e15202f2 support dht nodes in magnet links 2010-11-07 19:18:16 +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 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 2e05dc765a make the listen argument configurable 2010-10-29 08:10:12 +00:00
Arvid Norberg 07f1b74291 fixed logging build 2010-10-24 08:06:58 +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 517aaf526b fixed assert when shutting down with DHT enabled 2010-10-19 03:43:11 +00:00
Arvid Norberg 643a49f022 optimized session/torrent startup time (shaved off about 2 seconds) 2010-10-17 18:36:37 +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 7bd25edc9d generalize SSL support to also include web seeds (and in theory regular peers) 2010-10-12 08:57:43 +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 440abdfaf2 optimistic unchoke fix 2010-10-04 04:06:14 +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 cd08a61f35 expose the full peer list size through session_status 2010-10-01 04:07:38 +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 e2ca3e1545 rate limiter fix 2010-08-27 14:52:42 +00:00
Arvid Norberg b44f71e217 post alerts for socks failures. fix unit tests 2010-08-25 06:22:49 +00:00
Arvid Norberg b747cdab8a merged all proxy settings into a single one 2010-08-23 06:27:18 +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 a85f1f5c61 improved logging 2010-08-18 17:14:40 +00:00
Arvid Norberg fd5f1bf80b improved SOCKS5 support 2010-08-03 09:08:37 +00:00
Arvid Norberg 67110ec0a3 vs2010 build fixes 2010-07-22 16:49:40 +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 89ca5a157a fixed typos 2010-07-15 06:02:58 +00:00
Arvid Norberg b3f57ac293 added incoming lsd alert 2010-07-15 05:56:29 +00:00
Arvid Norberg c4fac3b91a fixed incorrect assert 2010-07-15 01:46:50 +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 339b0019a4 fixed typo 2010-06-26 17:58:04 +00:00
Arvid Norberg 19c9237ffc fixed crash in on_disk_queue and in on_receive_udp 2010-06-26 17:09:37 +00:00
Arvid Norberg d3970f62a3 fixed invalid assert in session_impl::recalculate_unchoke_slots() 2010-06-25 14:14:36 +00:00
Arvid Norberg 717c7ba962 fixed bug where ignore resume timestamps would not update the disk io thread 2010-06-25 14:06:28 +00:00
Arvid Norberg a0cef76bf2 fixed race condition around m_abort in session_impl 2010-06-24 21:43:00 +00:00
Arvid Norberg 26c4a819c8 removed the reuse-address flag on the listen socket 2010-06-17 17:14:56 +00:00
Arvid Norberg 6a5806bfd2 re-fixed the open_listen_port() issue 2010-06-01 02:04:00 +00:00
Arvid Norberg cdf05a9c9c moved UDP trackers over to use a single socket 2010-05-30 01:33:03 +00:00
Arvid Norberg 2f099e6103 fix open_listen_port call order 2010-05-27 16:20:08 +00:00
Arvid Norberg 126778d403 fix race condition caused by sharing udp socket and opening it in the session thread. Moved initialization to session constructor 2010-05-09 06:03:52 +00:00
Arvid Norberg d0f2b0ade0 make tick interval configurable 2010-05-03 08:54:03 +00:00
Arvid Norberg dce2edb6cc fixed vs 2010 build 2010-04-30 19:08:16 +00:00
Arvid Norberg 2a55fe8c70 debug logging fixes 2010-04-14 18:52:13 +00:00
Arvid Norberg 2e14cfca46 fix crash 2010-04-13 05:59:59 +00:00
Arvid Norberg 384bfdec48 added anonymous mode to disable some particular features that might give away the user's and the client's identity 2010-04-13 04:30:34 +00:00
Arvid Norberg 62eef91338 added setting to ignore file modification time when loading resume files 2010-04-11 21:02:43 +00:00
Arvid Norberg a0a8c695ab fixed typo 2010-03-31 04:22:48 +00:00
Arvid Norberg 310dd7d6f3 properly detect windows version to initialize half-open connection limit 2010-03-31 02:50:09 +00:00
Arvid Norberg 4c4c7f832a fix for torrent announcing bug introduced when supporting fine grained control over sources torrents are announced to 2010-03-31 02:40:00 +00:00
Arvid Norberg 7e851818b1 support more fine-grained torrent states between which peer sources it announces too 2010-03-29 00:34:04 +00:00
Arvid Norberg c6f57ce5d7 support optional LSD IP broadcast 2010-03-26 17:45:16 +00:00
Arvid Norberg b874104fab precaution fix 2010-03-17 19:01:08 +00:00
Arvid Norberg 7775457441 moved GeoIP destruction inside session lock 2010-03-16 07:00:23 +00:00
Arvid Norberg edea865023 fix unloading of GeoIP database to not cause potential crashes while shutting down 2010-03-16 02:50:20 +00:00
Arvid Norberg fc224f29e4 fixed bug in session::save_state 2010-03-13 17:37:47 +00:00
Arvid Norberg 79bd8fcd52 made the default cache size depend on the amount of physical RAM. and fixed disk thread settings update when loading through load_state 2010-03-10 07:14:10 +00:00
Arvid Norberg cbc93c8de8 made load_state and save_state more data-driven to reduce code repetition 2010-03-10 02:28:40 +00:00
Arvid Norberg 06cca08afd retry if accept fails because of too many files 2010-03-09 17:50:10 +00:00
Arvid Norberg b80664bbaa save additional settings in session state 2010-03-08 03:51:07 +00:00
Arvid Norberg 013cef68e8 add flags to session::save_state to filter what is saved 2010-03-06 07:49:40 +00:00
Arvid Norberg e0e253a2a4 fixed geoip build 2010-03-04 22:34:49 +00:00
Arvid Norberg 281b6368f7 deprecate old state saving functions, merge dht state with session state 2010-03-04 16:42:39 +00:00
Arvid Norberg fb06acc828 add default peer rate limit setting 2010-03-03 01:31:31 +00:00
Arvid Norberg 82b60b25c8 made the DHT socket bind to the same interface as the session 2010-03-02 07:21:32 +00:00
Arvid Norberg 3171e81238 include new session settings in saved state 2010-02-21 01:34:23 +00:00
Arvid Norberg 23881fb0ff lsd and dht announce timer fixes 2010-02-14 17:24:53 +00:00
Arvid Norberg 5c02f3df59 fixed DHT bootstrapping issue 2010-02-14 07:46:57 +00:00
Arvid Norberg fe5f908cc6 fixed MinGW support 2010-02-14 04:05:18 +00:00
Arvid Norberg c050b22d8f optimized memory usage for torrent objects 2010-02-14 01:39:55 +00:00
Arvid Norberg 78363cc05d local service discovery fixes 2010-02-13 16:29:17 +00:00
Arvid Norberg 3d5d9eb807 start torrent on incoming connection feature 2010-02-11 04:39:04 +00:00
Arvid Norberg fb47469834 experimental support for the BitTyrant choking algorithm 2010-02-09 03:04:41 +00:00
Arvid Norberg 1a97405189 added an option to save a little bit of RAM by not collecting full detailed stats 2010-02-08 05:43:54 +00:00
Arvid Norberg 7e343a9d6f add size logging to various classes 2010-02-08 04:51:34 +00:00
Arvid Norberg 0dba0f5dcc never time out a peer because we're waiting for the disk. allow connection_speed = 0. post an alert when rejecting a peer because of the connection limit 2010-02-06 21:40:55 +00:00
Arvid Norberg 8c02d04d2e UDP tracker optimization 2010-02-06 08:14:18 +00:00
Arvid Norberg abfc92de35 added performance warning if there are too many optimistic unchoke slots 2010-02-06 07:39:45 +00:00
Arvid Norberg 51c544c6bb fixed trunk build with DHT disabled 2010-02-05 08:40:08 +00:00
Arvid Norberg 088f4bf700 improved LSD performance and made the interval configurable 2010-02-05 08:23:17 +00:00
Arvid Norberg 1b2798970c support O_NOATIME on linux and use it by default 2010-02-02 19:44:52 +00:00
Arvid Norberg 859f412189 support an arbitrary number of optimistic unchoke slots 2010-02-02 18:39:32 +00:00
Arvid Norberg 3bc40b9980 fix builds for all combinations of stats and disk stats 2010-01-31 20:32:12 +00:00
Arvid Norberg 8542343a0d also exclude volatile option when using explicit cache 2010-01-31 19:16:22 +00:00
Arvid Norberg dbffe3aee9 increase connection limit for local peers if limits are ignored for local network in order to accept more incoming connections from the local network 2010-01-31 18:35:46 +00:00
Arvid Norberg 6a5164b990 stop people from using volatile cache and suggest_pieces at the same time 2010-01-31 16:35:38 +00:00
Arvid Norberg ccf8b0278a added volatile read cache option 2010-01-30 03:50:17 +00:00
Arvid Norberg 5cc3cbd8b1 added some settings to the save session state 2010-01-24 22:00:36 +00:00
Arvid Norberg a046850130 support disk I/O priority setting 2010-01-23 03:02:32 +00:00
Arvid Norberg 8c60c75547 explicit cache fixes 2010-01-17 21:57:24 +00:00
Arvid Norberg d959331c1e renamed some torrent check queue related functions to be more descriptive 2010-01-17 21:42:14 +00:00
Arvid Norberg c9b594fde1 support sending suggest messages based on what's in the read cache. support 'explicit read cache' 2010-01-15 16:45:42 +00:00
Arvid Norberg 2d6cc667b5 removed one floating point operation 2009-12-29 19:06:27 +00:00
Arvid Norberg d157af5305 build fixes 2009-12-28 20:59:34 +00:00
Arvid Norberg 2055426c52 fix trunk build and tests build without exceptions 2009-12-16 10:42:34 +00:00
Arvid Norberg 25798ba1fa timer initialization fix 2009-12-13 16:32:07 +00:00
Arvid Norberg 1d04c4dcd0 added session saving and loading functions 2009-12-03 05:11:57 +00:00
Arvid Norberg 3fb05a13b1 fixed DLL link issues 2009-11-30 07:03:34 +00:00
Arvid Norberg 1f5859d31f error_code fix. added is_error_code_enum template specialization and using the abbreviated syntax to build error_codes 2009-11-29 07:06:38 +00:00
Arvid Norberg 6070c59b46 fixed bug in auto-manager where active_downloads and active_seeds would sometimes be used incorrectly 2009-11-29 03:28:11 +00:00
Arvid Norberg 0f351cfd62 fixed num_queued counting 2009-11-28 22:47:45 +00:00
Arvid Norberg 39d14146e7 dynamic_cast fix 2009-11-27 21:04:26 +00:00
Arvid Norberg 47d2325145 fixed typo that would sometimes prevent queued torrents to be checked 2009-11-26 15:14:39 +00:00
Arvid Norberg 8dd244581d header optimizations 2009-11-26 05:45:43 +00:00
Arvid Norberg 6343fe6a6d optimized header dependencies to lower build time 2009-11-23 08:38:50 +00:00
Arvid Norberg 562e2512b9 some vs2010 fixes 2009-11-22 23:55:54 +00:00
Arvid Norberg e9e32235b4 added support for libgcrypt 2009-11-08 03:09:19 +00:00
Arvid Norberg 51ef057498 more unicode and wstring fixes 2009-10-29 18:12:43 +00:00
Arvid Norberg c418165e07 replaced boost.filesystem with custom functions (improves efficiency and drops unnecessary dependencies and improves libtorrent portability) 2009-10-26 01:29:39 +00:00
Arvid Norberg 6c137d6ef6 announces torrents immediately to the DHT when it's started 2009-10-25 02:37:45 +00:00
Arvid Norberg 8a5b7d5d36 got rid of the last recursive mutexes. abstracted the threading primitives (and switched over to use asio's internal ones). 2009-10-20 02:49:56 +00:00
Arvid Norberg 599543e889 automatically caps files and connections by default to rlimit 2009-10-03 19:02:31 +00:00
Arvid Norberg e289b9c6ac build fixes 2009-09-20 15:21:31 +00:00
Arvid Norberg 54cce9da60 simplified and optimized the DHT implementation 2009-09-20 00:23:36 +00:00
Arvid Norberg 6c67da08d6 split socket.hpp up in multiple headers to lower build time somewhat 2009-09-16 03:46:36 +00:00
Arvid Norberg 3e9725b5d7 made peer_blocked_alert derive from torrent_alert 2009-09-07 01:47:30 +00:00
Arvid Norberg 1f5a722b01 improved sun studio support (it seems to lack a lot of stl) 2009-08-30 07:38:52 +00:00
Arvid Norberg f764227012 build fix for when DHT is disabled 2009-08-30 06:25:17 +00:00
Arvid Norberg 6078dd06b0 removed the last dependency on iostream and lexical cast 2009-08-25 18:13:46 +00:00
Arvid Norberg 45fd696bc6 added I2P support 2009-08-20 03:19:12 +00:00
Arvid Norberg d37fab9927 socks5 listen socket fix 2009-08-18 18:47:44 +00:00
Arvid Norberg 1efdd4c628 gcc build fix 2009-08-08 17:56:23 +00:00
Arvid Norberg 63368c1383 added dummy storage class to disable disk I/O and an option to disable hash checking (for performance testing and simulation) 2009-08-02 06:40:45 +00:00
Arvid Norberg eecc78b931 dll export fix + reverting upload slot change 2009-07-26 02:27:52 +00:00
Arvid Norberg eb66830dc3 simplified auto scrape 2009-07-24 08:25:07 +00:00
Arvid Norberg 137d2d63f5 cleaned up policy. Moved logic from policy to torrent 2009-07-23 04:38:52 +00:00
Arvid Norberg b437e2c743 fixed get_ip_filter 2009-07-21 04:42:19 +00:00
Andrew Resch c401c65dfb Add get_ip_filter() to session 2009-07-21 01:52:37 +00:00
Arvid Norberg ae3be201c4 reduced the number of floating point operations to better support systems with no FPU 2009-07-19 04:59:27 +00:00