clean comments

This commit is contained in:
2026-04-03 12:06:58 +07:00
parent b90083539c
commit e53a95692e
18 changed files with 100 additions and 258 deletions
+3 -20
View File
@@ -1,6 +1,6 @@
use bytes::Bytes;
use std::net::Ipv4Addr;
// Добавили импорт логгеров для детального трейсинга
use netrunner_logger::{debug, trace};
use crate::{
@@ -11,16 +11,11 @@ use crate::{
pub struct RawCastAdapter;
impl RawCastAdapter {
/// Перевод из RawCast (от локального TUN/smoltcp) в NRXP (в ядро/сеть)
pub(crate) fn to_nrxp(raw: RawCastFrame) -> Result<Frame, String> {
// Кастим ID сокета
let stream_id = raw.socket_id as u32;
let (frame_type, payload) = match (raw.protocol, raw.event) {
// Открытие TCP соединения
(LocalProtocol::Tcp, RawCastEvent::Connect) => {
// Если payload не пустой (ConnectionManager положил туда домен) - используем его.
// Иначе фоллбэк: собираем из сырого IP и порта.
let final_payload = if !raw.payload.is_empty() {
raw.payload
} else {
@@ -35,9 +30,8 @@ impl RawCastAdapter {
(FrameType::Connect, final_payload)
}
// Открытие UDP сессии
(LocalProtocol::Udp, RawCastEvent::Connect) => {
// Аналогичная логика защиты переданного таргета для UDP
let final_payload = if !raw.payload.is_empty() {
raw.payload
} else {
@@ -53,31 +47,23 @@ impl RawCastAdapter {
(FrameType::UdpConnect, final_payload)
}
// Передача данных (TCP)
(LocalProtocol::Tcp, RawCastEvent::Data) => (FrameType::Data, raw.payload),
// Передача данных (UDP)
(LocalProtocol::Udp, RawCastEvent::Data) => (FrameType::UdpData, raw.payload),
// Закрытие соединения (одинаково для TCP и UDP)
(_, RawCastEvent::Close) => {
trace!("🧩 [Adapter] Stream {}: Packing Close frame", stream_id);
(FrameType::Close, Bytes::new())
}
// ICMP пока не поддерживается в NRXP, отбрасываем
(LocalProtocol::Icmp, _) => {
return Err("ICMP protocol is not supported by NRXP core".into());
}
};
// Используем твой новый удобный конструктор Frame!
Ok(Frame::new(stream_id, frame_type, payload))
}
/// Перевод из NRXP (от сервера) обратно в RawCast (в smoltcp)
///
/// ВАЖНО: Так как NRXP Frame не содержит IP и Port (только stream_id),
/// локальный клиент должен помнить, какому stream_id какой IP/Port принадлежит.
pub(crate) fn from_nrxp(
nrxp_frame: Frame,
dst_ip: Ipv4Addr,
@@ -92,7 +78,6 @@ impl RawCastAdapter {
};
let event = match nrxp_frame.header.frame_type {
// Сервер прислал успешный коннект
FrameType::Connect | FrameType::UdpConnect => {
trace!(
"🧩 [Adapter] Stream {}: Unpacked Connect Ack from server",
@@ -101,10 +86,8 @@ impl RawCastAdapter {
RawCastEvent::Connect
}
// Сервер прислал данные
FrameType::Data | FrameType::UdpData => RawCastEvent::Data,
// Сервер закрыл соединение
FrameType::Close => {
trace!(
"🧩 [Adapter] Stream {}: Unpacked Close signal from server",
-1
View File
@@ -93,7 +93,6 @@ impl Parser for RawCastFrame {
return false;
}
// читаем длину payload без сдвига буфера
let payload_len_pos = LOCAL_HEADER_SIZE;
let payload_len =
u16::from_be_bytes([bytes[payload_len_pos], bytes[payload_len_pos + 1]]) as usize;