.\"	$Id: libnss_mdns.8,v 1.1 2004/06/29 03:34:28 cheshire Exp $
.\"
.\" See section LICENSE for license information.
.\"
.Dd June 15, 2004
.Dt LIBNSS_MDNS 8
.Os
.Sh NAME
.Nm libnss_mdns
.Nd name service switch module to support Apple mdnsd
.Sh DESCRIPTION
The
.Nm
shared library implements a name service switch module to interface with Apple
mdnsd.  It is enabled by adding
.Ql mdns
to the
.Ql hosts:
line of
.Xr nsswitch.conf 5 .
This will cause calls to
.Xr gethostbyname 3 ,
.Xr gethostbyname2 3
and
.Xr gethostbyaddr 3
to include mdnsd in their lookup path.
.Pp
The
.Nm
shared library should be installed in the system library paths, typically in
.Pa /lib .
.Sh FILES
.Bl -tag -width Pa -compact
.It Pa /etc/nss_mdns.conf
configuration options
.El
.Sh EXAMPLES
In
.Pa /etc/nsswitch.conf :
.Dl hosts: files mdns dns
.Pp
This will cause the name service switch to lookup hostnames first using
.Pa /etc/hosts ,
then mdns and finally via DNS.
.Sh DIAGNOSTICS
.Nm
dumps status information via
.Xr syslog 3 .
.Sh SEE ALSO
.\" Cross-references should be ordered by section (low to high), then in
.\"     alphabetical order.
.Xr nsswitch.conf 5 ,
.Xr nss_mdns.conf 5 ,
.Xr ldconfig 8
.Pp
.Li info libc Qq Name Service Switch
.\" .Sh STANDARDS
.Sh HISTORY
.Nm
was originally written for
.An NICTA Bq http://www.nicta.com.au/ .
.Sh AUTHORS
.An "Andrew White" Bq Andrew.White@nicta.com.au
.Sh BUGS
Return values for obscure error conditions may not match those expected by nsswitch code.
.Pp
Version 0.62 of mdnsd does not support an option to force link-local multicast lookups.
.Ql PTR
reverse lookups for non-link-local domains will not function correctly.
.Sh LICENSE
This software is licensed under the NICTA Public Source License version 1.0
.Ss NICTA Public Software Licence
Version 1.0
.Pp
Copyright 2004 National ICT Australia Ltd
.Pp
All rights reserved.
.Pp
By this licence, National ICT Australia Ltd (NICTA) grants permission,
free of charge, to any person who obtains a copy of this software
and any associated documentation files ("the Software") to use and
deal with the Software in source code and binary forms without
restriction, with or without modification, and to permit persons
to whom the Software is furnished to do so, provided that the
following conditions are met:
.Bl -bullet
.It
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimers.
.It
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimers in
the documentation and/or other materials provided with the
distribution.
.It
The name of NICTA may not be used to endorse or promote products
derived from this Software without specific prior written permission.
.El
.Pp
EXCEPT AS EXPRESSLY STATED IN THIS LICENCE AND TO THE FULL EXTENT
PERMITTED BY APPLICABLE LAW, THE SOFTWARE IS PROVIDED "AS-IS" AND
NICTA MAKES NO REPRESENTATIONS, WARRANTIES OR CONDITIONS OF ANY
KIND, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY
REPRESENTATIONS, WARRANTIES OR CONDITIONS REGARDING THE CONTENTS
OR ACCURACY OF THE SOFTWARE, OR OF TITLE, MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, THE ABSENCE OF LATENT
OR OTHER DEFECTS, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR
NOT DISCOVERABLE.
.Pp
TO THE FULL EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL
NICTA BE LIABLE ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) FOR ANY LOSS OR DAMAGE WHATSOEVER, INCLUDING (WITHOUT
LIMITATION) LOSS OF PRODUCTION OR OPERATION TIME, LOSS, DAMAGE OR
CORRUPTION OF DATA OR RECORDS; OR LOSS OF ANTICIPATED SAVINGS,
OPPORTUNITY, REVENUE, PROFIT OR GOODWILL, OR OTHER ECONOMIC LOSS;
OR ANY SPECIAL, INCIDENTAL, INDIRECT, CONSEQUENTIAL, PUNITIVE OR
EXEMPLARY DAMAGES ARISING OUT OF OR IN CONNECTION WITH THIS LICENCE,
THE SOFTWARE OR THE USE OF THE SOFTWARE, EVEN IF NICTA HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
.Pp
If applicable legislation implies warranties or conditions, or
imposes obligations or liability on NICTA in respect of the Software
that cannot be wholly or partly excluded, restricted or modified,
NICTA's liability is limited, to the full extent permitted by the
applicable legislation, at its option, to:
.Pp
.Bl -tag -width "a." -compact
.It a.
in the case of goods, any one or more of the following:
.Bl -tag -width "iii." -compact
.It i.
the replacement of the goods or the supply of equivalent goods;
.It ii.
the repair of the goods;
.It iii.
the payment of the cost of replacing the goods or of acquiring
equivalent goods;
.It iv.
the payment of the cost of having the goods repaired; or
.El
.It b.
in the case of services:
.Bl -tag -width "iii." -compact
.It i.
the supplying of the services again; or 
.It ii.
the payment of the cost of having the services supplied again.
.El
.El
