aboutsummaryrefslogtreecommitdiff
path: root/src/bio
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2015-02-07 21:28:54 -0800
committerSteven Fackler <[email protected]>2015-02-07 21:30:05 -0800
commitec65b0c67b452539fded5e06cbb6ce1d165074e0 (patch)
treec50c22c2ce4ca095149c96a0f3a3b935b4012a5c /src/bio
parentFix deprecation warnings in openssl-sys (diff)
downloadrust-openssl-ec65b0c67b452539fded5e06cbb6ce1d165074e0.tar.xz
rust-openssl-ec65b0c67b452539fded5e06cbb6ce1d165074e0.zip
Move docs to this repo and auto build
Diffstat (limited to 'src/bio')
-rw-r--r--src/bio/mod.rs105
1 files changed, 0 insertions, 105 deletions
diff --git a/src/bio/mod.rs b/src/bio/mod.rs
deleted file mode 100644
index 2f12f906..00000000
--- a/src/bio/mod.rs
+++ /dev/null
@@ -1,105 +0,0 @@
-use libc::{c_void, c_int};
-use std::old_io::{EndOfFile, IoResult, IoError, OtherIoError};
-use std::old_io::{Reader, Writer};
-use std::ptr;
-
-use ffi;
-use ssl::error::{SslError};
-
-pub struct MemBio {
- bio: *mut ffi::BIO,
- owned: bool
-}
-
-impl Drop for MemBio {
- fn drop(&mut self) {
- if self.owned {
- unsafe {
- ffi::BIO_free_all(self.bio);
- }
- }
- }
-}
-
-impl MemBio {
- /// Creates a new owned memory based BIO
- pub fn new() -> Result<MemBio, SslError> {
- ffi::init();
-
- let bio = unsafe { ffi::BIO_new(ffi::BIO_s_mem()) };
- try_ssl_null!(bio);
-
- Ok(MemBio {
- bio: bio,
- owned: true
- })
- }
-
- /// Returns a "borrow", i.e. it has no ownership
- pub fn borrowed(bio: *mut ffi::BIO) -> MemBio {
- MemBio {
- bio: bio,
- owned: false
- }
- }
-
- /// Consumes current bio and returns wrapped value
- /// Note that data ownership is lost and
- /// should be managed manually
- pub unsafe fn unwrap(mut self) -> *mut ffi::BIO {
- self.owned = false;
- self.bio
- }
-
- /// Temporarily gets wrapped value
- pub unsafe fn get_handle(&self) -> *mut ffi::BIO {
- self.bio
- }
-}
-
-impl Reader for MemBio {
- fn read(&mut self, buf: &mut [u8]) -> IoResult<usize> {
- let ret = unsafe {
- ffi::BIO_read(self.bio, buf.as_ptr() as *mut c_void,
- buf.len() as c_int)
- };
-
- if ret <= 0 {
- let is_eof = unsafe { ffi::BIO_eof(self.bio) };
- let err = if is_eof {
- IoError {
- kind: EndOfFile,
- desc: "MemBio EOF",
- detail: None
- }
- } else {
- IoError {
- kind: OtherIoError,
- desc: "MemBio read error",
- detail: Some(format!("{:?}", SslError::get()))
- }
- };
- Err(err)
- } else {
- Ok(ret as usize)
- }
- }
-}
-
-impl Writer for MemBio {
- fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
- let ret = unsafe {
- ffi::BIO_write(self.bio, buf.as_ptr() as *const c_void,
- buf.len() as c_int)
- };
- if buf.len() != ret as usize {
- Err(IoError {
- kind: OtherIoError,
- desc: "MemBio write error",
- detail: Some(format!("{:?}", SslError::get()))
- })
- } else {
- Ok(())
- }
- }
-}