ddns-confgen.docbook revision b67b58ebe73b98f2907d7f3ea02e69a7fa8ba35e
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence [<!ENTITY mdash "&#8212;">]>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence<!--
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence - Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC")
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence -
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence - Permission to use, copy, modify, and/or distribute this software for any
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence - purpose with or without fee is hereby granted, provided that the above
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence - copyright notice and this permission notice appear in all copies.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence -
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence - PERFORMANCE OF THIS SOFTWARE.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence-->
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence<!-- $Id: ddns-confgen.docbook,v 1.6 2009/09/18 22:08:55 fdupont Exp $ -->
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence<refentry id="man.ddns-confgen">
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refentryinfo>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <date>Jan 29, 2009</date>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </refentryinfo>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refmeta>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refentrytitle><application>ddns-confgen</application></refentrytitle>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <manvolnum>8</manvolnum>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refmiscinfo>BIND9</refmiscinfo>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </refmeta>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refnamediv>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refname><application>ddns-confgen</application></refname>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refpurpose>ddns key generation tool</refpurpose>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </refnamediv>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <docinfo>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <copyright>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <year>2009</year>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </copyright>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </docinfo>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refsynopsisdiv>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <cmdsynopsis>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <command>ddns-confgen</command>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <arg><option>-a <replaceable class="parameter">algorithm</replaceable></option></arg>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <arg><option>-h</option></arg>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <arg><option>-k <replaceable class="parameter">keyname</replaceable></option></arg>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <arg><option>-r <replaceable class="parameter">randomfile</replaceable></option></arg>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <group>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <arg choice="plain">-s <replaceable class="parameter">name</replaceable></arg>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <arg choice="plain">-z <replaceable class="parameter">zone</replaceable></arg>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </group>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <arg><option>-q</option></arg>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <arg choice="opt">name</arg>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </cmdsynopsis>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </refsynopsisdiv>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refsect1>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <title>DESCRIPTION</title>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <para><command>ddns-confgen</command>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence generates a key for use by <command>nsupdate</command>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence and <command>named</command>. It simplifies configuration
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence of dynamic zones by generating a key and providing the
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <command>nsupdate</command> and <command>named.conf</command>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence syntax that will be needed to use it, including an example
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <command>update-policy</command> statement.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence If a domain name is specified on the command line, it will
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence be used in the name of the generated key and in the sample
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <command>named.conf</command> syntax. For example,
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <command>ddns-confgen example.com</command> would
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence generate a key called "ddns-key.example.com", and sample
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <command>named.conf</command> command that could be used
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence in the zone definition for "example.com".
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence Note that <command>named</command> itself can configure a
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence local DDNS key for use with <command>nsupdate -l</command>.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <command>ddns-confgen</command> is only needed when a
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence more elaborate configuration is required: for instance, if
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <command>nsupdate</command> is to be used from a remote system.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </refsect1>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refsect1>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <title>OPTIONS</title>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <variablelist>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <varlistentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <term>-a <replaceable class="parameter">algorithm</replaceable></term>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <listitem>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence Specifies the algorithm to use for the TSIG key. Available
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence choices are: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256,
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence hmac-sha384 and hmac-sha512. The default is hmac-sha256.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </listitem>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </varlistentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <varlistentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <term>-h</term>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <listitem>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence Prints a short summary of the options and arguments to
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <command>ddns-confgen</command>.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </listitem>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </varlistentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <varlistentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <term>-k <replaceable class="parameter">keyname</replaceable></term>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <listitem>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence Specifies the key name of the DDNS authentication key.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence The default is <constant>ddns-key</constant> when neither
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence the <option>-s</option> nor <option>-z</option> option is
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence specified; otherwise, the default
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence is <constant>ddns-key</constant> as a separate label
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence followed by the argument of the option, e.g.,
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <constant>ddns-key.example.com.</constant>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence The key name must have the format of a valid domain name,
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence consisting of letters, digits, hyphens and periods.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </listitem>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </varlistentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <varlistentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <term>-q</term>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <listitem>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence Quiet mode: Print only the key, with no explanatory text or
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence usage examples.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </listitem>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </varlistentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <varlistentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <term>-r <replaceable class="parameter">randomfile</replaceable></term>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <listitem>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence Specifies a source of random data for generating the
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence authorization. If the operating system does not provide a
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <filename>/dev/random</filename> or equivalent device, the
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence default source of randomness is keyboard input.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <filename>randomdev</filename> specifies the name of a
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence character device or file containing random data to be used
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence instead of the default. The special value
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <filename>keyboard</filename> indicates that keyboard input
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence should be used.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </listitem>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </varlistentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <varlistentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <term>-s <replaceable class="parameter">name</replaceable></term>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <listitem>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence Single host mode: The example <command>named.conf</command> text
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence shows how to set an update policy for the specified
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <replaceable class="parameter">name</replaceable>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence using the "name" nametype.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence The default key name is
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence ddns-key.<replaceable class="parameter">name</replaceable>.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence Note that the "self" nametype cannot be used, since
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence the name to be updated may differ from the key name.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence This option cannot be used with the <option>-z</option> option.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </listitem>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </varlistentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <varlistentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <term>-z <replaceable class="parameter">zone</replaceable></term>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <listitem>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence zone mode: The example <command>named.conf</command> text
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence shows how to set an update policy for the specified
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <replaceable class="parameter">zone</replaceable>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence using the "zonesub" nametype, allowing updates to all subdomain
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence names within
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence that <replaceable class="parameter">zone</replaceable>.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence This option cannot be used with the <option>-s</option> option.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </listitem>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </varlistentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </variablelist>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </refsect1>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refsect1>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <title>SEE ALSO</title>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <para><citerefentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refentrytitle>nsupdate</refentrytitle><manvolnum>1</manvolnum>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </citerefentry>,
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <citerefentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refentrytitle>named.conf</refentrytitle><manvolnum>5</manvolnum>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </citerefentry>,
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <citerefentry>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refentrytitle>named</refentrytitle><manvolnum>8</manvolnum>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </citerefentry>,
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <citetitle>BIND 9 Administrator Reference Manual</citetitle>.
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </refsect1>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <refsect1>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <title>AUTHOR</title>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence <para><corpauthor>Internet Systems Consortium</corpauthor>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </para>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence </refsect1>
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence</refentry><!--
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence - Local variables:
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence - mode: sgml
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence - End:
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence-->
6ad14a42e1058dbf92a747b27538d22fe4d977f8David Lawrence