Commit Graph

1228 Commits

Author SHA1 Message Date
Arvid Norberg 166f761df3 fixed DHT bug where requests that timed out would be treated as transaction_id overflows and would slow down DHT lookups considerably. 2008-09-15 05:05:26 +00:00
Arvid Norberg 3077fdcb6a fix crash when tracker connections fails in the constructor (used to be the case for scrape when there were no url transform from announce to scrape) 2008-09-07 10:03:59 +00:00
Arvid Norberg fddd1ee8e2 fixed assert when connecting to upload-only peers 2008-09-07 01:01:25 +00:00
Arvid Norberg 41808f8742 big change to improve piece picker. Better end-game mode. More options on which pieces to pick. 2008-09-06 21:04:57 +00:00
Arvid Norberg 7f143791d5 added get_storage_impl() to torrent_handle 2008-09-04 16:20:19 +00:00
Arvid Norberg c88071ae10 fixed race when adding router nodes to the dht (router nodes should be added before it's started) 2008-09-02 06:37:40 +00:00
Arvid Norberg 92ed7fb364 fixed metadata extension issues 2008-08-29 17:21:56 +00:00
Arvid Norberg 5486e17b15 fixed bug in bitfield and updated test 2008-08-29 12:19:21 +00:00
Arvid Norberg 9b38724417 made dump torrent create magnet links 2008-08-27 18:44:35 +00:00
Arvid Norberg e9045cc1df fixes bug where priorities where lost when force-rechecking. 2008-08-25 22:32:50 +00:00
Arvid Norberg d2e5f3919d changed alert messages to use asio to string conversion for endpoint (fixes missing [] on IPv6 addresses) 2008-08-25 21:21:38 +00:00
Arvid Norberg dd318fb9a3 fixed warnings in bencode 2008-08-21 11:40:49 +00:00
Arvid Norberg e58485822b optimized encryption 2008-08-20 23:05:12 +00:00
Arvid Norberg 37389e4fe4 added test to measure peak download rate and introduced performance warning alert when disk buffer limit and request limit are reached 2008-08-19 15:04:14 +00:00
Arvid Norberg 29bf61d364 fixed state changed alert since 'connecting' was removed 2008-08-18 18:04:04 +00:00
Arvid Norberg 9bae670ac7 fix build with boost-1.36 2008-08-16 21:11:27 +00:00
Arvid Norberg 015ab223c9 added asserts for timers 2008-08-16 21:07:45 +00:00
Arvid Norberg 7d47ed54eb removed connecting_to_tracker state 2008-08-03 15:32:15 +00:00
Arvid Norberg cbf8e6f3b1 introduced TORRENT_NO_DEPRECATE, to disable deprecated functions. Made example not use deprecated functions. Documented magnet uri related functions. 2008-08-03 15:14:08 +00:00
Arvid Norberg 18b14e56df made the minimum announce interval configurable 2008-08-01 22:34:37 +00:00
Arvid Norberg 854f029fc1 fixed warning on gcc 4.3 2008-07-30 06:41:05 +00:00
Arvid Norberg 4aee6df9d4 fixed create_torrent 2008-07-22 13:01:22 +00:00
Arvid Norberg b22082b77b add set_priv and priv to create_torrent 2008-07-21 17:04:31 +00:00
Arvid Norberg df27541904 only use wpath on windows 2008-07-20 16:13:52 +00:00
Arvid Norberg c605c8021f added file priority functions 2008-07-20 16:00:08 +00:00
Arvid Norberg 417855848f merged file_win.cpp and file.cpp (removed the need for file_win.cpp). The file is no longer a pimpl 2008-07-20 11:14:54 +00:00
Arvid Norberg 0433a32857 fixed msvc warning 2008-07-20 10:35:51 +00:00
Arvid Norberg 7607034ab6 exposed upload_only in peer_info 2008-07-19 07:57:43 +00:00
Arvid Norberg 21dff61cb5 clears read cache when paused. Saves memory 2008-07-18 15:31:22 +00:00
Arvid Norberg 3b35b2c2e3 added dict_find_string to lazy_entry 2008-07-18 13:48:09 +00:00
Arvid Norberg 2ab80ddc3a moved the error_category to error_code.cpp and added the new files (error_code.{hpp|.cpp}) to the Jamfile and makefiles 2008-07-18 10:22:16 +00:00
Arvid Norberg 429a118dd2 keep track of interest more tightly. better support for upload_only 2008-07-18 10:03:42 +00:00
Andrew Resch 755567a7a0 Fix building with msvc 2008-07-17 23:56:58 +00:00
Arvid Norberg 3cb1369385 improved error reporting of file errors (uses boost.system's error_code). Now permission errors are properly reported when checking files 2008-07-17 23:41:46 +00:00
Arvid Norberg 72b99059e7 optimized policy::peer 2008-07-14 11:15:35 +00:00
Arvid Norberg 7541d9d246 don't allow force_tracker_request when paused 2008-07-12 18:45:58 +00:00
Arvid Norberg ff6cbbc6b6 added torrent_handle::clear_error() to retry a torrent that is in an error state (torrent_status::error is set) 2008-07-12 17:00:52 +00:00
Arvid Norberg 9bf25d1006 changed the definition of file_progress and deprecated the old function. Python bindings only exposes the new one 2008-07-12 13:38:22 +00:00
Arvid Norberg e49c015c92 fixed torrent alert assert 2008-07-12 11:04:23 +00:00
Arvid Norberg c5af2c2eaf moved tracker announces into a timer instead of polling every second. Added state to properly send complete, started and stopped events 2008-07-12 08:25:19 +00:00
Arvid Norberg 486fb1082d reports event in tracker_announce_alert 2008-07-11 12:00:29 +00:00
Arvid Norberg 9c9c13c7bb exposed read cache info as well as write cache 2008-07-11 10:29:26 +00:00
Arvid Norberg 589e098002 fixed parole mode with timeouts and made it optional 2008-07-11 09:23:22 +00:00
Arvid Norberg de8f676b98 increase timeouts 2008-07-11 09:02:05 +00:00
Arvid Norberg 96ca475652 added redundant and failed byte counters to session 2008-07-11 07:30:04 +00:00
Arvid Norberg 680dab5a67 make 'snubbed' more sticky by only giving one request_timeout back when a new block is being received 2008-07-10 19:31:22 +00:00
Arvid Norberg 1bdb6afebd fixes to previous connection timeout check-in 2008-07-10 10:58:30 +00:00
Arvid Norberg d06f125513 improved accuracy of the file progress report to include completed blocks from incomplete pieces (but not partial blocks) 2008-07-09 10:45:07 +00:00
Arvid Norberg 55a944c014 added a unwanted_block_alert 2008-07-08 18:41:04 +00:00
Arvid Norberg 5c749bcb3c added base class for peer_alerts and turned more alerts into peer_alerts with more information about the peer that generated it 2008-07-08 09:30:10 +00:00
Arvid Norberg a20f1a8fa0 keeps track of the number of requests waiting in the send buffer and adjusts bandwidht priority accordingly in the bandwidth limiter 2008-07-08 00:03:08 +00:00
Arvid Norberg f7042ca84a improved piece timeout and peer snubbing logic 2008-07-07 12:04:06 +00:00
Arvid Norberg e576babbb8 changed the alerts to have categories and to be filtered with a bitmask instead of having a severity and be filtered by a severity level. 2008-07-06 12:22:56 +00:00
Arvid Norberg dab1b22982 made get_asio.sh script check out asio directly into the libtorrent directory. Certain tools cannot handle the symbolic links properly, such as vmware folder sharing 2008-07-05 17:41:54 +00:00
Arvid Norberg ecb538b4b2 added alert for torrent state changes. Fixes #360 2008-07-03 10:05:51 +00:00
Arvid Norberg 66a7f98d84 fixed missing torrent error state 2008-07-02 21:27:16 +00:00
Arvid Norberg af0ebb519c added copyright notices in files missing them 2008-07-01 18:59:13 +00:00
Arvid Norberg 40d7e2ce75 moved load_file into torrent_info.cpp to make it available on windows too. Fixed the exception free path in torrent_info 2008-07-01 11:00:00 +00:00
Arvid Norberg 10f5418ce7 switched extension handshake parsing over to use lazy_bdecode for improved performance 2008-07-01 08:04:12 +00:00
Arvid Norberg 9c84908bb9 switched resume data parsing over to use lazy_bdecode. Improves memory allocation performance, especially noticable when heap allocations are expensive. Makes it more practical to run with malloc debug. Changed resume data interface to take a vector as opposed to a parsed structure 2008-06-30 23:14:31 +00:00
Arvid Norberg d396ab7b17 added pause and resume to the session. Fixes #349 2008-06-29 19:08:30 +00:00
Arvid Norberg 2ac5c13e6f introduced a stricter timeout on piece requests and snubbing. exposed some more data about this through the peer_info. Fixes #40 2008-06-29 09:50:42 +00:00
Arvid Norberg d1b2cd558e moved peer time out logic to second tick 2008-06-29 05:35:48 +00:00
Arvid Norberg b27b2b6e71 fixed typo 2008-06-28 17:58:15 +00:00
roman_rybalko 914dcac3d2 trunk:
moved to asio-1-0-0 from asio-head (get_asio & makefile fix)
tests moved to "check" target
2008-06-28 10:38:12 +00:00
Arvid Norberg d132dd45e3 removed exceptions from pe_crypto and improved error handling 2008-06-28 10:10:05 +00:00
cg25 ff3e80c42f Removed svn:executable property from {c,h}pp files in branches/RC_0_13 and
trunk.
2008-06-25 14:15:21 +00:00
Arvid Norberg 4d380c57d7 made bdecode not throw 2008-06-23 22:00:27 +00:00
Arvid Norberg 87660b96c5 renamed announce_piece to piece_passed and moved it to piece_finished and piece_failed 2008-06-23 18:54:58 +00:00
Arvid Norberg c210b11b80 better fix for failing pieces 2008-06-23 14:45:01 +00:00
cg25 71c4f6f9b6 * improved --with-asio configure option behaviour;
* using -version-info flag instead of -revision one for the sake of correct
  interface versioning;
* renaming library to libtorrent-rasterbar.so to avoind conflicting with other
  libraries.
2008-06-23 00:09:12 +00:00
cg25 3ce23558b4 Added "--with-asio" option to configure script to be able to choose between
"system" and "shipped" asio when building against boost-1.34
2008-06-22 20:51:26 +00:00
Arvid Norberg 6db1b54304 simplified policy and optimized case when a piece fails hash check 2008-06-22 20:28:03 +00:00
Arvid Norberg 0f0ea269bc added an active torrent limit 2008-06-21 12:31:28 +00:00
Arvid Norberg d0e579826c added an option to not count inactive torrents against the limits for auto managed torrents 2008-06-21 09:15:29 +00:00
Arvid Norberg b183b2e593 made it possible to export the upnp state and insert it into a different upnp instance 2008-06-20 16:14:10 +00:00
Arvid Norberg 3095a5afcc fixed makefiles to build with asio-1.0 and get_asio script to download asio-1.0 tag 2008-06-19 12:42:45 +00:00
Arvid Norberg d2bde64e71 makes sure a torrent doesn't have too many pieces than can be handled. Fixes #61 2008-06-19 11:28:34 +00:00
Arvid Norberg 0241bf78ce added is_sequential_download to torrent_handle 2008-06-17 08:30:04 +00:00
Arvid Norberg 6c24bd0774 moves force checked torrents to the end of the queue. Fixes #350 2008-06-16 22:27:14 +00:00
Arvid Norberg 3e000a3984 fixed save path updates when moving torrents. Fixes #310 2008-06-15 20:52:46 +00:00
roman_rybalko 5314b639e2 boost detection fixes: now able to launch with boost1.34 and boost1.35 2008-06-13 12:20:55 +00:00
Arvid Norberg 5923ef5b43 fixed file check ordering to respect the queue position. Fixes #350 2008-06-12 21:22:24 +00:00
Arvid Norberg 52f6204288 simplified the disk-io mutexes and made it more efficient. separated the disk io mutex into a buffer mutex, queue mutex and the piece cache mutex. 2008-06-12 04:40:37 +00:00
Arvid Norberg 6e69480176 disk_io_thread fixes. Properly destructs torrent objects while disk io mutex is not locked. Properly flushes disk cache when closing, and aborting read and file check jobs. Fixes #334 2008-06-09 04:46:34 +00:00
Andrew Resch 3ea075f169 Add torrent_resumed alert 2008-06-08 05:14:40 +00:00
Arvid Norberg a1857f9699 added force_recheck to torrent_handle. Fixes #120 2008-06-07 16:24:56 +00:00
Arvid Norberg 9f5fa96cad fixed bug related to m_have_piece optimization. Renamed num_pieces() to num_have() to avoid confusion 2008-06-07 14:03:21 +00:00
Arvid Norberg 9d1e77dc88 optimized away torrent::m_have_pieces (#62) and added some documentation on bitfield. The piece picker is now constructed with the torrent, but still freed when turned into a seed 2008-06-07 02:58:28 +00:00
Arvid Norberg bcc24bf831 added has_incoming to torrent_status per #315 2008-06-05 18:19:03 +00:00
Arvid Norberg 4709d202e1 fixed unicode issue in storage 2008-06-04 07:57:07 +00:00
Arvid Norberg b4c160e723 fixed bug in web_peer_connection where an incorrect number of bytes would be reported as downloaded 2008-06-03 15:17:09 +00:00
Arvid Norberg c883f4475c saves statistics from the last second from peer connections that are disconnected. Partly fixes #339 2008-06-03 05:21:00 +00:00
Arvid Norberg 31c9d378f5 completed queuing. It is now possible to change and query queue position of torrents. 2008-05-29 03:37:19 +00:00
Arvid Norberg fd98434c97 peer list optimization and introduced hard limit on peer list size 2008-05-28 18:25:48 +00:00
Arvid Norberg 3910fe78de separated file_storage from torrent_info and create_torrent 2008-05-28 08:44:40 +00:00
Arvid Norberg cf37d8544d fixed boost version check. Fixes #337 2008-05-28 07:52:25 +00:00
Arvid Norberg 68c31e48dc replaced vector<bool> with a custom bitfield type 2008-05-28 02:35:02 +00:00
Arvid Norberg 01cb206afc added missing include file to makefile 2008-05-21 05:54:12 +00:00
Arvid Norberg dbb625a910 torrent_info fixes. make_torrent now builds 2008-05-20 09:49:40 +00:00
Arvid Norberg 31ab7f9773 boost 1.35 related fixes 2008-05-20 09:45:55 +00:00
Arvid Norberg 67354421fb introduced an error state for torrents. Torrents with an error are not restarted automatically 2008-05-20 07:57:44 +00:00
Andrew Resch aed8f355b0 Make libtorrent build with boost <1.35 2008-05-20 06:03:46 +00:00
Arvid Norberg 5840a50d79 fixed stale state when switching from finished to downloading 2008-05-20 03:21:45 +00:00
Arvid Norberg 07f070868d factored out to_hex into the escape_string header file 2008-05-19 07:36:04 +00:00
Arvid Norberg 8613554c2a entry and scrape bug fix 2008-05-19 07:15:44 +00:00
Arvid Norberg 777954ab3e automatically scrape auto managed torrents to keep track of downloader/seed ratio 2008-05-19 04:06:25 +00:00
Arvid Norberg c460704a5f streamlined class footprint by reducing padding 2008-05-19 02:52:32 +00:00
Arvid Norberg c5d61667b3 http_connection now supports connecting to all IPs a hostname resolves to, as fallbacks 2008-05-18 22:14:55 +00:00
Arvid Norberg 111f5faecb upload only extension 2008-05-18 05:59:47 +00:00
Arvid Norberg b952d85734 fixed error handling and added support for relative http redirects (which aren't allowed by the standard) 2008-05-18 04:48:06 +00:00
Arvid Norberg 7f639e57de improved error handling with regards to parse_url_components. For trunk, moved that function to its own file 2008-05-17 14:19:34 +00:00
Arvid Norberg 5ec7da07e6 fixes #332 2008-05-17 00:27:26 +00:00
Arvid Norberg 6ab19756a3 lazy_entry fix 2008-05-15 08:23:32 +00:00
Arvid Norberg 0ed87e4c59 updated python binding to match the recently changed torrent_info. reintroduced add_node 2008-05-15 07:37:34 +00:00
Arvid Norberg 1b209ba29c fixed typo 2008-05-15 07:18:31 +00:00
Arvid Norberg 8ed949c4d5 factored out torrent creation functionality from torrent_info into create_torrent. Modified torrent_info to use lazy_bdecoder for increased performance 2008-05-14 05:29:42 +00:00
Arvid Norberg a954240aa9 added swap to lazy entry 2008-05-14 05:16:40 +00:00
Arvid Norberg 0de312c80c ignores UPnP routers that are not configured as routers on the local machine 2008-05-13 04:59:56 +00:00
Arvid Norberg f259e34f86 peer_connection fix for incoming connections 2008-05-12 10:10:39 +00:00
Arvid Norberg aa8aee6109 updated IP overhead calculation 2008-05-12 08:22:56 +00:00
Arvid Norberg 574211055c GeoIP fixes 2008-05-12 07:14:03 +00:00
Arvid Norberg 149fa28586 added constructor to torrent_info that loads a file directly 2008-05-12 06:35:24 +00:00
Arvid Norberg abb174218b updated disconnect logic (also in [2279]). Introduced new peer_disconnect_alert used for normal disconnects and peer_error_alert is now used for protocol level errors 2008-05-12 06:05:13 +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 eabe9cad2d improved plugin support 2008-05-12 03:05:27 +00:00
Arvid Norberg aa626f1422 logs node uptime and parses it for the DHT 2008-05-10 05:51:58 +00:00
Arvid Norberg 318a455f68 fix missing include 2008-05-08 22:07:13 +00:00
Arvid Norberg bbf9c83edc initial support for icmp errors in the DHT 2008-05-08 00:22:17 +00:00
Arvid Norberg 9429ca4b1f replaced seed cycles with seed rank 2008-05-06 18:03:41 +00:00
Arvid Norberg 4df46a6e5e switched from floats to integers in stat_channel history, to avoid rounding errors 2008-05-06 16:35:15 +00:00
Arvid Norberg f7ef315438 takes IP and TCP headers into account for rate limits as well 2008-05-06 16:15:31 +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 d15573ecc2 disk receive buffer cleanup 2008-05-05 06:25:22 +00:00
Arvid Norberg 7388144ec7 refactored stats class to be extensible with more channels 2008-05-04 17:57:06 +00:00
Arvid Norberg 010d3b6e75 windows fix 2008-05-04 16:10:13 +00:00
Arvid Norberg c7e6c04705 switched over to asio from boost-1.35 2008-05-03 16:05:42 +00:00
Arvid Norberg f3d0eb3c11 fixed boost-1.35 build 2008-05-01 16:31:19 +00:00
Arvid Norberg c3b60f1b8f modified get_default_gateway to not take an interface 2008-04-28 02:20:40 +00:00
Arvid Norberg c2f7fb0fb4 added enum_routes to dump routing table 2008-04-28 00:20:59 +00:00
Arvid Norberg b983b98f6a fix for mingw 2008-04-27 23:21:04 +00:00
Arvid Norberg 0d818da41a bumped version number 2008-04-24 20:41:44 +00:00
Arvid Norberg 00b935150a fix for debug iterators 2008-04-24 17:09:26 +00:00
Arvid Norberg 4d59d9eabc fix build with DHT disabled 2008-04-24 16:57:22 +00:00
Arvid Norberg 228e225489 scans at most 300 peers when finding a connect candidate. Supposedly fixes cpu spikes on large swarms 2008-04-24 07:49:23 +00:00
Arvid Norberg c043d4b21d initial support for queuing 2008-04-24 03:28:48 +00:00
Arvid Norberg fc7dd2c5eb tracker logger fix 2008-04-24 01:35: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
Arvid Norberg 4f132ec568 added GeoIP sources to make files 2008-04-22 00:59:56 +00:00
Arvid Norberg 9a434a919f some more ASNum additions 2008-04-22 00:05:23 +00:00
Arvid Norberg 39eaf766fa lazy_bdecode fixes 2008-04-20 03:18:49 +00:00
Arvid Norberg 72176a9256 lazy bdecoder additions and fixes 2008-04-19 03:00:07 +00:00
Arvid Norberg 755e50bb12 added active_time, seeding_time, all_time_upload and all_time_download to torrent_status. Also updated docs with some missing entries in torrent_status 2008-04-16 06:31:05 +00:00
Arvid Norberg 748a66c343 improvements to lazy_bdecode 2008-04-13 22:34:04 +00:00
Arvid Norberg 3fea2080fd added an asynchronous save_resume_data to make it easier to synchronize with the disk IO thread 2008-04-13 18:54:36 +00:00
Arvid Norberg 6639f72804 if priorities are changed so that the torrent changes state to be finished, a torrent_finished_alert is generated now. Fixes #305 2008-04-13 07:39:37 +00:00
Arvid Norberg 17c4257cce added get_full_peer_list to retrieve all the peers known for a swarm 2008-04-13 06:32:48 +00:00
Arvid Norberg a3e7124614 added out stream operator to lazy_entry 2008-04-13 05:19:10 +00:00
Andrew Resch ca872a0e82 Revert last. 2008-04-13 02:47:41 +00:00
Andrew Resch d825c1d5bd Add torrent_resumed torrent alert. 2008-04-13 02:34:18 +00:00
Andrew Resch 31bd3b1550 Expose torrent_handle::is_finished() 2008-04-13 02:15:56 +00:00
Arvid Norberg d4cfa126aa storage fixes 2008-04-12 22:08:07 +00:00
Arvid Norberg a70789872e added string length to high performance bdecoder 2008-04-12 01:58:55 +00:00
Arvid Norberg 42f55adcce support for country lookup through GeoIP 2008-04-11 08:46:43 +00:00
Arvid Norberg b300c7f835 added high performance bdecoder code 2008-04-11 03:41:09 +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 5f35d170b0 disk io thread cleanup (all read operations are now read into disk buffers, no custom buffers) 2008-04-10 09:11:54 +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 642768bc24 storage cleanup 2008-04-09 01:11:16 +00:00
Arvid Norberg 96f6de9d10 added missing TORRENT_EXPORT statements (to fix shared library build) 2008-04-07 03:03:34 +00:00
Arvid Norberg 89a9a25197 exception fixes in torrent 2008-04-07 02:51:21 +00:00
Arvid Norberg 2fe729c9f5 removed dependencies on exceptions from policy 2008-04-07 01:29:21 +00:00
Arvid Norberg d10205057e port mapping update 2008-04-06 23:18:35 +00:00
Arvid Norberg d8a5f6cd66 updated makefiles for asio 1.0 2008-04-06 20:17:08 +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 35fd9aec61 msvc build fixes and warning fixes 2008-04-05 21:18:27 +00:00
Arvid Norberg 7ebdc27779 fixed trailing backslash 2008-04-05 06:13:06 +00:00
Arvid Norberg e9e12b5531 updated makefile to include the latest asio headers 2008-04-05 06:05:36 +00:00
Arvid Norberg 57d75e120a initial support for GeoIP (only AS mappings for now) 2008-04-05 04:53:22 +00:00
Arvid Norberg 0fcb204128 added peak rates to peer_info 2008-04-03 06:11:21 +00:00
Arvid Norberg cab106adad removed incorrect assert in bandwidth manager 2008-04-03 04:31:31 +00:00
Arvid Norberg 4161be867e removed dht ping from peer_from_tracker. in trunk: implemented a rate limited DHT ping (once a second per torrent) and space optimized the peer structure 2008-04-01 17:38:19 +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 a9bb9023fb fixed build with logging 2008-03-30 18:31:30 +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 2014e312b1 exposed connection_candidates in torrent_status and made a small optimization to not attempt to connect peers on swarms that don't have any connect candidates 2008-03-29 18:47:24 +00:00
Arvid Norberg 483da2483e python binding update 2008-03-28 21:37:35 +00:00
Arvid Norberg 5cad17143d updated udp_socket error handling 2008-03-25 04:46:18 +00:00
Arvid Norberg 1d8edc0722 fixed race condition in dht 2008-03-24 04:38:43 +00:00
Arvid Norberg 211ae62d33 fixes #295 2008-03-24 02:19:47 +00:00
Arvid Norberg 95310549b9 silence msvc warning 2008-03-21 09:04:24 +00:00
Arvid Norberg 70f822b4bd silence msvc warning 2008-03-21 09:03:25 +00:00
Arvid Norberg fece6e9300 fixed #289 in trunk, 0.12 and 0.13 2008-03-19 22:44:55 +00:00
Arvid Norberg f3f90c1a0f bandwidth limiter assertion fix 2008-03-16 18:09:56 +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 026e98222b fixed warning 2008-03-16 05:01:07 +00:00
Arvid Norberg 8132c6aad6 added option to control TOS byte in peer traffic 2008-03-12 16:58:23 +00:00
Arvid Norberg cd65fb8b0c added priority to connection queue. trackers and upnp connections have higher priority than peers 2008-03-12 07:44:27 +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 e86bac9c50 updated makefiles to reflect recent asio changes 2008-03-04 06:27:04 +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 cf5c9344ab made peer connection order depend on ones external IP or be random (if we don't know our external IP). Should fix #281 2008-02-28 03:09:34 +00:00
Arvid Norberg c689c0b5fc replaced deque with list in disk_io_thread 2008-02-26 20:08:33 +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 9f44c577d7 updated file_win and file_pool error handling 2008-02-25 04:41:21 +00:00
Arvid Norberg 1d1398ed7f read cache fix 2008-02-24 23:14:10 +00:00
Arvid Norberg 0e3eddf8e8 lower default connection speed in debug mode 2008-02-22 07:41:05 +00:00
Arvid Norberg ef9ef674d5 added read cache. Not fully configurable yet 2008-02-22 04:11:04 +00:00
Arvid Norberg 333839c9b4 piece picker update 2008-02-18 03:07:14 +00:00
Arvid Norberg 799dd70c4e factored out OS detection code and added kfreebsd support 2008-02-18 00:36:17 +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 af6c0a73c5 fixed dht asserts 2008-02-10 02:26:45 +00:00
Arvid Norberg 6c552db68e added disk cache expiration 2008-02-10 00:58:25 +00:00
Arvid Norberg cecd0dfcd2 added rtt estimation for outgoing connections 2008-02-09 22:42:56 +00:00
Arvid Norberg ea7253c575 increased default cache size to 8 MB 2008-02-09 21:09:29 +00:00
Arvid Norberg 99eed299cd asserts in dht 2008-02-09 21:04:24 +00:00
Arvid Norberg 8cf0510144 added disk cache for write operations 2008-02-08 10:22:05 +00:00
Arvid Norberg a53473a65d added new logging mode to log peer errors 2008-02-07 07:09:52 +00:00
Arvid Norberg 92f4947bbe full proxy support for udp-trackers, and more reliable udp tracker code 2008-02-05 06:32:10 +00:00
Arvid Norberg c798ab30e1 rewrote the piece picker to be more cpu and memory efficient. replaces the concept of sequential-download-threshold with just a sequential download settings 2008-01-31 17:52:29 +00:00
Arvid Norberg 3562c3e646 add bind address support to http_connection and replace http_tracker_connection's code with http_connection 2008-01-31 08:24:01 +00:00
Arvid Norberg 6caca17883 refactored gzip code and added gzip support to http_connection 2008-01-30 18:32:13 +00:00
Arvid Norberg ebde862341 capped the allowed depth in bencoded messages, to avoid triggering stack overflows by malformed messages 2008-01-28 02:58:17 +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 5527a8e9b1 fixed build issue on msvc 2008-01-27 21:03:33 +00:00
Arvid Norberg 365b8c07c6 iterator fixes (to avoid triggering safe iterator asserts) 2008-01-19 18:12:02 +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 97511f2819 removed stray space 2008-01-14 17:25:08 +00:00
Arvid Norberg b19bf337bf generalized peer read/write state 2008-01-13 23:46:43 +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 795bee4b2c added option to disable invariant checks and added more build documentation 2008-01-13 06:17:56 +00:00
Arvid Norberg 9304bd747c added graphing script for bandwidth manager log 2008-01-13 05:14:49 +00:00
Arvid Norberg 56210c1687 added asserts to make sure the pool allocator for dht messages allocates blocks of correct size 2008-01-13 04:24:10 +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 7f56486cf0 separated http_parser to its own file 2008-01-12 09:36:03 +00:00
Arvid Norberg 81302c8fed fixed http_connection redirection support and added test (still requires lighttp) 2008-01-12 01:41:56 +00:00
Arvid Norberg f36e6a6c4f proper default gateway discovery 2008-01-11 09:38:05 +00:00
Arvid Norberg 72edfc2ee7 improved network interface enumeration and upnp device filtering 2008-01-11 06:49:37 +00:00
Arvid Norberg 3a727e99ff expose more info through peer_info 2008-01-10 22:13:23 +00:00
Arvid Norberg 9fca960d3c bandwidth limiter mutex fix 2008-01-10 06:19:20 +00:00
Arvid Norberg c047c4dd71 broadcast socket header file update 2008-01-09 18:51:54 +00:00
Arvid Norberg 695cd6407b remove use of strand 2008-01-08 05:47:43 +00:00
Arvid Norberg 4420473b88 made send buffer watermark configurable 2008-01-08 01:16:30 +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 1d6e0f5bf6 bandwidth request block size optimization 2008-01-07 04:47:20 +00:00
Arvid Norberg e5d1456c58 added a failcounter to upnp portmaps 2008-01-07 02:35:29 +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 0ed722036f fixed assert 2008-01-05 00:54:30 +00:00
Arvid Norberg a49cb42345 fixed race condition in bandwidth limiter 2008-01-03 18:53:07 +00:00
Arvid Norberg 29ccb9220b broadcast socket fix 2008-01-03 10:58:16 +00:00
Arvid Norberg 4e559e8dfe change to entry to support building client in debug mode and libtorrent in release mode 2008-01-03 03:10:25 +00:00
Arvid Norberg 53de59b286 removed packet_iterator from Makefile.am 2008-01-02 03:43:49 +00:00
Arvid Norberg fcd2408f11 fast extension fix, added some logging for fast extension messages, improved test to catch the problem 2008-01-02 03:18:29 +00:00
Arvid Norberg 91e01442e8 added bandwidth_limit.hpp and bandwidth_queue_entry.hpp to makefiles 2008-01-01 21:15:23 +00:00
Arvid Norberg ddf16fb3bb separated bandwidth_manager into bandwidht_limit and bandwidth_queue_entry and fixed problems related to #225 2007-12-31 09:41:50 +00:00
Arvid Norberg 07d1fe84c3 made udp and http tracker connections build without exception support 2007-12-30 01:57:57 +00:00
Arvid Norberg 6c42830f97 made http_parser not use exceptions 2007-12-29 18:24:50 +00:00
Arvid Norberg 599ed646f0 made natpmp build without exception support 2007-12-29 07:26:36 +00:00
Arvid Norberg a279e8c9ec made bandwidth_manager build without exceptions 2007-12-29 05:43:19 +00:00
Arvid Norberg 8b76457b80 support in broadcast_socket to be built without exception support 2007-12-29 05:14:33 +00:00
Arvid Norberg 07b4024024 made debug.hpp build without exception support 2007-12-29 02:03:13 +00:00
Arvid Norberg eb8ea0f461 made torrent_info not rely on exception support 2007-12-28 20:11:10 +00:00
Arvid Norberg 501611173e removed unused header 'packet_iterator.hpp' 2007-12-28 19:46:08 +00:00
Arvid Norberg e88bcaea90 made http_stream and proxy_base support builds with exceptions disabled 2007-12-28 19:26:26 +00:00
Arvid Norberg e6e5b43219 added asserts that the type of a bencoded entry is not assumed when built with no exceptions 2007-12-28 19:07:28 +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 8a47c849ce fix in the smart_ban to not use invalid pointers 2007-12-27 20:57:58 +00:00
Arvid Norberg b2a49d2db9 put back #include <cassert> 2007-12-27 10:50:12 +00:00
Arvid Norberg 904d9bb50b demangles symbols in assert tracebacks 2007-12-27 06:15:52 +00:00
Arvid Norberg 86de8b8bf6 turned assert into TORRENT_ASSERT 2007-12-27 03:43:02 +00:00
Arvid Norberg 81cf247cda attempt to fix #212. Store 4 bytes and 16 bytes arrays instead of in_addr in ip-filter 2007-12-24 21:49:46 +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 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