diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-08-14 01:47:21 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-08-14 01:47:21 +0200 |
commit | 94146e8c5e2f465bd48854edf4695bca6d0645a1 (patch) | |
tree | 1f9765a6cd4356807e00bf6be7f0a930a66394a1 | |
parent | e5c7ea6dacb32d38580b10c67b30cf25b2fe9687 (diff) |
do weird local ipv6 tunnel address swap
-rw-r--r-- | netlinkd_sys/Cargo.toml | 2 | ||||
-rw-r--r-- | netlinkd_sys/src/tunnel.rs | 9 |
2 files changed, 9 insertions, 2 deletions
diff --git a/netlinkd_sys/Cargo.toml b/netlinkd_sys/Cargo.toml index 815d03a..73bc125 100644 --- a/netlinkd_sys/Cargo.toml +++ b/netlinkd_sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rsdsl_netlinkd_sys" -version = "0.4.0" +version = "0.4.1" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/netlinkd_sys/src/tunnel.rs b/netlinkd_sys/src/tunnel.rs index 0de6f51..264b06f 100644 --- a/netlinkd_sys/src/tunnel.rs +++ b/netlinkd_sys/src/tunnel.rs @@ -72,11 +72,18 @@ impl IpIp6 { let tnlname = CString::new(name)?.into_raw(); let ifmaster = CString::new(master)?.into_raw(); + let mut loctets = laddr.octets(); + + loctets.swap(0, 12); + loctets.swap(1, 13); + loctets.swap(2, 14); + loctets.swap(3, 15); + let err = unsafe { internal::netlinkd_create_4in6( tnlname, ifmaster, - &laddr.octets() as *const u8, + &loctets as *const u8, &raddr.octets() as *const u8, ) }; |