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