This repository has been archived by the owner on Aug 31, 2019. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Filip Hajny
committed
May 12, 2012
1 parent
9705b31
commit ae0ae3f
Showing
2 changed files
with
258 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
<?xml version="1.0"?> | ||
<!-- | ||
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 | ||
--> | ||
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> | ||
<!-- | ||
Copyright 2007 Sun Microsystems, Inc. All rights reserved. | ||
Use is subject to license terms. | ||
ident "@(#)server.xml 1.8 07/06/19 SMI" | ||
--> | ||
<!-- Portions Copyright 2007 Vedran Bender --> | ||
<service_bundle type='manifest' name='dns-server'> | ||
<service name='smartos/@SMF_NAME@' type='service' version='1'> | ||
<dependency name='filesystem_minimal' grouping='require_all' restart_on='none' type='service'> | ||
<service_fmri value='svc:/system/filesystem/local' /> | ||
</dependency> | ||
<dependency name='loopback' grouping='require_any' restart_on='error' type='service'> | ||
<service_fmri value='svc:/network/loopback' /> | ||
</dependency> | ||
<dependency name='network' grouping='optional_all' restart_on='error' type='service'> | ||
<service_fmri value='svc:/milestone/network' /> | ||
</dependency> | ||
<dependency name='config-files' grouping='require_any' restart_on='refresh' type='path'> | ||
<service_fmri value='file://localhost@PKG_SYSCONFDIR@/named.conf' /> | ||
</dependency> | ||
<exec_method type='method' name='stop' exec=':kill' timeout_seconds='60' /> | ||
<!-- | ||
In order to run multiple named(1M) processes with their own | ||
configuration file or properties each must have a unique | ||
instance. | ||
--> | ||
<instance name='default' enabled='false'> | ||
<exec_method type='method' name='start' exec='@PREFIX@/@SMF_METHOD_FILE@ %m %i' timeout_seconds='60'> | ||
<method_context> | ||
<!-- | ||
privileges: (see privileges(5) and /etc/security/priv_names) | ||
file_dac_read, file_dac_search: | ||
Necessary for reading the configuration file | ||
even it is restricted by the file permission. | ||
net_privaddr: | ||
Bind to a privileged port number. | ||
sys_resource: | ||
Permit the setting of resource limits (eg. stack | ||
size). | ||
proc_chroot: | ||
Permit use of chroot(2). | ||
--> | ||
<method_credential user='root' group='root' privileges='basic,!proc_session,!proc_info,!file_link_any,net_privaddr,file_dac_read,file_dac_search,sys_resource,proc_chroot' /> | ||
</method_context> | ||
</exec_method> | ||
<!-- | ||
SIGHUP causes named to reread its configuration file, but not any | ||
of the properties below. | ||
--> | ||
<exec_method type='method' name='refresh' exec=':kill -HUP' timeout_seconds='60'> | ||
<method_context /> | ||
</exec_method> | ||
<property_group name='general' type='framework'> | ||
<!-- manage DNS server state --> | ||
<propval name='action_authorization' type='astring' value='solaris.smf.manage.bind' /> | ||
<propval name='value_authorization' type='astring' value='solaris.smf.manage.bind' /> | ||
</property_group> | ||
<!-- Default property settings for named(1M) instance. --> | ||
<property_group name='options' type='application'> | ||
<!-- | ||
server: specifies an alternative server command. If | ||
not specified the default /usr/sbin/named is used. | ||
--> | ||
<propval name='server' type='astring' value='' /> | ||
<!-- | ||
configuration_file: specifies an alternative | ||
configuration file to be used. The property is similar | ||
to named(1M) command line option '-c' | ||
--> | ||
<propval name='configuration_file' type='astring' value='' /> | ||
<!-- | ||
ip_interfaces: specifies which IP transport BIND will | ||
transmit on. Possible values are 'IPv4' or 'IPv6'. Any | ||
other setting assumes 'all', the default. | ||
Equivalent command line option '-4' or '-6'. | ||
--> | ||
<propval name='ip_interfaces' type='astring' value='all' /> | ||
<!-- | ||
listen_on_port: Specifies the default UDP and TCP port | ||
which will be used to listen for DNS requests. | ||
Equivalent command line option '-p <integer>'. | ||
--> | ||
<propval name='listen_on_port' type='integer' value='0' /> | ||
<!-- | ||
debug_level: Specifies the default debug level. The | ||
default is 0; no debugging. The Higher the number the | ||
more verbose debug information becomes. | ||
Equivalent command line option '-d <integer>'. | ||
--> | ||
<propval name='debug_level' type='integer' value='0' /> | ||
<!-- | ||
threads: Specifies the number of cpu worker threads to | ||
create. The default of 0 causes named to try and | ||
determine the number of CPUs present and create one | ||
thread per CPU. | ||
Equivalent command line option '-n <integer>'. | ||
--> | ||
<propval name='threads' type='integer' value='0' /> | ||
<!-- | ||
chroot_dir: Change the root directory using chroot(2) | ||
to directory after processing the command line | ||
arguments, but before reading the configuration file. | ||
Equivalent command line option '-t <pathname>'. | ||
--> | ||
<propval name='chroot_dir' type='astring' value='' /> | ||
</property_group> | ||
</instance> | ||
<stability value='Unstable' /> | ||
<template> | ||
<common_name> | ||
<loctext xml:lang='C'>BIND DNS server</loctext> | ||
</common_name> | ||
<documentation> | ||
<manpage title='named' section='1M' manpath='@PREFIX@/man' /> | ||
</documentation> | ||
</template> | ||
</service> | ||
</service_bundle> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
#!/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 2007 Sun Microsystems, Inc. All rights reserved. | ||
# Use is subject to license terms. | ||
# | ||
#pragma ident "@(#)dns-server.sh 1.1 07/03/26 SMI" | ||
|
||
# smf_method(5) start/stop script required for server DNS | ||
|
||
. /lib/svc/share/smf_include.sh | ||
|
||
result=${SMF_EXIT_OK} | ||
|
||
# Read command line arguments | ||
method="$1" # %m | ||
instance="$2" # %i | ||
|
||
# Set defaults; SMF_FMRI should have been set, but just in case. | ||
if [ -z "$SMF_FMRI" ]; then | ||
SMF_FMRI="svc:/network/dns/server:${instance}" | ||
fi | ||
server="@PREFIX@/sbin/named" | ||
I=`/usr/bin/basename $0` | ||
|
||
case "$method" in | ||
'start') | ||
cmdopts="" | ||
properties="debug_level ip_interfaces listen_on_port | ||
threads chroot_dir configuration_file server" | ||
|
||
for prop in $properties | ||
do | ||
value=`/usr/bin/svcprop -p options/${prop} ${SMF_FMRI}` | ||
if [ -z "${value}" -o "${value}" = '""' ]; then | ||
continue; | ||
fi | ||
|
||
case $prop in | ||
'debug_level') | ||
if [ ${value} -gt 0 ]; then | ||
cmdopts="${cmdopts} -d ${value}" | ||
fi | ||
;; | ||
'ip_interfaces') | ||
case ${value} in | ||
'IPv4') | ||
cmdopts="${cmdopts} -4";; | ||
'IPv6') | ||
cmdopts="${cmdopts} -6";; | ||
'all') | ||
: # Default is all, therefore ignore. | ||
;; | ||
*) | ||
echo "$I: Unrecognised value in service instance property" >&2 | ||
echo "$I: options/${prop} : ${value}" >&2 | ||
;; | ||
esac | ||
;; | ||
'listen_on_port') | ||
if [ ${value} -gt 0 ]; then | ||
cmdopts="${cmdopts} -p ${value}" | ||
fi | ||
;; | ||
'threads') | ||
if [ ${value} -gt 0 ]; then | ||
cmdopts="${cmdopts} -n ${value}" | ||
fi | ||
;; | ||
'chroot_dir') | ||
cmdopts="${cmdopts} -t ${value}" | ||
;; | ||
'configuration_file') | ||
cmdopts="${cmdopts} -c ${value}" | ||
;; | ||
'server') | ||
set -- `echo ${value} | /usr/bin/sed -e 's/\\\\//g'` | ||
server=$@ | ||
;; | ||
esac | ||
done | ||
|
||
if [ ${result} = ${SMF_EXIT_OK} ]; then | ||
echo "$I: Executing: ${server} ${cmdopts}" | ||
# Execute named(1M) with relevant command line options. | ||
${server} ${cmdopts} | ||
result=$? | ||
fi | ||
;; | ||
'stop') | ||
smf_kill_contract ${contract} TERM 1 | ||
[ $? -ne 0 ] && exit 1 | ||
;; | ||
*) | ||
echo "Usage: $I [stop|start] <instance>" >&2 | ||
exit 1 | ||
;; | ||
esac | ||
exit ${result} |