From owner-man-jp-reviewer@jp.FreeBSD.org Mon Oct 10 16:04:27 2005
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id j9A74RV48678;
	Mon, 10 Oct 2005 16:04:27 +0900 (JST)
	(envelope-from owner-man-jp-reviewer@jp.FreeBSD.org)
Received: from t-mta3.odn.ne.jp (mfep3.odn.ne.jp [143.90.131.181])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet id j9A74Rw48673
	for <man-jp-reviewer@jp.FreeBSD.org>; Mon, 10 Oct 2005 16:04:27 +0900 (JST)
	(envelope-from n-kogane@syd.odn.ne.jp)
Received: from kces6.koganemaru.co.jp ([61.201.44.116]) by t-mta3.odn.ne.jp
          with ESMTP
          id <20051010070426890.IJAH.496069.t-mta3.odn.ne.jp@mta3.odn.ne.jp>
          for <man-jp-reviewer@jp.FreeBSD.org>;
          Mon, 10 Oct 2005 16:04:26 +0900
Received: by kces6.koganemaru.co.jp (Postfix, from userid 100)
	id A1872FBD2; Mon, 10 Oct 2005 16:08:42 +0900 (JST)
To: man-jp-reviewer@jp.FreeBSD.org
In-Reply-To: <200510091924.EAA60970@shell.rim.or.jp>
MIME-Version: 1.0 (generated by MimeKit/1.8)
Content-Type: text/plain; charset=ISO-2022-JP
Message-Id: <20051010070842.A1872FBD2@kces6.koganemaru.co.jp>
From: n-kogane@syd.odn.ne.jp (Nobuyuki Koganemaru)
Reply-To: man-jp-reviewer@jp.FreeBSD.org
Precedence: list
Date: Mon, 10 Oct 2005 16:08:42 +0900
X-Sequence: man-jp-reviewer 4920
Subject: [man-jp-reviewer 4920] Re: omshell.1
Sender: owner-man-jp-reviewer@jp.FreeBSD.org
X-Originator: n-kogane@syd.odn.ne.jp
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+050320

$B>.6b4]$G$9!#(B

