<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>

<!--
  This file is part of avahi.

  avahi 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.1 of the
  License, or (at your option) any later version.

  avahi 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 avahi; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
  USA.
-->

  <manpage name="avahi-publish-service" section="1" desc="Register an mDNS/DNS-SD service or host name or address mapping using the Avahi daemon">

	<synopsis>
      <cmd>avahi-publish -s [<arg>options</arg>] <arg>name</arg> <arg>service-type</arg> <arg>port</arg> [<arg>TXT data</arg> ...]</cmd>
      <cmd>avahi-publish-service [<arg>options</arg>] <arg>name</arg> <arg>service-type</arg> <arg>port</arg> [<arg>TXT data</arg> ...]</cmd>
      <cmd>avahi-publish -a [<arg>options</arg>] <arg>host name</arg> <arg>address</arg></cmd>
      <cmd>avahi-publish-address [<arg>options</arg>] <arg>host name</arg> <arg>address</arg></cmd>
	</synopsis>

    <description>
      <p>Register an mDNS/DNS-SD service or host name/address mapping using the Avahi daemon.</p>
	</description>

	<options>

      <p>When calling in service registration mode, specify a DNS-SD
      service name (e.g. "Lennart's Files"), a service type
      (e.g. _http._tcp) and an IP port number for the service,
      optionally followed by any number of TXT record strings on the
      command line. When calling in address/host name registration
      mode specify a fully qualified host name and an address (IPv4 or
      IPv6).</p>

	  <option>
        <p><opt>-s | --service</opt></p>
        <optdesc><p>Register a service. avahi-publish-service is equivalent to avahi-publish -s.</p></optdesc>
      </option>

	  <option>
        <p><opt>-a | --address</opt></p>
        <optdesc><p>Register an address/host name mapping. avahi-publish-address is equivalent to avahi-publish -a.</p></optdesc>
      </option>

      <option>
        <p><opt>-v | --verbose</opt></p>
        <optdesc><p>Enable verbose mode.</p></optdesc>
      </option>

      <option>
		<p><opt>-H | --host=</opt> <arg>HOSTNAME</arg></p>
		<optdesc><p>Specify a host name for this service, in case it
		doesn't reside on the local host. This host name needs to be
		fully qualified and resolvable using mDNS or unicast
		DNS.</p></optdesc>
	  </option>

	  <option>
		<p><opt>-d | --domain=</opt> <arg>DOMAIN</arg></p>
        <optdesc><p>Publish the service in the specified domain. If
        omitted the Avahi daemon will publish it in its default domain
        (usually .local).</p></optdesc>
	  </option>

      <option>
        <p><opt>--subtype=</opt> <arg>SUBTYPE</arg></p>
        <optdesc><p>Register the service with an additional subtype in
        addition to the main type. DNS-SD subtypes  have the form
        _anon._sub._ftp._tcp, where _anon is the identifier of the
        subtype and _ftp._tcp is the main type. You may pass this
        option multiple times to register the service with multiple
        subtypes.</p></optdesc>
      </option>

	  <option>
		<p><opt>-f | --no-fail</opt></p>
		<optdesc><p>Don't fail if the daemon is not found running. Instead, wait until it appears. If it disconnects, try to reconnect.</p></optdesc>
	  </option>

	  <option>
		<p><opt>-h | --help</opt></p>
		<optdesc><p>Show help</p></optdesc>
	  </option>

	  <option>
		<p><opt>-V | --version</opt></p>
		<optdesc><p>Show version information.</p></optdesc>
	  </option>

	</options>

	<section name="Authors">
	  <p>The Avahi Developers &lt;@PACKAGE_BUGREPORT@&gt;; Avahi is
	  available from <url href="@PACKAGE_URL@"/></p>
	</section>

	<section name="See also">
	  <p>
        <manref name="avahi-resolve" section="1"/>, <manref
        name="avahi-browse" section="1"/>, <manref
        name="avahi-daemon" section="8"/>
	  </p>
	</section>

	<section name="Comments">
	  <p>This man page was written using <manref name="xml2man" section="1"
		  href="http://masqmail.cx/xml2man/"/> by Oliver Kurth.</p>
	</section>

  </manpage>
