1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2021 年 8 月 31 日

#16#netfilter


用于 rsmnl-linux

自定义许可证

84KB
1K SLoC

rslmnl

一个模仿 libmnl 的纯 Rust netlink 库。倾向于成为 crslmnl 的继任者,并且(我认为)更加 Rust 风格。

示例

查看示例,也可以查看 rsmnl-linux 的

差异

  • nlmsghdr 可以用两种方式表示,通过其角色

    • msgvec::Header 用于写入(放置属性)。你可以设置 nlmsg_ 成员,但不能设置 nlmsg_len,这由 put 函数处理。

    • nlmsg::Msghdr 用于读取(获取属性)。你不能处理可变的一个,只能从回调中获取它。

    我认为你无法直接指定 msgvec::Header 类型。

  • 属性验证是在获取值时进行的,而不是在解析时。因为 get fn (value(), value_ref()..)。是模仿原始的 get_..._safe()。

  • 没有特定的批处理结构。使用 msgvec::MsgVec,类似于原始的批处理结构,来构建 nlmsg。

  • 要放置属性,请使用 MesVec.put(),而不是 Nlmsg.put()

依赖项