svn commit: r392293 - in head/net: isc-dhcp42-server isc-dhcp42-server/files isc-dhcp43-server isc-dhcp43-server/files
Renato Botelho
garga at FreeBSD.org
Thu Jul 16 11:51:59 UTC 2015
Author: garga
Date: Thu Jul 16 11:51:56 2015
New Revision: 392293
URL: https://svnweb.freebsd.org/changeset/ports/392293
Log:
Since 4.2.8/4.3.2 isc-dhcp-server started to check if prefix6 range is
within declared subnet and if prefix6 network mask is bigger or equal
subnet mask. Remove these checks and make prefix delegation work as
expected.
For reference - https://redmine.pfsense.org/issues/4829
PR: 201601
Approved by: zi (maintainer)
Sponsored by: Netgate
Added:
head/net/isc-dhcp42-server/files/patch-server_confpars.c (contents, props changed)
head/net/isc-dhcp43-server/files/patch-server_confpars.c (contents, props changed)
Modified:
head/net/isc-dhcp42-server/Makefile
head/net/isc-dhcp43-server/Makefile
Modified: head/net/isc-dhcp42-server/Makefile
==============================================================================
--- head/net/isc-dhcp42-server/Makefile Thu Jul 16 11:48:11 2015 (r392292)
+++ head/net/isc-dhcp42-server/Makefile Thu Jul 16 11:51:56 2015 (r392293)
@@ -18,7 +18,7 @@ LICENSE= ISCL
USES= gmake
PATCHLEVEL= P1
-PORTREVISION_SERVER= 0
+PORTREVISION_SERVER= 1
PORTREVISION_CLIENT= 0
PORTREVISION_RELAY= 0
Added: head/net/isc-dhcp42-server/files/patch-server_confpars.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/isc-dhcp42-server/files/patch-server_confpars.c Thu Jul 16 11:51:56 2015 (r392293)
@@ -0,0 +1,43 @@
+--- server/confpars.c.orig 2015-02-27 13:42:45 UTC
++++ server/confpars.c
+@@ -3926,28 +3926,10 @@ parse_prefix6(struct parse *cfile, struc
+ return;
+ }
+
+- /* Make sure starting prefix is within the subnet */
+- if (!addr_eq(group->subnet->net,
+- subnet_number(lo, group->subnet->netmask))) {
+- parse_warn(cfile, "prefix6 start prefix"
+- " is outside the subnet");
+- skip_to_semi(cfile);
+- return;
+- }
+-
+ if (!parse_ip6_addr(cfile, &hi)) {
+ return;
+ }
+
+- /* Make sure ending prefix is within the subnet */
+- if (!addr_eq(group->subnet->net,
+- subnet_number(hi, group->subnet->netmask))) {
+- parse_warn(cfile, "prefix6 end prefix"
+- " is outside the subnet");
+- skip_to_semi(cfile);
+- return;
+- }
+-
+ /*
+ * Next is '/' number ';'.
+ */
+@@ -3970,11 +3952,6 @@ parse_prefix6(struct parse *cfile, struc
+ parse_warn(cfile, "networks have 0 to 128 bits (exclusive)");
+ return;
+ }
+- if (bits < group->subnet->prefix_len) {
+- parse_warn(cfile, "network mask smaller than subnet mask");
+- skip_to_semi(cfile);
+- return;
+- }
+ if (!is_cidr_mask_valid(&lo, bits) ||
+ !is_cidr_mask_valid(&hi, bits)) {
+ parse_warn(cfile, "network mask too short");
Modified: head/net/isc-dhcp43-server/Makefile
==============================================================================
--- head/net/isc-dhcp43-server/Makefile Thu Jul 16 11:48:11 2015 (r392292)
+++ head/net/isc-dhcp43-server/Makefile Thu Jul 16 11:51:56 2015 (r392293)
@@ -18,7 +18,7 @@ LICENSE= ISCL
USES= gmake
#PATCHLEVEL= P1
-PORTREVISION_SERVER= 0
+PORTREVISION_SERVER= 1
PORTREVISION_CLIENT= 0
PORTREVISION_RELAY= 0
Added: head/net/isc-dhcp43-server/files/patch-server_confpars.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/isc-dhcp43-server/files/patch-server_confpars.c Thu Jul 16 11:51:56 2015 (r392293)
@@ -0,0 +1,43 @@
+--- server/confpars.c.orig 2015-02-26 19:35:43 UTC
++++ server/confpars.c
+@@ -4161,28 +4161,10 @@ parse_prefix6(struct parse *cfile,
+ return;
+ }
+
+- /* Make sure starting prefix is within the subnet */
+- if (!addr_eq(group->subnet->net,
+- subnet_number(lo, group->subnet->netmask))) {
+- parse_warn(cfile, "prefix6 start prefix"
+- " is outside the subnet");
+- skip_to_semi(cfile);
+- return;
+- }
+-
+ if (!parse_ip6_addr(cfile, &hi)) {
+ return;
+ }
+
+- /* Make sure ending prefix is within the subnet */
+- if (!addr_eq(group->subnet->net,
+- subnet_number(hi, group->subnet->netmask))) {
+- parse_warn(cfile, "prefix6 end prefix"
+- " is outside the subnet");
+- skip_to_semi(cfile);
+- return;
+- }
+-
+ /*
+ * Next is '/' number ';'.
+ */
+@@ -4205,11 +4187,6 @@ parse_prefix6(struct parse *cfile,
+ parse_warn(cfile, "networks have 0 to 128 bits (exclusive)");
+ return;
+ }
+- if (bits < group->subnet->prefix_len) {
+- parse_warn(cfile, "network mask smaller than subnet mask");
+- skip_to_semi(cfile);
+- return;
+- }
+ if (!is_cidr_mask_valid(&lo, bits) ||
+ !is_cidr_mask_valid(&hi, bits)) {
+ parse_warn(cfile, "network mask too short");
More information about the svn-ports-all
mailing list