summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorJiri Pirko <jiri@resnulli.us>2013-04-04 08:33:00 +0000
committerDavid S. Miller <davem@davemloft.net>2013-04-05 00:51:12 -0400
commit34e2ed34a035de07277cca817fe8264324398141 (patch)
tree6c3b92197ac44bc22fdc532a9ffb5b402532358a /net
parentf01fc1a82c2ee68726b400fadb156bd623b5f2f1 (diff)
downloadlinux-34e2ed34a035de07277cca817fe8264324398141.tar.gz
linux-34e2ed34a035de07277cca817fe8264324398141.tar.bz2
linux-34e2ed34a035de07277cca817fe8264324398141.zip
net: ipv4: notify when address lifetime changes
if userspace changes lifetime of address, send netlink notification and call notifier. Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/devinet.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index f678507bc829..96083b7a436b 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -802,8 +802,10 @@ static int inet_rtm_newaddr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg
if (nlh->nlmsg_flags & NLM_F_EXCL ||
!(nlh->nlmsg_flags & NLM_F_REPLACE))
return -EEXIST;
-
- set_ifa_lifetime(ifa_existing, valid_lft, prefered_lft);
+ ifa = ifa_existing;
+ set_ifa_lifetime(ifa, valid_lft, prefered_lft);
+ rtmsg_ifa(RTM_NEWADDR, ifa, nlh, NETLINK_CB(skb).portid);
+ blocking_notifier_call_chain(&inetaddr_chain, NETDEV_UP, ifa);
}
return 0;
}