Implement Wireguard
Implements Wireguard
This commit is contained in:
parent
60257b256a
commit
b008762a5b
59 changed files with 3824 additions and 529 deletions
|
|
@ -1,7 +1,6 @@
|
|||
use std::{io::Error, mem::size_of, os::unix::io::AsRawFd};
|
||||
|
||||
use fehler::throws;
|
||||
use std::io::Error;
|
||||
use std::mem::size_of;
|
||||
use std::os::unix::io::AsRawFd;
|
||||
|
||||
use super::sys;
|
||||
|
||||
|
|
@ -16,10 +15,7 @@ pub trait SysControlSocket {
|
|||
impl SysControlSocket for socket2::Socket {
|
||||
#[throws]
|
||||
fn resolve(&self, name: &str, index: u32) -> socket2::SockAddr {
|
||||
let mut info = sys::ctl_info {
|
||||
ctl_id: 0,
|
||||
ctl_name: [0; 96],
|
||||
};
|
||||
let mut info = sys::ctl_info { ctl_id: 0, ctl_name: [0; 96] };
|
||||
info.ctl_name[..name.len()].copy_from_slice(name.as_bytes());
|
||||
|
||||
unsafe { sys::resolve_ctl_info(self.as_raw_fd(), &mut info as *mut sys::ctl_info)? };
|
||||
|
|
@ -28,7 +24,7 @@ impl SysControlSocket for socket2::Socket {
|
|||
socket2::SockAddr::init(|addr_storage, len| {
|
||||
*len = size_of::<sys::sockaddr_ctl>() as u32;
|
||||
|
||||
let mut addr: &mut sys::sockaddr_ctl = &mut *addr_storage.cast();
|
||||
let addr: &mut sys::sockaddr_ctl = &mut *addr_storage.cast();
|
||||
addr.sc_len = *len as u8;
|
||||
addr.sc_family = sys::AF_SYSTEM as u8;
|
||||
addr.ss_sysaddr = sys::AF_SYS_CONTROL as u16;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue