1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
use std::net::SocketAddr; use crate::server::swap_cmd::SwapCmd; use super::conf::Conf; use super::packet::Packet; use super::sled_db::DB; use super::peer_address::{update_peer_address, get_peer_address}; use super::cache_send::BatchSave; use crate::client::cache_rec::RecMsg; use crate::client::cache_task::TaskSave; pub fn ask_peer_address(peer_id: &str) -> anyhow::Result<()> { let conf = Conf::get(); update_peer_address("".to_string()); let send_data = SwapCmd::ask(peer_id); let s = &conf.swap_server; let address: SocketAddr = s.parse()?; DB::Task.task_save(address, &send_data); Ok(()) } pub fn read_peer_address() -> anyhow::Result<SocketAddr> { let res = get_peer_address(); let addr: SocketAddr = res.parse()?; Ok(addr) } pub fn send(msg: &Vec<u8>, address: SocketAddr) -> u32 { let conf = Conf::get(); let (sess, pacs) = Packet::new_pacs_from_send_bytes(msg); let total = &pacs.len(); let lower = conf.min_retry_len as usize; if total > &lower { DB::Send.batch_save(address, &pacs.to_owned()); } for pac in pacs.iter() { DB::Task.task_save(address, &pac.to_bytes()); } sess } pub fn rec_one(address: SocketAddr, sess: u32) -> Vec<u8> { DB::Rec.rec_one(address, sess) } pub fn rec_from() -> (SocketAddr, Vec<u8>) { DB::Rec.rec_from() }