Commit Graph

6480 Commits

Author SHA1 Message Date
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
Pavel Pimenov 98a0344196 refactor traversal_algorithm look_for_nodes (#1982) 2017-05-29 12:20:52 -04:00
Steven Siloti 8e600c2201 peer_connection_handle::find_plugin should be const 2017-05-29 07:56:50 -04:00
arvidn a9e5ef1521 merged RC_1_1 into master 2017-05-28 12:22:40 -04:00
arvidn ffaabd846c make file open mode flags be an enum class for type-safety 2017-05-28 11:16: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
Arvid Norberg 660cdaf2d1 deprecate direct access to array in session_stats_alert (#2033) 2017-05-27 20:33:31 -04:00
Pavel Pimenov 4cee8104d7 add base_mapping_t (#2025)
factor out parts of mapping struct from NATPMP and UPnP
2017-05-27 20:26:47 -04:00
Arvid Norberg 94701c24da when stopping a torrent, never perform a name lookup on the tracker (#2021)
when stopping a torrent, never perform a name lookup on the tracker, only announce to trackers whose IP we already know. This is expected to make shutdowns not hang
2017-05-25 14:58:29 -04:00
Arvid Norberg b60b3f164b Merge pull request #2027 from arvidn/RC_1_1
merged RC_1_1 into master
2017-05-24 23:30:24 -04:00
Steven Siloti 40cfceb994 restore find_plugin API (#2026) 2017-05-24 23:29:21 -04:00
arvidn 432131e493 fix error reporting for enum_net_interfaces 2017-05-23 08:54:09 -04:00
arvidn 392f284566 remove some unused stats gathering state in disk_io_thread 2017-05-23 08:16:25 -04:00
arvidn a985773f4b fix previously faulty fix to enum_routes 2017-05-21 23:21:02 -04:00
arvidn 680ca6ea2b merged RC_1_1 into master 2017-05-21 21:02:09 -04:00
Arvid Norberg c7bb9f23ad add debug mechanism to assert the connection list is not mutated while iterating over it (#2016) 2017-05-21 11:36:35 -04:00
arvidn acd98d5c40 delay 5 seconds before reconnecting socks5 proxy for UDP ASSOCIATE 2017-05-21 08:53:29 -04:00
arvidn 604904c80c merge RC_1_1 into master 2017-05-20 15:21:01 -04:00
arvidn 83735fdbb4 fix NAT-PMP crash when removing a mapping at the wrong time 2017-05-20 14:56:04 -04:00
Steven Siloti 22145d8cfa don't assert when removing a link-local IPv6 interface 2017-05-20 06:10:06 -04:00
arvidn e79a7a08b9 fix race condition in storage tick handling in disk_io_thread 2017-05-18 10:21:34 -04:00
Steven Siloti d115c7e296 refactor endpoint search and log a failure to locate a matching socket 2017-05-17 01:34:35 -04:00
Steven Siloti bc019f241b keep iterating over endpoints if one is found to be done
Even if one endpoint is done others may be ready to announce so we need
to keep going.

Fixes #1992
2017-05-17 01:34:35 -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
arvidn 73a3e390b5 merge RC_1_1 into master 2017-05-15 09:12:23 -04:00
arvidn 56d5d795bf improve path sanitization (filter unicode text direction characters) 2017-05-15 01:49:41 -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
arvidn 9333c51da6 deprecate partial_piece_info::piece_state 2017-05-14 20:15:55 -04:00
arvidn e870852c66 fix branch factor overflow in traversal algorithm 2017-05-13 08:10:21 -04:00
arvidn e0fa1cd247 merged RC_1_1 into master 2017-05-12 21:46:45 -04:00
arvidn ff63557f58 bind upnp requests to correct local address 2017-05-12 18:17:38 -04:00
arvidn f8bda070be don't combine reuseaddr and exclusive addruse on windows 2017-05-11 22:30:29 -04:00
arvidn bfa455c5bd save resume data when removing web seeds 2017-05-09 13:11:28 -04:00
Jan Berkel b3815c5533 HTTP proxy: avoid connecting to itself (#1978) 2017-05-08 11:04:17 -04:00
arvidn b1b4360df6 merged RC_1_1 into master 2017-05-08 07:48:42 -04:00
arvidn 14dbd1c92d fix race condition in disk I/O storage class 2017-05-07 13:47:50 -04:00
Alden Torres 0b391d6351 avoid extra sha1_hash memory copy, minor formatting (#1968) 2017-05-04 17:35:40 -04:00
Pavel Pimenov 11c75da314 add trailing slash (#1969) 2017-05-04 17:35:00 -04:00
Jan Berkel fe9f877087 Set connection timeout when next endpoint is tried (#1952) 2017-05-04 17:32:47 -04:00
arvidn 76ef0babed remove deprecated file_base feature of file_storage 2017-05-04 12:03:31 -04:00
Pavel Pimenov 0ac16532ee remove unique.count(url) (#1964) 2017-05-03 20:18:30 -04:00
Alden Torres fd51c0b8bf minor refactor in file_storeage and typos 2017-05-02 22:34:11 -04:00
arvidn af495da56b use std::function instead of the fileop interface for readwritev() 2017-05-02 08:07:29 -04:00
Arvid Norberg 1af17be046 use enum class for ssl bool in listen socket (#1960)
use enum class for ssl bool in listen socket. use std::array instead of C array. make test_listen_socket a bit more compact
2017-04-30 21:11:42 -04:00
arvidn 749d0da875 make iovec_t an alias for span<char>, in preparation for removing it altogether in favour of span 2017-04-30 11:49:08 -04:00
Steven Siloti 540e1046e7 remove deprecated udp functions 2017-04-30 08:11:56 -04:00
Steven Siloti 259559851c fix indentation 2017-04-30 08:11:56 -04:00
Steven Siloti fd50630020 announce to trackers for all listen interfaces 2017-04-30 08:11:56 -04:00
arvidn 23ba9d12d1 construct and destruct objects in stack allocations (alloca()) 2017-04-28 21:34:31 -04:00