22879627 problem in SERVICE/DHCP-SERVER s11u3-sru
authorBen Chang <Benjamin.Chang@Oracle.COM>
Mon, 13 Jun 2016 10:35:12 -0700
branchs11u3-sru
changeset 6168 b3cd649419fe
parent 6166 50758e8956e6
child 6171 0ee281735521
22879627 problem in SERVICE/DHCP-SERVER 23472330 Upgrade Solaris' DHCP to version 4.1-ESV-R7-S2
components/isc-dhcp/Makefile
components/isc-dhcp/SmfDHCPStates.html
components/isc-dhcp/SmfValueDHCP.html
components/isc-dhcp/Solaris/SmfDHCPStates.html
components/isc-dhcp/Solaris/SmfValueDHCP.html
components/isc-dhcp/Solaris/dhcp_auths
components/isc-dhcp/Solaris/isc-dhcp-relay.xml
components/isc-dhcp/Solaris/isc-dhcp-server.xml
components/isc-dhcp/Solaris/isc-dhcp.5
components/isc-dhcp/Solaris/isc-dhcp.sh
components/isc-dhcp/dhcp.p5m
components/isc-dhcp/dhcp_auths
components/isc-dhcp/isc-dhcp
components/isc-dhcp/isc-dhcp-relay.xml
components/isc-dhcp/isc-dhcp-server.xml
components/isc-dhcp/isc-dhcp.5
components/isc-dhcp/patches/003-ISC-Bugs_41845.patch
components/isc-dhcp/patches/004-Manage_41845.patch
--- a/components/isc-dhcp/Makefile	Sun Jun 12 22:22:24 2016 -0700
+++ b/components/isc-dhcp/Makefile	Mon Jun 13 10:35:12 2016 -0700
@@ -24,8 +24,8 @@
 
 COMPONENT_NAME=		isc-dhcp
 COMPONENT_VERSION=	4.1-ESV-R7
-HUMAN_VERSION=		$(COMPONENT_VERSION)-P1
-IPS_COMPONENT_VERSION=	4.1.0.7.1
+HUMAN_VERSION=		$(COMPONENT_VERSION)-S2
+IPS_COMPONENT_VERSION=	4.1.0.7.2
 COMPONENT_SRC_NAME=	dhcp
 COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
