Commit Graph

559 Commits

Author SHA1 Message Date
Arvid Norberg 3b8670626a merged back async_io branch into trunk 2007-06-10 20:46:09 +00:00
Arvid Norberg 6447a074eb fixes to allow-multiple-connections-per-ip and a unit test that run a swarm of 3 local peers 2007-06-08 23:02:31 +00:00
Arvid Norberg f1e87114b2 fixed #68 2007-06-08 22:55:33 +00:00
Arvid Norberg a7ad108e8a made the unchoke interval configurable 2007-06-07 22:37:58 +00:00
Arvid Norberg a3a2217276 an approximate peer download rate is now in peer_info 2007-06-07 00:05:18 +00:00
Arvid Norberg bbd7fefa2c fix for msvc 2007-06-06 23:27:29 +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 7e540a8d53 made inactivity time-out configurable 2007-05-31 19:57:15 +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 b385ed6064 added socks4 proxy support 2007-05-30 23:35:14 +00:00
Arvid Norberg 0d9909f8d9 cleaned up the proxies. Factor out common code into a base class and added include guards 2007-05-30 09:07:33 +00:00
Arvid Norberg 14a15831ef exposed piece availability vector 2007-05-30 06:52:59 +00:00
Arvid Norberg 1d15a5040c removed old unused logging 2007-05-26 22:55:21 +00:00
Arvid Norberg 9fe77101ed added support for lazy bitfields 2007-05-26 22:27:40 +00:00
Arvid Norberg 8679ee5916 have optimization is now optional, but on by default 2007-05-25 21:19:14 +00:00
Arvid Norberg c10e74f4fc improved control over the rate of connection attempts 2007-05-25 21:00:35 +00:00
Arvid Norberg bb71832f5f exposed some more peer info 2007-05-25 19:42:10 +00:00
Arvid Norberg 685f79b82f option to ignore bandwidth limits for local peers. fixed some asserts when allowing multiple connections per IP 2007-05-25 17:06:30 +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 b3d354f534 added missing time.hpp to Makefile.am 2007-05-23 22:58:54 +00:00
Arvid Norberg 99a22dcae4 made dht requests be allocated in a pool allocator for heap and runtime efficiency. Fixes to DHT error responses 2007-05-23 08:45:12 +00:00
Arvid Norberg 883773e8fa added shutdown logging and tracker manager shutdown flag 2007-05-23 01:02:46 +00:00
Arvid Norberg cbd67ed729 added support for authentication in the url_parser and added a test for it 2007-05-22 20:44:18 +00:00
Arvid Norberg 1c147018db fixed correct export macros for intrusive pointer refcounter functions 2007-05-21 19:31:37 +00:00
Arvid Norberg 6eb892fc04 added missing TORRENT_EXPORT 2007-05-17 20:37:42 +00:00
Arvid Norberg 8987d7077d refactoring in natpmp, upnp and lsd. made lsd (probably) work on windows 2007-05-17 02:54:13 +00:00
Arvid Norberg ea45641c8b made lsd work 2007-05-17 00:01:51 +00:00
Arvid Norberg 633f174947 improved natpmp, upnp and lsd 2007-05-16 21:36:27 +00:00
Arvid Norberg 13ca78e92b #47. introduced parole mode for peers that fails the hash check. 2007-05-16 04:12:13 +00:00
Arvid Norberg e9601080bb introduced swap_slots and swap_slots3 on storage_interface. All reads that needs it, should now be EOF safe (when using sparse files). 2007-05-16 01:16:08 +00:00
Arvid Norberg b386aa23e9 DHT bugfix, more logging and less frequent private key generation. Fixed typo in identify_client 2007-05-14 17:49:36 +00:00
Arvid Norberg 8392276975 speed categories are now disabled before 1% of the pieces have been downloaded 2007-05-14 10:54:18 +00:00
Arvid Norberg c5e150ee69 upnp fixes 2007-05-14 07:31:01 +00:00
Arvid Norberg 4a906aa31d added option for session statistics output 2007-05-13 22:01:21 +00:00
Arvid Norberg 573d9f55d6 fixed compilation error when not using boost.date_time. Fixed compilation error when not having DHT logging enabled 2007-05-12 18:24:14 +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 6faa11f7ab optimized web_peer_connection to use less memory and replaced std::copy with std::memmove in peer_connection 2007-05-11 18:40:22 +00:00
Arvid Norberg f39185bb21 optimized the read callback to loop and exhaust the read buffer from the socket instead of making another async read call. #43 2007-05-10 01:50:11 +00:00
Arvid Norberg a5847956e1 most of the metadata is now freed when a torrent becomes a seed. #44 2007-05-09 22:54:26 +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 6dcca9250b optimized heap allocations in piece_picker. #42 2007-05-09 00:49:13 +00:00
Arvid Norberg 4956639171 piece picker optimization 2007-05-08 11:13:13 +00:00
Arvid Norberg 122841fc5e attempt to memory optimization in DHT routing table 2007-05-08 08:49:07 +00:00
Arvid Norberg 508dfd722a cleaned up policy a bit and the country code list 2007-05-05 22:55:34 +00:00
Arvid Norberg 7f27ed9c1f fixed warnings in previous check in 2007-05-05 22:15:22 +00:00
Arvid Norberg b239eecc04 updates to upnp code 2007-05-05 22:06:26 +00:00
Arvid Norberg 49bd69cad4 introduced a proper half open TCP connection limit. Also exposed the connection queue to let clients use the same connection limiter as libtorrent. UPnP connections and tracker connection are now also limited as well as peer connections and web seeds 2007-05-05 00:29:33 +00:00
Arvid Norberg 52f9abb652 fixed upnp header define 2007-05-04 20:55:39 +00:00
Arvid Norberg c7b4f49d5a moved initialization of multicast addresses from global initializers to local constructors to avoid WSAStartup issues on windows 2007-05-04 06:47:32 +00:00
Arvid Norberg 54805ca60b added option to disable country resolving 2007-05-02 19:47:38 +00:00
Arvid Norberg 04e41cf702 improved connection queue handling slightly. Will require further improvements 2007-05-02 17:38:37 +00:00
Arvid Norberg 233cd373e8 fixed issue with sparse files and compact allocation. added move_slot() to the storage abstraction 2007-04-30 01:06:29 +00:00
Arvid Norberg ee1681e2cb added peer/piece categories to the piece picker. fixes #18 2007-04-27 00:27:37 +00:00
Arvid Norberg 99dc46bd29 overflow fix in timer on windows 2007-04-26 21:33:07 +00:00
Arvid Norberg fea87b2637 added missing header file from [1146] 2007-04-25 20:00:11 +00:00
Arvid Norberg 19bb5553bb added missing files from previous check-in 2007-04-25 18:57:13 +00:00
Arvid Norberg 00948e9fc4 first attempt to implement SOCKS5 and proper HTTP proxy support. fixes #22 2007-04-25 18:26:35 +00:00
Arvid Norberg d43a6b80bf added an abstraction layer or tcp sockets, to be able to support socks proxys 2007-04-23 21:36:21 +00:00
Arvid Norberg 8ef7819a95 added redirection support to http_connection 2007-04-19 20:52:29 +00:00
Arvid Norberg 172205d7fb improvements and fixes to sparse files support. made the test pass again 2007-04-19 03:32:20 +00:00
Arvid Norberg 92cf13c2c2 sparse files fixes. now sets the size of the files in case sparse files are supported 2007-04-19 03:06:15 +00:00
Arvid Norberg 60ddb5c64a piece_picker fix 2007-04-18 20:40:41 +00:00
Arvid Norberg 88d6f7a4c9 added character-set build feature (only effective on windows). Made storage build with win32/unicode and newer versions of boost. optimized allocate_slots 2007-04-18 19:12:30 +00:00
Arvid Norberg af779b6349 factored out the test for sparse files support 2007-04-18 00:36:09 +00:00
Arvid Norberg 16e17f066c first stab at sparse files support 2007-04-17 21:54:40 +00:00
Arvid Norberg 3794b49e3a fixed warning in msvc 2007-04-17 21:50:48 +00:00
Arvid Norberg 90bff3d1ca Fixed building issues on windows with msvc-8.0 2007-04-17 21:18:35 +00:00
Arvid Norberg 067219d14a made downloading pieces higher priority. fix in piece picker when blocks in prio 0 pieces were marked as finished 2007-04-17 09:21:53 +00:00
Arvid Norberg 849db39472 added peer_blocked_alert which is generated when a peer is blocked by the IP filter. Fixed the ip-filter parsing in client_test and made it report the peer_blocked_alert. Added documentation. 2007-04-17 05:56:43 +00:00
Arvid Norberg 8cb1f9f899 added optional use of openssl instead of public domain sha-1 implementation, ticket #13 2007-04-15 04:30:52 +00:00
Arvid Norberg 40804a829b failcount is reset on a peer that successfully connects. documented max_failcount and min_reconnect_time. implemented seed optimization for piece_picker (inc_refcount_all and dec_refcount_all), ticket #17 2007-04-15 02:14:02 +00:00
Arvid Norberg fceaa8f79e introduced failcount and retry time settings for peers 2007-04-14 21:47:07 +00:00
Arvid Norberg ecb20f97fd fixed time_now_string() to not include a line feed at the end 2007-04-14 20:12:15 +00:00
Arvid Norberg a22ad5ad33 added failcount to peer_info. fixes #31 2007-04-13 20:19:04 +00:00
Arvid Norberg 3d759e8936 fixes in connection policy. fixes #29. inserted more invariant checks in policy 2007-04-13 17:47:40 +00:00
Arvid Norberg 0e5ce5dd9d cleaned up policy a bit, moved the seed check in on_bitfield to be performed before the piece picker is updated 2007-04-13 01:53:25 +00:00
Arvid Norberg 52623405f0 improved unchoking, connecting and disconnecting logic in policy. seems to fix #29 2007-04-12 10:21:55 +00:00
Arvid Norberg a0434eba10 fixed timer on linux 2007-04-12 07:02:17 +00:00
Arvid Norberg 79cfdb609f fixed threading problem in file_pool 2007-04-12 05:08:23 +00:00
Arvid Norberg 1fd3216e6c fix to previous check-in 2007-04-11 22:50:01 +00:00
Arvid Norberg 87b1cdc341 fix to avoid connecting web seeds when not a seed but finished 2007-04-11 22:27:58 +00:00
Arvid Norberg e503e334d5 fix to previous check-in 2007-04-11 17:44:15 +00:00
Arvid Norberg 109cc3f232 made the announce timer (for dht and lsd) use a weak pointer instead of raw pointer, to avoid problems when torrent is being destructed 2007-04-11 17:22:19 +00:00
Arvid Norberg 250adabcfa removed unused web stats 2007-04-11 16:50:54 +00:00
Arvid Norberg 3ed24da320 added source to peer_info, which is a bitmask of the sources where the peer has been acquired from 2007-04-10 21:23:13 +00:00
Arvid Norberg 4ceb6a02ea added download_limit and upload_limit functions to torrent_handle 2007-04-10 09:25:17 +00:00
Arvid Norberg 0863bc1aa6 removed the dependency on the compiled boost.date_time library 2007-04-10 09:11:32 +00:00
Arvid Norberg d88ffcc0e4 removed some more unecessary boost.date_time dependencies 2007-04-10 07:52:58 +00:00
Arvid Norberg 5be60cc125 upnp made destructor not sync.ing 2007-04-10 05:14:37 +00:00
Arvid Norberg a1e20276a6 fixed typo in previous check-in 2007-04-09 20:38:51 +00:00
Arvid Norberg ceb82bd38b added support for posix timer clock_gettime() 2007-04-09 20:18:54 +00:00
Arvid Norberg baecc64131 fix to previous timer check-in that broke the api 2007-04-07 03:05:59 +00:00
Arvid Norberg 27da18bd0a windows fixes 2007-04-05 01:08:21 +00:00
Arvid Norberg 306d015924 added a timer abstraction and replaced the use of boost.date_time. the timers used now are QueryPerformanceCounter on windows, mach_absolute_time on darwin and currently falls back on boost.date_time on other platforms. This has the advantage of being a monotonic clock, and also slightly more efficient 2007-04-04 22:27:36 +00:00
Arvid Norberg 7fc238407c added missing lsd.cpp and lsd.hpp 2007-04-04 19:11:19 +00:00
Arvid Norberg a4ccee15df removed unused code 2007-04-04 02:10:25 +00:00
Arvid Norberg 5e32484194 first stab at getting local service discovery 2007-04-04 02:06:07 +00:00
Arvid Norberg ed9e80a3d4 added support for rate limiting on http_connection 2007-04-03 20:00:47 +00:00