1use event::AgentServerEvent;
2use tokio::sync::mpsc::Sender;
3use tracing::error;
4
5mod codec;
6pub mod command;
7pub mod config;
8mod crypto;
9mod error;
10pub mod event;
11pub mod log;
12mod proxy;
13pub mod server;
14mod tunnel;
15
16pub const SOCKS_V5: u8 = 5;
17pub const SOCKS_V4: u8 = 4;
18
19pub async fn publish_server_event(
20 server_event_tx: &Sender<AgentServerEvent>,
21 event: AgentServerEvent,
22) {
23 if server_event_tx.is_closed() {
24 return;
25 }
26 if let Err(e) = server_event_tx.send(event).await {
27 error!("Fail to publish server event because of error: {e:?}");
28 }
29}