Commit Graph

8297 Commits

Author SHA1 Message Date
Steven Siloti 86116caf4c fix assert after a DHT get/put request
If an observer is abandoned due to there being more than 100 results in a
traversal then the traversal may complete while the observer is still
outstanding. When the observer times out or is aborted it calls
traversal_algorithm::failed() which asserts because m_invoke_count has been
cleared to zero by traversal_algorithm::done().

To fix this add a check when abandoning observers to see if they have an
outstanding query. If they do then flag them as done to prevent them from
calling back into the traversal and decrement the invoke count.

Fixes #271
2015-11-16 21:05:32 -08:00
Arvid Norberg 0dbe94616a Merge pull request #269 from ssiloti/master
fix assert in dht::observer
2015-11-15 18:13:01 -05:00
Steven Siloti ba1ccdec66 fix assert in dht::observer
This is was introduced by c2277b3ea5
"fix traversal_algorithm::done() being invoked more than once".
2015-11-14 18:30:42 -08:00
Arvid Norberg 64aba31e30 Merge pull request #263 from thomas-yuan/dead_loop_on_ios
Fix iOS dead loop issue.
2015-11-14 12:55:53 -05:00
Arvid Norberg bdfed667e3 Merge pull request #267 from arvidn/storage-fix
fix support for incomplete reads/writes from disk
2015-11-14 12:54:57 -05:00
arvidn 15c6f0530f update libsimulator 2015-11-14 09:11:24 -05:00
arvidn c7a4eefd69 fixed typo 2015-11-14 02:22:35 -05:00
Thomas Yuan b536cd4ab4 Fix iOS dead loop issue. 2015-11-14 00:53:39 -05:00
arvidn fb2f2731cf fix support for incomplete reads/writes from disk 2015-11-14 00:21:03 -05:00
Arvid Norberg 647a96eb8a Merge pull request #264 from aldenml/cross-build
Fixed to make it more cross compile friendly
2015-11-13 23:28:55 -05:00
Alden Torres 611d0c1c6e Fixed to make it compatible with mingw-w64 and generic linux 2015-11-13 07:55:28 -05:00
Arvid Norberg d84cffd7e1 Merge pull request #265 from ssiloti/master
the simulator always supports IPv6
2015-11-13 00:02:13 -05:00
Steven Siloti 1bd706ac14 the simulator always supports IPv6 2015-11-12 20:52:30 -08:00
Arvid Norberg ef1f399fd3 Merge pull request #259 from arvidn/deterministic-rand
use a consistent random number generator
2015-11-12 21:45:09 -05:00
Arvid Norberg 401f12b287 Merge pull request #260 from arvidn/ip-filter
fix IP filter bug when adding a torrent after setting the filter
2015-11-12 21:44:40 -05:00
arvidn 524cf00fcb forward port of version change from RC_1_0 2015-11-12 21:35:50 -05:00
arvidn aef449ad65 update changelog from RC_1_0 2015-11-12 21:28:50 -05:00
Arvid Norberg aa30d64432 Merge pull request #255 from bit/mutable_python
fix mutable dht entries in python bindings
2015-11-12 20:23:28 -05:00
arvidn d4d5f37222 fix typo 2015-11-12 01:42:44 -05:00
arvidn 2626159abe use a consistent random number generator to make simulations deterministic 2015-11-12 00:21:56 -05:00
arvidn 8fa6863e15 fix IP filter bug when adding a torrent after setting the filter 2015-11-11 20:43:42 -05:00
Arvid Norberg bae2b3394f Merge pull request #258 from arvidn/version
forward-port version function from RC_1_0
2015-11-11 19:13:44 -05:00
Arvid Norberg 39f62fe3d9 Merge pull request #251 from arvidn/ipv6-fix
fix IPv6 tracker announce
2015-11-11 19:13:31 -05:00
arvidn fbf152abc0 attribute external IP voting to the actual tracker IP we connected to, and preserve endpoint list in http_connection to make the re-announce to IPv6 logic robust 2015-11-11 01:30:28 -05:00
arvidn d0dcf82612 fix bug in set_version and update version hash 2015-11-11 01:25:30 -05:00
arvidn 4c0b00c390 forward-port version function from RC_1_0 2015-11-11 00:57:51 -05:00
Arvid Norberg 4ebca897d9 Merge pull request #252 from ssiloti/traversal_multiple_dones
fix traversal_algorithm::done() being invoked more than once
2015-11-10 01:44:37 -05:00
Steven Siloti 08632aa5f7 add unit test to check for multiple calls to done() 2015-11-09 20:47:33 -08:00
Steven Siloti c2277b3ea5 fix traversal_algorithm::done() being invoked more than once
A traversal can be done while there are still outstanding queries (i.e.
m_invoke_count is non-zero) if K good responses have already been received and
none of the outstanding queries are closer than the nodes which have responded.