>From: kano@na.rim.or.jp
>Date: Mon, 10 Oct 2005 04:24:54 +0900
>
>In message <20051008175226.A6E2DFBDF@kces6.koganemaru.co.jp>
>  n-kogane@syd.odn.ne.jp (Nobuyuki Koganemaru) writes:
>> +$B<g:E$5$l$F$$$^$9$,!"$3$N%W%m%8%'%/%H$NL$Mh$O$"$J$?$K$7$@$$$G$9!#(B
>
>$B!V$K!W$r%H%k(B
>
>> +$B8=;~E@$G$O!"MxMQ<T$O8=:_!"MxMQ<T$,FC@-$r;HMQ$9$k$G$-$k%*%V%8%'%/%H$r(B
>
>$B$9$k$G$-$k(B -> $B$9$k$3$H$,$G$-$k(B
>
>> +$B8=;~E@$G$O!"MxMQ<T$O<!$K$K$h$C$F$3$N%j!<%9$K4X$9$k>pJs$N$?$a$N(B
>
>$B$K$K(B -> $B$K(B
>
>> +$B$=$l$G!"A0$NNc$N%[%9%H(B "some-host" $B$,$b$d$O@EE*$J(B IP $B%"%I%l%9$,$J$$$J$i!"(B
>
>$B$b$d$O(B -> $B$b$O$d(B
>
>> +omshell $B$N%3%^%s%I$O<!$N$h$&$K8+$($k$G$G$7$g$&(B:
>
>$B$G$G(B -> $B$G(B
>
>> +.SH $B%*%V%8%'%/$r%j%U%l%C%7%e(B
>
>$B%*%V%8%'%/(B -> $B%*%V%8%'%/%H(B

$B$"$j$,$H$&$4$6$$$^$9!#=$@5$r<h$jF~$l$^$7$?!#(B

--- omshell.1	Mon Oct 10 15:40:57 2005
+++ /b3/JMAN4/5.4-RELEASE/man1/omshell.1	Sun May  8 16:02:18 2005
@@ -1,4 +1,4 @@
-.\"	%Id: omshell.1,v 1.1.2.5 2004/06/10 17:59:24 dhankins Exp %
+.\"	$Id: omshell.1,v 1.1.2.5 2004/06/10 17:59:24 dhankins Exp $
 .\"
 .\" Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
 .\" Copyright (c) 2001-2003 by Internet Software Consortium
@@ -27,154 +27,125 @@
 .\" ``http://www.isc.org/''.  To learn more about Vixie Enterprises,
 .\" see ``http://www.vix.com''.   To learn more about Nominum, Inc., see
 .\" ``http://www.nominum.com''.
-.\"
-.\" $FreeBSD$
 .TH omshell 1
-.SH $BL>>N(B
-omshell - OMAPI $B%3%^%s%I%7%'%k(B
-.SH $B=q<0(B
+.SH NAME
+omshell - OMAPI Command Shell
+.SH SYNOPSIS
 .B omshell
-.SH $B2r@b(B
-OMAPI $B%3%^%s%I%7%'%k!"(Bomshell$B!"$O@\B3$9$k!"Ld$$9g$o$;$9$k!"$=$7$F>l9g$K$h$j(B
-OMAPI (the Object Management API) $B$rDL$7$F(B ISC DHCP $B%5!<%P$N>uBV$rJQ99$9$k(B
-$BBPOC7?$NJ}K!$rDs6!$7$^$9!#(B
-OMAPI $B$H(B omshell $B$r;HMQ$9$k$3$H$K$h$C$F!"MxMQ<T$O!"Dd;_$7$F!"JQ99$r9T$C$F!"(B
-DHCP $B%5!<%P$r:F3+$9$kI,MW$O$"$j$^$;$s$,!"(B
-$B%5!<%P$,2TF/$7$F$$$k4V$KJQ99$r9T$&$3$H$,$G$-$^$9!#(B
-omshell $B$O(B OMAPI $B$K%"%/%;%9$9$kJ}K!$rDs6!$7$^$9!#(B
-.PP
-OMAPI $B$OC1$KMxMQ<T$,%*%V%8%'%/%H$rA`:n$9$k$3$H$,$G$-$k$h$&$K$9$k(B
-$BDL?.%a%+%K%:%`$G$9!#(B
-$B<B:]$K(B omshell $B$r(B\fI$B;HMQ$9$k(B\fR$B$?$a$K!"MxMQ<T$O!"(B
-$B$I$s$J%*%V%8%'%/%H$,MxMQ2DG=$G$"$k$+!"$=$7$F!"(B
-$B$I$N$h$&$K$=$l$i$r;HMQ$9$k$+$rM}2r$7$J$1$l$P(B
-.I $B$J$j$^$;$s!#(B
-OMAPI $B%*%V%8%'%/%H$N$?$a$NJ8=q$O(B
-$B$=$l$i$rDs6!$9$k%5!<%P$N$?$a$NJ8=q$G8+$D$1$k$3$H$,$G$-$^$9(B -
-$BNc$($P(B \fBdhcpd(1)\fR $B%^%K%e%"%k%Z!<%8$H(B
-\fBdhclient(1)\fR $B%^%K%e%"%k%Z!<%8$G$9!#(B
-.SH $B4sB#(B
-.PP
-$B$3$N%=%U%H%&%'%"$O%U%j!<%=%U%H%&%'%"$G$9!#(B
-$B$$$m$$$m$J;~$K$=$N3+H/$O(B ISC $B$H(B Vixie Enterprises $B$r4^$`MM!9$JAH?%$K$h$C$F(B
-$B0z$-<u$1$i$l$^$7$?!#(B
-3.0 $B$N3+H/$N$[$H$s$I$9$Y$F$O(B Nominum Inc. $B$K$h$C$F;q6b$,6!5k$5$l$^$7$?!#(B
-.PP
-$B:#8=:_$N3+H/$O!"(BTed Lemon $B$K$h$C$F0];}4IM}$5$l!"(BISC $B$K$h$C$F(B
-$B<g:E$5$l$F$$$^$9$,!"$3$N%W%m%8%'%/%H$NL$Mh$O$"$J$?$7$@$$$G$9!#(B
-.\" at this point = $B$A$g$&$I:#!":#8=:_!"8=;~E@$G$O!"8=CJ3,$G$O!"$3$N;~E@$G!"(B
-.\" at this point = $B:#$3$N=V4V$K!"$3$3$G!"$3$3$K;j$C$F!":#$H$J$C$F$O!"(B
-.\" at this point = $B$3$&$J$k$H!"$3$l$^$G$N$H$3$m(B
-$BMxMQ<T$,M_$7$$5!G=$,$"$j$^$7$?$i!"$=$l$i$r<BAu$9$k$3$H$r8!F$$7$F$/$@$5$$!#(B
-.SH $B%m!<%+%k$H%j%b!<%H%*%V%8%'%/%H(B
-.PP
-$B$3$N%I%-%e%a%s%H$rDL$7$F!"%m!<%+%k$H%j%b!<%H%*%V%8%'%/%H$X$N;2>H$,$"$j$^$9!#(B
-$B%m!<%+%k%*%V%8%'%/%H$O(B omshell $B$N(B \fBnew\fR $B%3%^%s%I$G:n@.$5$l$?$b$N$G$9!#(B
-$B%j%b!<%H%*%V%8%'%/%H$O%5!<%P$G$N$b$N$G$9(B:
-DHCP $B%5!<%P$,CN$C$F$$$k%j!<%9(B ($BDBB_(B)$B!"%[%9%H$H%0%k!<%W$G$9!#(B
-$B%m!<%+%k$H%j%b!<%H%*%V%8%'%/%H$O!"%*%V%8%'%/%HB0@-$NI=<($HJQ99$r(B
-$B2DG=$K$9$k$?$a$K0l=o$K4XO"$E$1$i$l$^$9!#(B
-$B$^$?!"?7$7$$%j%b!<%H%*%V%8%'%/%H$O%m!<%+%k%*%V%8%'%/%H$H(B
-$B0lCW$9$k$?$a$K:n@.$9$k$3$H$,$G$-$^$9!#(B
-.SH $B@\B3$r%*!<%W%s$9$k(B
-.PP
-omshell $B$O%3%^%s%I%i%$%s$+$i3+;O$5$l$^$9!#(B
-omshell $B$,$$$C$?$s3+;O$5$l$k$H!"(B
-$BH/9T$9$k$3$H$,$G$-$k$$$/$D$+$N%3%^%s%I$,$"$j$^$9(B:
+.SH DESCRIPTION
+The OMAPI Command Shell, omshell, provides an interactive way to connect to,
+query, and possibly change, the ISC DHCP Server's state via OMAPI, the Object
+Management API.  By using OMAPI and omshell, you do not have to stop, make
+changes, and then restart the DHCP server, but can make the changes
+while the server is running.   Omshell provides a way of accessing
+OMAPI.
+.PP
+OMAPI is simply a communications mechanism that allows you to
+manipulate objects.   In order to actually \fIuse\fR omshell, you
+.I must
+understand what objects are available and how to use them.
+Documentation for OMAPI objects can be found in the documentation for
+the server that provides them - for example, in the \fBdhcpd(1)\fR
+manual page and the \fBdhclient(1)\fR manual page.
+.SH CONTRIBUTIONS
+.PP
+This software is free software.  At various times its development has
+been underwritten by various organizations, including the ISC and
+Vixie Enterprises.  The development of 3.0 has been funded almost
+entirely by Nominum, Inc.
+.PP
+At this point development is being shepherded by Ted Lemon, and hosted
+by the ISC, but the future of this project depends on you.  If you
+have features you want, please consider implementing them.
+.SH LOCAL AND REMOTE OBJECTS
+.PP
+Throughout this document, there are references to local and remote objects.
+Local objects are ones created in omshell with the \fBnew\fR command.  Remote
+objects are ones on the server: leases, hosts, and groups that the DHCP
+server knows about.  Local and remote objects are associated together to
+enable viewing and modification of object attributes.  Also, new remote
+objects can be created to match local objects.
+.SH OPENING A CONNECTION
+.PP
+omshell is started from the command line.  Once omshell is started, there are
+several commands that can be issued:
 .PP
 .B server \fIaddress\fR
 .RS 0.5i
-$B$3$3$G!"(Baddress $B$O@\B3$9$k(B DHCP $B%5!<%P$N(B IP $B%"%I%l%9$G$9!#(B
-$B$3$l$,;XDj$5$l$J$$$J$i!"(B
-$B%G%U%)%k%H%5!<%P$O(B 127.0.0.1 (localhost) $B$H$J$j$^$9!#(B
+where address is the IP address of the DHCP server to connect to.  If this is
+not specified, the default server is 127.0.0.1 (localhost).
 .RE
 .PP
 .B port \fInumber\fR
 .RS 0.5i
-$B$3$3$G(B number $B$O(B OMAPI listen ($B@\B3$r<u$1IU$1(B) $B%]!<%H$G$9!#(B
-$B%G%U%)%k%H$O(B 7911 $B$G$9!#(B
+where number is the port that OMAPI listens on.  By default, this is 7911.
 .RE
 .PP
 .B key \fIname secret\fR
 .RS 0.5i
-$B$3$l$O(B OMAPI $B%H%i%s%6%/%7%g%s$rG'>Z$9$k$?$a$K;HMQ$9$k(B TSIG $B%-!<$r;XDj$7$^$9!#(B
-\fIname\fR $B$O(B \fBomapi-key\fR $BJ8$N(B \fIdhcpd.conf\fR $B$GDj5A$5$l$?(B
-$B%-!<$NL>A0$G$9!#(B
-\fIsecret\fR $B$O!"(B\fBdnssec-keygen\fR $B$^$?$OB>$N%-!<@8@.%W%m%0%i%`$G(B
-$B@8@.$5$l$?HkL)%-!<$G$9!#(B
-.\" $B86J8$O(B secret $B$G(B secret key $B$H$J$C$F$$$J$$!#(B
+This specifies the TSIG key to use to authenticate the OMAPI transactions.
+\fIname\fR is the name of a key defined in \fIdhcpd.conf\fR with the
+\fBomapi-key\fR statement.  The \fIsecret\fR is the secret generated from
+\fBdnssec-keygen\fR or another key generation program.
 .RE
 .PP
 .B connect
 .RS 0.5i
-$B$3$l$O(B \fIserver\fR $BJ8$K$h$C$F;XDj$5$l$k$h$&$K%5!<%P$X(B
-OMAPI $B@\B3$r3+;O$7$^$9!#(B
-.SH $B%m!<%+%k%*%V%8%'%/%H$r:n@.(B
-.PP
-OMAPI $B$GDj5A$5$l$?$I$s$J%*%V%8%'%/%H$b!":n@.$7$F!"Ld$$9g$o$;$7$F!"(B
-$B$=$7$F(B/$B$^$?$O!"JQ99$9$k$3$H$,$G$-$^$9!#(B
-OMAPI $B$GMxMQ2DG=$J%*%V%8%'%/%H%?%$%W$O(B \fBdhcpd(8)\fR $B$H(B \fBdhclient\fR
-$B$GDj5A$5$l$^$9!#(B
-omshell $B$r;HMQ$9$k$H$-!"%*%V%8%'%/%H$O(B
-$B:G=i$K%m!<%+%k$KDj5A$5$l$F!"MWK>$I$*$j$KA`:n$7$F!"$=$7$F(B
-$B%5!<%P$N%*%V%8%'%/%H$K4XO"$E$1$i$l$^$9!#(B
-$B0lEY$K!"$?$C$?(B 1 $B$D$N%*%V%8%'%/%H$7$+A`:n$9$k$3$H$,$G$-$^$;$s!#(B
-$B%m!<%+%k%*%V%8%'%/%H$r:n@.$9$k$?$a$K$O!"<!$r;HMQ$7$^$9!#(B
+This starts the OMAPI connection to the server as specified by the \fIserver\fR
+statement.
+.SH CREATING LOCAL OBJECTS
+.PP
+Any object defined in OMAPI can be created, queried, and/or modified.  The
+object types available to OMAPI are defined in \fBdhcpd(8)\fR and
+\fBdhclient\fR.  When using omshell, objects are first defined locally,
+manipulated as desired, and then associated with an object on the server.
+Only one object can be manipulated at a time.  To create a local object, use
 .PP
 .B new \fIobject-type\fR
 .RS 0.5i
-\fIobject-type\fR $B$O%0%k!<%W!"%[%9%H!"$^$?$O%j!<%9(B ($BDBB_(B) $B$N0l$D$G$9!#(B
+\fIobject-type\fR is one of group, host, or lease.
 .RE
 .PP
-$B8=;~E@$G$O!"MxMQ<T$O8=:_!"MxMQ<T$,FC@-$r;HMQ$9$k$3$H$G$-$k(B
-$B%*%V%8%'%/%H$r;}$C$F$$$^$9!#(B
-.\" set on = $B!A$K$1$7$+$1$k!":6$9!"8[MQ$9$k!";HMQ$9$k(B
-$BNc$($P!"?7$7$$%j!<%9%*%V%8%'%/%H$,(B \fInew lease\fR $B$G:n@.$5$l$?$J$i!"(B
-$B%j!<%9$NB0@-$N$$$:$l$+$O<!$N$h$&$K@_Dj$9$k$3$H$,$G$-$^$9(B:
+At this point, you now have an object that you can set properties on.  For
+example, if a new lease object was created with \fInew lease\fR, any of a
+lease's attributes can be set as follows:
 .PP
 .B set \fIattribute-name = value\fR
 .RS 0.5i
-attribute-name ($BB0@-L>(B) $B$O(B  \fBdhcpd(8)\fR $B$H(B \fBdhclient(8)\fR
-$B$GDj5A$5$l$^$9!#(B
-.\" $B86J8(B: \fBAttribute $B$O(B Attribute $B$N8m$j!#(B\fB $B$r<h$k!#(B
-value ($BCM(B) $B$O$=$l$i$,J8;zNs$G$"$k$J$i0zMQ$9$k$Y$-$G$9!#(B
-$B$7$?$,$C$F!"%j!<%9$N(B IP $B%"%I%l%9$r@_Dj$9$k$?$a$K$O!"MxMQ<T$O(B
-$B<!$N$h$&$K9T$&$G$7$g$&(B:
+\fBAttribute names are defined in \fBdhcpd(8)\fR and \fBdhclient(8)\fR.
+Values should be quoted if they are strings.  So, to set a lease's IP address,
+you would do the following:
 \fB set ip-address = 192.168.4.50\fR
-.SH $B%m!<%+%k$H%j%b!<%H%*%V%8%'%/%H$r7k9g(B
+.SH ASSOCIATING LOCAL AND REMOTE OBJECTS
 .PP
-$B8=;~E@$G$O!"MxMQ<T$O<!$K$h$C$F$3$N%j!<%9$K4X$9$k>pJs$N$?$a$N(B
-$B%5!<%P$KLd$$9g$o$;$k$3$H$,$G$-$^$9!#(B
+At this point, you can query the server for information about this lease, by
 .PP
 .B open
 .PP
-$B8=:_!"MxMQ<T$,:n@.$7!"(BIP $B%"%I%l%9$r@_Dj$7$?%m!<%+%k%j!<%9%*%V%8%'%/%H$O(B
-DHCP $B%5!<%P$GBP1~$9$k%j!<%9%*%V%8%'%/%H$K4XO"$7$F$$$^$9!#(B
-$B$^$?8=:_!"(BDHCP $B%5!<%P$+$i$N$9$Y$F$N%j!<%9B0@-$O!"(B
-$B%m!<%+%k$N%*%V%8%'%/%H$NB0@-$G$"$j!"(Bomshell $B$GI=<($5$l$^$9!#(B
-.SH $B%j%b!<%H%*%V%8%'%/%H$rI=<((B
+Now, the local lease object you created and set the IP address for is associated
+with the corresponding lease object on the DHCP server.  All of the lease
+attributes from the DHCP server are now also the attributes on the local
+object, and will be shown in omshell.
+.SH VIEWING A REMOTE OBJECT
 .PP
-$B%"%I%l%9(B 192.168.4.50 $B$N%j!<%9$K$D$$$FLd$$9g$o$;!"$=$NB0@-$rD4$Y$k$?$a$K$O!"(B
-$B%5!<%P$K@\B3$7$?8e!"<!$NJ}K!$r<h$j$^$9(B:
+To query a lease of address 192.168.4.50, and find out its attributes, after
+connecting to the server, take the following steps:
 .PP
 .B new "lease"
 .PP
-$B$3$l$O?7$7$$%m!<%+%k%j!<%9%*%V%8%'%/%H$r:n@.$7$^$9!#(B
+This creates a new local lease object.
 .PP
 .B set ip-address = 192.168.4.50
 .PP
-$B$3$l$O(B \fIlocal\fR $B%*%V%8%'%/%H$N(B IP $B%"%I%l%9$r(B 192.168.4.50
-$B$K@_Dj$7$F$$$^$9!#(B
+This sets the \fIlocal\fR object's IP address to be 192.168.4.50
 .PP
 .B open
 .PP
-$B:#!"$=$N(B IP $B%"%I%l%9$K$h$k%j!<%9$,B8:_$7$F$$$k$J$i!"(B
-$BMxMQ<T$O(B DHCP $B%5!<%P$,$=$NFCDj$N%j!<%9$K4X$7$F;}$C$F$$$k(B
-$B$9$Y$F$N>pJs$,J,$+$j$^$9!#(B
-$BMF0W$K0u:~2DG=$J%F%-%9%H$G$J$$$I$s$J%G!<%?$b%3%m%s$GJ,N%$5$l$?(B 16 $B?JCM$G(B
-$BI=<($5$l$^$9!#(B
-$B$3$NNc$G$O!"A4BN$N%H%i%s%6%/%7%g%s$N$?$a$N%5!<%P$+$i$N=PNO$O(B
-$B<!$N$h$&$K8+$($k$+$b$7$l$^$;$s(B:
+Now, if a lease with that IP address exists, you will see all the information
+the DHCP server has about that particular lease.  Any data that isn't readily
+printable text will show up in colon-separated hexadecimal values.  In this
+example, output back from the server for the entire transaction might look
+like this:
 .nf
 .sp 1
 > new "lease"
@@ -199,24 +170,18 @@
 cltt = 00:00:00:00
 .fi
 .PP
-$B$3$3$G8fMw$N$h$&$K!"(BIP $B%"%I%l%9$O!"(B
-$B%j!<%9$N3+;O$H=*N;;~$N$h$&$K(B 16 $B?J$GI=$5$l$^$9!#(B
-.\" as you can see = $B$*J,$+$j$N$h$&$K!"$4Mw$N$H$*$j!"$4Mw$N$h$&$K(B
-.SH $B%j%b!<%H%*%V%8%'%/%H$rJQ99(B
-.PP
-$B%j%b!<%H%*%V%8%'%/%H$NB0@-$O!"$9$G$K=R$Y$?$h$&$K(B
-\fBset\fR $B%3%^%s%I$r;HMQ$7$F!"<!$K(B \fBupdate\fR $B%3%^%s%I$r(B
-$BH/9T$9$k$3$H$K$h$C$F!"%"%C%W%G!<%H$5$l$^$9!#(B
-.\" as before = $B0JA0$N$H$*$j!"=>Mh$I$*$j!"0MA3!"$3$l$^$G$N$h$&$K!"$b$H$N$H$*$j!"(B
-.\" as before = $B$9$G$K=R$Y$?$h$&$K!"A0=RF1MM$K(B
-\fBset\fR $B%3%^%s%I$O8=:_$N%m!<%+%k%*%V%8%'%/%H$KB0@-$r@_Dj$7!"(B
-\fBupdate\fR $B%3%^%s%I$O%5!<%P$K$=$l$i$NJQ99$r2!$7IU$1$^$9!#(B
-.\" push out = $B2!$7=P$9!"GS=|$9$k!"2!$7IU$1$k(B
-.PP
-$BA0$NNc$KB3$$$F!"(B
-\fBset client-hostname = "something-else"\fR $B$,H/9T$5$l!"(B
-\fBupdate\fR $B%3%^%s%I$,B3$/$J$i!"(B
-$B=PNO$O<!$N$h$&$K8+$($k$G$7$g$&(B:
+As you can see here, the IP address is represented in hexadecimal, as are the
+starting and ending times of the lease.
+.SH MODIFYING A REMOTE OBJECT
+.PP
+Attributes of remote objects are updated by using the \fBset\fR command as
+before, and then issuing an \fBupdate\fR command.  The \fBset\fR command sets
+the attributes on the current local object, and the \fBupdate\fR command
+pushes those changes out to the server.
+.PP
+Continuing with the previous example, if a \fBset client-hostname =
+"something-else"\fR was issued, followed by an \fBupdate\fR command, the
+output would look about like this:
 .nf
 .sp 1
 > set client-hostname = "something-else"
@@ -250,23 +215,21 @@
 tsfp = 00:00:00:00
 cltt = 00:00:00:00
 .fi
-.SH $B?7$7$$%j%b!<%H%*%V%8%'%/%H(B
+.SH NEW REMOTE OBJECTS
 .PP
-$B?7$7$$%j%b!<%H%*%V%8%'%/%H$O4{B8$N%5!<%P%*%V%8%'%/%H$,JQ99$5$l$F$$$k$N$H(B
-$BF1MM$K$?$/$5$s:n@.$5$l$^$9!#(B
-.\" in the same way = $B0lMM$K!"F1$8$K!"F1MM$K(B
-\fBnew\fR $B$r;HMQ$7$F%m!<%+%k%*%V%8%'%/%H$r:n@.$7!"(B
-$BMxMQ<T$,@_Dj$7$?$$B0@-$r@_Dj$7$F!"(B
-$B<!$r;HMQ$7$FF1$8FC@-$G%j%b!<%H%*%V%8%'%/%H$r:n@.$7$^$9!#(B
+New remote objects are created much in the same way that existing server
+objects are modified.  Create a local object using \fBnew\fR, set the
+attributes as you'd wish them to be, and then create the remote object with
+the same properties by using
 .PP
 .B create
 .PP
-$B8=:_!"?7$7$$%*%V%8%'%/%H$OMxMQ<T$,%m!<%+%k%*%V%8%'%/%H$KM?$($?FC@-$K0lCW$9$k(B
-DHCP $B%5!<%P$KB8:_$7$^$9!#(B
-OMAPI $B$rDL$7$F:n@.$5$l$?%*%V%8%'%/%H$O(B dhcpd.leases $B%U%!%$%k$KJ]B8$5$l$^$9!#(B
+Now a new object exists on the DHCP server which matches the properties that
+you gave your local object.  Objects created via OMAPI are saved into the
+dhcpd.leases file.
 .PP
-$BNc$($P!"(B192.168.4.40 $B$N(B IP $B%"%I%l%9$G?7$7$$%[%9%H$,(B
-$B$=$l$r:n@.$9$kI,MW$,$"$l$P!"<!$N$h$&$K9T$o$l$k$G$7$g$&(B:
+For example, if a new host with the IP address of 192.168.4.40 needs to be
+created it would be done as follows:
 .nf
 .sp 1
 > new host
@@ -298,7 +261,7 @@
 > 
 .fi
 .PP
-$BMxMQ<T$N(B dhcpd.leases $B%U%!%$%k$K$O!"<!$N$h$&$J%(%s%H%j$,$"$k$G$7$g$&(B:
+Your dhcpd.leases file would then have an entry like this in it:
 .nf
 .sp 1
 host some-host {
@@ -308,17 +271,15 @@
 }
 .fi
 .PP
-\fIdynamic;\fR $B9T$O$3$N%[%9%H%(%s%H%j$,(B dhcpd.conf
-$B$+$i@8$8$J$$$3$H$r0UL#$7$F$$$^$9$,!"(B
-OMAPI $B$rDL$7$F%@%$%J%_%C%/$K:n@.$5$l$^$9!#(B
-.SH $BB0@-$r%j%;%C%H(B
-.PP
-$B%*%V%8%'%/%H$+$iB0@-$r<h$j=|$-$?$$$J$i!"MxMQ<T$O(B \fBunset\fR
-$B%3%^%s%I$G$3$l$r9T$($^$9!#(B
-$B$$$C$?$sB0@-$,(B unset $B$5$l$k$H!"MxMQ<T$O%j%b!<%H%*%V%8%'%/%H$r(B
-$B99?7$9$k$?$a$K(B \fBupdate\fR $B%3%^%s%I$r;HMQ$7$J$1$l$P$J$j$^$;$s!#(B
-$B$=$l$G!"A0$NNc$N%[%9%H(B "some-host" $B$,$b$O$d@EE*$J(B IP $B%"%I%l%9$,$J$$$J$i!"(B
-omshell $B$N%3%^%s%I$O<!$N$h$&$K8+$($k$G$G$7$g$&(B:
+The \fIdynamic;\fR line is to denote that this host entry did not come from
+dhcpd.conf, but was created dynamically via OMAPI.  
+.SH RESETTING ATTRIBUTES
+.PP
+If you want to remove an attribute from an object, you can do this with the
+\fBunset\fR command.   Once you have unset an attribute, you must use the
+\fBupdate\fR command to update the remote object.  So, if the host "some-host"
+from the previous example will not have a static IP address anymore, the
+commands in omshell would look like this:
 .nf
 .sp 1
 obj: host
@@ -334,22 +295,19 @@
 ip-address = <null>
 > 
 .fi
-.SH $B%*%V%8%'%/%H$r%j%U%l%C%7%e(B
+.SH REFRESHING OBJECTS
 .PP
-$B%m!<%+%k%*%V%8%'%/%H$O!"(B\fBrefresh\fR $B%3%^%s%I$r;HMQ$7$F(B
-$B8=:_$N%j%b!<%H%*%V%8%'%/%H$NFC@-$G%j%U%l%C%7%e$5$l$^$9!#(B
-$B$3$l$O!"99?7$5$l$+$I$&$+3N$+$a$k$?$a$K%j!<%9$N$h$&$K(B
-$BDj4|E*$KJQ2=$9$k%*%V%8%'%/%H$NLr$KN)$A$^$9!#(B
-.\" see if = $B!A$+$I$&$+$r3N$+$a$k!"!A$+$I$&$+$r8+$k!"!A$+$J!)(B
-$B$3$l$OFC$K%[%9%H$NLr$KN)$A$^$;$s!#(B
-.SH $B%*%V%8%'%/%H$r:o=|(B
-.PP
-$BG$0U$N%j%b!<%H%*%V%8%'%/%H$O:n@.$9$k$3$H$,$G$-!"$^$?GK2u$9$k$3$H$,$G$-$^$9!#(B
-$B$3$l$O!"?7$7$$%m!<%+%k%*%V%8%'%/%H$r:n@.$7!"B0@-$r@_Dj$7!"(B\fBopen\fI $B$r(B
-$B;HMQ$7$F%m!<%+%k$H%j%b!<%H%*%V%8%'%/%H$r4XO"$E$1!"<!$K!"(B\fBremove\fR
-$B%3%^%s%I$r;HMQ$7$F9T$o$l$^$9!#(B
-$BA0$N%[%9%H(B "some-host" $B$,%(%i!<$G:n@.$5$l$k$J$i!"(B
-$B$3$l$O!"<!$N$h$&$K=$@5$5$l$k2DG=@-$,$"$j$^$9(B:
+A local object may be refreshed with the current remote object properties
+using the \fBrefresh\fR command.  This is useful for object that change
+periodically, like leases, to see if they have been updated.  This isn't
+particularly useful for hosts.
+.SH DELETING OBJECTS
+.PP
+Any remote object that can be created can also be destroyed.  This is done by
+creating a new local object, setting attributes, associating the local and
+remote object using \fBopen\fI, and then using the \fBremove\fR command. 
+If the host "some-host" from before was created in error, this could be
+corrected as follows:
 .nf
 .sp 1
 obj: host
@@ -361,17 +319,16 @@
 obj: <null>
 > 
 .fi
-.SH $B%X%k%W(B
+.SH HELP
 .PP
-\fBhelp\fR $B%3%^%s%I$O$$$/$D$+$N9=J8$N%R%s%H$H$7$F(B omshell
-$B$GMxMQ2DG=$J%3%^%s%I$N$9$Y$F$r0u:~$7$^$9!#(B
-.SH $B4XO"9`L\(B
+The \fBhelp\fR command will print out all of the commands available in
+omshell, with some syntax pointers.
+.SH SEE ALSO
 dhcpctl(3), omapi(3), dhcpd(8), dhclient(8), dhcpd.conf(5), dhclient.conf(5).
-.SH $B:n<T(B
+.SH AUTHOR
 .B omshell
-$B$O(B Nominum Inc. $B$N(B Ted Lemon $B$K$h$C$F=q$+$l$^$7$?!#(B
-Nominum $B$K4X$9$k>pJs$H(B DHCP $B$H(B BIND $B$N$?$a$N%5%]!<%H5,Ls$O(B
-.B http://www.nominum.com
-$B$G$r8+$D$1$k$3$H$,$G$-$^$9!#(B
-$B$3$NM=Hw$NJ8=q$O!"H`=w$,(B omshell $B$r%F%9%H$7$F$$$?4V$K(B
-Nominum Inc. $B$N(B Wendy Verschoor $B$K$h$C$F=q$+$l$^$7$?!#(B
+was written by Ted Lemon of Nominum, Inc.  Information about Nominum
+and support contracts for DHCP and BIND can be found at
+.B http://www.nominum.com.   This preliminary documentation was
+written by Wendy Verschoor of Nominum, Inc., while she was testing
+omshell.

--
($BM-(B)$B>.6b4]%3%s%T%e!<%?%(%s%8%K%"%j%s%0%5!<%S%9(B ($BJ!2,8)BgLn>k;T(B)
	$B>.6b4](B $B?.9,(B (Nobuyuki Koganemaru)
E-Mail: n-kogane@syd.odn.ne.jp
E-Mail: kogane@jp.FreeBSD.org
E-Mail: kogane@koganemaru.co.jp
URL: http://www.koganemaru.co.jp
