diff --git a/bpf/aya-bpf/src/programs/sk_msg.rs b/bpf/aya-bpf/src/programs/sk_msg.rs index 8a1a9201..44dbb3f8 100644 --- a/bpf/aya-bpf/src/programs/sk_msg.rs +++ b/bpf/aya-bpf/src/programs/sk_msg.rs @@ -15,6 +15,10 @@ impl SkMsgContext { SkMsgContext { msg } } + pub fn size(&self) -> u32 { + unsafe { (*self.msg).size } + } + pub fn data(&self) -> usize { unsafe { (*self.msg).__bindgen_anon_1.data as usize } } @@ -23,12 +27,22 @@ impl SkMsgContext { unsafe { (*self.msg).__bindgen_anon_2.data_end as usize } } - pub fn push_data(&self, start: u32, len: u32, flags: u64) -> i64 { - unsafe { bpf_msg_push_data(self.msg, start, len as u32, flags) } + pub fn push_data(&self, start: u32, len: u32, flags: u64) -> Result<(), i64> { + let ret = unsafe { bpf_msg_push_data(self.msg, start, len as u32, flags) }; + if ret == 0 { + Ok(()) + } else { + Err(ret) + } } - pub fn pop_data(&self, start: u32, len: u32, flags: u64) -> i64 { - unsafe { bpf_msg_pop_data(self.msg, start, len as u32, flags) } + pub fn pop_data(&self, start: u32, len: u32, flags: u64) -> Result<(), i64> { + let ret = unsafe { bpf_msg_pop_data(self.msg, start, len as u32, flags) }; + if ret == 0 { + Ok(()) + } else { + Err(ret) + } } }