mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-05-07 18:24:36 +00:00
Add support for IPv6 within VPN (#1061)
* add flake.nix with nix based dev shell * add support for IPv6 * update thunk --------- Co-authored-by: sijie.sun <sijie.sun@smartx.com>
This commit is contained in:
@@ -65,6 +65,8 @@ message Route {
|
||||
optional uint32 next_hop_peer_id_latency_first = 12;
|
||||
optional int32 cost_latency_first = 13;
|
||||
optional int32 path_latency_latency_first = 14;
|
||||
|
||||
common.Ipv6Inet ipv6_addr = 15;
|
||||
}
|
||||
|
||||
message PeerRoutePair {
|
||||
|
||||
@@ -139,6 +139,11 @@ message Ipv4Inet {
|
||||
uint32 network_length = 2;
|
||||
}
|
||||
|
||||
message Ipv6Inet {
|
||||
Ipv6Addr address = 1;
|
||||
uint32 network_length = 2;
|
||||
}
|
||||
|
||||
message Url { string url = 1; }
|
||||
|
||||
message SocketAddr {
|
||||
|
||||
@@ -131,6 +131,41 @@ impl FromStr for Ipv4Inet {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<cidr::Ipv6Inet> for Ipv6Inet {
|
||||
fn from(value: cidr::Ipv6Inet) -> Self {
|
||||
Ipv6Inet {
|
||||
address: Some(value.address().into()),
|
||||
network_length: value.network_length() as u32,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Ipv6Inet> for cidr::Ipv6Inet {
|
||||
fn from(value: Ipv6Inet) -> Self {
|
||||
cidr::Ipv6Inet::new(
|
||||
value.address.unwrap_or_default().into(),
|
||||
value.network_length as u8,
|
||||
)
|
||||
.unwrap()
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for Ipv6Inet {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
write!(f, "{}", cidr::Ipv6Inet::from(self.clone()))
|
||||
}
|
||||
}
|
||||
|
||||
impl FromStr for Ipv6Inet {
|
||||
type Err = anyhow::Error;
|
||||
|
||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||
Ok(Ipv6Inet::from(
|
||||
cidr::Ipv6Inet::from_str(s).with_context(|| "Failed to parse Ipv6Inet")?,
|
||||
))
|
||||
}
|
||||
}
|
||||
|
||||
impl From<url::Url> for Url {
|
||||
fn from(value: url::Url) -> Self {
|
||||
Url {
|
||||
|
||||
@@ -24,6 +24,7 @@ message RoutePeerInfo {
|
||||
uint32 network_length = 13;
|
||||
|
||||
optional uint32 quic_port = 14;
|
||||
optional common.Ipv6Inet ipv6_addr = 15;
|
||||
}
|
||||
|
||||
message PeerIdVersion {
|
||||
|
||||
Reference in New Issue
Block a user