add makefile

This commit is contained in:
Jett Chen 2023-12-17 01:20:56 +08:00
parent 60257b256a
commit 6339b6bc4b
39 changed files with 3145 additions and 248 deletions

View file

@ -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;