diff options
Diffstat (limited to 'src/utils.c')
| -rw-r--r-- | src/utils.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c index d73c5f6..bbe44b4 100644 --- a/src/utils.c +++ b/src/utils.c @@ -192,3 +192,18 @@ char *nftnl_attr_get_ifname(const struct nlattr *attr) return NULL; } } + +int nftnl_parse_str_attr(const struct nlattr *tb, int attr, + const char **field, uint32_t *flags) +{ + if (!tb) + return 0; + + if (*flags & (1 << attr)) + xfree(*field); + *field = strdup(mnl_attr_get_str(tb)); + if (!*field) + return -1; + *flags |= (1 << attr); + return 0; +} |
