mirror of
https://github.com/telemt/telemt.git
synced 2026-05-23 12:11:44 +03:00
Fix hot-path replay bounds and ME control allocations
Signed-off-by: Alexey <247128645+axkurcom@users.noreply.github.com>
This commit is contained in:
@@ -9,6 +9,7 @@ use crate::protocol::constants::*;
|
||||
pub(crate) enum WriterCommand {
|
||||
Data(Bytes),
|
||||
DataAndFlush(Bytes),
|
||||
ControlAndFlush([u8; 12]),
|
||||
Close,
|
||||
}
|
||||
|
||||
@@ -42,6 +43,13 @@ pub(crate) fn rpc_crc(mode: RpcChecksumMode, data: &[u8]) -> u32 {
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn build_control_payload(tag: u32, value: u64) -> [u8; 12] {
|
||||
let mut payload = [0u8; 12];
|
||||
payload[..4].copy_from_slice(&tag.to_le_bytes());
|
||||
payload[4..].copy_from_slice(&value.to_le_bytes());
|
||||
payload
|
||||
}
|
||||
|
||||
pub(crate) fn build_rpc_frame(seq_no: i32, payload: &[u8], crc_mode: RpcChecksumMode) -> Vec<u8> {
|
||||
let total_len = (4 + 4 + payload.len() + 4) as u32;
|
||||
let mut frame = Vec::with_capacity(total_len as usize);
|
||||
|
||||
Reference in New Issue
Block a user