1
//! Stream handling logic
2

            
3
use tor_proto::circuit::CircHopSyncView;
4
use tor_proto::stream::{
5
    IncomingStreamRequestContext, IncomingStreamRequestDisposition, IncomingStreamRequestFilter,
6
};
7

            
8
/// Filter callback used to enforce early requirements on streams,
9
/// acting as an [`IncomingStreamRequestFilter`].
10
#[derive(Clone, Debug, Default)]
11
pub(crate) struct RequestFilter {
12
    // TODO(relay): implement
13
}
14

            
15
impl IncomingStreamRequestFilter for RequestFilter {
16
    fn disposition(
17
        &mut self,
18
        _ctx: &IncomingStreamRequestContext<'_>,
19
        _circ: &CircHopSyncView<'_>,
20
    ) -> tor_proto::Result<IncomingStreamRequestDisposition> {
21
        // TODO(relay): enforce the checks mentioned in relay-streams.md
22
        Ok(IncomingStreamRequestDisposition::Accept)
23
    }
24
}