* Move the MdnsService to a service module
* Add a Mdns behaviour
* Add a Mdns network behaviour
* Add minor documentation
* Add minor todo
* Use nat_traversal on the observed address
* Don't add self to topology
* Automatically connect to nodes we discover
* Add Debug implementations
* Fix example
* Replace the &mut TTopology with a &mut PollParameters
* Add supported_protocols
* Add external_addresses
* Report out addresses in Kademlia
* Fix the custom derive
* Some comments
* Fix compilation on stable
* Rework Kademlia for the new design
* Minor work on protocol.rs
* More work
* Remove QueryTarget::FindValue
* Finish work on query
* Query timeout test
* Work on topology
* More work
* Update protocols/kad/src/topology.rs
Co-Authored-By: tomaka <pierre.krieger1708@gmail.com>
* Fix trailing whitespaces
* Use if let
* Fix a typo and grammar and add a clarification.
* Update core/src/nodes/handled_node_tasks.rs
Co-Authored-By: jamesray1 <16969914+jamesray1@users.noreply.github.com>
* Rename protocols_handler.rs to protocols_handler/mod.rs
* Move DummyProtocolsHandler out of the module
* Extract ProtocolsHandlerSelect
* Extract NodeHandlerWrapper
* Add unit tests for core::nodes::NodeStream
* Move DummyMuxer to core/tests
* Address grumbles
* Impl Debug for SubstreamRef<P>
* Add test for poll()
* Don't need to open a substream
* pretty printer test
* More tests for NodeStream poll()
* ListenerStream unit tests: transport() and listeners()
* Tests for nodes/listeners.rs
* Add a few tests to help illustrate the "drowning" behaviour of busy listeners
* Tests for HandledNode
* Address grumbles
* Remove non-project specific stuff
* Address grumbles
* Prefer freestanding function
* Untangle the code for old shutdown test from the new tests
Add HandlerState and use it in TestBuilder
Shorter test names
* WIP – tests pass
* Use a newtype to lighten up the function signatures a bit
Test NotReady case
* Cleanup Event enum
Track events as they reach the Handler
Describe complex test logic
* Assert on the event trace
* More tests for poll()
* Switch to using usize as the OutboundOpenInfo so we can assert on event contents
More tests for poll()
* whitespace
* whitespace and spelling
* WIP tests for handled_node_tasks:Task
* wip
* Move Handler related code to dummy_handler
* Sort out the events going to/from node
* WIP tests for poll
* Add a TestBuilder for NodeTask tests
More NodeTask tests
* Fixes broken test after upstream changes
* Clarify the behaviour of is_shutting_down
* Fix broken test
* Test for task exit when muxers in- and outbound are closed
* Add question about impossible Async::NotReady
* Fix tests after recent changes on master
* Upstream changes
* Tests for HandledNodesTasks
* Add test for HandledNodesTasks poll
* Test we reach all nodes and then closed all nodes
* Test event emission by HandledNodesTasks
* Test starting CollectionStream
* Test that we can reach a peer after a successful connection
* Assert collection contains what we expect
* Test handler events get to the collectionstream
* Remaining tests for CollectionStream
* Run tests on single threaded runtime to avoid intermittent failures
* Remove call to shutdown – not needed
* No need to specify tokio version
* Change the DummyTransport Output type to match RawSwarm
* First few tests for RawSwarm
Whitespace: spaces
* Dummy impl of `dial()`
* Typos/grammar in docs
* Impl Debug for RawSwarmEvent and Peer
Test dialing peer without peer id
* Test num_incoming_negotiated
* A few more tests
* whitespace
* Add derive(Debug) for RawSwarm, ReachAttempts, PeerPendingConnect, PeerNotConnected
Fix intermittent test failures by polling repeatedly when getting NotReady
Add more tests
* Outline remaining work
* Test more error conditions
* wip
* Test error conditions
* Remove debug statements
* typo
* whitespace
* Use PeerId::random
* Uneeded dependency
* Use PeerId::random
* Somewhat less artificial nat_traversal test
* Use the IPv6 "black hole" prefix as an "unreachable" multiaddr
* Use a boolean on DummyTransport to make dial attempts fail
* No funny stuff for nat_traversal
* Add a floodsub example with the new Swarm
* WIP fixes for Floodsub chat-example code
* cleanup
* Address grumbles
* Update docs
* Update to newest master
The current implementation of `MapUpgradeErr` implements `InboundUpgrade`
and `OutboundUpgrade` and applies the transformation in both cases which
means that mapping is always applied to inbound and outbound upgrade
errors. This commit uses separate `MapInboundUpgradeErr` and
`MapOutboundUpgradeErr` types which implements both traits but only map
errors in one direction.