Remove SIOCSIFALIFETIME_IN6, which could not possibly have ever worked.
Problem reported in kern/35897 by Robert Elz.
This commit is contained in:
parent
aebe6f5793
commit
8f7e0bd6a5
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: in6.c,v 1.131 2007/07/19 20:48:56 dyoung Exp $ */
|
||||
/* $NetBSD: in6.c,v 1.132 2007/09/11 19:54:51 gdt Exp $ */
|
||||
/* $KAME: in6.c,v 1.198 2001/07/18 09:12:38 itojun Exp $ */
|
||||
|
||||
/*
|
||||
|
@ -62,7 +62,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: in6.c,v 1.131 2007/07/19 20:48:56 dyoung Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: in6.c,v 1.132 2007/09/11 19:54:51 gdt Exp $");
|
||||
|
||||
#include "opt_inet.h"
|
||||
#include "opt_pfil_hooks.h"
|
||||
|
@ -447,7 +447,6 @@ in6_control1(struct socket *so, u_long cmd, void *data, struct ifnet *ifp,
|
|||
case SIOCSPFXFLUSH_IN6:
|
||||
case SIOCSRTRFLUSH_IN6:
|
||||
case SIOCGIFALIFETIME_IN6:
|
||||
case SIOCSIFALIFETIME_IN6:
|
||||
case SIOCGIFSTAT_IN6:
|
||||
case SIOCGIFSTAT_ICMP6:
|
||||
sa6 = &ifr->ifr_addr;
|
||||
|
@ -512,26 +511,6 @@ in6_control1(struct socket *so, u_long cmd, void *data, struct ifnet *ifp,
|
|||
if (ia == NULL)
|
||||
return EADDRNOTAVAIL;
|
||||
break;
|
||||
case SIOCSIFALIFETIME_IN6:
|
||||
{
|
||||
struct in6_addrlifetime *lt;
|
||||
|
||||
if (!privileged)
|
||||
return EPERM;
|
||||
if (ia == NULL)
|
||||
return EADDRNOTAVAIL;
|
||||
/* sanity for overflow - beware unsigned */
|
||||
lt = &ifr->ifr_ifru.ifru_lifetime;
|
||||
if (lt->ia6t_vltime != ND6_INFINITE_LIFETIME
|
||||
&& lt->ia6t_vltime + time_second < time_second) {
|
||||
return EINVAL;
|
||||
}
|
||||
if (lt->ia6t_pltime != ND6_INFINITE_LIFETIME
|
||||
&& lt->ia6t_pltime + time_second < time_second) {
|
||||
return EINVAL;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (cmd) {
|
||||
|
@ -620,21 +599,6 @@ in6_control1(struct socket *so, u_long cmd, void *data, struct ifnet *ifp,
|
|||
}
|
||||
break;
|
||||
|
||||
case SIOCSIFALIFETIME_IN6:
|
||||
ia->ia6_lifetime = ifr->ifr_ifru.ifru_lifetime;
|
||||
/* for sanity */
|
||||
if (ia->ia6_lifetime.ia6t_vltime != ND6_INFINITE_LIFETIME) {
|
||||
ia->ia6_lifetime.ia6t_expire =
|
||||
time_second + ia->ia6_lifetime.ia6t_vltime;
|
||||
} else
|
||||
ia->ia6_lifetime.ia6t_expire = 0;
|
||||
if (ia->ia6_lifetime.ia6t_pltime != ND6_INFINITE_LIFETIME) {
|
||||
ia->ia6_lifetime.ia6t_preferred =
|
||||
time_second + ia->ia6_lifetime.ia6t_pltime;
|
||||
} else
|
||||
ia->ia6_lifetime.ia6t_preferred = 0;
|
||||
break;
|
||||
|
||||
case SIOCAIFADDR_IN6:
|
||||
{
|
||||
int i;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: in6_var.h,v 1.52 2007/07/19 20:48:56 dyoung Exp $ */
|
||||
/* $NetBSD: in6_var.h,v 1.53 2007/09/11 19:54:51 gdt Exp $ */
|
||||
/* $KAME: in6_var.h,v 1.81 2002/06/08 11:16:51 itojun Exp $ */
|
||||
|
||||
/*
|
||||
|
@ -419,7 +419,10 @@ struct in6_rrenumreq {
|
|||
#define SIOCSRTRFLUSH_IN6 _IOWR('i', 80, struct in6_ifreq)
|
||||
|
||||
#define SIOCGIFALIFETIME_IN6 _IOWR('i', 81, struct in6_ifreq)
|
||||
#if 0
|
||||
/* withdrawn - do not reuse number 82 */
|
||||
#define SIOCSIFALIFETIME_IN6 _IOWR('i', 82, struct in6_ifreq)
|
||||
#endif
|
||||
#define SIOCGIFSTAT_IN6 _IOWR('i', 83, struct in6_ifreq)
|
||||
#define SIOCGIFSTAT_ICMP6 _IOWR('i', 84, struct in6_ifreq)
|
||||
|
||||
|
|
Loading…
Reference in New Issue