Page MenuHomeFreeBSD

D47787.id147046.diff
No OneTemporary

D47787.id147046.diff

diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c
--- a/lib/libpfctl/libpfctl.c
+++ b/lib/libpfctl/libpfctl.c
@@ -1866,12 +1866,14 @@
SNL_DECLARE_ATTR_PARSER(speer_parser, nla_p_speer);
#undef _OUT
-#define _OUT(_field) offsetof(struct pf_state_key_export, _field)
+#define _OUT(_field) offsetof(struct pfctl_state_key, _field)
static const struct snl_attr_parser nla_p_skey[] = {
{ .type = PF_STK_ADDR0, .off = _OUT(addr[0]), .cb = snl_attr_get_pfaddr },
{ .type = PF_STK_ADDR1, .off = _OUT(addr[1]), .cb = snl_attr_get_pfaddr },
{ .type = PF_STK_PORT0, .off = _OUT(port[0]), .cb = snl_attr_get_uint16 },
{ .type = PF_STK_PORT1, .off = _OUT(port[1]), .cb = snl_attr_get_uint16 },
+ { .type = PF_STK_AF, .off = _OUT(af), .cb = snl_attr_get_uint8 },
+ { .type = PF_STK_PROTO, .off = _OUT(proto), .cb = snl_attr_get_uint16 },
};
SNL_DECLARE_ATTR_PARSER(skey_parser, nla_p_skey);
#undef _OUT
@@ -1897,8 +1899,6 @@
{ .type = PF_ST_PACKETS1, .off = _OUT(packets[1]), .cb = snl_attr_get_uint64 },
{ .type = PF_ST_BYTES0, .off = _OUT(bytes[0]), .cb = snl_attr_get_uint64 },
{ .type = PF_ST_BYTES1, .off = _OUT(bytes[1]), .cb = snl_attr_get_uint64 },
- { .type = PF_ST_AF, .off = _OUT(key[0].af), .cb = snl_attr_get_uint8 },
- { .type = PF_ST_PROTO, .off = _OUT(key[0].proto), .cb = snl_attr_get_uint8 },
{ .type = PF_ST_DIRECTION, .off = _OUT(direction), .cb = snl_attr_get_uint8 },
{ .type = PF_ST_LOG, .off = _OUT(log), .cb = snl_attr_get_uint8 },
{ .type = PF_ST_STATE_FLAGS, .off = _OUT(state_flags), .cb = snl_attr_get_uint16 },
@@ -1959,9 +1959,6 @@
if (!snl_parse_nlmsg(ss, hdr, &state_parser, &s))
continue;
- s.key[1].af = s.key[0].af;
- s.key[1].proto = s.key[0].proto;
-
ret = f(&s, arg);
if (ret != 0)
return (ret);
diff --git a/sys/netpfil/pf/pf_nl.h b/sys/netpfil/pf/pf_nl.h
--- a/sys/netpfil/pf/pf_nl.h
+++ b/sys/netpfil/pf/pf_nl.h
@@ -71,6 +71,8 @@
PF_STK_ADDR1 = 2, /* ip */
PF_STK_PORT0 = 3, /* u16 */
PF_STK_PORT1 = 4, /* u16 */
+ PF_STK_AF = 5, /* u8 */
+ PF_STK_PROTO = 6, /* u16 */
};
enum pfstate_peer_type_t {
diff --git a/sys/netpfil/pf/pf_nl.c b/sys/netpfil/pf/pf_nl.c
--- a/sys/netpfil/pf/pf_nl.c
+++ b/sys/netpfil/pf/pf_nl.c
@@ -133,6 +133,8 @@
dump_addr(nw, PF_STK_ADDR1, &key->addr[1], key->af);
nlattr_add_u16(nw, PF_STK_PORT0, key->port[0]);
nlattr_add_u16(nw, PF_STK_PORT1, key->port[1]);
+ nlattr_add_u8(nw, PF_STK_AF, key->af);
+ nlattr_add_u16(nw, PF_STK_PROTO, key->proto);
nlattr_set_len(nw, off);

File Metadata

Mime Type
text/plain
Expires
Wed, Aug 26, 3:36 PM (9 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37307978
Default Alt Text
D47787.id147046.diff (2 KB)

Event Timeline