* Add Resolver interface to transport
* Move resolve test to swarm_dial_test
* Use proper peer id in test
* Only import go-multiaddr once
* Cleanup
* Use SNI in websocket
* Update go-multiaddr
* Update p2p/net/swarm/swarm.go
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
* PR comments on websocket.go
* Use unresolved/resolved map
* Set sni
* Refactor websocket multiaddr parsing code, add server test
* Delete superflous helpers
* Update callsites
* Fix typo in p2p/transport/websocket/websocket.go
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
* Fix flaky timing dependent tests
* Update go-libp2p-peerstore dependency
* Register notifiee synchronously
* Only a single connection
* Remove WaitForDisconnectNotification hack since notifs are now synchronous
* Add debug logging to identify tests
* Close chan once
Removes:
* go-libp2p-conn logic (moved to transports)
* go-libp2p-peerstream (moved here)
Changes:
* New transport interface.
* Explicit over implicit (the implicit automagic now all lives in go-libp2p):
* No more default transports, muxers, etc.
* No more fallback dialer. Transports are now *required*.
* Stream opening:
* Connection picking logic (instead of just picking the first).
* Tries harder to open a stream of some connections happen to be closed.
* Stream closing:
* No longer treats half-closed streams as fully closed. Users *must* read the
an EOF or reset the stream for it to be garbage collected.
* No more polling for dead connections.
* Multiplexers are now *non-optional*. Really, they haven't been optional for a
while but we still pretended that they were.
* No more Network type alias. It added a bunch of code and didn't really provide
anything but an alternative set of methods that do the same thing.
* Notifications:
* New guarantee: connection open notifications will complete before connection
close notifications begin.
* Given that, notifications are now delivered in parallel. No more
notification backlogs blocking connection closing/opening.