summaryrefslogtreecommitdiffstats
path: root/pf.c
diff options
context:
space:
mode:
authorchantra <chantra@debuntu.org>2010-06-11 16:23:03 +0200
committerDavid Sommerseth <dazo@users.sourceforge.net>2010-10-21 11:40:36 +0200
commitd2ad24c062c0d1870d826ecbb9506f893896f50c (patch)
tree564606c2fd6525139af896e526d6d39b8e19471b /pf.c
parent233105d2c9d1a2c6911342d8249b19310e94c251 (diff)
downloadopenvpn-d2ad24c062c0d1870d826ecbb9506f893896f50c.tar.gz
openvpn-d2ad24c062c0d1870d826ecbb9506f893896f50c.tar.xz
openvpn-d2ad24c062c0d1870d826ecbb9506f893896f50c.zip
Handle non standard subnets in PF grammar
Allow subnets for like 192.168.100.8/28 to be understood. A warning will be logged when subnet is incorrect and is being corrected to what is assumed to be correct. Signed-off-by: chantra <chantra@debuntu.org> Acked-by: Gert Doering <gert@greenie.muc.de> Signed-off-by: David Sommerseth <dazo@users.sourceforge.net>
Diffstat (limited to 'pf.c')
-rw-r--r--pf.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/pf.c b/pf.c
index 3ce2ef2..aed836e 100644
--- a/pf.c
+++ b/pf.c
@@ -109,6 +109,11 @@ add_subnet (const char *line, const char *prefix, const int line_num, struct pf_
return false;
}
netmask = netbits_to_netmask (netbits);
+ if ((network.s_addr & htonl (netmask)) != network.s_addr)
+ {
+ network.s_addr &= htonl (netmask);
+ msg (M_WARN, "WARNING: PF: %s/%d: incorrect subnet %s/%d changed to %s/%d", prefix, line_num, line, netbits, inet_ntoa (network), netbits);
+ }
}
else
{