mirror of
https://github.com/edera-dev/krata.git
synced 2025-08-05 14:11:32 +00:00
network: utilize bytes crate
This commit is contained in:
@ -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 {
|
||||
|
Reference in New Issue
Block a user