summaryrefslogtreecommitdiffstats
path: root/external/meta-openembedded/meta-networking/recipes-filter
diff options
context:
space:
mode:
authortakeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp>2020-11-02 11:07:33 +0900
committertakeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp>2020-11-02 11:07:33 +0900
commit1c7d6584a7811b7785ae5c1e378f14b5ba0971cf (patch)
treecd70a267a5ef105ba32f200aa088e281fbd85747 /external/meta-openembedded/meta-networking/recipes-filter
parent4204309872da5cb401cbb2729d9e2d4869a87f42 (diff)
recipes
Diffstat (limited to 'external/meta-openembedded/meta-networking/recipes-filter')
-rw-r--r--external/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.1.0.bb (renamed from external/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.1g.bb)8
-rw-r--r--external/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.6.bb (renamed from external/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb)4
-rw-r--r--external/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb2
-rw-r--r--external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch26
-rw-r--r--external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch88
-rw-r--r--external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.8.bb (renamed from external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.6.bb)7
-rw-r--r--external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.3.bb (renamed from external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb)4
-rw-r--r--external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch289
-rw-r--r--external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch (renamed from external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch)350
-rw-r--r--external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.7.bb (renamed from external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.1.bb)7
-rw-r--r--external/meta-openembedded/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb2
-rw-r--r--external/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.0.bb20
-rw-r--r--external/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.5.bb31
13 files changed, 306 insertions, 532 deletions
diff --git a/external/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.1g.bb b/external/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.1.0.bb
index 6fd0affd..115353fe 100644
--- a/external/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.1g.bb
+++ b/external/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.1.0.bb
@@ -4,12 +4,10 @@ HOMEPAGE = "http://rocky.eld.leidenuniv.nl/joomla/index.php?option=com_content&v
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://gpl_license.txt;md5=11c7b65c4a4acb9d5175f7e9bf99c403"
-SRC_URI = "http://rocky.eld.leidenuniv.nl/arno-iptables-firewall/${BPN}_${PV}.tar.gz \
- "
-SRC_URI[md5sum] = "77eba7f148bf2840a3e35a6f50c9c353"
-SRC_URI[sha256sum] = "0bafd85ddc235752250eaec0c7fdb21e530912483f6807a97f86158ed2d301f7"
+SRCREV = "39276d14b659684c4c0612725ab83ea841c6ef99"
+SRC_URI = "git://github.com/arno-iptables-firewall/aif"
-S = "${WORKDIR}/${BPN}_${PV}"
+S = "${WORKDIR}/git"
inherit systemd
diff --git a/external/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb b/external/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.6.bb
index 46168b0b..ad50a89a 100644
--- a/external/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb
+++ b/external/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.6.bb
@@ -12,8 +12,8 @@ SRC_URI = "http://www.netfilter.org/projects/conntrack-tools/files/conntrack-too
file://conntrack-failover \
file://init \
"
-SRC_URI[tar.md5sum] = "acd9e0b27cf16ae3092ba900e4d7560e"
-SRC_URI[tar.sha256sum] = "b7caf4fcc4c03575df57d25e5216584d597fd916c891f191dac616ce68bdba6c"
+SRC_URI[tar.md5sum] = "a9dc7567921213007def78ad72313109"
+SRC_URI[tar.sha256sum] = "590859cc848245dbfd9c6487761dd303b3a1771e007f4f42213063ca56205d5f"
inherit autotools update-rc.d pkgconfig
diff --git a/external/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb b/external/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
index f05bd615..27678400 100644
--- a/external/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
+++ b/external/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
@@ -12,6 +12,8 @@ RDEPENDS_${PN} += "bash"
RRECOMMENDS_${PN} += "kernel-module-ebtables \
"
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/ebtables/files/ebtables/"
+
SRC_URI = "${SOURCEFORGE_MIRROR}/ebtables/ebtables-v${PV}.tar.gz \
file://ebtables-save \
file://installnonroot.patch \
diff --git a/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch b/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch
deleted file mode 100644
index 76d2d5d2..00000000
--- a/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 32af64e1811c74292891dc4dc8455736f7d33ccf Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 30 Mar 2017 13:26:56 -0700
-Subject: [PATCH] Correct typo in the location of internal.h in #include
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/libnetfilter_queue.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/libnetfilter_queue.c b/src/libnetfilter_queue.c
-index 211a8ba..065d618 100644
---- a/src/libnetfilter_queue.c
-+++ b/src/libnetfilter_queue.c
-@@ -32,7 +32,7 @@
-
- #include <libnfnetlink/libnfnetlink.h>
- #include <libnetfilter_queue/libnetfilter_queue.h>
--#include "src/internal.h"
-+#include "internal.h"
-
- /**
- * \mainpage
---
-2.12.1
-
diff --git a/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch b/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch
index 946f1b71..aa9ff09a 100644
--- a/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch
+++ b/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch
@@ -1,4 +1,4 @@
-From 06562244ac4a1a61e1a2c6b219a517658f7349bf Mon Sep 17 00:00:00 2001
+From db7eb5f0a4e78c6bd3c4f9cbd8332d909eb82ad6 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 10 Apr 2017 12:09:41 -0700
Subject: [PATCH] Declare the define visivility attribute together
@@ -9,16 +9,17 @@ symbols become hidden and consumers of this library
fail to link due to these missing symbols
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
doxygen.cfg.in | 2 +-
- src/extra/ipv4.c | 15 +++----
+ src/extra/ipv4.c | 15 ++----
src/extra/ipv6.c | 9 ++--
- src/extra/pktbuff.c | 42 ++++++------------
- src/extra/tcp.c | 21 +++------
- src/extra/udp.c | 21 +++------
- src/internal.h | 5 +--
- src/libnetfilter_queue.c | 108 ++++++++++++++++-------------------------------
- src/nlmsg.c | 21 +++------
+ src/extra/pktbuff.c | 42 +++++----------
+ src/extra/tcp.c | 21 +++-----
+ src/extra/udp.c | 21 +++-----
+ src/internal.h | 5 +-
+ src/libnetfilter_queue.c | 108 +++++++++++++--------------------------
+ src/nlmsg.c | 21 +++-----
9 files changed, 82 insertions(+), 162 deletions(-)
diff --git a/doxygen.cfg.in b/doxygen.cfg.in
@@ -592,7 +593,7 @@ index 558d267..79b0752 100644
struct iphdr;
diff --git a/src/libnetfilter_queue.c b/src/libnetfilter_queue.c
-index 065d618..ab0b66b 100644
+index 673e3b0..c12f068 100644
--- a/src/libnetfilter_queue.c
+++ b/src/libnetfilter_queue.c
@@ -133,8 +133,7 @@ struct nfq_data {
@@ -772,7 +773,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_set_queue_flags - set flags (options) for the kernel queue
-@@ -690,7 +678,7 @@ EXPORT_SYMBOL(nfq_set_mode);
+@@ -708,7 +696,7 @@ EXPORT_SYMBOL(nfq_set_mode);
*
* \return -1 on error with errno set appropriately; =0 otherwise.
*/
@@ -781,7 +782,7 @@ index 065d618..ab0b66b 100644
uint32_t mask, uint32_t flags)
{
union {
-@@ -711,7 +699,6 @@ int nfq_set_queue_flags(struct nfq_q_handle *qh,
+@@ -729,7 +717,6 @@ int nfq_set_queue_flags(struct nfq_q_handle *qh,
return nfnl_query(qh->h->nfnlh, &u.nmh);
}
@@ -789,7 +790,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_set_queue_maxlen - Set kernel queue maximum length parameter
-@@ -724,7 +711,7 @@ EXPORT_SYMBOL(nfq_set_queue_flags);
+@@ -742,7 +729,7 @@ EXPORT_SYMBOL(nfq_set_queue_flags);
*
* \return -1 on error; >=0 otherwise.
*/
@@ -798,7 +799,7 @@ index 065d618..ab0b66b 100644
uint32_t queuelen)
{
union {
-@@ -742,7 +729,6 @@ int nfq_set_queue_maxlen(struct nfq_q_handle *qh,
+@@ -760,7 +747,6 @@ int nfq_set_queue_maxlen(struct nfq_q_handle *qh,
return nfnl_query(qh->h->nfnlh, &u.nmh);
}
@@ -806,7 +807,7 @@ index 065d618..ab0b66b 100644
/**
* @}
-@@ -829,14 +815,13 @@ static int __set_verdict(struct nfq_q_handle *qh, uint32_t id,
+@@ -847,14 +833,13 @@ static int __set_verdict(struct nfq_q_handle *qh, uint32_t id,
*
* \return -1 on error; >= 0 otherwise.
*/
@@ -822,7 +823,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_set_verdict2 - like nfq_set_verdict, but you can set the mark.
-@@ -847,14 +832,13 @@ EXPORT_SYMBOL(nfq_set_verdict);
+@@ -865,14 +850,13 @@ EXPORT_SYMBOL(nfq_set_verdict);
* \param data_len number of bytes of data pointed to by #buf
* \param buf the buffer that contains the packet data
*/
@@ -838,7 +839,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_set_verdict_batch - issue verdicts on several packets at once
-@@ -868,13 +852,12 @@ EXPORT_SYMBOL(nfq_set_verdict2);
+@@ -886,13 +870,12 @@ EXPORT_SYMBOL(nfq_set_verdict2);
* batch support was added in Linux 3.1.
* These functions will fail silently on older kernels.
*/
@@ -853,7 +854,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_set_verdict_batch2 - like nfq_set_verdict_batch, but you can set a mark.
-@@ -883,13 +866,12 @@ EXPORT_SYMBOL(nfq_set_verdict_batch);
+@@ -901,13 +884,12 @@ EXPORT_SYMBOL(nfq_set_verdict_batch);
* \param verdict verdict to return to netfilter (NF_ACCEPT, NF_DROP)
* \param mark mark to put on packet
*/
@@ -868,7 +869,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_set_verdict_mark - like nfq_set_verdict, but you can set the mark.
-@@ -905,14 +887,13 @@ EXPORT_SYMBOL(nfq_set_verdict_batch2);
+@@ -923,14 +905,13 @@ EXPORT_SYMBOL(nfq_set_verdict_batch2);
* This function is deprecated since it is broken, its use is highly
* discouraged. Please, use nfq_set_verdict2 instead.
*/
@@ -884,7 +885,7 @@ index 065d618..ab0b66b 100644
/**
* @}
-@@ -947,12 +928,11 @@ EXPORT_SYMBOL(nfq_set_verdict_mark);
+@@ -965,12 +946,11 @@ EXPORT_SYMBOL(nfq_set_verdict_mark);
} __attribute__ ((packed));
\endverbatim
*/
@@ -898,7 +899,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_get_nfmark - get the packet mark
-@@ -960,11 +940,10 @@ EXPORT_SYMBOL(nfq_get_msg_packet_hdr);
+@@ -978,11 +958,10 @@ EXPORT_SYMBOL(nfq_get_msg_packet_hdr);
*
* \return the netfilter mark currently assigned to the given queued packet.
*/
@@ -911,7 +912,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_get_timestamp - get the packet timestamp
-@@ -975,7 +954,7 @@ EXPORT_SYMBOL(nfq_get_nfmark);
+@@ -993,7 +972,7 @@ EXPORT_SYMBOL(nfq_get_nfmark);
*
* \return 0 on success, non-zero on failure.
*/
@@ -920,7 +921,7 @@ index 065d618..ab0b66b 100644
{
struct nfqnl_msg_packet_timestamp *qpt;
qpt = nfnl_get_pointer_to_data(nfad->data, NFQA_TIMESTAMP,
-@@ -988,7 +967,6 @@ int nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv)
+@@ -1006,7 +985,6 @@ int nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv)
return 0;
}
@@ -928,7 +929,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_get_indev - get the interface that the packet was received through
-@@ -1001,11 +979,10 @@ EXPORT_SYMBOL(nfq_get_timestamp);
+@@ -1019,11 +997,10 @@ EXPORT_SYMBOL(nfq_get_timestamp);
* \warning all nfq_get_dev() functions return 0 if not set, since linux
* only allows ifindex >= 1, see net/core/dev.c:2600 (in 2.6.13.1)
*/
@@ -941,7 +942,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_get_physindev - get the physical interface that the packet was received
-@@ -1015,11 +992,10 @@ EXPORT_SYMBOL(nfq_get_indev);
+@@ -1033,11 +1010,10 @@ EXPORT_SYMBOL(nfq_get_indev);
* If the returned index is 0, the packet was locally generated or the
* physical input interface is no longer known (ie. POSTROUTING?).
*/
@@ -954,7 +955,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_get_outdev - gets the interface that the packet will be routed out
-@@ -1029,11 +1005,10 @@ EXPORT_SYMBOL(nfq_get_physindev);
+@@ -1047,11 +1023,10 @@ EXPORT_SYMBOL(nfq_get_physindev);
* returned index is 0, the packet is destined for localhost or the output
* interface is not yet known (ie. PREROUTING?).
*/
@@ -967,7 +968,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_get_physoutdev - get the physical interface that the packet output
-@@ -1045,11 +1020,10 @@ EXPORT_SYMBOL(nfq_get_outdev);
+@@ -1063,11 +1038,10 @@ EXPORT_SYMBOL(nfq_get_outdev);
*
* \return The index of physical interface that the packet output will be routed out.
*/
@@ -980,7 +981,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_get_indev_name - get the name of the interface the packet
-@@ -1089,13 +1063,12 @@ EXPORT_SYMBOL(nfq_get_physoutdev);
+@@ -1107,13 +1081,12 @@ EXPORT_SYMBOL(nfq_get_physoutdev);
\endverbatim
*
*/
@@ -995,7 +996,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_get_physindev_name - get the name of the physical interface the
-@@ -1109,13 +1082,12 @@ EXPORT_SYMBOL(nfq_get_indev_name);
+@@ -1127,13 +1100,12 @@ EXPORT_SYMBOL(nfq_get_indev_name);
*
* \return -1 in case of error, > 0 if it succeed.
*/
@@ -1010,7 +1011,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_get_outdev_name - get the name of the physical interface the
-@@ -1129,13 +1101,12 @@ EXPORT_SYMBOL(nfq_get_physindev_name);
+@@ -1147,13 +1119,12 @@ EXPORT_SYMBOL(nfq_get_physindev_name);
*
* \return -1 in case of error, > 0 if it succeed.
*/
@@ -1025,7 +1026,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_get_physoutdev_name - get the name of the interface the
-@@ -1150,13 +1121,12 @@ EXPORT_SYMBOL(nfq_get_outdev_name);
+@@ -1168,13 +1139,12 @@ EXPORT_SYMBOL(nfq_get_outdev_name);
* \return -1 in case of error, > 0 if it succeed.
*/
@@ -1040,7 +1041,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_get_packet_hw
-@@ -1180,12 +1150,11 @@ EXPORT_SYMBOL(nfq_get_physoutdev_name);
+@@ -1198,12 +1168,11 @@ EXPORT_SYMBOL(nfq_get_physoutdev_name);
} __attribute__ ((packed));
\endverbatim
*/
@@ -1054,7 +1055,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_get_uid - get the UID of the user the packet belongs to
-@@ -1193,7 +1162,7 @@ EXPORT_SYMBOL(nfq_get_packet_hw);
+@@ -1215,7 +1184,7 @@ EXPORT_SYMBOL(nfq_get_packet_hw);
*
* \return 1 if there is a UID available, 0 otherwise.
*/
@@ -1063,7 +1064,7 @@ index 065d618..ab0b66b 100644
{
if (!nfnl_attr_present(nfad->data, NFQA_UID))
return 0;
-@@ -1201,7 +1170,6 @@ int nfq_get_uid(struct nfq_data *nfad, uint32_t *uid)
+@@ -1223,7 +1192,6 @@ int nfq_get_uid(struct nfq_data *nfad, uint32_t *uid)
*uid = ntohl(nfnl_get_data(nfad->data, NFQA_UID, uint32_t));
return 1;
}
@@ -1071,7 +1072,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_get_gid - get the GID of the user the packet belongs to
-@@ -1209,7 +1177,7 @@ EXPORT_SYMBOL(nfq_get_uid);
+@@ -1235,7 +1203,7 @@ EXPORT_SYMBOL(nfq_get_uid);
*
* \return 1 if there is a GID available, 0 otherwise.
*/
@@ -1080,15 +1081,15 @@ index 065d618..ab0b66b 100644
{
if (!nfnl_attr_present(nfad->data, NFQA_GID))
return 0;
-@@ -1217,7 +1185,6 @@ int nfq_get_gid(struct nfq_data *nfad, uint32_t *gid)
+@@ -1243,7 +1211,6 @@ int nfq_get_gid(struct nfq_data *nfad, uint32_t *gid)
*gid = ntohl(nfnl_get_data(nfad->data, NFQA_GID, uint32_t));
return 1;
}
-EXPORT_SYMBOL(nfq_get_gid);
-
/**
-@@ -1227,7 +1194,7 @@ EXPORT_SYMBOL(nfq_get_gid);
+ * nfq_get_secctx - get the security context for this packet
+@@ -1256,7 +1223,7 @@ EXPORT_SYMBOL(nfq_get_gid);
*
* \return -1 on error, otherwise > 0
*/
@@ -1097,7 +1098,7 @@ index 065d618..ab0b66b 100644
{
if (!nfnl_attr_present(nfad->data, NFQA_SECCTX))
return -1;
-@@ -1240,7 +1207,6 @@ int nfq_get_secctx(struct nfq_data *nfad, unsigned char **secdata)
+@@ -1269,7 +1236,6 @@ int nfq_get_secctx(struct nfq_data *nfad, unsigned char **secdata)
return 0;
}
@@ -1105,7 +1106,7 @@ index 065d618..ab0b66b 100644
/**
* nfq_get_payload - get payload
-@@ -1253,7 +1219,7 @@ EXPORT_SYMBOL(nfq_get_secctx);
+@@ -1282,7 +1248,7 @@ EXPORT_SYMBOL(nfq_get_secctx);
*
* \return -1 on error, otherwise > 0.
*/
@@ -1114,7 +1115,7 @@ index 065d618..ab0b66b 100644
{
*data = (unsigned char *)
nfnl_get_pointer_to_data(nfad->data, NFQA_PAYLOAD, char);
-@@ -1262,7 +1228,6 @@ int nfq_get_payload(struct nfq_data *nfad, unsigned char **data)
+@@ -1291,7 +1257,6 @@ int nfq_get_payload(struct nfq_data *nfad, unsigned char **data)
return -1;
}
@@ -1122,7 +1123,7 @@ index 065d618..ab0b66b 100644
/**
* @}
-@@ -1307,7 +1272,7 @@ do { \
+@@ -1336,7 +1301,7 @@ do { \
* would have been printed into the buffer (in case that there is enough
* room in it). See snprintf() return value for more information.
*/
@@ -1131,7 +1132,7 @@ index 065d618..ab0b66b 100644
{
struct nfqnl_msg_packet_hdr *ph;
struct nfqnl_msg_packet_hw *hwph;
-@@ -1460,7 +1425,6 @@ int nfq_snprintf_xml(char *buf, size_t rem, struct nfq_data *tb, int flags)
+@@ -1489,7 +1454,6 @@ int nfq_snprintf_xml(char *buf, size_t rem, struct nfq_data *tb, int flags)
return len;
}
@@ -1224,6 +1225,3 @@ index ba28c77..5582407 100644
/**
* @}
---
-2.12.2
-
diff --git a/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.6.bb b/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.8.bb
index e4e186bd..cd894339 100644
--- a/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.6.bb
+++ b/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.8.bb
@@ -6,10 +6,9 @@ LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
DEPENDS = "libnfnetlink libmnl"
-SRC_URI = "http://www.netfilter.org/projects/libnetfilter_conntrack/files/libnetfilter_conntrack-${PV}.tar.bz2;name=tar \
-"
-SRC_URI[tar.md5sum] = "7139c5f408dd9606ffecfd5dcda8175b"
-SRC_URI[tar.sha256sum] = "efcc08021284e75f4d96d3581c5155a11f08fd63316b1938cbcb269c87f37feb"
+SRC_URI = "https://www.netfilter.org/projects/libnetfilter_conntrack/files/libnetfilter_conntrack-${PV}.tar.bz2"
+SRC_URI[md5sum] = "3121b55acf97322db830da75d8407cba"
+SRC_URI[sha256sum] = "0cd13be008923528687af6c6b860f35392d49251c04ee0648282d36b1faec1cf"
S = "${WORKDIR}/libnetfilter_conntrack-${PV}"
diff --git a/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb b/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.3.bb
index 754e11d9..896cfdfa 100644
--- a/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb
+++ b/external/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.3.bb
@@ -6,11 +6,9 @@ LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
DEPENDS = "libnfnetlink libmnl"
-PV .= "+git${SRCREV}"
-SRCREV = "981025e103d887fb6a9c9bb49c74ec323108d098"
+SRCREV = "601abd1c71ccdf90753cf294c120ad43fb25dc54"
SRC_URI = "git://git.netfilter.org/libnetfilter_queue \
- file://0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch \
file://0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch \
"
diff --git a/external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch b/external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch
deleted file mode 100644
index 995fd59a..00000000
--- a/external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch
+++ /dev/null
@@ -1,289 +0,0 @@
-From 21eb59fbd071ebffb8495232766824944fb521a0 Mon Sep 17 00:00:00 2001
-From: Alex Kiernan <alex.kiernan@gmail.com>
-Date: Wed, 7 Nov 2018 21:19:53 +0000
-Subject: [PATCH] Move exports before symbol definition
-
-Based on 7966020 ("src: Fix exporting symbols with clang"), when
-EXPORT_SYMBOL is located after function definition, clang won't properly
-export the function, resulting in a library with no symbols when built with
-clang.
-
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
----
- src/flowtable.c | 54 +++++++++++++++++++++++++++---------------------------
- 1 file changed, 27 insertions(+), 27 deletions(-)
-
-diff --git a/src/flowtable.c b/src/flowtable.c
-index c1ddae4..d7434e3 100644
---- a/src/flowtable.c
-+++ b/src/flowtable.c
-@@ -34,12 +34,13 @@ struct nftnl_flowtable {
- uint32_t flags;
- };
-
-+EXPORT_SYMBOL(nftnl_flowtable_alloc);
- struct nftnl_flowtable *nftnl_flowtable_alloc(void)
- {
- return calloc(1, sizeof(struct nftnl_flowtable));
- }
--EXPORT_SYMBOL(nftnl_flowtable_alloc);
-
-+EXPORT_SYMBOL(nftnl_flowtable_free);
- void nftnl_flowtable_free(const struct nftnl_flowtable *c)
- {
- int i;
-@@ -56,14 +57,14 @@ void nftnl_flowtable_free(const struct nftnl_flowtable *c)
- }
- xfree(c);
- }
--EXPORT_SYMBOL(nftnl_flowtable_free);
-
-+EXPORT_SYMBOL(nftnl_flowtable_is_set);
- bool nftnl_flowtable_is_set(const struct nftnl_flowtable *c, uint16_t attr)
- {
- return c->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_flowtable_is_set);
-
-+EXPORT_SYMBOL(nftnl_flowtable_unset);
- void nftnl_flowtable_unset(struct nftnl_flowtable *c, uint16_t attr)
- {
- int i;
-@@ -96,7 +97,6 @@ void nftnl_flowtable_unset(struct nftnl_flowtable *c, uint16_t attr)
-
- c->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_flowtable_unset);
-
- static uint32_t nftnl_flowtable_validate[NFTNL_FLOWTABLE_MAX + 1] = {
- [NFTNL_FLOWTABLE_HOOKNUM] = sizeof(uint32_t),
-@@ -105,6 +105,7 @@ static uint32_t nftnl_flowtable_validate[NFTNL_FLOWTABLE_MAX + 1] = {
- [NFTNL_FLOWTABLE_FLAGS] = sizeof(uint32_t),
- };
-
-+EXPORT_SYMBOL(nftnl_flowtable_set_data);
- int nftnl_flowtable_set_data(struct nftnl_flowtable *c, uint16_t attr,
- const void *data, uint32_t data_len)
- {
-@@ -170,32 +171,32 @@ int nftnl_flowtable_set_data(struct nftnl_flowtable *c, uint16_t attr,
- c->flags |= (1 << attr);
- return 0;
- }
--EXPORT_SYMBOL(nftnl_flowtable_set_data);
-
-+EXPORT_SYMBOL(nftnl_flowtable_set);
- void nftnl_flowtable_set(struct nftnl_flowtable *c, uint16_t attr, const void *data)
- {
- nftnl_flowtable_set_data(c, attr, data, nftnl_flowtable_validate[attr]);
- }
--EXPORT_SYMBOL(nftnl_flowtable_set);
-
-+EXPORT_SYMBOL(nftnl_flowtable_set_u32);
- void nftnl_flowtable_set_u32(struct nftnl_flowtable *c, uint16_t attr, uint32_t data)
- {
- nftnl_flowtable_set_data(c, attr, &data, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_flowtable_set_u32);
-
-+EXPORT_SYMBOL(nftnl_flowtable_set_s32);
- void nftnl_flowtable_set_s32(struct nftnl_flowtable *c, uint16_t attr, int32_t data)
- {
- nftnl_flowtable_set_data(c, attr, &data, sizeof(int32_t));
- }
--EXPORT_SYMBOL(nftnl_flowtable_set_s32);
-
-+EXPORT_SYMBOL(nftnl_flowtable_set_str);
- int nftnl_flowtable_set_str(struct nftnl_flowtable *c, uint16_t attr, const char *str)
- {
- return nftnl_flowtable_set_data(c, attr, str, strlen(str) + 1);
- }
--EXPORT_SYMBOL(nftnl_flowtable_set_str);
-
-+EXPORT_SYMBOL(nftnl_flowtable_get_data);
- const void *nftnl_flowtable_get_data(const struct nftnl_flowtable *c,
- uint16_t attr, uint32_t *data_len)
- {
-@@ -229,21 +230,21 @@ const void *nftnl_flowtable_get_data(const struct nftnl_flowtable *c,
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_flowtable_get_data);
-
-+EXPORT_SYMBOL(nftnl_flowtable_get);
- const void *nftnl_flowtable_get(const struct nftnl_flowtable *c, uint16_t attr)
- {
- uint32_t data_len;
- return nftnl_flowtable_get_data(c, attr, &data_len);
- }
--EXPORT_SYMBOL(nftnl_flowtable_get);
-
-+EXPORT_SYMBOL(nftnl_flowtable_get_str);
- const char *nftnl_flowtable_get_str(const struct nftnl_flowtable *c, uint16_t attr)
- {
- return nftnl_flowtable_get(c, attr);
- }
--EXPORT_SYMBOL(nftnl_flowtable_get_str);
-
-+EXPORT_SYMBOL(nftnl_flowtable_get_u32);
- uint32_t nftnl_flowtable_get_u32(const struct nftnl_flowtable *c, uint16_t attr)
- {
- uint32_t data_len;
-@@ -253,8 +254,8 @@ uint32_t nftnl_flowtable_get_u32(const struct nftnl_flowtable *c, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_flowtable_get_u32);
-
-+EXPORT_SYMBOL(nftnl_flowtable_get_s32);
- int32_t nftnl_flowtable_get_s32(const struct nftnl_flowtable *c, uint16_t attr)
- {
- uint32_t data_len;
-@@ -264,8 +265,8 @@ int32_t nftnl_flowtable_get_s32(const struct nftnl_flowtable *c, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_flowtable_get_s32);
-
-+EXPORT_SYMBOL(nftnl_flowtable_nlmsg_build_payload);
- void nftnl_flowtable_nlmsg_build_payload(struct nlmsghdr *nlh,
- const struct nftnl_flowtable *c)
- {
-@@ -301,7 +302,6 @@ void nftnl_flowtable_nlmsg_build_payload(struct nlmsghdr *nlh,
- if (c->flags & (1 << NFTNL_FLOWTABLE_SIZE))
- mnl_attr_put_u32(nlh, NFTA_FLOWTABLE_SIZE, htonl(c->size));
- }
--EXPORT_SYMBOL(nftnl_flowtable_nlmsg_build_payload);
-
- static int nftnl_flowtable_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -412,6 +412,7 @@ static int nftnl_flowtable_parse_hook(struct nlattr *attr, struct nftnl_flowtabl
- return 0;
- }
-
-+EXPORT_SYMBOL(nftnl_flowtable_nlmsg_parse);
- int nftnl_flowtable_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_flowtable *c)
- {
- struct nlattr *tb[NFTA_FLOWTABLE_MAX + 1] = {};
-@@ -460,7 +461,6 @@ int nftnl_flowtable_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_flowtab
-
- return ret;
- }
--EXPORT_SYMBOL(nftnl_flowtable_nlmsg_parse);
-
- static const char *nftnl_hooknum2str(int family, int hooknum)
- {
-@@ -612,20 +612,20 @@ static int nftnl_flowtable_do_parse(struct nftnl_flowtable *c,
- return ret;
- }
-
-+EXPORT_SYMBOL(nftnl_flowtable_parse);
- int nftnl_flowtable_parse(struct nftnl_flowtable *c, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_flowtable_do_parse(c, type, data, err, NFTNL_PARSE_BUFFER);
- }
--EXPORT_SYMBOL(nftnl_flowtable_parse);
-
-+EXPORT_SYMBOL(nftnl_flowtable_parse_file);
- int nftnl_flowtable_parse_file(struct nftnl_flowtable *c,
- enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_flowtable_do_parse(c, type, fp, err, NFTNL_PARSE_FILE);
- }
--EXPORT_SYMBOL(nftnl_flowtable_parse_file);
-
- static int nftnl_flowtable_export(char *buf, size_t size,
- const struct nftnl_flowtable *c, int type)
-@@ -720,6 +720,7 @@ static int nftnl_flowtable_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
-+EXPORT_SYMBOL(nftnl_flowtable_snprintf);
- int nftnl_flowtable_snprintf(char *buf, size_t size, const struct nftnl_flowtable *c,
- uint32_t type, uint32_t flags)
- {
-@@ -729,7 +730,6 @@ int nftnl_flowtable_snprintf(char *buf, size_t size, const struct nftnl_flowtabl
- return nftnl_flowtable_cmd_snprintf(buf, size, c, nftnl_flag2cmd(flags),
- type, flags);
- }
--EXPORT_SYMBOL(nftnl_flowtable_snprintf);
-
- static int nftnl_flowtable_do_snprintf(char *buf, size_t size, const void *c,
- uint32_t cmd, uint32_t type, uint32_t flags)
-@@ -737,18 +737,19 @@ static int nftnl_flowtable_do_snprintf(char *buf, size_t size, const void *c,
- return nftnl_flowtable_snprintf(buf, size, c, type, flags);
- }
-
-+EXPORT_SYMBOL(nftnl_flowtable_fprintf);
- int nftnl_flowtable_fprintf(FILE *fp, const struct nftnl_flowtable *c,
- uint32_t type, uint32_t flags)
- {
- return nftnl_fprintf(fp, c, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_flowtable_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_flowtable_fprintf);
-
- struct nftnl_flowtable_list {
- struct list_head list;
- };
-
-+EXPORT_SYMBOL(nftnl_flowtable_list_alloc);
- struct nftnl_flowtable_list *nftnl_flowtable_list_alloc(void)
- {
- struct nftnl_flowtable_list *list;
-@@ -761,8 +762,8 @@ struct nftnl_flowtable_list *nftnl_flowtable_list_alloc(void)
-
- return list;
- }
--EXPORT_SYMBOL(nftnl_flowtable_list_alloc);
-
-+EXPORT_SYMBOL(nftnl_flowtable_list_free);
- void nftnl_flowtable_list_free(struct nftnl_flowtable_list *list)
- {
- struct nftnl_flowtable *s, *tmp;
-@@ -773,34 +774,34 @@ void nftnl_flowtable_list_free(struct nftnl_flowtable_list *list)
- }
- xfree(list);
- }
--EXPORT_SYMBOL(nftnl_flowtable_list_free);
-
-+EXPORT_SYMBOL(nftnl_flowtable_list_is_empty);
- int nftnl_flowtable_list_is_empty(const struct nftnl_flowtable_list *list)
- {
- return list_empty(&list->list);
- }
--EXPORT_SYMBOL(nftnl_flowtable_list_is_empty);
-
-+EXPORT_SYMBOL(nftnl_flowtable_list_add);
- void nftnl_flowtable_list_add(struct nftnl_flowtable *s,
- struct nftnl_flowtable_list *list)
- {
- list_add(&s->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_flowtable_list_add);
-
-+EXPORT_SYMBOL(nftnl_flowtable_list_add_tail);
- void nftnl_flowtable_list_add_tail(struct nftnl_flowtable *s,
- struct nftnl_flowtable_list *list)
- {
- list_add_tail(&s->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_flowtable_list_add_tail);
-
-+EXPORT_SYMBOL(nftnl_flowtable_list_del);
- void nftnl_flowtable_list_del(struct nftnl_flowtable *s)
- {
- list_del(&s->head);
- }
--EXPORT_SYMBOL(nftnl_flowtable_list_del);
-
-+EXPORT_SYMBOL(nftnl_flowtable_list_foreach);
- int nftnl_flowtable_list_foreach(struct nftnl_flowtable_list *flowtable_list,
- int (*cb)(struct nftnl_flowtable *t, void *data), void *data)
- {
-@@ -814,4 +815,3 @@ int nftnl_flowtable_list_foreach(struct nftnl_flowtable_list *flowtable_list,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_flowtable_list_foreach);
diff --git a/external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch b/external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch
index e7e8f6fe..f49ef2a7 100644
--- a/external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch
+++ b/external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch
@@ -1,6 +1,6 @@
-From 5ea9fa9d345005f2f53b1b598edb85f5f24ca9da Mon Sep 17 00:00:00 2001
-From: Alex Kiernan <alex.kiernan@gmail.com>
-Date: Wed, 7 Nov 2018 19:41:54 +0000
+From e03b003610a176d608da9a02e433e7ded7e4b75f Mon Sep 17 00:00:00 2001
+From: Todd Cunningham <tcunningham07@gmail.com>
+Date: Wed, 11 Dec 2019 10:18:56 +1000
Subject: [PATCH] avoid naming local function as one of printf family
Fixes build issues with clang
@@ -8,6 +8,9 @@ error: no member named '__builtin___snprintf_chk' in 'struct expr_ops'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+
+Signed-off-by: Yuan Chao <yuanc.fnst@cn.fujitsu.com>
+Signed-off-by: Todd Cunningham <tcunningham07@gmail.com>
---
include/expr_ops.h | 2 +-
include/obj.h | 2 +-
@@ -35,6 +38,7 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
src/expr/nat.c | 2 +-
src/expr/numgen.c | 2 +-
src/expr/objref.c | 2 +-
+ src/expr/osf.c | 2 +-
src/expr/payload.c | 2 +-
src/expr/queue.c | 2 +-
src/expr/quota.c | 2 +-
@@ -43,45 +47,54 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
src/expr/reject.c | 2 +-
src/expr/rt.c | 2 +-
src/expr/socket.c | 2 +-
+ src/expr/synproxy.c | 2 +-
src/expr/target.c | 2 +-
+ src/expr/tproxy.c | 2 +-
+ src/expr/tunnel.c | 2 +-
+ src/expr/xfrm.c | 2 +-
src/obj/counter.c | 2 +-
+ src/obj/ct_expect.c | 2 +-
src/obj/ct_helper.c | 2 +-
+ src/obj/ct_timeout.c | 2 +-
src/obj/limit.c | 2 +-
src/obj/quota.c | 2 +-
- src/object.c | 4 ++--
- 40 files changed, 42 insertions(+), 42 deletions(-)
+ src/obj/secmark.c | 2 +-
+ src/obj/synproxy.c | 2 +-
+ src/obj/tunnel.c | 2 +-
+ src/object.c | 2 +-
+ 49 files changed, 50 insertions(+), 50 deletions(-)
diff --git a/include/expr_ops.h b/include/expr_ops.h
-index e639390..c4fe050 100644
+index a7f1b9a..d2946de 100644
--- a/include/expr_ops.h
+++ b/include/expr_ops.h
-@@ -18,7 +18,7 @@ struct expr_ops {
+@@ -17,7 +17,7 @@ struct expr_ops {
const void *(*get)(const struct nftnl_expr *e, uint16_t type, uint32_t *data_len);
int (*parse)(struct nftnl_expr *e, struct nlattr *attr);
void (*build)(struct nlmsghdr *nlh, const struct nftnl_expr *e);
- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e);
+ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e);
- int (*json_parse)(struct nftnl_expr *e, json_t *data,
- struct nftnl_parse_err *err);
};
+
+ struct expr_ops *nftnl_expr_ops_lookup(const char *name);
diff --git a/include/obj.h b/include/obj.h
-index 4a728c8..4c20bd1 100644
+index 9394d79..08610d7 100644
--- a/include/obj.h
+++ b/include/obj.h
-@@ -55,7 +55,7 @@ struct obj_ops {
+@@ -99,7 +99,7 @@ struct obj_ops {
const void *(*get)(const struct nftnl_obj *e, uint16_t type, uint32_t *data_len);
int (*parse)(struct nftnl_obj *e, struct nlattr *attr);
void (*build)(struct nlmsghdr *nlh, const struct nftnl_obj *e);
- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e);
+ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e);
- int (*json_parse)(struct nftnl_obj *e, json_t *data,
- struct nftnl_parse_err *err);
};
+
+ extern struct obj_ops obj_ops_counter;
diff --git a/src/expr.c b/src/expr.c
-index 62565e0..2489c30 100644
+index 80c4c36..b698a60 100644
--- a/src/expr.c
+++ b/src/expr.c
-@@ -285,10 +285,10 @@ int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr,
+@@ -275,10 +275,10 @@ int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr,
if (size)
buf[0] = '\0';
@@ -95,450 +108,505 @@ index 62565e0..2489c30 100644
return offset;
diff --git a/src/expr/bitwise.c b/src/expr/bitwise.c
-index a89734b..f8360b1 100644
+index c9d40df..27d644b 100644
--- a/src/expr/bitwise.c
+++ b/src/expr/bitwise.c
-@@ -299,6 +299,6 @@ struct expr_ops expr_ops_bitwise = {
+@@ -219,5 +219,5 @@ struct expr_ops expr_ops_bitwise = {
.get = nftnl_expr_bitwise_get,
.parse = nftnl_expr_bitwise_parse,
.build = nftnl_expr_bitwise_build,
- .snprintf = nftnl_expr_bitwise_snprintf,
+ .snprintf_ = nftnl_expr_bitwise_snprintf,
- .json_parse = nftnl_expr_bitwise_json_parse,
};
diff --git a/src/expr/byteorder.c b/src/expr/byteorder.c
-index 47c04cf..61f733f 100644
+index efdfa2b..7ae9dfb 100644
--- a/src/expr/byteorder.c
+++ b/src/expr/byteorder.c
-@@ -314,6 +314,6 @@ struct expr_ops expr_ops_byteorder = {
+@@ -234,5 +234,5 @@ struct expr_ops expr_ops_byteorder = {
.get = nftnl_expr_byteorder_get,
.parse = nftnl_expr_byteorder_parse,
.build = nftnl_expr_byteorder_build,
- .snprintf = nftnl_expr_byteorder_snprintf,
+ .snprintf_ = nftnl_expr_byteorder_snprintf,
- .json_parse = nftnl_expr_byteorder_json_parse,
};
diff --git a/src/expr/cmp.c b/src/expr/cmp.c
-index b26d0eb..522c7be 100644
+index 86d7842..e3be442 100644
--- a/src/expr/cmp.c
+++ b/src/expr/cmp.c
-@@ -284,6 +284,6 @@ struct expr_ops expr_ops_cmp = {
+@@ -216,5 +216,5 @@ struct expr_ops expr_ops_cmp = {
.get = nftnl_expr_cmp_get,
.parse = nftnl_expr_cmp_parse,
.build = nftnl_expr_cmp_build,
- .snprintf = nftnl_expr_cmp_snprintf,
+ .snprintf_ = nftnl_expr_cmp_snprintf,
- .json_parse = nftnl_expr_cmp_json_parse,
};
diff --git a/src/expr/connlimit.c b/src/expr/connlimit.c
-index 60965b5..4e41866 100644
+index 53af93b..6c8bc40 100644
--- a/src/expr/connlimit.c
+++ b/src/expr/connlimit.c
-@@ -202,6 +202,6 @@ struct expr_ops expr_ops_connlimit = {
+@@ -149,5 +149,5 @@ struct expr_ops expr_ops_connlimit = {
.get = nftnl_expr_connlimit_get,
.parse = nftnl_expr_connlimit_parse,
.build = nftnl_expr_connlimit_build,
- .snprintf = nftnl_expr_connlimit_snprintf,
-+ .snprintf_ = nftnl_expr_connlimit_snprintf,
- .json_parse = nftnl_expr_connlimit_json_parse,
++ .snprintf_ = nftnl_expr_connlimit_snprintf,
};
diff --git a/src/expr/counter.c b/src/expr/counter.c
-index 21901e8..9fd7655 100644
+index 89a602e..a32a69e 100644
--- a/src/expr/counter.c
+++ b/src/expr/counter.c
-@@ -200,6 +200,6 @@ struct expr_ops expr_ops_counter = {
+@@ -147,5 +147,5 @@ struct expr_ops expr_ops_counter = {
.get = nftnl_expr_counter_get,
.parse = nftnl_expr_counter_parse,
.build = nftnl_expr_counter_build,
- .snprintf = nftnl_expr_counter_snprintf,
+ .snprintf_ = nftnl_expr_counter_snprintf,
- .json_parse = nftnl_expr_counter_json_parse,
};
diff --git a/src/expr/ct.c b/src/expr/ct.c
-index 39e9be6..b363f7c 100644
+index 124de9d..7bde179 100644
--- a/src/expr/ct.c
+++ b/src/expr/ct.c
-@@ -357,6 +357,6 @@ struct expr_ops expr_ops_ct = {
+@@ -273,5 +273,5 @@ struct expr_ops expr_ops_ct = {
.get = nftnl_expr_ct_get,
.parse = nftnl_expr_ct_parse,
.build = nftnl_expr_ct_build,
- .snprintf = nftnl_expr_ct_snprintf,
+ .snprintf_ = nftnl_expr_ct_snprintf,
- .json_parse = nftnl_expr_ct_json_parse,
};
diff --git a/src/expr/dup.c b/src/expr/dup.c
-index ed8e620..8d603e3 100644
+index 2bb35e5..d9bd4b1 100644
--- a/src/expr/dup.c
+++ b/src/expr/dup.c
-@@ -206,6 +206,6 @@ struct expr_ops expr_ops_dup = {
+@@ -154,5 +154,5 @@ struct expr_ops expr_ops_dup = {
.get = nftnl_expr_dup_get,
.parse = nftnl_expr_dup_parse,
.build = nftnl_expr_dup_build,
- .snprintf = nftnl_expr_dup_snprintf,
+ .snprintf_ = nftnl_expr_dup_snprintf,
- .json_parse = nftnl_expr_dup_json_parse,
};
diff --git a/src/expr/dynset.c b/src/expr/dynset.c
-index 160d0e1..a43f4da 100644
+index 68115ba..6e43bb4 100644
--- a/src/expr/dynset.c
+++ b/src/expr/dynset.c
-@@ -368,6 +368,6 @@ struct expr_ops expr_ops_dynset = {
+@@ -288,5 +288,5 @@ struct expr_ops expr_ops_dynset = {
.get = nftnl_expr_dynset_get,
.parse = nftnl_expr_dynset_parse,
.build = nftnl_expr_dynset_build,
- .snprintf = nftnl_expr_dynset_snprintf,
+ .snprintf_ = nftnl_expr_dynset_snprintf,
- .json_parse = nftnl_expr_dynset_json_parse,
};
diff --git a/src/expr/exthdr.c b/src/expr/exthdr.c
-index 75cafbc..89ea7f5 100644
+index e5f714b..e68792b 100644
--- a/src/expr/exthdr.c
+++ b/src/expr/exthdr.c
-@@ -385,6 +385,6 @@ struct expr_ops expr_ops_exthdr = {
+@@ -276,5 +276,5 @@ struct expr_ops expr_ops_exthdr = {
.get = nftnl_expr_exthdr_get,
.parse = nftnl_expr_exthdr_parse,
.build = nftnl_expr_exthdr_build,
- .snprintf = nftnl_expr_exthdr_snprintf,
+ .snprintf_ = nftnl_expr_exthdr_snprintf,
- .json_parse = nftnl_expr_exthdr_json_parse,
};
diff --git a/src/expr/fib.c b/src/expr/fib.c
-index b922b26..ece4645 100644
+index 9475af4..8e7090d 100644
--- a/src/expr/fib.c
+++ b/src/expr/fib.c
-@@ -274,6 +274,6 @@ struct expr_ops expr_ops_fib = {
+@@ -213,5 +213,5 @@ struct expr_ops expr_ops_fib = {
.get = nftnl_expr_fib_get,
.parse = nftnl_expr_fib_parse,
.build = nftnl_expr_fib_build,
- .snprintf = nftnl_expr_fib_snprintf,
+ .snprintf_ = nftnl_expr_fib_snprintf,
- .json_parse = nftnl_expr_fib_json_parse,
};
diff --git a/src/expr/flow_offload.c b/src/expr/flow_offload.c
-index a2001c9..9cdbc21 100644
+index 6ccec9a..c2f2478 100644
--- a/src/expr/flow_offload.c
+++ b/src/expr/flow_offload.c
-@@ -179,6 +179,6 @@ struct expr_ops expr_ops_flow = {
+@@ -134,5 +134,5 @@ struct expr_ops expr_ops_flow = {
.get = nftnl_expr_flow_get,
.parse = nftnl_expr_flow_parse,
.build = nftnl_expr_flow_build,
- .snprintf = nftnl_expr_flow_snprintf,
+ .snprintf_ = nftnl_expr_flow_snprintf,
- .json_parse = nftnl_expr_flow_json_parse,
};
diff --git a/src/expr/fwd.c b/src/expr/fwd.c
-index 9021606..7178f43 100644
+index cff8235..bcd7d3f 100644
--- a/src/expr/fwd.c
+++ b/src/expr/fwd.c
-@@ -233,6 +233,6 @@ struct expr_ops expr_ops_fwd = {
+@@ -174,5 +174,5 @@ struct expr_ops expr_ops_fwd = {
.get = nftnl_expr_fwd_get,
.parse = nftnl_expr_fwd_parse,
.build = nftnl_expr_fwd_build,
- .snprintf = nftnl_expr_fwd_snprintf,
+ .snprintf_ = nftnl_expr_fwd_snprintf,
- .json_parse = nftnl_expr_fwd_json_parse,
};
diff --git a/src/expr/hash.c b/src/expr/hash.c
-index 415537e..186c5b0 100644
+index 2c801d2..a9f6e7e 100644
--- a/src/expr/hash.c
+++ b/src/expr/hash.c
-@@ -383,6 +383,6 @@ struct expr_ops expr_ops_hash = {
+@@ -241,5 +241,5 @@ struct expr_ops expr_ops_hash = {
.get = nftnl_expr_hash_get,
.parse = nftnl_expr_hash_parse,
.build = nftnl_expr_hash_build,
- .snprintf = nftnl_expr_hash_snprintf,
+ .snprintf_ = nftnl_expr_hash_snprintf,
- .json_parse = nftnl_expr_hash_json_parse,
};
diff --git a/src/expr/immediate.c b/src/expr/immediate.c
-index b0570bd..91ccbdc 100644
+index 47106ae..ea86c88 100644
--- a/src/expr/immediate.c
+++ b/src/expr/immediate.c
-@@ -316,6 +316,6 @@ struct expr_ops expr_ops_immediate = {
+@@ -235,5 +235,5 @@ struct expr_ops expr_ops_immediate = {
.get = nftnl_expr_immediate_get,
.parse = nftnl_expr_immediate_parse,
.build = nftnl_expr_immediate_build,
- .snprintf = nftnl_expr_immediate_snprintf,
+ .snprintf_ = nftnl_expr_immediate_snprintf,
- .json_parse = nftnl_expr_immediate_json_parse,
};
diff --git a/src/expr/limit.c b/src/expr/limit.c
-index 856ab18..e71fc2f 100644
+index 5872e27..0ce482f 100644
--- a/src/expr/limit.c
+++ b/src/expr/limit.c
-@@ -285,6 +285,6 @@ struct expr_ops expr_ops_limit = {
+@@ -216,5 +216,5 @@ struct expr_ops expr_ops_limit = {
.get = nftnl_expr_limit_get,
.parse = nftnl_expr_limit_parse,
.build = nftnl_expr_limit_build,
- .snprintf = nftnl_expr_limit_snprintf,
+ .snprintf_ = nftnl_expr_limit_snprintf,
- .json_parse = nftnl_expr_limit_json_parse,
};
diff --git a/src/expr/log.c b/src/expr/log.c
-index 86d9651..5769c1c 100644
+index bbe43d2..5506bc2 100644
--- a/src/expr/log.c
+++ b/src/expr/log.c
-@@ -353,6 +353,6 @@ struct expr_ops expr_ops_log = {
+@@ -267,5 +267,5 @@ struct expr_ops expr_ops_log = {
.get = nftnl_expr_log_get,
.parse = nftnl_expr_log_parse,
.build = nftnl_expr_log_build,
- .snprintf = nftnl_expr_log_snprintf,
+ .snprintf_ = nftnl_expr_log_snprintf,
- .json_parse = nftnl_expr_log_json_parse,
};
diff --git a/src/expr/lookup.c b/src/expr/lookup.c
-index 5fcb81f..b2f0dd6 100644
+index a495ac0..678868c 100644
--- a/src/expr/lookup.c
+++ b/src/expr/lookup.c
-@@ -292,6 +292,6 @@ struct expr_ops expr_ops_lookup = {
+@@ -221,5 +221,5 @@ struct expr_ops expr_ops_lookup = {
.get = nftnl_expr_lookup_get,
.parse = nftnl_expr_lookup_parse,
.build = nftnl_expr_lookup_build,
- .snprintf = nftnl_expr_lookup_snprintf,
+ .snprintf_ = nftnl_expr_lookup_snprintf,
- .json_parse = nftnl_expr_lookup_json_parse,
};
diff --git a/src/expr/masq.c b/src/expr/masq.c
-index 7c235d3..adec325 100644
+index f6f3ceb..88292a6 100644
--- a/src/expr/masq.c
+++ b/src/expr/masq.c
-@@ -228,6 +228,6 @@ struct expr_ops expr_ops_masq = {
+@@ -169,5 +169,5 @@ struct expr_ops expr_ops_masq = {
.get = nftnl_expr_masq_get,
.parse = nftnl_expr_masq_parse,
.build = nftnl_expr_masq_build,
- .snprintf = nftnl_expr_masq_snprintf,
+ .snprintf_ = nftnl_expr_masq_snprintf,
- .json_parse = nftnl_expr_masq_json_parse,
};
diff --git a/src/expr/match.c b/src/expr/match.c
-index dd09e1e..f0d8868 100644
+index 4fa74b2..249c6b5 100644
--- a/src/expr/match.c
+++ b/src/expr/match.c
-@@ -249,6 +249,6 @@ struct expr_ops expr_ops_match = {
+@@ -198,5 +198,5 @@ struct expr_ops expr_ops_match = {
.get = nftnl_expr_match_get,
.parse = nftnl_expr_match_parse,
.build = nftnl_expr_match_build,
- .snprintf = nftnl_expr_match_snprintf,
+ .snprintf_ = nftnl_expr_match_snprintf,
- .json_parse = nftnl_expr_match_json_parse,
};
diff --git a/src/expr/meta.c b/src/expr/meta.c
-index de82105..91f1ebb 100644
+index 73f6efa..35d5ec5 100644
--- a/src/expr/meta.c
+++ b/src/expr/meta.c
-@@ -291,6 +291,6 @@ struct expr_ops expr_ops_meta = {
+@@ -226,5 +226,5 @@ struct expr_ops expr_ops_meta = {
.get = nftnl_expr_meta_get,
.parse = nftnl_expr_meta_parse,
.build = nftnl_expr_meta_build,
- .snprintf = nftnl_expr_meta_snprintf,
+ .snprintf_ = nftnl_expr_meta_snprintf,
- .json_parse = nftnl_expr_meta_json_parse,
};
diff --git a/src/expr/nat.c b/src/expr/nat.c
-index 9271303..427c282 100644
+index 6b7d50e..be4a579 100644
--- a/src/expr/nat.c
+++ b/src/expr/nat.c
-@@ -384,6 +384,6 @@ struct expr_ops expr_ops_nat = {
+@@ -279,5 +279,5 @@ struct expr_ops expr_ops_nat = {
.get = nftnl_expr_nat_get,
.parse = nftnl_expr_nat_parse,
.build = nftnl_expr_nat_build,
- .snprintf = nftnl_expr_nat_snprintf,
+ .snprintf_ = nftnl_expr_nat_snprintf,
- .json_parse = nftnl_expr_nat_json_parse,
};
diff --git a/src/expr/numgen.c b/src/expr/numgen.c
-index 5336fde..8e0479a 100644
+index 4e0d541..5995ee3 100644
--- a/src/expr/numgen.c
+++ b/src/expr/numgen.c
-@@ -313,6 +313,6 @@ struct expr_ops expr_ops_ng = {
+@@ -195,5 +195,5 @@ struct expr_ops expr_ops_ng = {
.get = nftnl_expr_ng_get,
.parse = nftnl_expr_ng_parse,
.build = nftnl_expr_ng_build,
- .snprintf = nftnl_expr_ng_snprintf,
+ .snprintf_ = nftnl_expr_ng_snprintf,
- .json_parse = nftnl_expr_ng_json_parse,
};
diff --git a/src/expr/objref.c b/src/expr/objref.c
-index 64ee863..4504488 100644
+index 7388b18..e673ffd 100644
--- a/src/expr/objref.c
+++ b/src/expr/objref.c
-@@ -278,6 +278,6 @@ struct expr_ops expr_ops_objref = {
+@@ -210,5 +210,5 @@ struct expr_ops expr_ops_objref = {
.get = nftnl_expr_objref_get,
.parse = nftnl_expr_objref_parse,
.build = nftnl_expr_objref_build,
- .snprintf = nftnl_expr_objref_snprintf,
+ .snprintf_ = nftnl_expr_objref_snprintf,
- .json_parse = nftnl_expr_objref_json_parse,
+ };
+diff --git a/src/expr/osf.c b/src/expr/osf.c
+index 98d0df9..618b46e 100644
+--- a/src/expr/osf.c
++++ b/src/expr/osf.c
+@@ -161,5 +161,5 @@ struct expr_ops expr_ops_osf = {
+ .get = nftnl_expr_osf_get,
+ .parse = nftnl_expr_osf_parse,
+ .build = nftnl_expr_osf_build,
+- .snprintf = nftnl_expr_osf_snprintf,
++ .snprintf_ = nftnl_expr_osf_snprintf,
};
diff --git a/src/expr/payload.c b/src/expr/payload.c
-index 91e1587..894ac08 100644
+index 2192dad..37aacc4 100644
--- a/src/expr/payload.c
+++ b/src/expr/payload.c
-@@ -348,6 +348,6 @@ struct expr_ops expr_ops_payload = {
+@@ -266,5 +266,5 @@ struct expr_ops expr_ops_payload = {
.get = nftnl_expr_payload_get,
.parse = nftnl_expr_payload_parse,
.build = nftnl_expr_payload_build,
- .snprintf = nftnl_expr_payload_snprintf,
+ .snprintf_ = nftnl_expr_payload_snprintf,
- .json_parse = nftnl_expr_payload_json_parse,
};
diff --git a/src/expr/queue.c b/src/expr/queue.c
-index a392a27..ee26c10 100644
+index 051ef71..b06feff 100644
--- a/src/expr/queue.c
+++ b/src/expr/queue.c
-@@ -275,6 +275,6 @@ struct expr_ops expr_ops_queue = {
+@@ -207,5 +207,5 @@ struct expr_ops expr_ops_queue = {
.get = nftnl_expr_queue_get,
.parse = nftnl_expr_queue_parse,
.build = nftnl_expr_queue_build,
- .snprintf = nftnl_expr_queue_snprintf,
+ .snprintf_ = nftnl_expr_queue_snprintf,
- .json_parse = nftnl_expr_queue_json_parse,
};
diff --git a/src/expr/quota.c b/src/expr/quota.c
-index 667e6e1..ff5d182 100644
+index 39a92e6..41797be 100644
--- a/src/expr/quota.c
+++ b/src/expr/quota.c
-@@ -203,6 +203,6 @@ struct expr_ops expr_ops_quota = {
+@@ -161,5 +161,5 @@ struct expr_ops expr_ops_quota = {
.get = nftnl_expr_quota_get,
.parse = nftnl_expr_quota_parse,
.build = nftnl_expr_quota_build,
- .snprintf = nftnl_expr_quota_snprintf,
+ .snprintf_ = nftnl_expr_quota_snprintf,
- .json_parse = nftnl_expr_quota_json_parse,
};
diff --git a/src/expr/range.c b/src/expr/range.c
-index b2789ff..8910f8a 100644
+index d1d5083..b619cdf 100644
--- a/src/expr/range.c
+++ b/src/expr/range.c
-@@ -283,6 +283,6 @@ struct expr_ops expr_ops_range = {
+@@ -227,5 +227,5 @@ struct expr_ops expr_ops_range = {
.get = nftnl_expr_range_get,
.parse = nftnl_expr_range_parse,
.build = nftnl_expr_range_build,
- .snprintf = nftnl_expr_range_snprintf,
+ .snprintf_ = nftnl_expr_range_snprintf,
- .json_parse = nftnl_expr_range_json_parse,
};
diff --git a/src/expr/redir.c b/src/expr/redir.c
-index b2aa345..41b77ab 100644
+index 477659a..5c4ebeb 100644
--- a/src/expr/redir.c
+++ b/src/expr/redir.c
-@@ -242,6 +242,6 @@ struct expr_ops expr_ops_redir = {
+@@ -181,5 +181,5 @@ struct expr_ops expr_ops_redir = {
.get = nftnl_expr_redir_get,
.parse = nftnl_expr_redir_parse,
.build = nftnl_expr_redir_build,
- .snprintf = nftnl_expr_redir_snprintf,
+ .snprintf_ = nftnl_expr_redir_snprintf,
- .json_parse = nftnl_expr_redir_json_parse,
};
diff --git a/src/expr/reject.c b/src/expr/reject.c
-index 11d8b20..b10e729 100644
+index 141942e..a98990d 100644
--- a/src/expr/reject.c
+++ b/src/expr/reject.c
-@@ -200,6 +200,6 @@ struct expr_ops expr_ops_reject = {
+@@ -148,5 +148,5 @@ struct expr_ops expr_ops_reject = {
.get = nftnl_expr_reject_get,
.parse = nftnl_expr_reject_parse,
.build = nftnl_expr_reject_build,
- .snprintf = nftnl_expr_reject_snprintf,
+ .snprintf_ = nftnl_expr_reject_snprintf,
- .json_parse = nftnl_expr_reject_json_parse,
};
diff --git a/src/expr/rt.c b/src/expr/rt.c
-index c3c92c7..688a042 100644
+index 0fce72d..32ace19 100644
--- a/src/expr/rt.c
+++ b/src/expr/rt.c
-@@ -235,6 +235,6 @@ struct expr_ops expr_ops_rt = {
+@@ -177,5 +177,5 @@ struct expr_ops expr_ops_rt = {
.get = nftnl_expr_rt_get,
.parse = nftnl_expr_rt_parse,
.build = nftnl_expr_rt_build,
- .snprintf = nftnl_expr_rt_snprintf,
+ .snprintf_ = nftnl_expr_rt_snprintf,
- .json_parse = nftnl_expr_rt_json_parse,
};
diff --git a/src/expr/socket.c b/src/expr/socket.c
-index db160a1..4c50011 100644
+index 96550d5..2394dbf 100644
--- a/src/expr/socket.c
+++ b/src/expr/socket.c
-@@ -204,5 +204,5 @@ struct expr_ops expr_ops_socket = {
+@@ -174,5 +174,5 @@ struct expr_ops expr_ops_socket = {
.get = nftnl_expr_socket_get,
.parse = nftnl_expr_socket_parse,
.build = nftnl_expr_socket_build,
- .snprintf = nftnl_expr_socket_snprintf,
+ .snprintf_ = nftnl_expr_socket_snprintf,
};
+diff --git a/src/expr/synproxy.c b/src/expr/synproxy.c
+index 245f4fb..9721029 100644
+--- a/src/expr/synproxy.c
++++ b/src/expr/synproxy.c
+@@ -166,5 +166,5 @@ struct expr_ops expr_ops_synproxy = {
+ .get = nftnl_expr_synproxy_get,
+ .parse = nftnl_expr_synproxy_parse,
+ .build = nftnl_expr_synproxy_build,
+- .snprintf = nftnl_expr_synproxy_snprintf,
++ .snprintf_ = nftnl_expr_synproxy_snprintf,
+ };
diff --git a/src/expr/target.c b/src/expr/target.c
-index ed4bf7d..2ef4078 100644
+index 9100038..7180085 100644
--- a/src/expr/target.c
+++ b/src/expr/target.c
-@@ -249,6 +249,6 @@ struct expr_ops expr_ops_target = {
+@@ -198,5 +198,5 @@ struct expr_ops expr_ops_target = {
.get = nftnl_expr_target_get,
.parse = nftnl_expr_target_parse,
.build = nftnl_expr_target_build,
- .snprintf = nftnl_expr_target_snprintf,
+ .snprintf_ = nftnl_expr_target_snprintf,
- .json_parse = nftnl_expr_target_json_parse,
+ };
+diff --git a/src/expr/tproxy.c b/src/expr/tproxy.c
+index 3827b75..feabbbe 100644
+--- a/src/expr/tproxy.c
++++ b/src/expr/tproxy.c
+@@ -183,5 +183,5 @@ struct expr_ops expr_ops_tproxy = {
+ .get = nftnl_expr_tproxy_get,
+ .parse = nftnl_expr_tproxy_parse,
+ .build = nftnl_expr_tproxy_build,
+- .snprintf = nftnl_expr_tproxy_snprintf,
++ .snprintf_ = nftnl_expr_tproxy_snprintf,
+ };
+diff --git a/src/expr/tunnel.c b/src/expr/tunnel.c
+index b2b8d72..1ed46d3 100644
+--- a/src/expr/tunnel.c
++++ b/src/expr/tunnel.c
+@@ -173,5 +173,5 @@ struct expr_ops expr_ops_tunnel = {
+ .get = nftnl_expr_tunnel_get,
+ .parse = nftnl_expr_tunnel_parse,
+ .build = nftnl_expr_tunnel_build,
+- .snprintf = nftnl_expr_tunnel_snprintf,
++ .snprintf_ = nftnl_expr_tunnel_snprintf,
+ };
+diff --git a/src/expr/xfrm.c b/src/expr/xfrm.c
+index 8fe5438..b6b2772 100644
+--- a/src/expr/xfrm.c
++++ b/src/expr/xfrm.c
+@@ -239,5 +239,5 @@ struct expr_ops expr_ops_xfrm = {
+ .get = nftnl_expr_xfrm_get,
+ .parse = nftnl_expr_xfrm_parse,
+ .build = nftnl_expr_xfrm_build,
+- .snprintf = nftnl_expr_xfrm_snprintf,
++ .snprintf_ = nftnl_expr_xfrm_snprintf,
};
diff --git a/src/obj/counter.c b/src/obj/counter.c
-index 332bb2b..edeb7be 100644
+index 1baba4e..3710bce 100644
--- a/src/obj/counter.c
+++ b/src/obj/counter.c
-@@ -182,6 +182,6 @@ struct obj_ops obj_ops_counter = {
+@@ -145,5 +145,5 @@ struct obj_ops obj_ops_counter = {
.get = nftnl_obj_counter_get,
.parse = nftnl_obj_counter_parse,
.build = nftnl_obj_counter_build,
- .snprintf = nftnl_obj_counter_snprintf,
+ .snprintf_ = nftnl_obj_counter_snprintf,
- .json_parse = nftnl_obj_counter_json_parse,
+ };
+diff --git a/src/obj/ct_expect.c b/src/obj/ct_expect.c
+index c0bb5ba..953c08c 100644
+--- a/src/obj/ct_expect.c
++++ b/src/obj/ct_expect.c
+@@ -209,5 +209,5 @@ struct obj_ops obj_ops_ct_expect = {
+ .get = nftnl_obj_ct_expect_get,
+ .parse = nftnl_obj_ct_expect_parse,
+ .build = nftnl_obj_ct_expect_build,
+- .snprintf = nftnl_obj_ct_expect_snprintf,
++ .snprintf_ = nftnl_obj_ct_expect_snprintf,
};
diff --git a/src/obj/ct_helper.c b/src/obj/ct_helper.c
-index 62569fe..69757ff 100644
+index d91f636..2037461 100644
--- a/src/obj/ct_helper.c
+++ b/src/obj/ct_helper.c
-@@ -208,6 +208,6 @@ struct obj_ops obj_ops_ct_helper = {
+@@ -166,5 +166,5 @@ struct obj_ops obj_ops_ct_helper = {
.get = nftnl_obj_ct_helper_get,
.parse = nftnl_obj_ct_helper_parse,
.build = nftnl_obj_ct_helper_build,
- .snprintf = nftnl_obj_ct_helper_snprintf,
+ .snprintf_ = nftnl_obj_ct_helper_snprintf,
- .json_parse = nftnl_obj_quota_json_parse,
+ };
+diff --git a/src/obj/ct_timeout.c b/src/obj/ct_timeout.c
+index e2e9991..a4f2dd2 100644
+--- a/src/obj/ct_timeout.c
++++ b/src/obj/ct_timeout.c
+@@ -330,5 +330,5 @@ struct obj_ops obj_ops_ct_timeout = {
+ .get = nftnl_obj_ct_timeout_get,
+ .parse = nftnl_obj_ct_timeout_parse,
+ .build = nftnl_obj_ct_timeout_build,
+- .snprintf = nftnl_obj_ct_timeout_snprintf,
++ .snprintf_ = nftnl_obj_ct_timeout_snprintf,
};
diff --git a/src/obj/limit.c b/src/obj/limit.c
-index 7f8bcf7..25018b6 100644
+index 60b0159..538f37a 100644
--- a/src/obj/limit.c
+++ b/src/obj/limit.c
-@@ -236,6 +236,6 @@ struct obj_ops obj_ops_limit = {
+@@ -185,5 +185,5 @@ struct obj_ops obj_ops_limit = {
.get = nftnl_obj_limit_get,
.parse = nftnl_obj_limit_parse,
.build = nftnl_obj_limit_build,
- .snprintf = nftnl_obj_limit_snprintf,
+ .snprintf_ = nftnl_obj_limit_snprintf,
- .json_parse = nftnl_obj_limit_json_parse,
};
diff --git a/src/obj/quota.c b/src/obj/quota.c
-index 6d36784..ecaa8b1 100644
+index 1914037..585a088 100644
--- a/src/obj/quota.c
+++ b/src/obj/quota.c
-@@ -203,6 +203,6 @@ struct obj_ops obj_ops_quota = {
+@@ -161,5 +161,5 @@ struct obj_ops obj_ops_quota = {
.get = nftnl_obj_quota_get,
.parse = nftnl_obj_quota_parse,
.build = nftnl_obj_quota_build,
- .snprintf = nftnl_obj_quota_snprintf,
+ .snprintf_ = nftnl_obj_quota_snprintf,
- .json_parse = nftnl_obj_quota_json_parse,
+ };
+diff --git a/src/obj/secmark.c b/src/obj/secmark.c
+index e27b5fa..6241bee 100644
+--- a/src/obj/secmark.c
++++ b/src/obj/secmark.c
+@@ -133,5 +133,5 @@ struct obj_ops obj_ops_secmark = {
+ .get = nftnl_obj_secmark_get,
+ .parse = nftnl_obj_secmark_parse,
+ .build = nftnl_obj_secmark_build,
+- .snprintf = nftnl_obj_secmark_snprintf,
++ .snprintf_ = nftnl_obj_secmark_snprintf,
+ };
+diff --git a/src/obj/tunnel.c b/src/obj/tunnel.c
+index 7ffade8..800eb3e 100644
+--- a/src/obj/tunnel.c
++++ b/src/obj/tunnel.c
+@@ -564,5 +564,5 @@ struct obj_ops obj_ops_tunnel = {
+ .get = nftnl_obj_tunnel_get,
+ .parse = nftnl_obj_tunnel_parse,
+ .build = nftnl_obj_tunnel_build,
+- .snprintf = nftnl_obj_tunnel_snprintf,
++ .snprintf_ = nftnl_obj_tunnel_snprintf,
};
diff --git a/src/object.c b/src/object.c
-index d8278f3..9654b7b 100644
+index d8c87ee..5307d7e 100644
--- a/src/object.c
+++ b/src/object.c
-@@ -429,7 +429,7 @@ static int nftnl_obj_export(char *buf, size_t size,
- nftnl_buf_u64(&b, type, obj->handle, HANDLE);
-
- if (obj->ops)
-- ret = obj->ops->snprintf(buf + b.len, size - b.len, type,
-+ ret = obj->ops->snprintf_(buf + b.len, size - b.len, type,
- flags, obj);
-
- b.len += ret;
-@@ -450,7 +450,7 @@ static int nftnl_obj_snprintf_dflt(char *buf, size_t size,
+@@ -370,7 +370,7 @@ static int nftnl_obj_snprintf_dflt(char *buf, size_t size,
SNPRINTF_BUFFER_SIZE(ret, remain, offset);
if (obj->ops) {
@@ -547,3 +615,17 @@ index d8278f3..9654b7b 100644
obj);
SNPRINTF_BUFFER_SIZE(ret, remain, offset);
}
+diff --git a/src/obj/synproxy.c b/src/obj/synproxy.c
+index 56ebc85..6b5380f 100644
+--- a/src/obj/synproxy.c
++++ b/src/obj/synproxy.c
+@@ -157,5 +157,5 @@ struct obj_ops obj_ops_synproxy = {
+ .get = nftnl_obj_synproxy_get,
+ .parse = nftnl_obj_synproxy_parse,
+ .build = nftnl_obj_synproxy_build,
+- .snprintf = nftnl_obj_synproxy_snprintf,
++ .snprintf_ = nftnl_obj_synproxy_snprintf,
+ };
+--
+2.17.1
+
diff --git a/external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.1.bb b/external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.7.bb
index 77959a73..4ff00bf8 100644
--- a/external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.1.bb
+++ b/external/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.7.bb
@@ -3,11 +3,10 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26"
SECTION = "libs"
DEPENDS = "libmnl"
-PV .= "+git${SRCPV}"
-SRCREV = "d379dfcb6c94dcb93a8f16896572d6e162138e0f"
+
+SRCREV = "eedafeb6db330b8adff1b7cdd3dac325f9144195"
SRC_URI = "git://git.netfilter.org/libnftnl \
- file://0001-Move-exports-before-symbol-definition.patch \
- file://0002-avoid-naming-local-function-as-one-of-printf-family.patch \
+ file://0001-avoid-naming-local-function-as-one-of-printf-family.patch \
"
S = "${WORKDIR}/git"
diff --git a/external/meta-openembedded/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb b/external/meta-openembedded/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb
index 8177ebcc..32454552 100644
--- a/external/meta-openembedded/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb
+++ b/external/meta-openembedded/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb
@@ -3,6 +3,8 @@ HOMEPAGE = "http://netfilter.org/projects/nfacct/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+UPSTREAM_CHECK_URI = "ftp://ftp.netfilter.org/pub/nfacct/"
+
SRC_URI = "ftp://ftp.netfilter.org/pub/${BPN}/${BP}.tar.bz2"
SRC_URI[md5sum] = "94faafdaaed85ca9220c5692be8a408e"
diff --git a/external/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.0.bb b/external/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.0.bb
deleted file mode 100644
index aadf4f7f..00000000
--- a/external/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Netfilter Tables userspace utillites"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79"
-
-DEPENDS = "libmnl libnftnl readline gmp bison-native"
-
-SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2 \
- "
-SRC_URI[md5sum] = "d4dcb61df80aa544b2e142e91d937635"
-SRC_URI[sha256sum] = "ad8181b5fcb9ca572f444bed54018749588522ee97e4c21922648bb78d7e7e91"
-
-inherit autotools manpages pkgconfig
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[man] = "--enable--man-doc, --disable-man-doc"
-
-ASNEEDED = ""
-
-RRECOMMENDS_${PN} += "kernel-module-nf-tables"
diff --git a/external/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.5.bb b/external/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.5.bb
new file mode 100644
index 00000000..0fd187f1
--- /dev/null
+++ b/external/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.5.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Netfilter Tables userspace utillites"
+SECTION = "net"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79"
+
+DEPENDS = "libmnl libnftnl bison-native \
+ ${@bb.utils.contains('PACKAGECONFIG', 'mini-gmp', '', 'gmp', d)}"
+
+# Ensure we reject the 0.099 version by matching at least two dots
+UPSTREAM_CHECK_REGEX = "nftables-(?P<pver>\d+(\.\d+){2,}).tar.bz2"
+
+SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "f2c1957eabc370057c4576b8f33a71d91a6ad019b8b335abafe61c9c42cc7e16"
+
+inherit autotools manpages pkgconfig
+
+PACKAGECONFIG ??= "python readline"
+PACKAGECONFIG[json] = "--with-json, --without-json, jansson"
+PACKAGECONFIG[manpages] = "--enable-man-doc, --disable-man-doc, asciidoc-native"
+PACKAGECONFIG[mini-gmp] = "--with-mini-gmp, --without-mini-gmp"
+PACKAGECONFIG[python] = "--enable-python --with-python-bin=${PYTHON}, --with-python-bin="", python3"
+PACKAGECONFIG[readline] = "--with-cli=readline, --without-cli, readline"
+PACKAGECONFIG[xtables] = "--with-xtables, --without-xtables, iptables"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)}
+
+RRECOMMENDS_${PN} += "kernel-module-nf-tables"
+
+PACKAGES =+ "${PN}-python"
+FILES_${PN}-python = "${nonarch_libdir}/${PYTHON_DIR}"
+RDEPENDS_${PN}-python = "python3-core python3-json"