/build-aux
/ddns
/ddns.conf
+/man/*.[0-9]
+/man/*.html
/missing
/src/ddns/__version__.py
/tmp
CLEANFILES =
DISTCLEANFILES =
EXTRA_DIST =
+noinst_DATA =
@INTLTOOL_POLICY_RULE@
# ------------------------------------------------------------------------------
+AM_V_XSLT = $(AM_V_XSLT_$(V))
+AM_V_XSLT_ = $(AM_V_XSLT_$(AM_DEFAULT_VERBOSITY))
+AM_V_XSLT_0 = @echo " XSLT " $@;
+
+# ------------------------------------------------------------------------------
+
dist_doc_DATA = \
COPYING
# ------------------------------------------------------------------------------
+if ENABLE_MANPAGES
+MANPAGES = \
+ man/ddns.1 \
+ man/ddns.conf.5
+
+MANPAGES_XML = $(patsubst %.1,%.xml,$(patsubst %.5,%.xml,$(MANPAGES)))
+MANPAGES_HTML = $(patsubst %.xml,%.html,$(MANPAGES_XML))
+
+man: $(MANPAGES) $(MANPAGES_HTML)
+
+man_MANS = \
+ $(MANPAGES)
+
+noinst_DATA += \
+ $(MANPAGES_HTML)
+
+CLEANFILES += \
+ $(man_MANS) \
+ $(MANPAGES_HTML)
+
+EXTRA_DIST += \
+ $(MANPAGES_XML) \
+ man/custom-html.xsl
+
+XSLTPROC_FLAGS = \
+ --nonet \
+ --stringparam man.output.quietly 1 \
+ --stringparam funcsynopsis.style ansi \
+ --stringparam man.th.extra1.suppress 1 \
+ --stringparam man.authors.section.enabled 1 \
+ --stringparam man.copyright.section.enabled 1
+
+XSLTPROC_COMMAND_MAN = \
+ $(AM_V_XSLT)$(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) \
+ http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+
+XSLTPROC_COMMAND_HTML = \
+ $(AM_V_XSLT)$(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(srcdir)/man/custom-html.xsl $<
+
+man/%.1: man/%.xml
+ $(XSLTPROC_COMMAND_MAN)
+
+man/%.5: man/%.xml
+ $(XSLTPROC_COMMAND_MAN)
+
+man/%.html: man/%.xml man/custom-html.xsl
+ $(XSLTPROC_COMMAND_HTML)
+
+endif
+
+# ------------------------------------------------------------------------------
+
substitutions = \
'|PACKAGE_NAME=$(PACKAGE_NAME)|' \
'|PACKAGE_VERSION=$(PACKAGE_VERSION)|' \
AC_PROG_MKDIR_P
AC_PROG_SED
+AC_PATH_PROG([XSLTPROC], [xsltproc])
+
# Python
AM_PATH_PYTHON([2.7])
save_LIBS="$LIBS"
+# ------------------------------------------------------------------------------
+have_manpages=no
+AC_ARG_ENABLE(manpages, AS_HELP_STRING([--disable-man-pages],
+ [do not install man pages]))
+AS_IF([test "x$enable_manpages" != xno], [have_manpages=yes])
+AM_CONDITIONAL(ENABLE_MANPAGES, [test "x$have_manpages" = "xyes"])
+
+# ------------------------------------------------------------------------------
+
AC_CONFIG_FILES([
Makefile
po/Makefile.in
prefix : ${prefix}
sysconfdir : ${sysconfdir}
+
+ Generate man-pages : ${have_manpages}
])
--- /dev/null
+<?xml version='1.0'?>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"/>
+
+<!-- translate man page references to links to html pages -->
+<xsl:template match="citerefentry">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:value-of select="refentrytitle"/><xsl:text>.html</xsl:text>
+ </xsl:attribute>
+ <xsl:call-template name="inline.charseq"/>
+ </a>
+</xsl:template>
+
+<!-- add Index link at top of page -->
+<xsl:template name="user.header.content">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:text>index.html</xsl:text>
+ </xsl:attribute>
+ <xsl:text>Index</xsl:text>
+ </a>
+ <hr/>
+</xsl:template>
+
+<!-- Switch things to UTF-8, ISO-8859-1 is soo yesteryear -->
+<xsl:output method="html" encoding="UTF-8" indent="no"/>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS/DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+<refentry id="ddns.conf">
+ <refentryinfo>
+ <title>ddns.conf</title>
+ <productname>ddns</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Stefan</firstname>
+ <surname>Schantl</surname>
+ <email>stefan.schantl@ipfire.org</email>
+ </author>
+
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Michael</firstname>
+ <surname>Tremer</surname>
+ <email>michael.tremer@ipfire.org</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>ddns.conf</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>ddns.conf</refname>
+ <refpurpose>Configuration file for the DDNS update client</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>
+ The <filename>ddns.conf</filename> file is the main configuration file of the
+ <command>ddns</command> update client.
+ This file specifies runtime configuration parameters for the programm and
+ contains configurations for dynamic host entries that are managed by
+ <command>ddns</command>.
+ </para>
+
+ <para>
+ The syntax of the configuration file is based on the INI configuration
+ file format. Lines starting with hash (#) or semi-colon (;)
+ are ignored.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <para>
+ The following options can be configured:
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>proxy = http://IP:PORT</option>
+ </term>
+
+ <listitem>
+ <para>
+ This option will configure the HTTP proxy server that is used to
+ communicate with the providers HTTP APIs.
+ </para>
+
+ <para>
+ The proxy only can be contacted by using the HTTP protocol. The
+ server has to be specified by using its IP address and port.
+ For example: <option>proxy = http://192.168.180.1:800</option>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>guess_external_ip = [true|<emphasis>false</emphasis>]</option>
+ </term>
+
+ <listitem>
+ <para>
+ Determine the public IP addresses by using external servers.
+ </para>
+
+ <para>
+ By default, this option is disabled and automatically enabled
+ if the client has only IP addresses defined in RFC1918 or
+ other reserved address space.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Provider Configuration</title>
+
+ <para>
+ The DDNS client supports the configuration of an unlimited amount of entries for different providers.
+ Each entry has to be configured as an own section named by the FQDN (Fully Qualified Domain Name)
+ inside squared brackets.
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <command>[hostname.someprovider.com]</command>
+ </term>
+
+ <listitem>
+ <para>
+ The FQDN of the dynamic host. This name will be resolved
+ by <command>ddns</command> and therfore must not be a handle or something
+ other than a FQDN.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <command>handle = someprovider.com</command>
+ </term>
+
+ <listitem>
+ <para>
+ The provider which is responsible for this host.
+ </para>
+
+ <para>
+ A list of all supported providers can be looked up by running
+ <command>ddns list-providers</command>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <command>username = user</command>
+ </term>
+
+ <listitem>
+ <para>
+ The username to authenticate against the provider's update service.
+ </para>
+
+ <para>
+ In most cases this will be the same username which can be used to login on
+ your provider's web page.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <command>password = password</command>
+ </term>
+
+ <listitem>
+ <para>
+ The choosen password for the specified username.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <command>token = token</command>
+ </term>
+
+ <listitem>
+ <para>
+ An authentication token.
+ </para>
+
+ <para>
+ If your dynamic DNS provider supports token-based authentication,
+ this method should be prefered.
+ You do not need to specify the username if token-based authentication
+ is used.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <example>
+ <title>For providers which use username and password for client authentication</title>
+
+ <simplelist>
+ <member>[somehost.provider.com]</member>
+ <member>handle = provider.com</member>
+ <member>username = username</member>
+ <member>password = password</member>
+ </simplelist>
+ </example>
+
+ <example>
+ <title>For providers which supports token-based authentication</title>
+
+ <simplelist>
+ <member>[anotherhost.provider.com]</member>
+ <member>handle = provider.com</member>
+ <member>token = token</member>
+ </simplelist>
+ </example>
+ </refsect1>
+
+ <refsect1>
+ <title>Bugs</title>
+
+ <para>
+ Please report all bugs to the official bugtracker at
+ http://bugs.ipfire.org/.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para>
+ <citerefentry>
+ <refentrytitle>ddns</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS/DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+<refentry id="ddns">
+ <refentryinfo>
+ <title>ddns</title>
+ <productname>ddns</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Stefan</firstname>
+ <surname>Schantl</surname>
+ <email>stefan.schantl@ipfire.org</email>
+ </author>
+
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Michael</firstname>
+ <surname>Tremer</surname>
+ <email>michael.tremer@ipfire.org</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>ddns</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>ddns</refname>
+ <refpurpose>Dynamic DNS update client</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>ddns</command>
+ <arg choice="opt" rep="repeat">OPTIONS</arg>
+ <arg choice="plain">COMMAND</arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>
+ <command>ddns</command> is a simple, extensible, cross-distribution,
+ cross-platform dynamic DNS updater written in Python.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <para>
+ The following options are understood:
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>-c CONFIG</option>
+ </term>
+ <term>
+ <option>--config CONFIG</option>
+ </term>
+
+ <listitem>
+ <para>
+ Load the specified configuration file.
+ (Default: <filename>/etc/ddns/ddns.conf</filename>)
+ </para>
+
+ <para>
+ For further details of the config file layout, please consult the
+ <citerefentry>
+ <refentrytitle>ddns.conf</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry>
+ manual page.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-d</option>
+ </term>
+ <term>
+ <option>--debug</option>
+ </term>
+
+ <listitem>
+ <para>
+ Enables the debugging output.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>-h</option>
+ </term>
+ <term>
+ <option>--help</option>
+ </term>
+
+ <listitem>
+ <para>
+ Shows the help message provided by the program and exit.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Commands</title>
+
+ <para>
+ The following commands are understood:
+ </para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term>
+ <command>update <option>[--force]</option> <replaceable>HOSTNAME</replaceable></command>
+ </term>
+
+ <listitem>
+ <para>
+ Perform an update for a single host, specified by the
+ given hostname.
+ </para>
+
+ <para>
+ When calling an update, the DDNS client automatically checks
+ if this update is required by testing whether the hostname points
+ to the current public IP address.
+ Therefore it is not guaranteed than an update is performed.
+ </para>
+
+ <para>
+ The <option>--force</option> switch can be used to skip that
+ check and perform an update. Please note that some providers
+ may block your account if unnecessary updates are repeatedly
+ performed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <command>update-all <option>[--force]</option></command>
+ </term>
+
+ <listitem>
+ <para>
+ Update all configured dynamic DNS hosts when an update is necessary.
+ </para>
+
+ <para>
+ The <option>--force</option> switch has the same effect as
+ with the <command>update</command> command.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <command>guess-ip-addresses</command>
+ </term>
+
+ <listitem>
+ <para>
+ Guesses the public IPv6 and IPv4 addresses with help of an
+ external server and prints them on the conole.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <command>list-providers</command>
+ </term>
+
+ <listitem>
+ <para>
+ This command will print out a list of all
+ supported dynamic DNS providers.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Exit Codes</title>
+
+ <para>
+ <command>ddns</command> will normally exit with code 0.
+ If there has been a problem and the requested action could not be done,
+ the exit code is unequal to zero.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Bugs</title>
+
+ <para>
+ Please report all bugs to the official bugtracker at
+ http://bugs.ipfire.org/.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para>
+ <citerefentry>
+ <refentrytitle>ddns.conf</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+</refentry>