network: utilize bytes crate

This commit is contained in:
Alex Zenla
2024-02-12 17:01:47 +00:00
parent ddeab7610d
commit 341907a536
10 changed files with 86 additions and 65 deletions

View File

@ -1,5 +1,6 @@
use async_trait::async_trait;
use bytes::BytesMut;
use log::warn;
use tokio::sync::mpsc::channel;
@ -16,6 +17,8 @@ mod icmp;
mod tcp;
mod udp;
const RX_CHANNEL_BOUND: usize = 300;
pub struct ProxyNatHandlerFactory {}
impl Default for ProxyNatHandlerFactory {
@ -35,7 +38,7 @@ impl NatHandlerFactory for ProxyNatHandlerFactory {
async fn nat(&self, context: NatHandlerContext) -> Option<Box<dyn NatHandler>> {
match context.key.protocol {
NatKeyProtocol::Udp => {
let (rx_sender, rx_receiver) = channel::<Vec<u8>>(4);
let (rx_sender, rx_receiver) = channel::<BytesMut>(RX_CHANNEL_BOUND);
let mut handler = ProxyUdpHandler::new(rx_sender);
if let Err(error) = handler.spawn(context, rx_receiver).await {
@ -47,7 +50,7 @@ impl NatHandlerFactory for ProxyNatHandlerFactory {
}
NatKeyProtocol::Icmp => {
let (rx_sender, rx_receiver) = channel::<Vec<u8>>(300);
let (rx_sender, rx_receiver) = channel::<BytesMut>(RX_CHANNEL_BOUND);
let mut handler = ProxyIcmpHandler::new(rx_sender);
if let Err(error) = handler.spawn(context, rx_receiver).await {
@ -59,7 +62,7 @@ impl NatHandlerFactory for ProxyNatHandlerFactory {
}
NatKeyProtocol::Tcp => {
let (rx_sender, rx_receiver) = channel::<Vec<u8>>(300);
let (rx_sender, rx_receiver) = channel::<BytesMut>(RX_CHANNEL_BOUND);
let mut handler = ProxyTcpHandler::new(rx_sender);
if let Err(error) = handler.spawn(context, rx_receiver).await {