When this happens and the outstanding queries eventually complete or timeout
they call traversal_algorithm::failed() or traversal_algorithm::finished() as
usual which will cause traversal_algorithm::done() to be called yet again.

The fix is to always set the done flag on all queried observers in
traversal_algorithm::done() so that the observers will refrain from calling
back into the traversal.

This also makes traversal_algorithm::abort() redundant since this was the only
thing it did before it called into done().
2015-11-09 20:47:33 -08:00
j a16b8f374b python bindings: fix dht_put/get_mutable_item
- accept strings for public/private keys,
  its not possible to pass boost::arrarys
- sign data passed to dht_put_mutalbe_item
2015-11-09 04:49:49 +01:00
arvidn 0c435b42b2 add some more slack to one of the unit tests 2015-11-08 16:26:58 -05:00
j d36122f252 expose dht put/get data in alerts 2015-11-08 19:06:07 +01:00
arvidn 4814855933 update cache_size docs and raise the cap for 32 bit builds 2015-11-08 10:49:38 -05:00
arvidn 74d12bd35b update libsimulator 2015-11-07 22:50:51 -05:00
arvidn 9c10e99aef forward port fix to not auto-detect disk cache size greater than the virtual address space for 32 bit builds 2015-11-07 22:00:20 -05:00
Arvid Norberg 61138630a3 Merge pull request #245 from arvidn/invalid-request
handle receiving an invalid request
2015-11-07 21:19:31 -05:00
arvidn 2592acfd8c fix c++98 build 2015-11-07 21:14:52 -05:00
arvidn a48cb785d0 forward port piece_block patch from RC_1_0 2015-11-07 18:50:54 -05:00
arvidn a138b2daa9 handle receiving an invalid request 2015-11-07 14:58:08 -05:00
arvidn 06f702b21a fix test_tracker build 2015-11-07 14:57:25 -05:00
arvidn 1fa184ba8a fix msvc-10.0 build 2015-11-07 10:01:01 -05:00
arvidn 00090b8284 fix typo in test_checking, introduced by recent error_code in torrent_status patch 2015-11-07 01:01:07 -05:00
Arvid Norberg ebdde0dfc8 Merge pull request #249 from arvidn/appveyor-fix
fix appveyor build
2015-11-07 00:44:40 -05:00
arvidn ee7774ea37 fix appveyor build 2015-11-07 00:22:13 -05:00
arvidn ced0f74bf8 minor moving around of code 2015-11-06 00:38:42 -05:00
Arvid Norberg e6d7cb2d3f Merge pull request #243 from arvidn/error_code-in-torrent_status
add error_code to torrent_status instead of error string
2015-11-05 21:09:29 -05:00
arvidn e1719d503b update libsimulator 2015-11-05 20:49:02 -05:00
arvidn ebb9fdaf54 add error_code to torrent_status instead of error string 2015-11-05 20:43:23 -05:00
arvidn 4911a85761 updated Changelog 2015-11-02 23:47:46 -05:00
Arvid Norberg cd358aa5a9 Merge pull request #242 from jpetso/master
Build fixes
2015-11-02 18:37:51 -05:00