diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/conntrack/getter.c | 6 | ||||
-rw-r--r-- | src/conntrack/parse_mnl.c | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/conntrack/getter.c b/src/conntrack/getter.c index d1f9a5a..c9615d5 100644 --- a/src/conntrack/getter.c +++ b/src/conntrack/getter.c @@ -384,6 +384,11 @@ static const void *get_attr_synproxy_tsoff(const struct nf_conntrack *ct) return &ct->synproxy.tsoff; } +static const void *get_attr_timestamp_event(const struct nf_conntrack *ct) +{ + return &ct->timestamp_event; +} + const get_attr get_attr_array[ATTR_MAX] = { [ATTR_ORIG_IPV4_SRC] = get_attr_orig_ipv4_src, [ATTR_ORIG_IPV4_DST] = get_attr_orig_ipv4_dst, @@ -460,4 +465,5 @@ const get_attr get_attr_array[ATTR_MAX] = { [ATTR_SYNPROXY_ISN] = get_attr_synproxy_isn, [ATTR_SYNPROXY_ITS] = get_attr_synproxy_its, [ATTR_SYNPROXY_TSOFF] = get_attr_synproxy_tsoff, + [ATTR_TIMESTAMP_EVENT] = get_attr_timestamp_event, }; diff --git a/src/conntrack/parse_mnl.c b/src/conntrack/parse_mnl.c index 3cbfc6a..0f87f69 100644 --- a/src/conntrack/parse_mnl.c +++ b/src/conntrack/parse_mnl.c @@ -897,6 +897,10 @@ nfct_parse_conntrack_attr_cb(const struct nlattr *attr, void *data) case CTA_NAT_DST: /* deprecated */ break; + case CTA_TIMESTAMP_EVENT: + if (mnl_attr_validate(attr, MNL_TYPE_U64) < 0) + abi_breakage(); + break; } tb[type] = attr; return MNL_CB_OK; @@ -1029,6 +1033,12 @@ nfct_payload_parse(const void *payload, size_t payload_len, return -1; } + if (tb[CTA_TIMESTAMP_EVENT]) { + set_bit(ATTR_TIMESTAMP_EVENT, ct->head.set); + ct->timestamp_event = + be64toh(mnl_attr_get_u64(tb[CTA_TIMESTAMP_EVENT])); + } + return 0; } |