diff options
| author | Kristof Provost <kp@FreeBSD.org> | 2025-07-29 09:50:11 +0000 |
|---|---|---|
| committer | Zhenlei Huang <zlei@FreeBSD.org> | 2026-02-05 18:10:36 +0000 |
| commit | 0e82cd099e2ab5ad8aa67f98fa4b8b430c23947c (patch) | |
| tree | 4ab96d9b5515933390461988409e5aaf2d698d40 | |
| parent | 52ebb8a7d4f8c77b9dacdeef1dff3caec1394bea (diff) | |
ifconfig: fix removing IPv6 addresses
Sponsored by: Rubicon Communications, LLC ("Netgate")
(cherry picked from commit da50f49977cc4e6aae55cb2379313599249a8dd2)
| -rw-r--r-- | sbin/ifconfig/af_inet6.c | 2 | ||||
| -rw-r--r-- | sbin/ifconfig/tests/inet6.sh | 30 |
2 files changed, 31 insertions, 1 deletions
diff --git a/sbin/ifconfig/af_inet6.c b/sbin/ifconfig/af_inet6.c index 511b25580f07..a5c406db8a0c 100644 --- a/sbin/ifconfig/af_inet6.c +++ b/sbin/ifconfig/af_inet6.c @@ -761,7 +761,7 @@ static struct afswtch af_inet6 = { #else .af_difaddr = NL_RTM_DELADDR, .af_aifaddr = NL_RTM_NEWADDR, - .af_ridreq = &in6_add, + .af_ridreq = &in6_del, .af_addreq = &in6_add, .af_exec = in6_exec_nl, #endif diff --git a/sbin/ifconfig/tests/inet6.sh b/sbin/ifconfig/tests/inet6.sh index edfd88d93af7..22399915a64d 100644 --- a/sbin/ifconfig/tests/inet6.sh +++ b/sbin/ifconfig/tests/inet6.sh @@ -76,8 +76,38 @@ broadcast_cleanup() vnet_cleanup } +atf_test_case "delete6" "cleanup" +delete6_head() +{ + atf_set descr 'Test removing IPv6 addresses' + atf_set require.user root +} + +delete6_body() +{ + vnet_init + + ep=$(vnet_mkepair) + + atf_check -s exit:0 \ + ifconfig ${ep}a inet6 fe80::42/64 + atf_check -s exit:0 -o match:"fe80::42%${ep}" \ + ifconfig ${ep}a inet6 + + atf_check -s exit:0 \ + ifconfig ${ep}a inet6 -alias fe80::42 + atf_check -s exit:0 -o not-match:"fe80::42%${ep}" \ + ifconfig ${ep}a inet6 +} + +delete6_cleanup() +{ + vnet_cleanup +} + atf_init_test_cases() { atf_add_test_case netmask atf_add_test_case broadcast + atf_add_test_case delete6 } |
