diff options
-rw-r--r-- | Cargo.toml | 2 | ||||
-rw-r--r-- | src/lib.rs | 38 |
2 files changed, 34 insertions, 6 deletions
@@ -1,6 +1,6 @@ [package] name = "rsdsl_ip_config" -version = "0.1.0" +version = "0.2.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -1,24 +1,52 @@ -use std::net::Ipv4Addr; +use std::net::{Ipv4Addr, Ipv6Addr}; use serde::{Deserialize, Serialize}; pub const LOCATION: &str = "/tmp/pppoe.ip_config"; #[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)] -pub struct IpConfig { +pub struct Ipv4Config { pub addr: Ipv4Addr, pub dns1: Ipv4Addr, pub dns2: Ipv4Addr, - pub rtr: Ipv4Addr, } -impl Default for IpConfig { +impl Default for Ipv4Config { fn default() -> Self { Self { addr: Ipv4Addr::UNSPECIFIED, dns1: Ipv4Addr::UNSPECIFIED, dns2: Ipv4Addr::UNSPECIFIED, - rtr: Ipv4Addr::UNSPECIFIED, + } + } +} + +#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)] +pub struct Ipv6Config { + pub laddr: Ipv6Addr, + pub raddr: Ipv6Addr, +} + +impl Default for Ipv6Config { + fn default() -> Self { + Self { + laddr: Ipv6Addr::UNSPECIFIED, + raddr: Ipv6Addr::UNSPECIFIED, + } + } +} + +#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] +pub struct Ipv6Lease { + pub prefix: Ipv6Addr, + pub aftr: Option<String>, +} + +impl Default for Ipv6Lease { + fn default() -> Self { + Self { + prefix: Ipv6Addr::UNSPECIFIED, + aftr: None, } } } |