From 7cc685e50004f4995857f7c71c286aa27a882615 Mon Sep 17 00:00:00 2001 From: xmh0511 <970252187@qq.com> Date: Thu, 29 Aug 2024 16:48:36 +0800 Subject: [PATCH] mac address --- src/device.rs | 3 +++ src/platform/freebsd/device.rs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/device.rs b/src/device.rs index 3c0ce7c2..ebe963c7 100644 --- a/src/device.rs +++ b/src/device.rs @@ -18,6 +18,9 @@ use crate::IntoAddress; #[allow(unused_imports)] use std::net::IpAddr; +#[cfg(target_family = "unix")] +#[allow(dead_code)] +pub(crate) const ETHER_ADDR_LEN: u8 = 6; /// A TUN abstract device interface. pub trait AbstractDevice { /// Get the device tun name. diff --git a/src/platform/freebsd/device.rs b/src/platform/freebsd/device.rs index aff9919d..25b13087 100644 --- a/src/platform/freebsd/device.rs +++ b/src/platform/freebsd/device.rs @@ -446,7 +446,7 @@ impl AbstractDevice for Device { let mut req = self.request()?; let mut sa_data = [0i8; 14]; req.ifr_ifru.ifru_addr.sa_len = ETHER_ADDR_LEN; - req.ifr_ifru.ifru_addr.sa_family = AF_LINK; + req.ifr_ifru.ifru_addr.sa_family = AF_LINK as u8; req.ifr_ifru.ifru_addr.sa_data[0..ETHER_ADDR_LEN] .copy_from_slice(eth_addr.map(|c| c as i8).as_slice()); if let Err(err) = siocsiflladdr(self.ctl.as_raw_fd(), &mut req) {