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)