Date: Thu, 16 Jul 2015 11:51:57 +0000 (UTC) From: Renato Botelho <garga@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r392293 - in head/net: isc-dhcp42-server isc-dhcp42-server/files isc-dhcp43-server isc-dhcp43-server/files Message-ID: <201507161151.t6GBpvXW057596@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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");
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201507161151.t6GBpvXW057596>