From f983d9ab69dedcf3d707617f449f0b9497f592a1 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 6 Dec 2004 18:28:26 +0000 Subject: add documentation git-svn-id: file:///home/lennart/svn/public/nss-mdns/trunk@57 0ee8848e-81ea-0310-a63a-f631d1a40d77 --- doc/Makefile.am | 36 ++++++++++++ doc/README.html.in | 165 +++++++++++++++++++++++++++++++++++++++++++++++++++++ doc/style.css | 34 +++++++++++ 3 files changed, 235 insertions(+) create mode 100644 doc/Makefile.am create mode 100644 doc/README.html.in create mode 100644 doc/style.css (limited to 'doc') diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..752b2d6 --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,36 @@ +# $Id$ + +# This file is part of nss-mdns. +# +# nss-mdns is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# nss-mdns is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with nss-mdns; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +noinst_DATA = README.html README +EXTRA_DIST = $(noinst_DATA) style.css + +MAINTAINERCLEANFILES = README.html +CLEANFILES = + +if USE_LYNX +README: README.html + lynx --dump $^ | sed 's,file://localhost/.*/doc/README.html,README,' > $@ + +CLEANFILES += README +endif + +tidy: README.html + tidy -qe < README.html ; true + +.PHONY: tidy + diff --git a/doc/README.html.in b/doc/README.html.in new file mode 100644 index 0000000..532b508 --- /dev/null +++ b/doc/README.html.in @@ -0,0 +1,165 @@ + + + + + +nss-mdns @PACKAGE_VERSION@ + + + + +

nss-mdns @PACKAGE_VERSION@

+ +

Copyright 2004 Lennart Poettering <@PACKAGE_BUGREPORT@>

+ + + +

License

+ +

This program is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version.

+ +

This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details.

+ +

You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

+ +

News

+ +
Mon Dec 6 2004:

Version 0.1 released

+ +

Overview

+ +

nss-mdns is a plugin for the GNU Name Service +Switch (NSS) functionality of the GNU C Library (glibc) +providing host name resolution via Multicast DNS (aka +Zeroconf, aka Apple Rendezvous), effectively allowing +name resolution by common Unix/Linux programs in the ad-hoc mDNS domain .local.

+ +

nss-mdns provides client functionality only, which +means that you have to run a mDNS responder daemon seperately +from nss-mdns if you want to register the local host name via +mDNS (e.g. HOWL).

+ +

nss-mdns is very lightweight (18 KByte stripped binary .so compiled with +-DNDEBUG=1), has no dependencies besides the glibc and requires only minimal +configuration.

+ +

Status

+ +

It works!

+ +

While nss-mdns supports resolving IPv6 addresses it does +so via IPv4 multicasts only.

+ +

Documentation

+ +

After compiling and installing nss-mdns you'll find three +new NSS modules in /lib:

+

libnss_mdns.so.2 +resolves both IPv6 and IPv4 addresses, libnss_mdns4.so.2 only +IPv4 addresses and libnss_mdns6.so.2 only IPv6 addresses. Due +to the fact that most mDNS responders only register local IPv4 +addresses via mDNS, most people will want to use +libnss_mdns4.so.2 exclusively. Using +libnss_mdns.so.2 or libnss_mdns6.so.2 in such a +situation causes long timeouts when resolving hosts since most modern +Unix/Linux applications check for IPv6 addresses first, followed by a +lookup for IPv4.

+ +

To activate one of the NSS modules you have to edit +/etc/nsswitch.conf and add mdns4 +(resp. mdns, mdns6) to the line starting with "hosts:". On Debian this looks like this:

+ +
# /etc/nsswitch.conf
+
+passwd:         compat
+group:          compat
+shadow:         compat
+
+hosts:          files dns mdns4
+networks:       files
+
+protocols:      db files
+services:       db files
+ethers:         db files
+rpc:            db files
+
+netgroup:       nis
+ +

That's it. You should now be able to resolve hosts from the +.local domain with all your applications. For a quick check +use glibc's getent tool: + +

$ getent hosts foo.local
+192.168.50.4    foo.local
+ +

Replace foo whith a host name that has been registered with an mDNS responder.

+ +

Due to some traffic suppression algorithms in mDNS responders +repeated mDNS resolutions are slowed down. Consider installing glibc's name +service cache daemon nscd to work around this limitation.

+ +

Requirements

+ +

Currently, nss-mdns is tested on Linux only. A fairly modern glibc installation with development headers (2.0 or newer) is required. Not +suprisingly nss-mdns requires a kernel compiled with IPv4 +multicasting support enabled.

+ +

nss-mdns was developed and tested on Debian GNU/Linux +"testing" from December 2004, it should work on most other Linux +distributions (and maybe Unix versions) since it uses GNU autoconf and +GNU libtool for source code configuration and shared library +management. nss-mdns has been tested exclusively against the +HOWL mDNS responder daemon.

+ +

Installation

+ +

As this package is made with the GNU autotools you should run +./configure inside the distribution directory for configuring +the source tree. After that you should run make for +compilation and make install (as root) for installation of +nss-mdns.

+ +

Acknowledgements

+ +

Nothing here yet.

+ +

Download

+ +

The newest release is always available from @PACKAGE_URL@

+ +

The current release is @PACKAGE_VERSION@

+ +

Get nss-mdns's development sources from the Subversion repository (viewcvs):

+ +
svn checkout svn://seth.intheinter.net/nss-mdns/trunk nss-mdns
+ +

If you want to be notified whenever I release a new version of this software use the subscription feature of Freshmeat.

+ +
+
Lennart Poettering <@PACKAGE_BUGREPORT@>, December 2004
+
$Id$
+ + + diff --git a/doc/style.css b/doc/style.css new file mode 100644 index 0000000..bfd04e4 --- /dev/null +++ b/doc/style.css @@ -0,0 +1,34 @@ +/* $Id$ */ + +/*** + * This file is part of nss-mdns. + * + * nss-mdns is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * nss-mdns is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with nss-mdns; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + ***/ + +body { color: black; background-color: white; margin: 0.5cm; } +a:link, a:visited { color: #900000; } +p { margin-left: 0.5cm; margin-right: 0.5cm; } +div.news-date { margin-left: 0.5cm; font-size: 80%; color: #4f0000; } +p.news-text { margin-left: 1cm; } +h1 { color: #00009F; } +h2 { color: #00009F; } +h3 { color: #00004F; margin-left: 0.5cm; } +ul { margin-left: .5cm; } +ol { margin-left: .5cm; } +pre { margin-left: .5cm; background-color: #f0f0f0; padding: 0.4cm;} +.grey { color: #afafaf; } +table { margin-left: 1cm; border:1px solid lightgrey; padding: 0.2cm; } +td { padding-left:10px; padding-right:10px; } -- cgit