62 lines
1.5 KiB
Rust
62 lines
1.5 KiB
Rust
// DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
// Version 2, December 2004
|
|
//
|
|
// Copyleft (ↄ) meh. <[email protected]> | http://meh.schizofreni.co
|
|
//
|
|
// Everyone is permitted to copy and distribute verbatim or modified
|
|
// copies of this license document, and changing it is allowed as long
|
|
// as the name is changed.
|
|
//
|
|
// DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
// TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
//
|
|
// 0. You just DO WHAT THE FUCK YOU WANT TO.
|
|
|
|
//! Platform specific modules.
|
|
|
|
#[cfg(unix)]
|
|
pub mod posix;
|
|
|
|
#[cfg(target_os = "linux")]
|
|
pub mod linux;
|
|
#[cfg(target_os = "linux")]
|
|
pub use self::linux::{create, Configuration, Device, Queue};
|
|
|
|
#[cfg(target_os = "macos")]
|
|
pub mod macos;
|
|
#[cfg(target_os = "macos")]
|
|
pub use self::macos::{create, Configuration, Device, Queue};
|
|
|
|
|
|
#[cfg(test)]
|
|
mod test {
|
|
use crate::configuration::Configuration;
|
|
use crate::device::Device;
|
|
use std::net::Ipv4Addr;
|
|
|
|
#[test]
|
|
fn create() {
|
|
let dev = super::create(
|
|
Configuration::default()
|
|
.name("utun6")
|
|
.address("192.168.50.1")
|
|
.netmask("255.255.0.0")
|
|
.mtu(1400)
|
|
.up(),
|
|
)
|
|
.unwrap();
|
|
|
|
assert_eq!(
|
|
"192.168.50.1".parse::<Ipv4Addr>().unwrap(),
|
|
dev.address().unwrap()
|
|
);
|
|
|
|
assert_eq!(
|
|
"255.255.0.0".parse::<Ipv4Addr>().unwrap(),
|
|
dev.netmask().unwrap()
|
|
);
|
|
|
|
assert_eq!(1400, dev.mtu().unwrap());
|
|
}
|
|
}
|