aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-07-29 17:57:03 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-07-29 17:57:03 +0200
commit2cab7f2dfa335e49506e2c2ed1b2bd482efabaf0 (patch)
treea61401c2702e1ef8e547eecb54519bd7412a42a6
parente13adb9cc9367ad93f1e947335b0d56108015999 (diff)
pppoe2 compatible format0.2.0
-rw-r--r--Cargo.toml2
-rw-r--r--src/lib.rs38
2 files changed, 34 insertions, 6 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 8f27f7b..31131e4 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -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
diff --git a/src/lib.rs b/src/lib.rs
index 65e6080..84ac666 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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,
}
}
}