Reimplement the websocket transport. (#1150)

* Begin reimplementing the websocket transport.

* Add TLS support.

* Add support for redirects during handshake.

* Cosmetics.

* Remove unused error cases in tls module.

Left-overs from a previous implementation.

* No libp2p-websocket for wasm targets.

* Change tls::Config to make the server optional.

* Update transports/websocket/src/lib.rs

Co-Authored-By: Pierre Krieger <pierre.krieger1708@gmail.com>

* Duplicate config methods.

As per PR review feedback.
This commit is contained in:
Toralf Wittner
2019-06-04 11:47:20 +02:00
committed by Pierre Krieger
parent 34e7e35310
commit e56c4c10ed
11 changed files with 889 additions and 799 deletions

View File

@ -51,7 +51,6 @@ where
S::Item: IntoBuf,
{
/// Wraps around `inner`.
#[inline]
pub fn new(inner: S) -> RwStreamSink<S> {
RwStreamSink { inner, current_item: None }
}
@ -102,7 +101,6 @@ where
S::SinkItem: for<'r> From<&'r [u8]>,
S::Item: IntoBuf,
{
#[inline]
fn write(&mut self, buf: &[u8]) -> Result<usize, IoError> {
let len = buf.len();
match self.inner.start_send(buf.into())? {
@ -111,7 +109,6 @@ where
}
}
#[inline]
fn flush(&mut self) -> Result<(), IoError> {
match self.inner.poll_complete()? {
Async::Ready(()) => Ok(()),
@ -126,7 +123,6 @@ where
S::SinkItem: for<'r> From<&'r [u8]>,
S::Item: IntoBuf,
{
#[inline]
fn shutdown(&mut self) -> Poll<(), IoError> {
self.inner.close()
}