summaryrefslogtreecommitdiffstats
path: root/meta-networking
diff options
context:
space:
mode:
authorOleksandr Kravchuk <open.source@oleksandr-kravchuk.com>2019-07-12 22:25:57 +0200
committerKhem Raj <raj.khem@gmail.com>2019-07-13 23:28:06 -0700
commit8f114fa881f3e81d0c444517b0d484a0b307419e (patch)
tree947b75bd250a3584d683a7b5086ee8bf600d8edf /meta-networking
parent646a6c40268ad70eac51355c00e0d21d3a028f27 (diff)
downloadmeta-openembedded-8f114fa881f3e81d0c444517b0d484a0b307419e.tar.gz
libnftnl: update to 1.1.3
Updated libnftnl to 1.1.3 and refreshed patches. Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-networking')
-rw-r--r--meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch59
-rw-r--r--meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch307
-rw-r--r--meta-networking/recipes-filter/libnftnl/libnftnl_1.1.3.bb (renamed from meta-networking/recipes-filter/libnftnl/libnftnl_1.1.1.bb)4
3 files changed, 209 insertions, 161 deletions
diff --git a/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch b/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch
index 995fd59a5..699d0d922 100644
--- a/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch
+++ b/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch
@@ -1,4 +1,4 @@
1From 21eb59fbd071ebffb8495232766824944fb521a0 Mon Sep 17 00:00:00 2001 1From 6b76c76e6b3f93c422d666f49ee68df9d5426078 Mon Sep 17 00:00:00 2001
2From: Alex Kiernan <alex.kiernan@gmail.com> 2From: Alex Kiernan <alex.kiernan@gmail.com>
3Date: Wed, 7 Nov 2018 21:19:53 +0000 3Date: Wed, 7 Nov 2018 21:19:53 +0000
4Subject: [PATCH] Move exports before symbol definition 4Subject: [PATCH] Move exports before symbol definition
@@ -10,11 +10,11 @@ clang.
10 10
11Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> 11Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
12--- 12---
13 src/flowtable.c | 54 +++++++++++++++++++++++++++--------------------------- 13 src/flowtable.c | 54 ++++++++++++++++++++++++-------------------------
14 1 file changed, 27 insertions(+), 27 deletions(-) 14 1 file changed, 27 insertions(+), 27 deletions(-)
15 15
16diff --git a/src/flowtable.c b/src/flowtable.c 16diff --git a/src/flowtable.c b/src/flowtable.c
17index c1ddae4..d7434e3 100644 17index 1f7ba30..80de952 100644
18--- a/src/flowtable.c 18--- a/src/flowtable.c
19+++ b/src/flowtable.c 19+++ b/src/flowtable.c
20@@ -34,12 +34,13 @@ struct nftnl_flowtable { 20@@ -34,12 +34,13 @@ struct nftnl_flowtable {
@@ -49,7 +49,7 @@ index c1ddae4..d7434e3 100644
49 void nftnl_flowtable_unset(struct nftnl_flowtable *c, uint16_t attr) 49 void nftnl_flowtable_unset(struct nftnl_flowtable *c, uint16_t attr)
50 { 50 {
51 int i; 51 int i;
52@@ -96,7 +97,6 @@ void nftnl_flowtable_unset(struct nftnl_flowtable *c, uint16_t attr) 52@@ -95,7 +96,6 @@ void nftnl_flowtable_unset(struct nftnl_flowtable *c, uint16_t attr)
53 53
54 c->flags &= ~(1 << attr); 54 c->flags &= ~(1 << attr);
55 } 55 }
@@ -57,7 +57,7 @@ index c1ddae4..d7434e3 100644
57 57
58 static uint32_t nftnl_flowtable_validate[NFTNL_FLOWTABLE_MAX + 1] = { 58 static uint32_t nftnl_flowtable_validate[NFTNL_FLOWTABLE_MAX + 1] = {
59 [NFTNL_FLOWTABLE_HOOKNUM] = sizeof(uint32_t), 59 [NFTNL_FLOWTABLE_HOOKNUM] = sizeof(uint32_t),
60@@ -105,6 +105,7 @@ static uint32_t nftnl_flowtable_validate[NFTNL_FLOWTABLE_MAX + 1] = { 60@@ -104,6 +104,7 @@ static uint32_t nftnl_flowtable_validate[NFTNL_FLOWTABLE_MAX + 1] = {
61 [NFTNL_FLOWTABLE_FLAGS] = sizeof(uint32_t), 61 [NFTNL_FLOWTABLE_FLAGS] = sizeof(uint32_t),
62 }; 62 };
63 63
@@ -65,7 +65,7 @@ index c1ddae4..d7434e3 100644
65 int nftnl_flowtable_set_data(struct nftnl_flowtable *c, uint16_t attr, 65 int nftnl_flowtable_set_data(struct nftnl_flowtable *c, uint16_t attr,
66 const void *data, uint32_t data_len) 66 const void *data, uint32_t data_len)
67 { 67 {
68@@ -170,32 +171,32 @@ int nftnl_flowtable_set_data(struct nftnl_flowtable *c, uint16_t attr, 68@@ -169,32 +170,32 @@ int nftnl_flowtable_set_data(struct nftnl_flowtable *c, uint16_t attr,
69 c->flags |= (1 << attr); 69 c->flags |= (1 << attr);
70 return 0; 70 return 0;
71 } 71 }
@@ -103,7 +103,7 @@ index c1ddae4..d7434e3 100644
103 const void *nftnl_flowtable_get_data(const struct nftnl_flowtable *c, 103 const void *nftnl_flowtable_get_data(const struct nftnl_flowtable *c,
104 uint16_t attr, uint32_t *data_len) 104 uint16_t attr, uint32_t *data_len)
105 { 105 {
106@@ -229,21 +230,21 @@ const void *nftnl_flowtable_get_data(const struct nftnl_flowtable *c, 106@@ -228,21 +229,21 @@ const void *nftnl_flowtable_get_data(const struct nftnl_flowtable *c,
107 } 107 }
108 return NULL; 108 return NULL;
109 } 109 }
@@ -127,8 +127,8 @@ index c1ddae4..d7434e3 100644
127+EXPORT_SYMBOL(nftnl_flowtable_get_u32); 127+EXPORT_SYMBOL(nftnl_flowtable_get_u32);
128 uint32_t nftnl_flowtable_get_u32(const struct nftnl_flowtable *c, uint16_t attr) 128 uint32_t nftnl_flowtable_get_u32(const struct nftnl_flowtable *c, uint16_t attr)
129 { 129 {
130 uint32_t data_len; 130 uint32_t data_len = 0;
131@@ -253,8 +254,8 @@ uint32_t nftnl_flowtable_get_u32(const struct nftnl_flowtable *c, uint16_t attr) 131@@ -252,8 +253,8 @@ uint32_t nftnl_flowtable_get_u32(const struct nftnl_flowtable *c, uint16_t attr)
132 132
133 return val ? *val : 0; 133 return val ? *val : 0;
134 } 134 }
@@ -137,8 +137,8 @@ index c1ddae4..d7434e3 100644
137+EXPORT_SYMBOL(nftnl_flowtable_get_s32); 137+EXPORT_SYMBOL(nftnl_flowtable_get_s32);
138 int32_t nftnl_flowtable_get_s32(const struct nftnl_flowtable *c, uint16_t attr) 138 int32_t nftnl_flowtable_get_s32(const struct nftnl_flowtable *c, uint16_t attr)
139 { 139 {
140 uint32_t data_len; 140 uint32_t data_len = 0;
141@@ -264,8 +265,8 @@ int32_t nftnl_flowtable_get_s32(const struct nftnl_flowtable *c, uint16_t attr) 141@@ -263,8 +264,8 @@ int32_t nftnl_flowtable_get_s32(const struct nftnl_flowtable *c, uint16_t attr)
142 142
143 return val ? *val : 0; 143 return val ? *val : 0;
144 } 144 }
@@ -148,7 +148,7 @@ index c1ddae4..d7434e3 100644
148 void nftnl_flowtable_nlmsg_build_payload(struct nlmsghdr *nlh, 148 void nftnl_flowtable_nlmsg_build_payload(struct nlmsghdr *nlh,
149 const struct nftnl_flowtable *c) 149 const struct nftnl_flowtable *c)
150 { 150 {
151@@ -301,7 +302,6 @@ void nftnl_flowtable_nlmsg_build_payload(struct nlmsghdr *nlh, 151@@ -300,7 +301,6 @@ void nftnl_flowtable_nlmsg_build_payload(struct nlmsghdr *nlh,
152 if (c->flags & (1 << NFTNL_FLOWTABLE_SIZE)) 152 if (c->flags & (1 << NFTNL_FLOWTABLE_SIZE))
153 mnl_attr_put_u32(nlh, NFTA_FLOWTABLE_SIZE, htonl(c->size)); 153 mnl_attr_put_u32(nlh, NFTA_FLOWTABLE_SIZE, htonl(c->size));
154 } 154 }
@@ -156,7 +156,7 @@ index c1ddae4..d7434e3 100644
156 156
157 static int nftnl_flowtable_parse_attr_cb(const struct nlattr *attr, void *data) 157 static int nftnl_flowtable_parse_attr_cb(const struct nlattr *attr, void *data)
158 { 158 {
159@@ -412,6 +412,7 @@ static int nftnl_flowtable_parse_hook(struct nlattr *attr, struct nftnl_flowtabl 159@@ -415,6 +415,7 @@ static int nftnl_flowtable_parse_hook(struct nlattr *attr, struct nftnl_flowtabl
160 return 0; 160 return 0;
161 } 161 }
162 162
@@ -164,7 +164,7 @@ index c1ddae4..d7434e3 100644
164 int nftnl_flowtable_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_flowtable *c) 164 int nftnl_flowtable_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_flowtable *c)
165 { 165 {
166 struct nlattr *tb[NFTA_FLOWTABLE_MAX + 1] = {}; 166 struct nlattr *tb[NFTA_FLOWTABLE_MAX + 1] = {};
167@@ -460,7 +461,6 @@ int nftnl_flowtable_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_flowtab 167@@ -463,7 +464,6 @@ int nftnl_flowtable_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_flowtab
168 168
169 return ret; 169 return ret;
170 } 170 }
@@ -172,15 +172,16 @@ index c1ddae4..d7434e3 100644
172 172
173 static const char *nftnl_hooknum2str(int family, int hooknum) 173 static const char *nftnl_hooknum2str(int family, int hooknum)
174 { 174 {
175@@ -612,20 +612,20 @@ static int nftnl_flowtable_do_parse(struct nftnl_flowtable *c, 175@@ -516,14 +516,15 @@ static inline int nftnl_str2hooknum(int family, const char *hook)
176 return ret; 176 return -1;
177 } 177 }
178 178
179+EXPORT_SYMBOL(nftnl_flowtable_parse); 179+EXPORT_SYMBOL(nftnl_flowtable_parse);
180 int nftnl_flowtable_parse(struct nftnl_flowtable *c, enum nftnl_parse_type type, 180 int nftnl_flowtable_parse(struct nftnl_flowtable *c, enum nftnl_parse_type type,
181 const char *data, struct nftnl_parse_err *err) 181 const char *data, struct nftnl_parse_err *err)
182 { 182 {
183 return nftnl_flowtable_do_parse(c, type, data, err, NFTNL_PARSE_BUFFER); 183 errno = EOPNOTSUPP;
184 return -1;
184 } 185 }
185-EXPORT_SYMBOL(nftnl_flowtable_parse); 186-EXPORT_SYMBOL(nftnl_flowtable_parse);
186 187
@@ -188,14 +189,15 @@ index c1ddae4..d7434e3 100644
188 int nftnl_flowtable_parse_file(struct nftnl_flowtable *c, 189 int nftnl_flowtable_parse_file(struct nftnl_flowtable *c,
189 enum nftnl_parse_type type, 190 enum nftnl_parse_type type,
190 FILE *fp, struct nftnl_parse_err *err) 191 FILE *fp, struct nftnl_parse_err *err)
191 { 192@@ -531,7 +532,6 @@ int nftnl_flowtable_parse_file(struct nftnl_flowtable *c,
192 return nftnl_flowtable_do_parse(c, type, fp, err, NFTNL_PARSE_FILE); 193 errno = EOPNOTSUPP;
194 return -1;
193 } 195 }
194-EXPORT_SYMBOL(nftnl_flowtable_parse_file); 196-EXPORT_SYMBOL(nftnl_flowtable_parse_file);
195 197
196 static int nftnl_flowtable_export(char *buf, size_t size, 198 static int nftnl_flowtable_snprintf_default(char *buf, size_t size,
197 const struct nftnl_flowtable *c, int type) 199 const struct nftnl_flowtable *c)
198@@ -720,6 +720,7 @@ static int nftnl_flowtable_cmd_snprintf(char *buf, size_t size, 200@@ -587,6 +587,7 @@ static int nftnl_flowtable_cmd_snprintf(char *buf, size_t size,
199 return offset; 201 return offset;
200 } 202 }
201 203
@@ -203,7 +205,7 @@ index c1ddae4..d7434e3 100644
203 int nftnl_flowtable_snprintf(char *buf, size_t size, const struct nftnl_flowtable *c, 205 int nftnl_flowtable_snprintf(char *buf, size_t size, const struct nftnl_flowtable *c,
204 uint32_t type, uint32_t flags) 206 uint32_t type, uint32_t flags)
205 { 207 {
206@@ -729,7 +730,6 @@ int nftnl_flowtable_snprintf(char *buf, size_t size, const struct nftnl_flowtabl 208@@ -596,7 +597,6 @@ int nftnl_flowtable_snprintf(char *buf, size_t size, const struct nftnl_flowtabl
207 return nftnl_flowtable_cmd_snprintf(buf, size, c, nftnl_flag2cmd(flags), 209 return nftnl_flowtable_cmd_snprintf(buf, size, c, nftnl_flag2cmd(flags),
208 type, flags); 210 type, flags);
209 } 211 }
@@ -211,7 +213,7 @@ index c1ddae4..d7434e3 100644
211 213
212 static int nftnl_flowtable_do_snprintf(char *buf, size_t size, const void *c, 214 static int nftnl_flowtable_do_snprintf(char *buf, size_t size, const void *c,
213 uint32_t cmd, uint32_t type, uint32_t flags) 215 uint32_t cmd, uint32_t type, uint32_t flags)
214@@ -737,18 +737,19 @@ static int nftnl_flowtable_do_snprintf(char *buf, size_t size, const void *c, 216@@ -604,18 +604,19 @@ static int nftnl_flowtable_do_snprintf(char *buf, size_t size, const void *c,
215 return nftnl_flowtable_snprintf(buf, size, c, type, flags); 217 return nftnl_flowtable_snprintf(buf, size, c, type, flags);
216 } 218 }
217 219
@@ -232,7 +234,7 @@ index c1ddae4..d7434e3 100644
232 struct nftnl_flowtable_list *nftnl_flowtable_list_alloc(void) 234 struct nftnl_flowtable_list *nftnl_flowtable_list_alloc(void)
233 { 235 {
234 struct nftnl_flowtable_list *list; 236 struct nftnl_flowtable_list *list;
235@@ -761,8 +762,8 @@ struct nftnl_flowtable_list *nftnl_flowtable_list_alloc(void) 237@@ -628,8 +629,8 @@ struct nftnl_flowtable_list *nftnl_flowtable_list_alloc(void)
236 238
237 return list; 239 return list;
238 } 240 }
@@ -242,7 +244,7 @@ index c1ddae4..d7434e3 100644
242 void nftnl_flowtable_list_free(struct nftnl_flowtable_list *list) 244 void nftnl_flowtable_list_free(struct nftnl_flowtable_list *list)
243 { 245 {
244 struct nftnl_flowtable *s, *tmp; 246 struct nftnl_flowtable *s, *tmp;
245@@ -773,34 +774,34 @@ void nftnl_flowtable_list_free(struct nftnl_flowtable_list *list) 247@@ -640,34 +641,34 @@ void nftnl_flowtable_list_free(struct nftnl_flowtable_list *list)
246 } 248 }
247 xfree(list); 249 xfree(list);
248 } 250 }
@@ -282,8 +284,11 @@ index c1ddae4..d7434e3 100644
282 int nftnl_flowtable_list_foreach(struct nftnl_flowtable_list *flowtable_list, 284 int nftnl_flowtable_list_foreach(struct nftnl_flowtable_list *flowtable_list,
283 int (*cb)(struct nftnl_flowtable *t, void *data), void *data) 285 int (*cb)(struct nftnl_flowtable *t, void *data), void *data)
284 { 286 {
285@@ -814,4 +815,3 @@ int nftnl_flowtable_list_foreach(struct nftnl_flowtable_list *flowtable_list, 287@@ -681,4 +682,3 @@ int nftnl_flowtable_list_foreach(struct nftnl_flowtable_list *flowtable_list,
286 } 288 }
287 return 0; 289 return 0;
288 } 290 }
289-EXPORT_SYMBOL(nftnl_flowtable_list_foreach); 291-EXPORT_SYMBOL(nftnl_flowtable_list_foreach);
292--
2932.17.1
294
diff --git a/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch b/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch
index e7e8f6fe9..561f0e554 100644
--- a/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch
+++ b/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch
@@ -1,4 +1,4 @@
1From 5ea9fa9d345005f2f53b1b598edb85f5f24ca9da Mon Sep 17 00:00:00 2001 1From 9e2c810ebc3c917ea7483205178416e9eaf952fe Mon Sep 17 00:00:00 2001
2From: Alex Kiernan <alex.kiernan@gmail.com> 2From: Alex Kiernan <alex.kiernan@gmail.com>
3Date: Wed, 7 Nov 2018 19:41:54 +0000 3Date: Wed, 7 Nov 2018 19:41:54 +0000
4Subject: [PATCH] avoid naming local function as one of printf family 4Subject: [PATCH] avoid naming local function as one of printf family
@@ -35,6 +35,7 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
35 src/expr/nat.c | 2 +- 35 src/expr/nat.c | 2 +-
36 src/expr/numgen.c | 2 +- 36 src/expr/numgen.c | 2 +-
37 src/expr/objref.c | 2 +- 37 src/expr/objref.c | 2 +-
38 src/expr/osf.c | 2 +-
38 src/expr/payload.c | 2 +- 39 src/expr/payload.c | 2 +-
39 src/expr/queue.c | 2 +- 40 src/expr/queue.c | 2 +-
40 src/expr/quota.c | 2 +- 41 src/expr/quota.c | 2 +-
@@ -44,44 +45,50 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
44 src/expr/rt.c | 2 +- 45 src/expr/rt.c | 2 +-
45 src/expr/socket.c | 2 +- 46 src/expr/socket.c | 2 +-
46 src/expr/target.c | 2 +- 47 src/expr/target.c | 2 +-
48 src/expr/tproxy.c | 2 +-
49 src/expr/tunnel.c | 2 +-
50 src/expr/xfrm.c | 2 +-
47 src/obj/counter.c | 2 +- 51 src/obj/counter.c | 2 +-
48 src/obj/ct_helper.c | 2 +- 52 src/obj/ct_helper.c | 2 +-
53 src/obj/ct_timeout.c | 2 +-
49 src/obj/limit.c | 2 +- 54 src/obj/limit.c | 2 +-
50 src/obj/quota.c | 2 +- 55 src/obj/quota.c | 2 +-
51 src/object.c | 4 ++-- 56 src/obj/secmark.c | 2 +-
52 40 files changed, 42 insertions(+), 42 deletions(-) 57 src/obj/tunnel.c | 2 +-
58 src/object.c | 2 +-
59 47 files changed, 48 insertions(+), 48 deletions(-)
53 60
54diff --git a/include/expr_ops.h b/include/expr_ops.h 61diff --git a/include/expr_ops.h b/include/expr_ops.h
55index e639390..c4fe050 100644 62index a7f1b9a..d2946de 100644
56--- a/include/expr_ops.h 63--- a/include/expr_ops.h
57+++ b/include/expr_ops.h 64+++ b/include/expr_ops.h
58@@ -18,7 +18,7 @@ struct expr_ops { 65@@ -17,7 +17,7 @@ struct expr_ops {
59 const void *(*get)(const struct nftnl_expr *e, uint16_t type, uint32_t *data_len); 66 const void *(*get)(const struct nftnl_expr *e, uint16_t type, uint32_t *data_len);
60 int (*parse)(struct nftnl_expr *e, struct nlattr *attr); 67 int (*parse)(struct nftnl_expr *e, struct nlattr *attr);
61 void (*build)(struct nlmsghdr *nlh, const struct nftnl_expr *e); 68 void (*build)(struct nlmsghdr *nlh, const struct nftnl_expr *e);
62- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e); 69- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e);
63+ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e); 70+ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e);
64 int (*json_parse)(struct nftnl_expr *e, json_t *data,
65 struct nftnl_parse_err *err);
66 }; 71 };
72
73 struct expr_ops *nftnl_expr_ops_lookup(const char *name);
67diff --git a/include/obj.h b/include/obj.h 74diff --git a/include/obj.h b/include/obj.h
68index 4a728c8..4c20bd1 100644 75index 35b5c40..decd1ce 100644
69--- a/include/obj.h 76--- a/include/obj.h
70+++ b/include/obj.h 77+++ b/include/obj.h
71@@ -55,7 +55,7 @@ struct obj_ops { 78@@ -92,7 +92,7 @@ struct obj_ops {
72 const void *(*get)(const struct nftnl_obj *e, uint16_t type, uint32_t *data_len); 79 const void *(*get)(const struct nftnl_obj *e, uint16_t type, uint32_t *data_len);
73 int (*parse)(struct nftnl_obj *e, struct nlattr *attr); 80 int (*parse)(struct nftnl_obj *e, struct nlattr *attr);
74 void (*build)(struct nlmsghdr *nlh, const struct nftnl_obj *e); 81 void (*build)(struct nlmsghdr *nlh, const struct nftnl_obj *e);
75- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e); 82- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e);
76+ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e); 83+ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e);
77 int (*json_parse)(struct nftnl_obj *e, json_t *data,
78 struct nftnl_parse_err *err);
79 }; 84 };
85
86 extern struct obj_ops obj_ops_counter;
80diff --git a/src/expr.c b/src/expr.c 87diff --git a/src/expr.c b/src/expr.c
81index 62565e0..2489c30 100644 88index 80c4c36..b698a60 100644
82--- a/src/expr.c 89--- a/src/expr.c
83+++ b/src/expr.c 90+++ b/src/expr.c
84@@ -285,10 +285,10 @@ int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr, 91@@ -275,10 +275,10 @@ int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr,
85 if (size) 92 if (size)
86 buf[0] = '\0'; 93 buf[0] = '\0';
87 94
@@ -95,370 +102,351 @@ index 62565e0..2489c30 100644
95 102
96 return offset; 103 return offset;
97diff --git a/src/expr/bitwise.c b/src/expr/bitwise.c 104diff --git a/src/expr/bitwise.c b/src/expr/bitwise.c
98index a89734b..f8360b1 100644 105index c9d40df..27d644b 100644
99--- a/src/expr/bitwise.c 106--- a/src/expr/bitwise.c
100+++ b/src/expr/bitwise.c 107+++ b/src/expr/bitwise.c
101@@ -299,6 +299,6 @@ struct expr_ops expr_ops_bitwise = { 108@@ -219,5 +219,5 @@ struct expr_ops expr_ops_bitwise = {
102 .get = nftnl_expr_bitwise_get, 109 .get = nftnl_expr_bitwise_get,
103 .parse = nftnl_expr_bitwise_parse, 110 .parse = nftnl_expr_bitwise_parse,
104 .build = nftnl_expr_bitwise_build, 111 .build = nftnl_expr_bitwise_build,
105- .snprintf = nftnl_expr_bitwise_snprintf, 112- .snprintf = nftnl_expr_bitwise_snprintf,
106+ .snprintf_ = nftnl_expr_bitwise_snprintf, 113+ .snprintf_ = nftnl_expr_bitwise_snprintf,
107 .json_parse = nftnl_expr_bitwise_json_parse,
108 }; 114 };
109diff --git a/src/expr/byteorder.c b/src/expr/byteorder.c 115diff --git a/src/expr/byteorder.c b/src/expr/byteorder.c
110index 47c04cf..61f733f 100644 116index efdfa2b..7ae9dfb 100644
111--- a/src/expr/byteorder.c 117--- a/src/expr/byteorder.c
112+++ b/src/expr/byteorder.c 118+++ b/src/expr/byteorder.c
113@@ -314,6 +314,6 @@ struct expr_ops expr_ops_byteorder = { 119@@ -234,5 +234,5 @@ struct expr_ops expr_ops_byteorder = {
114 .get = nftnl_expr_byteorder_get, 120 .get = nftnl_expr_byteorder_get,
115 .parse = nftnl_expr_byteorder_parse, 121 .parse = nftnl_expr_byteorder_parse,
116 .build = nftnl_expr_byteorder_build, 122 .build = nftnl_expr_byteorder_build,
117- .snprintf = nftnl_expr_byteorder_snprintf, 123- .snprintf = nftnl_expr_byteorder_snprintf,
118+ .snprintf_ = nftnl_expr_byteorder_snprintf, 124+ .snprintf_ = nftnl_expr_byteorder_snprintf,
119 .json_parse = nftnl_expr_byteorder_json_parse,
120 }; 125 };
121diff --git a/src/expr/cmp.c b/src/expr/cmp.c 126diff --git a/src/expr/cmp.c b/src/expr/cmp.c
122index b26d0eb..522c7be 100644 127index 86d7842..e3be442 100644
123--- a/src/expr/cmp.c 128--- a/src/expr/cmp.c
124+++ b/src/expr/cmp.c 129+++ b/src/expr/cmp.c
125@@ -284,6 +284,6 @@ struct expr_ops expr_ops_cmp = { 130@@ -216,5 +216,5 @@ struct expr_ops expr_ops_cmp = {
126 .get = nftnl_expr_cmp_get, 131 .get = nftnl_expr_cmp_get,
127 .parse = nftnl_expr_cmp_parse, 132 .parse = nftnl_expr_cmp_parse,
128 .build = nftnl_expr_cmp_build, 133 .build = nftnl_expr_cmp_build,
129- .snprintf = nftnl_expr_cmp_snprintf, 134- .snprintf = nftnl_expr_cmp_snprintf,
130+ .snprintf_ = nftnl_expr_cmp_snprintf, 135+ .snprintf_ = nftnl_expr_cmp_snprintf,
131 .json_parse = nftnl_expr_cmp_json_parse,
132 }; 136 };
133diff --git a/src/expr/connlimit.c b/src/expr/connlimit.c 137diff --git a/src/expr/connlimit.c b/src/expr/connlimit.c
134index 60965b5..4e41866 100644 138index 53af93b..6c8bc40 100644
135--- a/src/expr/connlimit.c 139--- a/src/expr/connlimit.c
136+++ b/src/expr/connlimit.c 140+++ b/src/expr/connlimit.c
137@@ -202,6 +202,6 @@ struct expr_ops expr_ops_connlimit = { 141@@ -149,5 +149,5 @@ struct expr_ops expr_ops_connlimit = {
138 .get = nftnl_expr_connlimit_get, 142 .get = nftnl_expr_connlimit_get,
139 .parse = nftnl_expr_connlimit_parse, 143 .parse = nftnl_expr_connlimit_parse,
140 .build = nftnl_expr_connlimit_build, 144 .build = nftnl_expr_connlimit_build,
141- .snprintf = nftnl_expr_connlimit_snprintf, 145- .snprintf = nftnl_expr_connlimit_snprintf,
142+ .snprintf_ = nftnl_expr_connlimit_snprintf, 146+ .snprintf_ = nftnl_expr_connlimit_snprintf,
143 .json_parse = nftnl_expr_connlimit_json_parse,
144 }; 147 };
145diff --git a/src/expr/counter.c b/src/expr/counter.c 148diff --git a/src/expr/counter.c b/src/expr/counter.c
146index 21901e8..9fd7655 100644 149index 89a602e..a32a69e 100644
147--- a/src/expr/counter.c 150--- a/src/expr/counter.c
148+++ b/src/expr/counter.c 151+++ b/src/expr/counter.c
149@@ -200,6 +200,6 @@ struct expr_ops expr_ops_counter = { 152@@ -147,5 +147,5 @@ struct expr_ops expr_ops_counter = {
150 .get = nftnl_expr_counter_get, 153 .get = nftnl_expr_counter_get,
151 .parse = nftnl_expr_counter_parse, 154 .parse = nftnl_expr_counter_parse,
152 .build = nftnl_expr_counter_build, 155 .build = nftnl_expr_counter_build,
153- .snprintf = nftnl_expr_counter_snprintf, 156- .snprintf = nftnl_expr_counter_snprintf,
154+ .snprintf_ = nftnl_expr_counter_snprintf, 157+ .snprintf_ = nftnl_expr_counter_snprintf,
155 .json_parse = nftnl_expr_counter_json_parse,
156 }; 158 };
157diff --git a/src/expr/ct.c b/src/expr/ct.c 159diff --git a/src/expr/ct.c b/src/expr/ct.c
158index 39e9be6..b363f7c 100644 160index b9ca2dc..6fbed1d 100644
159--- a/src/expr/ct.c 161--- a/src/expr/ct.c
160+++ b/src/expr/ct.c 162+++ b/src/expr/ct.c
161@@ -357,6 +357,6 @@ struct expr_ops expr_ops_ct = { 163@@ -272,5 +272,5 @@ struct expr_ops expr_ops_ct = {
162 .get = nftnl_expr_ct_get, 164 .get = nftnl_expr_ct_get,
163 .parse = nftnl_expr_ct_parse, 165 .parse = nftnl_expr_ct_parse,
164 .build = nftnl_expr_ct_build, 166 .build = nftnl_expr_ct_build,
165- .snprintf = nftnl_expr_ct_snprintf, 167- .snprintf = nftnl_expr_ct_snprintf,
166+ .snprintf_ = nftnl_expr_ct_snprintf, 168+ .snprintf_ = nftnl_expr_ct_snprintf,
167 .json_parse = nftnl_expr_ct_json_parse,
168 }; 169 };
169diff --git a/src/expr/dup.c b/src/expr/dup.c 170diff --git a/src/expr/dup.c b/src/expr/dup.c
170index ed8e620..8d603e3 100644 171index 2bb35e5..d9bd4b1 100644
171--- a/src/expr/dup.c 172--- a/src/expr/dup.c
172+++ b/src/expr/dup.c 173+++ b/src/expr/dup.c
173@@ -206,6 +206,6 @@ struct expr_ops expr_ops_dup = { 174@@ -154,5 +154,5 @@ struct expr_ops expr_ops_dup = {
174 .get = nftnl_expr_dup_get, 175 .get = nftnl_expr_dup_get,
175 .parse = nftnl_expr_dup_parse, 176 .parse = nftnl_expr_dup_parse,
176 .build = nftnl_expr_dup_build, 177 .build = nftnl_expr_dup_build,
177- .snprintf = nftnl_expr_dup_snprintf, 178- .snprintf = nftnl_expr_dup_snprintf,
178+ .snprintf_ = nftnl_expr_dup_snprintf, 179+ .snprintf_ = nftnl_expr_dup_snprintf,
179 .json_parse = nftnl_expr_dup_json_parse,
180 }; 180 };
181diff --git a/src/expr/dynset.c b/src/expr/dynset.c 181diff --git a/src/expr/dynset.c b/src/expr/dynset.c
182index 160d0e1..a43f4da 100644 182index 68115ba..6e43bb4 100644
183--- a/src/expr/dynset.c 183--- a/src/expr/dynset.c
184+++ b/src/expr/dynset.c 184+++ b/src/expr/dynset.c
185@@ -368,6 +368,6 @@ struct expr_ops expr_ops_dynset = { 185@@ -288,5 +288,5 @@ struct expr_ops expr_ops_dynset = {
186 .get = nftnl_expr_dynset_get, 186 .get = nftnl_expr_dynset_get,
187 .parse = nftnl_expr_dynset_parse, 187 .parse = nftnl_expr_dynset_parse,
188 .build = nftnl_expr_dynset_build, 188 .build = nftnl_expr_dynset_build,
189- .snprintf = nftnl_expr_dynset_snprintf, 189- .snprintf = nftnl_expr_dynset_snprintf,
190+ .snprintf_ = nftnl_expr_dynset_snprintf, 190+ .snprintf_ = nftnl_expr_dynset_snprintf,
191 .json_parse = nftnl_expr_dynset_json_parse,
192 }; 191 };
193diff --git a/src/expr/exthdr.c b/src/expr/exthdr.c 192diff --git a/src/expr/exthdr.c b/src/expr/exthdr.c
194index 75cafbc..89ea7f5 100644 193index bef453e..f2696d6 100644
195--- a/src/expr/exthdr.c 194--- a/src/expr/exthdr.c
196+++ b/src/expr/exthdr.c 195+++ b/src/expr/exthdr.c
197@@ -385,6 +385,6 @@ struct expr_ops expr_ops_exthdr = { 196@@ -271,5 +271,5 @@ struct expr_ops expr_ops_exthdr = {
198 .get = nftnl_expr_exthdr_get, 197 .get = nftnl_expr_exthdr_get,
199 .parse = nftnl_expr_exthdr_parse, 198 .parse = nftnl_expr_exthdr_parse,
200 .build = nftnl_expr_exthdr_build, 199 .build = nftnl_expr_exthdr_build,
201- .snprintf = nftnl_expr_exthdr_snprintf, 200- .snprintf = nftnl_expr_exthdr_snprintf,
202+ .snprintf_ = nftnl_expr_exthdr_snprintf, 201+ .snprintf_ = nftnl_expr_exthdr_snprintf,
203 .json_parse = nftnl_expr_exthdr_json_parse,
204 }; 202 };
205diff --git a/src/expr/fib.c b/src/expr/fib.c 203diff --git a/src/expr/fib.c b/src/expr/fib.c
206index b922b26..ece4645 100644 204index 9475af4..8e7090d 100644
207--- a/src/expr/fib.c 205--- a/src/expr/fib.c
208+++ b/src/expr/fib.c 206+++ b/src/expr/fib.c
209@@ -274,6 +274,6 @@ struct expr_ops expr_ops_fib = { 207@@ -213,5 +213,5 @@ struct expr_ops expr_ops_fib = {
210 .get = nftnl_expr_fib_get, 208 .get = nftnl_expr_fib_get,
211 .parse = nftnl_expr_fib_parse, 209 .parse = nftnl_expr_fib_parse,
212 .build = nftnl_expr_fib_build, 210 .build = nftnl_expr_fib_build,
213- .snprintf = nftnl_expr_fib_snprintf, 211- .snprintf = nftnl_expr_fib_snprintf,
214+ .snprintf_ = nftnl_expr_fib_snprintf, 212+ .snprintf_ = nftnl_expr_fib_snprintf,
215 .json_parse = nftnl_expr_fib_json_parse,
216 }; 213 };
217diff --git a/src/expr/flow_offload.c b/src/expr/flow_offload.c 214diff --git a/src/expr/flow_offload.c b/src/expr/flow_offload.c
218index a2001c9..9cdbc21 100644 215index 6ccec9a..c2f2478 100644
219--- a/src/expr/flow_offload.c 216--- a/src/expr/flow_offload.c
220+++ b/src/expr/flow_offload.c 217+++ b/src/expr/flow_offload.c
221@@ -179,6 +179,6 @@ struct expr_ops expr_ops_flow = { 218@@ -134,5 +134,5 @@ struct expr_ops expr_ops_flow = {
222 .get = nftnl_expr_flow_get, 219 .get = nftnl_expr_flow_get,
223 .parse = nftnl_expr_flow_parse, 220 .parse = nftnl_expr_flow_parse,
224 .build = nftnl_expr_flow_build, 221 .build = nftnl_expr_flow_build,
225- .snprintf = nftnl_expr_flow_snprintf, 222- .snprintf = nftnl_expr_flow_snprintf,
226+ .snprintf_ = nftnl_expr_flow_snprintf, 223+ .snprintf_ = nftnl_expr_flow_snprintf,
227 .json_parse = nftnl_expr_flow_json_parse,
228 }; 224 };
229diff --git a/src/expr/fwd.c b/src/expr/fwd.c 225diff --git a/src/expr/fwd.c b/src/expr/fwd.c
230index 9021606..7178f43 100644 226index cff8235..bcd7d3f 100644
231--- a/src/expr/fwd.c 227--- a/src/expr/fwd.c
232+++ b/src/expr/fwd.c 228+++ b/src/expr/fwd.c
233@@ -233,6 +233,6 @@ struct expr_ops expr_ops_fwd = { 229@@ -174,5 +174,5 @@ struct expr_ops expr_ops_fwd = {
234 .get = nftnl_expr_fwd_get, 230 .get = nftnl_expr_fwd_get,
235 .parse = nftnl_expr_fwd_parse, 231 .parse = nftnl_expr_fwd_parse,
236 .build = nftnl_expr_fwd_build, 232 .build = nftnl_expr_fwd_build,
237- .snprintf = nftnl_expr_fwd_snprintf, 233- .snprintf = nftnl_expr_fwd_snprintf,
238+ .snprintf_ = nftnl_expr_fwd_snprintf, 234+ .snprintf_ = nftnl_expr_fwd_snprintf,
239 .json_parse = nftnl_expr_fwd_json_parse,
240 }; 235 };
241diff --git a/src/expr/hash.c b/src/expr/hash.c 236diff --git a/src/expr/hash.c b/src/expr/hash.c
242index 415537e..186c5b0 100644 237index 2c801d2..a9f6e7e 100644
243--- a/src/expr/hash.c 238--- a/src/expr/hash.c
244+++ b/src/expr/hash.c 239+++ b/src/expr/hash.c
245@@ -383,6 +383,6 @@ struct expr_ops expr_ops_hash = { 240@@ -241,5 +241,5 @@ struct expr_ops expr_ops_hash = {
246 .get = nftnl_expr_hash_get, 241 .get = nftnl_expr_hash_get,
247 .parse = nftnl_expr_hash_parse, 242 .parse = nftnl_expr_hash_parse,
248 .build = nftnl_expr_hash_build, 243 .build = nftnl_expr_hash_build,
249- .snprintf = nftnl_expr_hash_snprintf, 244- .snprintf = nftnl_expr_hash_snprintf,
250+ .snprintf_ = nftnl_expr_hash_snprintf, 245+ .snprintf_ = nftnl_expr_hash_snprintf,
251 .json_parse = nftnl_expr_hash_json_parse,
252 }; 246 };
253diff --git a/src/expr/immediate.c b/src/expr/immediate.c 247diff --git a/src/expr/immediate.c b/src/expr/immediate.c
254index b0570bd..91ccbdc 100644 248index 47106ae..ea86c88 100644
255--- a/src/expr/immediate.c 249--- a/src/expr/immediate.c
256+++ b/src/expr/immediate.c 250+++ b/src/expr/immediate.c
257@@ -316,6 +316,6 @@ struct expr_ops expr_ops_immediate = { 251@@ -235,5 +235,5 @@ struct expr_ops expr_ops_immediate = {
258 .get = nftnl_expr_immediate_get, 252 .get = nftnl_expr_immediate_get,
259 .parse = nftnl_expr_immediate_parse, 253 .parse = nftnl_expr_immediate_parse,
260 .build = nftnl_expr_immediate_build, 254 .build = nftnl_expr_immediate_build,
261- .snprintf = nftnl_expr_immediate_snprintf, 255- .snprintf = nftnl_expr_immediate_snprintf,
262+ .snprintf_ = nftnl_expr_immediate_snprintf, 256+ .snprintf_ = nftnl_expr_immediate_snprintf,
263 .json_parse = nftnl_expr_immediate_json_parse,
264 }; 257 };
265diff --git a/src/expr/limit.c b/src/expr/limit.c 258diff --git a/src/expr/limit.c b/src/expr/limit.c
266index 856ab18..e71fc2f 100644 259index 5872e27..0ce482f 100644
267--- a/src/expr/limit.c 260--- a/src/expr/limit.c
268+++ b/src/expr/limit.c 261+++ b/src/expr/limit.c
269@@ -285,6 +285,6 @@ struct expr_ops expr_ops_limit = { 262@@ -216,5 +216,5 @@ struct expr_ops expr_ops_limit = {
270 .get = nftnl_expr_limit_get, 263 .get = nftnl_expr_limit_get,
271 .parse = nftnl_expr_limit_parse, 264 .parse = nftnl_expr_limit_parse,
272 .build = nftnl_expr_limit_build, 265 .build = nftnl_expr_limit_build,
273- .snprintf = nftnl_expr_limit_snprintf, 266- .snprintf = nftnl_expr_limit_snprintf,
274+ .snprintf_ = nftnl_expr_limit_snprintf, 267+ .snprintf_ = nftnl_expr_limit_snprintf,
275 .json_parse = nftnl_expr_limit_json_parse,
276 }; 268 };
277diff --git a/src/expr/log.c b/src/expr/log.c 269diff --git a/src/expr/log.c b/src/expr/log.c
278index 86d9651..5769c1c 100644 270index bbe43d2..5506bc2 100644
279--- a/src/expr/log.c 271--- a/src/expr/log.c
280+++ b/src/expr/log.c 272+++ b/src/expr/log.c
281@@ -353,6 +353,6 @@ struct expr_ops expr_ops_log = { 273@@ -267,5 +267,5 @@ struct expr_ops expr_ops_log = {
282 .get = nftnl_expr_log_get, 274 .get = nftnl_expr_log_get,
283 .parse = nftnl_expr_log_parse, 275 .parse = nftnl_expr_log_parse,
284 .build = nftnl_expr_log_build, 276 .build = nftnl_expr_log_build,
285- .snprintf = nftnl_expr_log_snprintf, 277- .snprintf = nftnl_expr_log_snprintf,
286+ .snprintf_ = nftnl_expr_log_snprintf, 278+ .snprintf_ = nftnl_expr_log_snprintf,
287 .json_parse = nftnl_expr_log_json_parse,
288 }; 279 };
289diff --git a/src/expr/lookup.c b/src/expr/lookup.c 280diff --git a/src/expr/lookup.c b/src/expr/lookup.c
290index 5fcb81f..b2f0dd6 100644 281index a495ac0..678868c 100644
291--- a/src/expr/lookup.c 282--- a/src/expr/lookup.c
292+++ b/src/expr/lookup.c 283+++ b/src/expr/lookup.c
293@@ -292,6 +292,6 @@ struct expr_ops expr_ops_lookup = { 284@@ -221,5 +221,5 @@ struct expr_ops expr_ops_lookup = {
294 .get = nftnl_expr_lookup_get, 285 .get = nftnl_expr_lookup_get,
295 .parse = nftnl_expr_lookup_parse, 286 .parse = nftnl_expr_lookup_parse,
296 .build = nftnl_expr_lookup_build, 287 .build = nftnl_expr_lookup_build,
297- .snprintf = nftnl_expr_lookup_snprintf, 288- .snprintf = nftnl_expr_lookup_snprintf,
298+ .snprintf_ = nftnl_expr_lookup_snprintf, 289+ .snprintf_ = nftnl_expr_lookup_snprintf,
299 .json_parse = nftnl_expr_lookup_json_parse,
300 }; 290 };
301diff --git a/src/expr/masq.c b/src/expr/masq.c 291diff --git a/src/expr/masq.c b/src/expr/masq.c
302index 7c235d3..adec325 100644 292index f6f3ceb..88292a6 100644
303--- a/src/expr/masq.c 293--- a/src/expr/masq.c
304+++ b/src/expr/masq.c 294+++ b/src/expr/masq.c
305@@ -228,6 +228,6 @@ struct expr_ops expr_ops_masq = { 295@@ -169,5 +169,5 @@ struct expr_ops expr_ops_masq = {
306 .get = nftnl_expr_masq_get, 296 .get = nftnl_expr_masq_get,
307 .parse = nftnl_expr_masq_parse, 297 .parse = nftnl_expr_masq_parse,
308 .build = nftnl_expr_masq_build, 298 .build = nftnl_expr_masq_build,
309- .snprintf = nftnl_expr_masq_snprintf, 299- .snprintf = nftnl_expr_masq_snprintf,
310+ .snprintf_ = nftnl_expr_masq_snprintf, 300+ .snprintf_ = nftnl_expr_masq_snprintf,
311 .json_parse = nftnl_expr_masq_json_parse,
312 }; 301 };
313diff --git a/src/expr/match.c b/src/expr/match.c 302diff --git a/src/expr/match.c b/src/expr/match.c
314index dd09e1e..f0d8868 100644 303index 4fa74b2..249c6b5 100644
315--- a/src/expr/match.c 304--- a/src/expr/match.c
316+++ b/src/expr/match.c 305+++ b/src/expr/match.c
317@@ -249,6 +249,6 @@ struct expr_ops expr_ops_match = { 306@@ -198,5 +198,5 @@ struct expr_ops expr_ops_match = {
318 .get = nftnl_expr_match_get, 307 .get = nftnl_expr_match_get,
319 .parse = nftnl_expr_match_parse, 308 .parse = nftnl_expr_match_parse,
320 .build = nftnl_expr_match_build, 309 .build = nftnl_expr_match_build,
321- .snprintf = nftnl_expr_match_snprintf, 310- .snprintf = nftnl_expr_match_snprintf,
322+ .snprintf_ = nftnl_expr_match_snprintf, 311+ .snprintf_ = nftnl_expr_match_snprintf,
323 .json_parse = nftnl_expr_match_json_parse,
324 }; 312 };
325diff --git a/src/expr/meta.c b/src/expr/meta.c 313diff --git a/src/expr/meta.c b/src/expr/meta.c
326index de82105..91f1ebb 100644 314index ffcc896..5eaeb68 100644
327--- a/src/expr/meta.c 315--- a/src/expr/meta.c
328+++ b/src/expr/meta.c 316+++ b/src/expr/meta.c
329@@ -291,6 +291,6 @@ struct expr_ops expr_ops_meta = { 317@@ -222,5 +222,5 @@ struct expr_ops expr_ops_meta = {
330 .get = nftnl_expr_meta_get, 318 .get = nftnl_expr_meta_get,
331 .parse = nftnl_expr_meta_parse, 319 .parse = nftnl_expr_meta_parse,
332 .build = nftnl_expr_meta_build, 320 .build = nftnl_expr_meta_build,
333- .snprintf = nftnl_expr_meta_snprintf, 321- .snprintf = nftnl_expr_meta_snprintf,
334+ .snprintf_ = nftnl_expr_meta_snprintf, 322+ .snprintf_ = nftnl_expr_meta_snprintf,
335 .json_parse = nftnl_expr_meta_json_parse,
336 }; 323 };
337diff --git a/src/expr/nat.c b/src/expr/nat.c 324diff --git a/src/expr/nat.c b/src/expr/nat.c
338index 9271303..427c282 100644 325index 6b7d50e..be4a579 100644
339--- a/src/expr/nat.c 326--- a/src/expr/nat.c
340+++ b/src/expr/nat.c 327+++ b/src/expr/nat.c
341@@ -384,6 +384,6 @@ struct expr_ops expr_ops_nat = { 328@@ -279,5 +279,5 @@ struct expr_ops expr_ops_nat = {
342 .get = nftnl_expr_nat_get, 329 .get = nftnl_expr_nat_get,
343 .parse = nftnl_expr_nat_parse, 330 .parse = nftnl_expr_nat_parse,
344 .build = nftnl_expr_nat_build, 331 .build = nftnl_expr_nat_build,
345- .snprintf = nftnl_expr_nat_snprintf, 332- .snprintf = nftnl_expr_nat_snprintf,
346+ .snprintf_ = nftnl_expr_nat_snprintf, 333+ .snprintf_ = nftnl_expr_nat_snprintf,
347 .json_parse = nftnl_expr_nat_json_parse,
348 }; 334 };
349diff --git a/src/expr/numgen.c b/src/expr/numgen.c 335diff --git a/src/expr/numgen.c b/src/expr/numgen.c
350index 5336fde..8e0479a 100644 336index 4e0d541..5995ee3 100644
351--- a/src/expr/numgen.c 337--- a/src/expr/numgen.c
352+++ b/src/expr/numgen.c 338+++ b/src/expr/numgen.c
353@@ -313,6 +313,6 @@ struct expr_ops expr_ops_ng = { 339@@ -195,5 +195,5 @@ struct expr_ops expr_ops_ng = {
354 .get = nftnl_expr_ng_get, 340 .get = nftnl_expr_ng_get,
355 .parse = nftnl_expr_ng_parse, 341 .parse = nftnl_expr_ng_parse,
356 .build = nftnl_expr_ng_build, 342 .build = nftnl_expr_ng_build,
357- .snprintf = nftnl_expr_ng_snprintf, 343- .snprintf = nftnl_expr_ng_snprintf,
358+ .snprintf_ = nftnl_expr_ng_snprintf, 344+ .snprintf_ = nftnl_expr_ng_snprintf,
359 .json_parse = nftnl_expr_ng_json_parse,
360 }; 345 };
361diff --git a/src/expr/objref.c b/src/expr/objref.c 346diff --git a/src/expr/objref.c b/src/expr/objref.c
362index 64ee863..4504488 100644 347index 7388b18..e673ffd 100644
363--- a/src/expr/objref.c 348--- a/src/expr/objref.c
364+++ b/src/expr/objref.c 349+++ b/src/expr/objref.c
365@@ -278,6 +278,6 @@ struct expr_ops expr_ops_objref = { 350@@ -210,5 +210,5 @@ struct expr_ops expr_ops_objref = {
366 .get = nftnl_expr_objref_get, 351 .get = nftnl_expr_objref_get,
367 .parse = nftnl_expr_objref_parse, 352 .parse = nftnl_expr_objref_parse,
368 .build = nftnl_expr_objref_build, 353 .build = nftnl_expr_objref_build,
369- .snprintf = nftnl_expr_objref_snprintf, 354- .snprintf = nftnl_expr_objref_snprintf,
370+ .snprintf_ = nftnl_expr_objref_snprintf, 355+ .snprintf_ = nftnl_expr_objref_snprintf,
371 .json_parse = nftnl_expr_objref_json_parse, 356 };
357diff --git a/src/expr/osf.c b/src/expr/osf.c
358index 98d0df9..618b46e 100644
359--- a/src/expr/osf.c
360+++ b/src/expr/osf.c
361@@ -161,5 +161,5 @@ struct expr_ops expr_ops_osf = {
362 .get = nftnl_expr_osf_get,
363 .parse = nftnl_expr_osf_parse,
364 .build = nftnl_expr_osf_build,
365- .snprintf = nftnl_expr_osf_snprintf,
366+ .snprintf_ = nftnl_expr_osf_snprintf,
372 }; 367 };
373diff --git a/src/expr/payload.c b/src/expr/payload.c 368diff --git a/src/expr/payload.c b/src/expr/payload.c
374index 91e1587..894ac08 100644 369index 2192dad..37aacc4 100644
375--- a/src/expr/payload.c 370--- a/src/expr/payload.c
376+++ b/src/expr/payload.c 371+++ b/src/expr/payload.c
377@@ -348,6 +348,6 @@ struct expr_ops expr_ops_payload = { 372@@ -266,5 +266,5 @@ struct expr_ops expr_ops_payload = {
378 .get = nftnl_expr_payload_get, 373 .get = nftnl_expr_payload_get,
379 .parse = nftnl_expr_payload_parse, 374 .parse = nftnl_expr_payload_parse,
380 .build = nftnl_expr_payload_build, 375 .build = nftnl_expr_payload_build,
381- .snprintf = nftnl_expr_payload_snprintf, 376- .snprintf = nftnl_expr_payload_snprintf,
382+ .snprintf_ = nftnl_expr_payload_snprintf, 377+ .snprintf_ = nftnl_expr_payload_snprintf,
383 .json_parse = nftnl_expr_payload_json_parse,
384 }; 378 };
385diff --git a/src/expr/queue.c b/src/expr/queue.c 379diff --git a/src/expr/queue.c b/src/expr/queue.c
386index a392a27..ee26c10 100644 380index 051ef71..b06feff 100644
387--- a/src/expr/queue.c 381--- a/src/expr/queue.c
388+++ b/src/expr/queue.c 382+++ b/src/expr/queue.c
389@@ -275,6 +275,6 @@ struct expr_ops expr_ops_queue = { 383@@ -207,5 +207,5 @@ struct expr_ops expr_ops_queue = {
390 .get = nftnl_expr_queue_get, 384 .get = nftnl_expr_queue_get,
391 .parse = nftnl_expr_queue_parse, 385 .parse = nftnl_expr_queue_parse,
392 .build = nftnl_expr_queue_build, 386 .build = nftnl_expr_queue_build,
393- .snprintf = nftnl_expr_queue_snprintf, 387- .snprintf = nftnl_expr_queue_snprintf,
394+ .snprintf_ = nftnl_expr_queue_snprintf, 388+ .snprintf_ = nftnl_expr_queue_snprintf,
395 .json_parse = nftnl_expr_queue_json_parse,
396 }; 389 };
397diff --git a/src/expr/quota.c b/src/expr/quota.c 390diff --git a/src/expr/quota.c b/src/expr/quota.c
398index 667e6e1..ff5d182 100644 391index 39a92e6..41797be 100644
399--- a/src/expr/quota.c 392--- a/src/expr/quota.c
400+++ b/src/expr/quota.c 393+++ b/src/expr/quota.c
401@@ -203,6 +203,6 @@ struct expr_ops expr_ops_quota = { 394@@ -161,5 +161,5 @@ struct expr_ops expr_ops_quota = {
402 .get = nftnl_expr_quota_get, 395 .get = nftnl_expr_quota_get,
403 .parse = nftnl_expr_quota_parse, 396 .parse = nftnl_expr_quota_parse,
404 .build = nftnl_expr_quota_build, 397 .build = nftnl_expr_quota_build,
405- .snprintf = nftnl_expr_quota_snprintf, 398- .snprintf = nftnl_expr_quota_snprintf,
406+ .snprintf_ = nftnl_expr_quota_snprintf, 399+ .snprintf_ = nftnl_expr_quota_snprintf,
407 .json_parse = nftnl_expr_quota_json_parse,
408 }; 400 };
409diff --git a/src/expr/range.c b/src/expr/range.c 401diff --git a/src/expr/range.c b/src/expr/range.c
410index b2789ff..8910f8a 100644 402index d1d5083..b619cdf 100644
411--- a/src/expr/range.c 403--- a/src/expr/range.c
412+++ b/src/expr/range.c 404+++ b/src/expr/range.c
413@@ -283,6 +283,6 @@ struct expr_ops expr_ops_range = { 405@@ -227,5 +227,5 @@ struct expr_ops expr_ops_range = {
414 .get = nftnl_expr_range_get, 406 .get = nftnl_expr_range_get,
415 .parse = nftnl_expr_range_parse, 407 .parse = nftnl_expr_range_parse,
416 .build = nftnl_expr_range_build, 408 .build = nftnl_expr_range_build,
417- .snprintf = nftnl_expr_range_snprintf, 409- .snprintf = nftnl_expr_range_snprintf,
418+ .snprintf_ = nftnl_expr_range_snprintf, 410+ .snprintf_ = nftnl_expr_range_snprintf,
419 .json_parse = nftnl_expr_range_json_parse,
420 }; 411 };
421diff --git a/src/expr/redir.c b/src/expr/redir.c 412diff --git a/src/expr/redir.c b/src/expr/redir.c
422index b2aa345..41b77ab 100644 413index 477659a..5c4ebeb 100644
423--- a/src/expr/redir.c 414--- a/src/expr/redir.c
424+++ b/src/expr/redir.c 415+++ b/src/expr/redir.c
425@@ -242,6 +242,6 @@ struct expr_ops expr_ops_redir = { 416@@ -181,5 +181,5 @@ struct expr_ops expr_ops_redir = {
426 .get = nftnl_expr_redir_get, 417 .get = nftnl_expr_redir_get,
427 .parse = nftnl_expr_redir_parse, 418 .parse = nftnl_expr_redir_parse,
428 .build = nftnl_expr_redir_build, 419 .build = nftnl_expr_redir_build,
429- .snprintf = nftnl_expr_redir_snprintf, 420- .snprintf = nftnl_expr_redir_snprintf,
430+ .snprintf_ = nftnl_expr_redir_snprintf, 421+ .snprintf_ = nftnl_expr_redir_snprintf,
431 .json_parse = nftnl_expr_redir_json_parse,
432 }; 422 };
433diff --git a/src/expr/reject.c b/src/expr/reject.c 423diff --git a/src/expr/reject.c b/src/expr/reject.c
434index 11d8b20..b10e729 100644 424index 141942e..a98990d 100644
435--- a/src/expr/reject.c 425--- a/src/expr/reject.c
436+++ b/src/expr/reject.c 426+++ b/src/expr/reject.c
437@@ -200,6 +200,6 @@ struct expr_ops expr_ops_reject = { 427@@ -148,5 +148,5 @@ struct expr_ops expr_ops_reject = {
438 .get = nftnl_expr_reject_get, 428 .get = nftnl_expr_reject_get,
439 .parse = nftnl_expr_reject_parse, 429 .parse = nftnl_expr_reject_parse,
440 .build = nftnl_expr_reject_build, 430 .build = nftnl_expr_reject_build,
441- .snprintf = nftnl_expr_reject_snprintf, 431- .snprintf = nftnl_expr_reject_snprintf,
442+ .snprintf_ = nftnl_expr_reject_snprintf, 432+ .snprintf_ = nftnl_expr_reject_snprintf,
443 .json_parse = nftnl_expr_reject_json_parse,
444 }; 433 };
445diff --git a/src/expr/rt.c b/src/expr/rt.c 434diff --git a/src/expr/rt.c b/src/expr/rt.c
446index c3c92c7..688a042 100644 435index 0fce72d..32ace19 100644
447--- a/src/expr/rt.c 436--- a/src/expr/rt.c
448+++ b/src/expr/rt.c 437+++ b/src/expr/rt.c
449@@ -235,6 +235,6 @@ struct expr_ops expr_ops_rt = { 438@@ -177,5 +177,5 @@ struct expr_ops expr_ops_rt = {
450 .get = nftnl_expr_rt_get, 439 .get = nftnl_expr_rt_get,
451 .parse = nftnl_expr_rt_parse, 440 .parse = nftnl_expr_rt_parse,
452 .build = nftnl_expr_rt_build, 441 .build = nftnl_expr_rt_build,
453- .snprintf = nftnl_expr_rt_snprintf, 442- .snprintf = nftnl_expr_rt_snprintf,
454+ .snprintf_ = nftnl_expr_rt_snprintf, 443+ .snprintf_ = nftnl_expr_rt_snprintf,
455 .json_parse = nftnl_expr_rt_json_parse,
456 }; 444 };
457diff --git a/src/expr/socket.c b/src/expr/socket.c 445diff --git a/src/expr/socket.c b/src/expr/socket.c
458index db160a1..4c50011 100644 446index 96550d5..2394dbf 100644
459--- a/src/expr/socket.c 447--- a/src/expr/socket.c
460+++ b/src/expr/socket.c 448+++ b/src/expr/socket.c
461@@ -204,5 +204,5 @@ struct expr_ops expr_ops_socket = { 449@@ -174,5 +174,5 @@ struct expr_ops expr_ops_socket = {
462 .get = nftnl_expr_socket_get, 450 .get = nftnl_expr_socket_get,
463 .parse = nftnl_expr_socket_parse, 451 .parse = nftnl_expr_socket_parse,
464 .build = nftnl_expr_socket_build, 452 .build = nftnl_expr_socket_build,
@@ -466,79 +454,131 @@ index db160a1..4c50011 100644
466+ .snprintf_ = nftnl_expr_socket_snprintf, 454+ .snprintf_ = nftnl_expr_socket_snprintf,
467 }; 455 };
468diff --git a/src/expr/target.c b/src/expr/target.c 456diff --git a/src/expr/target.c b/src/expr/target.c
469index ed4bf7d..2ef4078 100644 457index 9100038..7180085 100644
470--- a/src/expr/target.c 458--- a/src/expr/target.c
471+++ b/src/expr/target.c 459+++ b/src/expr/target.c
472@@ -249,6 +249,6 @@ struct expr_ops expr_ops_target = { 460@@ -198,5 +198,5 @@ struct expr_ops expr_ops_target = {
473 .get = nftnl_expr_target_get, 461 .get = nftnl_expr_target_get,
474 .parse = nftnl_expr_target_parse, 462 .parse = nftnl_expr_target_parse,
475 .build = nftnl_expr_target_build, 463 .build = nftnl_expr_target_build,
476- .snprintf = nftnl_expr_target_snprintf, 464- .snprintf = nftnl_expr_target_snprintf,
477+ .snprintf_ = nftnl_expr_target_snprintf, 465+ .snprintf_ = nftnl_expr_target_snprintf,
478 .json_parse = nftnl_expr_target_json_parse, 466 };
467diff --git a/src/expr/tproxy.c b/src/expr/tproxy.c
468index 3827b75..feabbbe 100644
469--- a/src/expr/tproxy.c
470+++ b/src/expr/tproxy.c
471@@ -183,5 +183,5 @@ struct expr_ops expr_ops_tproxy = {
472 .get = nftnl_expr_tproxy_get,
473 .parse = nftnl_expr_tproxy_parse,
474 .build = nftnl_expr_tproxy_build,
475- .snprintf = nftnl_expr_tproxy_snprintf,
476+ .snprintf_ = nftnl_expr_tproxy_snprintf,
477 };
478diff --git a/src/expr/tunnel.c b/src/expr/tunnel.c
479index b2b8d72..1ed46d3 100644
480--- a/src/expr/tunnel.c
481+++ b/src/expr/tunnel.c
482@@ -173,5 +173,5 @@ struct expr_ops expr_ops_tunnel = {
483 .get = nftnl_expr_tunnel_get,
484 .parse = nftnl_expr_tunnel_parse,
485 .build = nftnl_expr_tunnel_build,
486- .snprintf = nftnl_expr_tunnel_snprintf,
487+ .snprintf_ = nftnl_expr_tunnel_snprintf,
488 };
489diff --git a/src/expr/xfrm.c b/src/expr/xfrm.c
490index 8fe5438..b6b2772 100644
491--- a/src/expr/xfrm.c
492+++ b/src/expr/xfrm.c
493@@ -239,5 +239,5 @@ struct expr_ops expr_ops_xfrm = {
494 .get = nftnl_expr_xfrm_get,
495 .parse = nftnl_expr_xfrm_parse,
496 .build = nftnl_expr_xfrm_build,
497- .snprintf = nftnl_expr_xfrm_snprintf,
498+ .snprintf_ = nftnl_expr_xfrm_snprintf,
479 }; 499 };
480diff --git a/src/obj/counter.c b/src/obj/counter.c 500diff --git a/src/obj/counter.c b/src/obj/counter.c
481index 332bb2b..edeb7be 100644 501index 1baba4e..3710bce 100644
482--- a/src/obj/counter.c 502--- a/src/obj/counter.c
483+++ b/src/obj/counter.c 503+++ b/src/obj/counter.c
484@@ -182,6 +182,6 @@ struct obj_ops obj_ops_counter = { 504@@ -145,5 +145,5 @@ struct obj_ops obj_ops_counter = {
485 .get = nftnl_obj_counter_get, 505 .get = nftnl_obj_counter_get,
486 .parse = nftnl_obj_counter_parse, 506 .parse = nftnl_obj_counter_parse,
487 .build = nftnl_obj_counter_build, 507 .build = nftnl_obj_counter_build,
488- .snprintf = nftnl_obj_counter_snprintf, 508- .snprintf = nftnl_obj_counter_snprintf,
489+ .snprintf_ = nftnl_obj_counter_snprintf, 509+ .snprintf_ = nftnl_obj_counter_snprintf,
490 .json_parse = nftnl_obj_counter_json_parse,
491 }; 510 };
492diff --git a/src/obj/ct_helper.c b/src/obj/ct_helper.c 511diff --git a/src/obj/ct_helper.c b/src/obj/ct_helper.c
493index 62569fe..69757ff 100644 512index d91f636..2037461 100644
494--- a/src/obj/ct_helper.c 513--- a/src/obj/ct_helper.c
495+++ b/src/obj/ct_helper.c 514+++ b/src/obj/ct_helper.c
496@@ -208,6 +208,6 @@ struct obj_ops obj_ops_ct_helper = { 515@@ -166,5 +166,5 @@ struct obj_ops obj_ops_ct_helper = {
497 .get = nftnl_obj_ct_helper_get, 516 .get = nftnl_obj_ct_helper_get,
498 .parse = nftnl_obj_ct_helper_parse, 517 .parse = nftnl_obj_ct_helper_parse,
499 .build = nftnl_obj_ct_helper_build, 518 .build = nftnl_obj_ct_helper_build,
500- .snprintf = nftnl_obj_ct_helper_snprintf, 519- .snprintf = nftnl_obj_ct_helper_snprintf,
501+ .snprintf_ = nftnl_obj_ct_helper_snprintf, 520+ .snprintf_ = nftnl_obj_ct_helper_snprintf,
502 .json_parse = nftnl_obj_quota_json_parse, 521 };
522diff --git a/src/obj/ct_timeout.c b/src/obj/ct_timeout.c
523index e2e9991..a4f2dd2 100644
524--- a/src/obj/ct_timeout.c
525+++ b/src/obj/ct_timeout.c
526@@ -330,5 +330,5 @@ struct obj_ops obj_ops_ct_timeout = {
527 .get = nftnl_obj_ct_timeout_get,
528 .parse = nftnl_obj_ct_timeout_parse,
529 .build = nftnl_obj_ct_timeout_build,
530- .snprintf = nftnl_obj_ct_timeout_snprintf,
531+ .snprintf_ = nftnl_obj_ct_timeout_snprintf,
503 }; 532 };
504diff --git a/src/obj/limit.c b/src/obj/limit.c 533diff --git a/src/obj/limit.c b/src/obj/limit.c
505index 7f8bcf7..25018b6 100644 534index 60b0159..538f37a 100644
506--- a/src/obj/limit.c 535--- a/src/obj/limit.c
507+++ b/src/obj/limit.c 536+++ b/src/obj/limit.c
508@@ -236,6 +236,6 @@ struct obj_ops obj_ops_limit = { 537@@ -185,5 +185,5 @@ struct obj_ops obj_ops_limit = {
509 .get = nftnl_obj_limit_get, 538 .get = nftnl_obj_limit_get,
510 .parse = nftnl_obj_limit_parse, 539 .parse = nftnl_obj_limit_parse,
511 .build = nftnl_obj_limit_build, 540 .build = nftnl_obj_limit_build,
512- .snprintf = nftnl_obj_limit_snprintf, 541- .snprintf = nftnl_obj_limit_snprintf,
513+ .snprintf_ = nftnl_obj_limit_snprintf, 542+ .snprintf_ = nftnl_obj_limit_snprintf,
514 .json_parse = nftnl_obj_limit_json_parse,
515 }; 543 };
516diff --git a/src/obj/quota.c b/src/obj/quota.c 544diff --git a/src/obj/quota.c b/src/obj/quota.c
517index 6d36784..ecaa8b1 100644 545index 1914037..585a088 100644
518--- a/src/obj/quota.c 546--- a/src/obj/quota.c
519+++ b/src/obj/quota.c 547+++ b/src/obj/quota.c
520@@ -203,6 +203,6 @@ struct obj_ops obj_ops_quota = { 548@@ -161,5 +161,5 @@ struct obj_ops obj_ops_quota = {
521 .get = nftnl_obj_quota_get, 549 .get = nftnl_obj_quota_get,
522 .parse = nftnl_obj_quota_parse, 550 .parse = nftnl_obj_quota_parse,
523 .build = nftnl_obj_quota_build, 551 .build = nftnl_obj_quota_build,
524- .snprintf = nftnl_obj_quota_snprintf, 552- .snprintf = nftnl_obj_quota_snprintf,
525+ .snprintf_ = nftnl_obj_quota_snprintf, 553+ .snprintf_ = nftnl_obj_quota_snprintf,
526 .json_parse = nftnl_obj_quota_json_parse, 554 };
555diff --git a/src/obj/secmark.c b/src/obj/secmark.c
556index e27b5fa..6241bee 100644
557--- a/src/obj/secmark.c
558+++ b/src/obj/secmark.c
559@@ -133,5 +133,5 @@ struct obj_ops obj_ops_secmark = {
560 .get = nftnl_obj_secmark_get,
561 .parse = nftnl_obj_secmark_parse,
562 .build = nftnl_obj_secmark_build,
563- .snprintf = nftnl_obj_secmark_snprintf,
564+ .snprintf_ = nftnl_obj_secmark_snprintf,
565 };
566diff --git a/src/obj/tunnel.c b/src/obj/tunnel.c
567index 7ffade8..800eb3e 100644
568--- a/src/obj/tunnel.c
569+++ b/src/obj/tunnel.c
570@@ -564,5 +564,5 @@ struct obj_ops obj_ops_tunnel = {
571 .get = nftnl_obj_tunnel_get,
572 .parse = nftnl_obj_tunnel_parse,
573 .build = nftnl_obj_tunnel_build,
574- .snprintf = nftnl_obj_tunnel_snprintf,
575+ .snprintf_ = nftnl_obj_tunnel_snprintf,
527 }; 576 };
528diff --git a/src/object.c b/src/object.c 577diff --git a/src/object.c b/src/object.c
529index d8278f3..9654b7b 100644 578index 5c8d183..d489cdd 100644
530--- a/src/object.c 579--- a/src/object.c
531+++ b/src/object.c 580+++ b/src/object.c
532@@ -429,7 +429,7 @@ static int nftnl_obj_export(char *buf, size_t size, 581@@ -369,7 +369,7 @@ static int nftnl_obj_snprintf_dflt(char *buf, size_t size,
533 nftnl_buf_u64(&b, type, obj->handle, HANDLE);
534
535 if (obj->ops)
536- ret = obj->ops->snprintf(buf + b.len, size - b.len, type,
537+ ret = obj->ops->snprintf_(buf + b.len, size - b.len, type,
538 flags, obj);
539
540 b.len += ret;
541@@ -450,7 +450,7 @@ static int nftnl_obj_snprintf_dflt(char *buf, size_t size,
542 SNPRINTF_BUFFER_SIZE(ret, remain, offset); 582 SNPRINTF_BUFFER_SIZE(ret, remain, offset);
543 583
544 if (obj->ops) { 584 if (obj->ops) {
@@ -547,3 +587,6 @@ index d8278f3..9654b7b 100644
547 obj); 587 obj);
548 SNPRINTF_BUFFER_SIZE(ret, remain, offset); 588 SNPRINTF_BUFFER_SIZE(ret, remain, offset);
549 } 589 }
590--
5912.17.1
592
diff --git a/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.1.bb b/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.3.bb
index 77959a730..00bf88dab 100644
--- a/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.1.bb
+++ b/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.3.bb
@@ -3,8 +3,8 @@ LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26" 3LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26"
4SECTION = "libs" 4SECTION = "libs"
5DEPENDS = "libmnl" 5DEPENDS = "libmnl"
6PV .= "+git${SRCPV}" 6
7SRCREV = "d379dfcb6c94dcb93a8f16896572d6e162138e0f" 7SRCREV = "d819a832e0214a3bec3679345f542644596a2850"
8SRC_URI = "git://git.netfilter.org/libnftnl \ 8SRC_URI = "git://git.netfilter.org/libnftnl \
9 file://0001-Move-exports-before-symbol-definition.patch \ 9 file://0001-Move-exports-before-symbol-definition.patch \
10 file://0002-avoid-naming-local-function-as-one-of-printf-family.patch \ 10 file://0002-avoid-naming-local-function-as-one-of-printf-family.patch \