Skip to content

Commit 56ee8b6

Browse files
committed
Use latest rust-netlink crates
Signed-off-by: Gris Ge <[email protected]>
1 parent c3055a9 commit 56ee8b6

File tree

5 files changed

+34
-37
lines changed

5 files changed

+34
-37
lines changed

Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ description = "linux audit via netlink"
1313
[dependencies]
1414
futures = "0.3.11"
1515
thiserror = "1"
16-
netlink-packet-audit = { version = "0.4.1" }
17-
netlink-proto = { default-features = false, version = "0.10.0" }
16+
netlink-packet-audit = { version = "0.5.0" }
17+
netlink-packet-core = { version = "0.5.0" }
18+
netlink-proto = { default-features = false, version = "0.11.1" }
1819

1920
[features]
2021
default = ["tokio_socket"]

examples/add_rules.rs

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,32 +23,31 @@ async fn main() -> Result<(), String> {
2323
}
2424

2525
async fn add_rules(mut handle: Handle) -> Result<(), Error> {
26-
let etc_passwd_rule = RuleMessage {
27-
flags: RuleFlags::FilterExit,
28-
action: RuleAction::Always,
29-
fields: vec![
30-
(
31-
RuleField::Watch("/etc/passwd".into()),
32-
RuleFieldFlags::Equal,
33-
),
34-
(RuleField::Perm(15), RuleFieldFlags::Equal),
35-
(RuleField::Filterkey("my_key".into()), RuleFieldFlags::Equal),
36-
],
37-
syscalls: RuleSyscalls::new_maxed(),
38-
};
26+
let mut etc_passwd_rule = RuleMessage::default();
27+
etc_passwd_rule.flags = RuleFlags::FilterExit;
28+
etc_passwd_rule.action = RuleAction::Always;
29+
etc_passwd_rule.fields = vec![
30+
(
31+
RuleField::Watch("/etc/passwd".into()),
32+
RuleFieldFlags::Equal,
33+
),
34+
(RuleField::Perm(15), RuleFieldFlags::Equal),
35+
(RuleField::Filterkey("my_key".into()), RuleFieldFlags::Equal),
36+
];
37+
etc_passwd_rule.syscalls = RuleSyscalls::new_maxed();
3938
handle.add_rule(etc_passwd_rule).await?;
4039

4140
let mut syscalls = RuleSyscalls::new_zeroed();
4241
syscalls.set(135);
43-
let personality_syscall_rule = RuleMessage {
44-
flags: RuleFlags::FilterExit,
45-
action: RuleAction::Always,
46-
fields: vec![
47-
(RuleField::Arch(AUDIT_ARCH_X86_64), RuleFieldFlags::Equal),
48-
(RuleField::Filterkey("bypass".into()), RuleFieldFlags::Equal),
49-
],
50-
syscalls,
51-
};
42+
let mut personality_syscall_rule = RuleMessage::default();
43+
personality_syscall_rule.flags = RuleFlags::FilterExit;
44+
personality_syscall_rule.action = RuleAction::Always;
45+
personality_syscall_rule.fields = vec![
46+
(RuleField::Arch(AUDIT_ARCH_X86_64), RuleFieldFlags::Equal),
47+
(RuleField::Filterkey("bypass".into()), RuleFieldFlags::Equal),
48+
];
49+
personality_syscall_rule.syscalls = syscalls;
50+
5251
handle.add_rule(personality_syscall_rule).await?;
5352
Ok(())
5453
}

src/errors.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
use thiserror::Error;
44

5-
use crate::packet::{AuditMessage, ErrorMessage, NetlinkMessage};
5+
use crate::packet::AuditMessage;
6+
use netlink_packet_core::{ErrorMessage, NetlinkMessage};
67

78
#[derive(Clone, Eq, PartialEq, Debug, Error)]
89
pub enum Error {

src/handle.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ use futures::{
77
stream::{Stream, StreamExt, TryStream},
88
FutureExt,
99
};
10+
use netlink_packet_core::{
11+
NetlinkMessage, NetlinkPayload, NLM_F_ACK, NLM_F_CREATE, NLM_F_DUMP, NLM_F_EXCL, NLM_F_NONREC,
12+
NLM_F_REQUEST,
13+
};
1014
use netlink_proto::{sys::SocketAddr, ConnectionHandle};
1115

12-
use crate::packet::{
13-
rules::RuleMessage, AuditMessage, NetlinkMessage, NetlinkPayload, StatusMessage, NLM_F_ACK,
14-
NLM_F_CREATE, NLM_F_DUMP, NLM_F_EXCL, NLM_F_NONREC, NLM_F_REQUEST,
15-
};
16+
use crate::packet::{rules::RuleMessage, AuditMessage, StatusMessage};
1617

1718
// ==========================================
1819
// mask values

src/lib.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ mod errors;
77
pub use crate::errors::*;
88

99
pub use netlink_packet_audit as packet;
10+
use netlink_packet_core::NetlinkMessage;
1011
pub mod proto {
1112
pub use netlink_proto::{Connection, ConnectionHandle, Error};
1213
}
@@ -21,10 +22,7 @@ use futures::channel::mpsc::UnboundedReceiver;
2122
pub fn new_connection() -> io::Result<(
2223
proto::Connection<packet::AuditMessage, sys::TokioSocket, packet::NetlinkAuditCodec>,
2324
Handle,
24-
UnboundedReceiver<(
25-
packet::NetlinkMessage<packet::AuditMessage>,
26-
sys::SocketAddr,
27-
)>,
25+
UnboundedReceiver<(NetlinkMessage<packet::AuditMessage>, sys::SocketAddr)>,
2826
)> {
2927
new_connection_with_socket()
3028
}
@@ -33,10 +31,7 @@ pub fn new_connection() -> io::Result<(
3331
pub fn new_connection_with_socket<S>() -> io::Result<(
3432
proto::Connection<packet::AuditMessage, S, packet::NetlinkAuditCodec>,
3533
Handle,
36-
UnboundedReceiver<(
37-
packet::NetlinkMessage<packet::AuditMessage>,
38-
sys::SocketAddr,
39-
)>,
34+
UnboundedReceiver<(NetlinkMessage<packet::AuditMessage>, sys::SocketAddr)>,
4035
)>
4136
where
4237
S: sys::AsyncSocket,

0 commit comments

Comments
 (0)