arvidn
d1e4b57ad4
rename a few members of session_impl to be more descriptive
2016-02-08 18:15:47 -05:00
arvidn
ae7058e119
remove the timestamps and file sizes from the resume data. This makes saving resume data alot cheaper, since it doesn't have to go via the disk thread. It also removes an old-standing API usage issue where there was easily a race condition introduced between saving resume data and pausing a torrent.
2016-02-06 15:50:55 -05:00
arvidn
3a4f957b63
Merge branch 'RC_1_1'
2016-02-02 02:02:24 -05:00
arvidn
88b7e3768f
add sim test for optimistic unchoke round-robin distribution
2016-02-01 20:28:30 -05:00
arvidn
f2ce2284da
optimize the optimistic unchoke logic. extend the API for extensions to be able to affect the order of optimistic unchokes
2016-02-01 20:28:22 -05:00
Alden Torres
9f3d13281f
Documentation typos
2016-02-01 15:00:46 -05:00
arvidn
e113e8cdf3
minor cleanup of listen sockets
2016-01-31 19:40:31 -05:00
arvidn
297b8943d0
move the DHT rate limiter into the dht_tracker class and remove the rate_limited_udp_socket type. This further simplifies the udp socket (preparing for moving it into the listen_socket structure)
2016-01-18 14:34:41 -05:00
arvidn
505ae508f4
mark up some override functions and fix other clang warnings
2015-12-13 19:44:42 -05:00
arvidn
98c3b75b55
use more efficient (in-place) handler allocation for udp async_read and session second_tick
2015-11-28 00:57:44 -05:00
Steven Siloti
1f13343a70
const correctness
2015-11-22 10:02:26 -08:00
arvidn
fba0762353
fix some msvc warnings
2015-11-19 19:01:54 -05:00
Alden Torres
611d0c1c6e
Fixed to make it compatible with mingw-w64 and generic linux
2015-11-13 07:55:28 -05:00
arvidn
76821f138f
fix gcc attribute order issue
2015-10-18 00:46:01 -04:00
arvidn
08e2bf7835
mark up some more functions with override and silence a few more warnings in boost headers
2015-10-17 10:02:37 -04:00
arvidn
81ee9d5d4e
make appveyor build the python binding installer for windows
2015-10-12 21:09:19 -04:00
Alden Torres
62b24d8b67
Add set_dht_storage to session API.
2015-10-02 09:00:07 -04:00
Alden Torres
197a443465
Fix of dht_storage_counters::peers counter.
2015-09-24 10:50:04 -04:00
arvidn
ee3cb6cf86
move some internal headers to aux_ to fix documentation
2015-09-07 17:00:27 -04:00
arvidn
17c5759829
disable warning for unused command line argument and fix warnings. remove redundant travis build config. use new preprocessor on clang to avoid warnings
2015-09-06 22:55:41 -04:00
arvidn
a344c659e5
Revert "use handler allocator for UDP socket read handler"
...
This reverts commit 3ccb4f7dca
.
2015-09-03 07:29:24 -04:00
arvidn
3ccb4f7dca
use handler allocator for UDP socket read handler
2015-09-02 01:15:02 -04:00
arvidn
f719b95f64
fix build issue
2015-08-31 00:54:16 -04:00
arvidn
4536f2c293
fix typo
2015-08-31 00:36:43 -04:00
arvidn
a0c9fafd39
factor out handler_storage and allocating handler helper classes for allocating asio handlers in-place in peer objects
2015-08-31 00:17:42 -04:00
arvidn
0d9d632465
initial support for disabling proxy for tracker connections
2015-08-29 19:44:54 -04:00
arvidn
8cf8e65861
turn linked_list into a template to improve type safety and remove some casts
2015-08-20 02:02:46 +02:00
arvidn
ffa870d280
fixed some GCC warnings
2015-08-20 01:33:20 +02:00
arvidn
347d976a70
since starting the DHT can be delayed now, also cache dht nodes added while waiting
2015-08-18 23:35:27 +02:00
arvidn
cc4368b45a
attempt to postpone DHT until all outstanding dht router name lookups complete
2015-08-18 22:56:00 +02:00
Arvid Norberg
68bc4f2cf4
Merge pull request #12 from mlt/wip/i2p
...
Few i2p fixes
2015-08-13 21:55:27 -04:00
Alden Torres
b303a36ac2
Removed unnecessary full namespace reference to udp::endpoint in new dht_direct_request feature.
...
Add default value to userdata argument in dht_direct_request.
Minor spelling fix.
2015-08-12 00:49:09 -04:00
Steven Siloti
86fd8c3048
enable arbitrary direct dht requests and extension dht requests
...
If you're wondering why I used an alert for handling responses but not requests,
it's because the former was easy to do that way but the latter would have
involved some major refactoring or kludging. The DHT node is written with the
(IMO reasonable) assumption that all responses will be generated immediately, so
there was no way to easily accommodate getting a response asynchronously via
an alert.
2015-08-10 20:33:04 -07:00
Arvid Norberg
27c5a28637
Merge pull request #70 from thomas-yuan/master
...
Call callback function immediately when get data for mutable data.
2015-08-08 21:51:18 -04:00
Thomas
e51b61870a
Call callback function immediately when get mutable data.
2015-08-08 20:28:53 -04:00
arvidn
72286eb0dc
minor asio.ssl abstraction cleanup. update libsimulator with build fix. only run simulator on one of the build variants on travis, since the simulator does not support ssl
2015-08-08 16:19:44 -04:00
arvidn
990aabe36f
fix warnings and no-deprecated functions build
2015-08-01 19:55:36 -04:00
arvidn
52b4aed466
merge bdecode patch from RC_1_0. an empty string now produces an error rather than an empty bdecoded struct
2015-07-30 21:29:22 -04:00
Steven Siloti
e6b3df3696
pass torrent_handle by const ref in the plugin api
2015-07-25 09:57:55 -07:00
Steven Siloti
fbc67b4e21
switch to torrent_handle in plugin api
2015-07-23 19:52:23 -07:00
Mikhail Titov
007a580207
Options to use lowercase base32 encoding without padding
2015-07-14 12:41:12 -05:00
Alden Torres
a856ae6e9b
Added dht_get_peers and dht_announce at session level.
...
Refactored dht_put_item to dht_put_immutable_item in session_impl since the get operations are not overloaded (consistency).
Added allow_threading_guard to add_dht_node python binding.
Making dht_put_item in session returns a zeroed hash if TORRENT_DISABLE_DHT (avoid unnecessary calculation and it's more consistent).
Added missing DHT operations to the python binding.
Added missing allow_threading_guard to add_dht_node in the python binding.
2015-07-12 10:37:16 -04:00
arvidn
c5614b691f
export file_progress class when building unit tests. fix to web_server.py (used for unit tests)
2015-07-07 23:46:33 -04:00
Alden Torres
fcac7140f8
Added dht_get_peers and dht_announce at session_impl level.
2015-07-01 15:30:08 -04:00
arvidn
94d6e06c97
first step in making opening all the listen sockets a bit more reliable
2015-06-29 23:10:09 -04:00
arvidn
e2784df13c
factor out file progress tracking from the torrent class
2015-06-28 22:47:11 -04:00
arvidn
2d1db68ea6
fix diagnostic push/pop issue
2015-06-28 18:44:37 -04:00
arvidn
5cb095f6d2
support using 0 disk threads (to perform disk I/O in network thread)
2015-06-14 16:00:04 -04:00
arvidn
aa6598b2e6
don't return an internal session_settings type from the session, return a settings_pack instead
2015-06-07 00:23:30 -04:00
arvidn
9af8841244
remove some unnecessary asio typedefs in the libtorrent namespace, just pull ip::tcp and ip::udp
2015-06-06 13:49:18 -04:00
arvidn
389ffc622c
don't pull in the asio namespace in libtorrent. refer to it by boost::asio
2015-06-06 01:24:25 -04:00
arvidn
15dd15d0d6
fix no-deprecated build. extend .travis.yml to build the 3 test configurations too. rename README to README.rst
2015-06-05 02:31:52 -04:00
Arvid Norberg
4e1e53f066
turn some more members of session_impl to private
2015-06-03 04:33:20 +00:00
Arvid Norberg
0351326add
separate the main thread and the io_service from session_impl. The io_service object is now simply run() in the main thread, all initialization is done by posting messages to it. This generalizes session_impl to some degree, enables future expansion to run in multiple threads (although, the peers and torrents don't support this). This patch also makes it possible to pass in a third party io_service to the session, but at this point that's mostly useful for tests, as it's not well supported
2015-06-03 03:04:44 +00:00
Arvid Norberg
f9c9d0ad0d
merge small unit tests to make running the tests quicker. expand the test framework a bit. add ax_boost_random.m4 script to link against boost.random correctly from makefile.
2015-05-30 04:31:23 +00:00
Arvid Norberg
9b0313bd8e
hold settings_pack by shared_ptr when passing it across thread boundaries. don't allocate it on the heap redundantly
2015-05-29 05:27:53 +00:00
Arvid Norberg
e44c8e9002
optimize logging of DHT packets by deferring copying and printing, to only do it if the alert category is enabled
2015-05-28 20:36:22 +00:00
Arvid Norberg
27cbfa164e
minor cleanup
2015-05-28 14:46:12 +00:00
Arvid Norberg
09bc072c31
inactive/auto managed fixes. fix client_test key input
2015-05-26 18:39:49 +00:00
Arvid Norberg
c6f8dd408a
optimize recalculate auto-managed
2015-05-25 21:46:42 +00:00
Arvid Norberg
607e708bc4
fix warnings
2015-05-19 03:13:49 +00:00
Arvid Norberg
99de70604a
remove dht-verbose logging build configuration. tie it to the main logging configuration (which now is on by default) and make it less costly when dht logging alerts are disabled
2015-05-16 19:29:49 +00:00
Arvid Norberg
12c9d3de26
fix more warnings
2015-05-16 18:35:47 +00:00
Arvid Norberg
2bf4519bee
make the torrent hold a pointer to the ip_filter instead of relying on a session reference
2015-05-16 06:33:37 +00:00
Arvid Norberg
494b425ea1
fix warnings and a peer logging bug
2015-05-10 18:38:10 +00:00
Arvid Norberg
1357fd5265
clean up usage of printf attribute (encapsulate it in a macro)
2015-05-10 05:11:51 +00:00
Arvid Norberg
b60934288b
turn DHT logging into alerts instead of writing to a file
2015-05-10 04:54:02 +00:00
Arvid Norberg
6557910c7f
remove the DHT's last dependency on session_impl
2015-05-09 18:06:02 +00:00
Arvid Norberg
a83dcbaaf0
removed access-log build option and log parser. added incoming_request_alert. This feature can now be implemented by clients
2015-05-09 03:04:08 +00:00
Arvid Norberg
fce3f77744
override marking of virtual functions
2015-05-05 05:37:01 +00:00
Arvid Norberg
f90537c52d
fix some more coverity issues and add more todo comments
2015-05-05 02:32:14 +00:00
Arvid Norberg
2fff222235
silence some warnings on msvc
2015-04-27 02:21:12 +00:00
Arvid Norberg
d128d36faa
fix cpuid use (apparently it's not appropriate to use in an inlined function)
2015-04-26 18:46:45 +00:00
Arvid Norberg
f7e4f83469
separate out session_stats into its own header. silences warning and cleans up
2015-04-25 02:12:02 +00:00
Arvid Norberg
3bf9fa8fca
move out merkle functions into their own file and test
2015-04-24 06:06:41 +00:00
Arvid Norberg
c19c6b2cc1
fix some warnings
2015-04-24 05:37:17 +00:00
Arvid Norberg
31a87c26f0
move another unused time function into the one place it was used from (which will be removed)
2015-04-24 04:08:08 +00:00
Arvid Norberg
3ea67e2bf5
move time_now_string out to the unit test library (basically unused in libtorrent itself)
2015-04-24 03:48:08 +00:00
Arvid Norberg
87c46a144d
fix more warnings and some build issues
2015-04-22 04:24:45 +00:00
Arvid Norberg
0b063de9ff
fix more warnings
2015-04-21 04:30:34 +00:00
Arvid Norberg
3951377d95
fix include paths for warning push and pop headers
2015-04-21 01:16:28 +00:00
Arvid Norberg
f5629eb403
cleanup and fixing of more warnings
2015-04-21 00:23:00 +00:00
Arvid Norberg
21751347bc
more warnings fixes and cleanup
2015-04-19 06:28:21 +00:00
Arvid Norberg
23536dcc42
fix a few warnings and GCC build
2015-04-18 13:56:36 +00:00
Arvid Norberg
408232cfc8
raise warning level. fix a few of them. filter out warnings from boost
2015-04-18 02:33:39 +00:00
Arvid Norberg
1faf2e201f
inversed TORRENT_LOGGING build config to enable logging by default. It's now disabled by TORRENT_DISABLE_LOGGING
2015-04-17 01:15:33 +00:00
Arvid Norberg
bb48b6e83c
eliminate one more session dependency in peer_connection
2015-04-10 01:50:42 +00:00
Arvid Norberg
20aa53953c
fix etensions being passed all alerts
2015-04-07 00:50:21 +00:00
Arvid Norberg
b07b208a4a
rate limit how often recalculate_auto_managed can be called (it's expensive)
2015-04-05 19:35:58 +00:00
Arvid Norberg
013ed36f09
landed alert_queue feature branch into trunk
2015-04-03 20:15:48 +00:00
Arvid Norberg
837e709628
deprecate RSS API
2015-03-28 17:31:27 +00:00
Arvid Norberg
ccc7e45406
landed mutable torrents branch in trunk
2015-03-21 00:12:40 +00:00
Arvid Norberg
794de25212
moved escape_string.hpp into the aux_ directory. moved out the 3 public hex functions into its own public header, hex.hpp
2015-03-14 23:10:20 +00:00
Arvid Norberg
6c1df7eb55
landed the bdecode branch in master. lazy_bdecode/lazy_entry is now being replaced by bdecode/bdecode_node
2015-03-12 05:20:12 +00:00
Arvid Norberg
c1dc982f4f
deprecate the ptime type and related time types. just use boost::chrono / std::chrono
2015-03-12 04:34:54 +00:00
Arvid Norberg
9b91508c38
clean up session_interface and tracker_manager a bit. work on making tracker_manager more testable
2015-02-01 14:30:43 +00:00
Arvid Norberg
d9e69db0cb
actually make use of the max_failcount setting
2015-01-20 06:26:22 +00:00
Arvid Norberg
54eb499803
make post_torrent_updates more flexible by allowing to pass flags to it. The same flags as torrent_handle::status. Also make the default return accurante progress
2015-01-20 02:46:23 +00:00
Arvid Norberg
22a02f4a1f
make dht_tracker be held by shared_ptr instead of intrusive_ptr. remove redundant performance counter (total dht sent/received). report DHT IP overhead to the IP overhead counters
2015-01-17 22:06:30 +00:00
Arvid Norberg
58d93e5aa1
add new (non-deprecated) access to dht stats, asynchronously via an alert
2015-01-17 17:02:58 +00:00
Arvid Norberg
b9b657c3d4
post alerts instead of writing to a file, in local peer discovery, when logging is enabled
2015-01-16 23:01:14 +00:00
Arvid Norberg
f914943e58
fix some compile warnings
2015-01-16 20:51:39 +00:00
Arvid Norberg
fb058f602f
aux::session_settings is used by a test
2015-01-09 00:42:57 +00:00
Arvid Norberg
0f37e3403c
transition from intrusive_ptr to shared_ptr. don't export initialize_default_settings
2015-01-06 08:08:49 +00:00
Arvid Norberg
bb33b061e4
clean up session_impl
2015-01-04 22:26:26 +00:00
Arvid Norberg
35b41858cf
deprecated session_status and session::status() in favor of performance counters
2015-01-04 21:31:02 +00:00
Arvid Norberg
1218e328cd
SSL fixes (especially over uTP)
2015-01-04 01:04:56 +00:00
Arvid Norberg
73a2a4e51d
fix comment formatting in settings_pack
2014-12-31 17:00:27 +00:00
Arvid Norberg
764b09d6b5
make the peer fingerprint a regular setting and remove it from the main session constructor argument list
2014-12-31 15:51:45 +00:00
Arvid Norberg
75ae204cf4
remove orphaned function declaration
2014-12-25 18:26:19 +00:00
Arvid Norberg
09bc1550e9
simplify the debug logging mechanism. There's now only one build option, logging=on or logging=off. When logging is enabled, the log level is controlled by the alert mask. All log events are delivered as alerts and it's up to the client to write them to disk in whatever way seems appropriate. removed the pointless logger plugin
2014-12-09 09:08:26 +00:00
Arvid Norberg
658e2ceefd
merged Steven Siloti's peer crypto patch into trunk
2014-11-23 06:14:47 +00:00
Arvid Norberg
601f0dc434
merged changes from RC_1_0
2014-11-03 06:15:51 +00:00
Arvid Norberg
02a9ea18b7
deprecated auto_expand_choker. started factoring out choker logic into its own translation unit (preparing for making it unit testable)
2014-10-22 22:06:56 +00:00
Arvid Norberg
ca6bb1ebd9
minor cleanup of open_listen_port internally
2014-10-21 22:08:48 +00:00
Arvid Norberg
cea5585993
remove stats logging functionality from libtorrent. This has been moved to a helper class part of libtorrent-webui, utility library
2014-10-21 19:58:12 +00:00
Arvid Norberg
9b37efe6a8
first steps towards removing session_impl dependency from tracker connections, to improve their testability
2014-10-21 00:28:51 +00:00
Arvid Norberg
a655047cb0
support SSL over uTP (unit test is still failing with same errors as previously, this has not been fixed yet)
2014-10-06 03:03:01 +00:00
Arvid Norberg
30d7b9e3c3
fixed bug with inactivity timer
2014-10-05 22:30:09 +00:00
Arvid Norberg
418e33facc
use the session-wide hostname resolver in torrent.cpp
2014-10-05 01:23:22 +00:00
Arvid Norberg
ceccc2a483
land branch to remove half-open connection limit / connection queue
2014-10-03 20:56:57 +00:00
Arvid Norberg
8664ff97aa
optimize tracker_manager interface to avoid rendering and parsing strings for each peer-ip
2014-09-28 06:36:03 +00:00
Arvid Norberg
60119bf0ca
added auto-sequential feature
2014-09-24 00:02:00 +00:00
Arvid Norberg
d7d498c3a3
more steps towards isolating peer_connections from the session object. unchoking now happens via the torrent object. hopefully in the future, the session can determine which peers to unchoke without having direct access to them (i.e. with a mutex)
2014-09-22 03:47:43 +00:00
Arvid Norberg
27b7705cf2
remove built-in GeoIP support
2014-09-21 21:01:48 +00:00
Arvid Norberg
1ce69d122b
add missing files
2014-08-27 03:33:41 +00:00
Arvid Norberg
f32f5e96aa
deprecate parts of cache_status and move those counters to session_stats counters. make the performance counters thread safe. fix some issues recently introduced to performance counters and the usage of them in client_test
2014-08-01 06:07:48 +00:00
Arvid Norberg
02f3e48eaa
make performance counters able to blend in values, reducing a peer_connection -> session dependency on a sliding average state (this can be used for disk stats too)
2014-07-29 16:35:03 +00:00
Arvid Norberg
7c9c25e359
cleaned up redundant bytes and failed bytes counters. moved some into the stats_counters
2014-07-29 05:59:00 +00:00
Arvid Norberg
ab8c1eb334
log latency of bittorrent requests
2014-07-28 22:18:06 +00:00
Arvid Norberg
79a2744fa8
fixed issue with queued resume data saving, and fixed regression in recent disk error check changes
2014-07-21 03:03:59 +00:00
Arvid Norberg
30713a4a79
remove buffer stats debugging feature
2014-07-19 08:20:20 +00:00
Arvid Norberg
fa613131c2
removed unused session_impl member, m_next_disk_peer
2014-07-13 06:34:59 +00:00
Arvid Norberg
01640e1682
separate stats counters from session_interface (this was the main use of m_ses in peer connections)
2014-07-13 04:56:53 +00:00
Arvid Norberg
7351389ce8
land libtorrent_aio branch in trunk
2014-07-06 19:18:00 +00:00
Arvid Norberg
8a132cb9ca
fix int64_t -> boost::int64_t and run distcheck on build_dist.sh script
2014-05-11 08:20:42 +00:00
Arvid Norberg
e225259481
fix some msvc warnings
2014-05-10 03:23:05 +00:00
Arvid Norberg
86c704a6ff
fix dht_bootstrap_alert being posted. add additional alert for dht put completion. add utility to test immutable put/get. fix issue in DHT preventing stores on router nodes (even when they return write tokens). immutable put and get confirmed to be working
2014-02-28 04:02:48 +00:00
Arvid Norberg
1188ec2dcd
expose new DHT put/get functionality in the public session API
2014-02-24 00:31:13 +00:00
Arvid Norberg
63c6e495bd
don't use shared_from_this for session_impl
2014-02-21 04:30:59 +00:00
Arvid Norberg
e0644ce8f5
invariant check macro fixes
2014-01-21 19:26:09 +00:00
Arvid Norberg
702b68ecc4
clean up assert related defines and debuf-only fields less error-prone. fix missing initialization in file_pool caused by mistake in defines under which the debug field was initialized
2014-01-19 19:45:50 +00:00
Arvid Norberg
53a62344ca
fix port mapping functions in session
2013-12-31 22:24:56 +00:00
Arvid Norberg
4f189e921d
mark some expensive parts of invariant checks as expensive and disabled by default. introduce undead_peers to destruct all peer_connections in the network thread. they hang around while waiting for all outstanding disk jobs to complete. make the asio-debugging output a bit prettier
2013-12-05 07:42:32 +00:00
Arvid Norberg
629baa3622
reorder some structs to reduce padding
2013-11-26 02:00:02 +00:00
Arvid Norberg
cbe3a72a6e
merged i2p fix from RC_0_16
2013-10-27 19:56:37 +00:00
Arvid Norberg
4ac3d286a5
back port check to not destruct session_impl from its own thread
2013-09-29 19:37:57 +00:00
Arvid Norberg
89c3db477d
merge build fix with C++11 from RC_0_16
2013-09-25 19:44:29 +00:00
Arvid Norberg
0f57615ea3
attempt at fixing shut-down hang
2013-08-21 15:55:24 +00:00
Arvid Norberg
e7db8d37a2
merge deprecation of wstring overloads from RC_0_16
2013-08-02 05:03:22 +00:00
Arvid Norberg
a401aa0337
cleaned up public interface by removing some symbols from the exported set
2013-07-19 19:06:27 +00:00
Arvid Norberg
520b8bfcd1
move out alert_manager to its own compilation unit. remove TORRENT_DISABLE_EXTENSIONS from affecting the public API
2013-04-09 02:38:11 +00:00
Arvid Norberg
d21243dc9f
make release asserts build
2013-03-27 23:46:13 +00:00
Arvid Norberg
a2a4b61b5d
fix library ABI to not depend on logging being enabled
2013-03-10 09:19:58 +00:00
Arvid Norberg
a0caa0f4b2
disable invariant_check functions when invariant checks are disabled
2013-02-25 04:13:46 +00:00
Arvid Norberg
5b48490005
fix logging build
2013-02-05 06:50:38 +00:00
Arvid Norberg
f73fa778d6
slight refactoring to remove a dependency on session_impl in rpc_manager
2013-02-05 04:18:44 +00:00
Arvid Norberg
d6fecf4c34
make condition variable c++11 compatible
2013-01-21 22:52:34 +00:00
Arvid Norberg
c14916e119
unify session plugins and extension functors (internally)
2013-01-07 04:19:19 +00:00
Arvid Norberg
cd4b38cfc3
fix bug in disconnect candidate torrent function
2013-01-02 08:09:21 +00:00
Arvid Norberg
970ddba29b
refactor find_disconnect_candidate_torrent to match libtorrent_aio
2013-01-02 07:39:02 +00:00
Arvid Norberg
aab59d04c7
improve the external IP discovery to work with multiple external IPs (specifically IPv4 and IPv6)
2013-01-01 23:12:16 +00:00
Arvid Norberg
ac5a9e9882
introduce global connection priority for improved swarm performance
2012-12-31 06:54:54 +00:00
Arvid Norberg
65e02c23e8
improve support for loading torrents out of resume files
2012-11-08 02:07:10 +00:00
Arvid Norberg
f3ec86169e
merged swarm startup optimization from libtorrent_aio
2012-11-03 03:50:12 +00:00
Arvid Norberg
01f70bfd84
add session logging function
2012-10-18 15:14:18 +00:00
Arvid Norberg
9ed60479ce
merged udp socket fix from RC_0_16
2012-10-07 23:34:44 +00:00
Arvid Norberg
35032a6950
merge verbose logging feature from libtorrent_aio
2012-10-06 23:45:36 +00:00
Arvid Norberg
83754b3427
merged post_torrent_updates assert from libtorrent_aio
2012-10-06 14:31:14 +00:00
Arvid Norberg
32b4b5926a
merged fix from RC_0_16
2012-09-30 19:35:08 +00:00
Arvid Norberg
5e2ff1a246
merged logging cleanup from RC_0_16
2012-09-27 23:04:51 +00:00
Arvid Norberg
0685fb91bd
DHT throttling fix
2012-08-03 05:13:40 +00:00
Arvid Norberg
7c7b927e07
improve connection distribution fairness between torrents
2012-07-04 20:41:22 +00:00
Arvid Norberg
96aa1f162b
fix for udp_socket observers and some dht warning fixes
2012-06-30 15:30:38 +00:00
Arvid Norberg
d73bbf5053
clean up the udp socket and its consumers by adding an observer interface and have the udp tracker, utp socket manager and dht tracker subscribe to it instead of going through the session_impl. This probably improves performance a tiny bit but primarily improves modularization and testability
2012-06-22 04:21:20 +00:00
Arvid Norberg
2b9b2a188a
remove uTP delayed ack and instead send acks when the udp socket has been drained. simplify the udp socket to use null_buffers and allocate less memory for buffers. this also eliminated the race condition when resizing the udp socket receive buffer which greatly simplified it
2012-06-21 15:05:57 +00:00
Arvid Norberg
3c0e7e0a4a
keep counters of the number of active downloading and finished torrents in order to have a cheap way of prioritizing peer connections for downloading torrents over finished ones
2012-06-21 03:51:39 +00:00
Arvid Norberg
cec9a16cc1
back-ported observer for set_external_ip for DHT
2012-04-30 06:30:35 +00:00
Arvid Norberg
918dce1341
back-ported part of the alert_dispatcher patch for the DHT
2012-04-30 05:39:35 +00:00
Arvid Norberg
9b8ce67302
fixed bug in external IP voting
2012-03-19 00:31:21 +00:00
Arvid Norberg
a2521bd23c
fix a bunch of issues to properly support dynamic linking of libtorrent with visibility=hidden. Still requires a small patch to boost
2012-03-18 23:31:04 +00:00
Arvid Norberg
b58a96d76b
log stats of incoming piece requests
2012-03-09 06:24:01 +00:00
Arvid Norberg
ccf9c5a0fd
log more stats
2012-03-02 08:52:54 +00:00
Arvid Norberg
3ef9190b01
fix export for settings_map symbol for python binding
2012-02-25 08:02:52 +00:00
Arvid Norberg
eef0f03343
fixed session logger destruction order issue
2012-02-21 06:47:08 +00:00
Arvid Norberg
679abf2e57
this time, actually remove the encrypted torrent (AES-256 encrypted peer connections)
2012-02-09 06:47:22 +00:00
Arvid Norberg
ef1d8b5921
fix build
2012-01-20 06:07:19 +00:00
Arvid Norberg
ed56520d24
more asserts around state updates
2012-01-20 05:40:32 +00:00
Arvid Norberg
4a40e68a82
landed ssl branch back into trunk
2012-01-14 16:04:25 +00:00
Arvid Norberg
152cee19f1
add compile-time feature to enable logging of all peer requests
2011-12-29 12:15:29 +00:00
Arvid Norberg
cab1f3d207
fix issue when peer list is full, previously we would sometimes reject new connections
2011-11-24 17:50:57 +00:00
Arvid Norberg
fdc5e7e8b2
keep track of where redundant downloads come from. make the timing out of block requests more reasonable in an attempt to actually complete pieces from other peers when stuck on a slow one
2011-11-16 02:29:59 +00:00
Arvid Norberg
0320546fee
fix build
2011-11-15 06:47:02 +00:00
Arvid Norberg
c4232065d8
introduced a more scalable API for torrent status updates (post_torrent_updates())
2011-11-15 02:34:00 +00:00
Arvid Norberg
96adfc2ad5
windows build fixes
2011-11-13 05:51:03 +00:00
Arvid Norberg
15f20c887d
fix msvc build
2011-10-22 17:44:40 +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
469414d486
initial BitTorrent over SSL support
2011-09-12 03:51:49 +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
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
3ba914b419
fix build
2011-06-14 06:10:35 +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
a73960aa5a
support release asserts
2011-05-08 09:04:59 +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
ddd21cb526
missing change from last check-in
2011-03-27 20:46:20 +00:00
Arvid Norberg
e9459b4df8
rss fixes
2011-03-23 02:46:22 +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
27c1bc632d
introduced pop_alerts() which pops the entire alert queue in a single call
2011-03-14 02:59:46 +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
f90f9f6609
fixed alert queue size limit bug when restoring setting from session state
2011-03-07 00:36:51 +00:00
Arvid Norberg
019b682cf9
fixed logging build
2011-03-04 07:00:27 +00:00
Arvid Norberg
0aff6803fb
fix to IP filter exemptions
2011-03-02 17:37:10 +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
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
247ad31dc0
more disconnect granularity in stats logging
2011-02-14 05:38:59 +00:00
Arvid Norberg
b471e40064
log more details on the cause of disconnects
2011-02-14 04:48:02 +00:00
Arvid Norberg
8bb71da401
disk write queue watermark fix
2011-02-13 22:27:02 +00:00
Arvid Norberg
4267f0ec5a
rotate stats log every hour
2011-02-11 17:39:22 +00:00
Arvid Norberg
e079907252
more end-game piece picker optimization (early exit)
2011-02-08 04:08:04 +00:00
Arvid Norberg
5df4e7edd9
added more piece picker stats
2011-02-07 00:51:20 +00:00
Arvid Norberg
3d616f894e
end-game mode optimizations
2011-02-06 23:40:21 +00:00
Arvid Norberg
ea0af55a46
log end-game mode stats with stats logging
2011-02-06 03:07:00 +00:00
Arvid Norberg
88663bfbde
log more peer errors in stats log
2011-02-04 04:31:20 +00:00
Arvid Norberg
bf77ee4199
extended stats logging
2011-02-03 06:22:22 +00:00
Arvid Norberg
5456f2ac91
provide more stats with stats builds
2011-02-03 04:09:50 +00:00
Arvid Norberg
b842815710
added new session functions to more efficiently query torrent status
2011-02-01 09:48:28 +00:00
Arvid Norberg
d393bb4097
report number of peers blocked on disk in session_status
2011-01-30 10:04:15 +00:00
Arvid Norberg
87dfdd4790
expanded plugin interface to support session state. improved re-request logic in ut_metadata extension. made max metadata size configurable
2011-01-29 10:37:21 +00:00
Arvid Norberg
021a774168
rate limit outstanding-disk performance warnings. don't throttle reading form peers because of disk congestion if the peer isn't downloading payload. Don't time out peers that are not waiting on the network
2011-01-23 02:09:54 +00:00
Arvid Norberg
c223291fb4
added support for RSS feeds
2011-01-18 03:41:54 +00:00
Arvid Norberg
ae41b2598b
fix non-dht build
2010-12-29 02:17:44 +00:00
Arvid Norberg
fc0bd8066b
use a python python dictionary for settings instead of session_settings object (in python bindings)
2010-12-26 08:03:02 +00:00
Arvid Norberg
451c583023
more robust mechanism to determine external IP
2010-12-24 01:31:41 +00:00
Arvid Norberg
650f02eba7
fixed some windows build issues
2010-12-19 08:12:31 +00:00
Arvid Norberg
d554cf88e6
optimized swarm startup time (shaved off about 1-2 seconds) by introducing torrent connection boost on the first tracker response for a torrent
2010-12-17 03:10:56 +00:00
Arvid Norberg
779014ddac
support requesting UPnP and NAT-PMP routers for our external IP address
2010-12-05 20:40:28 +00:00
Arvid Norberg
1c99bf1de3
more network thread asserts to make sure only the network thread touches network-thread only data. Also delay starting the network thread until after the session constructor is done with its setup
2010-12-04 22:20:31 +00:00
Arvid Norberg
e5f980d80d
merged uTP branch into trunk (yay)
2010-11-29 01:33:05 +00:00
Arvid Norberg
d1cb2d52ff
fixed build issues with with vernose logging enabled
2010-11-26 20:44:48 +00:00
Arvid Norberg
7bd25edc9d
generalize SSL support to also include web seeds (and in theory regular peers)
2010-10-12 08:57:43 +00:00
Arvid Norberg
21cbd1fac4
deprecated setters for max connections, max half-open, upload and download rates and unchoke slots. These are now set through session_settings
2010-10-09 19:09:38 +00:00
Arvid Norberg
e6d400084e
fix to start async operations inside the network thread to maintain thread safety within asio
2010-09-25 20:07:27 +00:00
Arvid Norberg
b747cdab8a
merged all proxy settings into a single one
2010-08-23 06:27:18 +00:00
Arvid Norberg
f70fbb45c0
optimized struct layout of torrent_info. removed boost.date_type types from public interface (replaced by time_t)
2010-08-21 22:10:16 +00:00
Arvid Norberg
afd5567969
session::set_tracker_proxy fix for udp trackers
2010-08-21 22:07:29 +00:00
Arvid Norberg
fd5f1bf80b
improved SOCKS5 support
2010-08-03 09:08:37 +00:00
Arvid Norberg
a3d95677b0
fixed build errors from last check-in
2010-07-14 07:38:35 +00:00
Arvid Norberg
4e576f93fd
removed the session mutex for improved performance
2010-07-14 04:16:38 +00:00
Arvid Norberg
a0cef76bf2
fixed race condition around m_abort in session_impl
2010-06-24 21:43:00 +00:00
Arvid Norberg
26c4a819c8
removed the reuse-address flag on the listen socket
2010-06-17 17:14:56 +00:00
Arvid Norberg
cdf05a9c9c
moved UDP trackers over to use a single socket
2010-05-30 01:33:03 +00:00
Arvid Norberg
384bfdec48
added anonymous mode to disable some particular features that might give away the user's and the client's identity
2010-04-13 04:30:34 +00:00
Arvid Norberg
7e851818b1
support more fine-grained torrent states between which peer sources it announces too
2010-03-29 00:34:04 +00:00
Arvid Norberg
c14042b29e
remove unused declarations and added a small piece of documentation
2010-03-25 04:47:56 +00:00
Arvid Norberg
b78aca9a53
fixed logging build
2010-03-20 09:35:45 +00:00
Arvid Norberg
79bd8fcd52
made the default cache size depend on the amount of physical RAM. and fixed disk thread settings update when loading through load_state
2010-03-10 07:14:10 +00:00
Arvid Norberg
013cef68e8
add flags to session::save_state to filter what is saved
2010-03-06 07:49:40 +00:00
Arvid Norberg
281b6368f7
deprecate old state saving functions, merge dht state with session state
2010-03-04 16:42:39 +00:00
Arvid Norberg
9d6cdb0c89
solaris build fixes
2010-03-03 07:42:51 +00:00
Arvid Norberg
5c02f3df59
fixed DHT bootstrapping issue
2010-02-14 07:46:57 +00:00
Arvid Norberg
c050b22d8f
optimized memory usage for torrent objects
2010-02-14 01:39:55 +00:00
Arvid Norberg
fb47469834
experimental support for the BitTyrant choking algorithm
2010-02-09 03:04:41 +00:00
Arvid Norberg
088f4bf700
improved LSD performance and made the interval configurable
2010-02-05 08:23:17 +00:00
Arvid Norberg
859f412189
support an arbitrary number of optimistic unchoke slots
2010-02-02 18:39:32 +00:00
Arvid Norberg
3bc40b9980
fix builds for all combinations of stats and disk stats
2010-01-31 20:32:12 +00:00
Arvid Norberg
d959331c1e
renamed some torrent check queue related functions to be more descriptive
2010-01-17 21:42:14 +00:00
Arvid Norberg
c9b594fde1
support sending suggest messages based on what's in the read cache. support 'explicit read cache'
2010-01-15 16:45:42 +00:00
Arvid Norberg
d157af5305
build fixes
2009-12-28 20:59:34 +00:00
Arvid Norberg
25798ba1fa
timer initialization fix
2009-12-13 16:32:07 +00:00
Arvid Norberg
ff2063651b
build fixes
2009-12-03 17:44:11 +00:00
Arvid Norberg
1d04c4dcd0
added session saving and loading functions
2009-12-03 05:11:57 +00:00
Arvid Norberg
8dd244581d
header optimizations
2009-11-26 05:45:43 +00:00
Arvid Norberg
15c4842cea
another header optimization
2009-11-23 17:05:26 +00:00
Arvid Norberg
6343fe6a6d
optimized header dependencies to lower build time
2009-11-23 08:38:50 +00:00
Arvid Norberg
4b52b57bf0
fixed some compiler warnings
2009-11-11 05:22:57 +00:00
Arvid Norberg
51ef057498
more unicode and wstring fixes
2009-10-29 18:12:43 +00:00
Arvid Norberg
dcd8bb6718
move stats instrumentation to .cpp file to fix header dependency issue
2009-10-28 19:56:18 +00:00
Arvid Norberg
c418165e07
replaced boost.filesystem with custom functions (improves efficiency and drops unnecessary dependencies and improves libtorrent portability)
2009-10-26 01:29:39 +00:00
Arvid Norberg
9d1989904b
some compatibility fixes.
2009-10-20 16:44:11 +00:00
Arvid Norberg
8a5b7d5d36
got rid of the last recursive mutexes. abstracted the threading primitives (and switched over to use asio's internal ones).
2009-10-20 02:49:56 +00:00
cristiangreco
70b0edb9f4
fix to not install the local copy of GeoIP.h when linking against system
...
libgeoip.
2009-10-12 20:56:17 +00:00
Arvid Norberg
e289b9c6ac
build fixes
2009-09-20 15:21:31 +00:00
Arvid Norberg
0f62beebb3
improved compile time by moving rate limiter implementation to a cpp file and making it a non-template
2009-09-16 04:41:35 +00:00
Arvid Norberg
6c67da08d6
split socket.hpp up in multiple headers to lower build time somewhat
2009-09-16 03:46:36 +00:00
Arvid Norberg
6078dd06b0
removed the last dependency on iostream and lexical cast
2009-08-25 18:13:46 +00:00
Arvid Norberg
45fd696bc6
added I2P support
2009-08-20 03:19:12 +00:00
Arvid Norberg
137d2d63f5
cleaned up policy. Moved logic from policy to torrent
2009-07-23 04:38:52 +00:00
Andrew Resch
c401c65dfb
Add get_ip_filter() to session
2009-07-21 01:52:37 +00:00
Arvid Norberg
8af5211fb5
fix deadlock when upnp or natpmp fails to start
2009-06-13 10:45:07 +00:00
Arvid Norberg
07bcb3545a
converted a whole lot of error strings into error_codes. Documented some previously undocumented alerts as well as all the error codes
2009-06-12 16:40:38 +00:00
Arvid Norberg
f0134c1b11
improved disk error handling and expanded use of error_code in error reporting
2009-06-10 08:30:55 +00:00
Andrew Resch
6242ae051e
added ability to give seeding torrents preference to active slots
2009-05-27 19:27:12 +00:00
Daniel Wallin
68629eb6bc
Split peer list into IPv4 and IPv6 peers. Saves 12 bytes per IPv4 peer.
2009-05-24 21:49:19 +00:00
Arvid Norberg
e3c07c0934
converted some recursive mutexes to regular ones
2009-05-23 21:36:09 +00:00
Arvid Norberg
437cb94fd0
improved IPv6 support by announcing twice when necessary
2009-05-15 21:23:41 +00:00
Arvid Norberg
31c422df0a
added feature to set a separate global rate limit for local peers
2009-05-14 17:21:19 +00:00
Arvid Norberg
1eb2799a03
added more allocation logging for statistics builds. Identified and fixed some memory waste
2009-05-07 20:30:20 +00:00
Arvid Norberg
c8176cca55
optimized peer storage in resume data an in memory. Should use far less memory than previously for the peer list. Introduced peer source affinity, to avoid problem with a peer list that's diluted with stale peers
2009-05-06 22:36:24 +00:00
Arvid Norberg
641abc6c4a
slight memory optimization and some header cleanup
2009-05-03 20:21:24 +00:00
Arvid Norberg
d73c97e444
made get_download_queue() use considerably less memory and scale with larger piece_sizes
2009-05-03 09:45:07 +00:00
Arvid Norberg
84dda7b617
support for adjusting the socket buffer sizes through session_settings
2009-05-01 04:59:15 +00:00
Arvid Norberg
6ca1c191b6
some windows fixes for dynamic linking
2009-04-30 17:30:14 +00:00
Arvid Norberg
3cf34e3a91
greatly optimised memory usage for peer list
2009-04-30 05:49:46 +00:00
Arvid Norberg
7109b86566
greatly simplified the rate limiter and generalized all rate limits (peer, torrent, global) to allow for arbitrary rate limit configurations
2009-04-26 00:21:59 +00:00
Arvid Norberg
6a11d6ee4e
IPv6 tracker fix
2009-04-12 00:37:06 +00:00
Arvid Norberg
41be942ae7
experimental support for incoming connections over socks (untested)
2009-04-09 01:04:49 +00:00
Arvid Norberg
aba5b2e9d0
dropped some iostream dependencies
2009-04-04 09:52:25 +00:00
Arvid Norberg
db8487be46
auto unchoke improvement
2009-04-04 07:55:34 +00:00
Arvid Norberg
982cf7f7f7
improved support for platforms with no wchar_t and std::wstring
2009-03-31 08:12:35 +00:00
Arvid Norberg
b25a8db2a6
added more error codes. consolidated exception classes into one. moved over more places to use error_code instead of strings. fixed proper error handling for torrent_info
2009-02-23 01:21:19 +00:00
Arvid Norberg
76cea23b4c
cleanup of previous check-in. fixing boost-1.34 compatibility and syntax error
2009-01-23 17:06:23 +00:00
Arvid Norberg
9b5aa967b0
fixed race condition when saving DHT state
2009-01-23 16:40:00 +00:00
Arvid Norberg
b3a17b1787
added disk buffer instrumentation and log parser
2009-01-23 09:13:31 +00:00
Arvid Norberg
dacb1ac48d
reverted async. call to torrent::start() since it creates an undesirable race condition for file operations
2009-01-02 08:58:51 +00:00
Arvid Norberg
415a574cca
tweaked send buffer sizes to make buffers addresses aligned
2008-12-27 17:00:06 +00:00
Arvid Norberg
952ed687cd
made session stats config build
2008-12-26 07:00:21 +00:00
Arvid Norberg
7b8663fa8b
support for wide character paths for the GeoIP databases. Fixes #431
2008-12-21 08:48:06 +00:00
Arvid Norberg
f1d981254a
added session::set_alert_dispatch() for system specific message loop integration
2008-12-15 07:12:08 +00:00
Arvid Norberg
3d136a8e93
fixed logging build
2008-12-02 08:29:45 +00:00
Arvid Norberg
09b3a865ef
fixed compiler flags in pkg-config file and made header files not depend on the NDEBUG define
2008-11-29 21:33:21 +00:00
Arvid Norberg
a48ffe36e0
improved natpmp logging and handling of mapped ports in session
2008-11-16 02:11:04 +00:00
Arvid Norberg
4abd27b40e
initialize torrent object in libtorrent thread instead of in calling thread
2008-11-10 02:33:39 +00:00
Arvid Norberg
9bba20cdb4
first pass at rate limited udp socket (for DHT)
2008-11-08 17:40:06 +00:00
Arvid Norberg
49c01d7754
moved UPNP_LOGGING out of upnp.cpp and added alerts for when upnp logs something
2008-10-22 01:12:14 +00:00
Arvid Norberg
f04e9e9875
made unchoke interval depend on piece size
2008-10-18 22:35:10 +00:00
Arvid Norberg
b355541a7d
applied patch from Sergei Vorobyov to allow changing the limit on outstanding alerts
2008-10-07 05:46:42 +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
96ca475652
added redundant and failed byte counters to session
2008-07-11 07:30:04 +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
d396ab7b17
added pause and resume to the session. Fixes #349
2008-06-29 19:08:30 +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
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
777954ab3e
automatically scrape auto managed torrents to keep track of downloader/seed ratio
2008-05-19 04:06:25 +00:00
Arvid Norberg
c7e6c04705
switched over to asio from boost-1.35
2008-05-03 16:05:42 +00:00
Arvid Norberg
4d59d9eabc
fix build with DHT disabled
2008-04-24 16:57:22 +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
42f55adcce
support for country lookup through GeoIP
2008-04-11 08:46:43 +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
75ef4ec1f1
added option to not use pool allocators (useful when using memory debugging tools)
2008-04-09 05:19:11 +00:00
Arvid Norberg
d10205057e
port mapping update
2008-04-06 23:18:35 +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
57d75e120a
initial support for GeoIP (only AS mappings for now)
2008-04-05 04:53:22 +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
5cad17143d
updated udp_socket error handling
2008-03-25 04:46:18 +00:00
Arvid Norberg
f53cfa7eeb
removed checker thread
2008-03-08 06:06:31 +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
df74cbb78a
fixed logging=errors configuration
2008-02-17 22:51:03 +00:00
Arvid Norberg
8cf0510144
added disk cache for write operations
2008-02-08 10:22:05 +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
695cd6407b
remove use of strand
2008-01-08 05:47:43 +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
cfe5c8962e
more asserts around send buffers and fixes potential race condition
2007-12-27 21:43:11 +00:00
Arvid Norberg
8c3f9571de
socks5 support for udp messages
2007-12-09 04:15:24 +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
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
7be29d9b84
applied 'logpath' patch from #202
2007-11-16 21:21:28 +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
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
59c7f5bfbb
added option to delete files from disk as a torrent is removed
2007-10-13 03:33:33 +00:00
Arvid Norberg
995485daeb
fixed destruction order issue
2007-10-09 22:17:16 +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
966800cd5b
replaced the assert macro to TORRENT_ASSERT instead of hi-jacking assert.
2007-10-05 00:30:00 +00:00
Arvid Norberg
4cab49cbdf
saves banned peers in resume data
2007-10-03 17:37:15 +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
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
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
7bbfb3bd4b
added a userdata parameter to add_torrent that is passed in to plugins
2007-09-14 00:11:33 +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
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
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
3d3df51d45
fixed per torrent unchoke limit
2007-08-17 07:37:08 +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
e714e1aeba
improved bandwidth limiter and added a unit test for it
2007-07-02 23:48:06 +00:00
Arvid Norberg
3b8670626a
merged back async_io branch into trunk
2007-06-10 20:46:09 +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
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
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
4a906aa31d
added option for session statistics output
2007-05-13 22:01:21 +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
4371dbe02c
fixed resume data problem caused by recent piece_picker optimization
2007-05-09 03:18:53 +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
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
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
5e32484194
first stab at getting local service discovery
2007-04-04 02:06:07 +00:00