libpfctl: fix creatorid endianness
We provide the hostid (which is the state creatorid) to the kernel as a big endian number (see pfctl/pfctl.c pfctl_set_hostid()), so convert it back to system endianness when we get it from the kernel. This avoids a confusing mismatch between the value the user configures and the value displayed in the state. MFC after: 3 weeks Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D33989
This commit is contained in:
parent
e68de66943
commit
735748f30a
@ -188,7 +188,7 @@ pfctl_get_status(int dev)
|
||||
status->running = nvlist_get_bool(nvl, "running");
|
||||
status->since = nvlist_get_number(nvl, "since");
|
||||
status->debug = nvlist_get_number(nvl, "debug");
|
||||
status->hostid = nvlist_get_number(nvl, "hostid");
|
||||
status->hostid = ntohl(nvlist_get_number(nvl, "hostid"));
|
||||
status->states = nvlist_get_number(nvl, "states");
|
||||
status->src_nodes = nvlist_get_number(nvl, "src_nodes");
|
||||
|
||||
@ -815,7 +815,7 @@ pf_state_export_to_state(struct pfctl_state *ps, const struct pf_state_export *s
|
||||
ps->packets[1] = s->packets[1];
|
||||
ps->bytes[0] = s->bytes[0];
|
||||
ps->bytes[1] = s->bytes[1];
|
||||
ps->creatorid = s->creatorid;
|
||||
ps->creatorid = ntohl(s->creatorid);
|
||||
ps->key[0].proto = s->proto;
|
||||
ps->key[1].proto = s->proto;
|
||||
ps->key[0].af = s->af;
|
||||
|
@ -541,7 +541,7 @@ print_status(struct pfctl_status *s, struct pfctl_syncookies *cookies, int opts)
|
||||
}
|
||||
|
||||
if (opts & PF_OPT_VERBOSE) {
|
||||
printf("Hostid: 0x%08x\n", ntohl(s->hostid));
|
||||
printf("Hostid: 0x%08x\n", s->hostid);
|
||||
|
||||
for (i = 0; i < PF_MD5_DIGEST_LENGTH; i++) {
|
||||
buf[i + i] = hex[s->pf_chksum[i] >> 4];
|
||||
|
Loading…
Reference in New Issue
Block a user