summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/netpfil/ipfw/nat64/nat64stl.c
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/sys/netpfil/ipfw/nat64/nat64stl.c')
-rw-r--r--freebsd/sys/netpfil/ipfw/nat64/nat64stl.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/freebsd/sys/netpfil/ipfw/nat64/nat64stl.c b/freebsd/sys/netpfil/ipfw/nat64/nat64stl.c
index 36e6e268..552267be 100644
--- a/freebsd/sys/netpfil/ipfw/nat64/nat64stl.c
+++ b/freebsd/sys/netpfil/ipfw/nat64/nat64stl.c
@@ -71,7 +71,7 @@ nat64stl_log(struct pfloghdr *plog, struct mbuf *m, sa_family_t family,
{
static uint32_t pktid = 0;
- memset(plog, 0, sizeof(plog));
+ memset(plog, 0, sizeof(*plog));
plog->length = PFLOG_REAL_HDRLEN;
plog->af = family;
plog->action = PF_NAT;
@@ -186,7 +186,7 @@ nat64stl_handle_icmp6(struct ip_fw_chain *chain, struct nat64stl_cfg *cfg,
* IPv4 mapped address.
*/
ip6i = mtodo(m, hlen);
- if (ipfw_lookup_table_extended(chain, cfg->map64,
+ if (ipfw_lookup_table(chain, cfg->map64,
sizeof(struct in6_addr), &ip6i->ip6_dst, &tablearg) == 0) {
m_freem(m);
return (NAT64RETURN);
@@ -206,6 +206,7 @@ ipfw_nat64stl(struct ip_fw_chain *chain, struct ip_fw_args *args,
{
ipfw_insn *icmd;
struct nat64stl_cfg *cfg;
+ in_addr_t dst4;
uint32_t tablearg;
int ret;
@@ -221,11 +222,12 @@ ipfw_nat64stl(struct ip_fw_chain *chain, struct ip_fw_args *args,
switch (args->f_id.addr_type) {
case 4:
- ret = ipfw_lookup_table(chain, cfg->map46,
- htonl(args->f_id.dst_ip), &tablearg);
+ dst4 = htonl(args->f_id.dst_ip);
+ ret = ipfw_lookup_table(chain, cfg->map46, sizeof(in_addr_t),
+ &dst4, &tablearg);
break;
case 6:
- ret = ipfw_lookup_table_extended(chain, cfg->map64,
+ ret = ipfw_lookup_table(chain, cfg->map64,
sizeof(struct in6_addr), &args->f_id.src_ip6, &tablearg);
break;
default: