Commit 70f6dc3a authored by nanahira's avatar nanahira

ext

parent 9f7e5412
Pipeline #39789 passed with stages
in 1 minute and 48 seconds
......@@ -11,8 +11,8 @@ use std::sync::Arc;
#[repr(C)]
pub struct Meta {
pub src_id: u8,
pub dst_id: u8,
pub src_id: u16,
pub dst_id: u16,
pub reversed: u16,
}
......@@ -20,7 +20,7 @@ use serde::Deserialize;
#[derive(Deserialize)]
pub struct ConfigRouter {
pub remote_id: u8,
pub remote_id: u16,
pub proto: i32,
pub family: u8,
pub mark: u32,
......@@ -32,7 +32,7 @@ pub struct ConfigRouter {
#[derive(Deserialize)]
pub struct Config {
pub local_id: u8,
pub local_id: u16,
pub local_secret: String,
pub routers: Vec<ConfigRouter>,
}
......@@ -45,14 +45,14 @@ fn main() -> Result<(), Box<dyn Error>> {
let config: Config = serde_json::from_str(env::args().nth(1).ok_or("need param")?.as_str())?;
let local_secret: [u8; SECRET_LENGTH] = Router::create_secret(config.local_secret.as_str())?;
let mut sockets: HashMap<u16, Arc<Socket>> = HashMap::new();
let routers: HashMap<u8, Router> = config
let routers: HashMap<u16, Router> = config
.routers
.iter()
.map(|c| Router::new(c, &mut sockets).map(|router| (c.remote_id, router)))
.collect::<Result<_, _>>()?;
let (mut router_readers, router_writers): (
HashMap<u8, RouterReader>,
HashMap<u8, RouterWriter>,
HashMap<u16, RouterReader>,
HashMap<u16, RouterWriter>,
) = routers
.into_iter()
.map(|(id, router)| {
......@@ -60,7 +60,7 @@ fn main() -> Result<(), Box<dyn Error>> {
((id, reader), (id, writer))
})
.unzip();
let router_writers3: Vec<(Arc<Socket>, HashMap<u8, RouterWriter>)> = router_writers
let router_writers3: Vec<(Arc<Socket>, HashMap<u16, RouterWriter>)> = router_writers
.into_iter()
.grouping_by(|(_, v)| v.key())
.into_iter()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment