Skip to content

Commit 22c8f78

Browse files
committed
programs: allow program names to be static strings
1 parent 73a34e1 commit 22c8f78

File tree

2 files changed

+6
-9
lines changed

2 files changed

+6
-9
lines changed

aya/src/bpf.rs

+1-5
Original file line numberDiff line numberDiff line change
@@ -519,11 +519,7 @@ impl<'a> EbpfLoader<'a> {
519519
.map(|(name, prog_obj)| {
520520
let function_obj = obj.functions.get(&prog_obj.function_key()).unwrap().clone();
521521

522-
let prog_name = if FEATURES.bpf_name() {
523-
Some(name.clone())
524-
} else {
525-
None
526-
};
522+
let prog_name = FEATURES.bpf_name().then(|| name.clone().into());
527523
let section = prog_obj.section.clone();
528524
let obj = (prog_obj, function_obj);
529525

aya/src/programs/mod.rs

+5-4
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ pub mod uprobe;
7171
pub mod xdp;
7272

7373
use std::{
74+
borrow::Cow,
7475
ffi::CString,
7576
io,
7677
os::fd::{AsFd, BorrowedFd},
@@ -493,7 +494,7 @@ impl Program {
493494

494495
#[derive(Debug)]
495496
pub(crate) struct ProgramData<T: Link> {
496-
pub(crate) name: Option<String>,
497+
pub(crate) name: Option<Cow<'static, str>>,
497498
pub(crate) obj: Option<(aya_obj::Program, aya_obj::Function)>,
498499
pub(crate) fd: Option<ProgramFd>,
499500
pub(crate) links: Links<T>,
@@ -509,7 +510,7 @@ pub(crate) struct ProgramData<T: Link> {
509510

510511
impl<T: Link> ProgramData<T> {
511512
pub(crate) fn new(
512-
name: Option<String>,
513+
name: Option<Cow<'static, str>>,
513514
obj: (aya_obj::Program, aya_obj::Function),
514515
btf_fd: Option<Arc<crate::MockableFd>>,
515516
verifier_log_level: VerifierLogLevel,
@@ -531,7 +532,7 @@ impl<T: Link> ProgramData<T> {
531532
}
532533

533534
pub(crate) fn from_bpf_prog_info(
534-
name: Option<String>,
535+
name: Option<Cow<'static, str>>,
535536
fd: crate::MockableFd,
536537
path: &Path,
537538
info: bpf_prog_info,
@@ -576,7 +577,7 @@ impl<T: Link> ProgramData<T> {
576577
})?;
577578

578579
let info = ProgramInfo::new_from_fd(fd.as_fd())?;
579-
let name = info.name_as_str().map(|s| s.to_string());
580+
let name = info.name_as_str().map(ToOwned::to_owned).map(Into::into);
580581
Self::from_bpf_prog_info(name, fd, path.as_ref(), info.0, verifier_log_level)
581582
}
582583
}

0 commit comments

Comments
 (0)