debuging
This commit is contained in:
parent
726e30610d
commit
0654985a2f
@ -3,6 +3,8 @@ use crate::utils::Result;
|
|||||||
use super::packet::Packet;
|
use super::packet::Packet;
|
||||||
use byteorder::{BigEndian, ByteOrder};
|
use byteorder::{BigEndian, ByteOrder};
|
||||||
|
|
||||||
|
use tracing::{debug, error};
|
||||||
|
|
||||||
use serde_repr::*;
|
use serde_repr::*;
|
||||||
|
|
||||||
use crate::utils::*;
|
use crate::utils::*;
|
||||||
@ -263,6 +265,12 @@ pub fn encode_packet<T: serde::Serialize>(cmn: &Common, pkt: &T) -> Result<Vec<u
|
|||||||
// body
|
// body
|
||||||
let body = serde_json::to_vec(pkt)?;
|
let body = serde_json::to_vec(pkt)?;
|
||||||
|
|
||||||
|
debug!(
|
||||||
|
"body({}): {}",
|
||||||
|
body.len(),
|
||||||
|
std::str::from_utf8(&body).unwrap()
|
||||||
|
);
|
||||||
|
|
||||||
let mut result = Vec::with_capacity(2 + hdr.len() + body.len());
|
let mut result = Vec::with_capacity(2 + hdr.len() + body.len());
|
||||||
let total_size = (hdr.len() + body.len()) as u16;
|
let total_size = (hdr.len() + body.len()) as u16;
|
||||||
// insert total size
|
// insert total size
|
||||||
@ -274,6 +282,9 @@ pub fn encode_packet<T: serde::Serialize>(cmn: &Common, pkt: &T) -> Result<Vec<u
|
|||||||
// insert body
|
// insert body
|
||||||
result.extend_from_slice(&body);
|
result.extend_from_slice(&body);
|
||||||
|
|
||||||
|
debug!("enocded packet size: {}", result.len());
|
||||||
|
debug!("encoded packet: {:?}", result);
|
||||||
|
|
||||||
Ok(result)
|
Ok(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -285,11 +296,15 @@ pub fn decode_common<'a>(value: &'a [u8]) -> Result<(Common<'a>, &'a [u8])> {
|
|||||||
let size_bytes = value[0..2].try_into().expect("never goes here");
|
let size_bytes = value[0..2].try_into().expect("never goes here");
|
||||||
let size = u16::from_be_bytes(size_bytes);
|
let size = u16::from_be_bytes(size_bytes);
|
||||||
if value.len() < 2 + size as usize {
|
if value.len() < 2 + size as usize {
|
||||||
|
error!("decode pkt header error: {}: {}", value.len(), 2 + size);
|
||||||
return Err(SDLanError::NormalError("decode pkt header size error"));
|
return Err(SDLanError::NormalError("decode pkt header size error"));
|
||||||
}
|
}
|
||||||
|
|
||||||
let value2 = &value[2..2 + size as usize];
|
let value2 = &value[2..2 + size as usize];
|
||||||
let (cmn, value2) = Common::from_slice(value2)?;
|
let Ok((cmn, value2)) = Common::from_slice(value2) else {
|
||||||
|
error!("failed to decode common");
|
||||||
|
return Err(SDLanError::NormalError("failed to deocde common"));
|
||||||
|
};
|
||||||
Ok((cmn, value2))
|
Ok((cmn, value2))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::peer::SdlanSock;
|
use crate::peer::{SdlanSock, V6Info};
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
pub struct PeerInfo {
|
pub struct PeerInfo {
|
||||||
@ -9,4 +9,5 @@ pub struct PeerInfo {
|
|||||||
pub src_ip: u32,
|
pub src_ip: u32,
|
||||||
pub dst_ip: u32,
|
pub dst_ip: u32,
|
||||||
pub sock: SdlanSock,
|
pub sock: SdlanSock,
|
||||||
|
pub v6_info: Option<V6Info>,
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,7 +10,7 @@ pub struct RegisterSuperACK {
|
|||||||
pub dev_addr: IpSubnetNonAtomic,
|
pub dev_addr: IpSubnetNonAtomic,
|
||||||
|
|
||||||
// sock info
|
// sock info
|
||||||
pub sock: SdlanSock,
|
pub sock: Option<SdlanSock>,
|
||||||
|
|
||||||
// 头加密aes,rsa加密之后
|
// 头加密aes,rsa加密之后
|
||||||
pub header_key: Vec<u8>,
|
pub header_key: Vec<u8>,
|
||||||
|
|||||||
@ -3,4 +3,5 @@ use serde::{Deserialize, Serialize};
|
|||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
pub struct RegisterSuperNAK {
|
pub struct RegisterSuperNAK {
|
||||||
pub cookie: u32,
|
pub cookie: u32,
|
||||||
|
pub src_ip: u32,
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user