3个不稳定版本

使用旧的Rust 2015

0.2.1 2018年2月26日
0.2.0 2017年6月2日
0.1.0 2017年4月11日

#10 in #netfilter

自定义许可

220KB
4K SLoC

crslmnl

libmnl的Rust封装。

示例

查看示例

需要

  • libmnl - C语言libmnl库
  • Rust gcc
  • 示例
    • Rust时间
    • Rust mio
    • Rust pnet

Stack Overflow

感谢 Shepmaster

比较

原始 crslmnl 备注
mnl_attr_get_type Attr.atype
mnl_attr_get_len Attr.len
mnl_attr_get_payload_len Attr.payload_len
mnl_attr_get_payload Attr.payload
mnl_attr_get_payload Attr.payload_mut
mnl_attr_ok Attr.ok
mnl_attr_next Attr.next
mnl_attr_type_valid Attr.type_valid
mnl_attr_validate Attr.validate
mnl_attr_validate2 Attr.validate2
mnl_attr_parse Attr.parse
(添加) Attr.cl_parse
mnl_attr_parse_nested Attr.parse_nested
(添加) Attr.cl_parse_nested
mnl_attr_parse_payload parse_attrs
(添加) cl_parse_attrs
mnl_attr_get_u8 Attr.u8
mnl_attr_get_u16 Attr.u16
mnl_attr_get_u32 Attr.u32
mnl_attr_get_u64 Attr.u64
mnl_attr_get_str Attr.str
(添加) Attr.string
mnl_attr_put Nlmsg.put_raw
mnl_attr_put_u8 Nlmsg.put_u8_raw
mnl_attr_put_u16 Nlmsg.put_u16_raw
mnl_attr_put_u32 Nlmsg.put_u32_raw
mnl_attr_put_u64 Nlmsg.put_u64_raw
mnl_attr_put_str Nlmsg.put_str_raw
mnl_attr_put_strz Nlmsg.put_strz_raw
mnl_attr_put_check Nlmsg.put
mnl_attr_put_u8_check Nlmsg.put_u8
mnl_attr_put_u16_check Nlmsg.put_u16
mnl_attr_put_u32_check Nlmsg.put_u32
mnl_attr_put_u64_check Nlmsg.put_u64
mnl_attr_put_str_check Nlmsg.put_str
mnl_attr_put_strz_check Nlmsg.put_strz
mnl_attr_nest_start Nlmsg.nest_start_raw
mnl_attr_nest_start_check Nlmsg.nest_start
mnl_attr_nest_end Nlmsg.nest_end
mnl_attr_nest_cancel Nlmsg.nest_cancel
------------------------------------- ----------------------------- -----------------------------
mnl_nlmsg_size Nlmsg::size
mnl_nlmsg_get_payload_len Nlmsg.payload_len
mnl_nlmsg_put_header Nlmsg::new
mnl_nlmsg_put_header Nlmsg.put_header_raw
(添加) Nlmsg.put_header_check
mnl_nlmsg_put_extra_header Nlmsg.put_extra_header_raw
(添加) Nlmsg.put_sized_header
(添加) Nlmsg.put_sized_header_raw
(添加) Nlmsg.put_sized_header
mnl_nlmsg_get_paylod Nlmsg.payload
mnl_nlmsg_get_paylod Nlmsg.payload_mut
mnl_nlmsg_get_payload_offset Nlmsg.payload_offset
mnl_nlmsg_get_payload_offset Nlmsg.payload_offset_mut
mnl_nlmsg_ok Nlmsg.ok
mnl_nlmsg_next Nlmsg.next
mnl_nlmsg_get_payload_tail Nlmsg.payload_tail
mnl_nlmsg_get_payload_tail Nlmsg.payload_tail_mut
mnl_nlmsg_seq_ok Nlmsg.seq_ok
mnl_nlmsg_portid_ok Nlmsg.portid_ok
mnl_nlmsg_fprintf Nlmsg.fprintf
mnl_nlmsg_batch_start NlmsgBatch::start
mnl_nlmsg_batch_stop NlmsgBatch.drop
mnl_nlmsg_batch_next NlmsgBatch.next
mnl_nlmsg_batch_reset NlmsgBatch.reset
mnl_nlmsg_batch_size NlmsgBatch.size
mnl_nlmsg_batch_head NlmsgBatch.head
当前mnl_nlmsg_batch NlmsgBatch当前
(添加) NlmsgBatch当前nlmsg
mnl_nlmsg_batch_is_empty NlmsgBatch是否为空
------------------------------------- ----------------------------- -----------------------------
mnl_cb_run cb_run
mnl_cb_run2 cb_run2
(添加) cl_run 闭包而非回调
(添加) cl_run2 闭包而非回调
------------------------------------- ----------------------------- -----------------------------
mnl_socket_get_fd Socket.as_raw_fd
mnl_socket_get_portid Socket.portid
mnl_socket_open Socket::open
mnl_socket_open2 Socket::open2
mnl_socket_fdopen Socket::fdopen
mnl_socket_bind Socket.bind
mnl_socket_sendto Socket.sendto
(添加) Socket.send_nlmsg
(添加) Socket.send_batch
mnl_socket_recvfrom Socket.recvfrom
mnl_socket_close Socket.close
mnl_socket_setsockopt Socket.setsockopt
mnl_socket_getsockopt Socket.getsockopt
------------------------------------- ----------------------------- -----------------------------
mnl_attr_for_each Nlmsg.attrs
mnl_attr_for_each_nested Attr.nesteds
------------------------------------- ----------------------------- -----------------------------
(添加) NlmsgIterator
(添加) 为NlmsgBatch的迭代器

依赖项