diff options
author | glebius <glebius@FreeBSD.org> | 2011-12-21 12:39:08 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2011-12-21 12:39:08 +0000 |
commit | 653f8c5e7181f0fd06ea5451ebb67351c2dd5626 (patch) | |
tree | 96279cd42bceb4e7d71094c239ecf1b647e643e6 /sys/netinet6/in6.c | |
parent | 8451340f0023a2f549ad478e31b8cdeaeeac1096 (diff) | |
download | FreeBSD-src-653f8c5e7181f0fd06ea5451ebb67351c2dd5626.zip FreeBSD-src-653f8c5e7181f0fd06ea5451ebb67351c2dd5626.tar.gz |
Provide ABI compatibility shim to enable configuring of addresses
with ifconfig(8) prior to r228571.
Requested by: brooks
Diffstat (limited to 'sys/netinet6/in6.c')
-rw-r--r-- | sys/netinet6/in6.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index ef22f03..4fb588e 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -275,6 +275,13 @@ in6_control(struct socket *so, u_long cmd, caddr_t data, struct sockaddr_in6 *sa6; int carp_attached = 0; int error; + u_long ocmd = cmd; + + /* + * Compat to make pre-10.x ifconfig(8) operable. + */ + if (cmd == OSIOCAIFADDR_IN6) + cmd = SIOCAIFADDR_IN6; switch (cmd) { case SIOCGETSGCNT_IN6: @@ -654,7 +661,7 @@ in6_control(struct socket *so, u_long cmd, caddr_t data, break; } - if (ifra->ifra_vhid > 0) { + if (cmd == ocmd && ifra->ifra_vhid > 0) { if (carp_attach_p != NULL) error = (*carp_attach_p)(&ia->ia_ifa, ifra->ifra_vhid); |