Commit Graph

306 Commits

Author SHA1 Message Date
Arvid Norberg f259e34f86 peer_connection fix for incoming connections 2008-05-12 10:10:39 +00:00
Arvid Norberg 068adcd9a9 indentation fix 2008-05-12 06:03:31 +00:00
Arvid Norberg f2ac4db1af changed the optimistic disconnect logic to be more efficient and configurable 2008-05-12 05:17:11 +00:00
Arvid Norberg bbf9c83edc initial support for icmp errors in the DHT 2008-05-08 00:22:17 +00:00
Arvid Norberg 73ef60e5fa seed rank fix 2008-05-07 08:24:16 +00:00
Arvid Norberg 9429ca4b1f replaced seed cycles with seed rank 2008-05-06 18:03:41 +00:00
Arvid Norberg e09457e4ab take an estimate of the IP ACK traffic into account when rate limiting (allows setting rate limits closer to the capacity) 2008-05-05 17:08:14 +00:00
Arvid Norberg c7e6c04705 switched over to asio from boost-1.35 2008-05-03 16:05:42 +00:00
Arvid Norberg 4d59d9eabc fix build with DHT disabled 2008-04-24 16:57:22 +00:00
Arvid Norberg c043d4b21d initial support for queuing 2008-04-24 03:28:48 +00:00
Arvid Norberg 7a432786e7 added url to tracker alerts. introduced a base class for all tracker alerts 2008-04-23 01:54:21 +00:00
Andrew Resch 05c1a64c76 Move the torrent_checked alert post to torrent::files_checked 2008-04-23 01:01:00 +00:00
Arvid Norberg 9a434a919f some more ASNum additions 2008-04-22 00:05:23 +00:00
Arvid Norberg 779b006ac0 fixed missing torrent_checked_alert 2008-04-16 07:02:39 +00:00
Arvid Norberg 43d5781638 port mapping fix 2008-04-13 19:19:22 +00:00
Arvid Norberg 42f55adcce support for country lookup through GeoIP 2008-04-11 08:46:43 +00:00
Arvid Norberg 093d912e9a receive buffer optimization. added receive_buffer_size and used_receive_buffer to peer_info. changed plugin api to make use of new disk_buffer_holder type 2008-04-10 10:03:23 +00:00
Arvid Norberg 291ef2a2c9 optimized torrent_handle to use a weak_ptr directly to the torrent object 2008-04-09 20:09:36 +00:00
Arvid Norberg 75ef4ec1f1 added option to not use pool allocators (useful when using memory debugging tools) 2008-04-09 05:19:11 +00:00
Arvid Norberg 9fe5bb7a7d removed dependencies on exceptions from session_impl 2008-04-07 01:22:26 +00:00
Arvid Norberg d10205057e port mapping update 2008-04-06 23:18:35 +00:00
Arvid Norberg 2e6b9c2dce revamped part of the port mapping code (UPnP and NAT-PMP). Added documentation for start_{lsd,natpmp,upnp} and stop_{lsd,natpmp,upnp} 2008-04-06 19:17:58 +00:00
Arvid Norberg 57d75e120a initial support for GeoIP (only AS mappings for now) 2008-04-05 04:53:22 +00:00
Arvid Norberg 77f9278a36 leopart listen failure workaround 2008-04-03 04:35:56 +00:00
Arvid Norberg 1511f2f59b removed calls to self() from inside constructors in peer connections 2008-03-31 04:46:24 +00:00
Arvid Norberg 45a7329d5c added alert for when the client's external IP is received 2008-03-29 22:45:55 +00:00
Arvid Norberg ffecb32b81 made a bias to give connection attempts to downloading torrents with few peers. Should accelerate downloads on windows (where there's a half-open connection limit) 2008-03-29 19:39:24 +00:00
Arvid Norberg b6be33b5b6 storage fix 2008-03-25 04:38:59 +00:00
Arvid Norberg 32c2c38737 fixed incorrect error message in async_accept 2008-03-16 12:33:39 +00:00
Arvid Norberg 537f21d1b9 connection rate improvement when using a half-open connections limit 2008-03-16 10:49:47 +00:00
Arvid Norberg a97be6937a unchoker counts bytes instead of rates 2008-03-10 03:30:01 +00:00
Arvid Norberg f53cfa7eeb removed checker thread 2008-03-08 06:06:31 +00:00
Arvid Norberg 9d3b60edb7 added support to bind outgoing connections to specific ports (might be useful to do traffic shaping) 2008-02-28 07:34:07 +00:00
Arvid Norberg 83f405ac54 followups to windows fixes 2008-02-25 11:27:23 +00:00
Arvid Norberg a25c25b02a fixed windows build and removed msvc warnings 2008-02-25 10:28:53 +00:00
Arvid Norberg c1c2fb4409 resume data unit test and fix 2008-02-25 05:07:29 +00:00
Arvid Norberg df74cbb78a fixed logging=errors configuration 2008-02-17 22:51:03 +00:00
Arvid Norberg 7e83c3fc51 changed storage interface to not require exceptions 2008-02-14 03:48:20 +00:00
Arvid Norberg 948b2bafe6 made it work properly when building with stats logging 2008-02-12 08:34:57 +00:00
Arvid Norberg c5fd5ecfb4 removed 'adler32' key from fastresume, since it was implemented with blocking I/O 2008-02-11 07:18:28 +00:00
Arvid Norberg c9b53ddf8c allow negative and zero values for session_settings::connection_speed 2008-02-11 03:55:53 +00:00
Arvid Norberg 6c552db68e added disk cache expiration 2008-02-10 00:58:25 +00:00
Arvid Norberg a16d592ff4 handles lack of 'adler32' key in fast resume data 2008-02-09 19:51:23 +00:00
Arvid Norberg 8cf0510144 added disk cache for write operations 2008-02-08 10:22:05 +00:00
Arvid Norberg 1c82ef36d8 improved support for out-of-memory conditions 2008-02-05 05:51:05 +00:00
Arvid Norberg 61bbc6e58f initial https support for trackers and http_connection. Added support for proxies to http_connection 2008-01-27 22:39:50 +00:00
Arvid Norberg 8b455be1d9 better exception handling and more invariant checks 2008-01-19 19:00:54 +00:00
Arvid Norberg 5ff6708b3d made it build without dht support 2008-01-18 02:02:18 +00:00
Arvid Norberg afa6fd97a3 max connections limit fix 2008-01-18 01:29:28 +00:00
Arvid Norberg 4f99230c74 auto unchoke improvement 2008-01-17 21:34:00 +00:00
Arvid Norberg 127d3e6ad5 bandwidth limiter fixes. proper priority that cannot starve connections 2008-01-17 17:40:46 +00:00
Arvid Norberg 832c0c8b63 improved auto-unchoke mechanism 2008-01-15 08:37:48 +00:00
Arvid Norberg 5d196ed555 auto upload slots. opens up more slots if upload rate is not met. On by default 2008-01-13 11:18:18 +00:00
Arvid Norberg 7cea96ea88 added TORRENT_VERBOSE_BANDWIDTH_LIMIT build option to generate a bandwidth manager log 2008-01-12 18:47:26 +00:00
Arvid Norberg 72edfc2ee7 improved network interface enumeration and upnp device filtering 2008-01-11 06:49:37 +00:00
Arvid Norberg b5dedccb70 made trunk build on windows (mapped storage doesn't work right yet though) 2008-01-11 06:35:34 +00:00
Arvid Norberg 695cd6407b remove use of strand 2008-01-08 05:47:43 +00:00
Arvid Norberg e05f396a5d made UPnP ignore devices that don't respond from a router IP (optional but on by default) 2008-01-07 05:48:28 +00:00
Arvid Norberg cf4036310b changed the way connections are disconnected. improved logging. Does not depend on exceptions anymore 2008-01-07 01:10:46 +00:00
Arvid Norberg cfe5c8962e more asserts around send buffers and fixes potential race condition 2007-12-27 21:43:11 +00:00
Arvid Norberg d5748419c1 fixed upnp bug when connecting without network 2007-12-24 08:18:53 +00:00
Arvid Norberg e0d1951fac fixes #234. properly shuts down the disk io thread 2007-12-24 08:15:10 +00:00
Arvid Norberg d1311e2bb8 improved session logging 2007-12-19 21:36:54 +00:00
Arvid Norberg 8c3f9571de socks5 support for udp messages 2007-12-09 04:15:24 +00:00
Arvid Norberg cfc4638df5 fixed bug when trackers are removed from torrent 2007-12-07 21:53:33 +00:00
Arvid Norberg 77cea2eafc added more asserts in session_impl::check_invariant 2007-11-27 02:46:19 +00:00
Arvid Norberg c18ae83146 added wait_for_alert() to session. If there is at least one alert in the queue, it returns the front one in the queue, if the queue is empty, it waits until a new alert is posted and returns that one, or returns 0 if the time expires first. 2007-11-25 08:18:57 +00:00
Arvid Norberg c929f4fb69 fix for systems where IPv6 sockets bound to INADDR_ANY also listens on IPv4 connections 2007-11-23 22:14:33 +00:00
Arvid Norberg 88e69d0edc fix for when lsd, upnp or nat-pmp is started more than once 2007-11-23 21:11:31 +00:00
Arvid Norberg 55fac2518d local peers no longer counts as incoming_connections 2007-11-19 18:05:47 +00:00
Arvid Norberg 3489ccaebd explicit lsd close fix 2007-11-19 02:24:07 +00:00
Arvid Norberg 7be29d9b84 applied 'logpath' patch from #202 2007-11-16 21:21:28 +00:00
Arvid Norberg 41ef204f26 closes bandwidth rate limiters 2007-11-08 07:52:41 +00:00
Arvid Norberg 8868469f2f warning fix 2007-11-07 01:38:17 +00:00
Arvid Norberg fd51412b70 shutdown improvements. Fixes stall 2007-11-02 00:27:53 +00:00
Arvid Norberg 43d3fc9a28 fixed warning 2007-10-31 12:04:05 +00:00
Arvid Norberg 1a280e31fa cleanup. changed the connection map into a set of peer_connections. moved the policy object into the torrent (as opposed to being a pointer). Fixes issues with multiple peers on the same IP. Reduces some lookups. 2007-10-31 09:48:20 +00:00
Arvid Norberg 70810cb7e9 dht_state() no longer asserts on the dht being active. It just returns an empty state if it isn't 2007-10-29 16:18:37 +00:00
Arvid Norberg 79d4191ef5 attempt to fix stall on exit where some connections weren't closed 2007-10-29 00:29:43 +00:00
Arvid Norberg 3c05e0fa41 attempt to fix #190 2007-10-27 21:21:44 +00:00
Arvid Norberg 8f07edbed2 asio handlers are now properly cancelled when destructing the session object, race conditions are avoided by waiting for the io service to complete all tasks 2007-10-26 07:14:19 +00:00
Arvid Norberg 92d29334fa cleanup. doesn't allocate sockets on the heap for no reason anymore 2007-10-22 04:17:26 +00:00
Arvid Norberg d0ef85e802 fixed issue with failing async_accept on windows 2007-10-15 19:02:54 +00:00
Arvid Norberg 282edb5861 windows vista detection to set the default half-open connection limit even lower 2007-10-15 01:15:58 +00:00
Arvid Norberg 59c7f5bfbb added option to delete files from disk as a torrent is removed 2007-10-13 03:33:33 +00:00
Arvid Norberg f8d026efbc fixed typo 2007-10-10 19:02:42 +00:00
Arvid Norberg ffe2e75882 added another alert to cover all cases where the torrent has to be checked at start, and tell the user why. Fixed a problem with the resume data generation introduced in last storage check-in 2007-10-09 00:25:01 +00:00
Arvid Norberg 4d19f7ff0f storage optimization. introduced a nother allocation mode: sparse. Now there is allocate, compact and sparse. Unless compact is used, the memory structures used to keep track of pieces are no longer allocated. sparse storage mode is now the default 2007-10-08 20:01:36 +00:00
Arvid Norberg b705933901 fixed dead lock and fixed a problem in recent shutdown cleanup 2007-10-07 23:20:38 +00:00
Arvid Norberg 28274bf1bd improved shutdown behavior. decreased tracker timeouts to 5 seconds. added more logging 2007-10-07 18:06:56 +00:00
Arvid Norberg 966800cd5b replaced the assert macro to TORRENT_ASSERT instead of hi-jacking assert. 2007-10-05 00:30:00 +00:00
Arvid Norberg b75a1325cb fix to recent 'store banned peers' check-in 2007-10-04 17:29:11 +00:00
Arvid Norberg d29fbdc453 added tests for fast extension features + fixes 2007-10-04 09:32:09 +00:00
Arvid Norberg 4cab49cbdf saves banned peers in resume data 2007-10-03 17:37:15 +00:00
Arvid Norberg 2c71fa35d3 fixed potential race condition when removing a torrent that was just added 2007-10-03 01:21:28 +00:00
Arvid Norberg 0048f343cd upnp, natpmp and lsd now have proper lifetime management by using intrusive_ptr 2007-09-29 21:31:51 +00:00
Arvid Norberg b48948e231 changed the double send buffers to a chained buffer using iovec send operations. buffers are recycled (saves memory and cpu) and memory copies are avoided (saves cpu). More statistics is added to track buffer usage 2007-09-29 16:14:03 +00:00
Arvid Norberg 6ce8d367a4 added error checking to endpoint to string conversion. fixes problem on systems without IPv6 support 2007-09-23 22:50:25 +00:00
Arvid Norberg b9d5854a99 IPv6 fix 2007-09-22 17:07:55 +00:00
Arvid Norberg 2e93b92cb4 more IPv6 fixes. support for multihomed machines by listening on multiple interfaces. added listen_succeeded_alert to advertize which interfaces are being listened on 2007-09-22 16:27:29 +00:00
Arvid Norberg 7bbfb3bd4b added a userdata parameter to add_torrent that is passed in to plugins 2007-09-14 00:11:33 +00:00
Arvid Norberg 9246de00bd listen socket refactoring 2007-09-10 19:10:38 +00:00
Arvid Norberg 8b59f0e466 fix for reuseaddr 2007-09-10 16:47:43 +00:00
Arvid Norberg 4b63d8aaaf set reusaddr on the listen socket 2007-09-10 09:54:26 +00:00
Arvid Norberg 025a982b00 explicitly closes the listen socket 2007-09-10 09:23:04 +00:00
Arvid Norberg ee5ce50502 made max half open connections default to 8 on windows and added query function for that limit on session. 2007-09-10 01:57:40 +00:00
Arvid Norberg 0d02fe0539 upnp and lsd update. added a broadcast_socket and made the upnp connection use the locally bound ip to specify its address in the soap requests 2007-09-09 23:52:34 +00:00
Arvid Norberg 4269451bbe session_impl fix 2007-09-08 18:18:09 +00:00
Arvid Norberg 4e8d49d028 applied patch from #145 2007-09-03 22:27:52 +00:00
Arvid Norberg c8088459a0 made torrent_info reference counted and held by a boost::intrusive_ptr 2007-09-01 03:00:31 +00:00
Arvid Norberg e248ba0cdc added asserts to make sure the global connection limit is not exceeded 2007-08-27 16:45:45 +00:00
Arvid Norberg a5e985ec7c fixed choke bug 2007-08-22 18:50:53 +00:00
Arvid Norberg 744d96796b made it possible to start torrents in paused state. updated documentation 2007-08-22 05:31:42 +00:00
Arvid Norberg 1399b623bc choke count fixes 2007-08-21 21:51:29 +00:00
Arvid Norberg e074b0a977 removed too expensive invariant checks 2007-08-21 19:18:06 +00:00
Arvid Norberg 4da3366a27 added invariant checks to session_impl 2007-08-21 18:33:28 +00:00
Arvid Norberg 23a20a24c1 added more asserts for choke/unchoke states and a peer_info flag to indicate a peer being optimistically unchoked 2007-08-21 17:45:28 +00:00
Arvid Norberg b8e48c061e attempt to fix build errors on windows. #134 2007-08-21 04:46:17 +00:00
Arvid Norberg e80653152b choked fix 2007-08-19 08:32:39 +00:00
Arvid Norberg da525292fe some more asserts 2007-08-19 08:23:44 +00:00
Arvid Norberg 3d3df51d45 fixed per torrent unchoke limit 2007-08-17 07:37:08 +00:00
Arvid Norberg 834873a15e fixed unlimited settings check 2007-08-17 03:43:26 +00:00
Arvid Norberg b05500570c added parenthesis around std::min and std::max for msvc compatibility 2007-08-16 22:14:17 +00:00
Arvid Norberg f8979ff932 applied patch from #97 2007-08-16 19:41:28 +00:00
Arvid Norberg 4ac1ac8a1f removed allocate_resources. switched to a global unchoker and connection distribution 2007-08-16 12:41:46 +00:00
Arvid Norberg 5dfba92665 fixed #101 2007-08-07 07:35:21 +00:00
Arvid Norberg f67deba30e fixed #81 2007-07-26 07:04:35 +00:00
Arvid Norberg 3050e35adf disabled lsd for private torrents 2007-07-23 00:38:31 +00:00
Arvid Norberg 4d912eddf4 added openssl cleanup (to make leak detectors not complain) 2007-07-06 23:06:58 +00:00
Arvid Norberg e714e1aeba improved bandwidth limiter and added a unit test for it 2007-07-02 23:48:06 +00:00
Arvid Norberg 5efe12dde6 fixed bug reported by Marcos Pinto where an exception was not cought properly 2007-06-13 18:28:55 +00:00
Arvid Norberg 3b8670626a merged back async_io branch into trunk 2007-06-10 20:46:09 +00:00
Arvid Norberg a7ad108e8a made the unchoke interval configurable 2007-06-07 22:37:58 +00:00
Arvid Norberg 273f8bd921 merged back encryption branch to trunk 2007-06-06 00:41:20 +00:00
Arvid Norberg d0412a2244 added port filter for outgoing connections 2007-06-01 01:05:57 +00:00
Arvid Norberg 31247c046a supports turning on and off upnp, natpmp and lsd. All ofthem are now off by default 2007-05-31 00:21:54 +00:00
Arvid Norberg c10e74f4fc improved control over the rate of connection attempts 2007-05-25 21:00:35 +00:00
Arvid Norberg 4ff4ddeae7 added more shutdown logging 2007-05-24 19:51:14 +00:00
Arvid Norberg 510966f2a5 fixed fast resume data bug when using full allocation mode, and moved parts of resume data generation to the storage 2007-05-24 18:53:55 +00:00
Arvid Norberg 58b23a79e7 exception fixes 2007-05-24 17:07:43 +00:00
Arvid Norberg 883773e8fa added shutdown logging and tracker manager shutdown flag 2007-05-23 01:02:46 +00:00
Arvid Norberg 1d68e10684 made it build in msvc by inserting ; at the end of function try blocks 2007-05-16 01:17:14 +00:00
Arvid Norberg 0436ab2ec8 added filename extension to statistics log 2007-05-14 04:49:08 +00:00
Arvid Norberg 419ac258de more statistics 2007-05-14 04:01:30 +00:00
Arvid Norberg dcad9b3031 fixed warning 2007-05-14 03:50:19 +00:00
Arvid Norberg 4a906aa31d added option for session statistics output 2007-05-13 22:01:21 +00:00
Arvid Norberg 9f902e7b9f the DHT now refreshes buckets properly. 2007-05-12 01:52:25 +00:00
Arvid Norberg 9ffde51404 fixed a bug caused by file_pool being destructed before torrents, and torrents using the file pool in their destructors 2007-05-11 23:41:31 +00:00
Arvid Norberg 4371dbe02c fixed resume data problem caused by recent piece_picker optimization 2007-05-09 03:18:53 +00:00
Arvid Norberg 4956639171 piece picker optimization 2007-05-08 11:13:13 +00:00