Arvid Norberg
7251575d98
This patch does: ( #633 )
...
1. simplifies and regularizies creation of listen sockets based on the listen
interfaces setting.
2. simplifies and improves the behavior of UDP sockets, which are now explicitly
opened per listen interface
3. transitions udp tracker, DHT and uTP socket manager over to using the new
udp sockets
4. greatly simplified udp_socket to only wrap a single underlying socket (as
opposed to one IPv4 and IPv6 socket)
5. improved behavior of bind-to-device
6. introduce an array_view type to make udp packet passing code simpler
7. simplify and make setting of DF flag more robust
8. simplify and regularize port mapping of listen sockets
2016-04-24 15:26:28 -04:00
arvidn
876cef0d4c
restore the ipv6 http tracker argument, but restricted to only private torrents
2016-04-07 00:06:04 -04:00
arvidn
1f9f588e75
merge copyright year update and changelog from RC_1_0
2016-01-17 18:57:46 -05:00
arvidn
3cd57b59e0
when a tracker is force announced or scraped by the user/client, the resulting response or failure alert is now posted regardless of the alert mask. Since it's user initiated, it's reasonable to expect the user to be interested in the response
2016-01-16 21:24:04 -05:00
arvidn
4b6e11cc07
deprecate set_tracker_login
2015-12-13 15:14:19 -05:00
Mikhail Titov
df21a7e8ce
Use scrape & i2p bitset flags for request
2015-07-14 14:13:10 -05: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
Arvid Norberg
d43f7b56a2
update copyright year
2015-06-03 05:18:48 +00:00
Arvid Norberg
259e094316
fix warnings
2015-05-16 07:21:23 +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
1357fd5265
clean up usage of printf attribute (encapsulate it in a macro)
2015-05-10 05:11:51 +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
820fde5066
fix typo in config.hpp for gcc build
2015-04-19 13:45:13 +00:00
Arvid Norberg
21751347bc
more warnings fixes and cleanup
2015-04-19 06:28:21 +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
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
2a0789594d
fix linux build
2015-02-08 00:59: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
d140d71e1a
extend logging of UDP tracker announces (to track down unit test flapping)
2015-01-13 21:34:43 +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
1ed1963f29
remove size_type typedef in favor of boost::int64_t
2014-12-03 04:32:50 +00:00
Arvid Norberg
7249122329
move tracker transfer counters over to use performance_counters internally as well
2014-10-21 21:24:15 +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
ffb66ec156
transition tracker_connections to use shared_ptr instead of intrusive_ptr. optimize udp tracker connection lookups by using unordered map instead of linear search.
2014-10-20 20:44:05 +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
2d438e0758
factor out parse_tracker_response and add unit tests. make gen_todo cover tests also, and regenerate todo.html
2014-09-29 06:10:22 +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
a6f345181f
fixed some unused argument warnings
2014-07-07 06:28:48 +00:00
Arvid Norberg
7351389ce8
land libtorrent_aio branch in trunk
2014-07-06 19:18:00 +00:00
Arvid Norberg
a943fec777
update copyright
2014-02-23 19:12:25 +00:00
Arvid Norberg
4e6b1cfbfb
update copyright
2013-12-25 17:07:16 +00:00
Arvid Norberg
a05103154b
remove debug logging to print field offsets and struct sizes
2013-12-02 10:00:03 +00:00
Arvid Norberg
5812e8415d
merged fix from RC_0_16
2013-11-02 23:08:26 +00:00
Arvid Norberg
3afe6c23a0
merged tracker key patch from RC_0_16
2013-08-31 21:06:43 +00:00
Arvid Norberg
6faec32ebc
don't send ipv4 and ipv6 to trackers
2013-02-24 01:00:20 +00:00
Arvid Norberg
7607f20e2a
add per-tracker scrape information to announce_entry
2013-02-04 07:17:31 +00:00
Arvid Norberg
bff648a89e
update copyright dates and add tool to do so
2012-10-02 03:16:33 +00:00
Arvid Norberg
acdb647eca
merged udp tracker fix from RC_0_16
2012-10-01 00:13:58 +00:00
Arvid Norberg
5e2ff1a246
merged logging cleanup from RC_0_16
2012-09-27 23:04:51 +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
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
7a50255865
improved struct layout debug logging and optimized some structs
2011-09-21 09:27:07 +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
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
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
a05acc4bac
support trackerid tracker extension
2010-11-18 05:51:52 +00:00
Arvid Norberg
40ed231366
fixed tracker timeout handling
2010-11-18 01:06:33 +00:00
Arvid Norberg
eba657d8ad
reports redundant downloads to tracker, fixed downloaded calculation to be more stable when not including redundant. Improved redundant data accounting to be more accurate
2010-10-18 00:10:33 +00:00
Arvid Norberg
3fb9fcab9e
full support for bep-21 (event=paused)
2010-09-06 04:02:15 +00:00
Arvid Norberg
fd5f1bf80b
improved SOCKS5 support
2010-08-03 09:08:37 +00:00
Arvid Norberg
cdf05a9c9c
moved UDP trackers over to use a single socket
2010-05-30 01:33:03 +00:00
Arvid Norberg
0952dd48f6
fixed udp tracker race condition
2010-03-02 09:04:27 +00:00
Arvid Norberg
aa5fc72fbf
made tracker errors use error_code
2010-02-23 21:53:45 +00:00
Arvid Norberg
04d31cea6e
support option to report redundant bytes or not to tracker as well as 'corrupt' argument
2010-02-18 06:45:07 +00:00
Arvid Norberg
c050b22d8f
optimized memory usage for torrent objects
2010-02-14 01:39:55 +00:00
Arvid Norberg
0fc90b5655
fixed support for min-interval on tracker failures
2009-12-21 09:47:32 +00:00
Arvid Norberg
1e654220fa
added support for min_interval
2009-12-02 04:05:24 +00:00
Arvid Norberg
e1aa90daab
header dependency fixes
2009-11-26 21:05:57 +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
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
Arvid Norberg
9b15c11740
don't send stats to trackers received through tracker exchange
2009-09-25 18:17:59 +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
33768fa282
fixed deadlock in http_tracker_connection
2009-06-09 05:51:10 +00:00
Arvid Norberg
437cb94fd0
improved IPv6 support by announcing twice when necessary
2009-05-15 21:23:41 +00:00
Arvid Norberg
6a11d6ee4e
IPv6 tracker fix
2009-04-12 00:37:06 +00:00
Arvid Norberg
de911676ed
added asserts to make sure tracker_connections are shut down correctly ( #451 )
2008-12-25 02:05:23 +00:00
Arvid Norberg
70f4303d92
added tracker IP to tracker_response callback and added filtering of local IPs in pex and tracker responses. #409
2008-12-01 08:48:54 +00:00
Arvid Norberg
1ac3b8298c
report tracker bandwidth usage and include it in rate limiter
2008-09-22 00:15:05 +00:00
Arvid Norberg
48dad0e2ac
fixed indentation
2008-09-21 23:25:09 +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
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
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
c7e6c04705
switched over to asio from boost-1.35
2008-05-03 16:05:42 +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
45a7329d5c
added alert for when the client's external IP is received
2008-03-29 22:45:55 +00:00
Arvid Norberg
df74cbb78a
fixed logging=errors configuration
2008-02-17 22:51:03 +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
695cd6407b
remove use of strand
2008-01-08 05:47:43 +00:00
Arvid Norberg
9727634f09
added base32encode and moved it into escape_string.hpp
2007-12-02 18:34:37 +00:00
Arvid Norberg
fabfe6cd50
added scrape support
2007-11-20 22:46:27 +00:00
Arvid Norberg
fd51412b70
shutdown improvements. Fixes stall
2007-11-02 00:27:53 +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
28274bf1bd
improved shutdown behavior. decreased tracker timeouts to 5 seconds. added more logging
2007-10-07 18:06:56 +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
15a193d363
fixed race condition in tracker manager
2007-09-14 02:54:15 +00:00
Arvid Norberg
3b8670626a
merged back async_io branch into trunk
2007-06-10 20:46:09 +00:00
Arvid Norberg
883773e8fa
added shutdown logging and tracker manager shutdown flag
2007-05-23 01:02:46 +00:00
Arvid Norberg
cbd67ed729
added support for authentication in the url_parser and added a test for it
2007-05-22 20:44:18 +00:00
Arvid Norberg
1c147018db
fixed correct export macros for intrusive pointer refcounter functions
2007-05-21 19:31:37 +00:00
Arvid Norberg
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
250adabcfa
removed unused web stats
2007-04-11 16:50:54 +00:00
Arvid Norberg
d88ffcc0e4
removed some more unecessary boost.date_time dependencies
2007-04-10 07:52:58 +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
7e3a415d0b
made the trackers pick the most suitable interface to connect to (IPv6/Ipv4 issue). added Mono Torrent to identify_client and dht statistics.
2007-03-02 18:40:02 +00:00
Arvid Norberg
13facbdb83
added a strand for all async operations for thread safety
2006-12-15 17:47:21 +00:00
Arvid Norberg
c5cf290f49
more quota management fixes and more stats for web seeds
2006-11-24 14:22:52 +00:00