--- a/components/isc-dhcp/SmfDHCPStates.html	Sun Jun 12 22:22:24 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-<HTML>
-<!--
-    Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
-
-    CDDL HEADER START
-
-    The contents of this file are subject to the terms of the
-    Common Development and Distribution License (the "License").
-    You may not use this file except in compliance with the License.
-
-    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-    or http://www.opensolaris.org/os/licensing.
-    See the License for the specific language governing permissions
-    and limitations under the License.
-
-    When distributing Covered Code, include this CDDL HEADER in each
-    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-    If applicable, add the following below this CDDL HEADER, with the
-    fields enclosed by brackets "[]" replaced with your own identifying
-    information: Portions Copyright [yyyy] [name of copyright owner]
-
-    CDDL HEADER END
--->
-<!--
-   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-   <META NAME="GENERATOR" CONTENT="Mozilla/4.02 [en] (X11; U; SunOS 5.6 sun4u) [Netscape]">
--->
-<BODY>
-When Manage ISC DHCP Server and Relay Agent Service States is in
-the Authorizations Included column, it grants the authorization to
-enable, disable, or restart the ISC DHCP Server and Relay Agent services.
-<p>
-If Manage ISC DHCP Server and Relay Agent Service States is grayed, then you
-are not entitled to Add or Remove this authorization.
-<BR>&nbsp;
-</BODY>
-</HTML>
--- a/components/isc-dhcp/SmfValueDHCP.html	Sun Jun 12 22:22:24 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-<HTML>
-<!--
-    Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
-
-    CDDL HEADER START
-
-    The contents of this file are subject to the terms of the
-    Common Development and Distribution License (the "License").
-    You may not use this file except in compliance with the License.
-
-    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-    or http://www.opensolaris.org/os/licensing.
-    See the License for the specific language governing permissions
-    and limitations under the License.
-
-    When distributing Covered Code, include this CDDL HEADER in each
-    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-    If applicable, add the following below this CDDL HEADER, with the
-    fields enclosed by brackets "[]" replaced with your own identifying
-    information: Portions Copyright [yyyy] [name of copyright owner]
-
-    CDDL HEADER END
--->
-<!--
-   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-   <META NAME="GENERATOR" CONTENT="Mozilla/4.02 [en] (X11; U; SunOS 5.6 sun4u) [Netscape]">
--->
-<BODY>
-When Change Values of ISC DHCP Server and Relay Agent Service Properties is
-in the Authorizations Include column, it grants the the authorization to change
-ISC DHCP Server and Rely Agent service property values.
-<P> 
-If Change Values of ISC DHCP Server and Relay Agent Service Properties is
-grayed, then you are not entitled to Add or Remove this authorization.
-<BR>&nbsp;
-</BODY>
-</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/isc-dhcp/Solaris/SmfDHCPStates.html	Mon Jun 13 10:35:12 2016 -0700
@@ -0,0 +1,37 @@
+<HTML>
+<!--
+    Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+
+    CDDL HEADER START
+
+    The contents of this file are subject to the terms of the
+    Common Development and Distribution License (the "License").
+    You may not use this file except in compliance with the License.
+
+    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+    or http://www.opensolaris.org/os/licensing.
+    See the License for the specific language governing permissions
+    and limitations under the License.
+
+    When distributing Covered Code, include this CDDL HEADER in each
+    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+    If applicable, add the following below this CDDL HEADER, with the
+    fields enclosed by brackets "[]" replaced with your own identifying
+    information: Portions Copyright [yyyy] [name of copyright owner]
+
+    CDDL HEADER END
+-->
+<!--
+   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+   <META NAME="GENERATOR" CONTENT="Mozilla/4.02 [en] (X11; U; SunOS 5.6 sun4u) [Netscape]">
+-->
+<BODY>
+When Manage ISC DHCP Server and Relay Agent Service States is in
+the Authorizations Included column, it grants the authorization to
+enable, disable, or restart the ISC DHCP Server and Relay Agent services.
+<p>
+If Manage ISC DHCP Server and Relay Agent Service States is grayed, then you
+are not entitled to Add or Remove this authorization.
+<BR>&nbsp;
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/isc-dhcp/Solaris/SmfValueDHCP.html	Mon Jun 13 10:35:12 2016 -0700
@@ -0,0 +1,37 @@
+<HTML>
+<!--
+    Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+
+    CDDL HEADER START
+
+    The contents of this file are subject to the terms of the
+    Common Development and Distribution License (the "License").
+    You may not use this file except in compliance with the License.
+
+    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+    or http://www.opensolaris.org/os/licensing.
+    See the License for the specific language governing permissions
+    and limitations under the License.
+
+    When distributing Covered Code, include this CDDL HEADER in each
+    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+    If applicable, add the following below this CDDL HEADER, with the
+    fields enclosed by brackets "[]" replaced with your own identifying
+    information: Portions Copyright [yyyy] [name of copyright owner]
+
+    CDDL HEADER END
+-->
+<!--
+   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+   <META NAME="GENERATOR" CONTENT="Mozilla/4.02 [en] (X11; U; SunOS 5.6 sun4u) [Netscape]">
+-->
+<BODY>
+When Change Values of ISC DHCP Server and Relay Agent Service Properties is
+in the Authorizations Include column, it grants the the authorization to change
+ISC DHCP Server and Rely Agent service property values.
+<P> 
+If Change Values of ISC DHCP Server and Relay Agent Service Properties is
+grayed, then you are not entitled to Add or Remove this authorization.
+<BR>&nbsp;
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/isc-dhcp/Solaris/dhcp_auths	Mon Jun 13 10:35:12 2016 -0700
@@ -0,0 +1,2 @@
+solaris.smf.manage.dhcp:::Manage ISC DHCP Server and Relay Agent Service States::help=SmfDHCPStates.html
+solaris.smf.value.dhcp:::Change Values of ISC DHCP Server and Relay Agent Service Properties::help=SmfValueDCP.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/isc-dhcp/Solaris/isc-dhcp-relay.xml	Mon Jun 13 10:35:12 2016 -0700
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<!--
+ CDDL HEADER START
+
+ The contents of this file are subject to the terms of the
+ Common Development and Distribution License (the "License").
+ You may not use this file except in compliance with the License.
+
+ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ or http://www.opensolaris.org/os/licensing.
+ See the License for the specific language governing permissions
+ and limitations under the License.
+
+ When distributing Covered Code, include this CDDL HEADER in each
+ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ If applicable, add the following below this CDDL HEADER, with the
+ fields enclosed by brackets "[]" replaced with your own identifying
+ information: Portions Copyright [yyyy] [name of copyright owner]
+
+ CDDL HEADER END
+
+	NOTE:  This service manifest is not editable; its contents will
+	be overwritten by package or patch operations, including
+	operating system upgrade.  Make customizations in a different
+	file.
+
+	Service manifest for the ISC DHCP Relay service.
+-->
+<!--
+    Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+-->
+<service_bundle type='manifest' name='isc-dhcp:relay'>
+
+<service name='network/dhcp/relay' type='service' version='1'>
+
+	<!--
+		We historically ran only in run-level 3, so depend on the
+		equivalent milestone to level 2.  We restart on refresh in
+		order to handle any changes to nameservice or filesystem
+		or other service configuration which may affect DHCP service.
+	-->
+	<dependency name='multi-user'
+		grouping='require_all' 
+		restart_on='refresh'
+		type='service'>
+		<service_fmri value='svc:/milestone/multi-user'/>
+	</dependency>
+
+	<!--
+		Running both DHCP flavors on a system is not supported - either
+		run ISC or Solaris.
+	-->
+	<dependency name='dhcp-server'
+		grouping='exclude_all'
+		restart_on='none' 
+		type='service'>
+		<service_fmri value='svc:/network/dhcp-server'/>
+	</dependency>
+
+	<exec_method type='method' name='start' 
+		exec='/lib/svc/method/isc-dhcp' timeout_seconds='60'>
+		<method_context>
+			<method_credential user='dhcpserv' group='netadm' 
+		privileges='basic,net_rawaccess,net_icmpaccess,net_privaddr,sys_ip_config'/>
+		</method_context>
+	</exec_method>
+
+	<exec_method type='method' name='stop' exec=':kill' 
+		timeout_seconds='60'/>
+
+	<exec_method type='method' name='refresh' exec=':kill -HUP' 
+		timeout_seconds='60'/>
+
+	<property_group name='firewall_context' type='com.sun,fw_definition'>
+		<propval name='name' type='astring' value='bootps'/>
+	</property_group>
+
+	<property_group name='firewall_config' type='com.sun,fw_configuration'>
+		<propval name='policy' type='astring' value='use_global'/>
+		<propval name='apply_to' type='astring' value=''/>
+		<propval name='exceptions' type='astring' value=''/>
+		<propval name='value_authorization' type='astring' 
+			value='solaris.smf.value.firewall.config'/>
+	</property_group>
+
+	<property_group name='general' type='framework'>
+		<!-- to start stop dhcp services -->
+		<propval name='action_authorization' type='astring'
+			value='solaris.smf.manage.dhcp' />
+		<propval name='value_authorization' type='astring'
+                        value='solaris.smf.manage.dhcp' />
+        </property_group>
+
+	<instance name='ipv4' enabled='false'>
+		<property_group name='config' type='application'>
+			<propval name='debug' type='boolean' value='false'/>
+			<propval name='append_agent_option' type='boolean' 
+			    value='false'/>
+			<property name='servers' type='astring'> 
+				<astring_list>
+					<value_node value=''/>
+				</astring_list>
+			</property>
+			<property name='listen_ifnames' type='astring' >
+				<astring_list>
+					<value_node value=''/>
+				</astring_list>
+			</property>
+			<propval name='value_authorization' type='astring'
+				value='solaris.smf.value.dhcp' />
+		</property_group>
+	</instance>
+
+	<instance name='ipv6' enabled='false'>
+		<property_group name='config' type='application'>
+			<propval name='debug' type='boolean' value='false'/>
+			<property name='receive_query_links' type='astring'>
+				<astring_list>
+					<value_node value=''/>
+				</astring_list>
+			</property>
+			<property name='forward_query_links' type='astring'>
+				<astring_list>
+					<value_node value=''/>
+				</astring_list>
+			</property>
+			<propval name='value_authorization' type='astring'
+                                value='solaris.smf.value.dhcp' />
+		</property_group>
+	</instance>
+
+	<stability value='Unstable'/>
+
+	<template>
+		<common_name>
+			<loctext xml:lang='C'>
+				ISC DHCP Relay
+			</loctext>
+		</common_name>
+		<description>
+			<loctext xml:lang='C'>
+ISC DHCP Relay service relays DHCP and BOOTP requests from one subnet with no DHCP server to another subnet with a DHCP server.
+			</loctext>
+		</description>
+		<documentation>
+			<manpage title='dhcrelay' section='1M'
+				manpath='/usr/share/man'/>
+		</documentation>
+	</template>
+</service>
+
+</service_bundle>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/isc-dhcp/Solaris/isc-dhcp-server.xml	Mon Jun 13 10:35:12 2016 -0700
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<!--
+ CDDL HEADER START
+
+ The contents of this file are subject to the terms of the
+ Common Development and Distribution License (the "License").
+ You may not use this file except in compliance with the License.
+
+ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ or http://www.opensolaris.org/os/licensing.
+ See the License for the specific language governing permissions
+ and limitations under the License.
+
+ When distributing Covered Code, include this CDDL HEADER in each
+ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ If applicable, add the following below this CDDL HEADER, with the
+ fields enclosed by brackets "[]" replaced with your own identifying
+ information: Portions Copyright [yyyy] [name of copyright owner]
+
+ CDDL HEADER END
+
+	NOTE:  This service manifest is not editable; its contents will
+	be overwritten by package or patch operations, including
+	operating system upgrade.  Make customizations in a different
+	file.
+
+	Service manifest for the ISC DHCP Server service.
+-->
+<!--
+    Copyright (c) 2011,2016, Oracle and/or its affiliates. All rights reserved.
+-->
+<service_bundle type='manifest' name='isc-dhcp:server'>
+
+<service name='network/dhcp/server' type='service' version='1'>
+
+	<!--
+	    We historically ran only in run-level 3, so depend on the
+	    equivalent milestone to level 2.  We restart on refresh in
+	    order to handle any changes to nameservice or filesystem
+	    or other service configuration which may affect DHCP service.
+	-->
+	<dependency name='multi-user'
+		grouping='require_all'
+		restart_on='refresh'
+		type='service'>
+		<service_fmri value='svc:/milestone/multi-user'/>
+	</dependency>
+
+	<!--
+	   Cant run both DHCP flavors on a system Either run ISC or
+	   Solaris
+	-->
+	<dependency name='dhcp-server'
+		grouping='exclude_all'
+		restart_on='none' 
+		type='service'>
+		<service_fmri value='svc:/network/dhcp-server'/>
+	</dependency>
+	<exec_method type='method' name='start' 
+		exec='/lib/svc/method/isc-dhcp' timeout_seconds='60'>
+		<method_context>
+			<method_credential
+				user='dhcpserv' group='netadm' 
+				privileges='basic,net_rawaccess,net_icmpaccess,net_privaddr,sys_ip_config'
+			/>
+		</method_context>
+	</exec_method>
+
+	<exec_method type='method' name='stop' exec=':kill' 
+		timeout_seconds='60'/>
+
+	<exec_method type='method' name='refresh' exec=':kill -HUP' 
+		timeout_seconds='60'/>
+
+	<property_group name='firewall_context' type='com.sun,fw_definition'>
+		<propval name='name' type='astring' value='bootps'/>
+	</property_group>
+
+	<property_group name='firewall_config' type='com.sun,fw_configuration'>
+		<propval name='policy' type='astring' value='use_global'/>
+		<propval name='apply_to' type='astring' value=''/>
+		<propval name='exceptions' type='astring' value=''/>
+		<propval name='value_authorization' type='astring' 
+			value='solaris.smf.value.firewall.config'/>
+	</property_group>
+
+	<property_group name='general' type='framework'>
+		<!-- to start stop dhcp services -->
+		<propval name='action_authorization' type='astring'
+			value='solaris.smf.manage.dhcp' />
+		<propval name='value_authorization' type='astring'
+			value='solaris.smf.manage.dhcp' />
+	</property_group>
+
+	<instance name='ipv4' enabled='false'>
+		<property_group name='config' type='application'>
+			<propval name='debug' type='boolean' value='false'/>
+			<propval name='omapi_conn_limit' type='integer'
+				value='200'/>
+			<propval name='config_file' type='astring' 
+				value='/etc/inet/dhcpd4.conf'/>
+			<propval name='lease_file' type='astring'
+				value='/var/db/isc-dhcp/dhcpd4.leases'/>
+			<property name='listen_ifnames' type='astring' >
+				<astring_list>
+					<value_node value='' />
+				</astring_list>
+			</property>
+			<propval name='value_authorization' type='astring'
+				value='solaris.smf.value.dhcp' />
+		</property_group>
+	</instance>
+
+	<instance name='ipv6' enabled='false'>
+		<property_group name='config' type='application'>
+			<propval name='debug' type='boolean' value='false'/>
+			<propval name='omapi_conn_limit' type='integer'
+				value='200'/>
+			<propval name='config_file' type='astring'
+				value='/etc/inet/dhcpd6.conf'/>
+			<propval name='lease_file' type='astring'
+				value='/var/db/isc-dhcp/dhcpd6.leases'/>
+			<property name='listen_ifnames' type='astring'>
+				<astring_list>
+					<value_node value='' />
+				</astring_list>
+			</property>
+			<propval name='value_authorization' type='astring'
+				value='solaris.smf.value.dhcp' />
+		</property_group>
+	</instance>
+
+	<stability value='Unstable'/>
+
+	<template>
+		<common_name>
+			<loctext xml:lang='C'>
+				ISC DHCP Server
+			</loctext>
+		</common_name>
+		<description>
+			<loctext xml:lang='C'>
+ISC DHCP server provides DHCP and BOOTP protocol services to network clients.
+			</loctext>
+		</description>
+		<documentation>
+			<manpage title='dhcpd' section='1M'
+				manpath='/usr/share/man'/>
+		</documentation>
+	</template>
+</service>
+
+</service_bundle>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/isc-dhcp/Solaris/isc-dhcp.5	Mon Jun 13 10:35:12 2016 -0700
@@ -0,0 +1,280 @@
+'\" te
+.\" Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+.TH isc-dhcp 5 "17 May 2016" "SunOS 5.11"
+.SH NAME
+isc\-dhcp \- ISC Dynamic Host Configuration Protocol Software
+
+.SH DESCRIPTION
+.sp
+.LP
+The Internet Systems Consortium (ISC) DHCP Server (dhcpd)
+implements the Dynamic Host Configuration Protocol
+(DHCPv4 and DHCPv6), and the Internet Bootstrap Protocol
+(BOOTP). DHCP allows hosts on a TCP/IP network to request
+and be assigned IP addresses, and also to discover information
+about the network to which they are attached.  BOOTP
+provides similar functionality, with certain restrictions.
+.sp
+.LP
+ISC Relay Agent (dhcrelay) provides a means for relaying DHCP
+and BOOTP requests from a subnet to which no DHCP server is
+directly connected to one or more DHCP servers on other subnets.
+.sp
+.LP
+The services above (dhcpd and dhcrelay) are managed using the Service
+Management Facility (SMF) on Solaris, and should be administered by
+the svcadm(1M) command using  the following fault management resource
+identifiers (FMRIs):
+.sp
+.LP
+.in +2
+.nf
+svc:/network/dhcp/server:ipv4
+svc:/network/dhcp/server:ipv6
+svc:/network/dhcp/relay:ipv4
+svc:/network/dhcp/relay:ipv6
+.fi
+.sp
+.LP
+The following dhcpd service configuration properties can be viewed with
+svcprop(1M) and modified via svccfg(1M):
+.sp
+.ne 2
+.mk
+.na
+debug
+.ad
+.sp .6
+.RS 4n
+Send log messages from the DHCP daemon to  the  standard  error  descriptor.
+Setting this property to true ensures the -d command-line option is
+used when starting dhcpd. This property is set to false by default.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+config_file
+.ad
+.sp .6
+.RS 4n
+Path to alternate configuration file. The value of this property
+is passed as an argument to the -cf command-line option of dhcpd.
+The default is set to /etc/inet/dhcpd6.conf and /etc/inet/dhcpd4.conf
+for DHCP v6 and v4 servers respectively.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+lease_file
+.ad
+.sp .6
+.RS 4n
+Path to alternate lease file. The value of this property is passed
+as an argument to the -lf command-line option of dhcpd. The default value
+is set to /var/db/isc-dhcp/v4.leases for DHCPv4 and /var/db/isc-dhcp/v6.leases for
+DHCPv6.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+listen_ifnames
+.ad
+.sp .6
+.RS 4n
+optional parameter that allows users to specify one or more network
+interfaces on which dhcpd should serve DHCP requests. This property
+matches the "if0" command-line option of dhcpd.  Note that the
+interface names must be seperated by a comma.  Please see Example 4.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+omapi_conn_limit
+.ad
+.sp .6
+.RS 4n
+Value used to limit the number of failover and control connections
+accepted by the server - the default is 200. Only positive integer
+values are permissible; a value of 0 means there is no limit. Please see
+Example 5.
+.LP
+NOTE: This property will be removed in the event ISC removes the
+underlying functionality. The ISC recommends that customers implement
+one or more of the work arounds documented in ISC's Knowledge Base
+article \fB\fIAA-01354\fR (https://kb.isc.org/article/AA-01354).
+.RE
+
+.sp
+.LP
+The following dhcrelay options are available as
+service configuration properties and can be viewed with svcprop(1M)
+and modified via svccfg(1M):
+.sp
+.ne 2
+.mk
+.na
+append_agent_option (v4 only)
+.ad
+.sp .6
+.RS 4n
+Setting this option to true ensures the DHCP relay appends an agent option
+field to each request before forwarding the request to the DHCP
+server. When this property is set to true, the -a command-line option
+is used when launching dhcrelay. The default value of this property is
+false. This option is only applicable to the svc:/network/dhcp/relay:ipv4 service. 
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+listen_ifnames (v4 only)
+.ad
+.sp .6
+.RS 4n
+This option allows users to specify one or more interfaces on which
+the DHCP relay should listen for DHCPv4/BOOTP queries. This option is
+only applicable to the svc:/network/dhcp/relay:ipv4 service. 
+
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+servers (v4 only)
+.ad
+.sp .6
+.RS 4n
+Users must set this property to the IP addresses of one or more
+servers before enabling the relay service
+(svc:/network/dhcp/relay:ipv4). The servers property value must be a
+comma-separated list of IP addresses. This option is
+only applicable to the svc:/network/dhcp/relay:ipv4 service. 
+
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+receive_query_links (v6 only)
+.ad
+.sp .6
+.RS 4n
+Users must set this property value to specify the interface(s) on which
+queries will be received from clients or from other relay agents
+before enabling the relay service (svc:/network/dhcp/relay:ipv6).
+This option is only applicable to the svc:/network/dhcp/relay:ipv6 service. 
+See also Example 3.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+forward_query_links (v6 only)
+.ad
+.sp .6
+.RS 4n
+Users must set this property value to specify the interface(s) on which
+queries from clients and other relay agents should be forwarded before
+enabling the relay service (svc:/network/dhcp/relay:ipv6).  The
+property value is passed as the argument for the -u command-line
+option to the dhcrelay program. The interface(s) specified must be
+comma-separated. This option is only applicable to the
+svc:/network/dhcp/relay:ipv6 service. 
+.RE
+
+.sp
+.LP
+Since dhcpd and dhcrelay are managed using SMF no pid files are created.  
+.sp
+.LP
+
+.SH EXAMPLES
+.sp
+.LP
+\fBExample 1 \fR Enabling DHCPv4 Server 
+ISC DHCPv4 server service is disabled by default. The following
+command enables the ISC DHCPv4 service:
+
+.in +2
+.nf
+example# svcadm enable svc:/network/dhcp/server:ipv4
+.fi
+.in -2
+
+\fBExample 2 \fR Displaying the configurable properties of DHCPv6 Relay
+Agent service.  The following command displays all configurable properties of 
+DHCPv6 Relay Agent Service:
+
+.in +2
+.nf
+example# svccfg -s dhcp/relay:ipv6 listprop config
+config                      application
+config/forward_query_links  astring  
+config/listen_ifnames       astring  
+config/receive_query_links  astring  
+config/value_authorization  astring  solaris.smf.value.dhcp
+.fi
+.in -2
+
+.PP
+\fBExample 3 \fR Setting the receive_query_links property value of DHCPv6 Relay
+Agent service.  The following commands will set the receive_links property value to the
+following values: 10.0.0.1%e10000g#0,bge0,iprb#1
+
+.in +2
+.nf
+example# svccfg -s dhcp/relay:ipv6 setprop \\
+    config/receive_query_links= \\
+    \\(\\"10.0.0.1%e10000g#0\\"\\"bge0\\"\\"iprb#1\\"\\)
+example# svccfg -s dhcp/relay:ipv6 refresh
+
+NOTE: spaces are not allowed in the string within quotes in the
+      setprop command 
+
+To verify that the property values are set type either
+the svccfg command or the svcprop command below:
+
+example# svccfg -s dhcp/relay:ipv6 listprop config/receive_query_links
+config/receive_query_links  astring  "10.0.0.1%e10000g#0" "bge0" "iprb#1"
+
+example# svcprop -p config/receive_query_links dhcp/relay:ipv6
+10.0.0.1%e10000g#0 bge0 iprb#1
+.fi
+.in -2
+
+\fBExample 4 \fR Setting the listen_ifnames property value for dhcpd.
+The following commands will set the listen_ifnames property to 
+"bge0, bge1" and then display the updated values.
+
+.in +2
+.nf
+example# svccfg -s dhcp/server:ipv4 setprop \\
+    config/listen_ifnames = \\(\\"bge0\\"\\"bge1\\"\\) 
+example# svccfg -s dhcp/server:ipv4 refresh
+
+NOTE: spaces are not allowed in the string within quotes in the
+      setprop command 
+
+To verify that the property values are set type:
+
+example# svccfg -s dhcp/server:ipv4 listprop config/listen_ifnames
+config/listen_ifnames  astring  "bge0" "bge1" 
+.fi
+.in -2
+
+.SH SEE ALSO
+.sp
+.LP
+svccfg(1M), svcprop(1), svcadm(1M), dhcpd(8), dhcrelay(8)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/isc-dhcp/Solaris/isc-dhcp.sh	Mon Jun 13 10:35:12 2016 -0700
@@ -0,0 +1,290 @@
+#!/sbin/sh
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+
+. /lib/svc/share/smf_include.sh
+. /lib/svc/share/net_include.sh
+
+SVCPROP=/usr/bin/svcprop
+CHMOD=/usr/bin/chmod
+TOUCH=/usr/bin/touch
+
+DHCPD_IPV4="svc:/network/dhcp/server:ipv4"
+DHCPD_IPV6="svc:/network/dhcp/server:ipv6"
+DHCPRELAY_IPV4="svc:/network/dhcp/relay:ipv4"
+DHCPRELAY_IPV6="svc:/network/dhcp/relay:ipv6"
+
+DHCPD_BIN="/usr/lib/inet/dhcpd"
+DHCPRELAY_BIN="/usr/lib/inet/dhcrelay"
+
+#
+# dhcpd/dhcprelay can run in a global or exclusive-stack zone only
+#
+smf_configure_ip || exit $SMF_EXIT_OK
+
+if [ -z $SMF_FMRI ]; then
+	echo "SMF framework variables are not initialized."
+	exit $SMF_EXIT_ERR
+fi
+
+#
+# get_prop fmri propname
+#
+get_prop () {
+	VALUE="`$SVCPROP -cp config/$1 $SMF_FMRI 2>/dev/null`"
+	# Empty astring_list values show up as "" - do not return this.
+	if [ "$VALUE" != "\"\"" ]; then
+		echo $VALUE
+	fi
+}
+
+errlog () {
+	echo $1 >&2
+}
+
+get_common_options() {
+	#
+	# get debug property value 
+	#
+	if [ "`get_prop debug`" = "true" ]; then
+		DEBUG="-d"
+	else
+		DEBUG="-q"
+	fi
+
+	export OPTIONS="$OPTIONS $DEBUG"
+	return 0
+}
+
+#
+# expand_prop "prop_name" "var_name" [ argflag ]
+#
+#     prop_name		FMRI property name
+#     var_name		variable where result is stored; initialized
+#			to ""
+#     argflag		The flag to be prepended to each property
+#			value; optional argument
+#
+# This function will retrieve the properties for "prop_name" via a call
+# to get_prop(). It will split-up the property values; it assumes that
+# the delimiter is whitespace. It will then prepend "argflag" to each
+# property value. The results will be stored in "var_name" which is
+# passed by reference.
+#
+# Return values:
+#
+#     0			Success
+#     1			Failure
+#
+expand_prop() {
+	if [ $# -lt 2 ] || [ -z $2 ]; then
+		errlog "Internal error - expand_prop() has incorrect arguments"
+		return 1
+	fi
+
+	prop_name=$1
+	typeset -n var_name=$2
+	argflag="$3"
+
+	prop_values="`get_prop $prop_name`"
+	if [  -z "$prop_values" ]; then
+		errlog "The property, \"${prop_name}\", is empty"
+		return 1
+	fi
+
+	var_name=""
+	for item in `IFS= ; set -- $prop_values; echo $@`; do
+		var_name="$var_name $argflag $item"
+	done
+
+	return 0
+}
+
+
+get_dhcpd_options() {
+	# get listen_ifname property value.
+	LISTENIFNAMES="`get_prop listen_ifnames`"
+
+	#
+	# get common config file properties
+	#
+	CONFIGFILE=`get_prop config_file`
+	if [ -z "$CONFIGFILE" ]; then
+		errlog "No config_file specified, exiting"
+		return 1
+	fi
+	if [ ! -f "$CONFIGFILE" ]; then
+		errlog "Required config_file $CONFIGFILE not found, exiting"
+		return 1
+	fi
+
+	#
+	# If a leasefile does not exist, create an empty file.
+	#
+	LEASEFILE=`get_prop lease_file`
+	if [ -z "$LEASEFILE" ]; then
+		errlog "No lease_file specified, exiting"
+		return 1
+	fi
+	if [ ! -f "$LEASEFILE" ]; then
+		$TOUCH $LEASEFILE
+		$CHMOD u=rw,go=r $LEASEFILE
+	fi
+
+	export OPTIONS="$OPTIONS -cf $CONFIGFILE -lf $LEASEFILE $LISTENIFNAMES"
+	return 0
+}
+
+get_dhcprelay_options_v4() {
+	#
+	# Get append_agent_option V4 property value 
+	#
+	if [ "`get_prop append_agent_option`" = "true" ]; then
+		APPEND="-a -m append"
+	else
+		APPEND=""
+	fi
+
+	#
+	# get listen_ifname property value and modify it.  
+	# If listen_ifnames property value is "e1000g01 iprb0" then the
+	# command line option will look like  "-i e1000g0 -i iprb0"
+	#
+	IIFLIST=
+	expand_prop listen_ifnames IIFLIST -i || return $?
+
+	#
+	# Get servers  V4 property value - command line option will look
+	# like  "1.2.3.5" "4.5.6.7".
+	#
+	# NOTE: By default server property value is empty. User must
+	# first specify a server using svccfg/setprop command
+	# before enabling service.
+	#
+	DHCPSERVERS=`get_prop servers`
+	if [  -z "$DHCPSERVERS" ]; then
+		errlog 'Must specify at least one "servers" property value, exiting'
+		return 1
+	fi
+
+	export OPTIONS="$OPTIONS -4 $APPEND $IIFLIST $DHCPSERVERS"
+	return 0
+}
+
+get_dhcprelay_options_v6() {
+	#
+	# Get receivelinks  V6 property value and modify it:
+	# Given property values of "1.2.3.4%bge0#1 bge2,1.2.3.4%iprb",
+	# the command line option will look like  "-l 1.2.3.4%bge0#1 -l
+	# bge2 -l 1.2.3.4%iprb".
+	#
+	# NOTE: By default receivelinks value is empty. User must
+	# first specify a server using svccfg/setprop command
+	# before enabling service.
+	#
+	IRECVLINKS=
+	expand_prop receive_query_links IRECVLINKS -l || return $?
+	#
+	# Get forwardlinks V6 property value and modify it:
+	# Given forward_query_links property value is "1.2.3.4%bge0 bge2,"
+	# then the command line option will look like  "-u 1.2.3.4%bge0 -u
+	# bge2"
+	#
+	# NOTE: By default forwardlinks value is empty. User must
+	# first specify a server using svccfg/setprop command
+	# before enabling service.
+	#
+	IFWDLINKS=
+	expand_prop forward_query_links IFWDLINKS -u || return $?
+
+	export OPTIONS="$OPTIONS -6 $IRECVLINKS $IFWDLINKS"
+}
+
+export OPTIONS="--no-pid"
+
+case "$SMF_FMRI" in
+"$DHCPD_IPV4"|"$DHCPD_IPV6")
+	# get omapi_conn_limit property value.
+	export OMAPI_CONN_LIMIT=`get_prop omapi_conn_limit`
+
+	get_common_options
+	if [ "$?" != "0" ]; then
+		exit $SMF_EXIT_ERR_CONFIG
+	fi
+	get_dhcpd_options
+	if [ "$?" != "0" ]; then
+		exit $SMF_EXIT_ERR_CONFIG
+	fi
+	if [ "$SMF_FMRI" = "$DHCPD_IPV4" ]; then
+		OPTIONS="-4 $OPTIONS"
+	else
+		OPTIONS="-6 $OPTIONS"
+	fi
+	export EXECFILE=$DHCPD_BIN
+	;;
+
+$DHCPRELAY_IPV4)
+	get_common_options
+	if [ $? != "0" ]; then
+		exit $SMF_EXIT_ERR_CONFIG
+	fi
+	get_dhcprelay_options_v4
+	if [ $? != "0" ]; then
+		exit $SMF_EXIT_ERR_CONFIG
+	fi
+	export EXECFILE=$DHCPRELAY_BIN
+	;;
+
+$DHCPRELAY_IPV6)
+	get_common_options
+	if [ $? != "0" ]; then
+		exit $SMF_EXIT_ERR_CONFIG
+	fi
+	get_dhcprelay_options_v6
+	if [ $? != "0" ]; then
+		exit $SMF_EXIT_ERR_CONFIG
+	fi
+	export EXECFILE=$DHCPRELAY_BIN
+	;;
+
+*)
+        echo "isc-dhcp must be invoked from within SMF"
+        exit $SMF_EXIT_ERR_FATAL
+	;;
+
+esac
+
+# Now start the daemon
+if [ "$DEBUG" = "-d" ]; then
+	$EXECFILE $OPTIONS &
+else
+	$EXECFILE $OPTIONS
+fi
+
+if [ "$?" != "0" ]; then
+	exit $SMF_EXIT_ERR_FATAL
+fi
+
+exit $SMF_EXIT_OK
--- a/components/isc-dhcp/dhcp.p5m	Sun Jun 12 22:22:24 2016 -0700
+++ b/components/isc-dhcp/dhcp.p5m	Mon Jun 13 10:35:12 2016 -0700
@@ -26,8 +26,8 @@
 set name=pkg.summary value="ISC DHCP Server and Relay Agent."
 set name=pkg.description \
     value="ISC DHCP is open source software that implements the Dynamic Host Configuration Protocols for connection to a local network. This package includes the ISC DHCP server, relay agent and the omshell tool."
