aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/ndp
diff options
context:
space:
mode:
authorAlexander V. Chernikov <melifaro@FreeBSD.org>2015-09-27 04:54:29 +0000
committerAlexander V. Chernikov <melifaro@FreeBSD.org>2015-09-27 04:54:29 +0000
commit4a336ef40c4cae6f3fa425176ebeddbcfd3e7960 (patch)
treeb8bd529bc94d7864472e3eae47cfdc76698c9f0b /usr.sbin/ndp
parentc91afdd4d085ab80bcbedd2df64ffd7999bc7b04 (diff)
downloadsrc-4a336ef40c4cae6f3fa425176ebeddbcfd3e7960.tar.gz
src-4a336ef40c4cae6f3fa425176ebeddbcfd3e7960.zip
rtsock requests for deleting interface address lles started to return EPERM
instead of old "ignore-and-return 0" in r287789. This broke arp -da / ndp -cn behavior (they exit on rtsock command failure). Fix this by translating LLE_IFADDR to RTM_PINNED flag, passing it to userland and making arp/ndp ignore these entries in batched delete. MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=288297
Diffstat (limited to 'usr.sbin/ndp')
-rw-r--r--usr.sbin/ndp/ndp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/usr.sbin/ndp/ndp.c b/usr.sbin/ndp/ndp.c
index 4837b06ac324..a14520ca61df 100644
--- a/usr.sbin/ndp/ndp.c
+++ b/usr.sbin/ndp/ndp.c
@@ -649,6 +649,8 @@ again:;
if (rtm->rtm_flags & RTF_CLONED)
delete(host_buf);
#else
+ if (rtm->rtm_flags & RTF_PINNED)
+ continue;
delete(host_buf);
#endif
continue;