Commit 53b6474b authored by nanamicat's avatar nanamicat

fix

parent ffc4001f
Pipeline #42005 passed with stages
in 32 seconds
...@@ -5,7 +5,7 @@ use crate::router::Router; ...@@ -5,7 +5,7 @@ use crate::router::Router;
use crate::server::Server; use crate::server::Server;
use crate::settings::{Settings, INTERVAL}; use crate::settings::{Settings, INTERVAL};
use config::Config; use config::Config;
use std::collections::HashMap; use std::collections::BTreeMap;
use std::fs; use std::fs;
use std::time::SystemTime; use std::time::SystemTime;
use tokio::net::UdpSocket; use tokio::net::UdpSocket;
...@@ -24,8 +24,8 @@ mod settings; ...@@ -24,8 +24,8 @@ mod settings;
async fn main() -> anyhow::Result<()> { async fn main() -> anyhow::Result<()> {
let config: Settings = Config::builder().add_source(config::Environment::default()).build()?.try_deserialize()?; let config: Settings = Config::builder().add_source(config::Environment::default()).build()?.try_deserialize()?;
let routers_data = serde_json::from_slice::<Vec<RouterData>>(&fs::read("import/data/Router.json")?)?; let routers_data = serde_json::from_slice::<Vec<RouterData>>(&fs::read("import/data/Router.json")?)?;
let mut routers: HashMap<u8, Router> = routers_data.iter().map(|r| (r.id, Router::new(r, &config))).collect(); let mut routers: BTreeMap<u8, Router> = routers_data.iter().map(|r| (r.id, Router::new(r, &config))).collect();
let connections = serde_json::from_slice::<HashMap<u8, HashMap<u8, Connection>>>(&fs::read("import/connections.json")?)?; let connections = serde_json::from_slice::<BTreeMap<u8, BTreeMap<u8, Connection>>>(&fs::read("import/connections.json")?)?;
// let groups: Vec<GatewayGroup> = serde_json::from_slice(&fs::read("import/GatewayGroup.json")?)?; // let groups: Vec<GatewayGroup> = serde_json::from_slice(&fs::read("import/GatewayGroup.json")?)?;
let mut server = Server::new( let mut server = Server::new(
...@@ -33,7 +33,7 @@ async fn main() -> anyhow::Result<()> { ...@@ -33,7 +33,7 @@ async fn main() -> anyhow::Result<()> {
// groups // groups
// .iter() // .iter()
// .map(|g| (g.id, g.routers(&groups, &routers_data))) // .map(|g| (g.id, g.routers(&groups, &routers_data)))
// .collect::<HashMap<u16, HashSet<u8>>>(), // .collect::<BTreeMap<u16, HashSet<u8>>>(),
); );
let mut hello = Hello { time: 0 }; let mut hello = Hello { time: 0 };
......
...@@ -2,7 +2,7 @@ use crate::data::Router as RouterData; ...@@ -2,7 +2,7 @@ use crate::data::Router as RouterData;
use crate::protocol::{Hello, PeerQuality}; use crate::protocol::{Hello, PeerQuality};
use crate::settings::{Settings, HISTORY, INTERVAL, TIMEOUT}; use crate::settings::{Settings, HISTORY, INTERVAL, TIMEOUT};
use average::Mean; use average::Mean;
use std::collections::HashMap; use std::collections::BTreeMap;
use std::net::{IpAddr, SocketAddr}; use std::net::{IpAddr, SocketAddr};
use std::time::SystemTime; use std::time::SystemTime;
...@@ -15,7 +15,7 @@ pub struct Router { ...@@ -15,7 +15,7 @@ pub struct Router {
} }
impl Router { impl Router {
pub fn get(routers: &mut HashMap<u8, Router>, link_address: SocketAddr) -> Option<&mut Router> { pub fn get(routers: &mut BTreeMap<u8, Router>, link_address: SocketAddr) -> Option<&mut Router> {
match link_address { match link_address {
SocketAddr::V4(addr) => { SocketAddr::V4(addr) => {
let id = addr.ip().octets()[2]; let id = addr.ip().octets()[2];
......
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