Commit Graph

1617 Commits

Author SHA1 Message Date
Arvid Norberg cebd976cc2 fix error_code vs. error_condition traits (#1169)
fix error_code vs. error_condition traits. deprecate get_*_category(), instead use *_category()
2016-10-02 12:27:50 -07:00
Steven Siloti 85dd682551 fix adding a node with unknown id (#1161)
Commit a414e4c3 broke adding nodes with unknown id to the routing table by
causing them to be evicted when they responded with their real id. This should
have been caught by test_bootstrap, but a typo caused that test to silently
exit early.
2016-09-28 13:28:21 -04:00
Alden Torres 8caebbd026 alerts refactor to use span, don't break ABI when logging, fix compilation (#1159)
alerts to use span, don't break ABI when logging, fix compilation
2016-09-27 23:21:18 -04:00
Arvid Norberg f592d7fcb0 various cleanup and formatting updates (#1158) 2016-09-26 20:05:04 -04:00
Alden Torres 31ce1e5a2c dht headers and minor cleanup (#1157) 2016-09-26 18:04:42 -04:00
Arvid Norberg 97c6a75084 add proper error handling to peer connections and session (#1149)
add proper error handling to peer connections and session. i.e. catch exceptions in asio handlers and catch by const reference
2016-09-25 09:50:48 -04:00
Arvid Norberg da8af033cc modernize utf8 conversion functions to throw and move (#1145)
modernize utf8 conversion functions to throw and move
2016-09-24 22:16:10 -04:00
Arvid Norberg 48a647a169 String view entry (#1147)
make entry support string_view in its interface, and make it efficient when in in C++14
2016-09-24 06:10:54 -07:00
Steven Siloti 2e0140b6f6 fix peer picking algorithm (#1141)
fix peer picking algorithm. The old code was always picking the first to_pick peers from the set.
2016-09-24 06:08:52 -07:00
Alden Torres 158ae3a4ba consts, minor refactor, typos and test (#1142) 2016-09-23 13:49:39 -07:00
Arvid Norberg 24b271b7c1 Merge pull request #1133 from ssiloti/peer-picker
fix DHT peer picking algorithm. The old code was always picking the first to_pick peers from the set.

* use a sorted vector to store peer announcments

Given the frequency of linear scans being done, std::set is clearly
sub-optimal for storing announced peers. A std::vector is the obvious
choice, which I also decided to make sorted. A sorted vector trades
better performance in announce_peer for slower purging, the latter
being mitigated by batching.

* shrink peers vectors with too much excess capacity
2016-09-23 13:48:00 -07:00
Steven Siloti 89942bf3d4 use a sorted vector to store peer announcments
Given the frequency of linear scans being done, std::set is clearly
sub-optimal for storing announced peers. A std::vector is the obvious
choice, which I also decided to make sorted. A sorted vector trades
better performance in announce_peer for slower purging, the latter
being mitigated by batching.
2016-09-22 21:54:10 -07:00
Alden Torres c7ec987a1b refactor in msg verify_message and minor cleanup (#1131) 2016-09-21 23:04:05 -07:00
Steven Siloti 23e11af899 fix peer picking algorithm
The old code was always picking the first to_pick peers from the set.
2016-09-21 20:21:34 -07:00
Steven Siloti c75b243490 remove redundant protocol parameter (#1128) 2016-09-21 20:00:39 -07:00
Arvid Norberg 770b0def0c Merge pull request #1122 from ssiloti/peers-storage-policy
new peers storage policy
2016-09-21 07:35:34 -07:00
Arvid Norberg 752ff24357 Merge pull request #1123 from aldenml/system-port-and-logs-1.2
* accept port 0 in listen_interfaces
* more session log and source code refactor
2016-09-20 23:50:49 -07:00
Arvid Norberg 3e7e806a77 deprecate old session_settings API (use settings_pack instead) (#1117)
deprecate old session_settings API (use settings_pack instead)
2016-09-20 23:49:23 -07:00
Steven Siloti dad0000015 send write token if peer is alraedy stored 2016-09-20 19:35:24 -07:00
Alden Torres 4f6ea4a70d more session log and source code refactor 2016-09-20 11:24:24 -04:00
Alden Torres 089d6c3144 accept port 0 in listen_interfaces 2016-09-20 11:11:24 -04:00
Steven Siloti e2fefb074a always drop the announcing peer when at capacity 2016-09-19 21:51:10 -07:00
Arvid Norberg acf77a5385 fix tail-padding for last file in create_torrent (#1106) 2016-09-18 20:08:27 -04:00
Alden Torres db14df5d0d dht code related refactor and cleanup (#1107)
dht code related refactor and cleanup
2016-09-18 20:08:15 -04:00
Arvid Norberg 80ba45e1fb clean up read_endpoint_list (#1102) 2016-09-18 10:12:54 -04:00
Arvid Norberg 219b2c36b4 upnp and natpmp modernization and cleanup (#1103)
upnp and natpmp modernization and cleanup
2016-09-18 10:11:56 -04:00
Arvid Norberg 527772420a fix tail padding in file_storage::optimize and improve file placement with some tests (#1105) 2016-09-18 00:24:20 -04:00
Alden Torres 6c31ea3d44 created dht state and session params refactor (#1100)
created dht state and session params refactor
2016-09-17 09:42:04 -04:00
Alden Torres d94c317f02 created portmap_callback and refactor for natpmp and upnp log optimization (#1096)
created portmap_callback and refactor for natpmp and upnp log optimization
2016-09-16 09:53:17 -04:00
Alden Torres 0507764d04 consts and refactor, hash_address returns the hash (#1093)
consts and refactor
2016-09-15 21:13:43 -04:00
Steven Siloti 3d3367387a check the address family of peers in get_peers (#1090) 2016-09-14 11:29:27 -04:00
Alden Torres 224ebc1ded peer_connection log related optimization (#1086)
peer_connection log related optimization and making m_alert_mask atomic
2016-09-13 17:07:22 -04:00
Alden Torres 65cdc15543 more on log, consts, refs and cleanup in dht related code (#1082)
more on log, consts, refs and cleanup in dht related code. moving print_state out of main source code
2016-09-13 08:18:47 -04:00
Alden Torres 4d4eb66c8b some refactor, more const refs and span use (#1078)
some refactor, more const refs and span use
2016-09-11 01:58:48 -04:00
Alden Torres 99da5c8017 dht log optimization, consts and refactor (#1073)
dht log optimization and refactor
2016-09-08 19:13:46 -04:00
Alden Torres 01e9810f7a more boost types cleanup and handling of deprecated macos libcrypto (#1072)
more boost types cleanup and handling of deprecated macos libcrypto. more granular TORRENT_MACOS_DEPRECATED_LIBCRYPTO
2016-09-07 17:51:18 -04:00
Alden Torres 4c53d7b2da refactor to use std unordered containers and minor cleanup (#1070) 2016-09-06 23:37:36 -04:00
Alden Torres 5e69dc700c minor cleanup and refactor (#1069) 2016-09-06 18:34:03 -04:00
Alden Torres 7a0da72813 use of std::unordered_multimap and fix in resolve_links::match (#1067)
use of std::unordered_multimap and fix in resolve_links::match
2016-09-06 13:04:28 -04:00
Arvid Norberg 994a84cfe8 enable string tests on appveyor (#1064) 2016-09-05 15:17:12 -04:00
Alden Torres 29a4075555 refactor to use std::shared_ptr with dht observer (#1057)
refactor to use std::shared_ptr with dht observer
2016-09-02 21:05:11 -04:00
Alden Torres fd4c09d7b2 refactor to use std::shared_ptr with traversal_algorithm (#1056)
refactor to use std::shared_ptr with traversal_algorithm. use a more stable linaro gcc link
2016-09-02 16:42:55 -04:00
Steven Siloti 29e6cbbdae fix exit condition when parsing nodes (#1046)
fix exit condition when parsing nodes
2016-09-01 00:49:21 -04:00
Alden Torres bf0008933a refactor to use std::shared_ptr with peer_connection, core and tests (#1050) 2016-08-31 21:42:18 -04:00
Alden Torres 6e891a0211 refactor to use std::shared_ptr with http_connection (#1049) 2016-08-31 12:45:45 -04:00
Alden Torres cdb15ba886 refactor to use std::shared_ptr with torrent (#1048) 2016-08-31 08:27:36 -04:00
Alden Torres e2487c4d24 more use of std::shared_ptr refactor 2016-08-30 10:10:53 -04:00
Alden Torres 2ac45d17ef ed25519 api refactor (#1041) 2016-08-30 02:37:51 -04:00
Alden Torres ebe53883b5 refactor in escape_string and escape_path to use string_view (#1039) 2016-08-29 22:37:19 -04:00
Alden Torres 32f5f8f257 better integration and API for ed25519 (#1037)
better integration and API for ed25519. using shared_ptr in ed25519_add_scalar
2016-08-29 20:28:42 -04:00
Alden Torres 227b630bd1 added string_ends_with to replace boost (#1034)
added string_ends_with to replace boost
2016-08-26 12:36:09 -04:00
Alden Torres 44d9f456f8 adding support for a more configurable sha512 hasher (#1028)
adding support for a more configurable sha512 hasher, digest32 template, using hasher512.
2016-08-25 19:07:16 -04:00
Alden Torres 73d6ba6ae3 using span in torrent_handle and no optional in torrent_info (#1023) 2016-08-22 11:02:51 -04:00
Arvid Norberg 3f693fde42 fix build (#1025)
fix build
2016-08-21 20:20:46 -04:00
arvidn 74fc0fae9d merged RC_1_1 into master 2016-08-21 16:28:49 -04:00
Arvid Norberg debf3c6e36 update puff.c for gzip inflation (#1022)
update puff.c for gzip inflation
2016-08-21 14:43:44 -04:00
Alden Torres 00510d2b06 more use of span and std::shared_ptr (#1018)
more use of span and std::shared_ptr
2016-08-21 13:37:11 -04:00
Arvid Norberg 80e5ce9b32 add a default DHT bootstrap node when it's enabled on session startup (#1008)
make the dht bootstrap nodes part of settings_pack instead, to make it possible to set them on startup. and add default
2016-08-21 12:15:19 -04:00
Arvid Norberg daa453ef3b back-port windows stack trace function to 1.1 (#1017)
back port exception handling and stack trace printing from master -> RC_1_1
2016-08-21 01:07:02 -04:00
Alden Torres 4d96939b7b minor cleanup and refactor (#1016)
minor cleanup and refactor
2016-08-20 19:46:55 -04:00
Arvid Norberg 8f7901dd25 build with warnings as errors in autotools build on travis (#1013)
build with warnings as errors in autotools build on travis
2016-08-19 01:05:43 -04:00
Alden Torres 9fd83aaa10 more use of std::shared_ptr (#1009)
more std::shared_ptr transition
2016-08-18 17:08:40 -04:00
Alden Torres 5789b02e1b storage_interface refactor to use span and references (#1007)
storage_interface refactor to use span and references
2016-08-18 11:57:50 -04:00
Alden Torres bb388563b3 refactor to use torrent_info with std::shared_ptr (#1006) 2016-08-17 17:26:35 -04:00
Alden Torres 7cee486cf7 extensions refactor to use span and std::shared_ptr (#1005)
extensions refactor to use span. use std::shared_ptr instead of boost::shared_ptr.
2016-08-17 14:30:24 -04:00
Alden Torres f4127ae12b refactor in crypto_plugin::decrypt to use tuple 2016-08-16 10:21:17 -04:00
Alden Torres 7a2b21407c refactor in crypto_plugin to use span 2016-08-15 23:09:30 -04:00
Alden Torres f51e782905 using string_view in node::incoming_request and plugin::on_dht_request (#1001)
use string_view in node::incoming_request. changed plugin::on_dht_request to use string_view
2016-08-15 16:17:13 -04:00
Alden Torres 2f7adfbb92 no more deprecated std::random_shuffle (#999)
replace deprecated std::random_shuffle. more aggressive random_shuffle in DHT simulation setup. use travis_retry.
2016-08-14 19:48:31 -04:00
arvidn 8c8c3d5587 replace boost::function with std::function 2016-08-13 07:07:26 -04:00
Arvid Norberg e36e5efaba use boost::string_ref (#996)
use boost::string_ref/boost::string_view in various parts of the code, in file_storage, some file functions and in bdecode.
2016-08-13 07:04:53 -04:00
Alden Torres 74c8054e8d created session_params and refactor (#993)
created session_params and new session constructor
2016-08-11 20:32:14 -04:00
Arvid Norberg 8007b947fd make pad-file and symlink support conform to BEP47 (#992)
make pad-file and symlink support conform to BEP47
2016-08-07 22:37:10 -04:00
arvidn 42b3fbe20a merged RC_1_1 into master 2016-08-07 17:23:40 -04:00
Alden Torres af565e2b86 added support for flz (find last zero) and copied bitfield functions from PR #565 (#986)
added support for flz (find last zero) and copied bitfield functions from PR #565
2016-08-07 16:21:08 -04:00
Arvid Norberg e9a7271aca add piece picker test for re-prioritizing downloading/writing/partial pieces (#989)
add piece picker test for re-prioritizing partial pieces and forward port steven's piece picker fix from RC_1_1
2016-08-07 16:05:20 -04:00
Arvid Norberg f144b64211 split up piece picker test (#988) 2016-08-06 13:49:23 -04:00
Arvid Norberg 71f5510d62 make the random function produce proper random distributions, based o… (#981)
make the random function produce proper random distributions, based on uniform_int_distribution of C++11. also clean up piece_picker's priority_range to return two results instead of taking pointers to out-parameters. fix recent pe-crypto regression exposed by this change
2016-08-06 13:18:48 -04:00
Alden Torres 7ea9e76b37 refactor for separation of clz software/hardware based (#985)
refactor for separation of clz software/hardware based
2016-08-05 15:51:37 -04:00
Arvid Norberg 5b230694e5 check autotools on travis (#973)
build and run tests with autotools on travis, and fix configure issues.
2016-08-02 00:46:15 -04:00
Alden Torres f795e88789 don't define _WIN32_WINNT if not under windows 2016-07-30 18:03:06 -04:00
Arvid Norberg c1ade2b75f Merge pull request #965 from arvidn/hex-span
use span for to_hex and from_hex functions
2016-07-29 22:25:15 -04:00
Alden Torres 55fc0704ae increase timeout in test_utp 2016-07-29 20:20:06 -04:00
arvidn 83dba91168 use span for to_hex and from_hex functions 2016-07-29 18:42:18 -04:00
Steven Siloti a414e4c3fa remove nodes which change their id
This is based on a suggestion from the8472 to prevent malicious nodes from
polluting the routing table.

https://github.com/the8472/mldht/blob/sanitizing-docs/docs/sanitizing-algorithms.rst
2016-07-27 21:10:33 -07:00
Alden Torres 98918d61f5 removed const_interval, mutable_buffer and const_buffer types (#956)
removed const_interval, mutable_buffer and const_buffer types
2016-07-27 22:31:08 -04:00
Steven Siloti 7a95ba636e add test for updating a dht node's id (#953) 2016-07-27 02:38:48 -04:00
Arvid Norberg 69f82c5274 add support for entry::preformatted to python binding (#952) 2016-07-27 00:15:26 -04:00
Alden Torres 7caa99d6f1 __cplusplus cleanup (#951)
cleanup
2016-07-26 18:30:19 -04:00
Arvid Norberg 634c2bce60 Span conversion (#944)
complete http_parser transition to use span. make xml_parse use span. remove buffer::interval. convert some of receive buffer management to use span<>
2016-07-26 02:15:31 -04:00
arvidn 680a09cfa5 merged RC_1_1 into master 2016-07-26 02:14:58 -04:00
terry zhao 48ca20968e fix value of current_tracker when all tracker failed (#932)
fix torrent_status::current_tracker when all trackers fail.
2016-07-26 01:13:28 -04:00
Arvid Norberg 2fae3ae835 fix regression in entry constructor (#950) 2016-07-26 01:08:03 -04:00
Arvid Norberg 6777ec5d05 back-ported dbghlp fix (#946)
back-ported dbghlp fix
2016-07-26 01:05:32 -04:00
Arvid Norberg 7fdab0d9e9 fix dbghlp heap corruption on windows
synchronize access to dbghlp.dll on windows
2016-07-25 08:05:26 -04:00
Arvid Norberg 4f803353cf transition part of http_parser to use span (#936)
transition parts of http_parser to use span
2016-07-24 00:52:20 -07:00
Arvid Norberg 9c2325ff6b modernize and improve type-safety of the DHT put implementation and test (#929)
modernize and improve type-safety of the DHT put implementation and tests. use unique_ptr instead of malloc for dht put items.
2016-07-23 15:57:04 -07:00
Alden Torres ddb274751f using span in crypto_plugin encrypt/decrypt (#934) 2016-07-23 15:54:39 -07:00
Alden Torres f57612b82d rename of aux::array_view to span (#933) 2016-07-22 09:31:42 -07:00
Arvid Norberg 7bf49c0a1c modernize hasher to use array_view (#931)
modernize hasher to use array_view as well as adding array_view support to entry
2016-07-22 07:29:39 -07:00