diff options
| author | Aaron Weiss <[email protected]> | 2015-03-02 16:32:25 -0500 |
|---|---|---|
| committer | Aaron Weiss <[email protected]> | 2015-03-02 16:32:25 -0500 |
| commit | c3eee3b19438ddd7c9bd3ef57fdfd4838f9b416c (patch) | |
| tree | 8e95095410dc06d5c80b0b98e2c95e0278907d14 /openssl/src | |
| parent | Release v0.5.0 (diff) | |
| download | rust-openssl-c3eee3b19438ddd7c9bd3ef57fdfd4838f9b416c.tar.xz rust-openssl-c3eee3b19438ddd7c9bd3ef57fdfd4838f9b416c.zip | |
Added try_clone to SslStream for SslStream<TcpStream>.
Diffstat (limited to 'openssl/src')
| -rw-r--r-- | openssl/src/lib.rs | 2 | ||||
| -rw-r--r-- | openssl/src/ssl/mod.rs | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/openssl/src/lib.rs b/openssl/src/lib.rs index 12b0a887..df998ff0 100644 --- a/openssl/src/lib.rs +++ b/openssl/src/lib.rs @@ -1,4 +1,4 @@ -#![feature(unsafe_destructor, core, io, std_misc, path, os, unique)] +#![feature(unsafe_destructor, core, io, std_misc, net, path, os, unique)] #![cfg_attr(test, feature(net, fs))] #![doc(html_root_url="https://sfackler.github.io/rust-openssl/doc/openssl")] diff --git a/openssl/src/ssl/mod.rs b/openssl/src/ssl/mod.rs index ecf12905..06e37aac 100644 --- a/openssl/src/ssl/mod.rs +++ b/openssl/src/ssl/mod.rs @@ -5,6 +5,7 @@ use std::io; use std::io::prelude::*; use std::ffi::AsOsStr; use std::mem; +use std::net; use std::num::FromPrimitive; use std::num::Int; use std::path::Path; @@ -437,6 +438,17 @@ pub struct SslStream<S> { buf: Vec<u8> } +impl SslStream<net::TcpStream> { + /// Create a new independently owned handle to the underlying socket. + pub fn try_clone(&self) -> io::Result<SslStream<net::TcpStream>> { + Ok(SslStream { + stream: try!(self.stream.try_clone()), + ssl: self.ssl.clone(), + buf: self.buf.clone(), + }) + } +} + impl<S> fmt::Debug for SslStream<S> where S: fmt::Debug { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { write!(fmt, "SslStream {{ stream: {:?}, ssl: {:?} }}", self.stream, self.ssl) |