mod_dnssd @PACKAGE_VERSION@

Copyright 2006 Lennart Poettering <@PACKAGE_BUGREPORT@>

License

Copyright 2006 Lennart Poettering

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

News

Sat Jan 21 2006:

Version 0.2 released, changes include: handle graceful restarts properly, other smaller cleanups

Thu Jan 19 2006:

Version 0.1 released, initial realease

Overview

mod_dnssd is an Apache HTTPD module which adds Zeroconf support via DNS-SD using Avahi.

Status

Version @PACKAGE_VERSION@ is more or less stable and fulfills its purpose.

Documentation

For activating mod_dnssd just load it into the server and use the global directive DNSSDEnable to enable it:

DNSSDEnable on

That's it, nothing more is required! The module publishes all configured virtual hosts and the mod_userdir directories of all local users. For mod_userdir to work you need to load that module and configure it for the path ~/public_html/.

Advanced Features

Five other directives are available: the global directive DNSSDAutoRegisterUserDir can be used to disable automatic registration of mod_userdir directories. The global directive DNSSDAutoRegisterVHosts can be used to disable automatic registration of all local virtual hosts.

The two directives DNSSDServiceName and DNSSDServiceTypes which can be placed inside a <VirtualHost> or <Location> section can be used to define additional services for publishing or to finetune the service name or types of virtual hosts. If placed inside a <VirtualHost> you can change the service types and name of the attached service (if used with DNSSDAutoRegisterVHosts set to on) or to register a service for the virtual host (if used with DNSSDAutoRegisterVHosts disabled). DNSSDServiceTypes takes a list of at least one DNS-SD service type (defaults to _http._tcp). A good example when to pass more than one service type is a WebDAV server:

DNSSDServiceTypes _http._tcp _webdav._tcp

This will register the server both as HTTP and as WebDAV service. Please note that both services do have different types but share the same name! Other areas where this might become handy is when registering RSS formatted blogs or XMLRPC services.

DNSSDServiceName and DNSSDServiceTypes are especially useful inside a <Location> block. Using this notation you can register additional services in subdirectories of the server. A quick and incomplete example:

...
DNSSDEnable On
DNSSDAutoRegisterVHosts On
DNSSDAutoRegisterUserDir On

<VirtualHost *>
    DocumentRoot /var/www
    DNSSDServiceName "Our Little Home Web Server"

    <Location /doc>
        DNSSDServiceName "Documentation"
        ...
    </Location>

    <Location /squirrelmail>
        DNSSDServiceName "Webmail"
        ...
    </Location>

    <Location /webdav>
        DAV On
        DNSSDServiceName "Our WebDAV folder"
        DNSSDServiceTypes _webdav._tcp _http._tcp
        ...
    </Location>

    <Location /blog.rss>
        DNSSDServiceName "The Blog"
        DNSSDServiceTypes _rss._tcp
        ...
    </Location>

    ...
</VirtualHost>

...

This will register six services: Our Little Home Web Server, Documentation, Webmail and Our WebDAV folder as type _http._tcp, Our WebDAV folder a second time under the type _webdav._tcp and finally The Blog as type _rss._tcp.

The directive DNSSDServicePort can be used to tell mod_dnssd the right port number in complicated setups, where it fails to detect the correct one to use. It is seldomly used and you probably shouldn't bother.

You might find this blog article I wrote enlightening which contains more examples how to make use of mod_dnssd.

Requirements

mod_dnssd requires a current release of Apache 2.0 with apxs and a development installation of Avahi 0.6 or newer.

mod_dnssd has been developed and tested on Debian GNU/Linux "testing" from January 2006, it should work on most other Linux distributions and probably POSIX implementations since it uses GNU autoconf and Apache apxs for source code configuration.

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 mod_dnssd.

Acknowledgements

This work was inspired by Sander Temme's and Sebastien Estienne's mod_zeroconf module.

Download

The newest release is always available from @PACKAGE_URL@

The current release is @PACKAGE_VERSION@

Get mod_dnssd's development sources from the Subversion repository (viewcvs):

svn checkout svn://svn.0pointer.net/mod_dnssd/trunk mod_dnssd

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@>, January 2006
$Id$