mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-20 07:09:58 +00:00
netfilter: nf_ct_expect: partially implement ctnetlink_change_expect
This refreshes the "timeout" attribute in existing expectations if one is given. The use case for this would be for userspace helpers to extend the lifetime of the expectation when requested, as this is not possible right now without deleting/recreating the expectation. I use this specifically for forwarding DCERPC traffic through: DCERPC has a port mapper daemon that chooses a (seemingly) random port for future traffic to go to. We expect this traffic (with a reasonable timeout), but sometimes the port mapper will tell the client to continue using the same port. This allows us to extend the expectation accordingly. Signed-off-by: Kelvie Wong <kelvie@ieee.org> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
6d8ebc8a27
commit
9768e1ace4
@ -2080,7 +2080,15 @@ static int
|
||||
ctnetlink_change_expect(struct nf_conntrack_expect *x,
|
||||
const struct nlattr * const cda[])
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
if (cda[CTA_EXPECT_TIMEOUT]) {
|
||||
if (!del_timer(&x->timeout))
|
||||
return -ETIME;
|
||||
|
||||
x->timeout.expires = jiffies +
|
||||
ntohl(nla_get_be32(cda[CTA_EXPECT_TIMEOUT])) * HZ;
|
||||
add_timer(&x->timeout);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct nla_policy exp_nat_nla_policy[CTA_EXPECT_NAT_MAX+1] = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user