Changeset View
Changeset View
Standalone View
Standalone View
lib/libpfctl/libpfctl.c
Show First 20 Lines • Show All 543 Lines • ▼ Show 20 Lines | pf_nvrule_to_rule(const nvlist_t *nvl, struct pfctl_rule *rule) | ||||
rule->states_cur = nvlist_get_number(nvl, "states_cur"); | rule->states_cur = nvlist_get_number(nvl, "states_cur"); | ||||
rule->states_tot = nvlist_get_number(nvl, "states_tot"); | rule->states_tot = nvlist_get_number(nvl, "states_tot"); | ||||
rule->src_nodes = nvlist_get_number(nvl, "src_nodes"); | rule->src_nodes = nvlist_get_number(nvl, "src_nodes"); | ||||
} | } | ||||
static void | static void | ||||
pfctl_nveth_addr_to_eth_addr(const nvlist_t *nvl, struct pfctl_eth_addr *addr) | pfctl_nveth_addr_to_eth_addr(const nvlist_t *nvl, struct pfctl_eth_addr *addr) | ||||
{ | { | ||||
static const u_int8_t EMPTY_MAC[ETHER_ADDR_LEN] = { 0 }; | |||||
size_t len; | size_t len; | ||||
const void *data; | const void *data; | ||||
data = nvlist_get_binary(nvl, "addr", &len); | data = nvlist_get_binary(nvl, "addr", &len); | ||||
assert(len == sizeof(addr->addr)); | assert(len == sizeof(addr->addr)); | ||||
memcpy(addr->addr, data, sizeof(addr->addr)); | memcpy(addr->addr, data, sizeof(addr->addr)); | ||||
addr->neg = nvlist_get_bool(nvl, "neg"); | addr->neg = nvlist_get_bool(nvl, "neg"); | ||||
/* To make checks for 'is this address set?' easier. */ | |||||
addr->isset = memcmp(addr->addr, EMPTY_MAC, ETHER_ADDR_LEN) != 0; | |||||
} | } | ||||
static nvlist_t * | static nvlist_t * | ||||
pfctl_eth_addr_to_nveth_addr(const struct pfctl_eth_addr *addr) | pfctl_eth_addr_to_nveth_addr(const struct pfctl_eth_addr *addr) | ||||
{ | { | ||||
nvlist_t *nvl; | nvlist_t *nvl; | ||||
nvl = nvlist_create(0); | nvl = nvlist_create(0); | ||||
▲ Show 20 Lines • Show All 660 Lines • Show Last 20 Lines |