(&mut self, buf: &mut [u8])
| 2355 | |
| 2356 | impl Read for BioStream { |
| 2357 | fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize> { |
| 2358 | // Read from incoming MemoryBIO |
| 2359 | unsafe { |
| 2360 | let nbytes = sys::BIO_read( |
| 2361 | self.inbio.bio, |
| 2362 | buf.as_mut_ptr() as *mut _, |
| 2363 | buf.len().min(i32::MAX as usize) as i32, |
| 2364 | ); |
| 2365 | if nbytes < 0 { |
| 2366 | // BIO_read returns -1 on error or when no data is available |
| 2367 | // Check if it's a retry condition (WANT_READ) |
| 2368 | Err(std::io::Error::new( |
| 2369 | std::io::ErrorKind::WouldBlock, |
| 2370 | "BIO has no data available", |
| 2371 | )) |
| 2372 | } else { |
| 2373 | Ok(nbytes as usize) |
| 2374 | } |
| 2375 | } |
| 2376 | } |
| 2377 | } |
| 2378 | |
| 2379 | impl Write for BioStream { |
no test coverage detected