diff --git a/aya-log/src/lib.rs b/aya-log/src/lib.rs index 92880562..333ddcc9 100644 --- a/aya-log/src/lib.rs +++ b/aya-log/src/lib.rs @@ -61,7 +61,7 @@ use std::{ fmt::{LowerHex, UpperHex}, mem, net::{Ipv4Addr, Ipv6Addr}, - os::fd::AsRawFd, + os::fd::{AsFd, AsRawFd}, ptr, str, }; @@ -98,6 +98,16 @@ pub struct EbpfLogger { logger: T, } +impl AsFd for EbpfLogger { + fn as_fd(&self) -> std::os::fd::BorrowedFd<'_> { + let Self { + ring_buf, + logger: _, + } = self; + ring_buf.as_fd() + } +} + impl AsRawFd for EbpfLogger { fn as_raw_fd(&self) -> std::os::unix::prelude::RawFd { let Self { diff --git a/xtask/public-api/aya-log.txt b/xtask/public-api/aya-log.txt index 08995428..47e000d8 100644 --- a/xtask/public-api/aya-log.txt +++ b/xtask/public-api/aya-log.txt @@ -71,6 +71,8 @@ impl aya_log::EbpfLogger pub fn aya_log::EbpfLogger::flush(&mut self) pub fn aya_log::EbpfLogger::init_from_id_with_logger(program_id: u32, logger: T) -> core::result::Result pub fn aya_log::EbpfLogger::init_with_logger(bpf: &mut aya::bpf::Ebpf, logger: T) -> core::result::Result +impl std::os::fd::owned::AsFd for aya_log::EbpfLogger +pub fn aya_log::EbpfLogger::as_fd(&self) -> std::os::fd::owned::BorrowedFd<'_> impl std::os::fd::raw::AsRawFd for aya_log::EbpfLogger pub fn aya_log::EbpfLogger::as_raw_fd(&self) -> std::os::fd::raw::RawFd impl core::marker::Freeze for aya_log::EbpfLogger where T: core::marker::Freeze