FreeBSD Bugzilla – Attachment 141654 Details for
Bug 188520
[patch] ifconfig(8): ifconfig -L shows pltime and vltime as zero since 10.0-RELEASE
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
ifconfig_af_inet6_monotonic.patch
ifconfig_af_inet6_monotonic.patch (text/plain), 2.32 KB, created by
guyyur
on 2014-04-12 16:50:00 UTC
(
hide
)
Description:
ifconfig_af_inet6_monotonic.patch
Filename:
MIME Type:
Creator:
guyyur
Created:
2014-04-12 16:50:00 UTC
Size:
2.32 KB
patch
obsolete
>Index: sbin/ifconfig/af_inet6.c >=================================================================== >--- sbin/ifconfig/af_inet6.c (revision 264366) >+++ sbin/ifconfig/af_inet6.c (working copy) >@@ -42,6 +42,7 @@ static const char rcsid[] = > #include <stdlib.h> > #include <string.h> > #include <unistd.h> >+#include <time.h> > #include <ifaddrs.h> > > #include <arpa/inet.h> >@@ -98,10 +99,11 @@ static void > setip6lifetime(const char *cmd, const char *val, int s, > const struct afswtch *afp) > { >- time_t newval, t; >+ struct timespec now; >+ time_t newval; > char *ep; > >- t = time(NULL); >+ clock_gettime(CLOCK_MONOTONIC_FAST, &now); > newval = (time_t)strtoul(val, &ep, 0); > if (val == ep) > errx(1, "invalid %s", cmd); >@@ -108,10 +110,10 @@ setip6lifetime(const char *cmd, const char *val, i > if (afp->af_af != AF_INET6) > errx(1, "%s not allowed for the AF", cmd); > if (strcmp(cmd, "vltime") == 0) { >- in6_addreq.ifra_lifetime.ia6t_expire = t + newval; >+ in6_addreq.ifra_lifetime.ia6t_expire = now.tv_sec + newval; > in6_addreq.ifra_lifetime.ia6t_vltime = newval; > } else if (strcmp(cmd, "pltime") == 0) { >- in6_addreq.ifra_lifetime.ia6t_preferred = t + newval; >+ in6_addreq.ifra_lifetime.ia6t_preferred = now.tv_sec + newval; > in6_addreq.ifra_lifetime.ia6t_pltime = newval; > } > } >@@ -172,9 +174,11 @@ in6_status(int s __unused, const struct ifaddrs *i > int s6; > u_int32_t flags6; > struct in6_addrlifetime lifetime; >- time_t t = time(NULL); >+ struct timespec now; > int error; > >+ clock_gettime(CLOCK_MONOTONIC_FAST, &now); >+ > memset(&null_sin, 0, sizeof(null_sin)); > > sin = (struct sockaddr_in6 *)ifa->ifa_addr; >@@ -258,15 +262,15 @@ in6_status(int s __unused, const struct ifaddrs *i > if (ip6lifetime && (lifetime.ia6t_preferred || lifetime.ia6t_expire)) { > printf("pltime "); > if (lifetime.ia6t_preferred) { >- printf("%s ", lifetime.ia6t_preferred < t >- ? "0" : sec2str(lifetime.ia6t_preferred - t)); >+ printf("%s ", lifetime.ia6t_preferred < now.tv_sec >+ ? "0" : sec2str(lifetime.ia6t_preferred - now.tv_sec)); > } else > printf("infty "); > > printf("vltime "); > if (lifetime.ia6t_expire) { >- printf("%s ", lifetime.ia6t_expire < t >- ? "0" : sec2str(lifetime.ia6t_expire - t)); >+ printf("%s ", lifetime.ia6t_expire < now.tv_sec >+ ? "0" : sec2str(lifetime.ia6t_expire - now.tv_sec)); > } else > printf("infty "); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 188520
: 141654