sync with -current pf; from dhartmei@
This commit is contained in:
parent
dc600cba96
commit
469a7e13ee
@ -1,15 +1,74 @@
|
||||
$OpenBSD: patch-src_fw-pf_c,v 1.1 2002/05/20 10:29:16 jsyn Exp $
|
||||
--- src/fw-pf.c.orig Sun Jan 20 13:23:28 2002
|
||||
+++ src/fw-pf.c Mon May 13 23:54:30 2002
|
||||
@@ -25,6 +25,11 @@
|
||||
#include <unistd.h>
|
||||
$OpenBSD: patch-src_fw-pf_c,v 1.2 2003/01/02 12:28:49 naddy Exp $
|
||||
--- src/fw-pf.c.orig Sun Jan 20 22:23:28 2002
|
||||
+++ src/fw-pf.c Thu Jan 2 13:18:49 2003
|
||||
@@ -42,11 +42,11 @@ fr_to_pr(const struct fw_rule *fr, struc
|
||||
pr->proto = fr->fw_proto;
|
||||
|
||||
#include "dnet.h"
|
||||
+
|
||||
+#ifdef PF_RULE_LABEL_SIZE
|
||||
+/* XXX */
|
||||
+#define addr addr.addr
|
||||
+#endif
|
||||
pr->af = AF_INET;
|
||||
- pr->src.addr.v4.s_addr = fr->fw_src.addr_ip;
|
||||
- addr_btom(fr->fw_src.addr_bits, &pr->src.mask.v4.s_addr, IP_ADDR_LEN);
|
||||
+ pr->src.addr.addr.v4.s_addr = fr->fw_src.addr_ip;
|
||||
+ addr_btom(fr->fw_src.addr_bits, &pr->src.addr.mask.v4.s_addr, IP_ADDR_LEN);
|
||||
|
||||
- pr->dst.addr.v4.s_addr = fr->fw_dst.addr_ip;
|
||||
- addr_btom(fr->fw_dst.addr_bits, &pr->dst.mask.v4.s_addr, IP_ADDR_LEN);
|
||||
+ pr->dst.addr.addr.v4.s_addr = fr->fw_dst.addr_ip;
|
||||
+ addr_btom(fr->fw_dst.addr_bits, &pr->dst.addr.mask.v4.s_addr, IP_ADDR_LEN);
|
||||
|
||||
switch (fr->fw_proto) {
|
||||
case IP_PROTO_ICMP:
|
||||
@@ -97,12 +97,12 @@ pr_to_fr(const struct pf_rule *pr, struc
|
||||
return (-1);
|
||||
|
||||
fr->fw_src.addr_type = ADDR_TYPE_IP;
|
||||
- addr_mtob(&pr->src.mask.v4.s_addr, IP_ADDR_LEN, &fr->fw_src.addr_bits);
|
||||
- fr->fw_src.addr_ip = pr->src.addr.v4.s_addr;
|
||||
+ addr_mtob(&pr->src.addr.mask.v4.s_addr, IP_ADDR_LEN, &fr->fw_src.addr_bits);
|
||||
+ fr->fw_src.addr_ip = pr->src.addr.addr.v4.s_addr;
|
||||
|
||||
fr->fw_dst.addr_type = ADDR_TYPE_IP;
|
||||
- addr_mtob(&pr->dst.mask.v4.s_addr, IP_ADDR_LEN, &fr->fw_dst.addr_bits);
|
||||
- fr->fw_dst.addr_ip = pr->dst.addr.v4.s_addr;
|
||||
+ addr_mtob(&pr->dst.addr.mask.v4.s_addr, IP_ADDR_LEN, &fr->fw_dst.addr_bits);
|
||||
+ fr->fw_dst.addr_ip = pr->dst.addr.addr.v4.s_addr;
|
||||
|
||||
switch (fr->fw_proto) {
|
||||
case IP_PROTO_ICMP:
|
||||
@@ -147,11 +147,12 @@ fw_open(void)
|
||||
int
|
||||
fw_add(fw_t *fw, const struct fw_rule *rule)
|
||||
{
|
||||
- struct pfioc_changerule pcr;
|
||||
+ struct pfioc_rule pcr;
|
||||
|
||||
assert(fw != NULL && rule != NULL);
|
||||
|
||||
struct fw_handle {
|
||||
int fd;
|
||||
- fr_to_pr(rule, &pcr.newrule);
|
||||
+ memset(&pcr, 0, sizeof(pcr));
|
||||
+ fr_to_pr(rule, &pcr.rule);
|
||||
|
||||
pcr.action = PF_CHANGE_ADD_TAIL;
|
||||
|
||||
@@ -161,11 +162,12 @@ fw_add(fw_t *fw, const struct fw_rule *r
|
||||
int
|
||||
fw_delete(fw_t *fw, const struct fw_rule *rule)
|
||||
{
|
||||
- struct pfioc_changerule pcr;
|
||||
+ struct pfioc_rule pcr;
|
||||
|
||||
assert(fw != NULL && rule != NULL);
|
||||
|
||||
- fr_to_pr(rule, &pcr.oldrule);
|
||||
+ memset(&pcr, 0, sizeof(pcr));
|
||||
+ fr_to_pr(rule, &pcr.rule);
|
||||
|
||||
pcr.action = PF_CHANGE_REMOVE;
|
||||
|
||||
@@ -180,6 +182,7 @@ fw_loop(fw_t *fw, fw_handler callback, v
|
||||
uint32_t n, max;
|
||||
int ret;
|
||||
|
||||
+ memset(&pr, 0, sizeof(pr));
|
||||
if (ioctl(fw->fd, DIOCGETRULES, &pr) < 0)
|
||||
return (-1);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user