aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2013-10-09 21:01:38 -0700
committerSteven Fackler <[email protected]>2013-10-09 21:01:38 -0700
commit709ba4e7b0580b32208384c6cedc9d2bd13da828 (patch)
tree9ad030bd315365a1110f1f702a0dea126fd46691
parentStuff roughly working (diff)
downloadrust-openssl-709ba4e7b0580b32208384c6cedc9d2bd13da828.tar.xz
rust-openssl-709ba4e7b0580b32208384c6cedc9d2bd13da828.zip
Semi-fix EOF
-rw-r--r--src/ssl/lib.rs2
-rw-r--r--src/ssl/test.rs12
2 files changed, 13 insertions, 1 deletions
diff --git a/src/ssl/lib.rs b/src/ssl/lib.rs
index 4d79152b..6d08e168 100644
--- a/src/ssl/lib.rs
+++ b/src/ssl/lib.rs
@@ -225,7 +225,7 @@ impl<S: Stream> SslStream<S> {
self.flush();
match self.stream.read(self.buf) {
Some(len) => self.rbio.write(self.buf.slice_to(len)),
- None => unreachable!() // FIXME
+ None => return Err(ErrorZeroReturn) // FIXME
}
}
ErrorWantWrite => self.flush(),
diff --git a/src/ssl/test.rs b/src/ssl/test.rs
index 36969e1b..3432e2a7 100644
--- a/src/ssl/test.rs
+++ b/src/ssl/test.rs
@@ -1,8 +1,10 @@
extern mod ssl;
use std::rt::io::{Writer, Reader};
+use std::rt::io::extensions::{ReaderUtil};
use std::rt::io::net::tcp::TcpStream;
use std::vec;
+use std::str;
use ssl::{Sslv23, SslCtx, SslStream};
@@ -27,3 +29,13 @@ fn test_write() {
stream.flush();
stream.shutdown();
}
+
+#[test]
+fn test_read() {
+ let stream = TcpStream::connect(FromStr::from_str("127.0.0.1:15418").unwrap()).unwrap();
+ let mut stream = SslStream::new(SslCtx::new(Sslv23), stream);
+ stream.write("GET /\r\n\r\n".as_bytes());
+ stream.flush();
+ let buf = stream.read_to_end();
+ print!("{}", str::from_utf8(buf));
+}