diff --git a/dnp3/src/tcp/outstation/server.rs b/dnp3/src/tcp/outstation/server.rs index 5bafc506..76346f84 100644 --- a/dnp3/src/tcp/outstation/server.rs +++ b/dnp3/src/tcp/outstation/server.rs @@ -11,7 +11,7 @@ use crate::tcp::server_task::{NewSession, ServerTask}; use crate::tcp::{AddressFilter, FilterError, ServerHandle}; use crate::util::channel::Sender; use crate::util::phys::{PhysAddr, PhysLayer}; -use crate::util::session::{Enabled, Session}; +use crate::util::session::Enabled; use crate::util::shutdown::ShutdownListener; use std::net::SocketAddr; use tracing::Instrument; @@ -108,7 +108,7 @@ impl Server { control_handler, ); - let (mut adapter, tx) = ServerTask::create(Session::outstation(task), listener); + let (mut adapter, tx) = ServerTask::create(task, listener); let outstation = OutstationInfo { filter, diff --git a/dnp3/src/tcp/outstation/server_task.rs b/dnp3/src/tcp/outstation/server_task.rs index e01b9a17..05c1049f 100644 --- a/dnp3/src/tcp/outstation/server_task.rs +++ b/dnp3/src/tcp/outstation/server_task.rs @@ -1,10 +1,11 @@ use tracing::Instrument; use crate::app::{Listener, Shutdown}; +use crate::outstation::task::OutstationTask; use crate::outstation::ConnectionState; use crate::util::channel::{request_channel, Receiver, Sender}; use crate::util::phys::PhysLayer; -use crate::util::session::{Enabled, RunError, Session, StopReason}; +use crate::util::session::{Enabled, RunError, StopReason}; /// message that gets sent to OutstationTaskAdapter when /// it needs to switch to a new session @@ -20,23 +21,23 @@ impl NewSession { } } -/// Wraps a session allowing it to receive new physical layers from a server component +/// Wraps an outstation task allowing it to receive new physical layers from a server component pub(crate) struct ServerTask { receiver: Receiver, - session: Session, + task: OutstationTask, listener: Box>, } impl ServerTask { pub(crate) fn create( - session: Session, + task: OutstationTask, listener: Box>, ) -> (Self, Sender) { let (tx, rx) = request_channel(); ( Self { receiver: rx, - session, + task, listener, }, tx, @@ -49,7 +50,7 @@ impl ServerTask { session = self.receiver.receive() => { return session; } - ret = self.session.process_next_message() => { + ret = self.task.process_next_message() => { if let Err(StopReason::Shutdown) = ret { return Err(Shutdown); } @@ -60,7 +61,7 @@ impl ServerTask { async fn run_one_session(&mut self, io: &mut PhysLayer) -> Result { tokio::select! { - res = self.session.run(io) => { + res = self.task.run(io) => { Err(res) } // a new connection cancels the session.run() future above; this relies on @@ -111,7 +112,7 @@ impl ServerTask { session.replace(self.wait_for_session().await?); } Some(s) => { - if self.session.enabled() == Enabled::Yes { + if self.task.enabled() == Enabled::Yes { if let Some(s) = self.run_new_session(s).await? { session.replace(s); }