+set name=pkg.human-version value=$(HUMAN_VERSION)
 set name=com.oracle.info.description value="the ISC DHCP Server and Relay Agent"
-set name=pkg.human-version value=$(HUMAN_VERSION)
 set name=com.oracle.info.tpno value=$(TPNO)
 set name=info.classification value=org.opensolaris.category.2008:System/Services
 set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
@@ -39,25 +39,28 @@
 dir  path=etc/inet
 file server/dhcpd.conf path=etc/inet/dhcpd.conf.example group=sys
 dir  path=etc/security
-file dhcp_auths path=etc/security/auth_attr.d/service%2Fnetwork%2Fisc-dhcp
+file Solaris/dhcp_auths \
+    path=etc/security/auth_attr.d/service%2Fnetwork%2Fisc-dhcp
 dir  path=lib
 dir  path=lib/svc
 dir  path=lib/svc/manifest
 dir  path=lib/svc/manifest/network
 dir  path=lib/svc/manifest/network/dhcp
-file isc-dhcp-relay.xml path=lib/svc/manifest/network/dhcp/isc-dhcp-relay.xml \
-    group=sys mode=0444
-file isc-dhcp-server.xml \
+file Solaris/isc-dhcp-relay.xml \
+    path=lib/svc/manifest/network/dhcp/isc-dhcp-relay.xml group=sys mode=0444
+file Solaris/isc-dhcp-server.xml \
     path=lib/svc/manifest/network/dhcp/isc-dhcp-server.xml group=sys mode=0444
 dir  path=lib/svc/method
