Commit Graph

799 Commits

Author SHA1 Message Date
Arvid Norberg e0d1951fac fixes #234. properly shuts down the disk io thread 2007-12-24 08:15:10 +00:00
Arvid Norberg b23e9e3795 attempt to fix #201. Uses separate sockets to send broadcast messages in order to be sure to receive unicast responses 2007-12-22 17:33:04 +00:00
Arvid Norberg 1724ce5974 fixed bug in UPnP and added functionality to grab router model 2007-12-22 16:47:46 +00:00
Arvid Norberg e38c0c9cdc added bencoding function and updated ut_metadata extension 2007-12-22 08:15:05 +00:00
Arvid Norberg 9aa2ddec80 added a plugin 'smart_ban' that can ban peers sending bad data with higher accuracy 2007-12-18 06:04:54 +00:00
Arvid Norberg f6b34b7f0b added missing include guard to disk_io_thread.hpp 2007-12-17 22:07:03 +00:00
Arvid Norberg ac28fa7b62 some more asserts related to bandwidth manager 2007-12-14 18:02:06 +00:00
Arvid Norberg 948f53a8af assert fix 2007-12-14 06:09:44 +00:00
Arvid Norberg 9b54043478 attempt to fix potential deadlock in disk_io_thread 2007-12-13 04:05:25 +00:00
Arvid Norberg 07ad5d9796 bandwidth_manager assert fix 2007-12-10 18:13:57 +00:00
Arvid Norberg f06bf0d440 bandwidth manager fix 2007-12-09 18:44:26 +00:00
Arvid Norberg 8c3f9571de socks5 support for udp messages 2007-12-09 04:15:24 +00:00
Arvid Norberg 7cccdcaa7b makefile fixes 2007-12-09 01:21:20 +00:00
Arvid Norberg fff87a6845 added m4 script for boost iostream and added ut_metadata to makefile 2007-12-08 22:02:59 +00:00
Arvid Norberg a7f6e3bccb added abuse protection to DHT. nodes that hammer will be ignored 2007-12-04 02:53:10 +00:00
Arvid Norberg 20621cae02 added magnet-uri functions and a base32 decode function 2007-12-03 06:03:16 +00:00
Arvid Norberg a7b5250058 move url_has_argument to escape_string and added unit tests 2007-12-02 19:10:45 +00:00
Arvid Norberg 9727634f09 added base32encode and moved it into escape_string.hpp 2007-12-02 18:34:37 +00:00
Arvid Norberg f3d45fcfc1 initial support for ut_metadata 2007-12-02 04:16:51 +00:00
Arvid Norberg db0ae6bd7e increased default tracker timeout from 20 seconds to 40 seconds 2007-11-30 17:37:50 +00:00
Arvid Norberg 02ed01d2c4 added first try of a mapped storage 2007-11-30 00:35:09 +00:00
Arvid Norberg 1cc0118c9c supports retry for web seeds that respond with 503 2007-11-27 03:37:47 +00:00
Arvid Norberg c92fef5b69 simplified torrent_handle by using a macro and moving the big chunks of code into torrent (get_download_queue() and get_peer_info()) 2007-11-25 18:48:43 +00:00
Arvid Norberg 769d8aefe2 first version of 'part file' support. Can currently only be set when starting torrent 2007-11-25 10:47:05 +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 81ce2e7890 reverted [1760] and added documentation for downloading_metadata 2007-11-24 04:19:21 +00:00
Arvid Norberg 3edcabd845 removed downloading_metadata state. Fixes #188 2007-11-24 03:24:31 +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 fabfe6cd50 added scrape support 2007-11-20 22:46:27 +00:00
Arvid Norberg da17b30e63 proxy_base shutdown fix 2007-11-19 05:18:50 +00:00
Arvid Norberg fd11e07a55 memory optimization to free piece hashes is now optional 2007-11-19 04:58:52 +00:00
Arvid Norberg 947b3d59d1 updated makefiles to reflect new asio files 2007-11-18 17:20:38 +00:00
Arvid Norberg a1a841a04d http_connection fixes and unit test (not self contained yet, just like test_web_seed) 2007-11-18 04:12:35 +00:00
Arvid Norberg fa8c0c1133 fixed missing include 2007-11-18 01:34:43 +00:00
Arvid Norberg 7be29d9b84 applied 'logpath' patch from #202 2007-11-16 21:21:28 +00:00
Arvid Norberg 95d09070fb cancels more async operations on shutdown 2007-11-11 19:09:29 +00:00
Arvid Norberg 41ef204f26 closes bandwidth rate limiters 2007-11-08 07:52:41 +00:00
Arvid Norberg 80e8aa0a18 add_extension on torrent_handle, to add an extension on an already running torrent 2007-11-08 01:45:35 +00:00
Arvid Norberg 53c125a9b3 made entry not require exceptions 2007-11-02 02:02:52 +00:00
Arvid Norberg cb9fbea5f7 made bdecoder not require exception support 2007-11-02 01:08:10 +00:00
Arvid Norberg fd51412b70 shutdown improvements. Fixes stall 2007-11-02 00:27:53 +00:00
Arvid Norberg d2880ff648 made allocate_send_buffer, setup_send and send_buffer virtual in peer_connection. Fixes #196 2007-10-31 10:20: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 6aeefaf513 removed self() from peer_connection, since it's in intrusive_ptr_base now 2007-10-31 09:44:31 +00:00
Arvid Norberg 0439399169 replaced std::vector with buffer 2007-10-30 17:30:49 +00:00
Arvid Norberg e28689237d uses checked_delete instead of plain delete 2007-10-30 10:08:09 +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 636d5f2005 upnp fixes and more debug asserts and more logging. Might fix #167 2007-10-26 00:47:30 +00:00
Arvid Norberg ee61db101e variant_stream fix 2007-10-26 00:43:28 +00:00
Arvid Norberg 5f89db91a3 query extra fields in torrent files without requiring exception handling 2007-10-24 18:15:13 +00:00
Arvid Norberg 96ba6bc3b2 piece picker priority fix 2007-10-23 22:10:08 +00:00
Arvid Norberg f054ae7c2d made the handshake timeout configurable and defaults to 10 seconds 2007-10-23 00:19:28 +00:00
Arvid Norberg 2662c84f01 fixed issue when calling close on an uninstantiated variant_stream + variant_stream cleanup (removed unncessesary templates) 2007-10-22 22:53:31 +00:00
Arvid Norberg fcc238e801 lowered piece timeout and sends cancels for pieces when a time out occurs 2007-10-22 20:58:42 +00:00
Arvid Norberg ade50123c3 cleaned up unnecessary template functions 2007-10-22 10:54:48 +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 b032c26bf0 adds invariant check to make sure pieces that are complete are also checked. adds a debug function in the disk_io_thread. Fixes a problem with a failing disk write that would not clear the block for re-download. Adds some extra session logging 2007-10-18 00:32:16 +00:00
Arvid Norberg a1356bdb7f intrusive_ptr_base fix 2007-10-15 17:56:22 +00:00
Arvid Norberg 1699fa4652 fast reconnect fixes 2007-10-15 05:03:29 +00:00
Arvid Norberg 78f0aaf654 applied patch from #184 2007-10-13 18:24:24 +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 09bcb3ff2e removed unused left-overs 2007-10-12 22:28:52 +00:00
Arvid Norberg c6c77d8efc fixed so that peers only get one fast-reconnect 2007-10-12 01:12:30 +00:00
Arvid Norberg 995485daeb fixed destruction order issue 2007-10-09 22:17:16 +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 28274bf1bd improved shutdown behavior. decreased tracker timeouts to 5 seconds. added more logging 2007-10-07 18:06:56 +00:00
Arvid Norberg b51f40260a fixed warning in intel-9.0 2007-10-07 16:42:31 +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 2940d253c3 completed fast reconnect fix 2007-10-04 21:26:50 +00:00
Arvid Norberg 82369a552b fix to make torrent_info assignable 2007-10-04 20:47:44 +00:00
Arvid Norberg c4c8d0f533 moved piece_finished_alert to debug level 2007-10-03 23:15:13 +00:00
Arvid Norberg 51f12e774e moved block_downloading_alert and block_finished_alert to debug level 2007-10-03 22:53:52 +00:00
Arvid Norberg 4cab49cbdf saves banned peers in resume data 2007-10-03 17:37:15 +00:00
Arvid Norberg fd180c4294 fixed bug in policy 2007-10-02 20:30:53 +00:00
Arvid Norberg 3dcae188fb policy now has a map of peers instead of a flat list, makes it more efficient to do lookups 2007-10-02 19:11:04 +00:00
Arvid Norberg 16886741d0 release_files now keeps the torrent object alive 2007-10-02 18:34:34 +00:00
Arvid Norberg 973e7be386 added router_for_interface along with a proper windows implementation. NAT-PMP support is now good on windows 2007-10-01 17:21:19 +00:00
Arvid Norberg c3991bcfea fix for previous check-in 2007-10-01 08:59:37 +00:00
Arvid Norberg f20cf1b92f fixes issue whith failure to create logs causes libtorrent to quit, fixes ticket #168 2007-10-01 08:36:15 +00:00
Arvid Norberg 9bcb4e9f09 fixed asio include header 2007-10-01 07:22:51 +00:00
Arvid Norberg 7720b48263 removed invalid inline 2007-10-01 02:21:58 +00:00
Arvid Norberg 29c8cc1a98 fixed makefile to include new asio headers 2007-09-29 22:11:22 +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 c65f33dfcc added chained buffer to makefiles 2007-09-29 21:08:05 +00:00
Arvid Norberg 9597b98f4d moved log_time() into session.cpp instead of being inlined 2007-09-29 20:35:55 +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 d48236a738 changed http_parser slightly. uses http_parser in lsd.cpp. added more tests to the http_parser 2007-09-25 03:14:05 +00:00
Arvid Norberg 1df7c2006a makefile update for recent asio 2007-09-24 19:13:18 +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 3b6aee6d86 switched out std::vector to use libtorrent::buffer as an optimization 2007-09-23 00:51:45 +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 022c38d5f4 added is_any(address) function 2007-09-22 16:26:03 +00:00
Arvid Norberg 87c079033d fixed race condition in enum_net 2007-09-22 16:22:41 +00:00
Arvid Norberg a26bd55ff9 variant_stream fixes and added an operator<< for tcp::endpoint 2007-09-22 16:21:07 +00:00
Arvid Norberg 053f499ec6 better upnp support 2007-09-20 23:25:40 +00:00
Arvid Norberg 587d40e1ae updates to enum_net 2007-09-20 16:25:07 +00:00
Arvid Norberg 338eedf961 added storage assert, fixed policy assert 2007-09-19 19:55:11 +00:00
Arvid Norberg af95c01f24 torrent_handle fixes 2007-09-19 18:34:01 +00:00
Arvid Norberg b0d51950b6 fixed problem in bandwidth_manager 2007-09-19 06:06:18 +00:00
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