autocommit 2022-02-06 23:54:46 CET
This commit is contained in:
parent
96038f49bc
commit
7d531257ed
51 changed files with 290 additions and 276 deletions
|
|
@ -1,11 +1,11 @@
|
|||
use crate::async_engine::{AsyncFd, Timeout};
|
||||
use crate::utils::buffd::{BufFdError, BUF_SIZE, CMSG_BUF_SIZE};
|
||||
use futures::future::Fuse;
|
||||
use futures::{select, FutureExt};
|
||||
use std::collections::VecDeque;
|
||||
use std::mem::MaybeUninit;
|
||||
use std::rc::Rc;
|
||||
use std::{mem, slice};
|
||||
use futures::future::Fuse;
|
||||
use uapi::{c, Errno, OwnedFd};
|
||||
|
||||
pub(super) const OUT_BUF_SIZE: usize = 2 * BUF_SIZE;
|
||||
|
|
@ -90,7 +90,11 @@ impl BufFdOut {
|
|||
}
|
||||
}
|
||||
|
||||
pub async fn flush(&mut self, buf: &mut OutBuffer, timeout: &mut Option<Fuse<Timeout>>) -> Result<(), BufFdError> {
|
||||
pub async fn flush(
|
||||
&mut self,
|
||||
buf: &mut OutBuffer,
|
||||
timeout: &mut Option<Fuse<Timeout>>,
|
||||
) -> Result<(), BufFdError> {
|
||||
while buf.read_pos < buf.write_pos {
|
||||
if self.flush_sync(buf)? {
|
||||
self.fd.writable().await?;
|
||||
|
|
|
|||
|
|
@ -73,7 +73,8 @@ impl<'a> MsgFormatter<'a> {
|
|||
f(&mut fmt);
|
||||
let len = self.buf.write_pos - pos - 4;
|
||||
let none = [MaybeUninit::new(0); 4];
|
||||
self.buf.write(&none[..self.buf.write_pos.wrapping_neg() & 3]);
|
||||
self.buf
|
||||
.write(&none[..self.buf.write_pos.wrapping_neg() & 3]);
|
||||
len as u32
|
||||
};
|
||||
unsafe {
|
||||
|
|
@ -86,7 +87,8 @@ impl<'a> MsgFormatter<'a> {
|
|||
self.uint(mem::size_of_val(t) as u32);
|
||||
self.buf.write(uapi::as_maybe_uninit_bytes(t));
|
||||
let none = [MaybeUninit::new(0); 4];
|
||||
self.buf.write(&none[..self.buf.write_pos.wrapping_neg() & 3]);
|
||||
self.buf
|
||||
.write(&none[..self.buf.write_pos.wrapping_neg() & 3]);
|
||||
self
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
use std::{mem, ptr};
|
||||
use std::rc::Rc;
|
||||
use crate::fixed::Fixed;
|
||||
use crate::globals::GlobalName;
|
||||
use crate::object::ObjectId;
|
||||
use crate::utils::buffd::BufFdIn;
|
||||
use bstr::{BStr, ByteSlice};
|
||||
use std::rc::Rc;
|
||||
use std::{mem, ptr};
|
||||
use thiserror::Error;
|
||||
use uapi::{OwnedFd, Pod};
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ impl<'a, 'b> MsgParser<'a, 'b> {
|
|||
if s.len() == 0 {
|
||||
return Err(MsgParserError::EmptyString);
|
||||
}
|
||||
Ok(s[..s.len()-1].as_bstr())
|
||||
Ok(s[..s.len() - 1].as_bstr())
|
||||
}
|
||||
|
||||
pub fn str(&mut self) -> Result<&'b str, MsgParserError> {
|
||||
|
|
@ -120,9 +120,7 @@ impl<'a, 'b> MsgParser<'a, 'b> {
|
|||
if array.len() > mem::size_of::<T>() {
|
||||
return Err(MsgParserError::BinaryArrayTooLarge);
|
||||
}
|
||||
unsafe {
|
||||
Ok(ptr::read_unaligned(array.as_ptr() as _))
|
||||
}
|
||||
unsafe { Ok(ptr::read_unaligned(array.as_ptr() as _)) }
|
||||
}
|
||||
|
||||
pub fn binary_array<T: Pod>(&mut self) -> Result<&'b [T], MsgParserError> {
|
||||
|
|
@ -137,7 +135,10 @@ impl<'a, 'b> MsgParser<'a, 'b> {
|
|||
return Err(MsgParserError::BinaryArraySize);
|
||||
}
|
||||
unsafe {
|
||||
Ok(std::slice::from_raw_parts(array.as_ptr() as _, array.len() / mem::size_of::<T>()))
|
||||
Ok(std::slice::from_raw_parts(
|
||||
array.as_ptr() as _,
|
||||
array.len() / mem::size_of::<T>(),
|
||||
))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue