From 42b18a7a2b9c9981147b8372ac2fe03a81930696 Mon Sep 17 00:00:00 2001 From: Eray Date: Sun, 31 Dec 2023 10:08:17 +0300 Subject: [PATCH] feat: refactor tcp stream --- .github/workflows/dcp.yml | 2 +- dcp/src/io/client.rs | 6 ++---- dcp/src/io/packet.rs | 10 +++++----- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/.github/workflows/dcp.yml b/.github/workflows/dcp.yml index 5a3921a..fa1d852 100644 --- a/.github/workflows/dcp.yml +++ b/.github/workflows/dcp.yml @@ -36,7 +36,7 @@ jobs: - name: Test DCP run: | - cargo test --package dcp-rs --test integration_test -- --exact --nocapture + cargo test --release --package dcp-rs --test integration_test -- --exact --nocapture env: RUST_LOG: debug CB_VERSION: ${{ matrix.version }} \ No newline at end of file diff --git a/dcp/src/io/client.rs b/dcp/src/io/client.rs index eccb25d..e2480a5 100644 --- a/dcp/src/io/client.rs +++ b/dcp/src/io/client.rs @@ -2,7 +2,7 @@ use crate::dcp_io::consts::PacketCallback; use crate::dcp_io::packet::Packet; use std::collections::HashMap; use std::io; -use std::io::{BufReader, Write}; +use std::io::Write; use std::net::TcpStream; use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::Mutex; @@ -51,11 +51,9 @@ impl Client { pub fn start(&self) -> io::Result<()> { let tcp_stream = self.tcp_stream.lock().unwrap().try_clone()?; - let mut reader: BufReader<&TcpStream> = BufReader::new(&tcp_stream); - self.running.store(true, Ordering::Relaxed); while self.running.load(Ordering::Relaxed) { - let packet = Packet::from_buffer(&mut reader); + let packet = Packet::from_buffer(&tcp_stream); if packet.is_err() { self.running.store(false, Ordering::Relaxed); return Err(io::Error::new( diff --git a/dcp/src/io/packet.rs b/dcp/src/io/packet.rs index 605e6d5..d4eccde 100644 --- a/dcp/src/io/packet.rs +++ b/dcp/src/io/packet.rs @@ -8,7 +8,7 @@ use crate::dcp_io::utils::{ use byteorder::{BigEndian, ByteOrder, WriteBytesExt}; use std::fmt::{Display, Formatter}; use std::io; -use std::io::{BufReader, Read, Write}; +use std::io::{Read, Write}; use std::net::TcpStream; pub struct BarrierFrame {} @@ -130,7 +130,7 @@ impl Default for Packet { } impl Packet { - pub fn from_buffer(reader: &mut BufReader<&TcpStream>) -> io::Result { + pub fn from_buffer(mut reader: &TcpStream) -> io::Result { let mut packet: Packet = Default::default(); let mut header_buf = [0u8; 24]; @@ -158,11 +158,11 @@ impl Packet { packet.command = header_buf[1]; packet.datatype = header_buf[5]; - packet.opaque = BigEndian::read_u32(&mut header_buf[12..]); - packet.cas = BigEndian::read_u64(&mut header_buf[16..]); + packet.opaque = BigEndian::read_u32(&header_buf[12..]); + packet.cas = BigEndian::read_u64(&header_buf[16..]); let ext_len = header_buf[4]; - let mut key_len = BigEndian::read_u16(&mut header_buf[2..]) as i32; + let mut key_len = BigEndian::read_u16(&header_buf[2..]) as i32; let mut frames_len: usize = 0; if pkt_magic == CMD_MAGIC_REQ_EXT || pkt_magic == CMD_MAGIC_RES_EXT {