-file isc-dhcp path=lib/svc/method/isc-dhcp mode=0555
+file Solaris/isc-dhcp.sh path=lib/svc/method/isc-dhcp mode=0555
 dir  path=usr
 dir  path=usr/lib
 dir  path=usr/lib/help
 dir  path=usr/lib/help/auths
 dir  path=usr/lib/help/auths/locale
-file SmfDHCPStates.html path=usr/lib/help/auths/locale/SmfDHCPStates.html
-file SmfValueDHCP.html path=usr/lib/help/auths/locale/SmfValueDHCP.html
+file Solaris/SmfDHCPStates.html \
+    path=usr/lib/help/auths/locale/C/SmfDHCPStates.html mode=0444
+file Solaris/SmfValueDHCP.html \
+    path=usr/lib/help/auths/locale/C/SmfValueDHCP.html mode=0444
 dir  path=usr/lib/inet
 file path=usr/lib/inet/dhcpd
 file path=usr/lib/inet/dhcrelay
@@ -72,7 +75,7 @@
 file path=usr/share/man/man5/dhcp-options.5
 file path=usr/share/man/man5/dhcpd.conf.5
 file path=usr/share/man/man5/dhcpd.leases.5
-file isc-dhcp.5 path=usr/share/man/man5/isc-dhcp.5
+file Solaris/isc-dhcp.5 path=usr/share/man/man5/isc-dhcp.5
 dir  path=usr/share/man/man8
 file path=usr/share/man/man8/dhcpd.8
 file path=usr/share/man/man8/dhcrelay.8
