This commit is contained in:
Ferdinand Schober
2024-07-12 01:29:03 +02:00
parent 39d6a3cace
commit 73a57ee892
4 changed files with 4 additions and 5 deletions

View File

@@ -108,7 +108,6 @@ impl LibeiEmulation {
let stream = UnixStream::from(eifd); let stream = UnixStream::from(eifd);
stream.set_nonblocking(true)?; stream.set_nonblocking(true)?;
let context = ei::Context::new(stream)?; let context = ei::Context::new(stream)?;
context.flush().map_err(|e| io::Error::new(e.kind(), e))?;
let mut events = EiEventStream::new(context.clone())?; let mut events = EiEventStream::new(context.clone())?;
let handshake = ei_handshake( let handshake = ei_handshake(
&mut events, &mut events,

View File

@@ -152,7 +152,7 @@ impl Server {
// create dns resolver // create dns resolver
let resolver = DnsResolver::new().await?; let resolver = DnsResolver::new().await?;
let resolver = resolver_task::new(resolver, dns_rx, self.clone(), frontend_tx); let resolver = resolver_task::new(self.clone(), resolver, dns_rx, frontend_tx);
// frontend listener // frontend listener
let frontend = frontend_task::new( let frontend = frontend_task::new(

View File

@@ -35,14 +35,14 @@ pub(crate) fn new(
resolve_ch: Sender<DnsRequest>, resolve_ch: Sender<DnsRequest>,
port_tx: Sender<u16>, port_tx: Sender<u16>,
) -> JoinHandle<()> { ) -> JoinHandle<()> {
let request = request_tx.clone(); let request_tx = request_tx.clone();
tokio::task::spawn_local(async move { tokio::task::spawn_local(async move {
let mut join_handles = vec![]; let mut join_handles = vec![];
loop { loop {
tokio::select! { tokio::select! {
stream = frontend.accept() => { stream = frontend.accept() => {
match stream { match stream {
Ok(s) => join_handles.push(handle_frontend_stream(server.clone(), &request, s)), Ok(s) => join_handles.push(handle_frontend_stream(server.clone(), &request_tx, s)),
Err(e) => log::warn!("error accepting frontend connection: {e}"), Err(e) => log::warn!("error accepting frontend connection: {e}"),
}; };
} }

View File

@@ -16,9 +16,9 @@ pub struct DnsRequest {
} }
pub fn new( pub fn new(
server: Server,
resolver: DnsResolver, resolver: DnsResolver,
dns_rx: Receiver<DnsRequest>, dns_rx: Receiver<DnsRequest>,
server: Server,
frontend: Sender<FrontendEvent>, frontend: Sender<FrontendEvent>,
) -> JoinHandle<()> { ) -> JoinHandle<()> {
tokio::task::spawn_local(async move { tokio::task::spawn_local(async move {