Commit Graph

799 Commits

Author SHA1 Message Date
Arvid Norberg 60f9d1366a added more asserts to bandwidth limiter 2007-09-19 01:08:50 +00:00
Arvid Norberg fbac9f785a disabled loopback for upnp 2007-09-18 01:25:28 +00:00
Arvid Norberg 2661f834fd added TORRENT_EXPORT to assert_fail 2007-09-17 18:19:08 +00:00
Arvid Norberg bc897ef808 fixed compile warning 2007-09-17 10:00:08 +00:00
Arvid Norberg b5a2373bff added an option to generate a disk io log file 2007-09-17 08:15:54 +00:00
Arvid Norberg 4d4204a3a7 added assert.cpp and .hpp to the makefiles 2007-09-17 06:39:04 +00:00
Arvid Norberg 8e899fa9fd updated the assert macro to send SIGINT to the process (to break into the debugger) and also to be used on macos 2007-09-17 02:32:51 +00:00
Arvid Norberg 9364a2d01d added priority to disk io jobs 2007-09-16 01:34:06 +00:00
Arvid Norberg 3a11c3bfad broadcast socket and piece_picker fix 2007-09-15 20:20:07 +00:00
Arvid Norberg 73bb0c05ad added 'incoming' peer source 2007-09-15 20:17:23 +00:00
Arvid Norberg bdd14cc155 added reject and suggest hooks to peer plugins 2007-09-14 03:38:38 +00:00
Arvid Norberg 15a193d363 fixed race condition in tracker manager 2007-09-14 02:54:15 +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 94f5b93d21 made it possible to pass in custom buffers to piece_manager::async_read, increased the maximum buffer size on bottled http_requests 2007-09-11 17:45:20 +00:00
unsh 214dfa9427 made storage.cpp build on FreeBSD, updated Makefile.am 2007-09-10 13:46:08 +00:00
Arvid Norberg 80aee32972 fixed piece picker problem when a downloading piece could not be picked with the right speed category 2007-09-10 08:07:18 +00:00
Arvid Norberg 57a76f9db6 fixed debug assert on linux 2007-09-10 06:12:41 +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 4fcdea4172 piece picker fix 2007-09-09 23:46:28 +00:00
Arvid Norberg 777bb87a55 made connection_queue thread safe 2007-09-08 16:27:43 +00:00
Arvid Norberg 0d6970168d piece picker updates 2007-09-06 18:30:46 +00:00
Arvid Norberg 49dfc4d63d fixed typo 2007-09-06 00:51:14 +00:00
Arvid Norberg 24b57d62c8 piece picker fixes and optimizations (requires more tests in unit tests) 2007-09-05 21:21:11 +00:00
Arvid Norberg 6d40519e66 added support for piece picker to pick multiple pieces (previously it could only pick one piece tops). Made the web_peer_connection always try to make 1 MB requests at a time. added tests to the piece_picker unit test 2007-09-03 21:16:24 +00:00
Arvid Norberg 61c269efee added timeout for interested peers that don't request once they're unchoked. Added support for suggest_piece 2007-09-01 07:38:10 +00:00
Arvid Norberg fd42f3232b upnp more logging and error recovery 2007-09-01 04:08:39 +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 4aa018484a fixed unchoke counter problem 2007-08-27 16:30:56 +00:00
Arvid Norberg 79e0e06fa9 improved bandwidth_limiter test and fixed problem where limits could lead to starvation 2007-08-27 10:20:23 +00:00
Arvid Norberg 2b0197e810 initial fix to enable mapping files in torrents to other files on disk. see torrent_info::remap_files 2007-08-25 18:26:43 +00:00
Arvid Norberg c0ffdc51c7 piece picker fix and bandwidth_limiter typo fix 2007-08-25 05:09:25 +00:00
Arvid Norberg d963625949 added assert to bandwidth_limiter 2007-08-24 02:12:07 +00:00
Arvid Norberg cc54c242a1 rate limiter fix 2007-08-23 16:49:59 +00:00
Arvid Norberg 9e2367fd13 bandwidth limiter fix 2007-08-22 23:24:06 +00:00
Arvid Norberg c0ed1fa13a fixed default value for paused 2007-08-22 05:37:49 +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 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 a443225d49 added experimental assert with stacktrace for elf targets using gcc 2007-08-20 04:58:56 +00:00
Arvid Norberg c70223ff38 added url seed related functions to torrent_handle 2007-08-17 16:40:55 +00:00
Arvid Norberg 3d3df51d45 fixed per torrent unchoke limit 2007-08-17 07:37:08 +00:00
Arvid Norberg 477e5c33f5 fixed makefiles to work with latest source 2007-08-17 00:20:13 +00:00
Arvid Norberg d00ce3b28b optimized policy and removed #warning 2007-08-16 23:53:14 +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 b62bb7944f merged fast-extension => trunk. the fast extension branch is now closed 2007-08-14 17:47:48 +00:00
Arvid Norberg e802a74ecb deprecated fix for gcc (requires 4.0+) 2007-08-11 15:12:21 +00:00
Arvid Norberg 6e78b6b824 optimization to only update peer interests in case a piece was filtered/unfiltered during a priority call 2007-08-10 21:13:35 +00:00
Arvid Norberg a234de50e3 added deprecation messages to gcc 2007-08-10 16:57:53 +00:00
Arvid Norberg fc74e5d147 added deprecation messages to gcc 2007-08-10 16:57:37 +00:00
Arvid Norberg 4d04588def made libtorrent build on msvc-8 sp1 2007-08-08 21:22:59 +00:00
Arvid Norberg f222fe8f4b xml parser fixes 2007-08-07 06:48:47 +00:00
Arvid Norberg cd05e4e67c added support for xml declarators, comments, quoted attribute values and parse error messages in xml parser 2007-08-07 03:27:08 +00:00
Arvid Norberg 9f08256dff added support for attributes in the xml parser 2007-08-07 01:32:38 +00:00
Arvid Norberg be1faccd1d peer_connection fixes for earlier pending disk buffer size limit 2007-08-03 08:19:10 +00:00
Arvid Norberg 8387240b31 more asserts, piece_picker fixes, debug-iterator fixes 2007-08-03 06:13:26 +00:00
Arvid Norberg 192ce4b463 added some extra checks for buffer overrun in disk_io_thread 2007-08-02 01:42:19 +00:00
Arvid Norberg 1973af7779 added alert messages for blocks finishing, pieces finishing and blocks being requested. patch by micah 2007-08-01 06:14:16 +00:00
Arvid Norberg 54aa76f940 exposed queued disk bytes in peer_info 2007-08-01 06:11:11 +00:00
Arvid Norberg 786d4e5f25 added a limit on how many bytes each connection can have pending in the disk write queue 2007-08-01 05:22:34 +00:00
Arvid Norberg f67deba30e fixed #81 2007-07-26 07:04:35 +00:00
Arvid Norberg f89ce2669f fixes #90. adds compact_mode to torrent_status 2007-07-23 04:36:56 +00:00
Arvid Norberg 664abc570b uploads limit fix 2007-07-17 06:39:39 +00:00
Arvid Norberg 5ae2e83af6 fixed _SECURE_SCL issue with msvc8 2007-07-17 01:29:58 +00:00
Arvid Norberg cf35ec6d9c added asserts to try to catch #84 2007-07-15 19:00:41 +00:00
Arvid Norberg 1acedb39dc prioritize more complete partial pieces over less complete ones 2007-07-15 15:41:55 +00:00
Arvid Norberg 96430f5edd added an assert to bandwidth limiter 2007-07-15 14:24:06 +00:00
Arvid Norberg 6650a34cfd fixed #83 2007-07-15 14:20:55 +00:00
Arvid Norberg 9bdf2a9c8d fixed invariant check in policy 2007-07-10 17:25:10 +00:00
Arvid Norberg 47be8980ca fixed typo in previous check-in 2007-07-09 17:45:45 +00:00
Arvid Norberg df5a036066 fixed assert when using checked iterators 2007-07-09 17:34:38 +00:00
Arvid Norberg 182c917842 optimized peer_connection by postponing diffie hellman key creation and generation of handhake until the connection has succeeded 2007-07-09 04:22:38 +00:00
Arvid Norberg 4771f323f6 added invariant checks for peer_counter in block_info. added bytes_progress and block_size to block_info (to allow a more detail download progress display). Updated client_test to show download progress per block and also to have a separate color for 'multi blocks' (i.e. blocks that have been requested from more than one peer) 2007-07-08 20:45:42 +00:00
Arvid Norberg 82e1160214 introduced a non-rarest-first option to the piece picker that is used to pick the very first pieces in a torrent 2007-07-07 01:26:30 +00:00
Arvid Norberg a3e66a3efe made the piece picker handle multi-request blocks better. fixes problem that might occur at the end of a torrent where the piece picker could take over blocks back and forth 2007-07-06 17:15:35 +00:00
Arvid Norberg 0e1e1484ee made test_piece_picker build on gcc 3.3 2007-07-04 18:05:29 +00:00
Arvid Norberg b20270d243 added more asserts related to recent downloading_piece optimization and fixed a translation problem to the public interface 2007-07-04 15:46:10 +00:00
Arvid Norberg 3bdf01778a chamged peer representation from tcp::endpoint to policy::peer pointer in piece_picker's downloading piece. Saves memory, removes the need for lookup and improves the hash check fail/pass handling for closed connections 2007-07-04 02:16:49 +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 8aa37dfa39 fixed #75 2007-07-02 19:31:46 +00:00
Arvid Norberg 816bf3ff2d made the number of peers requested from trackers customizable 2007-07-02 18:44:33 +00:00
Arvid Norberg f05b06d4e5 added required operator on time_duration 2007-06-14 23:15:30 +00:00
Arvid Norberg 7d7a764f26 fixed a preprocessor condition bug where boost.date_time was being used when it shouldn't 2007-06-14 22:57:29 +00:00
Arvid Norberg 46bf2970fb fixes to remote peer download rate etimation 2007-06-14 21:47:00 +00:00
Arvid Norberg bbaa2efcb0 removed asserts that are can no longer be maintained with the async io 2007-06-13 18:09:52 +00:00
Arvid Norberg fa1a37e649 updated Jamfile to support openssl on windows, added missing files to makefiles and made test_pe_crypto build when encryption is disabled 2007-06-13 01:48:24 +00:00
Arvid Norberg 5b5f3b3ca2 support for ip address in announce 2007-06-13 00:20:06 +00:00
Arvid Norberg b75a69cd47 added alerts for synchronizing disk io when pausing and moving storage 2007-06-11 21:24:14 +00:00
Arvid Norberg c960878352 added missing header file to makefile 2007-06-10 21:19:46 +00:00
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
Arvid Norberg d0381a4cbd added getters for rate limit on peer connections 2007-04-02 21:06:00 +00:00
Arvid Norberg ec2962dd62 extensions are now instantiated for web seeds as well 2007-04-02 20:00:24 +00:00
Arvid Norberg 10b5f538b1 fixed timeout issues on non-bottled long running http connections 2007-04-02 18:51:35 +00:00
Arvid Norberg 2f9611a1a9 UPnP seems to work 2007-04-01 15:39:08 +00:00
Arvid Norberg 3d2a4e00b9 upnp fixes 2007-04-01 01:18:10 +00:00
Arvid Norberg 9e1123eb9e more UPnP work. updated ChangeLog and features documentation 2007-03-31 23:23:30 +00:00
Arvid Norberg b8721ad854 updates to the upnp code 2007-03-30 16:57:55 +00:00
Arvid Norberg 513d388c2c added extension hook when files have been checked 2007-03-28 22:59:35 +00:00
Arvid Norberg f2778d52d1 introduced failcounter for peers, increased timeout for peer info (such as being banned). Peers that fails 4 times are removed from the peer-list 2007-03-28 19:56:53 +00:00
Arvid Norberg f1af5dc637 changes to ut_pex, added support for seed flag in pex messages 2007-03-28 01:06:15 +00:00
Arvid Norberg 72fd437ff0 moved the resume data verification to the storage, since the storage may map the files differently. The creation of resume data should probably also be moved there 2007-03-27 23:49:05 +00:00
Arvid Norberg 29e43d7f62 added http_connection and a simple xml parser, used by a upnp implementation that still isn't finished 2007-03-27 07:04:31 +00:00
Arvid Norberg 99c586b152 accessor to the extension info from the info dictionary in a torrent file. 2007-03-22 23:37:24 +00:00
Arvid Norberg 20e38bc42b peer interest flag is now updated when priority is changed. fixes in piece_picker 2007-03-21 02:09:50 +00:00
Arvid Norberg 776b399a97 added api for piece priorities 2007-03-20 01:59:00 +00:00
Arvid Norberg 7ff5893431 reverted bad check-in where files_checked was removed from piece_picker 2007-03-17 17:28:59 +00:00
Arvid Norberg 8957b64c04 prepared for precompiled headers support. fixed issue where storage didn't lock the session properly. fixed typo in natpmp.cpp 2007-03-17 17:15:16 +00:00
Arvid Norberg 4ac08f393a simplified the piece picker by initializing it properly in its constructor. Removed natpmp reporting port map success when removing mappings. fix where incoming connections before the files were completely checked would cause an assert. 2007-03-16 23:28:26 +00:00
Arvid Norberg a6b1583d3f fixes to natpmp to take listen interface into account. added colors to the log in client_test 2007-03-16 21:04:58 +00:00
Arvid Norberg 118e1cf00d added alerts for reporting nat-pmp status 2007-03-16 08:25:08 +00:00
Arvid Norberg de69453826 merged fixes from RC_0_12 branch 2007-03-16 07:59:04 +00:00
Arvid Norberg 029953c5ae made the storage into a customization point. it is now interchangable for a custom implementation 2007-03-16 05:29:23 +00:00
Arvid Norberg 52d6a201be merged error message fix from RC_0_12 branch 2007-03-16 01:24:40 +00:00
Arvid Norberg ecaa3068d5 added natpmp support. bumped version number to 0.13. added piece priority support to the piece picker. optmized and simplified the piece picker in the process. 2007-03-15 22:03:56 +00:00
Arvid Norberg 2dbfa156d3 client test now always uses dht. fixed problem with the dht logging and updated dht extension docs. 2007-03-08 21:42:37 +00:00
Arvid Norberg 6f0a0beadb fix to allow hostnames for peers in tracker responses 2007-03-07 18:50:38 +00:00
Arvid Norberg 7e3a415d0b made the trackers pick the most suitable interface to connect to (IPv6/Ipv4 issue). added Mono Torrent to identify_client and dht statistics. 2007-03-02 18:40:02 +00:00
Arvid Norberg 83c2039ff7 fix to previous dht fix. removed some deprication warnings on msvc-8. various fixes 2007-03-02 01:16:59 +00:00
Arvid Norberg 7888b72e12 fix for crashes when stopping or restarting DHT 2007-02-25 09:42:43 +00:00
Arvid Norberg b0ae8d3a14 tracker fixes for trackerless torrents 2007-02-21 17:15:47 +00:00
Arvid Norberg 4f86042b97 bandwidth management fix + improved string conversion fallback in case strings are incorrect in torrent 2007-02-19 23:06:20 +00:00
Arvid Norberg 9c0e9701d9 fix for bug in bandwidth throttler when limiting a torrent to lower than bandwidth block size. Fixed #ifndef related to DHT support 2007-02-19 00:01:39 +00:00
Arvid Norberg 16457e2280 fixed missing #ifdef 2007-02-18 18:28:07 +00:00
Arvid Norberg 320de0d8e6 fixed warning on msvc-8 2007-02-17 01:01:34 +00:00
Arvid Norberg f795be7acf made the dht be a fallback by default, fixed glitch in earlier fix to make sure block requests are sent properly, fixed problem in peer_connection::second_tick if the piece picker was removed because of the torrent becoming a seed 2007-02-12 09:20:49 +00:00
Arvid Norberg 98b92e3f02 fixed problems in the network layer that made web seeds fail some times. prepared for proxy support in peer connections. worked on the http seeding. added support for web seeds in make_torrent tool 2007-02-12 05:46:29 +00:00
Arvid Norberg d0ebdb2dee added prioritization in the bandwidth_manager (throttler), web seeds now have lower priority when being handed bandwidth. torrent_reply_alert now includes the number of peers returned from the tracker. updated Changelog 2007-02-01 07:33:04 +00:00
Arvid Norberg f14c84b01e fixes in DHT to make it work when the number of transaction slots are full (very rare case). Added a feature to (optionally) resolve the countries of peers and updated the docs (see peer_info::country). 2007-01-29 07:39:33 +00:00
Arvid Norberg 69ef67d71e made a common base class for torrent alerts. Made the bandwidth quota block size variable depending on the limit 2007-01-16 05:05:52 +00:00
Arvid Norberg 72e3f97607 added missing header 2007-01-10 17:16:55 +00:00
Arvid Norberg 87f7b186b0 replaced the bandwidth throttling code with a leaky bucket for better accuracy 2007-01-10 15:02:25 +00:00
Arvid Norberg 08e15e2f0c updated Makefile for latest asio, fix in peer exchange, updated client_test output 2007-01-02 17:44:15 +00:00
Daniel Wallin 39b977973f Added accessor functions for upload_rate_limit and download_rate_limit 2007-01-01 23:51:24 +00:00
Arvid Norberg 0f3874028b added btgdaemon to identify client and applied wojci's patch to add num_connections() and num_uploads() to session 2007-01-01 21:04:30 +00:00
Arvid Norberg d58c6d2e31 fixed so that both session constructors initializes boost.filesystem. Fixed the case where the file check throws exceptions, the torrent is no longer removed, but paused 2006-12-30 23:02:21 +00:00
Arvid Norberg 1b46fb9e1b fixed an assert in teh web seed downloader 2006-12-21 02:44:00 +00:00
Arvid Norberg 3a7eeb3966 rewrote most of the web seed downloader to report its progress accurately (to prevent inconsistencies in the core). Not well tested with multi file torrents yet 2006-12-18 01:23:30 +00:00
Arvid Norberg 13facbdb83 added a strand for all async operations for thread safety 2006-12-15 17:47:21 +00:00
Arvid Norberg fcf211378a fixed http_tracker_connection to finally use the http-parser class (which also web_seed_connection uses). also fixed a case sensitivity issue with http header names. 2006-12-12 02:28:53 +00:00
Arvid Norberg ef235faede added MLDonkey to identify client, fixed a problem introduced with the recent piece_picker optimization, choked peers should now waste less bandwidth in the quota management. 2006-12-04 20:42:47 +00:00
Arvid Norberg 90feac8126 deallocates the piece picker when seeding, to free up unused memory 2006-12-04 12:20:34 +00:00
Arvid Norberg 947df91b20 improved support for multiple connections per ip 2006-11-30 11:56:19 +00:00
Arvid Norberg ce9eed5ea1 fixed incorrectly named members of session_status, fixed compilation error in ut_pex, documentation updates 2006-11-28 18:18:37 +00:00
Arvid Norberg b63c155c0d added uTorrent Peer exchange support, implemented by MassaRoddel 2006-11-26 17:44:51 +00:00
Arvid Norberg 93b51d7652 more tweaks on quota management 2006-11-24 16:59:47 +00:00
Arvid Norberg 955a947863 added missing newline at the end of file 2006-11-24 14:27:14 +00:00
Arvid Norberg c5cf290f49 more quota management fixes and more stats for web seeds 2006-11-24 14:22:52 +00:00
Arvid Norberg 1015864eeb fixed division by zero problem in allocate_resources, removed incorrect asserts 2006-11-22 12:15:47 +00:00
Arvid Norberg 8e289bb233 improved logging and fixed glitch in quota management. 2006-11-21 15:51:28 +00:00
Arvid Norberg 68e8ea35ea added logging of upload and download statistics, revised some of the quota management, added support for sessions to allocate_resources (patch by wojci) 2006-11-20 21:03:58 +00:00