@@ -85,12 +88,8 @@
 dir  path=var/db/isc-dhcp owner=dhcpserv group=netadm mode=0755
 file dhcpd.leases path=var/db/isc-dhcp/dhcpd4.leases owner=dhcpserv \
     group=netadm mode=0644 preserve=true
-file dhcpd.leases path=var/db/isc-dhcp/dhcpd4.leases~ owner=dhcpserv \
-    group=netadm mode=0644 preserve=true
 file dhcpd.leases path=var/db/isc-dhcp/dhcpd6.leases owner=dhcpserv \
     group=netadm mode=0644 preserve=true
-file dhcpd.leases path=var/db/isc-dhcp/dhcpd6.leases~ owner=dhcpserv \
-    group=netadm mode=0644 preserve=true
 user username=dhcpserv ftpuser=false gcos-field="DHCP Configuration Admin" \
     group=netadm uid=18
 license isc-dhcp.license license="ISC BSD"
--- a/components/isc-dhcp/dhcp_auths	Sun Jun 12 22:22:24 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-solaris.smf.manage.dhcp:::Manage ISC DHCP Server and Relay Agent Service States::help=SmfDHCPStates.html
-solaris.smf.value.dhcp:::Change Values of ISC DHCP Server and Relay Agent Service Properties::help=SmfValueDCP.html
--- a/components/isc-dhcp/isc-dhcp	Sun Jun 12 22:22:24 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,287 +0,0 @@
-#!/sbin/sh
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
-#
-
-. /lib/svc/share/smf_include.sh
-. /lib/svc/share/net_include.sh
-
-SVCPROP=/usr/bin/svcprop
-CHMOD=/usr/bin/chmod
-TOUCH=/usr/bin/touch
-
-DHCPD_IPV4="svc:/network/dhcp/server:ipv4"
-DHCPD_IPV6="svc:/network/dhcp/server:ipv6"
-DHCPRELAY_IPV4="svc:/network/dhcp/relay:ipv4"
-DHCPRELAY_IPV6="svc:/network/dhcp/relay:ipv6"
-
-DHCPD_BIN="/usr/lib/inet/dhcpd"
-DHCPRELAY_BIN="/usr/lib/inet/dhcrelay"
-
-#
-# dhcpd/dhcprelay can run in a global or exclusive-stack zone only
-#
-smf_configure_ip || exit $SMF_EXIT_OK
-
-if [ -z $SMF_FMRI ]; then
-	echo "SMF framework variables are not initialized."
-	exit $SMF_EXIT_ERR
-fi
-
-#
-# get_prop fmri propname
-#
-get_prop () {
-	VALUE="`$SVCPROP -cp config/$1 $SMF_FMRI 2>/dev/null`"
-	# Empty astring_list values show up as "" - do not return this.
-	if [ "$VALUE" != "\"\"" ]; then
-		echo $VALUE
-	fi
-}
-
-errlog () {
-	echo $1 >&2
-}
-
-get_common_options() {
-	#
-	# get debug property value 
-	#
-	if [ "`get_prop debug`" = "true" ]; then
-		DEBUG="-d"
-	else
-		DEBUG="-q"
-	fi
-
-	export OPTIONS="$OPTIONS $DEBUG"
-	return 0
-}
-
-#
-# expand_prop "prop_name" "var_name" [ argflag ]
-#
-#     prop_name		FMRI property name
-#     var_name		variable where result is stored; initialized
-#			to ""
-#     argflag		The flag to be prepended to each property
-#			value; optional argument
-#
-# This function will retrieve the properties for "prop_name" via a call
-# to get_prop(). It will split-up the property values; it assumes that
-# the delimiter is whitespace. It will then prepend "argflag" to each
-# property value. The results will be stored in "var_name" which is
-# passed by reference.
-#
-# Return values:
-#
-#     0			Success
-#     1			Failure
-#
-expand_prop() {
-	if [ $# -lt 2 ] || [ -z $2 ]; then
-		errlog "Internal error - expand_prop() has incorrect arguments"
-		return 1
-	fi
-
-	prop_name=$1
-	typeset -n var_name=$2
-	argflag="$3"
-
-	prop_values="`get_prop $prop_name`"
-	if [  -z "$prop_values" ]; then
-		errlog "The property, \"${prop_name}\", is empty"
-		return 1
-	fi
-
-	var_name=""
-	for item in `IFS= ; set -- $prop_values; echo $@`; do
-		var_name="$var_name $argflag $item"
-	done
-
-	return 0
-}
-
-
-get_dhcpd_options() {
-	# get listen_ifname property value.
-	LISTENIFNAMES="`get_prop listen_ifnames`"
-
-	#
-	# get common config file properties
-	#
-	CONFIGFILE=`get_prop config_file`
-	if [ -z "$CONFIGFILE" ]; then
-		errlog "No config_file specified, exiting"
-		return 1
-	fi
-	if [ ! -f "$CONFIGFILE" ]; then
-		errlog "Required config_file $CONFIGFILE not found, exiting"
-		return 1
-	fi
-
-	#
-	# If a leasefile does not exist, create an empty file.
-	#
-	LEASEFILE=`get_prop lease_file`
-	if [ -z "$LEASEFILE" ]; then
-		errlog "No lease_file specified, exiting"
-		return 1
-	fi
-	if [ ! -f "$LEASEFILE" ]; then
-		$TOUCH $LEASEFILE
-		$CHMOD u=rw,go=r $LEASEFILE
-	fi
-
-	export OPTIONS="$OPTIONS -cf $CONFIGFILE -lf $LEASEFILE $LISTENIFNAMES"
-	return 0
-}
-
-get_dhcprelay_options_v4() {
-	#
-	# Get append_agent_option V4 property value 
-	#
-	if [ "`get_prop append_agent_option`" = "true" ]; then
-		APPEND="-a -m append"
-	else
-		APPEND=""
-	fi
-
-	#
-	# get listen_ifname property value and modify it.  
-	# If listen_ifnames property value is "e1000g01 iprb0" then the
-	# command line option will look like  "-i e1000g0 -i iprb0"
-	#
-	IIFLIST=
-	expand_prop listen_ifnames IIFLIST -i || return $?
-
-	#
-	# Get servers  V4 property value - command line option will look
-	# like  "1.2.3.5" "4.5.6.7".
-	#
-	# NOTE: By default server property value is empty. User must
-	# first specify a server using svccfg/setprop command
-	# before enabling service.
-	#
-	DHCPSERVERS=`get_prop servers`
-	if [  -z "$DHCPSERVERS" ]; then
-		errlog 'Must specify at least one "servers" property value, exiting'
-		return 1
-	fi
-
-	export OPTIONS="$OPTIONS -4 $APPEND $IIFLIST $DHCPSERVERS"
-	return 0
-}
-
-get_dhcprelay_options_v6() {
-	#
-	# Get receivelinks  V6 property value and modify it:
-	# Given property values of "1.2.3.4%bge0#1 bge2,1.2.3.4%iprb",
-	# the command line option will look like  "-l 1.2.3.4%bge0#1 -l
-	# bge2 -l 1.2.3.4%iprb".
-	#
-	# NOTE: By default receivelinks value is empty. User must
-	# first specify a server using svccfg/setprop command
-	# before enabling service.
-	#
-	IRECVLINKS=
-	expand_prop receive_query_links IRECVLINKS -l || return $?
-	#
-	# Get forwardlinks V6 property value and modify it:
-	# Given forward_query_links property value is "1.2.3.4%bge0 bge2,"
-	# then the command line option will look like  "-u 1.2.3.4%bge0 -u
-	# bge2"
-	#
-	# NOTE: By default forwardlinks value is empty. User must
-	# first specify a server using svccfg/setprop command
-	# before enabling service.
-	#
-	IFWDLINKS=
-	expand_prop forward_query_links IFWDLINKS -u || return $?
-
-	export OPTIONS="$OPTIONS -6 $IRECVLINKS $IFWDLINKS"
-}
-
-export OPTIONS="--no-pid"
-
-case "$SMF_FMRI" in
-"$DHCPD_IPV4"|"$DHCPD_IPV6")
-	get_common_options
-	if [ "$?" != "0" ]; then
-		exit $SMF_EXIT_ERR_CONFIG
-	fi
-	get_dhcpd_options
-	if [ "$?" != "0" ]; then
-		exit $SMF_EXIT_ERR_CONFIG
-	fi
-	if [ "$SMF_FMRI" = "$DHCPD_IPV4" ]; then
-		OPTIONS="-4 $OPTIONS"
-	else
-		OPTIONS="-6 $OPTIONS"
-	fi
-	export EXECFILE=$DHCPD_BIN
-	;;
-
-$DHCPRELAY_IPV4)
-	get_common_options
-	if [ $? != "0" ]; then
-		exit $SMF_EXIT_ERR_CONFIG
-	fi
-	get_dhcprelay_options_v4
-	if [ $? != "0" ]; then
-		exit $SMF_EXIT_ERR_CONFIG
-	fi
-	export EXECFILE=$DHCPRELAY_BIN
-	;;
-
-$DHCPRELAY_IPV6)
-	get_common_options
-	if [ $? != "0" ]; then
-		exit $SMF_EXIT_ERR_CONFIG
-	fi
-	get_dhcprelay_options_v6
-	if [ $? != "0" ]; then
-		exit $SMF_EXIT_ERR_CONFIG
-	fi
-	export EXECFILE=$DHCPRELAY_BIN
-	;;
-
-*)
-        echo "isc-dhcp must be invoked from within SMF"
-        exit $SMF_EXIT_ERR_FATAL
-	;;
-
-esac
-
-# Now start the daemon
-if [ "$DEBUG" = "-d" ]; then
-	$EXECFILE $OPTIONS &
-else
-	$EXECFILE $OPTIONS
-fi
-
-if [ "$?" != "0" ]; then
-	exit $SMF_EXIT_ERR_FATAL
-fi
-
-exit $SMF_EXIT_OK
--- a/components/isc-dhcp/isc-dhcp-relay.xml	Sun Jun 12 22:22:24 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
-<!--
- CDDL HEADER START
-
- The contents of this file are subject to the terms of the
- Common Development and Distribution License (the "License").
- You may not use this file except in compliance with the License.
-
- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- or http://www.opensolaris.org/os/licensing.
- See the License for the specific language governing permissions
- and limitations under the License.
-
- When distributing Covered Code, include this CDDL HEADER in each
- file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- If applicable, add the following below this CDDL HEADER, with the
- fields enclosed by brackets "[]" replaced with your own identifying
- information: Portions Copyright [yyyy] [name of copyright owner]
-
- CDDL HEADER END
-
-	NOTE:  This service manifest is not editable; its contents will
-	be overwritten by package or patch operations, including
-	operating system upgrade.  Make customizations in a different
-	file.
-
-	Service manifest for the ISC DHCP Relay service.
--->
-<!--
-    Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
--->
-<service_bundle type='manifest' name='isc-dhcp:relay'>
-
-<service name='network/dhcp/relay' type='service' version='1'>
-
-	<!--
-		We historically ran only in run-level 3, so depend on the
-		equivalent milestone to level 2.  We restart on refresh in
-		order to handle any changes to nameservice or filesystem
-		or other service configuration which may affect DHCP service.
-	-->
-	<dependency name='multi-user'
-		grouping='require_all' 
-		restart_on='refresh'
-		type='service'>
-		<service_fmri value='svc:/milestone/multi-user'/>
-	</dependency>
-
-	<!--
-		Running both DHCP flavors on a system is not supported - either
-		run ISC or Solaris.
-	-->
-	<dependency name='dhcp-server'
-		grouping='exclude_all'
-		restart_on='none' 
-		type='service'>
-		<service_fmri value='svc:/network/dhcp-server'/>
-	</dependency>
-
-	<exec_method type='method' name='start' 
-		exec='/lib/svc/method/isc-dhcp' timeout_seconds='60'>
-		<method_context>
-			<method_credential user='dhcpserv' group='netadm' 
-		privileges='basic,net_rawaccess,net_icmpaccess,net_privaddr,sys_ip_config'/>
-		</method_context>
-	</exec_method>
-
-	<exec_method type='method' name='stop' exec=':kill' 
-		timeout_seconds='60'/>
-
-	<exec_method type='method' name='refresh' exec=':kill -HUP' 
-		timeout_seconds='60'/>
-
-	<property_group name='firewall_context' type='com.sun,fw_definition'>
-		<propval name='name' type='astring' value='bootps'/>
-	</property_group>
-
-	<property_group name='firewall_config' type='com.sun,fw_configuration'>
-		<propval name='policy' type='astring' value='use_global'/>
-		<propval name='apply_to' type='astring' value=''/>
-		<propval name='exceptions' type='astring' value=''/>
-		<propval name='value_authorization' type='astring' 
-			value='solaris.smf.value.firewall.config'/>
-	</property_group>
-
-	<property_group name='general' type='framework'>
-		<!-- to start stop dhcp services -->
-		<propval name='action_authorization' type='astring'
-			value='solaris.smf.manage.dhcp' />
-		<propval name='value_authorization' type='astring'
-                        value='solaris.smf.manage.dhcp' />
-        </property_group>
-
-	<instance name='ipv4' enabled='false'>
-		<property_group name='config' type='application'>
-			<propval name='debug' type='boolean' value='false'/>
-			<propval name='append_agent_option' type='boolean' 
-			    value='false'/>
-			<property name='servers' type='astring'> 
-				<astring_list>
-					<value_node value=''/>
-				</astring_list>
-			</property>
-			<property name='listen_ifnames' type='astring' >
-				<astring_list>
-					<value_node value=''/>
-				</astring_list>
-			</property>
-			<propval name='value_authorization' type='astring'
-				value='solaris.smf.value.dhcp' />
-		</property_group>
-	</instance>
-
-	<instance name='ipv6' enabled='false'>
-		<property_group name='config' type='application'>
-			<propval name='debug' type='boolean' value='false'/>
-			<property name='receive_query_links' type='astring'>
-				<astring_list>
-					<value_node value=''/>
-				</astring_list>
-			</property>
-			<property name='forward_query_links' type='astring'>
-				<astring_list>
-					<value_node value=''/>
-				</astring_list>
-			</property>
-			<propval name='value_authorization' type='astring'
-                                value='solaris.smf.value.dhcp' />
-		</property_group>
-	</instance>
-
-	<stability value='Unstable'/>
-
-	<template>
-		<common_name>
-			<loctext xml:lang='C'>
-				ISC DHCP Relay
-			</loctext>
-		</common_name>
-		<description>
-			<loctext xml:lang='C'>
-ISC DHCP Relay service relays DHCP and BOOTP requests from one subnet with no DHCP server to another subnet with a DHCP server.
-			</loctext>
-		</description>
-		<documentation>
-			<manpage title='dhcrelay' section='1M'
-				manpath='/usr/share/man'/>
-		</documentation>
-	</template>
-</service>
-
-</service_bundle>
--- a/components/isc-dhcp/isc-dhcp-server.xml	Sun Jun 12 22:22:24 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
-<!--
- CDDL HEADER START
-
- The contents of this file are subject to the terms of the
- Common Development and Distribution License (the "License").
- You may not use this file except in compliance with the License.
-
- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- or http://www.opensolaris.org/os/licensing.
- See the License for the specific language governing permissions
- and limitations under the License.
-
- When distributing Covered Code, include this CDDL HEADER in each
- file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- If applicable, add the following below this CDDL HEADER, with the
- fields enclosed by brackets "[]" replaced with your own identifying
- information: Portions Copyright [yyyy] [name of copyright owner]
-
- CDDL HEADER END
-
-	NOTE:  This service manifest is not editable; its contents will
-	be overwritten by package or patch operations, including
-	operating system upgrade.  Make customizations in a different
-	file.
-
-	Service manifest for the ISC DHCP Server service.
--->
-<!--
-    Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
--->
-<service_bundle type='manifest' name='isc-dhcp:server'>
-
-<service name='network/dhcp/server' type='service' version='1'>
-
-	<!--
-	    We historically ran only in run-level 3, so depend on the
-	    equivalent milestone to level 2.  We restart on refresh in
-	    order to handle any changes to nameservice or filesystem
-	    or other service configuration which may affect DHCP service.
-	-->
-	<dependency name='multi-user'
-		grouping='require_all'
-		restart_on='refresh'
-		type='service'>
-		<service_fmri value='svc:/milestone/multi-user'/>
-	</dependency>
-
-	<!--
-	   Cant run both DHCP flavors on a system Either run ISC or
-	   Solaris
-	-->
-	<dependency name='dhcp-server'
-		grouping='exclude_all'
-		restart_on='none' 
-		type='service'>
-		<service_fmri value='svc:/network/dhcp-server'/>
-	</dependency>
-	<exec_method type='method' name='start' 
-		exec='/lib/svc/method/isc-dhcp' timeout_seconds='60'>
-		<method_context>
-			<method_credential
-				user='dhcpserv' group='netadm' 
-				privileges='basic,net_rawaccess,net_icmpaccess,net_privaddr,sys_ip_config'
-			/>
-		</method_context>
-	</exec_method>
-
-	<exec_method type='method' name='stop' exec=':kill' 
-		timeout_seconds='60'/>
-
-	<exec_method type='method' name='refresh' exec=':kill -HUP' 
-		timeout_seconds='60'/>
-
-	<property_group name='firewall_context' type='com.sun,fw_definition'>
-		<propval name='name' type='astring' value='bootps'/>
-	</property_group>
-
-	<property_group name='firewall_config' type='com.sun,fw_configuration'>
-		<propval name='policy' type='astring' value='use_global'/>
-		<propval name='apply_to' type='astring' value=''/>
-		<propval name='exceptions' type='astring' value=''/>
-		<propval name='value_authorization' type='astring' 
-			value='solaris.smf.value.firewall.config'/>
-	</property_group>
-
-	<property_group name='general' type='framework'>
-		<!-- to start stop dhcp services -->
-		<propval name='action_authorization' type='astring'
-			value='solaris.smf.manage.dhcp' />
-		<propval name='value_authorization' type='astring'
-			value='solaris.smf.manage.dhcp' />
-	</property_group>
-
-	<instance name='ipv4' enabled='false'>
-		<property_group name='config' type='application'>
-			<propval name='debug' type='boolean' value='false'/>
-			<propval name='config_file' type='astring' 
-				value='/etc/inet/dhcpd4.conf'/>
-			<propval name='lease_file' type='astring'
-				value='/var/db/isc-dhcp/dhcpd4.leases'/>
-			<property name='listen_ifnames' type='astring' >
-				<astring_list>
-					<value_node value='' />
-				</astring_list>
-			</property>
-			<propval name='value_authorization' type='astring'
-				value='solaris.smf.value.dhcp' />
-		</property_group>
-	</instance>
-
-	<instance name='ipv6' enabled='false'>
-		<property_group name='config' type='application'>
-			<propval name='debug' type='boolean' value='false'/>
-			<propval name='config_file' type='astring'
-				value='/etc/inet/dhcpd6.conf'/>
-			<propval name='lease_file' type='astring'
-				value='/var/db/isc-dhcp/dhcpd6.leases'/>
-			<property name='listen_ifnames' type='astring'>
-				<astring_list>
-					<value_node value='' />
-				</astring_list>
-			</property>
-			<propval name='value_authorization' type='astring'
-				value='solaris.smf.value.dhcp' />
-		</property_group>
-	</instance>
-
-	<stability value='Unstable'/>
-
-	<template>
-		<common_name>
-			<loctext xml:lang='C'>
-				ISC DHCP Server
-			</loctext>
-		</common_name>
-		<description>
-			<loctext xml:lang='C'>
-ISC DHCP server provides DHCP and BOOTP protocol services to network clients.
-			</loctext>
-		</description>
-		<documentation>
-			<manpage title='dhcpd' section='1M'
-				manpath='/usr/share/man'/>
-		</documentation>
-	</template>
-</service>
-
-</service_bundle>
--- a/components/isc-dhcp/isc-dhcp.5	Sun Jun 12 22:22:24 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,259 +0,0 @@
-.TH isc-dhcp 5 "17 May 2011" "SunOS 5.11"
-.SH NAME
-isc\-dhcp \- ISC Dynamic Host Configuration Protocol Software
-
-.SH DESCRIPTION
-.sp
-.LP
-The Internet Systems Consortium (ISC) DHCP Server (dhcpd)
-implements the Dynamic Host Configuration Protocol
-(DHCPv4 and DHCPv6), and the Internet Bootstrap Protocol
-(BOOTP). DHCP allows hosts on a TCP/IP network to request
-and be assigned IP addresses, and also to discover information
-about the network to which they are attached.  BOOTP
-provides similar functionality, with certain restrictions.
-.sp
-.LP
-ISC Relay Agent (dhcrelay) provides a means for relaying DHCP
-and BOOTP requests from a subnet to which no DHCP server is
-directly connected to one or more DHCP servers on other subnets.
-.sp
-.LP
-The services above (dhcpd and dhcrelay) are managed using the Service
-Management Facility (SMF) on Solaris, and should be administered by
-the svcadm(1M) command using  the following fault management resource
-identifiers (FMRIs):
-.sp
-.LP
-.in +2
-.nf
-svc:/network/dhcp/server:ipv4
-svc:/network/dhcp/server:ipv6
-svc:/network/dhcp/relay:ipv4
-svc:/network/dhcp/relay:ipv6
-.fi
-.sp
-.LP
-The following dhcpd service configuration properties can be viewed with
-svcprop(1M) and modified via svccfg(1M):
-.sp
-.ne 2
-.mk
-.na
-debug
-.ad
-.sp .6
-.RS 4n
-Send log messages from the DHCP daemon to  the  standard  error  descriptor.
-Setting this property to true ensures the -d command-line option is
-used when starting dhcpd. This property is set to false by default.
-.RE
-
-.sp
-.ne 2
-.mk
-.na
-config_file
-.ad
-.sp .6
-.RS 4n
-Path to alternate configuration file. The value of this property
-is passed as an argument to the -cf command-line option of dhcpd.
-The default is set to /etc/inet/dhcpd6.conf and /etc/inet/dhcpd4.conf
-for DHCP v6 and v4 servers respectively.
-.RE
-
-.sp
-.ne 2
-.mk
-.na
-lease_file
-.ad
-.sp .6
-.RS 4n
-Path to alternate lease file. The value of this property is passed
-as an argument to the -lf command-line option of dhcpd. The default value
-is set to /var/db/isc-dhcp/v4.leases for DHCPv4 and /var/db/isc-dhcp/v6.leases for
-DHCPv6.
-.RE
-
-.sp
-.ne 2
-.mk
-.na
-listen_ifnames
-.ad
-.sp .6
-.RS 4n
-optional parameter that allows users to specify one or more network
-interfaces on which dhcpd should serve DHCP requests. This property
-matches the "if0" command-line option of dhcpd.  Note that the
-interface names must be seperated by a comma.  Please see Example 4.
-.RE
-
-.sp
-.LP
-The following dhcrelay options are available as
-service configuration properties and can be viewed with svcprop(1M)
-and modified via svccfg(1M):
-.sp
-.ne 2
-.mk
-.na
-append_agent_option (v4 only)
-.ad
-.sp .6
-.RS 4n
-Setting this option to true ensures the DHCP relay appends an agent option
-field to each request before forwarding the request to the DHCP
-server. When this property is set to true, the -a command-line option
-is used when launching dhcrelay. The default value of this property is
-false. This option is only applicable to the svc:/network/dhcp/relay:ipv4 service. 
-.RE
-
-.sp
-.ne 2
-.mk
-.na
-listen_ifnames (v4 only)
-.ad
-.sp .6
-.RS 4n
-This option allows users to specify one or more interfaces on which
-the DHCP relay should listen for DHCPv4/BOOTP queries. This option is
-only applicable to the svc:/network/dhcp/relay:ipv4 service. 
-
-.RE
-
-.sp
-.ne 2
-.mk
-.na
-servers (v4 only)
-.ad
-.sp .6
-.RS 4n
-Users must set this property to the IP addresses of one or more
-servers before enabling the relay service
-(svc:/network/dhcp/relay:ipv4). The servers property value must be a
-comma-separated list of IP addresses. This option is
-only applicable to the svc:/network/dhcp/relay:ipv4 service. 
-
-.RE
-
-.sp
-.ne 2
-.mk
-.na
-receive_query_links (v6 only)
-.ad
-.sp .6
-.RS 4n
-Users must set this property value to specify the interface(s) on which
-queries will be received from clients or from other relay agents
-before enabling the relay service (svc:/network/dhcp/relay:ipv6).
-This option is only applicable to the svc:/network/dhcp/relay:ipv6 service. 
-See also Example 3.
-.RE
-
-.sp
-.ne 2
-.mk
-.na
-forward_query_links (v6 only)
-.ad
-.sp .6
-.RS 4n
-Users must set this property value to specify the interface(s) on which
-queries from clients and other relay agents should be forwarded before
-enabling the relay service (svc:/network/dhcp/relay:ipv6).  The
-property value is passed as the argument for the -u command-line
-option to the dhcrelay program. The interface(s) specified must be
-comma-separated. This option is only applicable to the
-svc:/network/dhcp/relay:ipv6 service. 
-.RE
-
-.sp
-.LP
-Since dhcpd and dhcrelay are managed using SMF no pid files are created.  
-.sp
-.LP
-
-.SH EXAMPLES
-.sp
-.LP
-\fBExample 1 \fR Enabling DHCPv4 Server 
-ISC DHCPv4 server service is disabled by default. The following
-command enables the ISC DHCPv4 service:
-
-.in +2
-.nf
-example# svcadm enable svc:/network/dhcp/server:ipv4
-.fi
-.in -2
-
-\fBExample 2 \fR Displaying the configurable properties of DHCPv6 Relay
-Agent service.  The following command displays all configurable properties of 
-DHCPv6 Relay Agent Service:
-
-.in +2
-.nf
-example# svccfg -s dhcp/relay:ipv6 listprop config
-config                      application
-config/forward_query_links  astring  
-config/listen_ifnames       astring  
-config/receive_query_links  astring  
-config/value_authorization  astring  solaris.smf.value.dhcp
-.fi
-.in -2
-
-.PP
-\fBExample 3 \fR Setting the receive_query_links property value of DHCPv6 Relay
-Agent service.  The following commands will set the receive_links property value to the
-following values: 10.0.0.1%e10000g#0,bge0,iprb#1
-
-.in +2
-.nf
-example# svccfg -s dhcp/relay:ipv6 setprop \\
-    config/receive_query_links= \\
-    \\(\\"10.0.0.1%e10000g#0\\"\\"bge0\\"\\"iprb#1\\"\\)
-example# svccfg -s dhcp/relay:ipv6 refresh
-
-NOTE: spaces are not allowed in the string within quotes in the
-      setprop command 
-
-To verify that the property values are set type either
-the svccfg command or the svcprop command below:
-
-example# svccfg -s dhcp/relay:ipv6 listprop config/receive_query_links
-config/receive_query_links  astring  "10.0.0.1%e10000g#0" "bge0" "iprb#1"
-
-example# svcprop -p config/receive_query_links dhcp/relay:ipv6
-10.0.0.1%e10000g#0 bge0 iprb#1
-.fi
-.in -2
-
-\fBExample 4 \fR Setting the listen_ifnames property value for dhcpd.
-The following commands will set the listen_ifnames property to 
-"bge0, bge1" and then display the updated values.
-
-.in +2
-.nf
-example# svccfg -s dhcp/server:ipv4 setprop \\
-    config/listen_ifnames = \\(\\"bge0\\"\\"bge1\\"\\) 
-example# svccfg -s dhcp/server:ipv4 refresh
-
-NOTE: spaces are not allowed in the string within quotes in the
-      setprop command 
-
-To verify that the property values are set type:
-
-example# svccfg -s dhcp/server:ipv4 listprop config/listen_ifnames
-config/listen_ifnames  astring  "bge0" "bge1" 
-.fi
-.in -2
-
-.SH SEE ALSO
-.sp
-.LP
-svccfg(1M), svcprop(1), svcadm(1M), dhcpd(8), dhcrelay(8)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/isc-dhcp/patches/003-ISC-Bugs_41845.patch	Mon Jun 13 10:35:12 2016 -0700
@@ -0,0 +1,100 @@
+This patch is ISC's mitigation code for CVE-2016-2774 - see ISC-Bugs
+#41845. It was ported from ISC DHCP 4.3.4.
+
+--- old/RELNOTES	Wed Mar 30 18:40:08 2016
++++ new/RELNOTES	Wed Mar 30 18:40:07 2016
+@@ -1,6 +1,6 @@
+ 	      Internet Systems Consortium DHCP Distribution
+-			    Version 4.1-ESV-R7-P1
+-                              01 January 2016
++			    Version 4.1-ESV-R7-S2
++                              29 March 2016
+ 
+ 			      Release Notes
+ 
+@@ -54,10 +54,18 @@
+ 
+ 			Changes since 4.1-ESV-R7-P1
+ 
++! Add an option in site.h to limit the number of failover and control
++  connections the server will accept.  By default this is 200.
++  [ISC-Bugs #41845]
++  CVE: CVE-2016-2774
++
++			Changes since 4.1-ESV-R7
++
+ ! Update the bounds checking when receiving a packet.
+   Thanks to Sebastian Poehn from Sophos for the bug report and a suggested
+   patch.
+   [ISC-Bugs #41267]
++  CVE: CVE-2015-8605
+ 
+ 			Changes since 4.1-ESV-R6
+ 
+--- old/configure	Wed Mar 30 18:40:08 2016
++++ new/configure	Wed Mar 30 18:40:08 2016
+@@ -574,8 +574,8 @@
+ # Identity of this package.
+ PACKAGE_NAME='DHCP'
+ PACKAGE_TARNAME='dhcp'
+-PACKAGE_VERSION='4.1-ESV-R7-P1'
+-PACKAGE_STRING='DHCP 4.1-ESV-R7-P1'
++PACKAGE_VERSION='4.1-ESV-R7'
++PACKAGE_STRING='DHCP 4.1-ESV-R7'
+ PACKAGE_BUGREPORT='[email protected]'
+ 
+ # Factoring default headers for most tests.
+@@ -2125,7 +2125,7 @@
+ 
+ # Define the identity of the package.
+  PACKAGE='dhcp'
+- VERSION='4.1-ESV-R7-P1'
++ VERSION='4.1-ESV-R7'
+ 
+ 
+ cat >>confdefs.h <<_ACEOF
+--- old/configure.ac	Wed Mar 30 18:40:08 2016
++++ new/configure.ac	Wed Mar 30 18:40:08 2016
+@@ -1,4 +1,4 @@
+-AC_INIT([DHCP], [4.1-ESV-R7-P1], [[email protected]])
++AC_INIT([DHCP], [4.1-ESV-R7], [[email protected]])
+ 
+ # we specify "foreign" to avoid having to have the GNU mandated files,
+ # like AUTHORS, COPYING, and such
+--- old/includes/site.h	Wed Mar 30 18:40:10 2016
++++ new/includes/site.h	Wed Mar 30 18:40:09 2016
+@@ -217,3 +217,9 @@
+    require the original functionality. */
+ 
+ /* #define RFC3315_PRE_ERRATA_2010_08 */
++
++/* Limit the value of a file descriptor the server will use
++   when accepting a connecting request.  This can be used to
++   limit the number of TCP connections that the server will
++   allow at one time.  A value of 0 means there is no limit.*/
++#define MAX_FD_VALUE 200
+--- old/omapip/listener.c	Wed Mar 30 18:40:10 2016
++++ new/omapip/listener.c	Wed Mar 30 18:40:09 2016
+@@ -3,7 +3,7 @@
+    Subroutines that support the generic listener object. */
+ 
+ /*
+- * Copyright (c) 2012 by Internet Systems Consortium, Inc. ("ISC")
++ * Copyright (c) 2012,2014,2016 by Internet Systems Consortium, Inc. ("ISC")
+  * Copyright (c) 2004,2007,2009 by Internet Systems Consortium, Inc. ("ISC")
+  * Copyright (c) 1999-2003 by Internet Software Consortium
+  *
+@@ -232,7 +232,12 @@
+ 			return ISC_R_NORESOURCES;
+ 		return ISC_R_UNEXPECTED;
+ 	}
+-	
++
++	if ((MAX_FD_VALUE != 0) && (socket > MAX_FD_VALUE)) {
++		close(socket);
++		return (ISC_R_NORESOURCES);
++	}
++
+ #if defined (TRACING)
+ 	/* If we're recording a trace, remember the connection. */
+ 	if (trace_record ()) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/isc-dhcp/patches/004-Manage_41845.patch	Mon Jun 13 10:35:12 2016 -0700
@@ -0,0 +1,94 @@
+This patch adds a method to manage the resource limit which was
+introduced by the fix for ISC-Bugs #41845. This patch was developed
+in-house. ISC did not express any interest in incorporating this patch
+into their code since they consider the limit to be a mitigating
+solution.
+
+--- old/includes/omapip/omapip.h	Wed May 25 01:39:41 2016
++++ new/includes/omapip/omapip.h	Wed May 25 01:39:40 2016
+@@ -467,6 +467,9 @@
+ 
+ extern omapi_object_type_t *omapi_object_types;
+ 
++#if defined (sun)
++void omapi_set_max_fd_value (void);
++#endif
+ void omapi_type_relinquish (void);
+ isc_result_t omapi_init (void);
+ isc_result_t omapi_object_type_register (omapi_object_type_t **,
+--- old/omapip/listener.c	Wed May 25 01:39:41 2016
++++ new/omapip/listener.c	Wed May 25 01:39:40 2016
+@@ -47,6 +47,10 @@
+ trace_type_t *trace_listener_accept;
+ #endif
+ 
++#if defined (sun)
++static int conn_limit = MAX_FD_VALUE; /* max number of open sockets allowed */
++#endif
++
+ OMAPI_OBJECT_ALLOC (omapi_listener,
+ 		    omapi_listener_object_t, omapi_type_listener)
+ 
+@@ -209,6 +213,35 @@
+ 	return l -> socket;
+ }
+ 
++#if defined (sun)
++/* If OMAPI_CONN_LIMIT environment variable is set, obtain value. */
++const char *fname = "omapi_set_max_fd_value";
++void omapi_set_max_fd_value (void)
++{
++	const char *env;
++	char *end = NULL;
++	int envval = conn_limit;
++
++	env = getenv("OMAPI_CONN_LIMIT");
++	if (env != NULL) {
++		errno = 0;
++		envval = (int)strtol(env, &end, 10);
++		if (errno != 0 || env == end || *end != '\0' || envval < 0) {
++			(void) log_error("%s: \"%s\" is not a valid connection "
++					"limit value\n", fname, env);
++			errno = 0;
++		} else {
++			conn_limit = envval;
++		}
++	}
++	(void) log_debug("%s: conn_limit = %d%s\n", fname, conn_limit,
++			(conn_limit == MAX_FD_VALUE) ? " (default)" :
++			(conn_limit == 0) ? " (unlimited)" : "");
++
++	return;
++}
++#endif
++
+ /* Reader callback for a listener object.   Accept an incoming connection. */
+ isc_result_t omapi_accept (omapi_object_t *h)
+ {
+@@ -233,7 +266,13 @@
+ 		return ISC_R_UNEXPECTED;
+ 	}
+ 
++#if !defined (sun)
+ 	if ((MAX_FD_VALUE != 0) && (socket > MAX_FD_VALUE)) {
++#else
++	if ((conn_limit != 0) && (socket > conn_limit)) {
++		(void) log_debug("omapi_accept: No more available "
++		    "sockets - closing latest.\n");
++#endif
+ 		close(socket);
+ 		return (ISC_R_NORESOURCES);
+ 	}
+--- old/server/dhcpd.c	Wed May 25 01:39:41 2016
++++ new/server/dhcpd.c	Wed May 25 01:39:40 2016
+@@ -435,6 +435,10 @@
+ 		path_dhcpd_conf = s;
+ 	}
+ 
++#if defined (sun)
++	omapi_set_max_fd_value ();
++#endif
++
+ #ifdef DHCPv6
+         if (local_family == AF_INET6) {
+                 /* DHCPv6: override DHCPv4 lease and pid filenames */