pf: Introduce pf_nvbool()
Similar to the existing functions for strings and ints, this lets us simplify some of the nvlist conversion code. MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate")
This commit is contained in:
parent
e2e2c622c3
commit
776df104fa
@ -99,6 +99,17 @@ __FBSDID("$FreeBSD$");
|
||||
} \
|
||||
}
|
||||
|
||||
int
|
||||
pf_nvbool(const nvlist_t *nvl, const char *name, bool *val)
|
||||
{
|
||||
if (! nvlist_exists_bool(nvl, name))
|
||||
return (EINVAL);
|
||||
|
||||
*val = nvlist_get_bool(nvl, name);
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
pf_nvbinary(const nvlist_t *nvl, const char *name, void *data,
|
||||
size_t expected_size)
|
||||
@ -844,8 +855,7 @@ pf_nvstate_kill_to_kstate_kill(const nvlist_t *nvl,
|
||||
sizeof(kill->psk_ifname)));
|
||||
PFNV_CHK(pf_nvstring(nvl, "label", kill->psk_label,
|
||||
sizeof(kill->psk_label)));
|
||||
if (nvlist_exists_bool(nvl, "kill_match"))
|
||||
kill->psk_kill_match = nvlist_get_bool(nvl, "kill_match");
|
||||
PFNV_CHK(pf_nvbool(nvl, "kill_match", &kill->psk_kill_match));
|
||||
|
||||
errout:
|
||||
return (error);
|
||||
|
@ -69,6 +69,7 @@ PF_NV_DEF_UINT(uint16, uint16_t, UINT16_MAX);
|
||||
PF_NV_DEF_UINT(uint32, uint32_t, UINT32_MAX);
|
||||
PF_NV_DEF_UINT(uint64, uint64_t, UINT64_MAX);
|
||||
|
||||
int pf_nvbool(const nvlist_t *, const char *, bool *);
|
||||
int pf_nvbinary(const nvlist_t *, const char *, void *, size_t);
|
||||
int pf_nvint(const nvlist_t *, const char *, int *);
|
||||
int pf_nvstring(const nvlist_t *, const char *, char *, size_t);
|
||||
|
Loading…
x
Reference in New Issue
Block a user