arvidn
9e69bf3618
introduce a type to refer to a torrent-list-index, to improve type safety
2017-10-25 13:39:37 +02:00
Alden Torres
7216b69188
revert early return in session_impl::on_port_mapping and only check for error if cast_vote ( #2468 )
2017-10-24 09:54:57 +02:00
Alden Torres
bb409c5ee9
missing return if error in session_impl::on_port_mapping, doc typo ( #2459 )
2017-10-23 12:36:51 +02:00
arvidn
bb65acb082
make feature_flags proper type-safe
2017-10-14 23:33:48 +02:00
arvidn
9111d5977e
make the variables holding the source of external IPs type-safe
2017-10-10 22:38:36 +02:00
Alden Torres
7f3c38025f
making use of openssl API 1.1 compatible
2017-10-06 11:03:16 +02:00
arvidn
69dc73914a
merged RC_1_1 into master
2017-10-04 11:43:01 +02:00
arvidn
99b19366a9
fix leak of peer_class objects (when setting per-torrent rate limits)
2017-10-03 17:32:49 +02:00
pavel.pimenov
f3796060d3
add const
2017-09-29 14:06:40 -07:00
arvidn
edad33d270
fix const correctness in get_peer_class
2017-09-24 14:49:55 -07:00
Steven Siloti
8648de3706
DHT nodes should only handle requests on their socket ( #2355 )
2017-09-21 21:00:38 -07:00
arvidn
ccbd6cbcfe
remove rss_reader.py, since rss has been reprecated. fix python binding for torrent_handle, to be hashable. update client_test.py to not use deprecated APIs and follow best (libtorrent) practice
2017-09-11 22:28:57 +02:00
Steven Siloti
df8a57efb7
select which DHT port to report based on the connection's local endpoint ( #2316 )
2017-09-10 10:25:04 +02:00
arvidn
bb51dcdbb9
move dht_settings into its own header cpp file-pair and dht_settings into the dht namespace
2017-09-04 22:38:16 +02:00
arvidn
fe1c395579
merged RC_1_1 into master
2017-09-03 13:57:19 +02:00
arvidn
7087a16b36
move some initialization of torrent from start() into the constructor
2017-09-02 21:24:00 +02:00
arvidn
11f008e90e
use a strong typedef for port mapping id
2017-09-02 07:02:07 +02:00
Alden Torres
ac914d4415
avoid port mapping of local addresses ( #2296 )
2017-09-01 19:28:27 +02:00
Arvid Norberg
f734ad067b
straighten out some type-safety in port mapping enums ( #2285 )
2017-08-30 20:47:49 +02:00
Alden Torres
fe09ca9b97
more use of auto, const and minor cleanup in session_impl.cpp
2017-08-30 20:30:06 +02:00
Arvid Norberg
1075ae3b8d
remove session pool allocator and use the buffer class instead ( #2274 )
...
simplify append_buffer by using size() to determine size of the buffer. make the move explicit in chained_buffer::init_buffer_entry
2017-08-28 11:37:53 +02:00
arvidn
1ce4089229
log failures to parse interface and node lists from settings
2017-08-24 07:59:22 +02:00
arvidn
e92cbf502c
remove the last use of session_impl get_ipv6_interface and get_ipv4_interface
2017-08-23 21:01:15 +02:00
arvidn
f311bf354e
remove left-overs from disk buffer pool allocator
2017-08-21 16:36:00 +02:00
Steven Siloti
2365611507
remove support for using a pool allocator for disk buffers ( #2257 )
2017-08-19 11:04:39 +02:00
Alden Torres
bde4718e3f
typos, auto loop refactor and more std::
2017-08-16 07:01:50 +02:00
arvidn
6fa181ece8
some cleanup of type-safe flags
2017-07-30 18:20:15 -07:00
arvidn
322007bb6a
make save_state_flags a strong type
2017-07-30 09:06:41 -07:00
arvidn
24e4263bae
make torrent status flags be type safe
2017-07-27 09:33:35 -07:00
arvidn
8d0f38930e
make udp send flags type safe
2017-07-26 18:09:17 -07:00
arvidn
83ca755d1b
simplify setup_listener
2017-07-26 12:02:58 -07:00
arvidn
b38efb6c65
make alert category flags be a strong type
2017-07-26 07:20:47 -07:00
Steven Siloti
5eba09fce7
changes based on review feedback
2017-07-21 19:18:44 -07:00
Steven Siloti
1a64490ef0
fix
2017-07-21 19:18:44 -07:00
Steven Siloti
f0ae2145ea
use a handle class for listen sockets instead of raw pointers
...
Listen socket handles need to be week_ptr so that they can detect when a listen
socket is removed in the middle of a tracker announce on it. Use a wrapper class
to enforce that no one outside of session_impl can hold ownership of the socket
across event boundaries.
To support unit tests, listen_socket_t is also split into a base class which
holds the members needed to support the public listen socket API.
2017-07-21 19:18:44 -07:00
Steven Siloti
e0dcd34352
convert m_listen_sockets to a vector of shared_ptr
2017-07-21 19:18:43 -07:00
Steven Siloti
0f30815d8f
Revert "don't move listen_socket_t when deleting sockets"
...
This reverts commit 718c5f0dcb
.
2017-07-21 19:18:43 -07:00
arvidn
4947602a2f
make add_torrent_params::flags_t an enum class and move it out into its own header
2017-07-17 01:05:31 -07:00
arvidn
c4afb5e949
use a dedicated class template for flags types instead of enum class. It's more backwards compatible and improves ergonomics
2017-07-15 01:15:57 -07:00
Steven Siloti
389b4eb3f2
make listen_socket_t non-copyable and non-movable ( #2137 )
...
The DHT stores a pointer to this struct so it must not be copied or moved once
it is stored in m_listen_sockets.
2017-07-10 10:14:36 -07:00
Steven Siloti
718c5f0dcb
don't move listen_socket_t when deleting sockets
...
Pointers to listen_socket_t are stored in dht_tracker, so they
cannot be copied or moved once they are added to m_listen_sockets.
listen_socket_t should really be made non-copyable and non-moveable, but the
socket creation path needs to be refactored before that can be done.
2017-07-08 08:42:04 -07:00
arvidn
35491bc476
convert remaining alerts to use operation_t instead of string literal
2017-06-18 22:05:50 -04:00
arvidn
ff454a92d4
unify some operation-enums and strings to use operation_t
2017-06-18 07:31:45 -04:00
arvidn
1fd350cf60
make operation_t an enum class, for type safety
2017-06-15 07:00:06 -04:00
Alden Torres
48ef3b6bf7
implemented support for BEP 51 ( #1652 )
2017-06-12 11:54:11 +02:00
Steven Siloti
67a530f3ab
only listen on preferred IPv6 addresses on Windows
...
We shouldn't listen on addresses which are duplicates, deprecated,
or tenative unless explicitly requested.
This is only supported on Windows for now because the Linux interface
to get this information is much less convenient for libtorrent to use.
As far as I've been able to determine, Linux only exposes this information
via the RTM_NEWADDR and RTM_GETADDR netlink messages. Currently libtorrent
uses getifaddrs() to enumerate network interfaces on Linux so this will
probably need to be changed to use netlink if available.
MacOS: ???
2017-05-30 07:38:12 -04:00
arvidn
afce0d3a86
make resolver_flags use enum class for improved type-safety
2017-05-29 18:38:59 -04:00
Steven Siloti
353ab20280
make session_handle hold a weak_ptr and be copyable ( #2034 )
2017-05-28 06:41:50 -04:00
Steven Siloti
893ef6479f
don't abort the existing torrent when attempting to add it again
2017-05-17 00:57:52 -04:00
Steven Siloti
4bc9515766
close listen sockets after closing all connections ( #1994 )
...
This fixes an assertion failure on shutdown if an IPv6 UTP socket tries
to send a FIN to a closed UDP socket. Because the closed socket reports
its local_endpoint() as udp::endpoint() it trips the protocol check in
send_udp_packet.
2017-05-14 20:16:47 -04:00