From b06338ec1d282a762440ad72c935717e404badca Mon Sep 17 00:00:00 2001 From: Hristo Venev Date: Tue, 2 Apr 2019 15:56:06 +0300 Subject: Reorg, sources have names. --- src/proto.rs | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) (limited to 'src/proto.rs') diff --git a/src/proto.rs b/src/proto.rs index 86c7eee..9c98fff 100644 --- a/src/proto.rs +++ b/src/proto.rs @@ -2,8 +2,7 @@ // // See COPYING. -use crate::ip::{Ipv4Net, Ipv6Net}; -use crate::model::{Endpoint, Key}; +use crate::model::{Endpoint, Ipv4Net, Ipv6Net, Key}; use serde_derive; use std::time::SystemTime; @@ -11,9 +10,9 @@ use std::time::SystemTime; #[derive(serde_derive::Serialize, serde_derive::Deserialize, Clone, PartialEq, Eq, Debug)] pub struct Peer { pub public_key: Key, - #[serde(default = "Vec::new")] + #[serde(default)] pub ipv4: Vec, - #[serde(default = "Vec::new")] + #[serde(default)] pub ipv6: Vec, } @@ -23,7 +22,7 @@ pub struct Server { #[serde(flatten)] pub peer: Peer, pub endpoint: Endpoint, - #[serde(default = "default_peer_keepalive")] + #[serde(default)] pub keepalive: u32, } @@ -37,9 +36,9 @@ pub struct RoadWarrior { #[derive(serde_derive::Serialize, serde_derive::Deserialize, Clone, PartialEq, Eq, Debug)] pub struct SourceConfig { - #[serde(default = "Vec::new")] + #[serde(default)] pub servers: Vec, - #[serde(default = "Vec::new")] + #[serde(default)] pub road_warriors: Vec, } @@ -58,13 +57,19 @@ pub struct Source { pub next: Option, } -#[inline] -fn default_peer_keepalive() -> u32 { - 0 +impl Source { + pub fn empty() -> Source { + Source { + config: SourceConfig { + servers: vec![], + road_warriors: vec![], + }, + next: None, + } + } } mod serde_utc { - use crate::bin; use chrono::{DateTime, SecondsFormat, TimeZone, Utc}; use serde::*; use std::fmt; @@ -77,8 +82,8 @@ mod serde_utc { } else { let mut buf = [0u8; 12]; let (buf_secs, buf_nanos) = mut_array_refs![&mut buf, 8, 4]; - *buf_secs = bin::i64_to_be(t.timestamp()); - *buf_nanos = bin::u32_to_be(t.timestamp_subsec_nanos()); + *buf_secs = t.timestamp().to_be_bytes(); + *buf_nanos = t.timestamp_subsec_nanos().to_be_bytes(); ser.serialize_bytes(&buf) } } @@ -103,8 +108,8 @@ mod serde_utc { } else { let mut buf = <[u8; 12]>::deserialize(de)?; let (buf_secs, buf_nanos) = array_refs![&mut buf, 8, 4]; - let secs = bin::i64_from_be(*buf_secs); - let nanos = bin::u32_from_be(*buf_nanos); + let secs = i64::from_be_bytes(*buf_secs); + let nanos = u32::from_be_bytes(*buf_nanos); Ok(Utc.timestamp(secs, nanos).into()) } } -- cgit