Hi,
For 64 bit time_t the routing message rmx_expire field has to be
changed from u_int to int64_t. I will do that after ABI unlock.
I would like to prepare the /sbin/route source for this change.
ok?
bluhm
Index: sbin/route/route.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sbin/route/route.c,v
retrieving revision 1.162
diff -u -p -u -p -r1.162 route.c
--- sbin/route/route.c 27 May 2013 14:07:25 -0000 1.162
+++ sbin/route/route.c 19 Jul 2013 10:21:20 -0000
@@ -362,16 +362,19 @@ void
set_metric(char *value, int key)
{
int flag = 0;
- u_int noval, *valp = &noval;
const char *errstr;
switch (key) {
case K_MTU:
- valp = &rt_metrics.rmx_mtu;
+ rt_metrics.rmx_mtu = strtonum(value, 0, UINT_MAX, &errstr);
+ if (errstr)
+ errx(1, "set_metric mtu: %s is %s", value, errstr);
flag = RTV_MTU;
break;
case K_EXPIRE:
- valp = &rt_metrics.rmx_expire;
+ rt_metrics.rmx_expire = strtonum(value, 0, UINT_MAX, &errstr);
+ if (errstr)
+ errx(1, "set_metric expire: %s is %s", value, errstr);
flag = RTV_EXPIRE;
break;
case K_HOPCOUNT:
@@ -390,9 +393,6 @@ set_metric(char *value, int key)
rt_metrics.rmx_locks |= flag;
if (locking)
locking = 0;
- *valp = strtonum(value, 0, UINT_MAX, &errstr);
- if (errstr)
- errx(1, "set_metric: %s is %s", value, errstr);
}
int
@@ -1341,10 +1341,10 @@ print_rtmsg(struct rt_msghdr *rtm, int m
#define lock(f) ((rtm->rtm_rmx.rmx_locks & __CONCAT(RTV_,f)) ? 'L' : '
')
if (rtm->rtm_rmx.rmx_expire)
rtm->rtm_rmx.rmx_expire -= time(NULL);
- printf("\nuse: %8llu mtu: %8u%c expire: %8d%c",
+ printf("\nuse: %8llu mtu: %8u%c expire: %8lld%c",
rtm->rtm_rmx.rmx_pksent,
rtm->rtm_rmx.rmx_mtu, lock(MTU),
- rtm->rtm_rmx.rmx_expire, lock(EXPIRE));
+ (long long)rtm->rtm_rmx.rmx_expire, lock(EXPIRE));
#undef lock
}
pmsg_common(rtm);
@@ -1469,7 +1469,7 @@ print_getmsg(struct rt_msghdr *rtm, int
printf("%8u%c ", rtm->rtm_rmx.rmx_mtu, lock(MTU));
if (rtm->rtm_rmx.rmx_expire)
rtm->rtm_rmx.rmx_expire -= time(NULL);
- printf("%8d%c\n", rtm->rtm_rmx.rmx_expire, lock(EXPIRE));
+ printf("%8lld%c\n", (long long)rtm->rtm_rmx.rmx_expire, lock(EXPIRE));
#undef lock
#define RTA_IGN
(RTA_DST|RTA_GATEWAY|RTA_NETMASK|RTA_IFP|RTA_IFA|RTA_BRD)
if (verbose)