All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Added: for new features.
- Changed: for changes in existing functionality.
- Deprecated: for soon-to-be removed features.
- Removed: for now removed features.
- Fixed: for any bug fixes.
- Security: in case of vulnerabilities.
- Upgrade the err-derive dependency to 0.3.0.
- Implement Send+Sync for Table, Chain, Rule, Batch and Iter (batch iterator).
- Add
Nat
expression allowing SNat and DNat rules.
- Add
Register
enum and a register field to theImmediate
expression. Allowing control over which netfilter register the immediate data is loaded into
- Fix memory leak in
table::get_tables_cb
.
- Add support for matching on socket UID and socket GID in
Meta
expressions.
- Mark
Meta
and many payload enums as#[non_exhaustive]
. Allows adding more expressions without a breaking release in the future. - Increase minimum supported rust version to 1.40 due to
#[non_exhaustive]
.
- Add
Reject
verdict for responding with ICMP packets or TCP RST to the origin.
- Add
ChainType
and allow setting a chain to either filter, route or nat type. - Add support for reading and setting marks in the
Meta
andConntrack
expressions. - Add support for reading the cgroup via the
Meta
expression. - Add
Immediate
expression type that can load data into the registers. - Add support for masquerading.
- Implement
Debug
forChain
.
- Change
get_tables_nlmsg
to include all tables, not only inet tables, but also arp, ip, ip6, bridge etc.
- Fix compilation errors on ARM64 platforms.
- Set
NFTNL_CHAIN_FAMILY
for chains and other fixes making the library compatible with older kernels.
- Add support for checking ICMPv6 header fields.
- Add
add-get-tables-request
that can create requests to enumerate tables. - Add bindings to
libnftnl-1.1.2
.
- Upgrade crates to Rust 2018 edition.
- Remove the
error-chain
dependency. Now aborts on allocation error.
- Bindings to
libnftnl
versions1.0.6
through1.1.1
- Initial safe abstraction. Support for batches, tables, chains, rules and sets. All with a limited set of expression types.