Compare commits
1 commit
main
...
expose-myd
Author | SHA1 | Date | |
---|---|---|---|
874fa91186 |
5 changed files with 1 additions and 27 deletions
|
@ -14,7 +14,7 @@ tracing = "0.1"
|
|||
tracing-futures = "0.2"
|
||||
|
||||
# IMAP
|
||||
imap-codec = "0.5"
|
||||
imap-codec = { git = "https://github.com/superboum/imap-codec.git", branch = "v0.5.x" }
|
||||
|
||||
# Async
|
||||
async-compat = "0.2"
|
||||
|
|
|
@ -70,7 +70,6 @@ impl fmt::Debug for Body {
|
|||
pub enum Data {
|
||||
Data(ImapData),
|
||||
Status(ImapStatus),
|
||||
Close,
|
||||
}
|
||||
|
||||
impl Encode for Data {
|
||||
|
@ -78,7 +77,6 @@ impl Encode for Data {
|
|||
match self {
|
||||
Data::Data(ref data) => data.encode(writer),
|
||||
Data::Status(ref status) => status.encode(writer),
|
||||
Data::Close => Ok(()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@ pub(crate) mod stream;
|
|||
pub struct Response {
|
||||
pub(crate) status: Status,
|
||||
pub(crate) body: Option<Body>,
|
||||
pub(crate) close: bool,
|
||||
}
|
||||
|
||||
impl Response {
|
||||
|
@ -21,7 +20,6 @@ impl Response {
|
|||
Ok(Response {
|
||||
status: Status::new(code, msg)?,
|
||||
body: None,
|
||||
close: false,
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -52,11 +50,6 @@ impl Response {
|
|||
self.body = Some(body.into());
|
||||
self
|
||||
}
|
||||
|
||||
pub fn close(mut self, close: bool) -> Self {
|
||||
self.close = close;
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl Response {
|
||||
|
|
|
@ -5,7 +5,6 @@ use super::body::Data;
|
|||
use super::Response;
|
||||
|
||||
pub fn response_stream(res: Response, tag: Option<Tag>) -> impl Stream<Item = Data> {
|
||||
let close = res.close;
|
||||
let (body, status) = res.split();
|
||||
let body = body.map(|body| body.into_stream());
|
||||
|
||||
|
@ -20,9 +19,5 @@ pub fn response_stream(res: Response, tag: Option<Tag>) -> impl Stream<Item = Da
|
|||
let item = status.into_imap(tag);
|
||||
tracing::trace!(?item, "response_stream.yield");
|
||||
yield item.into();
|
||||
|
||||
if close {
|
||||
yield Data::Close;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,8 +23,6 @@ pub struct Connection<C> {
|
|||
#[pin]
|
||||
outbox: ConcatAll<BoxStream<'static, Data>>,
|
||||
write_buf: BytesMut,
|
||||
|
||||
close: bool,
|
||||
}
|
||||
|
||||
impl<C> Connection<C> {
|
||||
|
@ -36,8 +34,6 @@ impl<C> Connection<C> {
|
|||
|
||||
outbox: ConcatAll::new(),
|
||||
write_buf: BytesMut::new(),
|
||||
|
||||
close: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -109,10 +105,6 @@ where
|
|||
while let Poll::Ready(Some(data)) = this.outbox.as_mut().poll_next(cx) {
|
||||
tracing::trace!(?data, "transport.write_buf");
|
||||
|
||||
if let Data::Close = data {
|
||||
*this.close = true;
|
||||
}
|
||||
|
||||
if let Err(err) = data.encode(&mut writer) {
|
||||
tracing::error!(?err, "transport.encode_error");
|
||||
return Poll::Ready(Err(Box::new(err)));
|
||||
|
@ -126,10 +118,6 @@ where
|
|||
}
|
||||
this.write_buf.clear();
|
||||
|
||||
if *this.close {
|
||||
futures::ready!(this.conn.as_mut().poll_close(cx))?;
|
||||
}
|
||||
|
||||
Poll::Ready(Ok(()))
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue