Commit Graph

1943 Commits

Author SHA1 Message Date
Arvid Norberg 0a2b352795 possible dangling pointer fix in broadcast_socket 2011-10-25 05:55:32 +00:00
Arvid Norberg 9afd09d797 optimize sending buffers on peer sockets by corking and uncorking 2011-10-24 04:22:53 +00:00
Arvid Norberg 15f20c887d fix msvc build 2011-10-22 17:44:40 +00:00
Arvid Norberg b430152174 post disk job completions in batches to save CPU in the network thread 2011-10-19 05:46:49 +00:00
Arvid Norberg d3fb55e1da optimize socket send buffers a bit 2011-10-19 02:40:37 +00:00
Arvid Norberg 7d20c0b0c4 log CPU usage of network thread 2011-10-17 17:12:08 +00:00
Arvid Norberg 8b6522a763 log buffer sizes passed to read() and write() at the socket layer (to identify performane problems) 2011-10-17 06:54:02 +00:00
Arvid Norberg aab4cb6937 log number of asio messages passed through the queue per second (to track down performance issue) 2011-10-17 05:17:21 +00:00
Arvid Norberg 01405f32ee added async_add_torrent for increased performance when adding many torrents (no documentation yet though) 2011-10-12 10:27:17 +00:00
Arvid Norberg 2741563711 set alert_mask early 2011-10-08 09:52:36 +00:00
Arvid Norberg 15b6888eb3 export default_storage to make it available to derive from 2011-10-07 00:26:19 +00:00
Arvid Norberg d54c85d31b log uTP receive delay in stats log 2011-09-28 00:03:12 +00:00
Arvid Norberg f6b6b57c0e fix avoid-readback cache algorithm 2011-09-27 04:05:05 +00:00
Arvid Norberg 4cde952a68 fix default settings for cache expiry and disk queue size 2011-09-26 05:32:22 +00:00
Arvid Norberg 451c31828f changed semantics of send_buffer_watermark_factor to be specified as a percentage 2011-09-23 21:12:28 +00:00
Arvid Norberg 85db40e2c5 log outstanding reading bytes from peers in stats log 2011-09-23 20:57:42 +00:00
Arvid Norberg 976a50384a some more struct layout optimization 2011-09-22 10:37:47 +00:00
Arvid Norberg 7a50255865 improved struct layout debug logging and optimized some structs 2011-09-21 09:27:07 +00:00
Arvid Norberg f8d5ea4db7 fix some encryption warnings 2011-09-18 20:42:35 +00:00
Arvid Norberg f5b5160169 add incoming_connection_alert for logging all successful incoming connections 2011-09-17 01:44:05 +00:00
Arvid Norberg 3e91b45904 lower some default settings 2011-09-16 09:58:45 +00:00
Arvid Norberg 469414d486 initial BitTorrent over SSL support 2011-09-12 03:51:49 +00:00
Arvid Norberg 675721d971 basic support for bittorrent connections over SSL 2011-09-10 05:52:07 +00:00
Arvid Norberg 92bcb9ebfd feature to encrypt peer connections with a secret AES-256 key stored in .torrent file 2011-09-05 05:50:41 +00:00
Arvid Norberg 43c9e640ab honor IOV_MAX when using writev and readv 2011-09-05 05:47:50 +00:00
Arvid Norberg bc1e47a486 solaris fixes 2011-09-04 23:29:47 +00:00
Arvid Norberg 864da49dd6 fix build error caused by stupid openssl macro 2011-08-31 20:40:29 +00:00
Arvid Norberg ec74d500a4 clean up encryption code some 2011-08-29 02:00:17 +00:00
Arvid Norberg a286a6b4aa initial attempt at verifying the certificate of ssl trackers, by including the certificate in the .torrent file 2011-08-28 21:06:15 +00:00
Arvid Norberg 51ed06304e deprecated compact storage allocation 2011-08-22 00:51:14 +00:00
Arvid Norberg 293e41afff msvc build fix 2011-08-16 09:22:41 +00:00
Arvid Norberg 1c5399b736 piece picker optimization 2011-08-16 06:30:53 +00:00
Arvid Norberg 25ad24ec68 piece picker optimization. O(log n), lookup of downloading pieces instead of O(n) 2011-08-15 04:16:43 +00:00
Arvid Norberg b9be2fe94b fix production assert 2011-08-14 23:55:41 +00:00
Arvid Norberg 524e116277 fix production asserts build 2011-08-14 23:30:40 +00:00
Arvid Norberg 88441e4fdc another attempt at optimizing piece picker 2011-08-14 23:16:12 +00:00
Arvid Norberg e26d49a71c expose new listen_on flags to python 2011-08-13 23:30:11 +00:00
Arvid Norberg 1b470e0961 move the code of chained buffer out to its own cpp file 2011-08-13 23:01:38 +00:00
Arvid Norberg f6554bad08 back ported feature to expose which pieces have been verified in seed_mode and exposes it in client_test (initially implemented in the libtorrent_aio branch) 2011-08-07 07:19:18 +00:00
Arvid Norberg 601443afd3 close files in separate thread on systems where close() may block (Mac OS X for instance) 2011-08-07 04:41:10 +00:00
Arvid Norberg d4958c9286 support for dont-have extension message 2011-08-07 00:41:13 +00:00
Arvid Norberg 109e527568 added reset_piece_deadline function 2011-08-05 06:31:46 +00:00
Arvid Norberg 1537299666 add missing header file to makfile 2011-08-02 16:59:03 +00:00
Arvid Norberg 6a01b035be add missing files 2011-08-01 08:03:26 +00:00
Arvid Norberg bc2f0c8c5e move disk_buffer_pool out to its own file 2011-07-31 02:24:36 +00:00
Arvid Norberg 7817229f5d improve support for merkle tree torrent creation 2011-07-30 17:35:22 +00:00
Arvid Norberg 270f6959e4 fix PRId64 macro for mingw 2011-07-23 21:18:25 +00:00
Arvid Norberg ff6da81c4c fix iconv use on mingw 2011-07-23 19:30:23 +00:00
Arvid Norberg 1b353ce5af fix beos build 2011-07-20 05:14:25 +00:00
Arvid Norberg bf231bf86c apply patch to fix build on GNU hurd 2011-07-14 14:16:32 +00:00
Arvid Norberg 8d86c3bacc fixed release-asserts bulid 2011-07-05 04:05:12 +00:00
Arvid Norberg bf9d864dd2 stronger low-pass filter for iops reporting 2011-07-04 05:52:15 +00:00
Arvid Norberg de3ea9214a log a low-pass filtered iops to stats log 2011-07-03 17:21:45 +00:00
Arvid Norberg 90d8030269 log VM stats alongside the session stats 2011-06-28 22:20:34 +00:00
Arvid Norberg 209b9e4186 make disk timing be average over the last second. fixed some other bugs in previous changes 2011-06-26 19:45:33 +00:00
Arvid Norberg c647e95244 adjust default read cache line size and log IOPS in session stats 2011-06-26 19:00:40 +00:00
Arvid Norberg fdd2482536 fix windows isspace issue 2011-06-22 01:17:22 +00:00
Arvid Norberg c390dd5858 measure uTP send delay and log it in stats log. change unit on times to seconds (from milliseconds and microseconds) 2011-06-21 07:44:13 +00:00
Arvid Norberg 060b849dda factor encryption handler a bit and add proposal for an authentication extension 2011-06-18 16:58:36 +00:00
Arvid Norberg 3ba914b419 fix build 2011-06-14 06:10:35 +00:00
Arvid Norberg 78c6bd3b08 fix signature for set_alert_mask 2011-06-13 16:46:46 +00:00
Arvid Norberg d6c8184381 support locking files 2011-06-09 06:08:24 +00:00
Arvid Norberg f6f516bed0 fix file_storage copy constructor (would break python bindings) 2011-06-06 07:47:29 +00:00
Arvid Norberg 57f24128a9 add more default reporting about the request and download queue of peers to track end-game stall issue 2011-06-06 04:24:12 +00:00
Arvid Norberg b8614a36b3 fix resume state for paused when torrent was in graceful pause mode 2011-06-05 20:48:00 +00:00
Arvid Norberg df003ef57c fix checking behavior when pausing/resuming the session 2011-06-05 03:06:34 +00:00
Arvid Norberg 0c35fde81c memory usage optimization in policy::peer 2011-06-01 06:47:57 +00:00
Arvid Norberg e6640de205 updated IP->ID formula for DHT 2011-05-26 17:04:53 +00:00
Arvid Norberg 6fa1827c39 add support for mutable put/get functions in DHT 2011-05-25 02:26:07 +00:00
Arvid Norberg 5bbbf0cd41 add rsa sign and verification functions for future DHT extensions 2011-05-23 23:42:52 +00:00
Arvid Norberg 6830eb10a9 remove old search code from DHT. modify announce-item to fit with more recent proposal of get/put. Only immutable entries for now 2011-05-23 05:07:52 +00:00
Arvid Norberg 58d723012a support DHT scrape 2011-05-23 00:45:36 +00:00
Arvid Norberg 88fa0b9393 optimize send buffer allocation and deallocation by not allowing requiring contiguous buffers 2011-05-19 02:41:28 +00:00
Arvid Norberg 801d3637b9 attempt to fix crash in udp_socket when using a broken socks5 proxy 2011-05-14 22:25:49 +00:00
Arvid Norberg a9e14217ac address is the sort key in policy::peer and should never change 2011-05-14 20:57:58 +00:00
Arvid Norberg a73960aa5a support release asserts 2011-05-08 09:04:59 +00:00
Arvid Norberg aeb90205c7 fixed typo in release assert support 2011-05-08 06:29:28 +00:00
Arvid Norberg a329a11b57 add build option to always enable asserts (i.e. allow asserts in release builds) 2011-05-07 19:58:38 +00:00
Arvid Norberg c003e4f810 extend plugin API to allow hooking when peers are added to the peer list 2011-05-02 01:45:56 +00:00
Arvid Norberg a9cc2101c6 fixed bug with setting and getting file priorities 2011-05-01 17:43:15 +00:00
Arvid Norberg 0eb7505ad9 fix race condition when resolving the hostname of a web seed and removing it 2011-04-29 08:09:03 +00:00
Arvid Norberg e389f5963d added support for fadvise/F_RDADVISE for improved disk read performance 2011-04-26 07:03:05 +00:00
Arvid Norberg d0af936933 don't turn off read-ahead by default on files. Might impact hash checking 2011-04-25 02:15:18 +00:00
Arvid Norberg 573a291495 first step to remove recursion in bandwidth channel 2011-04-21 03:13:53 +00:00
Arvid Norberg 86d52bbe13 include info-hash in torrent_status and post event when disk cache is fully flushed when deleting a torrent 2011-04-19 08:21:09 +00:00
Arvid Norberg caed433cc7 make it possible to derive from default_storage class 2011-04-16 22:58:11 +00:00
Arvid Norberg 9382c77ea2 fix minor mingw issue 2011-04-14 07:23:48 +00:00
Arvid Norberg abec8aed8c use 'avoid_readback' as default disk cache eviction algorithm 2011-04-11 03:36:37 +00:00
Arvid Norberg c0f2d5186f added option to replace trackers or add trackers when loading trackers from resume data 2011-04-10 21:33:29 +00:00
Arvid Norberg eaedc22831 added make_torrent.py example and polished the python binding for creating torrents 2011-04-10 08:41:07 +00:00
Arvid Norberg 381f42bcf2 fix mingw build 2011-04-10 03:45:13 +00:00
Arvid Norberg 3435da235d make is_upload_only() be accurate and deal with super seeding special case only where necessary. Fix pointless assert in invariant check 2011-04-09 23:57:56 +00:00
Arvid Norberg e5720eafd8 fix crash in udp_socket when using SOCKS5 proxy 2011-04-09 17:59:00 +00:00
Arvid Norberg 8aae74ea03 make enum_net use feature ifdefs instead of platform ifdefs 2011-04-09 03:49:46 +00:00
Arvid Norberg 22f20253f8 support turning logging on and off during run-time when built with stats logging 2011-04-06 06:27:42 +00:00
Arvid Norberg 35d2354c38 bump default .torrent file size limit for magnet files to 3 MB and add more verbose logging to ut_metadata.cpp 2011-04-02 08:13:35 +00:00
Arvid Norberg 74ccff22be use a deque instead of list for disk io jobs queue 2011-03-28 06:01:24 +00:00
Arvid Norberg fdd23fc629 introduce a lower pass download/upload rate and report in session log 2011-03-27 20:58:43 +00:00
Arvid Norberg ddd21cb526 missing change from last check-in 2011-03-27 20:46:20 +00:00
Arvid Norberg 3d826ae32f figured out the weirdness in the session rate stats 2011-03-25 07:49:32 +00:00
Arvid Norberg 7e07f7469f fixed bug in web_connection_base when receiving chunked encoding and made sure the unit tests pass 2011-03-24 16:46:26 +00:00
Arvid Norberg e9459b4df8 rss fixes 2011-03-23 02:46:22 +00:00
Arvid Norberg a79fb228f2 lower default to 3 concurrent downloads 2011-03-21 04:59:03 +00:00
Arvid Norberg 2dfd1a972b prevent read jobs from starving in the disk I/O thread 2011-03-20 19:17:59 +00:00
Arvid Norberg 3d63cb98b7 log read job queue size 2011-03-20 09:04:03 +00:00
Arvid Norberg e4df633157 added another disk cache flush algorithm to minimize readback when hashing pieces 2011-03-20 05:47:27 +00:00
Arvid Norberg 1b6227ad31 report disk read-back when verifying piece hashes 2011-03-20 01:19:14 +00:00
Arvid Norberg c015e28792 more disk thread timing 2011-03-19 22:23:58 +00:00
Arvid Norberg 782bc974a1 log average disk job time instead of cache time 2011-03-18 03:07:10 +00:00
Arvid Norberg 0b25b87593 add a bunch more stats logged to session stats 2011-03-17 05:31:06 +00:00
Arvid Norberg 6db11079c8 add performance warning when disk write queue exceeds half of the write cache size 2011-03-16 07:45:51 +00:00
Arvid Norberg 7e3f69ecbf optimized disk cache flushing a bit 2011-03-16 07:21:58 +00:00
Arvid Norberg d6fbff13df measure disk sort time (phys_offset) 2011-03-15 02:21:28 +00:00
Arvid Norberg 7dde47b98a measure disk cache flush times 2011-03-15 01:44:32 +00:00
Arvid Norberg 9812626cf0 make DHT rate limit configurable 2011-03-14 07:47:24 +00:00
Arvid Norberg 4ecb9f1462 fixed performance issue in rate limited udp socket 2011-03-14 07:23:32 +00:00
Arvid Norberg a08bcf7459 change semantics of disk read time and add disk hash time 2011-03-14 05:21:46 +00:00
Arvid Norberg 27c1bc632d introduced pop_alerts() which pops the entire alert queue in a single call 2011-03-14 02:59:46 +00:00
Arvid Norberg a18f047311 minor storage fix 2011-03-13 21:07:46 +00:00
Arvid Norberg c0253d9977 increase averaging window for disk I/O timing measurements 2011-03-13 10:09:20 +00:00
Arvid Norberg c21100a9a5 log failed and redundant bytes 2011-03-13 04:34:57 +00:00
Arvid Norberg 03a7442532 add disk cache stats to session stats 2011-03-11 07:37:12 +00:00
Arvid Norberg 44fe8c160a fix no-exceptions build 2011-03-10 05:01:36 +00:00
Arvid Norberg 1b09879e2a increase the default upper limit on send buffer size to 700 kB 2011-03-10 03:19:27 +00:00
Arvid Norberg 6d9e4daa1f fixed clang build warning 2011-03-09 03:59:59 +00:00
Arvid Norberg f90f9f6609 fixed alert queue size limit bug when restoring setting from session state 2011-03-07 00:36:51 +00:00
Arvid Norberg c0bbac579a add export macros 2011-03-06 22:22:44 +00:00
Arvid Norberg dbc14caedf added missing header files to makefile 2011-03-05 02:33:13 +00:00
Arvid Norberg 019b682cf9 fixed logging build 2011-03-04 07:00:27 +00:00
Arvid Norberg 9d0b99480b fix ip filter exemption for trackers. also add a global setting to always exempt trackers 2011-03-04 06:55:39 +00:00
Arvid Norberg cefc97597d improve error reporting for save resume data for torrents with no metadata 2011-03-04 06:17:55 +00:00
Arvid Norberg 0aff6803fb fix to IP filter exemptions 2011-03-02 17:37:10 +00:00
Arvid Norberg 08c93978a6 clean up some dead code and fix windows build 2011-02-28 00:35:58 +00:00
Arvid Norberg c15880be91 support having torrents that the IP filter doesn't apply to 2011-02-27 17:26:57 +00:00
Arvid Norberg 8c2d496992 added new option 'always_send_user_agent' 2011-02-26 18:17:55 +00:00
Arvid Norberg 3b68fb2a03 add missing files 2011-02-26 17:59:34 +00:00
Arvid Norberg ab3b82b8ee replaced std::rand() with custom random generator 2011-02-26 07:55:51 +00:00
Arvid Norberg 7288f77ec9 support saving metadata in resume file, enable it by default for magnet links 2011-02-26 07:48:05 +00:00
Arvid Norberg 56937edf56 cleaned up some exception handling and introduced macros like BOOST_TRY/BOOST_CATCH to make the optional exception handling nicer 2011-02-25 17:00:36 +00:00
Arvid Norberg 5f5ba94462 cleared some variables in constructors and got rid of an unnecessary constructor 2011-02-25 04:28:32 +00:00
Arvid Norberg 20d763c8c7 added option to not use custom assert macro 2011-02-24 18:15:15 +00:00
Arvid Norberg 118a75ebe7 generalized string conversion for libc 2011-02-22 03:09:13 +00:00
Arvid Norberg 97a40a45cd fully support unbuffered I/O 2011-02-22 02:53:26 +00:00
Arvid Norberg 141ada013f fixed a whole bunch of build warnings on gcc and msvc, along with some fixes discovered along the way 2011-02-21 05:24:41 +00:00
Arvid Norberg bd1ef5397c clean up broadcasting 2011-02-17 06:47:26 +00:00
Arvid Norberg 513914050c fixed broadcast_lsd option. in trunk, redefined it to only broadcast every 8th packet 2011-02-16 10:16:52 +00:00
Arvid Norberg 3c05e81529 support for receiving multi announce messages for local peer discovery 2011-02-16 07:41:44 +00:00
Arvid Norberg cb6f38f056 added session::listen_no_system_port flag to prevent libtorrent from ever binding the listen socket to port 0 2011-02-16 06:35:53 +00:00
Arvid Norberg 9aa09d384c added smooth_connect and turned it on by default 2011-02-16 03:11:55 +00:00
Arvid Norberg d35670e53d generalize use of getifaddrs 2011-02-15 07:42:46 +00:00