mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-01 08:27:59 +00:00
fix printing of uint64_t values, so we can use WARNS=2
This commit is contained in:
parent
2ba7d35b21
commit
50a99912c1
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=187787
@ -2,7 +2,7 @@
|
||||
|
||||
PROG= ipfw
|
||||
SRCS= ipfw2.c dummynet.c ipv6.c main.c nat.c
|
||||
WARNS?= 0
|
||||
WARNS?= 2
|
||||
MAN= ipfw.8
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
@ -157,12 +157,13 @@ list_queues(struct dn_flow_set *fs, struct dn_flow_queue *q)
|
||||
ina.s_addr = htonl(q[l].id.dst_ip);
|
||||
printf("%15s/%-5d ",
|
||||
inet_ntoa(ina), q[l].id.dst_port);
|
||||
printf("%4qu %8qu %2u %4u %3u\n",
|
||||
q[l].tot_pkts, q[l].tot_bytes,
|
||||
printf("%4llu %8llu %2u %4u %3u\n",
|
||||
align_uint64(&q[l].tot_pkts),
|
||||
align_uint64(&q[l].tot_bytes),
|
||||
q[l].len, q[l].len_bytes, q[l].drops);
|
||||
if (co.verbose)
|
||||
printf(" S %20qd F %20qd\n",
|
||||
q[l].S, q[l].F);
|
||||
printf(" S %20llu F %20llu\n",
|
||||
align_uint64(&q[l].S), align_uint64(&q[l].F));
|
||||
}
|
||||
|
||||
/* Print IPv6 flows */
|
||||
@ -202,11 +203,14 @@ list_queues(struct dn_flow_set *fs, struct dn_flow_queue *q)
|
||||
printf(" %39s/%-5d ",
|
||||
inet_ntop(AF_INET6, &(q[l].id.dst_ip6), buff, sizeof(buff)),
|
||||
q[l].id.dst_port);
|
||||
printf(" %4qu %8qu %2u %4u %3u\n",
|
||||
q[l].tot_pkts, q[l].tot_bytes,
|
||||
printf(" %4llu %8llu %2u %4u %3u\n",
|
||||
align_uint64(&q[l].tot_pkts),
|
||||
align_uint64(&q[l].tot_bytes),
|
||||
q[l].len, q[l].len_bytes, q[l].drops);
|
||||
if (co.verbose)
|
||||
printf(" S %20qd F %20qd\n", q[l].S, q[l].F);
|
||||
printf(" S %20llu F %20llu\n",
|
||||
align_uint64(&q[l].S),
|
||||
align_uint64(&q[l].F));
|
||||
}
|
||||
}
|
||||
|
||||
@ -295,7 +299,7 @@ ipfw_list_pipes(void *data, uint nbytes, int ac, char *av[])
|
||||
p->pipe_nr, buf, p->delay);
|
||||
print_flowset_parms(&(p->fs), prefix);
|
||||
if (co.verbose)
|
||||
printf(" V %20qd\n", p->V >> MY_M);
|
||||
printf(" V %20llu\n", align_uint64(&p->V) >> MY_M);
|
||||
|
||||
q = (struct dn_flow_queue *)(p+1);
|
||||
list_queues(&(p->fs), q);
|
||||
|
@ -306,8 +306,18 @@ static struct _s_x rule_options[] = {
|
||||
{ NULL, 0 } /* terminator */
|
||||
};
|
||||
|
||||
static __inline uint64_t
|
||||
align_uint64(uint64_t *pll) {
|
||||
/*
|
||||
* The following is used to generate a printable argument for
|
||||
* 64-bit numbers, irrespective of platform alignment and bit size.
|
||||
* Because all the printf in this program use %llu as a format,
|
||||
* we just return an unsigned long long, which is larger than
|
||||
* we need in certain cases, but saves the hassle of using
|
||||
* PRIu64 as a format specifier.
|
||||
* We don't care about inlining, this is not performance critical code.
|
||||
*/
|
||||
unsigned long long
|
||||
align_uint64(const uint64_t *pll)
|
||||
{
|
||||
uint64_t ret;
|
||||
|
||||
bcopy (pll, &ret, sizeof(ret));
|
||||
|
@ -190,6 +190,8 @@ enum tokens {
|
||||
*/
|
||||
#define NEED1(msg) {if (!ac) errx(EX_USAGE, msg);}
|
||||
|
||||
unsigned long long align_uint64(const uint64_t *pll);
|
||||
|
||||
/* memory allocation support */
|
||||
void *safe_calloc(size_t number, size_t size);
|
||||
void *safe_realloc(void *ptr, size_t size);
|
||||
|
Loading…
Reference in New Issue
Block a user