#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 30 (of 31)."
# Contents:  xinetd/xinetd.conf.man
# Wrapped by panos@mystique on Mon Jun 21 14:51:29 1993
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'xinetd/xinetd.conf.man' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'xinetd/xinetd.conf.man'\"
else
echo shar: Extracting \"'xinetd/xinetd.conf.man'\" \(20302 characters\)
sed "s/^X//" >'xinetd/xinetd.conf.man' <<'END_OF_FILE'
X.\"(c) Copyright 1992 by Panagiotis Tsirigotis
X.\"All rights reserved.  The file named COPYRIGHT specifies the terms 
X.\"and conditions for redistribution.
X.\"
X.\" $Id: xinetd.conf.man,v 6.6 1993/06/06 00:13:15 panos Exp $
X.TH XINETD.CONF 5L "28 April 1993"
X.\" *************************** NAME *********************************
X.SH NAME
Xxinetd.conf \- Extended Internet Services Daemon configuration file
X.\" *********************** DESCRIPTION ****************************
X.SH DESCRIPTION
X.B "xinetd.conf"
Xis the configuration file that
Xdetermines the services provided by \fBxinetd\fP.
XAny line whose first non-white-space character is a '#' is considered
Xa comment line. Empty lines are ignored.
X.LP
XThe file contains entries of the form:
X.RS
X.nf
X.ft B
X.sp
Xservice <service_name>
X{
X.RS
X.ft B
X<attribute> <assign_op> <value> <value> ...
X.I "..."
X.RE
X}
X.ft R
X.fi
X.RE
X.LP
XThe assignment operator,
X.I assign_op,
Xcan be one of 
X.B '=', 
X.B '+=',
X.B '-='.
XThe majority of attributes support only the simple assignment operator,
X.B '='.
XAttributes whose value is a set of values support all assignment operators.
XFor such attributes,
X.B '+=' 
Xmeans adding a value to the set and 
X.B '-='
Xmeans removing a value from the set.
XA list of these attributes will be given
Xafter all the attributes are described.
X.LP
XEach entry defines a service identified by the \fIservice_name\fP.
XThe following is a list of available attributes:
X.TP 17
X.SB id
XThis attribute is used to uniquely identify a service.
XThis is useful because there exist services that can use different 
Xprotocols and need to be described with different entries in the
Xconfiguration file.
XBy default, the service id is the same as the service name.
X.TP
X.SB type
XAny combination of the following values may be used:
X.RS
X.TP 12
X.SB RPC
Xif this is an RPC service
X.TP
X.SB INTERNAL
Xif this is a service provided by \fBxinetd\fP.
X.TP
X.SB UNLISTED
Xif this is a service not listed in a standard system file
X(like
X.I /etc/rpc 
Xfor RPC services, or
X.I /etc/services
Xfor non-RPC services).
X.RE
X.TP
X.SB flags
XAny combination of the following flags may be used:
X.RS
X.TP 12
X.SB REUSE
XSet the
X.I SO_REUSEADDR
Xflag on the service socket (check
X.I "setsockopt(2)"
Xfor more information).
X.TP
X.SB INTERCEPT
XIntercept packets or accepted connections in order to verify that they
Xare coming from acceptable locations (internal or multi-threaded
Xservices cannot be intercepted).
X.TP
X.SB NORETRY
XAvoid retry attempts in case of fork failure.
X.TP
X.SB IDONLY
XAccept connections only when the remote end identifies the remote user
X(i.e. the remote host must run an identification server).
XThis flag applies only to connection-based services.
XThis flag is ineffective if the
X.B USERID
Xlog option is not used.
X.RE
X.TP
X.SB socket_type
XPossible values for this attribute include:
X.RS
X.TP 12
X.I stream
Xstream-based service
X.TP
X.I dgram
Xdatagram-based service
X.TP
X.I raw
Xservice that requires direct access to IP
X.TP
X.I seqpacket
Xservice that requires reliable sequential datagram transmission
X.RE
X.TP
X.SB protocol
Xdetermines the protocol that is employed by the service.
XThe protocol must exist in
X.I /etc/protocols.
XIf this
Xattribute is not defined, the default protocol employed by the service
Xwill be used.
X.TP
X.SB wait
XThis attribute determines if the service is single-threaded or
Xmulti-threaded. If its value is \fIyes\fP the service is single-threaded;
Xthis means that \fBxinetd\fP will start the server and then it will stop 
Xhandling requests for the service until the server dies.
XIf the attribute value is \fIno\fP, the service is multi-threaded and
X\fBxinetd\fP will keep handling new service requests.
X.TP
X.SB user
Xdetermines the uid for the server process. The user name must exist in
X.I /etc/passwd.
XThis attribute is ineffective if the effective user ID 
Xof \fBxinetd\fP is not super-user.
X.TP
X.SB group
Xdetermines the gid for the server process. The group name must exist in
X.I /etc/group.
XIf a group is not specified, the group
Xof \fIuser\fP will be used (from 
X.I /etc/passwd).
XThis attribute is ineffective if the effective user ID 
Xof \fBxinetd\fP is not super-user.
X.TP
X.SB instances
Xdetermines the number of servers that can be simultaneously active
Xfor a service (the default is no limit). The value of this
Xattribute can be either a number or
X.SB UNLIMITED
Xwhich means that there is no limit.
X.TP
X.SB nice
Xdetermines the server priority. Its value is a (possibly negative) number;
Xcheck nice(3) for more information.
X.TP
X.SB server
Xdetermines the program to execute for this service.
X.TP
X.SB server_args
Xdetermines the arguments passed to the server. In contrast to \fBinetd\fP,
Xthe server name should \fInot\fP be included in \fIserver_args\fP.
X.TP
X.SB only_from
Xdetermines the remote hosts to which the particular
Xservice is available.
XIts value is a list of IP addresses which can be specified in any
Xcombination of the following ways:
X.RS
X.TP 5
X.SB a)
Xa numeric address in the form of %d.%d.%d.%d. If the rightmost components are 
X0, they are treated as wildcards 
X(for example, 128.138.12.0 matches all hosts on the 128.138.12 subnet).
X0.0.0.0 matches all Internet addresses.
X.TP
X.SB b)
Xa factorized address in the form of %d.%d.%d.{%d,%d,...}.
XThere is no need for all 4 components (i.e. %d.%d.{%d,%d,...%d} is also ok).
XHowever, the factorized part must be at the end of the address.
X.TP
X.SB c)
Xa network name (from
X.I /etc/networks)
X.TP
X.SB d)
Xa host name. All IP addresses of the specified host name will be used.
X.RE
X.TP
X.SB ""
XSpecifying this attribute
Xwithout a value makes the service available to nobody.
X.TP
X.SB no_access
Xdetermines the remote hosts to which the particular
Xservice is unavailable. Its value can be specified in the same way as the
Xvalue of the \fBonly_from\fP
Xattribute. These two attributes determine the location access control 
Xenforced by \fBxinetd\fP. If none of the two is specified for a service,
Xthe service is available to anyone. If both are specified for a service,
Xthe one that is the better match for
Xthe address of the remote host determines
Xif the service is available to that host (for example, if the 
X\fBonly_from\fP list contains 128.138.209.0 and the
X\fBno_access\fP list contains 128.138.209.10
Xthen the host with the address 128.138.209.10 can not access the service).
X.TP
X.SB access_times
Xdetermines the time intervals when the service is available. An interval
Xhas the form \fIhour:min-hour:min\fP (connections 
X.I will 
Xbe accepted at the bounds of an interval). Hours can range from 0 to 23 and
Xminutes from 0 to 59.
X.TP
X.SB log_type
Xdetermines where the service log output is sent. There are two formats:
X.RS
X.TP
X.SB SYSLOG " \fIsyslog_facility [syslog_level]\fP"
XThe log output is sent to syslog at the specified facility. Possible facility
Xnames include:
X.I daemon,
X.I auth,
X.I user,
X.I "local0-7."
XPossible level names include:
X.I emerg,
X.I alert,
X.I crit,
X.I err,
X.I warning,
X.I notice,
X.I info,
X.I debug.
XIf a level is not present, the messages will be recorded at the
X.I info
Xlevel.
X.TP
X.SB FILE " \fIfile [soft_limit [hard_limit]]\fP"
XThe log output is appended to \fIfile\fP which will be created if it does
Xnot exist. Two limits on the size of the log file can be optionally specified.
XThe first limit is a soft one;
X.B xinetd 
Xwill log a message the first time this limit is exceeded (if 
X.B xinetd
Xlogs to syslog, the message will be sent at the 
X.I alert
Xpriority level).
XThe second limit is a hard limit; 
X.B xinetd 
Xwill stop logging for the affected service (if the log file is a
Xcommon log file, then more than one service may be affected)
Xand will log a message about this (if
X.B xinetd
Xlogs to syslog, the message will be sent at the 
X.I alert
Xpriority level).
XIf a hard limit is not specified, it defaults to the soft limit
Xincreased by 1% but the extra size must be within the parameters
X.SM LOG_EXTRA_MIN
Xand
X.SM LOG_EXTRA_MAX
Xwhich default to 5K and 20K respectively (these constants are defined in 
X\fIconfig.h\fP).
X.RE
X.TP
X.SB log_on_success
Xdetermines what information is logged when a server is started and when
Xthat server exits (the service id is always included in the log entry).
XAny combination of the following values may be specified:
X.RS
X.TP 12
X.SB PID
Xlogs the server process id (if the service is implemented by \fBxinetd\fP
Xwithout forking another process the logged process id will be 0)
X.TP
X.SB HOST
Xlogs the remote host address
X.TP
X.SB USERID
Xlogs the user id of the remote user using the RFC 1413 identification protocol.
XThis option is available only for multi-threaded stream services.
X.TP
X.SB EXIT
Xlogs the fact that a server exited along with the exit status or the
Xtermination signal
X(the process id is also logged if the
X.SB PID
Xoption is used)
X.TP
X.SB DURATION 
Xlogs the duration of a service session
X.RE
X.TP
X.SB log_on_failure
Xdetermines what information is logged when a server cannot be started
X(either because of a lack of resources or because of access control
Xrestrictions). The service id is always included in the log entry along
Xwith the reason for failure.
XAny combination of the following values may be specified:
X.RS
X.TP 12
X.SB HOST
Xlogs the remote host address.
X.TP
X.SB USERID
Xlogs the user id of the remote user using the RFC 1413 identification protocol.
XThis option is available only for multi-threaded stream services.
X.TP 
X.SB ATTEMPT
Xlogs the fact that a failed attempt was made
X(this option is implied by all others).
X.TP
X.SB RECORD
Xrecords information from the remote end in case the server could not
Xbe started. This allows monitoring of attempts to use the service.
XFor example, the login service logs the local user, remote
Xuser and terminal type.
XCurrently, the services that support this option are:
X.I login,
X.I shell,
X.I exec,
X.I finger.
X.RE
X.TP
X.SB rpc_version
Xdetermines the RPC version for a RPC service. The version can be
Xa single number or a range in the form \fInumber\fP-\fInumber\fP.
X.TP
X.SB rpc_number
Xdetermines the number for an
X.I UNLISTED
XRPC service (this attribute is ignored if the service is not unlisted).
X.TP
X.SB env
XThe value of this attribute is a list of strings of the form 'name=value'.
XThese strings will be added to the environment before
Xstarting a server (therefore the server's environment will include
X\fBxinetd\fP's environment plus the specified strings).
X.TP
X.SB passenv
XThe value of this attribute is a list of environment variables from
X\fBxinetd\fP's environment that will be passed to the server.
XAn empty list implies passing no variables to the server
Xexcept for those explicitly defined using the
X.I env
Xattribute.
X(notice that you can use this attribute in conjuction with the
X.I env
Xattribute to specify exactly what argument will be passed to the server).
X.TP
X.SB port
Xdetermines the service port. If this attribute is specified for a service 
Xlisted in
X.I /etc/services,
Xit must be equal to the port number listed in that file.
X.LP
XYou don't need to specify all of the above attributes for each service.
XThe necessary attributes for a service are:
X.sp 1
X.PD .1v
X.RS
X.TP 18
X.SB socket_type
X.TP
X.SB user
X(non-\fIunlisted\fP services only)
X.TP
X.SB server
X(non-\fIinternal\fP services only)
X.TP
X.SB wait
X.TP
X.SB protocol
X(\fIRPC\fP and \fIunlisted\fP services only)
X.TP
X.SB rpc_version
X(\fIRPC\fP services only)
X.TP
X.SB rpc_number
X(\fIunlisted\fP RPC services only)
X.TP
X.SB port
X(\fIunlisted\fP non-RPC services only)
X.RE
X.PD
X.LP
XThe following attributes support all assignment operators:
X.sp 1
X.PD .1v
X.RS
X.TP 18
X.SB only_from
X.TP
X.SB no_access
X.TP
X.SB log_on_success
X.TP
X.SB log_on_failure
X.TP
X.SB passenv
X.TP
X.SB env
X(does not support the
X.B '-='
Xoperator)
X.RE
X.PD
X.LP
XThese attributes can also appear more than once in a service entry.
XThe remaining attributes support only the 
X.B '='
Xoperator and can appear at most once in a service entry.
X.LP
XThe configuration file may also contain a single defaults entry
Xthat has the form
X.LP
X.RS
X.nf
X.ft B
Xdefaults
X{
X.RS
X.ft B
X<attribute> = <value> <value> ...
X.I "..."
X.RE
X.ft B
X}
X.ft R
X.fi
X.RE
X.LP
XThis entry provides default attribute values for service entries that
Xdon't specify those attributes. Possible default attributes:
X.sp 1
X.PD .1v
X.RS
X.TP 18
X.SB log_type
X.TP
X.SB log_on_success
X(cumulative effect)
X.TP
X.SB log_on_failure
X(cumulative effect)
X.TP
X.SB only_from
X(cumulative effect)
X.TP
X.SB no_access
X(cumulative effect)
X.TP
X.SB passenv
X(cumulative effect)
X.TP
X.SB instances
X.TP
X.SB disabled
X(cumulative effect)
X.RE
X.PD
X.LP
XAttributes with a cumulative effect can be specified multiple times
Xwith the values specified each time accumulating (i.e. '=' does
Xthe same thing as '+=').
XWith the exception of
X.I disabled
Xthey all have the same meaning as if they were specified in a service entry.
X.I disabled
Xdetermines services that are disabled even if they have entries in
Xthe configuration file. This allows for quick reconfiguration by
Xspecifying disabled services with the
X.I disabled
Xattribute instead of commenting them out.
XThe value of this attribute is a list of space separated service ids.
X.\" *********************** INTERNAL SERVICES ****************************
X.SH "INTERNAL SERVICES"
X.LP
X\fBxinetd\fP provides the following services internally (both
Xstream and datagram based):
X.I echo,
X.I time,
X.I daytime,
X.I chargen,
Xand
X.I discard.
XThese services are under the same access restrictions as all other
Xservices except for the ones that don't require \fBxinetd\fP to fork
Xanother process for them. Those ones (\fItime\fP, \fIdaytime\fP,
Xand the datagram-based \fIecho\fP, \fIchargen\fP, and \fIdiscard\fP) 
Xhave no limitation in the number of 
X.B instances.
X.LP
X.B xinetd
Xalso provides two
X.I UNLISTED
Xinternal stream-based services:
X.I servers
Xand
X.I services.
XThe former lists information about running servers while the latter
Xprovides a list of currently active services. 
XThere is one service per line and each line contains the service name,
Xprotocol (e.g. "tcp") and port number.
X.\" *********************** NOTES ****************************
X.SH NOTES
X.IP 1. 4
XThe following service attributes \fIcannot\fP be changed on reconfiguration:
X.B socket_type,
X.B wait,
X.B protocol,
X.B type.
X.IP 2.
XWhen the attributes
X.I only_from
Xand
X.I no_access
Xare not specified for a service (either directly or via \fIdefaults\fP)
Xthe address check is considered successful (i.e. access will not be
Xdenied).
X.IP 3.
XThe address check is based on the IP address of the remote host and
Xnot on its domain address. We do this so that we can avoid
Xremote name lookups which may take a long time (since
X.B xinetd
Xis single-threaded, a name lookup will prevent the daemon from
Xaccepting any other requests until the lookup is resolved).
XThe down side of this scheme is that if the IP address of a remote
Xhost changes, then access to that host may be denied until
X.B xinetd
Xis reconfigured.
XWhether access is actually denied or not will depend on whether the
Xnew host IP address is among those allowed access. For example, if
Xthe IP address of a host changes from 1.2.3.4 to 1.2.3.5 and 
Xonly_from is specified as 1.2.3.0 then access will not be denied.
X.IP 4.
XIf the
X.SB USERID
Xlog option is specified and the remote host either does not run an 
Xidentification server or the server sends back a bad reply,
Xaccess will not be denied unless the
X.I IDONLY
Xservice flag is used.
X.IP 5.
XInterception works by forking a process which acts as a filter
Xbetween the remote host(s) and the local server. 
XThis obviously has a performance impact so
Xit is up to you to make the compromise between security and performance
Xfor each service.
XThe following tables show the overhead of interception.
XThe first table shows the time overhead-per-datagram for a UDP-based service
Xusing various datagram sizes.
XFor TCP-based services we measured the bandwidth reduction 
Xbecause of interception while sending
Xa certain amount of data from client to server (the time overhead should
Xthe same as for UDP-based services but it is "paid" only by the first
Xpacket of a continuous data transmission).
XThe amount of data is given
Xin the table as \fIsystem_calls\fPx\fIdata_sent_per_call\fP, i.e.
Xeach
X.I "send(2)"
Xsystem call transferred so many bytes of data. 
XThe bandwidth reduction is given in terms of bytes per second and as
Xa percentage of the bandwidth when interception is not performed.
XAll measurements were done on a SparcStation IPC running SunOS 4.1.
X.sp 1
X.RS
X.RS
X.PD .1v
X.TP 25
XDatagram size (bytes)
XLatency (msec)
X.TP
X---------------------
X--------------
X.TP
X64
X1.19
X.TP
X256
X1.51
X.TP
X1024
X1.51
X.TP
X4096
X3.58
X.sp 2
X.TP
XBytes sent
XBandwidth reduction
X.TP
X----------
X-------------------
X.TP
X10000x64
X941 (1.2%)
X.TP
X10000x256
X4,231 (1.8%)
X.TP
X10000x1024
X319,300 (39.5%)
X.TP
X10000x4096
X824,461 (62.1%)
X.RE
X.RE
X.sp 1
X.\" *********************** EXAMPLE ****************************
X.SH EXAMPLE
X.LP
X.PD .1v
X.RS
X.nf
X#
X# Sample configuration file for xinetd
X#
X
Xdefaults
X{
X.RS
X.IP log_type 20
X= FILE /var/log/servicelog
X.IP log_on_success
X= PID
X.IP log_on_failure 
X= HOST RECORD
X.IP only_from
X= 128.138.193.0 128.138.204.0 128.138.209.0 
X.IP only_from
X= 128.138.252.1 
X.IP instances
X= 10
X.IP disabled
X= rstatd
X.RE
X}
X
X#
X# Note 1: the protocol attribute is not required
X# Note 2: the instances attribute overrides the default
X#
Xservice login
X{
X.RS
X.IP socket_type 20
X= stream
X.IP protocol
X= tcp
X.IP wait
X= no
X.IP user
X= root
X.IP server
X= /usr/etc/in.rlogind
X.IP instances
X= UNLIMITED
X.RE
X}
X
X#
X# Note 1: the instances attribute overrides the default
X# Note 2: the log_on_success flags are augmented
X#
Xservice shell
X{
X.RS
X.IP socket_type 20
X= stream
X.IP wait
X= no
X.IP user
X= root
X.IP instances
X= UNLIMITED
X.IP server
X= /usr/etc/in.rshd
X.IP log_on_success
X+= HOST RECORD
X.RE
X}
X
Xservice ftp
X{
X.RS
X.IP socket_type 20
X= stream
X.IP wait
X= no
X.IP nice
X= 10
X.IP user
X= root
X.IP server
X= /usr/etc/in.ftpd
X.IP server_args
X= -l
X.IP instances
X= 4
X.IP log_on_success
X+= DURATION HOST USERID
X.IP access_times
X= 2:00-9:00 12:00-24:00
X.RE
X}
X
X#
X# This entry and the next one specify internal services. Since this
X# is the same service using a different socket type, the id attribute
X# is used to uniquely identify each entry
X#
Xservice echo
X{
X.RS
X.IP id 20
X= echo-stream
X.IP type
X= INTERNAL
X.IP socket_type
X= stream
X.IP user
X= root
X.IP wait
X= no
X.RE
X}
X
Xservice echo
X{
X.RS
X.IP id 20
X= echo-dgram
X.IP type
X= INTERNAL
X.IP socket_type
X= dgram
X.IP user
X= root
X.IP wait
X= no
X.RE
X}
X
Xservice servers
X{
X.RS
X.IP type 20
X= INTERNAL UNLISTED
X.IP protocol
X= tcp
X.IP port
X= 9099
X.IP socket_type
X= stream
X.IP wait
X= no
X.RE
X}
X
X#
X# Sample RPC service
X#
Xservice rstatd
X{
X.RS
X.IP type 20
X= RPC
X.IP socket_type
X= dgram
X.IP protocol
X= udp
X.IP server
X= /usr/etc/rpc.rstatd
X.IP wait
X= yes
X.IP user
X= root
X.IP rpc_version
X= 2-4
X.IP env
X= LD_LIBRARY_PATH=/etc/securelib
X.RE
X}
X
X#
X# Sample unlisted service
X#
Xservice unlisted
X{
X.RS
X.IP type 20
X= UNLISTED
X.IP socket_type
X= stream
X.IP protocol
X= tcp
X.IP wait
X= no
X.IP server
X= /home/user/some_server
X.IP port
X= 20020
X.RE
X}
X.RE
X.PD
X.\" *********************** SEE ALSO ****************************
X.SH "SEE ALSO"
X.I "xinetd(1L),"
X.LP
X.I "xinetd.log(5)"
X.LP
XPostel J.,
X.I "Echo Protocol",
XRFC 862,
XMay 1983
X.LP
XPostel J.,
X.I "Discard Protocol",
XRFC 863,
XMay 1983
X.LP
XPostel J.,
X.I "Character Generator Protocol",
XRFC 864,
XMay 1983
X.LP
XPostel J.,
X.I "Daytime Protocol",
XRFC 867,
XMay 1983
X.LP
XPostel J., Harrenstien K.,
X.I "Time Protocol",
XRFC 868,
XMay 1983
X.LP
XStJohns M.,
X.I " Identification Protocol",
XRFC 1413,
XFebruary 1993
X.\" *********************** BUGS ****************************
X.SH BUGS
X.LP
XSupplementary group ids are not supported.
X.LP
XIf the
X.SB INTERCEPT
Xflag is not used,
Xaccess control on the address of the remote host is not performed when
X\fIwait\fP is \fIyes\fP and \fIsocket_type\fP is \fIstream\fP.
X.LP
XIf the 
X.SB INTERCEPT
Xflag is not used,
Xaccess control on the address of the remote host for
Xservices where \fIwait\fP is \fIyes\fP and \fIsocket_type\fP is \fIdgram\fP
Xis performed only on the first packet. The server may then accept packets
Xfrom hosts not in the access control list. This can happen with 
X.SB RPC
Xservices.
X.LP
XThere is no way to put a
X.SM SPACE
Xin an environment variable.
X.LP
XWhen \fIwait\fP is \fIyes\fP and \fIsocket_type\fP is \fIstream\fP,
Xthe socket passed to the server can only accept connections.
X.LP
XThe
X.SB INTERCEPT
Xflag is not supported for internal services or multi-threaded services.
END_OF_FILE
if test 20302 -ne `wc -c <'xinetd/xinetd.conf.man'`; then
    echo shar: \"'xinetd/xinetd.conf.man'\" unpacked with wrong size!
fi
# end of 'xinetd/xinetd.conf.man'
fi
echo shar: End of archive 30 \(of 31\).
cp /dev/null ark30isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 31 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
