summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Kelley <simon@thekelleys.org.uk>2012-01-05 21:33:27 +0000
committerSimon Kelley <simon@thekelleys.org.uk>2012-01-05 21:33:27 +0000
commitc72daea86807d391ae800be7846e86708588def6 (patch)
tree0ddaeffd42140667e1b7917f10f96e37d47da1a9
parent74c95c25425154af858de72773eb643fd5712e72 (diff)
downloaddnsmasq-c72daea86807d391ae800be7846e86708588def6.tar.gz
Accumulated 2.60 changes going into git
-rw-r--r--.new1
-rw-r--r--CHANGELOG57
-rw-r--r--Makefile12
-rwxr-xr-xbld/pkg-wrapper2
-rw-r--r--debian/changelog1010
-rw-r--r--debian/conffiles6
-rw-r--r--debian/control41
-rw-r--r--debian/copyright21
-rw-r--r--debian/dbus.conf18
-rw-r--r--debian/default33
-rw-r--r--debian/init266
-rw-r--r--debian/insserv1
-rw-r--r--debian/postinst49
-rw-r--r--debian/postrm12
-rw-r--r--debian/prerm14
-rw-r--r--debian/readme70
-rw-r--r--debian/readme.dnsmasq.d7
-rw-r--r--debian/resolvconf70
-rw-r--r--debian/resolvconf-package13
-rwxr-xr-xdebian/rules186
-rw-r--r--debian/source/format1
-rw-r--r--debian/systemd.service31
-rw-r--r--man/dnsmasq.814
-rw-r--r--po/de.po686
-rw-r--r--po/es.po688
-rw-r--r--po/fi.po678
-rw-r--r--po/fr.po691
-rw-r--r--po/id.po691
-rw-r--r--po/it.po678
-rw-r--r--po/no.po683
-rw-r--r--po/pl.po686
-rw-r--r--po/pt_BR.po678
-rw-r--r--po/ro.po683
-rw-r--r--src/NOTES2
-rw-r--r--src/bpf.c3
-rw-r--r--src/cache.c25
-rw-r--r--src/config.h267
-rw-r--r--src/dhcp.c210
-rw-r--r--src/dhcp6.c220
-rw-r--r--src/dhcp6_protocol.h55
-rw-r--r--src/dhcp_protocol.h5
-rw-r--r--src/dns_protocol.h3
-rw-r--r--src/dnsmasq.c160
-rw-r--r--src/dnsmasq.h62
-rw-r--r--src/forward.c18
-rw-r--r--src/helper.c291
-rw-r--r--src/lease.c202
-rw-r--r--src/log.c7
-rw-r--r--src/netlink.c44
-rw-r--r--src/network.c108
-rw-r--r--src/option.c23
-rw-r--r--src/rfc2131.c11
-rw-r--r--src/rfc3315.c298
-rw-r--r--src/tftp.c26
-rw-r--r--src/util.c21
55 files changed, 7103 insertions, 3735 deletions
diff --git a/.new b/.new
deleted file mode 100644
index 2089e51..0000000
--- a/.new
+++ /dev/null
@@ -1 +0,0 @@
-shlibs:Depends=libc6 (>= 2.1)
diff --git a/CHANGELOG b/CHANGELOG
index 872dc60..4545fb7 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,18 +1,47 @@
+version 2.60
+ Fix compilation problem in Mac OS X Lion. Thanks to Olaf
+ Flebbe for the patch.
+
+ Fix DHCP when using --listen-address with an IP address
+ which is not the primary address of an interface.
+
+ Add --dhcp-client-update option.
+
+ Add Lua integration. Dnsmasq can now execute a DHCP
+ lease-change script written in Lua. This needs to be
+ enabled at compile time by setting HAVE_LUASCRIPT in
+ src/config.h or running "make COPTS=-DHAVE_LUASCRIPT"
+ Thanks to Jan-Piet Mens for the idea and proof-of-concept
+ implementation.
+
+ Tidied src/config.h to distinguish between
+ platform-dependent compile-time options which are selected
+ automatically, and builder-selectable compile time
+ options. Document the latter better, and describe how to
+ set them from the make command line.
+
+ Tidied up IPPROTO_IP/SOL_IP (and IPv6 equivalent)
+ confusion. IPPROTO_IP works everywhere now.
+
+ Set TOS on DHCP sockets, this improves things on busy
+ wireless networks. Thanks to Dave Taht for the patch.
+
+
version 2.59
- Fix regression in 2.58 which caused failure to start up
- with some combinations of dnsmasq config and IPv6 kernel
- network config. Thanks to Brielle Bruns for the bug
- report.
-
- Improve dnsmasq's behaviour when network interfaces are
- still doing duplicate address detection (DAD). Previously,
- dnsmasq would wait up to 20 seconds at start-up for the
- DAD state to terminate. This is broken for bridge
- interfaces on recent Linux kernels, which don't start DAD
- until the bridge comes up, and so can take arbitrary
- time. The new behaviour lets dnsmasq poll for an arbitrary
- time whilst providing service on other interfaces. Thanks
- to Stephen Hemminger for pointing out the problem.
+ Fix regression in 2.58 which caused failure to start up
+ with some combinations of dnsmasq config and IPv6 kernel
+ network config. Thanks to Brielle Bruns for the bug
+ report.
+
+ Improve dnsmasq's behaviour when network interfaces are
+ still doing duplicate address detection (DAD). Previously,
+ dnsmasq would wait up to 20 seconds at start-up for the
+ DAD state to terminate. This is broken for bridge
+ interfaces on recent Linux kernels, which don't start DAD
+ until the bridge comes up, and so can take arbitrary
+ time. The new behaviour lets dnsmasq poll for an arbitrary
+ time whilst providing service on other interfaces. Thanks
+ to Stephen Hemminger for pointing out the problem.
version 2.58
diff --git a/Makefile b/Makefile
index 4aa93be..4015b58 100644
--- a/Makefile
+++ b/Makefile
@@ -38,16 +38,18 @@ IDN_CFLAGS= `echo $(COPTS) | ../bld/pkg-wrapper HAVE_IDN $(PKG_CONFIG) --cflags
IDN_LIBS= `echo $(COPTS) | ../bld/pkg-wrapper HAVE_IDN $(PKG_CONFIG) --libs libidn`
CT_CFLAGS= `echo $(COPTS) | ../bld/pkg-wrapper HAVE_CONNTRACK $(PKG_CONFIG) --cflags libnetfilter_conntrack`
CT_LIBS= `echo $(COPTS) | ../bld/pkg-wrapper HAVE_CONNTRACK $(PKG_CONFIG) --libs libnetfilter_conntrack`
+LUA_CFLAGS=`echo $(COPTS) | ../bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --cflags lua5.1`
+LUA_LIBS= `echo $(COPTS) | ../bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --libs lua5.1`
SUNOS_LIBS= `if uname | grep SunOS 2>&1 >/dev/null; then echo -lsocket -lnsl -lposix4; fi`
OBJS = cache.o rfc1035.o util.o option.o forward.o network.o \
dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o \
- helper.o tftp.o log.o conntrack.o
+ helper.o tftp.o log.o conntrack.o dhcp6.o rfc3315.o
all :
@cd $(SRC) && $(MAKE) \
- BUILD_CFLAGS="$(DBUS_CFLAGS) $(IDN_CFLAGS) $(CT_CFLAGS)" \
- BUILD_LIBS="$(DBUS_LIBS) $(IDN_LIBS) $(CT_LIBS) $(SUNOS_LIBS)" \
+ BUILD_CFLAGS="$(DBUS_CFLAGS) $(IDN_CFLAGS) $(CT_CFLAGS) $(LUA_CFLAGS)" \
+ BUILD_LIBS="$(DBUS_LIBS) $(IDN_LIBS) $(CT_LIBS) $(LUA_LIBS) $(SUNOS_LIBS)" \
-f ../Makefile dnsmasq
clean :
@@ -64,8 +66,8 @@ install-common :
all-i18n :
@cd $(SRC) && $(MAKE) \
I18N=-DLOCALEDIR='\"$(LOCALEDIR)\"' \
- BUILD_CFLAGS="$(DBUS_CFLAGS) $(CT_CFLAGS) `$(PKG_CONFIG) --cflags libidn`" \
- BUILD_LIBS="$(DBUS_LIBS) $(CT_LIBS) $(SUNOS_LIBS) `$(PKG_CONFIG) --libs libidn`" \
+ BUILD_CFLAGS="$(DBUS_CFLAGS) $(CT_CFLAGS) $(LUA_CFLAGS) `$(PKG_CONFIG) --cflags libidn`" \
+ BUILD_LIBS="$(DBUS_LIBS) $(CT_LIBS) $(LUA_LIBS) $(SUNOS_LIBS) `$(PKG_CONFIG) --libs libidn`" \
-f ../Makefile dnsmasq
@cd $(PO); for f in *.po; do \
cd ../$(SRC) && $(MAKE) \
diff --git a/bld/pkg-wrapper b/bld/pkg-wrapper
index 4f3b76b..c32034e 100755
--- a/bld/pkg-wrapper
+++ b/bld/pkg-wrapper
@@ -3,7 +3,7 @@
search=$1
shift
-if grep "^\#.*define.*$search" config.h 2>&1 >/dev/null || \
+if grep "^\#[[:space:]]*define[[:space:]]*$search" config.h 2>&1 >/dev/null || \
grep $search 2>&1 >/dev/null ; then
exec $*
fi
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..899dd22
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,1010 @@
+dnsmasq (2.60-1) unstable; urgency=low
+
+ * New upstream.
+ * Bump standards-version to 3.9.2
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thu, 1 Dec 2011 15:49:33 +0000
+
+dnsmasq (2.59-4) unstable; urgency=low
+
+ * Supply /etc/insserv.conf.d/dnsmasq (closes: #650540)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thu, 1 Dec 2011 11:35:13 +0000
+
+dnsmasq (2.59-3) unstable; urgency=low
+
+ * Stop daemon at runlevels 0, 1 and 6. (closes: #647726)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 26 Nov 2011 15:28:33 +0000
+
+dnsmasq (2.59-2) unstable; urgency=low
+
+ * Fix reported version number.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Wed, 19 Oct 2011 09:25:53 +0000
+
+dnsmasq (2.59-1) unstable; urgency=low
+
+ * New upstream.
+ * Fix IPv6 bind problem (closes: #644345)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 8 Oct 2011 16:34:13 +0000
+
+dnsmasq (2.58-3) unstable; urgency=low
+
+ * Fix resolvconf script location. (closes: #641717)
+ * Update systemd service file. (closes: #640095)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thu, 15 Sep 2011 16:33:23 +0000
+
+dnsmasq (2.58-2) unstable; urgency=low
+
+ * Fix resolvconf script. (closes: #639963)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thu, 1 Sep 2011 10:05:23 +0000
+
+dnsmasq (2.58-1) unstable; urgency=low
+
+ * New upstream.
+ * Add noconntrack DEB_BUILD_OPTIONS flag.
+ * Improve error message when tag:xxx appears
+ in --dhcp-host (closes: #627986)
+ * Add /usr/lib/resolvconf/packaging-event.d/dnsmasq (closes: #628003)
+ * Update resolvconf hook script to sleep only
+ when necessary. (closes: #627789)
+ * Tweak behaviour of --domain-needed to avoid problems with recursive
+ nameservers _downstream_ of dnsmasq. (closes: #630637)
+ * Allow processes running as uid dnsmasq to send messages on the DBus,
+ so that dnsmasq can return errors. (closes: #635017)
+ * Add /lib/systemd/system/dnsmasq.service (closes: #635753)
+ * New binary package, dnsmasq-utils, containing dhcp_release and
+ dhcp_lease_time from contrib/wrt. Note that these are Linux-specific
+ so this package is Architecture: linux-any (closes: #638136)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Mon, 22 Aug 2011 14:57:03 +0000
+
+dnsmasq (2.57-1) unstable; urgency=low
+
+ * New upstream.
+ * Fix typos in example config file. (closes: #606615)
+ * Bump standards-version to 3.9.1
+ * Add noidn DEB_BUILD_OPTIONS flag.
+ * Don't complain about extra command line arguments if
+ they are empty, as this breaks libvirt. (closes: #613915)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 18 Feb 2011 09:54:13 +0000
+
+dnsmasq (2.56-1) unstable; urgency=low
+
+ * New upstream.
+ * Die if non-option args present on the command-line. (closes: #589885)
+ * Tighten up use of IGNORE_RESOLVCONF in initscript. (closes: #575345)
+ * Update URL of ISC's explanation of dhcp-authoritative in the example
+ configuration file. (closes: #604870)
+ * Cosmetic changes to dnsmasq.conf.example. (closes: #598790)
+ * More dnsmasq.conf.example fixes. (closes: #606615)
+ * Add other resolv.conf locations to FILES section of the manual
+ page. (closes: #603505)
+ * Clarify configuration for static IP addresses in the absence of
+ resolvconf in the Debian readme file. (closes: #604035)
+ * Fix handling of obsolete DNSMASQ_INTERFACE and DNSMASQ_EXCEPT
+ variables in /etc/default/dnsmasq. (LP: #691329)
+ * Provide debian/source/format.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 17 Dec 2010 13:17:33 +0000
+
+dnsmasq (2.55-2) unstable; urgency=high
+
+ * Fix crash on double free. (closes: #597205)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 19 Sep 2010 21:45:33 +0000
+
+dnsmasq (2.55-1) unstable; urgency=low
+
+ * New upstream.
+ * Fix crash when /etc/ethers in use. (closes: #584754)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 6 Jun 2010 20:33:13 +0000
+
+dnsmasq (2.53-1) unstable; urgency=low
+
+ * New upstream.
+ * Fix FTBFS on kFreeBSD. (closes: #566334)
+ * Teach initscript to check the config file syntax before
+ restarting dnsmasq. An error will leave the old dnsmasq still
+ running, rather than killing the old daemon and then failing to start
+ a new one.
+ * Tweak DHCP behaviour when a physical interface has two addresses on
+ the same subnet. (closes: #581064)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thu, 20 May 2010 11:41:23 +0000
+
+dnsmasq (2.52-1) unstable; urgency=low
+
+ * New upstream.
+ * Be more conservative with "A for A" processing. (closes: #553337)
+ * Add README file in /etc/dnsmasq.d to explain what's going on.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thu, 14 Jan 2010 09:53:13 +0000
+
+dnsmasq (2.51-1) unstable; urgency=low
+
+ * New upstream.
+ * Bump standards-version to 3.8.2 (no changes needed).
+ * Ignore files named *.dpkg-old, *.dpkg-new and *.dpkg-dist
+ in /etc/dnsmasq.d
+ * Provide a facility in /etc/default/dnsmasq to disable dnsmasq's
+ interaction with the resolvconf package. This is needed because
+ setting "resolv-file" in /etc/dnsmasq.conf won't override a
+ file given on the command line from resolvconf. (closes: #528762)
+ * Check for duplicate names/addresses in /etc/ethers. (closes: #523787)
+ * Set the system locale in the environment before invoking dnsmasq,
+ so that translated messages work, and IDN uses the correct charset.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 4 Oct 2009 14:01:14 +0000
+
+
+dnsmasq (2.50-1) unstable; urgency=high
+
+ * New upstream, fixes remote vulns in TFTP server.
+ Bugtraq id: 36120,36121 CVE: 2009-2957,2009-2958
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 21 Aug 2009 10:25:13 +0000
+
+
+dnsmasq (2.49-1) unstable; urgency=low
+
+ * New upstream.
+ * Log TFTP "file not found" errors. (closes: #532201)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Mon, 8 Jun 2009 22:03:23 +0000
+
+dnsmasq (2.48-2) unstable; urgency=low
+
+ * Change dnsmasq -> dnsmasq-base dependency to >= to allow binNMU,
+ fixes Lintian error.
+ * Bump standards-version to 3.8.1
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 5 Jun 2009 10:58:33 +0000
+
+dnsmasq (2.48-1) unstable; urgency=low
+
+ * New upstream.
+ * Detect and ignore duplicate configuration files. (closes: #516234)
+ * Add 2 second sleep between stop and start during initscript restart.
+ * Make dependency on dnsmasq-base in dnsmasq package versioned, so that
+ installing the latest dnsmasq will install the latest dnsmasq-base
+ too. (closes: #523955)
+ * Add nodhcp DEB_BUILD_OPTIONS option.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 29 May 2009 10:20:23 +0000
+
+dnsmasq (2.47-3) unstable; urgency=low
+
+ * Fix bashism in init script. (closes: #514397)
+ * Tweak logging in init script.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 7 Feb 2009 19:25:23 +0000
+
+dnsmasq (2.47-2) unstable; urgency=low
+
+ * Check that /etc/init.d/dnsmasq is executable in postinst in case
+ the daemon has been disabled that way. (closes: #514314)
+ * Ensure that /var/run/dnsmasq exists and has the right permissions
+ before running dnsmasq. On some systems /var/run is cleared over
+ reboot. (closes: #514317)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 6 Feb 2009 09:38:21 +0000
+
+dnsmasq (2.47-1) unstable; urgency=low
+
+ * New upstream.
+ * Handle the "ENABLED" flag in the init script a bit more
+ intelligently. The "stop" and "status" functions continue
+ to work even when disabled, but a failed "stop" becomes
+ silent and returns zero exit code.
+ * Don't explicitly kill dnsmasq at system shutdown, rely on the
+ sendsigs script instead which is quicker. (closes: #506734)
+ * Store the PID-file in /var/run/dnsmasq. This directory is owned by
+ user "dnsmasq", so that dnsmasq can delete the PID-file on
+ shutdown. This ensures that the the PID-file goes even when dnsmasq
+ is stopped by sendsigs. (closes: #508560)
+ * Bump standards-version to 3.8.0 (no changes required.)
+ * /usr/sbin/adduser -> adduser in postinst. Lintian fix.
+ * Handle IPv6 addresses in "tentative" state better. (closes: #507646)
+ * Add DBus introspection support. (closes: #508774)
+ * Fix Dbus configuration. (closes: #510649)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Mon, 2 Feb 2009 13:39:11 +0000
+
+dnsmasq (2.46-1) unstable; urgency=low
+
+ * New upstream. (closes: #499162) (closes: #499007)
+ * Remove from init script start-stop-daemon call to kill
+ child processes. This is not needed since dnsmasq is
+ carefully written to kill child processes, and it interacts
+ badly with "private" instances of dnsmasq. (closes: #505523)
+ * Provide /etc/dnsmasq.d and alter the installed /etc/default/dnsmasq
+ so that /etc/dnsmasq.d is read. This provides a drop-directory where
+ libvirt can add options to make the system dnsmasq automatically
+ play nice with libvirt's private instances. (closes: #505522)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thu, 13 Nov 2008 20:15:31 +0000
+
+dnsmasq (2.45-1) unstable; urgency=high
+
+ * New upstream - fixes regression when min-port not set.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 20 Jul 2008 19:27:11 +0000
+
+dnsmasq (2.44-1) unstable; urgency=high
+
+ * New upstream - bugfix release for 2.43.
+ * Fix crash in netlink code. (closes: #491289)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 11 Jul 2008 19:39:10 +0000
+
+dnsmasq (2.43-1) unstable; urgency=high
+
+ * New upstream.
+ * Implement source-port randomisation and better random
+ number generator as defence against CVE-2008-1447 (closes: #490123)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tue, 17 Jun 2008 11:55:38 +0000
+
+dnsmasq (2.42-4) unstable; urgency=low
+
+ * Fix botch in postinst introduced in 2.42-2. (closes: #486616)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tue, 17 Jun 2008 11:39:10 +0000
+
+dnsmasq (2.42-3) unstable; urgency=low
+
+ * Fix thinko in init script, breaks status command. (closes: #486455)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Mon, 16 Jun 2008 11:26:20 +0000
+
+dnsmasq (2.42-2) unstable; urgency=low
+
+ * Error check in postinst file (closes: #485645)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tue, 10 Jun 2008 20:25:10 +0000
+
+dnsmasq (2.42-1) unstable; urgency=low
+
+ * New upstream.
+ * Fix manpage typos. (closes: #468762)
+ * Use LSB log_*_msg rather than echo in init script. (closes: #473117)
+ * Fix agent-id echo problem. (closes: #473015)
+ * Fixup changing /usr/share/doc/dnsmasq to symlink. (closes: #468763)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Wed, 27 Feb 2008 21:15:28 +0000
+
+dnsmasq (2.41-2) unstable; urgency=low
+
+ * Fix rules to build binary-arch and binary-indep correctly.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Wed, 27 Feb 2008 19:57:10 +0000
+
+dnsmasq (2.41-1) unstable; urgency=low
+
+ * New upstream.
+ * Fix typo. (closes: #448038)
+ * Fix DHCP problem interoperating with Sony Ericsson K610i (closes: #451871)
+ * Split binary packages into dnsmasq and dnsmasq-base (closes: #463407)
+ * Add warnings about bad effects of --filterwin2k to default config
+ file. (closes: #464357)
+ * Don't declare Provides: $named in LSB header. (closes: #464512)
+ * Remove conflict with pdnsd. (closes: #464691)
+ * Add ability to disable dnsmasq in /etc/default/dnsmasq. (closes: #465062)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thu, 31 Jan 2008 20:25:28 +0000
+
+dnsmasq (2.40-1) unstable; urgency=low
+
+ * New upstream.
+ * Fix manpage typo. (closes: #429412)
+ * Fix dnsmasq.conf typos (closes: #429929)
+ * Handle DEB_BUILD_OPTIONS nostrip and noopt (closes: #436784)
+ * Add DEB_BUILD_OPTIONS for nodocs, notftp, noipv6,
+ nodbus, noi18n and nortc.
+ * Create DEBIAN/md5sums file in package.
+ * Add status function to init script. (closes: #439316)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thu, 9 Aug 2007 10:24:18 +0000
+
+dnsmasq (2.39-1) unstable; urgency=low
+
+ * New upstream.
+ * Provide example config file in /usr/share/doc/dnsmasq/examples
+ as well as /etc/dnsmasq.conf, so it's available for reference.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thu, 13 Feb 2007 10:02:38 +0000
+
+dnsmasq (2.38-1) unstable; urgency=low
+
+ * New upstream (closes: #410185)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tue, 6 Feb 2007 21:14:58 +0000
+
+dnsmasq (2.37-1) unstable; urgency=low
+
+ * New upstream.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thu, 25 Jan 2007 10:44:18 +0000
+
+dnsmasq (2.36-1) unstable; urgency=low
+
+ * New upstream. (closes: #400037)
+ * Don't fail to purge if deluser command is not available.
+ * Add one second sleep to resolvconf script. (closes: #398961)
+ * Fix dnsmasq.conf typo (closes: #405314)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tue, 31 Oct 2006 10:24:58 +0000
+
+dnsmasq (2.35-1) unstable; urgency=low
+
+ * New upstream.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Wed, 18 Oct 2006 09:23:28 +0000
+
+dnsmasq (2.34-1) unstable; urgency=low
+
+ * New upstream.
+ * Includes --clear-on-reload flag. (loses: #391654)
+ * Don't any longer set the "domain-needed" and "bogus-priv" flags in the
+ * the default-installed dnsmasq.conf. These can generate puzzling
+ * behaviour for people who get them without asking.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Wed, 9 Aug 2006 09:23:28 +0000
+
+dnsmasq (2.33-1) unstable; urgency=low
+
+ * New upstream.
+ * Remove bashism from Makefile (closes: #375409)
+ * Added Provides: $named to LSB header in init script.
+ * Add --dns-forward-max flag. (closes: #377506)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 25 June 2006 18:03:13 +0000
+
+dnsmasq (2.32-2) unstable; urgency=low
+
+ * Added LSB tags to init.d startup script. (closes: #374650)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 25 June 2006 17:55:11 +0000
+
+dnsmasq (2.32-1) unstable; urgency=low
+
+ * New upstream.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Mon, 8 May 2006 09:23:28 +0000
+
+dnsmasq (2.31-1) unstable; urgency=high
+
+ * New upstream. (closes: #364800)
+ * Compile in Dbus support now that suitable Dbus packages exist.
+ * Don't stop an old dnsmasq process, until a new one is ready,
+ when upgrading. (closes: #366224)
+ * Move to standards-version 3.7.2 (no changes needed).
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 6 May 2006 11:58:22 +0000
+
+dnsmasq (2.30-1) unstable; urgency=low
+
+ * New upstream, fixes crash with DHCP broadcast replies.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 23 Apr 2006 14:58:22 +0000
+
+dnsmasq (2.29-1) unstable; urgency=low
+
+ * New upstream. (closes: #363244) (closes: #363340)
+ * Made config options clearer in src/config.h and
+ clarify ISC integration status in Debian readme. (closes: #364250)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tue, 18 Apr 2006 10:26:12 +0000
+
+dnsmasq (2.28-1) unstable; urgency=low
+
+ * New upstream. (closes: #359956) (closes: #362499)
+ * Added firestarter info to FAQ. (closes: #359139)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tue, 14 Mar 2006 19:20:12 +0000
+
+dnsmasq (2.27-1) unstable; urgency=low
+
+ * New upstream.
+ * Workaround buggy Microsoft DHCP clients. (closes: #355008)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Wed, 1 Feb 2006 17:05:12 +0000
+
+dnsmasq (2.26-1) unstable; urgency=high
+
+ * New upstream. (Fixes possible crash in 2.25, hence urgency).
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 22 Jan 2006 11:05:22 +0000
+
+dnsmasq (2.25-1) unstable; urgency=low
+
+ * Remove bashisms in postinst and prerm scripts.
+ * Remove misconcieved dependency on locales.
+ * Depend on adduser.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thu, 01 Dec 2005 21:02:12 +0000
+
+dnsmasq (2.24-1) unstable; urgency=low
+
+ * New upstream. (closes: #330422)
+ * Fix typo and clean up dnsmasq.conf (closes: #326057) (closes: #304446)
+ * Add build support for I18N and gettext.
+ * Fixed manpage typos. (closes: #336413)
+ * Create a dnsmasq-unique userid for the daemon to run as. (closes: #338353)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 03 Sep 2005 20:02:32 +0000
+
+dnsmasq (2.23-1) unstable; urgency=low
+
+ * New upstream. (closes: #302501) (closes: #315794)
+ * Fix manpage typos. (closes: #304984)
+ * Add support for DNSMASQ_EXCEPT in /etc/defaults/dnsmasq.
+ putting "lo" in this also disables resolvconf support.
+ * No longer delete pre-existing /etc/init.d symlinks. The
+ change in default runlevels which neccesitated this
+ is now ancient history and anyway the startup script now
+ behaves when called twice. (closes: #312111)
+ * Tightened config-file parser. (closes: #317030)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tue, 02 Aug 2005 13:17:22 +0000
+
+dnsmasq (2.22-2) unstable; urgency=low
+
+ * Make the resolv.conf polling code resistant to
+ backwards-moving system clocks. (closes: #306117) (closes: #300694)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Wed, 04 May 2005 13:25:23 +0000
+
+dnsmasq (2.22-1) unstable; urgency=low
+
+ * New upstream.
+ * Fixed broken-ness when read /etc/ethers. (closes: #301999)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thur, 24 Mar 2005 17:10:13 +0000
+
+dnsmasq (2.21-1) unstable; urgency=low
+
+ * New upstream.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 29 Jan 2005 16:05:13 +0000
+
+dnsmasq (2.20-1) unstable; urgency=low
+
+ * New upstream.
+ * Fix shadowed CNAME-target problem. (closes: #286654)
+ * Add --localise-queries option. (closes: #291367)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 17 Dec 2004 17:35:23 +0000
+
+dnsmasq (2.19-1) unstable; urgency=high
+
+ * New upstream.
+ * Fix another IPv6 interface enumeration problem. (closes: #285182)
+ * Uploading at high priority since 285182 is really RC.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 11 Dec 2004 20:39:33 +0000
+
+dnsmasq (2.18-2) unstable; urgency=low
+
+ * Revert startup to not start from rcS. Starting in rcS
+ * causes problems if interfaces are not available at that
+ * point. Users who need this facility should manually
+ * make rcS.d symlinks. (closes: #283239)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 27 Nov 2004 16:33:12 +0000
+
+dnsmasq (2.18-1) unstable; urgency=low
+
+ * New upstream.
+ * Reset cache statistics when clearing the cache. (closes: #281817)
+ * Fix problems with bind-interfaces and IPv6. (closes: #282192)
+ * Fix problems upgrading when restarting dnsmasq fails.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tue, 16 Nov 2004 17:33:32 +0000
+
+dnsmasq (2.17-1) unstable; urgency=high
+
+ * New upstream - fixes crash, hence high urgency.
+ * Clarified log message when a record in /etc/hosts
+ and a DHCP name clash. (closes: #275420)
+ * Start dnsmasq just before portmap and nfs mounts from rcS.d
+ DNS is required at this stage to use the net. (closes: #280434)
+ * Make "bind-interfaces" apply to IPv6 interfaces. (closes: #278492)
+ * Allow a list if interfaces as arg to the --interface and
+ --except-interface options. (closes: #279063)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tue, 26 Oct 2004 20:39:33 +0000
+
+dnsmasq (2.16-2) unstable; urgency=high
+
+ * Rename variable in cache.c which clashes with C headers
+ under gcc-3.4 (closes: #277893)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Mon, 25 Oct 2004 16:03:24 +0000
+
+dnsmasq (2.16-1) unstable; urgency=high
+
+ * New upstream.
+ * Fixes interaction with Linux 2.4.x and 2.6.x not-quite-POSIX
+ select behavior, which can cause hangs when receiving UDP
+ packets with bad checksum.
+ * Fix bad interaction with polipo. (closes: #275754)
+ * Cache CNAMEs better. (closes: #276289)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Mon, 04 Oct 2004 15:25:44 +0000
+
+dnsmasq (2.15-1) unstable; urgency=low
+
+ * New upstream.
+ * Fix NXDOMAIN/NODATA confusion for locally known names. (closes: #271564)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Wed, 15 Sep 2004 15:01:44 +0000
+
+dnsmasq (2.14-1) unstable; urgency=low
+
+ * New upstream.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 28 Aug 2004 20:39:33 +0000
+
+dnsmasq (2.13-1) unstable; urgency=high
+
+ * New upstream - fixes crash. (closes #265313)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thur, 12 Aug 2004 12:45:23 +0000
+
+dnsmasq (2.12-1) unstable; urgency=low
+
+ * New upstream.
+ * Log types of incoming queries (closes: #230123).
+ * Don't set "filterwin2k" by default in the included
+ config file - it breaks SRV lookups and Kerberos.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 8 Aug 2004 19:58:13 +0000
+
+dnsmasq (2.11-1) unstable; urgency=low
+
+ * New upstream.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Wed, 28 July 2004 21:59:33 +0000
+
+dnsmasq (2.10-1) unstable; urgency=low
+
+ * New upstream.
+ * Allow query-port less than 1024 (closes: #236586)
+ * Change behaviour of --bogus-priv (closes: #254711)
+ * Match existing leases by MAC address when a client stops
+ using client-id or they get suppressed by dnsmasq. (closes: #258519)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thur, 24 June 2004 20:55:42 +0000
+
+dnsmasq (2.9-2) unstable; urgency=low
+
+ * Fix typo in debian/control (closes: #255762)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Wed, 23 Jun 2004 20:40:13 +0000
+
+dnsmasq (2.9-1) unstable; urgency=low
+
+ * New upstream.
+ * New version has improved server selection logic (closes: #251097)
+ * Improved initscript (closes: #252229)
+ * Conflict with old resolvconf versions to maintain compatibility.
+ * Updated README.debian (closes: #253429)
+ * Changed startup message to mention DHCP as well as DNS.
+ * New resolvconf update script (closes: #254765)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Wed, 26 May 2004 12:35:23 +0000
+
+dnsmasq (2.8-1) unstable; urgency=low
+
+ * New upstream.
+ * Fixes problem with zero-length hostnames which can lose
+ DHCP leases over a restart. (closes: #248829)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thur, 13 May 2004 18:40:12 +0000
+
+dnsmasq (2.7-2) unstable; urgency=low
+
+ * New version of resolvconf script from Thomas Hood with the
+ following changes: (closes: #247695)
+ * Doesn't include nameservers listed in the lo.inet or lo.inet6 interface
+ records created by "ifup lo"
+ * Lists addresses in a specified order (by interface name)
+ * Eliminates duplicate nameserver addresses
+ * Updates /var/run/dnsmasq/resolv.conf atomically
+ * Doesn't generate empty lines
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tue, 11 May 2004 22:35:12 +0000
+
+dnsmasq (2.7-1) unstable; urgency=low
+
+ * New upstream.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 18 Apr 2004 20:00:23 +0000
+
+dnsmasq (2.6-3) unstable; urgency=low
+
+ * Removed reload command from start script and moved force-reload
+ to be equivalent to restart. This is needed to be policy compliant
+ since SIHGUP doesn't cause dnsmasq to reload its configuration file,
+ only the /etc/hosts, /etc/resolv.conf etc. (closes: #244208)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 18 Apr 2004 14:40:51 +0000
+
+dnsmasq (2.6-2) unstable; urgency=low
+
+ * Added Conflict with pdnsd (closes: #242731).
+ Rationale: dnsmasq used to conflict with all the DNS servers
+ in Debian, but that was removed because some people wished
+ to run with dnsmasq listening on one interface and another DNS
+ server listening on another interface. However AFAIK it is not
+ possible to make pdnsd listen on a subset of a hosts interfaces,
+ so there is no scenario where running pdnsd and dnsmasq on the same
+ host would be useful, hence the conflict goes back.
+ * Added note about the --bind-interfaces option to
+ readme.Debian (closes: #241700)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tues, 13 Apr 2004 18:37:55 +0000
+
+dnsmasq (2.6-1) unstable; urgency=low
+
+ * New upstream.
+ * New version adds back ability to read ISC dhcpd lease files
+ for backwards compatibility. (closes: #229684) (closes: #236421)
+ * Fix parsing of # characters in options file. (closes: #241199)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 21 Mar 2004 19:59:25 +0000
+
+dnsmasq (2.5-1) unstable; urgency=low
+
+ * New upstream, includes fix for IP-alias related
+ problem. (closes: #238268)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 14 Mar 2004 08:32:43 +0000
+
+dnsmasq (2.4-3) unstable; urgency=low
+
+ * Fixed "bind-interfaces" option, even when
+ an "interface" option is given also.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 12 Mar 2004 08:14:23 +0000
+
+dnsmasq (2.4-2) unstable; urgency=low
+
+ * Fixed "bind-interfaces" option (closes: #237543).
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 12 Mar 2004 07:30:25 +0000
+
+dnsmasq (2.4-1) unstable; urgency=low
+
+ * New upstream.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thurs, 11 Mar 2004 07:59:55 +0000
+
+dnsmasq (2.3-1) unstable; urgency=low
+
+ * New upstream.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tues, 03 Feb 2004 20:33:10 +0000
+
+dnsmasq (2.2-1) unstable; urgency=low
+
+ * New upstream. (fixes no DHCP with IPv6 problem)
+ * Restart (old) daemon on abort-upgrade. (closes: #230286)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 30 Jan 2004 10:23:00 +0000
+
+dnsmasq (2.1-1) unstable; urgency=low
+
+ * New upstream.
+ * Allow addresses in /etc/hosts to be used for
+ DHCP leases (closes: #229681)
+ * Fix lease time processing. (closes: #229682) (closes: #229687)
+ * Fix example conf file. (closes: #229683) (closes: #229701)
+ * Allow address 0.0.0.0 to mean "self" in dhcp-option. (closes: #229685)
+ * Cope with ENODEV return from bind of
+ IPv6 server socket (closes: #229607)
+ * Document the strict-order option in dnsmasq.conf (closes: #229272)
+ * Fix local-only domain setting. (closes: #229846)
+ * Updates Debian readme to mention resolvconf and point at the
+ local copy of RFC2132.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 23 Jan 2004 14:38:29 +0000
+
+dnsmasq (2.0-1) unstable; urgency=low
+
+ * New upstream: This removes the ability to read the
+ the leases file of ISC DHCP and replaces it with a built-in
+ DHCP server. Apologies in advance for breaking backwards
+ compatibilty, but this replaces a bit of a hack (the ISC stuff)
+ with a nicely engineered and much more apropriate solution.
+ Wearing my upstream-maintainer hat, I want to lose the hack now,
+ rather than have to support it into Sarge.
+ * New upstream closes some bugs since they become
+ irrelevant. (closes: #197295)
+ * Ensure that /var/run and /var/lib/misc exist.
+ * Remove sed dependency, which was a mistake.
+ * Remove extraneous "build" file. (closes: #226994)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 16 Jan 2004 19:35:49 +0000
+
+dnsmasq (1.18-2) unstable; urgency=low
+
+ * Fixed manpage typo (closes: #220961)
+ * Added dependency for sed. (closes: #222401)
+ * Check for complete resolvconf installation before
+ calling it. (closes: #223442)
+ * Added Links section to doc.html
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 27 Dec 2003 20:21:15 +0000
+
+dnsmasq (1.18-1) unstable; urgency=low
+
+ * New upstream which does round-robin. (closes: #215460)
+ * Removed conflicts with other dns servers since it is now
+ possible to control exactly where dnsmasq listens on multi-homed
+ hosts, making co-existance with another nameserver
+ a viable proposition. (closes #176163)
+ * New upstream allows _ in hostnames and check for illegal
+ names in /etc/hosts. (closes: #218842)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 17 Oct 2003 16:23:14 +0000
+
+dnsmasq (1.17-1) unstable; urgency=high
+
+ * New upstream (closes: #212680)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Wed, 8 Oct 2003 14:38:29 +0000
+
+dnsmasq (1.16-1) unstable; urgency=low
+
+ * New upstream.
+ * Renamed Debian README to the standard README.Debian. (closes: #211577)
+ * Updated the installed /etc/dnsmasq.conf to reflect new options.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tues, 16 Sep 2003 23:18:59 +0000
+
+dnsmasq (1.15-1) unstable; urgency=low
+
+ * New upstream.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tues, 16 Sep 2003 21:48:49 +0000
+
+dnsmasq (1.14-1) unstable; urgency=low
+
+ * New upstream.
+ * Use invoke-rc.d in postinst and prerm scripts when available.
+ * Stop dnsmasq later (at priority 85). (closes: #200625)
+ * Updated /etc/resolvconf/update.d/dnsmasq. (closes: #202609)
+ * Suggest resolvconf. (closes: #208093)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tues, 2 Sep 2003 16:43:29 +0000
+
+dnsmasq (1.13-4) unstable; urgency=high
+
+ * Ignore failures in stopping existing dnsmasq
+ processes. (closes: #204127) (closes: #204129)
+ * Added download source to copyright. (closes: #206647)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tues, 2 Sep 2003 15:28:28 +0000
+
+dnsmasq (1.13-3) unstable; urgency=low
+
+ * Moved /etc/resolvconf/update.d/dnsmasq script into this package.
+ * Don't call resolvconf from /etc/init.d/dnsmasq if dnsmasq fails
+ to start. (Patch from Thomas Hood.)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Mon, 7 Jul 2003 20:55:29 +0000
+
+dnsmasq (1.13-2) unstable; urgency=low
+
+ * Added support for the resolvconf nameserver configuration package.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 22 Jun 2003 20:30:19 +0000
+
+dnsmasq (1.13-1) unstable; urgency=low
+
+ * New upstream.
+ * Added new options to the default dnsmasq.conf.
+ * Default config now reads /var/lib/dhcp/dhcp.leases (closes: #195185)
+ * Added option to disable negative caching. (closes: #194274)
+ * Added David Coe's query port patch. (closes: #196578)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 31 May 2003 18:10:29 +0000
+
+dnsmasq (1.12-1) unstable; urgency=low
+
+ * New upstream.
+ * Added examples of "local" and "address" options to dnsmasq.conf.
+ * Remove /usr/doc symlink code.
+ * Remove period from end of description field.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 8 Mar 2003 12:16:09 +0000
+
+dnsmasq (1.11-2) unstable; urgency=low
+
+ * Fixed thinko in example dnsmasq.conf. (closes: #180410)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Mon, 24 Feb 2003 20:06:19 +0000
+
+dnsmasq (1.11-1) unstable; urgency=low
+
+ * New uptream.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Tues, 12 Jan 2003 22:25:17 -0100
+
+dnsmasq (1.10-1) unstable; urgency=low
+
+ * New uptream.
+ * Force service to stop in postinst before restarting. I don't
+ understand the circumstances under which it would still be running at
+ this point, but this is the correct fix anyway. (closes: #169718)
+ * Add /etc/dnsmasq.conf as a conffile and add a comment to
+ /etc/default/dnsmasq deprecating its use and recommending
+ /etc/dnsmasq.conf instead, since upstream now supports this.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Mon, 9 Oct 2002 19:05:34 -0100
+
+dnsmasq (1.9-1) unstable; urgency=low
+
+ * New uptream.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Mon, 23 Sept 2002 21:35:07 -0100
+
+dnsmasq (1.8-1) unstable; urgency=low
+
+ * New upstream.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Mon, 12 Aug 2002 21:56:17 -0100
+
+dnsmasq (1.7-1) unstable; urgency=low
+
+ * New upstream including better group-id manipulation. (closes: #152212)
+ * Conflict with bind9 (closes: #151812)
+ * Added more options to startup script. (closes: #148535)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 14 July 2002 20:23:14 -0100
+
+dnsmasq (1.6-1) unstable; urgency=low
+
+ * New upstream.
+ * Fixed documentation typos. (closes: #144637)
+ * Fixed failure to remove package if daemon not running. (closes: #147083)
+ * Changed upload to tarball-and-diff. (closes: #144638)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 19 May 2002 22:30:17 -0100
+
+dnsmasq (1.5-1) unstable; urgency=medium
+
+ * New upstream (includes hotmail.com fix).
+ * Fixed DHCP lease file bug. (closes: #143778)
+ * Fixed failure of "reload" command in startup script (closes: #141021)
+ * Allow more than one interface name in the DNSMASQ_INTERFACE variable.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 14 Apr 2002 16:39:13 -0100
+
+dnsmasq (1.4-2) unstable; urgency=low
+
+ * Fixed snafu in startup script (closes: #139760)
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sun, 24 Mar 2002 23:06:18 +0000
+
+dnsmasq (1.4-1) unstable; urgency=low
+
+ * New upstream
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thurs, 7 Mar 2002 21:02:05 +0000
+
+dnsmasq (1.3-1) unstable; urgency=low
+
+ * New upstream
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 15 Feb 2002 20:45:01 +0000
+
+dnsmasq (1.2-4) unstable; urgency=low
+
+ * Updated standards-version.
+ * More aggressive strip of binaries.
+ * Added depends: netbase.
+ * distribution->unstable for upload.
+ * Updated readme.Debian since config in /etc/default/dnsmasq now.
+ * Updated readme.Debian to reflect fact that this package is official now!
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Fri, 15 Feb 2002 20:45:01 +0000
+
+dnsmasq (1.2-3) stable; urgency=low
+
+ * Added Suggests: and Conflicts: fields to control file.
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Thurs, 14 Feb 2002 20:33:47 +0000
+
+dnsmasq (1.2-2) stable; urgency=low
+
+ * Many packaging fixes, to please lintian
+ * Added extended description.
+ * Fixed copyright file.
+ * Compressed everything in /usr/share/doc/dnsmasq.
+ * Added code to remove /usr/doc/dnsmasq to prerm script.
+ * Moved configuration from /etc/init.d/dnsmasq to /etc/default/dnsmasq
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 02 Feb 2002 18:54:37 +0000
+
+dnsmasq (1.2-1) stable; urgency=low
+
+ * New upstream
+ * Added more options to startup script
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 20 Dec 2001 21:15:07 +0000
+
+dnsmasq (1.1-2) stable; urgency=low
+
+ * New upstream
+ * Strip binary
+ * Moved manpage from section 1 to section 8
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 21 Oct 2001 17:32:04 -0100
+
+dnsmasq (1.0-1) unstable; urgency=low
+
+ * New upstream
+
+ -- Simon Kelley <simon@thekelleys.org.uk> Sat, 10 Oct 2001 15:52:06 -0100
+
+dnsmasq (0.996-1) unstable; urgency=low
+
+ * New upstream
+
+ -- Simon Kelley <simon@thkelleys.org.uk> Fri, 26 Oct 2001 10:32:06 -0100
+
+dnsmasq (0.995-1) unstable; urgency=low
+
+ * New upstream
+
+ -- Simon Kelley <simon@thkelleys.org.uk> Tue, 09 Oct 2001 16:39:07 -0100
+
+dnsmasq (0.994-1) unstable; urgency=low
+
+ * New upstream
+
+ -- Simon Kelley <simon@thkelleys.org.uk> Sat, 07 Oct 2001 15:45:04 -0100
+
+dnsmasq (0.992-1) unstable; urgency=low
+
+ * New upstream
+
+ -- Simon Kelley <simon@thkelleys.org.uk> Fri, 31 Aug 2001 16:17:00 -0100
+
+dnsmasq (0.98-1) unstable; urgency=low
+
+ * New upstream
+
+ -- Simon Kelley <simon@thkelleys.org.uk> Wed, 11 Jul 2001 11:31:00 -0100
+
+dnsmasq (0.96-1) unstable; urgency=low
+
+ * Fixed thinko in cache code..
+
+ -- Simon Kelley <simon@thkelleys.org.uk> Sat, 07 Jul 2001 18:52:00 -0100
+
+dnsmasq (0.95-1) unstable; urgency=low
+
+ * Initial Release.
+
+ -- Simon Kelley <simon@thkelleys.org.uk> Sat, 29 Aug 1998 20:27:27 -0400
+
+
+
+
+
+
+
+
+
+
diff --git a/debian/conffiles b/debian/conffiles
new file mode 100644
index 0000000..2fb5b1d
--- /dev/null
+++ b/debian/conffiles
@@ -0,0 +1,6 @@
+/etc/init.d/dnsmasq
+/etc/default/dnsmasq
+/etc/dnsmasq.conf
+/etc/resolvconf/update.d/dnsmasq
+/etc/dbus-1/system.d/dnsmasq.conf
+/etc/insserv.conf.d/dnsmasq
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..6b8be1a
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,41 @@
+Source: dnsmasq
+Section: net
+Priority: optional
+Build-depends: gettext, libnetfilter-conntrack-dev [linux-any], libidn11-dev, libdbus-1-dev (>=0.61)
+Maintainer: Simon Kelley <simon@thekelleys.org.uk>
+Standards-Version: 3.9.2
+
+Package: dnsmasq
+Architecture: all
+Depends: netbase, adduser, dnsmasq-base(>= ${source:Version})
+Suggests: resolvconf
+Conflicts: resolvconf (<<1.15)
+Description: Small caching DNS proxy and DHCP/TFTP server
+ Dnsmasq is a lightweight, easy to configure, DNS forwarder and DHCP
+ server. It is designed to provide DNS and optionally, DHCP, to a
+ small network. It can serve the names of local machines which are
+ not in the global DNS. The DHCP server integrates with the DNS
+ server and allows machines with DHCP-allocated addresses
+ to appear in the DNS with names configured either in each host or
+ in a central configuration file. Dnsmasq supports static and dynamic
+ DHCP leases and BOOTP/TFTP for network booting of diskless machines.
+
+Package: dnsmasq-base
+Architecture: any
+Depends: ${shlibs:Depends}
+Conflicts: dnsmasq (<<2.41)
+Description: Small caching DNS proxy and DHCP/TFTP server
+ This package contains the dnsmasq executable and documentation, but
+ not the infrastructure required to run it as a system daemon. For
+ that, install the dnsmasq package.
+
+Package: dnsmasq-utils
+Architecture: linux-any
+Depends: ${shlibs:Depends}
+Conflicts: dnsmasq (<<2.40)
+Description: Utilities for manipulating DHCP leases
+ Small utilities to query a DHCP server's lease database and
+ remove leases from it. These programs are distributed with dnsmasq
+ and may not work correctly with other DHCP servers.
+
+
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..1fdf64d
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,21 @@
+dnsmasq is Copyright (c) 2000-2010 Simon Kelley
+
+It was downloaded from: http://www.thekelleys.org.uk/dnsmasq/
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 dated June, 1991, or
+ (at your option) version 3 dated 29 June, 2007.
+
+ 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 General Public License for more details.
+
+On Debian GNU/Linux systems, the text of the GNU general public license is
+available in the file /usr/share/common-licenses/GPL-2 or
+/usr/share/common-licenses/GPL-3
+
+The Debian package of dnsmasq was created by Simon Kelley with assistance
+from Lars Bahner.
+
diff --git a/debian/dbus.conf b/debian/dbus.conf
new file mode 100644
index 0000000..03c4eaf
--- /dev/null
+++ b/debian/dbus.conf
@@ -0,0 +1,18 @@
+<!DOCTYPE busconfig PUBLIC
+ "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+ <policy user="root">
+ <allow own="uk.org.thekelleys.dnsmasq"/>
+ <allow send_destination="uk.org.thekelleys.dnsmasq"/>
+ </policy>
+ <policy user="dnsmasq">
+ <allow own="uk.org.thekelleys.dnsmasq"/>
+ <allow send_destination="uk.org.thekelleys.dnsmasq"/>
+ </policy>
+ <policy context="default">
+ <deny own="uk.org.thekelleys.dnsmasq"/>
+ <deny send_destination="uk.org.thekelleys.dnsmasq"/>
+ </policy>
+</busconfig>
+
diff --git a/debian/default b/debian/default
new file mode 100644
index 0000000..ecf8ec7
--- /dev/null
+++ b/debian/default
@@ -0,0 +1,33 @@
+# This file has five functions:
+# 1) to completely disable starting dnsmasq,
+# 2) to set DOMAIN_SUFFIX by running `dnsdomainname`
+# 3) to select an alternative config file
+# by setting DNSMASQ_OPTS to --conf-file=<file>
+# 4) to tell dnsmasq to read the files in /etc/dnsmasq.d for
+# more configuration variables.
+# 5) to stop the resolvconf package from controlling dnsmasq's
+# idea of which upstream nameservers to use.
+# For upgraders from very old versions, all the shell variables set
+# here in previous versions are still honored by the init script
+# so if you just keep your old version of this file nothing will break.
+
+#DOMAIN_SUFFIX=`dnsdomainname`
+#DNSMASQ_OPTS="--conf-file=/etc/dnsmasq.alt"
+
+# Whether or not to run the dnsmasq daemon; set to 0 to disable.
+ENABLED=1
+
+# By default search this drop directory for configuration options.
+# Libvirt leaves a file here to make the system dnsmasq play nice.
+# Comment out this line if you don't want this. The dpkg-* are file
+# endings which cause dnsmasq to skip that file. This avoids pulling
+# in backups made by dpkg.
+CONFIG_DIR=/etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new
+
+# If the resolvconf package is installed, dnsmasq will use its output
+# rather than the contents of /etc/resolv.conf to find upstream
+# nameservers. Uncommenting this line inhibits this behaviour.
+# Not that including a "resolv-file=<filename>" line in
+# /etc/dnsmasq.conf is not enough to override resolvconf if it is
+# installed: the line below must be uncommented.
+#IGNORE_RESOLVCONF=yes
diff --git a/debian/init b/debian/init
new file mode 100644
index 0000000..d966fc0
--- /dev/null
+++ b/debian/init
@@ -0,0 +1,266 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: dnsmasq
+# Required-Start: $network $remote_fs $syslog
+# Required-Stop: $network $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Description: DHCP and DNS server
+### END INIT INFO
+
+set +e # Don't exit on error status
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/dnsmasq
+NAME=dnsmasq
+DESC="DNS forwarder and DHCP server"
+
+# Most configuration options in /etc/default/dnsmasq are deprecated
+# but still honoured.
+ENABLED=1
+if [ -r /etc/default/$NAME ]; then
+ . /etc/default/$NAME
+fi
+
+# Get the system locale, so that messages are in the correct language, and the
+# charset for IDN is correct
+if [ -r /etc/default/locale ]; then
+ . /etc/default/locale
+ export LANG
+fi
+
+test -x $DAEMON || exit 0
+
+# Provide skeleton LSB log functions for backports which don't have LSB functions.
+if [ -f /lib/lsb/init-functions ]; then
+ . /lib/lsb/init-functions
+else
+ log_warning_msg () {
+ echo "${@}."
+ }
+
+ log_success_msg () {
+ echo "${@}."
+ }
+
+ log_daemon_msg () {
+ echo -n "${1}: $2"
+ }
+
+ log_end_msg () {
+ if [ $1 -eq 0 ]; then
+ echo "."
+ elif [ $1 -eq 255 ]; then
+ /bin/echo -e " (warning)."
+ else
+ /bin/echo -e " failed!"
+ fi
+ }
+fi
+
+# RESOLV_CONF:
+# If the resolvconf package is installed then use the resolv conf file
+# that it provides as the default. Otherwise use /etc/resolv.conf as
+# the default.
+#
+# If IGNORE_RESOLVCONF is set in /etc/default/dnsmasq or an explicit
+# filename is set there then this inhibits the use of the resolvconf-provided
+# information.
+#
+# Note that if the resolvconf package is installed it is not possible to
+# override it just by configuration in /etc/dnsmasq.conf, it is necessary
+# to set IGNORE_RESOLVCONF=yes in /etc/default/dnsmasq.
+
+if [ ! "$RESOLV_CONF" ] &&
+ [ "$IGNORE_RESOLVCONF" != "yes" ] &&
+ [ -x /sbin/resolvconf ]
+then
+ RESOLV_CONF=/var/run/dnsmasq/resolv.conf
+fi
+
+for INTERFACE in $DNSMASQ_INTERFACE; do
+ DNSMASQ_INTERFACES="$DNSMASQ_INTERFACES -i $INTERFACE"
+done
+
+for INTERFACE in $DNSMASQ_EXCEPT; do
+ DNSMASQ_INTERFACES="$DNSMASQ_INTERFACES -I $INTERFACE"
+done
+
+if [ ! "$DNSMASQ_USER" ]; then
+ DNSMASQ_USER="dnsmasq"
+fi
+
+start()
+{
+ # Return
+ # 0 if daemon has been started
+ # 1 if daemon was already running
+ # 2 if daemon could not be started
+
+ # /var/run may be volatile, so we need to ensure that
+ # /var/run/dnsmasq exists here as well as in postinst
+ if [ ! -d /var/run/dnsmasq ]; then
+ mkdir /var/run/dnsmasq || return 2
+ chown dnsmasq:nogroup /var/run/dnsmasq || return 2
+ fi
+
+ start-stop-daemon --start --quiet --pidfile /var/run/dnsmasq/$NAME.pid --exec $DAEMON --test > /dev/null || return 1
+ start-stop-daemon --start --quiet --pidfile /var/run/dnsmasq/$NAME.pid --exec $DAEMON -- \
+ -x /var/run/dnsmasq/$NAME.pid \
+ ${MAILHOSTNAME:+ -m $MAILHOSTNAME} \
+ ${MAILTARGET:+ -t $MAILTARGET} \
+ ${DNSMASQ_USER:+ -u $DNSMASQ_USER} \
+ ${DNSMASQ_INTERFACES:+ $DNSMASQ_INTERFACES} \
+ ${DHCP_LEASE:+ -l $DHCP_LEASE} \
+ ${DOMAIN_SUFFIX:+ -s $DOMAIN_SUFFIX} \
+ ${RESOLV_CONF:+ -r $RESOLV_CONF} \
+ ${CACHESIZE:+ -c $CACHESIZE} \
+ ${CONFIG_DIR:+ -7 $CONFIG_DIR} \
+ ${DNSMASQ_OPTS:+ $DNSMASQ_OPTS} \
+ || return 2
+}
+
+start_resolvconf()
+{
+# If interface "lo" is explicitly disabled in /etc/default/dnsmasq
+# Then dnsmasq won't be providing local DNS, so don't add it to
+# the resolvconf server set.
+ for interface in $DNSMASQ_EXCEPT
+ do
+ [ $interface = lo ] && return
+ done
+
+ if [ -x /sbin/resolvconf ] ; then
+ echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo.$NAME
+ fi
+ return 0
+}
+
+stop()
+{
+ # Return
+ # 0 if daemon has been stopped
+ # 1 if daemon was already stopped
+ # 2 if daemon could not be stopped
+ # other if a failure occurred
+ start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile /var/run/dnsmasq/$NAME.pid --name $NAME
+ RETVAL="$?"
+ [ "$RETVAL" = 2 ] && return 2
+ return "$RETVAL"
+}
+
+stop_resolvconf()
+{
+ if [ -x /sbin/resolvconf ] ; then
+ /sbin/resolvconf -d lo.$NAME
+ fi
+ return 0
+}
+
+status()
+{
+ # Return
+ # 0 if daemon is running
+ # 1 if daemon is dead and pid file exists
+ # 3 if daemon is not running
+ # 4 if daemon status is unknown
+ start-stop-daemon --start --quiet --pidfile /var/run/dnsmasq/$NAME.pid --exec $DAEMON --test > /dev/null
+ case "$?" in
+ 0) [ -e "/var/run/dnsmasq/$NAME.pid" ] && return 1 ; return 3 ;;
+ 1) return 0 ;;
+ *) return 4 ;;
+ esac
+}
+
+case "$1" in
+ start)
+ test "$ENABLED" != "0" || exit 0
+ log_daemon_msg "Starting $DESC" "$NAME"
+ start
+ case "$?" in
+ 0)
+ log_end_msg 0
+ start_resolvconf
+ exit 0
+ ;;
+ 1)
+ log_success_msg "(already running)"
+ exit 0
+ ;;
+ *)
+ log_end_msg 1
+ exit 1
+ ;;
+ esac
+ ;;
+ stop)
+ stop_resolvconf
+ if [ "$ENABLED" != "0" ]; then
+ log_daemon_msg "Stopping $DESC" "$NAME"
+ fi
+ stop
+ RETVAL="$?"
+ if [ "$ENABLED" = "0" ]; then
+ case "$RETVAL" in
+ 0) log_daemon_msg "Stopping $DESC" "$NAME"; log_end_msg 0 ;;
+ esac
+ exit 0
+ fi
+ case "$RETVAL" in
+ 0) log_end_msg 0 ; exit 0 ;;
+ 1) log_warning_msg "(not running)" ; exit 0 ;;
+ *) log_end_msg 1; exit 1 ;;
+ esac
+ ;;
+ restart|force-reload)
+ test "$ENABLED" != "0" || exit 1
+ $DAEMON --test ${CONFIG_DIR:+ -7 $CONFIG_DIR} ${DNSMASQ_OPTS:+ $DNSMASQ_OPTS} >/dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ NAME="configuration syntax check"
+ RETVAL="2"
+ else
+ stop_resolvconf
+ stop
+ RETVAL="$?"
+ fi
+ log_daemon_msg "Restarting $DESC" "$NAME"
+ case "$RETVAL" in
+ 0|1)
+ sleep 2
+ start
+ case "$?" in
+ 0)
+ log_end_msg 0
+ start_resolvconf
+ exit 0
+ ;;
+ *)
+ log_end_msg 1
+ exit 1
+ ;;
+ esac
+ ;;
+ *)
+ log_end_msg 1
+ exit 1
+ ;;
+ esac
+ ;;
+ status)
+ log_daemon_msg "Checking $DESC" "$NAME"
+ status
+ case "$?" in
+ 0) log_success_msg "(running)" ; exit 0 ;;
+ 1) log_success_msg "(dead, pid file exists)" ; exit 1 ;;
+ 3) log_success_msg "(not running)" ; exit 3 ;;
+ *) log_success_msg "(unknown)" ; exit 4 ;;
+ esac
+ ;;
+ *)
+ echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload|status}" >&2
+ exit 3
+ ;;
+esac
+
+exit 0
+
diff --git a/debian/insserv b/debian/insserv
new file mode 100644
index 0000000..9584397
--- /dev/null
+++ b/debian/insserv
@@ -0,0 +1 @@
+$named dnsmasq
diff --git a/debian/postinst b/debian/postinst
new file mode 100644
index 0000000..156bb34
--- /dev/null
+++ b/debian/postinst
@@ -0,0 +1,49 @@
+#!/bin/sh
+set -e
+
+# create a user to run as (code stolen from dovecot-common)
+if [ "$1" = "configure" ]; then
+ if [ -z "`id -u dnsmasq 2> /dev/null`" ]; then
+ adduser --system --home /var/lib/misc --gecos "dnsmasq" \
+ --no-create-home --disabled-password \
+ --quiet dnsmasq || true
+ fi
+
+ # Make the directory where we keep the pid file - this
+ # has to be owned by "dnsmasq" do that the file can be unlinked.
+ if [ ! -d /var/run/dnsmasq ]; then
+ mkdir /var/run/dnsmasq
+ chown dnsmasq:nogroup /var/run/dnsmasq
+ fi
+
+ # handle new location of pidfile during an upgrade
+ if [ -e /var/run/dnsmasq.pid ]; then
+ mv /var/run/dnsmasq.pid /var/run/dnsmasq
+ fi
+fi
+
+if [ -x /etc/init.d/dnsmasq ]; then
+ update-rc.d dnsmasq defaults 15 85 >/dev/null
+
+ if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ]; then
+ if [ -e /var/run/dnsmasq/dnsmasq.pid ]; then
+ ACTION=restart
+ else
+ ACTION=start
+ fi
+
+ if [ -x /usr/sbin/invoke-rc.d ] ; then
+ invoke-rc.d dnsmasq $ACTION || true
+ else
+ /etc/init.d/dnsmasq $ACTION || true
+ fi
+ fi
+fi
+
+# dpkg can botch the change of /usr/share/doc/dnsmasq from
+# directory to symlink. Fix up here.
+if [ ! -h /usr/share/doc/dnsmasq ] && { rmdir /usr/share/doc/dnsmasq; }; then
+ cd /usr/share/doc/
+ ln -s /usr/share/doc/dnsmasq-base dnsmasq
+fi
+
diff --git a/debian/postrm b/debian/postrm
new file mode 100644
index 0000000..7eacce6
--- /dev/null
+++ b/debian/postrm
@@ -0,0 +1,12 @@
+#!/bin/sh
+set -e
+
+if [ purge = "$1" ]; then
+ update-rc.d dnsmasq remove >/dev/null
+ if [ -x "$(command -v deluser)" ]; then
+ deluser --quiet --system dnsmasq > /dev/null || true
+ else
+ echo >&2 "not removing dnsmasq system account because deluser command was not found"
+ fi
+ rm -rf /var/run/dnsmasq
+fi
diff --git a/debian/prerm b/debian/prerm
new file mode 100644
index 0000000..f809b68
--- /dev/null
+++ b/debian/prerm
@@ -0,0 +1,14 @@
+#!/bin/sh
+set -e
+
+if [ "$1" = "remove" ]; then
+ if [ -x /usr/sbin/invoke-rc.d ] ; then
+ invoke-rc.d dnsmasq stop || true
+ else
+ /etc/init.d/dnsmasq stop || true
+ fi
+fi
+
+exit 0
+
+
diff --git a/debian/readme b/debian/readme
new file mode 100644
index 0000000..911be0a
--- /dev/null
+++ b/debian/readme
@@ -0,0 +1,70 @@
+Notes on configuring dnsmasq as packaged for Debian.
+
+(1) To configure dnsmasq edit /etc/dnsmasq.conf. The file is well
+ commented; see also the dnsmasq.8 man page for explanation of
+ the options. The file /etc/default/dnsmasq also exists but it
+ shouldn't need to be touched in most cases. To set up DHCP
+ options you might need to refer to a copy of RFC 2132. This is
+ available on Debian systems in the package doc-rfc-std as the file
+ /usr/share/doc/RFC/draft-standard/rfc2132.txt.gz .
+
+(2) Installing the dnsmasq package also creates the directory
+ /etc/dnsmasq.d which is searched by dnsmasq for configuration file
+ fragments. This behaviour can be disabled by editing
+ /etc/default/dnsmasq.
+
+(3) If the Debian resolvconf package is installed then, regardless
+ of what interface configuration daemons are employed, the list of
+ nameservers to which dnsmasq should forward queries can be found
+ in /var/run/dnsmasq/resolv.conf; also, 127.0.0.1 is listed as the
+ first nameserver address in /etc/resolv.conf. This works using the
+ default configurations of resolvconf and dnsmasq.
+
+(4) In the absence of resolvconf, if you are using dhcpcd then
+ dnsmasq should read the list of nameservers from the automatically
+ generated file /etc/dhcpc/resolv.conf. You should list 127.0.0.1
+ as the first nameserver address in /etc/resolv.conf.
+
+(5) In the absence of resolvconf, if you are using pppd then
+ dnsmasq should read the list of nameservers from the automatically
+ generated file /etc/ppp/resolv.conf. You should list 127.0.0.1
+ as the first nameserver address in /etc/resolv.conf.
+
+(6) In the absence of resolvconf, dns-nameservers lines in
+ /etc/network/interfaces are ignored. If you do do not use
+ resolvconf, list 127.0.0.1 as the first nameserver address
+ in /etc/resolv.conf and configure your nameservers using
+ "server=<IP-address>" lines in /etc/dnsmasq.conf.
+
+(7) If you run multiple DNS servers on a single machine, each
+ listening on a different interface, then it is necessary to use
+ the bind-interfaces option by uncommenting "bind-interfaces" in
+ /etc/dnsmasq.conf. This option stops dnsmasq from binding the
+ wildcard address and allows servers listening on port 53 on
+ interfaces not in use by dnsmasq to work. The Debian
+ libvirt package will add a configuration file in /etc/dnsmasq.d
+ which does this so that the "system" dnsmasq and "private" dnsmasq
+ instances started by libvirt do not clash.
+
+(8) The following options are supported in DEB_BUILD_OPTIONS
+ noopt : compile without optimisation.
+ nostrip : don't remove symbols from binary.
+ nodocs : omit documentation.
+ notftp : omit TFTP support.
+ nodhcp : omit DHCP support.
+ noscript : omit lease-change script support.
+ noipv6 : omit IPv6 support.
+ nodbus : omit DBus support.
+ noconntrack : omit connection tracking support.
+ nortc : compile alternate mode suitable for systems without an RTC.
+ noi18n : omit translations and internationalisation support.
+ noidn : omit international domain name support, must be
+ combined with noi18n to be effective.
+
+(9) Dnsmasq comes as two packages - dnsmasq-base and
+ dnsmasq. dnsmasq-base provides the dnsmasq executable and
+ documentation (including this file). Dnsmasq, which depends on
+ dnsmasq-base, provides the init script and configuration
+ infrastructure. This file assumes that both are installed. It is
+ possible to install only dnsmasq-base and use dnsmasq as a
+ non-"system" daemon. Libvirt, for instance, does this.
diff --git a/debian/readme.dnsmasq.d b/debian/readme.dnsmasq.d
new file mode 100644
index 0000000..13db0d8
--- /dev/null
+++ b/debian/readme.dnsmasq.d
@@ -0,0 +1,7 @@
+# All files in this directory will be read by dnsmasq as
+# configuration files, except if their names end in
+# ".dpkg-dist",".dpkg-old" or ".dpkg-new"
+#
+# This can be changed by editing /etc/default/dnsmasq
+
+
diff --git a/debian/resolvconf b/debian/resolvconf
new file mode 100644
index 0000000..431414d
--- /dev/null
+++ b/debian/resolvconf
@@ -0,0 +1,70 @@
+#!/bin/bash
+#
+# Script to update the resolver list for dnsmasq
+#
+# N.B. Resolvconf may run us even if dnsmasq is not running.
+# If dnsmasq is installed then we go ahead and update
+# the resolver list in case dnsmasq is started later.
+#
+# Assumption: On entry, PWD contains the resolv.conf-type files
+#
+# Requires bash because it uses a non-POSIX printf extension.
+#
+# Licensed under the GNU GPL. See /usr/share/common-licenses/GPL.
+#
+
+set -e
+
+RUN_DIR="/var/run/dnsmasq"
+RSLVRLIST_FILE="${RUN_DIR}/resolv.conf"
+TMP_FILE="${RSLVRLIST_FILE}_new.$$"
+
+[ -x /usr/sbin/dnsmasq ] || exit 0
+[ -x /lib/resolvconf/list-records ] || exit 1
+
+PATH=/bin:/sbin
+
+report_err() { echo "$0: Error: $*" >&2 ; }
+
+# Stores arguments (minus duplicates) in RSLT, separated by spaces
+# Doesn't work properly if an argument itself contain whitespace
+uniquify()
+{
+ RSLT=""
+ while [ "$1" ] ; do
+ for E in $RSLT ; do
+ [ "$1" = "$E" ] && { shift ; continue 2 ; }
+ done
+ RSLT="${RSLT:+$RSLT }$1"
+ shift
+ done
+}
+
+if [ ! -d "$RUN_DIR" ] && ! mkdir --parents --mode=0755 "$RUN_DIR" ; then
+ report_err "Failed trying to create directory $RUN_DIR"
+ exit 1
+fi
+
+RSLVCNFFILES="$(/lib/resolvconf/list-records | sed -e '/^lo.dnsmasq$/d')"
+
+NMSRVRS=""
+if [ "$RSLVCNFFILES" ] ; then
+ uniquify $(sed -n -e 's/^[[:space:]]*nameserver[[:space:]]\+//p' $RSLVCNFFILES)
+ NMSRVRS="$RSLT"
+fi
+
+# Dnsmasq uses the mtime of $RSLVRLIST_FILE, with a resolution of one second,
+# to detect changes in the file. This means that if a resolvconf update occurs
+# within one second of the previous one then dnsmasq may fail to notice the
+# more recent change. To work around this problem we sleep here to ensure
+# that the new mtime is different.
+if [ -f "$RSLVRLIST_FILE" ] && [ "$(ls -go --time-style='+%s' "$RSLVRLIST_FILE" | { read p h s t n ; echo "$t" ; })" = "$(date +%s)" ] ; then
+ sleep 1
+fi
+
+clean_up() { rm -f "$TMP_FILE" ; }
+trap clean_up EXIT
+: >| "$TMP_FILE"
+for N in $NMSRVRS ; do echo "nameserver $N" >> "$TMP_FILE" ; done
+mv -f "$TMP_FILE" "$RSLVRLIST_FILE"
+
diff --git a/debian/resolvconf-package b/debian/resolvconf-package
new file mode 100644
index 0000000..a7512ed
--- /dev/null
+++ b/debian/resolvconf-package
@@ -0,0 +1,13 @@
+#!/bin/sh
+# Resolvconf packaging event hook script for the dnsmasq package
+restart_dnsmasq() {
+ if which invoke-rc.d >/dev/null 2>&1 ; then
+ invoke-rc.d dnsmasq restart
+ elif [ -x /etc/init.d/dnsmasq ] ; then
+ /etc/init.d/dnsmasq restart
+ fi
+}
+
+case "$1" in
+ install) restart_dnsmasq ;;
+esac
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..b34c346
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,186 @@
+#!/usr/bin/make -f
+# debian/rules file - for dnsmasq.
+# Copyright 2001-2011 by Simon Kelley
+# Based on the sample in the debian hello package which carries the following:
+# Copyright 1994,1995 by Ian Jackson.
+# I hereby give you perpetual unlimited permission to copy,
+# modify and relicense this file, provided that you do not remove
+# my name from the file itself. (I assert my moral right of
+# paternity under the Copyright, Designs and Patents Act 1988.)
+# This file may have to be extensively modified
+
+package=dnsmasq-base
+
+# policy manual, section 10.1
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS = -g -O0 -Wall -W
+else
+ CFLAGS = -g -O2 -Wall -W
+endif
+
+COPTS =
+TARGET = install-i18n
+
+DEB_BUILD_ARCH_OS := $(shell dpkg-architecture -qDEB_BUILD_ARCH_OS)
+
+ifeq (,$(findstring nodbus,$(DEB_BUILD_OPTIONS)))
+ COPTS += -DHAVE_DBUS
+endif
+
+ifeq (,$(findstring noconntrack,$(DEB_BUILD_OPTIONS)))
+ifeq ($(DEB_BUILD_ARCH_OS),linux)
+ COPTS += -DHAVE_CONNTRACK
+endif
+endif
+
+ifneq (,$(findstring noipv6,$(DEB_BUILD_OPTIONS)))
+ COPTS += -DNO_IPV6
+endif
+
+ifneq (,$(findstring notftp,$(DEB_BUILD_OPTIONS)))
+ COPTS += -DNO_TFTP
+endif
+
+ifneq (,$(findstring nodhcp,$(DEB_BUILD_OPTIONS)))
+ COPTS += -DNO_DHCP
+endif
+
+ifneq (,$(findstring noscript,$(DEB_BUILD_OPTIONS)))
+ COPTS += -DNO_SCRIPT
+endif
+
+ifneq (,$(findstring nortc,$(DEB_BUILD_OPTIONS)))
+ COPTS += -DHAVE_BROKEN_RTC
+endif
+
+ifneq (,$(findstring noi18n,$(DEB_BUILD_OPTIONS)))
+ TARGET = install
+ ifeq (,$(findstring noidn, $(DEB_BUILD_OPTIONS)))
+ COPTS += -DHAVE_IDN
+ endif
+endif
+
+clean:
+ $(checkdir)
+ rm -rf debian/daemon debian/base debian/utils debian/*~ debian/files debian/substvars debian/utils-substvars
+ make clean
+ make -C contrib/wrt clean
+
+binary-indep: checkroot
+ $(checkdir)
+ rm -rf debian/daemon
+ install -m 755 \
+ -d debian/daemon/DEBIAN \
+ -d debian/daemon/usr/share/doc \
+ -d debian/daemon/etc/init.d \
+ -d debian/daemon/etc/dnsmasq.d \
+ -d debian/daemon/etc/resolvconf/update.d \
+ -d debian/daemon/usr/lib/resolvconf/dpkg-event.d \
+ -d debian/daemon/etc/default \
+ -d debian/daemon/etc/dbus-1/system.d \
+ -d debian/daemon/lib/systemd/system \
+ -d debian/daemon/etc/insserv.conf.d
+ install -m 644 debian/conffiles debian/daemon/DEBIAN
+ install -m 755 debian/postinst debian/postrm debian/prerm debian/daemon/DEBIAN
+ install -m 755 debian/init debian/daemon/etc/init.d/dnsmasq
+ install -m 755 debian/resolvconf debian/daemon/etc/resolvconf/update.d/dnsmasq
+ install -m 755 debian/resolvconf-package debian/daemon/usr/lib/resolvconf/dpkg-event.d/dnsmasq
+ install -m 644 debian/default debian/daemon/etc/default/dnsmasq
+ install -m 644 dnsmasq.conf.example debian/daemon/etc/dnsmasq.conf
+ install -m 644 debian/readme.dnsmasq.d debian/daemon/etc/dnsmasq.d/README
+ install -m 644 debian/dbus.conf debian/daemon/etc/dbus-1/system.d/dnsmasq.conf
+ install -m 644 debian/systemd.service debian/daemon/lib/systemd/system/dnsmasq.service
+ install -m 644 debian/insserv debian/daemon/etc/insserv.conf.d/dnsmasq
+ ln -s $(package) debian/daemon/usr/share/doc/dnsmasq
+ cd debian/daemon && find . -type f ! -regex '.*DEBIAN/.*' -printf '%P\0' | xargs -r0 md5sum > DEBIAN/md5sums
+ dpkg-gencontrol -pdnsmasq -Pdebian/daemon
+ chown -R root.root debian/daemon
+ chmod -R g-ws debian/daemon
+ dpkg --build debian/daemon ..
+
+binary-arch: checkroot
+ $(checkdir)
+ rm -rf debian/base
+ install -m 755 \
+ -d debian/base/DEBIAN \
+ -d debian/base/usr/share/doc/$(package) \
+ -d debian/base/usr/share/doc/$(package)/examples \
+ -d debian/base/var/run \
+ -d debian/base/var/lib/misc
+ make $(TARGET) PREFIX=/usr DESTDIR=`pwd`/debian/base CFLAGS="$(CFLAGS)" COPTS="$(COPTS)" CC=gcc
+ifeq (,$(findstring nodocs,$(DEB_BUILD_OPTIONS)))
+ install -m 644 doc.html debian/base/usr/share/doc/$(package)/.
+ install -m 644 setup.html debian/base/usr/share/doc/$(package)/.
+ install -m 644 dnsmasq.conf.example debian/base/usr/share/doc/$(package)/examples/.
+ install -m 644 FAQ debian/base/usr/share/doc/$(package)/.
+ gzip -9 debian/base/usr/share/doc/$(package)/FAQ
+ install -m 644 CHANGELOG debian/base/usr/share/doc/$(package)/changelog
+ gzip -9 debian/base/usr/share/doc/$(package)/changelog
+ install -m 644 CHANGELOG.archive debian/base/usr/share/doc/$(package)/changelog.archive
+ gzip -9 debian/base/usr/share/doc/$(package)/changelog.archive
+ install -m 644 dbus/DBus-interface debian/base/usr/share/doc/$(package)/.
+ gzip -9 debian/base/usr/share/doc/$(package)/DBus-interface
+endif
+ install -m 644 debian/changelog debian/base/usr/share/doc/$(package)/changelog.Debian
+ gzip -9 debian/base/usr/share/doc/$(package)/changelog.Debian
+ install -m 644 debian/readme debian/base/usr/share/doc/$(package)/README.Debian
+ install -m 644 debian/copyright debian/base/usr/share/doc/$(package)/copyright
+ gzip -9 debian/base/usr/share/man/man8/dnsmasq.8
+ for f in debian/base/usr/share/man/*; do \
+ if [ -f $$f/man8/dnsmasq.8 ]; then \
+ gzip -9 $$f/man8/dnsmasq.8 ; \
+ fi \
+ done
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+ strip -R .note -R .comment debian/base/usr/sbin/dnsmasq
+endif
+ cd debian/base && find . -type f ! -regex '.*DEBIAN/.*' -printf '%P\0' | xargs -r0 md5sum > DEBIAN/md5sums
+ dpkg-shlibdeps debian/base/usr/sbin/dnsmasq
+ dpkg-gencontrol -pdnsmasq-base -Pdebian/base
+ chown -R root.root debian/base
+ chmod -R g-ws debian/base
+ dpkg --build debian/base ..
+
+ifeq ($(DEB_BUILD_ARCH_OS),linux)
+ rm -rf debian/utils
+ install -m 755 -d debian/utils/DEBIAN \
+ -d debian/utils/usr/share/man/man1 \
+ -d debian/utils/usr/bin \
+ -d debian/utils/usr/share/doc/dnsmasq-utils
+ make -C contrib/wrt PREFIX=/usr DESTDIR=`pwd`/debian/utils CFLAGS="$(CFLAGS)" COPTS="$(COPTS)" CC=gcc
+ install -m 755 contrib/wrt/dhcp_release debian/utils/usr/bin/dhcp_release
+ install -m 644 contrib/wrt/dhcp_release.1 debian/utils/usr/share/man/man1/dhcp_release.1
+ gzip -9 debian/utils/usr/share/man/man1/dhcp_release.1
+ install -m 755 contrib/wrt/dhcp_lease_time debian/utils/usr/bin/dhcp_lease_time
+ install -m 644 contrib/wrt/dhcp_lease_time.1 debian/utils/usr/share/man/man1/dhcp_lease_time.1
+ install -m 644 debian/copyright debian/utils/usr/share/doc/dnsmasq-utils/copyright
+ install -m 644 debian/changelog debian/utils/usr/share/doc/dnsmasq-utils/changelog.Debian
+ gzip -9 debian/utils/usr/share/doc/dnsmasq-utils/changelog.Debian
+ gzip -9 debian/utils/usr/share/man/man1/dhcp_lease_time.1
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+ strip -R .note -R .comment debian/utils/usr/bin/dhcp_release
+ strip -R .note -R .comment debian/utils/usr/bin/dhcp_lease_time
+endif
+ cd debian/utils && find . -type f ! -regex '.*DEBIAN/.*' -printf '%P\0' | xargs -r0 md5sum > DEBIAN/md5sums
+ dpkg-shlibdeps -Tdebian/utils-substvars debian/utils/usr/bin/dhcp_release debian/utils/usr/bin/dhcp_lease_time
+ dpkg-gencontrol -Tdebian/utils-substvars -pdnsmasq-utils -Pdebian/utils
+ chown -R root.root debian/utils
+ chmod -R g-ws debian/utils
+ dpkg --build debian/utils ..
+endif
+
+define checkdir
+ test -f Makefile -a -f debian/rules
+endef
+
+# Below here is fairly generic really
+
+binary: binary-arch binary-indep
+build:
+
+checkroot:
+ test root = "`whoami`"
+
+.PHONY: binary binary-arch binary-indep clean checkroot
+
+
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..d3827e7
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+1.0
diff --git a/debian/systemd.service b/debian/systemd.service
new file mode 100644
index 0000000..036287d
--- /dev/null
+++ b/debian/systemd.service
@@ -0,0 +1,31 @@
+[Unit]
+Description=A lightweight DHCP and caching DNS server
+
+[Service]
+Type=dbus
+BusName=uk.org.thekelleys.dnsmasq
+
+# Test the config file and refuse starting if it is not valid.
+ExecStartPre=/usr/sbin/dnsmasq --test
+
+# Enable DBus by default because we use DBus activation.
+#
+# Drop privileges and become the 'dnsmasq' user. It is recommended by dnsmasq
+# upstream to run dnsmasq as an isolated user that does not run any other
+# processes, owns no files and has no shell. The default 'nobody' user has a
+# shell and might be used for other processes.
+#
+# Debian-specific: add /etc/dnsmasq.d to config search path (with the exception
+# of .dpkg-*). Packages such as libvirt leave config files there.
+#
+# --pid-file without argument disables writing a PIDfile, we don't need one.
+ExecStart=/usr/sbin/dnsmasq -k \
+ --enable-dbus \
+ --user=dnsmasq \
+ -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new \
+ --pid-file
+
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/man/dnsmasq.8 b/man/dnsmasq.8
index f3168bc..7dc7842 100644
--- a/man/dnsmasq.8
+++ b/man/dnsmasq.8
@@ -51,7 +51,7 @@ apply to domain names in cnames, PTR records, TXT records etc.
.B \-T, --local-ttl=<time>
When replying with information from /etc/hosts or the DHCP leases
file dnsmasq by default sets the time-to-live field to zero, meaning
-that the requestor should not itself cache the information. This is
+that the requester should not itself cache the information. This is
the correct thing to do in almost all situations. This option allows a
time-to-live (in seconds) to be given for these replies. This will
reduce the load on the server at the expense of clients using stale
@@ -276,7 +276,7 @@ server strictly in the order they appear in /etc/resolv.conf
By default, when dnsmasq has more than one upstream server available,
it will send queries to just one server. Setting this flag forces
dnsmasq to send all queries to all available servers. The reply from
-the server which answers first will be returned to the original requestor.
+the server which answers first will be returned to the original requester.
.TP
.B --stop-dns-rebind
Reject (and log) addresses from upstream nameservers which are in the
@@ -545,7 +545,7 @@ Specify per host parameters for the DHCP server. This allows a machine
with a particular hardware address to be always allocated the same
hostname, IP address and lease time. A hostname specified like this
overrides any supplied by the DHCP client on the machine. It is also
-allowable to ommit the hardware address and include the hostname, in
+allowable to omit the hardware address and include the hostname, in
which case the IP address and lease times will apply to any machine
claiming that name. For example
.B --dhcp-host=00:20:e0:3b:13:af,wap,infinite
@@ -1134,6 +1134,14 @@ without an address specified when
.B --dhcp-fqdn
is set.
.TP
+.B --dhcp-client-update
+Normally, when giving a DHCP lease, dnsmasq sets flags in the FQDN
+option to tell the client not to attempt a DDNS update with its name
+and IP address. This is because the name-IP pair is automatically
+added into dnsmasq's DNS view. This flag suppresses that behaviour,
+this is useful, for instance, to allow Windows clients to update
+Active Directory servers. See RFC 4702 for details.
+.TP
.B --enable-tftp[=<interface>]
Enable the TFTP server function. This is deliberately limited to that
needed to net-boot a client. Only reading is allowed; the tsize and
diff --git a/po/de.po b/po/de.po
index d93beff..3cf041a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -20,61 +20,61 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: cache.c:761
+#: cache.c:757
#, c-format
msgid "failed to load names from %s: %s"
msgstr "Fehler beim Laden der Namen von %s: %s"
-#: cache.c:795 dhcp.c:874
+#: cache.c:791 dhcp.c:936
#, c-format
msgid "bad address at %s line %d"
msgstr "Fehlerhafte Adresse in %s Zeile %d"
-#: cache.c:853 dhcp.c:890
+#: cache.c:849 dhcp.c:952
#, c-format
msgid "bad name at %s line %d"
msgstr "Fehlerhafter Name in %s Zeile %d"
-#: cache.c:860 dhcp.c:965
+#: cache.c:856 dhcp.c:1027
#, c-format
msgid "read %s - %d addresses"
msgstr "%s gelesen - %d Adressen"
-#: cache.c:899
+#: cache.c:895
msgid "cleared cache"
msgstr "Cache geleert"
-#: cache.c:934
+#: cache.c:930
#, c-format
msgid "No IPv4 address found for %s"
msgstr ""
-#: cache.c:975
+#: cache.c:971
#, c-format
msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
msgstr "%s ist ein CNAME, weise es der DHCP-Lease von %s nicht zu"
-#: cache.c:981
+#: cache.c:977
#, c-format
msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
msgstr "Name %s wurde dem DHCP-Lease von %s nicht zugewiesen, da der Name in %s bereits mit Adresse %s existiert"
-#: cache.c:1054
+#: cache.c:1050
#, c-format
msgid "time %lu"
msgstr "Zeit %lu"
-#: cache.c:1055
+#: cache.c:1051
#, c-format
msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
msgstr "Cache Größe %d, %d/%d Cache-Einfügungen verwendeten nicht abgelaufene Cache-Einträge wieder."
-#: cache.c:1057
+#: cache.c:1053
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr "%u weitergeleitete Anfragen, %u lokal beantwortete Anfragen"
-#: cache.c:1083
+#: cache.c:1076
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr "Server %s#%d: %u Anfragen gesendet, %u erneut versucht oder fehlgeschlagen"
@@ -88,7 +88,7 @@ msgstr "Konnte den Zufallszahlengenerator nicht initialisieren: %s"
msgid "failed to allocate memory"
msgstr "Konnte Speicher nicht belegen"
-#: util.c:227 option.c:579
+#: util.c:227 option.c:585
msgid "could not get memory"
msgstr "Speicher nicht verfügbar"
@@ -103,472 +103,481 @@ msgid "failed to allocate %d bytes"
msgstr "Konnte %d Bytes nicht belegen"
# @Simon: not perfect but I cannot get nearer right now.
-#: util.c:358
+#: util.c:377
#, c-format
msgid "infinite"
msgstr "unendlich"
-#: option.c:248
+#: option.c:252
msgid "Specify local address(es) to listen on."
msgstr "Lokale abzuhörende Adresse(n) angeben."
-#: option.c:249
+#: option.c:253
msgid "Return ipaddr for all hosts in specified domains."
msgstr "IP-Adresse für alle Hosts in angebenen Domänen festlegen."
# FIXME: the English test is not to the point. Just use a shortened description
# from the manpage instead. -- MA
-#: option.c:250
+#: option.c:254
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Für private Adressbereiche nach RFC1918 \"keine solche Domain\" liefern."
-#: option.c:251
+#: option.c:255
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Diese IP-Adresse als NXDOMAIN interpretieren (wehrt \"Suchhilfen\" ab)."
-#: option.c:252
+#: option.c:256
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Größe des Caches (Zahl der Einträge) festlegen (Voreinstellung: %s)."
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Konfigurationsdatei festlegen (Voreinstellung: %s)."
-#: option.c:254
+#: option.c:258
msgid "Do NOT fork into the background: run in debug mode."
msgstr "NICHT in den Hintergrund gehen: Betrieb im Debug-Modus"
-#: option.c:255
+#: option.c:259
msgid "Do NOT forward queries with no domain part."
msgstr "Anfragen ohne Domänen-Teil NICHT weiterschicken."
-#: option.c:256
+#: option.c:260
msgid "Return self-pointing MX records for local hosts."
msgstr "Für lokale Einträge MX-Einträge liefern, die auf sich selbst zeigen."
-#: option.c:257
+#: option.c:261
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Erweitere einfache Namen in /etc/hosts mit der Domänen-Endung."
-#: option.c:258
+#: option.c:262
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "'unechte' DNS-Anfragen von Windows-Rechnern nicht weiterleiten"
# @Simon: I'm a bit unsure about "spurious"
-#: option.c:259
+#: option.c:263
msgid "Enable DHCP in the range given with lease duration."
msgstr "DHCP für angegebenen Bereich und Dauer einschalten"
-#: option.c:260
+#: option.c:264
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Nach dem Start in diese Benutzergruppe wechseln (Voreinstellung %s)."
-#: option.c:261
+#: option.c:265
msgid "Set address or hostname for a specified machine."
msgstr "Adresse oder Hostnamen für einen angegebenen Computer setzen."
-#: option.c:262
+#: option.c:266
#, fuzzy
msgid "Read DHCP host specs from file."
msgstr "DHCP-Host-Angaben aus Datei lesen"
-#: option.c:263
+#: option.c:267
#, fuzzy
msgid "Read DHCP option specs from file."
msgstr "DHCP-Optionen aus Datei lesen"
-#: option.c:264
+#: option.c:268
#, fuzzy
msgid "Evaluate conditional tag expression."
msgstr "Auswertung eines Ausdrucks bedingter Marken"
-#: option.c:265
+#: option.c:269
#, c-format
msgid "Do NOT load %s file."
msgstr "%s-Datei NICHT laden."
-#: option.c:266
+#: option.c:270
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Hosts-Datei festlegen, die zusätzlich zu %s gelesen wird."
-#: option.c:267
+#: option.c:271
msgid "Specify interface(s) to listen on."
msgstr "Schnittstelle(n) zum Empfang festlegen."
-#: option.c:268
+#: option.c:272
msgid "Specify interface(s) NOT to listen on."
msgstr "Schnittstelle(n) festlegen, die NICHT empfangen sollen."
-#: option.c:269
+#: option.c:273
msgid "Map DHCP user class to tag."
msgstr "DHCP-Benutzerklasse auf Marke abbilden."
-#: option.c:270
+#: option.c:274
msgid "Map RFC3046 circuit-id to tag."
msgstr "RFC3046 \"circuit-id\" auf Marke abbilden."
-#: option.c:271
+#: option.c:275
msgid "Map RFC3046 remote-id to tag."
msgstr "RFC3046 \"remote-id\" auf Marke abbilden."
-#: option.c:272
+#: option.c:276
msgid "Map RFC3993 subscriber-id to tag."
msgstr "RFC3993 \"subscriber-id\" auf Marke abbilden."
-#: option.c:273
+#: option.c:277
msgid "Don't do DHCP for hosts with tag set."
msgstr "Kein DHCP für Hosts mit gesetzter Marke verwenden."
-#: option.c:274
+#: option.c:278
msgid "Force broadcast replies for hosts with tag set."
msgstr "Rundsendung für Hosts mit gesetzter Marke erzwingen."
-#: option.c:275
+#: option.c:279
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "NICHT in den Hintergrund wechseln, NICHT im Debug-Modus laufen."
-#: option.c:276
+#: option.c:280
msgid "Assume we are the only DHCP server on the local network."
msgstr "Voraussetzen, dass wir der einzige DHCP-Server im lokalen Netz sind."
-#: option.c:277
+#: option.c:281
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Festlegen, wo DHCP-Leases gespeichert werden (Voreinstellung %s)."
-#: option.c:278
+#: option.c:282
msgid "Return MX records for local hosts."
msgstr "MX-Einträge für lokale Hosts liefern."
-#: option.c:279
+#: option.c:283
msgid "Specify an MX record."
msgstr "Einen MX-Eintrag festlegen."
-#: option.c:280
+#: option.c:284
msgid "Specify BOOTP options to DHCP server."
msgstr "BOOTP-Optionen für DHCP-Server festlegen."
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "%s-Datei NICHT abfragen, nur bei SIGHUP neu laden."
-#: option.c:282
+#: option.c:286
msgid "Do NOT cache failed search results."
msgstr "Fehlerhafte Suchergebnisse NICHT zwischenspeichern."
-#: option.c:283
+#: option.c:287
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Namensserver streng in der in %s angegebenen Reihenfolge verwenden."
-#: option.c:284
+#: option.c:288
msgid "Specify options to be sent to DHCP clients."
msgstr "Optionen festlegen, die an DHCP-Klienten gesendet werden."
-#: option.c:285
+#: option.c:289
msgid "DHCP option sent even if the client does not request it."
msgstr "DHCP-Option, die selbst ohne Klientenanfrage gesendet wird."
-#: option.c:286
+#: option.c:290
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Port zum Abhören der DNS-Anfragen festlegen (53 voreingestellt)."
-#: option.c:287
+#: option.c:291
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Maximale unterstützte UDP-Paketgröße für EDNS.0 (Voreinstellung %s)."
-#: option.c:288
+#: option.c:292
msgid "Log DNS queries."
msgstr "DNS-Anfragen protokollieren."
-#: option.c:289
+#: option.c:293
msgid "Force the originating port for upstream DNS queries."
msgstr "Ausgehenden Port erzwingen für DNS-Anfragen an vorgelagerte Server."
-#: option.c:290
+#: option.c:294
msgid "Do NOT read resolv.conf."
msgstr "resolv.conf NICHT lesen."
-#: option.c:291
+#: option.c:295
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Pfad zu resolv.conf festlegen (%s voreingestellt)."
-#: option.c:292
+#: option.c:296
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Adresse(n) vorgelagerter Server festlegen, optional mit Domänen."
-#: option.c:293
+#: option.c:297
msgid "Never forward queries to specified domains."
msgstr "Anfragen für angegebene Domänen niemals weiterleiten."
-#: option.c:294
+#: option.c:298
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Domäne festlegen, die für DHCP-Leases zugewiesen wird."
-#: option.c:295
+#: option.c:299
msgid "Specify default target in an MX record."
msgstr "Voreingestelltes Ziel für MX-Einträge festlegen."
-#: option.c:296
+#: option.c:300
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr "Gültigkeitsdauer für Antworten aus /etc/hosts festlegen."
-#: option.c:297
+#: option.c:301
msgid "Specify time-to-live in seconds for negative caching."
msgstr "Gültigkeitsdauer in Sekunden für Caching negativer Ergebnisse festlegen."
-#: option.c:298
+#: option.c:302
#, fuzzy
msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
msgstr "Gültigkeitsdauer in Sekunden für Caching negativer Ergebnisse festlegen."
-#: option.c:299
+#: option.c:303
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Nach dem Start diese Benutzerrechte annehmen (%s voreingestellt)."
-#: option.c:300
+#: option.c:304
msgid "Map DHCP vendor class to tag."
msgstr "DHCP-\"vendor class\" auf Marke abbilden."
-#: option.c:301
+#: option.c:305
msgid "Display dnsmasq version and copyright information."
msgstr "dnsmasq-Version und Urheberrecht anzeigen."
-#: option.c:302
+#: option.c:306
msgid "Translate IPv4 addresses from upstream servers."
msgstr "IPv4-Adressen von vorgelagerten Servern übersetzen."
-#: option.c:303
+#: option.c:307
msgid "Specify a SRV record."
msgstr "SRV-Eintrag festlegen."
-#: option.c:304
+#: option.c:308
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr "Diese Hilfe anzeigen. Benutzen Sie --help dhcp für bekannte DHCP-Optionen."
-#: option.c:305
+#: option.c:309
#, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr "Dateipfad für Prozesskennung (PID) festlegen (Voreinstellung: %s)."
-#: option.c:306
+#: option.c:310
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Höchstzahl der DHCP-Leases festlegen (%s voreingestellt)."
-#: option.c:307
+#: option.c:311
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr "DNS-Anfragen abhängig der Emfpangsschnittstelle beantworten."
-#: option.c:308
+#: option.c:312
msgid "Specify TXT DNS record."
msgstr "DNS-TXT-Eintrag festlegen."
-#: option.c:309
+#: option.c:313
msgid "Specify PTR DNS record."
msgstr "DNS-PTR-Eintrag festlegen."
-#: option.c:310
+#: option.c:314
msgid "Give DNS name to IPv4 address of interface."
msgstr "Schnittstellennamen zur IPv4-Adresse des Interfaces auflösen."
-#: option.c:311
+#: option.c:315
msgid "Bind only to interfaces in use."
msgstr "Nur an verwendete Schnittstellen binden."
-#: option.c:312
+#: option.c:316
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Statische DHCP-Host-Information aus %s lesen."
-#: option.c:313
+#: option.c:317
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "DBus-Schnittstelle zum Festlegen vorgelagerter Server usw. festlegen."
-#: option.c:314
+#: option.c:318
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Auf dieser Schnittstelle kein DHCP anbieten, sondern nur DNS."
-#: option.c:315
+#: option.c:319
msgid "Enable dynamic address allocation for bootp."
msgstr "Dynamische Adressbelegung für bootp einschalten."
-#: option.c:316
+#: option.c:320
msgid "Map MAC address (with wildcards) to option set."
msgstr "MAC-Adresse (mit Jokerzeichen) auf Netzmarke abbilden."
-#: option.c:317
+#: option.c:321
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr "DHCP-Anfragen von Alias-Schnittstellen für die Hauptschnittstelle beantworten."
-#: option.c:318
+#: option.c:322
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr "ICMP-Echo-Adressprüfung im DHCP-Server abschalten."
-#: option.c:319
+#: option.c:323
msgid "Script to run on DHCP lease creation and destruction."
msgstr "Skript, das bei Erzeugung/Löschung einer DHCP-Lease laufen soll."
-#: option.c:320
+#: option.c:324
msgid "Read configuration from all the files in this directory."
msgstr "Konfiguration aus allen Dateien in diesem Verzeichnis lesen."
-#: option.c:321
+#: option.c:325
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr "Für diese Syslog-Anlage oder in Datei loggen (Voreinstellung DAEMON)."
-#: option.c:322
+#: option.c:326
msgid "Do not use leasefile."
msgstr "Keine Lease-Datei benützen."
-#: option.c:323
+#: option.c:327
#, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr "Höchstzahl nebenläufiger DNS-Anfragen (%s voreingestellt)."
-#: option.c:324
+#: option.c:328
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr "DNS-Cache beim Neuladen von %s löschen."
-#: option.c:325
+#: option.c:329
msgid "Ignore hostnames provided by DHCP clients."
msgstr "Von DHCP-Clients gelieferte Hostnamen ignorieren."
-#: option.c:326
+#: option.c:330
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr "Dateinamen und Server-Datenfehler für zusätzliche DHCP-Optionen NICHT wiederverwenden."
-#: option.c:327
+#: option.c:331
msgid "Enable integrated read-only TFTP server."
msgstr "Eingebauten Nur-Lese-TFTP-Server einschalten."
-#: option.c:328
+#: option.c:332
msgid "Export files by TFTP only from the specified subtree."
msgstr "Nur vom festgelegten Unterbaum Dateien per TFTP exportieren."
-#: option.c:329
+#: option.c:333
msgid "Add client IP address to tftp-root."
msgstr "IP-Adresse des Klienten an tftp-root anhängen."
-#: option.c:330
+#: option.c:334
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr "Zugriff nur auf Dateien gestatten, die dem dnsmasq aufrufenden Benutzer gehören."
-#: option.c:331
+#: option.c:335
#, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr "Höchstzahl nebenläufiger TFTP-Übertragungen (%s voreingestellt)."
-#: option.c:332
+#: option.c:336
msgid "Disable the TFTP blocksize extension."
msgstr "TFTP-Blockgrößen-Erweiterung abschalten."
-#: option.c:333
+#: option.c:337
msgid "Ephemeral port range for use by TFTP transfers."
msgstr "Bereich für vorübergehende Ports für TFTP-Übertragungen."
-#: option.c:334
+#: option.c:338
msgid "Extra logging for DHCP."
msgstr "Erweiterte DHCP-Protokollierung."
-#: option.c:335
+#: option.c:339
msgid "Enable async. logging; optionally set queue length."
msgstr "Asynchrone Protokollierung einschalten, opt. Warteschlangenlänge festlegen."
-#: option.c:336
+#: option.c:340
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr "DNS-Rebinding unterbinden, private IP-Bereiche bei der Auflösung ausfiltern."
-#: option.c:337
+#: option.c:341
msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
msgstr "Auflösung zu 127.0.0.0/8 erlauben, für RBL-Server."
-#: option.c:338
+#: option.c:342
#, fuzzy
msgid "Inhibit DNS-rebind protection on this domain."
msgstr "DNS-Rebind-Schutz für diese Domäne sperren."
-#: option.c:339
+#: option.c:343
msgid "Always perform DNS queries to all servers."
msgstr "DNS-Anfragen immer an alle Server weiterleiten."
-#: option.c:340
+#: option.c:344
msgid "Set tag if client includes matching option in request."
msgstr "Marke setzen, wenn Klient eine entsprechende Option anfragt."
-#: option.c:341
+#: option.c:345
msgid "Use alternative ports for DHCP."
msgstr "Alternative Ports für DHCP verwenden."
-#: option.c:342
+#: option.c:346
msgid "Run lease-change script as this user."
msgstr "Lease-Änderungs-Skript mit den Rechten dieses Nutzers ausführen."
-#: option.c:343
+#: option.c:347
msgid "Specify NAPTR DNS record."
msgstr "DNS-NAPTR-Eintrag festlegen."
-#: option.c:344
+#: option.c:348
msgid "Specify lowest port available for DNS query transmission."
msgstr "Niedrigsten verfügbaren Port für Übertragung von DNS-Anfragen festlegen."
-#: option.c:345
+#: option.c:349
msgid "Use only fully qualified domain names for DHCP clients."
msgstr "Für DHCP-Klienten nur vollständig bestimmte Domänennamen benutzen."
# FIXME: probably typo in original message. -- MA
-#: option.c:346
+#: option.c:350
#, fuzzy
msgid "Generate hostnames based on MAC address for nameless clients."
msgstr "Für namenlose Klienten die Hostnamen MAC-basiert erzeugen."
-#: option.c:347
+#: option.c:351
msgid "Use these DHCP relays as full proxies."
msgstr "Diese DHCP-Relais als vollwertige Proxies verwenden."
-#: option.c:348
+#: option.c:352
msgid "Specify alias name for LOCAL DNS name."
msgstr "Alias für LOKALEN DNS-Namen festlegen."
-#: option.c:349
+#: option.c:353
msgid "Prompt to send to PXE clients."
msgstr "Aufforderung, die an PXE-Klienten geschickt wird."
-#: option.c:350
+#: option.c:354
msgid "Boot service for PXE menu."
msgstr "Boot-Dienst für PXE-Menü."
-#: option.c:351
+#: option.c:355
msgid "Check configuration syntax."
msgstr "Konfigurationssyntax prüfen."
-#: option.c:352
+#: option.c:356
msgid "Add requestor's MAC address to forwarded DNS queries."
msgstr ""
-#: option.c:353
+#: option.c:357
#, fuzzy
msgid "Proxy DNSSEC validation results from upstream nameservers."
msgstr "IPv4-Adressen von vorgelagerten Servern übersetzen."
-#: option.c:354
+#: option.c:358
msgid "Attempt to allocate sequential IP addresses to DHCP clients."
msgstr ""
-#: option.c:355
+#: option.c:359
msgid "Copy connection-track mark from queries to upstream connections."
msgstr ""
-#: option.c:644
+#: option.c:360
+msgid "Allow DHCP clients to do their own DDNS updates."
+msgstr ""
+
+#: option.c:361
+#, fuzzy
+msgid "Specify path to Lua script (no default)."
+msgstr "Dateipfad für Prozesskennung (PID) festlegen (Voreinstellung: %s)."
+
+#: option.c:650
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -577,232 +586,237 @@ msgstr ""
"Verwendung: dnsmasq [Optionen]\n"
"\n"
-#: option.c:646
+#: option.c:652
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Auf der Befehlszeile nur kurze Optionen verwenden!\n"
-#: option.c:648
+#: option.c:654
#, c-format
msgid "Valid options are:\n"
msgstr "Gültige Optionen sind:\n"
-#: option.c:689
+#: option.c:695
#, c-format
msgid "Known DHCP options:\n"
msgstr "Bekannte DHCP-Optionen:\n"
-#: option.c:804
+#: option.c:810
msgid "bad dhcp-option"
msgstr "Fehlerhafte DHCP-Option"
-#: option.c:866
+#: option.c:872
msgid "bad IP address"
msgstr "Fehlerhafte IP-Adresse"
-#: option.c:974
+#: option.c:980
msgid "bad domain in dhcp-option"
msgstr "Fehlerhafte Domäne in DHCP-Option"
-#: option.c:1040
+#: option.c:1046
msgid "dhcp-option too long"
msgstr "DHCP-Option zu lang"
-#: option.c:1049
+#: option.c:1055
msgid "illegal dhcp-match"
msgstr "Unzulässige dhcp-match-Option"
-#: option.c:1093
+#: option.c:1099
msgid "illegal repeated flag"
msgstr "unzulässig wiederholte Markierung"
-#: option.c:1101
+#: option.c:1107
msgid "illegal repeated keyword"
msgstr "unzulässig wiederholtes Schlüsselwort"
-#: option.c:1153 option.c:3062
+#: option.c:1159 option.c:3077
#, c-format
msgid "cannot access directory %s: %s"
msgstr "Kann auf Verzeichnis %s nicht zugreifen: %s"
-#: option.c:1184 tftp.c:465
+#: option.c:1190 tftp.c:464
#, c-format
msgid "cannot access %s: %s"
msgstr "Kann auf %s nicht zugreifen: %s"
-#: option.c:1213
+#: option.c:1219
msgid "setting log facility is not possible under Android"
msgstr ""
-#: option.c:1222
+#: option.c:1228
msgid "bad log facility"
msgstr ""
-#: option.c:1271
+#: option.c:1277
msgid "bad MX preference"
msgstr "unzulässige MX-Präferenz-Angabe"
-#: option.c:1276
+#: option.c:1282
msgid "bad MX name"
msgstr "unzulässiger MX-Name"
-#: option.c:1290
+#: option.c:1296
msgid "bad MX target"
msgstr "unzulässiges MX-Ziel"
-#: option.c:1300
+#: option.c:1308
msgid "cannot run scripts under uClinux"
msgstr "unter uClinux ist die Skriptausführung nicht möglich"
-#: option.c:1302
+#: option.c:1310
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr "Neuübersetzung mit HAVE_SCRIPT nötig, um Lease-Änderungs-Skripte auszuführen"
-#: option.c:1607 option.c:1611
+#: option.c:1314
+#, fuzzy
+msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts"
+msgstr "Neuübersetzung mit HAVE_SCRIPT nötig, um Lease-Änderungs-Skripte auszuführen"
+
+#: option.c:1622 option.c:1626
msgid "bad port"
msgstr "unzulässiger Port"
-#: option.c:1634 option.c:1665
+#: option.c:1649 option.c:1680
msgid "interface binding not supported"
msgstr "Schnittstellenbindung nicht unterstützt"
-#: option.c:1645 option.c:2614
+#: option.c:1660 option.c:2629
msgid "bad interface name"
msgstr "unzulässiger Schnittestellenname"
-#: option.c:1810
+#: option.c:1825
msgid "bad port range"
msgstr "unzulässiger Portbereich"
-#: option.c:1827
+#: option.c:1842
msgid "bad bridge-interface"
msgstr "unzulässige Brücken-Schnittstelle"
-#: option.c:1870
+#: option.c:1885
msgid "bad dhcp-range"
msgstr "unzulässiger DHCP-Bereich"
-#: option.c:1898
+#: option.c:1913
msgid "only one tag allowed"
msgstr "nur eine Marke zulässig"
-#: option.c:1945
+#: option.c:1960
msgid "inconsistent DHCP range"
msgstr "inkonsistenter DHCP-Bereich"
-#: option.c:2039 option.c:2067
+#: option.c:2054 option.c:2082
msgid "bad hex constant"
msgstr ""
-#: option.c:2061
+#: option.c:2076
msgid "cannot match tags in --dhcp-host"
msgstr ""
-#: option.c:2129
+#: option.c:2144
msgid "bad DHCP host name"
msgstr "unzulässiger DHCP-Hostname"
-#: option.c:2210
+#: option.c:2225
msgid "bad tag-if"
msgstr "unzulässige bedingte Marke (tag-if)"
-#: option.c:2499 option.c:2784
+#: option.c:2514 option.c:2799
msgid "invalid port number"
msgstr "unzulässige Portnummer"
-#: option.c:2561
+#: option.c:2576
msgid "bad dhcp-proxy address"
msgstr "Fehlerhafte DHCP-Proxy-Adresse"
-#: option.c:2601
+#: option.c:2616
msgid "invalid alias range"
msgstr "unzulässiger Alias-Bereich"
-#: option.c:2639
+#: option.c:2654
msgid "bad CNAME"
msgstr "unzulässiger CNAME"
-#: option.c:2644
+#: option.c:2659
msgid "duplicate CNAME"
msgstr "doppelter CNAME"
-#: option.c:2664
+#: option.c:2679
msgid "bad PTR record"
msgstr "unzulässiger PTR-Eintrag"
-#: option.c:2695
+#: option.c:2710
msgid "bad NAPTR record"
msgstr "unzulässiger NAPTR-Eintrag"
-#: option.c:2727
+#: option.c:2742
msgid "bad TXT record"
msgstr "unzulässiger TXT-Eintrag"
-#: option.c:2770
+#: option.c:2785
msgid "bad SRV record"
msgstr "unzulässiger SRV-Eintrag"
-#: option.c:2777
+#: option.c:2792
msgid "bad SRV target"
msgstr "unzulässiges SRV-Ziel"
-#: option.c:2791
+#: option.c:2806
msgid "invalid priority"
msgstr "unzulässige Priorität"
-#: option.c:2798
+#: option.c:2813
msgid "invalid weight"
msgstr "unzulässige Wichtung"
-#: option.c:2817
+#: option.c:2832
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr "unzulässige Option (prüfen Sie, ob dnsmasq mit DHCP/TFTP/DBus-Unterstützt übersetzt wurde)"
-#: option.c:2881
+#: option.c:2896
msgid "missing \""
msgstr "fehlende \\\""
-#: option.c:2940
+#: option.c:2955
msgid "bad option"
msgstr "unzulässige Option"
-#: option.c:2942
+#: option.c:2957
msgid "extraneous parameter"
msgstr "überschüssiger Parameter"
-#: option.c:2944
+#: option.c:2959
msgid "missing parameter"
msgstr "fehler Parameter"
-#: option.c:2948
+#: option.c:2963
msgid "error"
msgstr "Fehler"
-#: option.c:2953
+#: option.c:2968
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s in Zeile %d von %%s"
-#: option.c:3017 tftp.c:629
+#: option.c:3032 tftp.c:627
#, c-format
msgid "cannot read %s: %s"
msgstr "kann %s nicht lesen: %s"
-#: option.c:3183 option.c:3219
+#: option.c:3198 option.c:3234
#, c-format
msgid "read %s"
msgstr "%s gelesen"
-#: option.c:3271
+#: option.c:3286
msgid "junk found in command line"
msgstr ""
-#: option.c:3301
+#: option.c:3316
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq Version %s %s\n"
-#: option.c:3302
+#: option.c:3317
#, c-format
msgid ""
"Compile time options %s\n"
@@ -811,64 +825,64 @@ msgstr ""
"Ãœbersetzungs-Optionen %s\n"
"\n"
-#: option.c:3303
+#: option.c:3318
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Für diese Software wird ABSOLUT KEINE GARANTIE gewährt.\n"
# FIXME: this must be one long string! -- MA
-#: option.c:3304
+#: option.c:3319
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:3305
+#: option.c:3320
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr ""
-#: option.c:3316
+#: option.c:3331
msgid "try --help"
msgstr "versuchen Sie --help"
-#: option.c:3318
+#: option.c:3333
msgid "try -w"
msgstr "versuchen Sie -w"
-#: option.c:3321
+#: option.c:3336
#, c-format
msgid "bad command line options: %s"
msgstr "unzulässige Optionen auf der Befehlszeile: %s"
-#: option.c:3362
+#: option.c:3377
#, c-format
msgid "cannot get host-name: %s"
msgstr "kann Hostnamen nicht ermitteln: %s"
-#: option.c:3390
+#: option.c:3405
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "mit -n/--no-poll ist nur eine resolv.conf-Datei zulässig."
-#: option.c:3400
+#: option.c:3415
msgid "must have exactly one resolv.conf to read domain from."
msgstr "Um die Domäne zu lesen, muss genau eine resolv.conf-Datei verwendet werden."
-#: option.c:3403 network.c:845 dhcp.c:823
+#: option.c:3418 network.c:821 dhcp.c:885
#, c-format
msgid "failed to read %s: %s"
msgstr "konnte %s nicht lesen: %s"
-#: option.c:3420
+#: option.c:3435
#, c-format
msgid "no search directive found in %s"
msgstr "keine \"search\"-Anweisung in %s gefunden"
-#: option.c:3441
+#: option.c:3456
#, fuzzy
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr "für --dhcp-fqdn muss eine Domäne vorausgewählt werden"
-#: option.c:3445
+#: option.c:3460
msgid "syntax check OK"
msgstr "Syntaxprüfung OK"
@@ -882,376 +896,381 @@ msgstr "Namensserver %s hat eine rekursive Anfrage verweigert"
msgid "possible DNS-rebind attack detected: %s"
msgstr "möglichen DNS-Rebind-Angriff entdeckt: %s"
-#: network.c:171
-#, c-format
-msgid "unknown interface %s in bridge-interface"
-msgstr "unbekannte Schnittstelle %s in bridge-interface"
-
-#: network.c:384
+#: network.c:354
#, fuzzy, c-format
msgid "failed to create listening socket for %s: %s"
msgstr "Konnte Empfangs-Socket nicht erzeugen: %s"
-#: network.c:743
+#: network.c:719
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "konnte nicht an Server-Socket für %s binden: %s"
-#: network.c:780
+#: network.c:756
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignoriere Namensserver %s - lokale Schnittstelle"
-#: network.c:791
+#: network.c:767
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr "ignoriere Namensserver %s - kann Socket nicht erzeugen/binden: %s"
# FIXME: this isn't translatable - always provide full strings, do not assemble yourself! -- MA
-#: network.c:808
+#: network.c:784
msgid "unqualified"
msgstr ""
-#: network.c:808
+#: network.c:784
msgid "names"
msgstr ""
-#: network.c:810
+#: network.c:786
msgid "default"
msgstr ""
-#: network.c:812
+#: network.c:788
msgid "domain"
msgstr ""
-#: network.c:815
+#: network.c:791
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:817
+#: network.c:793
#, c-format
msgid "using standard nameservers for %s %s"
msgstr ""
-#: network.c:819
+#: network.c:795
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:822
+#: network.c:798
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr ""
-#: network.c:824
+#: network.c:800
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
-#: dnsmasq.c:152
+#: dnsmasq.c:114
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr "TFTP-Server nicht verfügbar, setzen Sie HAVE_TFTP in src/config.h"
-#: dnsmasq.c:157
+#: dnsmasq.c:119
msgid "Cannot use --conntrack AND --query-port"
msgstr ""
-#: dnsmasq.c:160
+#: dnsmasq.c:122
#, fuzzy
msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
msgstr "TFTP-Server nicht verfügbar, setzen Sie HAVE_TFTP in src/config.h"
-#: dnsmasq.c:165
+#: dnsmasq.c:127
msgid "asychronous logging is not available under Solaris"
msgstr "asynchrone Protokollierung unter Solaris nicht verfügbar"
-#: dnsmasq.c:170
+#: dnsmasq.c:132
#, fuzzy
msgid "asychronous logging is not available under Android"
msgstr "asynchrone Protokollierung unter Solaris nicht verfügbar"
-#: dnsmasq.c:189
+#: dnsmasq.c:151
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr "konnte Schnitstellenliste nicht beziehen: %s"
-#: dnsmasq.c:197
+#: dnsmasq.c:159
#, c-format
msgid "unknown interface %s"
msgstr "unbekannte Schnittstelle %s"
-#: dnsmasq.c:203
+#: dnsmasq.c:165
#, c-format
msgid "no interface with address %s"
msgstr "keine Schnittstelle mit Adresse %s"
-#: dnsmasq.c:219 dnsmasq.c:716
+#: dnsmasq.c:181 dnsmasq.c:680
#, c-format
msgid "DBus error: %s"
msgstr "DBus-Fehler: %s"
-#: dnsmasq.c:222
+#: dnsmasq.c:184
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus nicht verfügbar: setzen Sie HAVE_DBUS in src/config.h"
-#: dnsmasq.c:248
+#: dnsmasq.c:211
#, c-format
msgid "unknown user or group: %s"
msgstr "Unbekannter Benutzer oder Gruppe: %s"
-#: dnsmasq.c:303
+#: dnsmasq.c:266
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr "kann nicht ins Wurzelverzeichnis des Dateisystems wechseln: %s"
# FIXME: this and the next would need commas after the version
-#: dnsmasq.c:477
+#: dnsmasq.c:441
#, c-format
msgid "started, version %s DNS disabled"
msgstr "gestartet, Version %s, DNS abgeschaltet"
-#: dnsmasq.c:479
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s cachesize %d"
msgstr "gestartet, Version %s, Cachegröße %d"
-#: dnsmasq.c:481
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cache disabled"
msgstr ""
-#: dnsmasq.c:483
+#: dnsmasq.c:447
#, c-format
msgid "compile time options: %s"
msgstr "Ãœbersetzungsoptionen: %s"
-#: dnsmasq.c:489
+#: dnsmasq.c:453
msgid "DBus support enabled: connected to system bus"
msgstr "DBus-Unterstützung eingeschaltet: mit Systembus verbunden"
-#: dnsmasq.c:491
+#: dnsmasq.c:455
msgid "DBus support enabled: bus connection pending"
msgstr "DBus-Unterstützung eingeschaltet: warte auf Systembus-Verbindung"
-#: dnsmasq.c:496
+#: dnsmasq.c:460
#, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr "Warnung: konnte den Besitzer von %s nicht ändern: %s"
-#: dnsmasq.c:500
+#: dnsmasq.c:464
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "Aktiviere --bind-interfaces wegen Einschränkungen des Betriebssystems"
-#: dnsmasq.c:505
+#: dnsmasq.c:469
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "Warnung: Schnittstelle %s existiert derzeit nicht"
-#: dnsmasq.c:510
+#: dnsmasq.c:474
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr "Warnung: Ignoriere \"resolv-file\", weil \"no-resolv\" aktiv ist"
-#: dnsmasq.c:513
+#: dnsmasq.c:477
msgid "warning: no upstream servers configured"
msgstr "Warnung: keine vorgelagerten (Upstream) Server konfiguriert"
-#: dnsmasq.c:517
+#: dnsmasq.c:481
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr "asynchrone Protokollierung eingeschaltet, Warteschlange fasst %d Nachrichten"
-#: dnsmasq.c:530
+#: dnsmasq.c:494
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "DHCP, nur statische Leases auf %.0s%s, Lease-Zeit %s"
-#: dnsmasq.c:532
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, proxy on subnet %.0s%s%.0s"
msgstr "DHCP, Proxy im Subnetz %.0s%s%.0s"
-#: dnsmasq.c:533
+#: dnsmasq.c:497
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, IP-Bereich %s - %s, Lease-Zeit %s "
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "root is "
msgstr "FIXME: this and the next few must be full strings to be translatable - do not assemble in code"
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "enabled"
msgstr ""
-#: dnsmasq.c:550
+#: dnsmasq.c:514
msgid "secure mode"
msgstr ""
-#: dnsmasq.c:576
+#: dnsmasq.c:540
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "Begrenze gleichzeitige TFTP-Ãœbertragungen auf maximal %d"
-#: dnsmasq.c:718
+#: dnsmasq.c:682
msgid "connected to system DBus"
msgstr "Mit System-DBus verbunden"
-#: dnsmasq.c:813
+#: dnsmasq.c:806
#, c-format
msgid "cannot fork into background: %s"
msgstr "kann nicht in den Hintergrund abspalten: %s"
-#: dnsmasq.c:816
+#: dnsmasq.c:809
#, c-format
msgid "failed to create helper: %s"
msgstr "kann Helfer nicht erzeugen: %s"
-#: dnsmasq.c:819
+#: dnsmasq.c:812
#, c-format
msgid "setting capabilities failed: %s"
msgstr "kann \"capabilities\" nicht setzen: %s"
-#: dnsmasq.c:823
+#: dnsmasq.c:815
#, c-format
msgid "failed to change user-id to %s: %s"
msgstr "Kann nicht Benutzerrechte %s annehmen: %s"
-#: dnsmasq.c:828
+#: dnsmasq.c:818
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr "Kann nicht Gruppenrechte %s annehmen: %s"
-#: dnsmasq.c:831
+#: dnsmasq.c:821
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr "kann die Prozessidentifikations-(PID)-Datei %s nicht öffnen: %s"
-#: dnsmasq.c:834
-#, c-format
-msgid "cannot open %s: %s"
+#: dnsmasq.c:824
+#, fuzzy, c-format
+msgid "cannot open log %s: %s"
msgstr "kann %s nicht öffnen: %s"
-#: dnsmasq.c:889
-#, c-format
-msgid "child process killed by signal %d"
+#: dnsmasq.c:827
+#, fuzzy, c-format
+msgid "failed to load Lua script: %s"
+msgstr "konnte %s nicht lesen: %s"
+
+#: dnsmasq.c:886
+#, fuzzy, c-format
+msgid "script process killed by signal %d"
msgstr "Tochterprozess durch Signal %d zerstört"
-#: dnsmasq.c:893
-#, c-format
-msgid "child process exited with status %d"
+#: dnsmasq.c:890
+#, fuzzy, c-format
+msgid "script process exited with status %d"
msgstr "Tochterprozess beendete sich mit Status %d"
-#: dnsmasq.c:897
+#: dnsmasq.c:894
#, c-format
msgid "failed to execute %s: %s"
msgstr "konnte %s nicht ausführen: %s"
-#: dnsmasq.c:941
+#: dnsmasq.c:939
msgid "exiting on receipt of SIGTERM"
msgstr "beende nach Empfang von SIGTERM"
-#: dnsmasq.c:969
+#: dnsmasq.c:967
#, c-format
msgid "failed to access %s: %s"
msgstr "konnte auf %s nicht zugreifen: %s"
-#: dnsmasq.c:999
+#: dnsmasq.c:997
#, c-format
msgid "reading %s"
msgstr "lese %s"
-#: dnsmasq.c:1010
+#: dnsmasq.c:1008
#, c-format
msgid "no servers found in %s, will retry"
msgstr "keine Server in %s gefunden, werde es später neu versuchen"
-#: dhcp.c:39
+#: dhcp.c:49
#, c-format
msgid "cannot create DHCP socket: %s"
msgstr "kann DHCP-Socket nicht erzeugen: %s"
-#: dhcp.c:51
+#: dhcp.c:64
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "kann Optionen für DHCP-Socket nicht setzen: %s"
-#: dhcp.c:64
+#: dhcp.c:77
#, c-format
msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
msgstr "kann SO_REUSE{ADDR|PORT} für DHCP-Socket nicht aktivieren: %s"
-#: dhcp.c:76
+#: dhcp.c:89
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "kann nicht an DHCP-Server-Socket binden: %s"
-#: dhcp.c:102
+#: dhcp.c:115
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "kann ICMP-Rohdaten-Socket nicht erzeugen: %s."
-#: dhcp.c:278
+#: dhcp.c:264
+#, c-format
+msgid "unknown interface %s in bridge-interface"
+msgstr "unbekannte Schnittstelle %s in bridge-interface"
+
+#: dhcp.c:289
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr "DHCP-Paket ohne Adresse an Schnittstelle %s empfangen"
-#: dhcp.c:442
+#: dhcp.c:504
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "DHCP-Bereich %s - %s passt nicht zur Netzmaske %s"
-#: dhcp.c:861
+#: dhcp.c:923
#, c-format
msgid "bad line at %s line %d"
msgstr "ungültige Zeile %2$d in Datei %1$s"
-#: dhcp.c:904
+#: dhcp.c:966
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr "ignoriere %s Zeile %d, doppelter Name oder doppelte IP-Adresse"
-#: dhcp.c:987
+#: dhcp.c:1049
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "doppelte IP-Adresse %s in \"dhcp-config\"-Anweisung"
-#: dhcp.c:990
+#: dhcp.c:1052
#, c-format
msgid "duplicate IP address %s in %s."
msgstr "doppelte IP-Adresse %s in %s."
-#: dhcp.c:1033
+#: dhcp.c:1095
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr "%s hat mehr als eine Adresse in hosts-Datei, benutze %s für DHCP"
-#: dhcp.c:1038
+#: dhcp.c:1100
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "doppelte IP-Adresse %s (%s) in \"dhcp-config\"-Anweisung"
-#: lease.c:67
+#: lease.c:70
#, c-format
msgid "cannot open or create lease file %s: %s"
msgstr "kann Lease-Datei %s nicht öffnen: %s"
-#: lease.c:93
+#: lease.c:116
msgid "too many stored leases"
msgstr "zu viele Leases gespeichert"
-#: lease.c:129
+#: lease.c:173
#, c-format
msgid "cannot run lease-init script %s: %s"
msgstr "kann Lease-Start-Skript %s nicht ausführen: %s"
-#: lease.c:135
+#: lease.c:179
#, c-format
msgid "lease-init script returned exit code %s"
msgstr "Lease-Start-Skript beendete sich mit Code %s"
# FIXME: This should be %u s also in English according to NIST and SI rules. -- MA
-#: lease.c:235
+#: lease.c:325
#, c-format
msgid "failed to write %s: %s (retry in %us)"
msgstr "Konnte %s nicht schreiben: %s (Neuversuch in %u s)"
@@ -1286,19 +1305,19 @@ msgstr "%u verfügbare(r) DHCP-Bereich: %s - %s"
msgid "disabled"
msgstr ""
-#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
+#: rfc2131.c:428 rfc2131.c:944 rfc2131.c:1336
msgid "ignored"
msgstr ""
-#: rfc2131.c:443 rfc2131.c:1183
+#: rfc2131.c:443 rfc2131.c:1182
msgid "address in use"
msgstr ""
-#: rfc2131.c:457 rfc2131.c:999
+#: rfc2131.c:457 rfc2131.c:998
msgid "no address available"
msgstr ""
-#: rfc2131.c:464 rfc2131.c:1146
+#: rfc2131.c:464 rfc2131.c:1145
msgid "wrong network"
msgstr ""
@@ -1306,148 +1325,148 @@ msgstr ""
msgid "no address configured"
msgstr ""
-#: rfc2131.c:485 rfc2131.c:1196
+#: rfc2131.c:485 rfc2131.c:1195
msgid "no leases left"
msgstr ""
-#: rfc2131.c:570
+#: rfc2131.c:569
#, c-format
msgid "%u client provides name: %s"
msgstr "%u Klient stellt Name bereit: %s"
-#: rfc2131.c:725
+#: rfc2131.c:724
#, c-format
msgid "%u vendor class: %s"
msgstr "%u \"Vendor class\": %s"
-#: rfc2131.c:727
+#: rfc2131.c:726
#, c-format
msgid "%u user class: %s"
msgstr "%u Benutzerklasse: %s"
-#: rfc2131.c:786
+#: rfc2131.c:785
msgid "PXE BIS not supported"
msgstr "PXE BIS nicht unterstützt"
-#: rfc2131.c:915
+#: rfc2131.c:914
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "schalte statische DHCP-Adresse %s für %s ab"
# FIXME: do not assemble
-#: rfc2131.c:936
+#: rfc2131.c:935
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:968
+#: rfc2131.c:967
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr "benutze konfigurierte Adresse %s nicht, weil sie an %s verleast ist"
-#: rfc2131.c:978
+#: rfc2131.c:977
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr "benutze konfigurierte Adresse %s nicht, weil sie von Server/Relais verwendet wird"
-#: rfc2131.c:981
+#: rfc2131.c:980
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr "benutze konfigurierte Adresse %s nicht, weil sie zuvor abgelehnt wurde"
# FIXME: do not assemble
-#: rfc2131.c:997 rfc2131.c:1189
+#: rfc2131.c:996 rfc2131.c:1188
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:1084
+#: rfc2131.c:1083
msgid "wrong server-ID"
msgstr ""
-#: rfc2131.c:1103
+#: rfc2131.c:1102
msgid "wrong address"
msgstr ""
-#: rfc2131.c:1121
+#: rfc2131.c:1120
msgid "lease not found"
msgstr ""
-#: rfc2131.c:1154
+#: rfc2131.c:1153
msgid "address not available"
msgstr ""
-#: rfc2131.c:1165
+#: rfc2131.c:1164
msgid "static lease available"
msgstr ""
-#: rfc2131.c:1169
+#: rfc2131.c:1168
msgid "address reserved"
msgstr ""
-#: rfc2131.c:1177
+#: rfc2131.c:1176
#, c-format
msgid "abandoning lease to %s of %s"
msgstr "Gebe Lease von %2$s an %1$s auf"
-#: rfc2131.c:1746
+#: rfc2131.c:1745
#, c-format
msgid "%u tags: %s"
msgstr "%u Marken: %s"
-#: rfc2131.c:1774
+#: rfc2131.c:1773
#, c-format
msgid "%u bootfile name: %s"
msgstr "%u Name der Bootdatei: %s"
-#: rfc2131.c:1783
+#: rfc2131.c:1782
#, c-format
msgid "%u server name: %s"
msgstr "%u Servername: %s"
-#: rfc2131.c:1791
+#: rfc2131.c:1790
#, c-format
msgid "%u next server: %s"
msgstr "%u nächster Server: %s"
-#: rfc2131.c:1794
+#: rfc2131.c:1793
#, c-format
msgid "%u broadcast response"
msgstr "%u Antwort per Rundsendung"
-#: rfc2131.c:1857
+#: rfc2131.c:1856
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr "kann DHCP/BOOTP-Opition %d nicht setzen: kein Platz mehr im Paket"
-#: rfc2131.c:2097
+#: rfc2131.c:2096
msgid "PXE menu too large"
msgstr "PXE-Menüeintrag zu groß"
-#: rfc2131.c:2253
+#: rfc2131.c:2252
#, c-format
msgid "Ignoring duplicate dhcp-option %d"
msgstr ""
-#: rfc2131.c:2257
+#: rfc2131.c:2256
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr "Ignoriere Domäne %s für DHCP-Hostnamen %s"
-#: rfc2131.c:2275
+#: rfc2131.c:2274
#, c-format
msgid "%u requested options: %s"
msgstr "%u angeforderte Optionen: %s"
-#: rfc2131.c:2550
+#: rfc2131.c:2549
#, c-format
msgid "cannot send RFC3925 option: too many options for enterprise number %d"
msgstr "Kann RFC3925-Option nicht senden: zu viele Optionen für Unternehmen Nr. %d"
-#: netlink.c:70
+#: netlink.c:71
#, c-format
msgid "cannot create netlink socket: %s"
msgstr "kann Netlink-Socket nicht erzeugen: %s"
-#: netlink.c:289
+#: netlink.c:321
#, c-format
msgid "netlink returns error: %s"
msgstr "Netlink liefert Fehler %s"
@@ -1464,41 +1483,45 @@ msgstr "vorgelagerte Server von DBus gesetzt"
msgid "could not register a DBus message handler"
msgstr "konnte Steuerungsprogramm für DBus-Nachrichten nicht anmelden"
-#: bpf.c:224
+#: bpf.c:225
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "konnte DHCP-BPF-Socket nicht einrichten: %s"
-#: bpf.c:252
+#: bpf.c:253
#, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "DHCP-Anfrage für nicht unterstützen Hardwaretyp (%d) auf %s empfangen"
-#: tftp.c:286
+#: helper.c:130
+msgid "lease() function missing in Lua script"
+msgstr ""
+
+#: tftp.c:285
msgid "unable to get free port for TFTP"
msgstr "konnte keinen freien Port für TFTP bekommen"
-#: tftp.c:301
+#: tftp.c:300
#, c-format
msgid "unsupported request from %s"
msgstr "nicht unterstützte Anfrage von %s"
-#: tftp.c:411
+#: tftp.c:410
#, c-format
msgid "file %s not found"
msgstr "Datei %s nicht gefunden"
-#: tftp.c:527
+#: tftp.c:525
#, c-format
msgid "error %d %s received from %s"
msgstr "Fehler %d %s von %s empfangen"
-#: tftp.c:559
+#: tftp.c:557
#, c-format
msgid "failed sending %s to %s"
msgstr "konnte %s nicht an %s senden"
-#: tftp.c:573
+#: tftp.c:571
#, c-format
msgid "sent %s to %s"
msgstr "%s an %s verschickt"
@@ -1508,12 +1531,12 @@ msgstr "%s an %s verschickt"
msgid "overflow: %d log entries lost"
msgstr "Überlauf: %d Protokolleinträge verloren"
-#: log.c:267
+#: log.c:268
#, c-format
msgid "log failed: %s"
msgstr "Protokollierung fehlgeschlagen: %s"
-#: log.c:471
+#: log.c:472
msgid "FAILED to start up"
msgstr "Start fehlgeschlagen"
@@ -1522,6 +1545,21 @@ msgstr "Start fehlgeschlagen"
msgid "Conntrack connection mark retrieval failed: %s"
msgstr ""
+#: dhcp6.c:42
+#, fuzzy, c-format
+msgid "cannot create DHCPv6 socket: %s"
+msgstr "kann DHCP-Socket nicht erzeugen: %s"
+
+#: dhcp6.c:53
+#, fuzzy, c-format
+msgid "failed to bind DHCPv6 server socket: %s"
+msgstr "kann nicht an DHCP-Server-Socket binden: %s"
+
+#: dhcp6.c:57
+#, fuzzy, c-format
+msgid "failed to join DHCPv6 multicast group: %s"
+msgstr "kann nicht an DHCP-Server-Socket binden: %s"
+
#~ msgid "only one dhcp-hostsfile allowed"
#~ msgstr "nur eine DHCP-Hostdatei (dhcp-hostsfile) zulässig"
diff --git a/po/es.po b/po/es.po
index ee3469a..475474f 100644
--- a/po/es.po
+++ b/po/es.po
@@ -15,61 +15,61 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: cache.c:761
+#: cache.c:757
#, fuzzy, c-format
msgid "failed to load names from %s: %s"
msgstr "no se pudo cargar nombres desde %s: %s"
-#: cache.c:795 dhcp.c:874
+#: cache.c:791 dhcp.c:936
#, fuzzy, c-format
msgid "bad address at %s line %d"
msgstr "dirección errónea en %s línea %d"
-#: cache.c:853 dhcp.c:890
+#: cache.c:849 dhcp.c:952
#, c-format
msgid "bad name at %s line %d"
msgstr "nombre erróneo en %s línea %d"
-#: cache.c:860 dhcp.c:965
+#: cache.c:856 dhcp.c:1027
#, c-format
msgid "read %s - %d addresses"
msgstr "direcciónes %s - %d leídas"
-#: cache.c:899
+#: cache.c:895
msgid "cleared cache"
msgstr "el caché fue liberado"
-#: cache.c:934
+#: cache.c:930
#, c-format
msgid "No IPv4 address found for %s"
msgstr ""
-#: cache.c:975
+#: cache.c:971
#, c-format
msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
msgstr "%s es un CNAME, no se le está dando al arriendo DHCP de %s"
-#: cache.c:981
+#: cache.c:977
#, c-format
msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
msgstr "no otorgando nombre %s al arriendo DHCP de %s porque el nombre existe en %s con dirección %s"
-#: cache.c:1054
+#: cache.c:1050
#, c-format
msgid "time %lu"
msgstr "tiempo %lu"
-#: cache.c:1055
+#: cache.c:1051
#, fuzzy, c-format
msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
msgstr "tamaño de caché %d, %d/%d inserciónes de caché reutilizaron objetos no vencidos."
-#: cache.c:1057
+#: cache.c:1053
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr "búsquedas reenviadas %u, búsquedas respondidas localmente %u"
-#: cache.c:1083
+#: cache.c:1076
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr "servidor %s#%d: búsquedas enviadas %u, reintentadas o fallidas %u"
@@ -84,7 +84,7 @@ msgstr "no se pudo crear valor semilla para el generador de números aleatorios:
msgid "failed to allocate memory"
msgstr "no se pudo asignar memoria"
-#: util.c:227 option.c:579
+#: util.c:227 option.c:585
msgid "could not get memory"
msgstr "no se pudo adquirir memoria"
@@ -98,479 +98,488 @@ msgstr "no se puede crear pipe: %s"
msgid "failed to allocate %d bytes"
msgstr "no se pudo asignar %d bytes"
-#: util.c:358
+#: util.c:377
#, c-format
msgid "infinite"
msgstr "infinito"
-#: option.c:248
+#: option.c:252
msgid "Specify local address(es) to listen on."
msgstr "Especificar dirección(es) locales dónde escuchar."
-#: option.c:249
+#: option.c:253
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Retornar ipaddr (dirección IP) para todos los hosts en los dominios especificados."
-#: option.c:250
+#: option.c:254
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Falsificar búsquedas reversas para rangos de dirección privados RFC1918."
-#: option.c:251
+#: option.c:255
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Tratar ipaddr (dirección IP) como NXDOMAIN (derrota comodín Verisign)."
-#: option.c:252
+#: option.c:256
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Especificar tamaño de caché en cuanto a cantidad de objetos (%s por predeterminado)."
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Especificar archivo de configuración (%s por predeterminado)."
-#: option.c:254
+#: option.c:258
msgid "Do NOT fork into the background: run in debug mode."
msgstr "NO hacer un fork hacia el fondo: correr en modo debug."
-#: option.c:255
+#: option.c:259
msgid "Do NOT forward queries with no domain part."
msgstr "NO reenviar búsquedas sin parte de dominio."
-#: option.c:256
+#: option.c:260
msgid "Return self-pointing MX records for local hosts."
msgstr "Retornar expedientes MX auto-señaladores para hosts locales."
-#: option.c:257
+#: option.c:261
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Expandir nombres simples en /etc/hosts con domain-suffix (sufijo de dominio)."
-#: option.c:258
+#: option.c:262
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "No reenviar pedidos DNS falsos desde máquinas Windows."
-#: option.c:259
+#: option.c:263
msgid "Enable DHCP in the range given with lease duration."
msgstr "Habilitar DHCP dentro del rango brindado con duración del arriendo."
-#: option.c:260
+#: option.c:264
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Cambiar a este grupo después del inicio (%s por predeterminado)."
-#: option.c:261
+#: option.c:265
msgid "Set address or hostname for a specified machine."
msgstr "Fijar dirección o nombre de host para una máquina especificada."
-#: option.c:262
+#: option.c:266
#, fuzzy
msgid "Read DHCP host specs from file."
msgstr "Leer especificaciones DHCP de host desde archivo"
-#: option.c:263
+#: option.c:267
#, fuzzy
msgid "Read DHCP option specs from file."
msgstr "Leer opciones DHCP de host desde archivo"
-#: option.c:264
+#: option.c:268
msgid "Evaluate conditional tag expression."
msgstr "Evaluar expresión condicional de etiqueta."
-#: option.c:265
+#: option.c:269
#, c-format
msgid "Do NOT load %s file."
msgstr "NO cargar archivo %s."
-#: option.c:266
+#: option.c:270
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Especificar un archivo de hosts para ser leído adicionalmente a %s."
-#: option.c:267
+#: option.c:271
msgid "Specify interface(s) to listen on."
msgstr "Especificar interface(s) donde escuchar."
-#: option.c:268
+#: option.c:272
msgid "Specify interface(s) NOT to listen on."
msgstr "Especificar interface(s) donde NO escuchar."
-#: option.c:269
+#: option.c:273
#, fuzzy
msgid "Map DHCP user class to tag."
msgstr "Trazar clase de usuario DHCP a etiqueta."
-#: option.c:270
+#: option.c:274
msgid "Map RFC3046 circuit-id to tag."
msgstr "Trazar circuit-id (identificación de circuito) RFC3046 a etiqueta."
-#: option.c:271
+#: option.c:275
msgid "Map RFC3046 remote-id to tag."
msgstr "Trazar remote-id (identificación remota) RFC3046 a etiqueta."
-#: option.c:272
+#: option.c:276
msgid "Map RFC3993 subscriber-id to tag."
msgstr "Trazar subscriber-id (identificación de suscritor) RFC3993 a etiqueta."
-#: option.c:273
+#: option.c:277
#, fuzzy
msgid "Don't do DHCP for hosts with tag set."
msgstr "No hacer DHCP para hosts con etiqueta fijada."
-#: option.c:274
+#: option.c:278
#, fuzzy
msgid "Force broadcast replies for hosts with tag set."
msgstr "Forzar respuestas broadcast para hosts con etiqueta fijada."
-#: option.c:275
+#: option.c:279
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "NO hacer un fork hacia el fondo, NO correr en modo debug."
-#: option.c:276
+#: option.c:280
msgid "Assume we are the only DHCP server on the local network."
msgstr "Asumir que somos el único servidor DHCP en la red local."
-#: option.c:277
+#: option.c:281
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Especificar donde almacenar arriendos DHCP (%s por predeterminado)."
-#: option.c:278
+#: option.c:282
msgid "Return MX records for local hosts."
msgstr "Retornar expedientes MX para hosts locales."
-#: option.c:279
+#: option.c:283
msgid "Specify an MX record."
msgstr "Especificar un expediente MX."
-#: option.c:280
+#: option.c:284
msgid "Specify BOOTP options to DHCP server."
msgstr "Especificar opciones BOOTP a servidor DHCP."
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "NO revisar archivo %s periódicamente, recargar solo con SIGHUP."
-#: option.c:282
+#: option.c:286
msgid "Do NOT cache failed search results."
msgstr "NO almacenar en caché resultados de búsquedas fallidas."
-#: option.c:283
+#: option.c:287
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Usar servidores DNS estrictamente en el órden brindado en %s."
-#: option.c:284
+#: option.c:288
#, fuzzy
msgid "Specify options to be sent to DHCP clients."
msgstr "Especificar opciones para ser enviadas a clientes DHCP."
-#: option.c:285
+#: option.c:289
msgid "DHCP option sent even if the client does not request it."
msgstr "Opción DHCP enviada aún si el cliente no la pide."
-#: option.c:286
+#: option.c:290
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Especificar puerto donde escuchar por búsquedas DNS (53 por predeterminado)."
-#: option.c:287
+#: option.c:291
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Tamaño máximo de paquetes UDP soportado para EDNS.0 (%s por predeterminado)."
-#: option.c:288
+#: option.c:292
#, fuzzy
msgid "Log DNS queries."
msgstr "Bitacorear búsquedas DNS."
-#: option.c:289
+#: option.c:293
#, fuzzy
msgid "Force the originating port for upstream DNS queries."
msgstr "Enforzar el puerto original para búsquedas DNS upstream."
-#: option.c:290
+#: option.c:294
msgid "Do NOT read resolv.conf."
msgstr "NO leer resolv.conf."
-#: option.c:291
+#: option.c:295
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Especificar el path hacia resolv.conf (%s por predeterminado)."
-#: option.c:292
+#: option.c:296
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Especificar dirección(es) de servidores upstream con dominios opcionales."
-#: option.c:293
+#: option.c:297
msgid "Never forward queries to specified domains."
msgstr "Nunca reenviar búsquedas a dominios especificados."
-#: option.c:294
+#: option.c:298
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Especificar el dominio para ser asignado en arriendos DHCP."
-#: option.c:295
+#: option.c:299
msgid "Specify default target in an MX record."
msgstr "Especificar destino predeterminado en un expediente MX."
-#: option.c:296
+#: option.c:300
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr "Especificar tiempo de vida en segundos para respuestas desde /etc/hosts."
-#: option.c:297
+#: option.c:301
#, fuzzy
msgid "Specify time-to-live in seconds for negative caching."
msgstr "Especificar tiempo de vida en segundos para caché negativo."
-#: option.c:298
+#: option.c:302
#, fuzzy
msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
msgstr "Especificar tiempo de vida en segundos para respuestas desde /etc/hosts."
-#: option.c:299
+#: option.c:303
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Cambiar a este usuario despues del inicio (%s por predeterminado)."
-#: option.c:300
+#: option.c:304
#, fuzzy
msgid "Map DHCP vendor class to tag."
msgstr "Trazar clase de vendedor DHCP a etiqueta."
-#: option.c:301
+#: option.c:305
msgid "Display dnsmasq version and copyright information."
msgstr "Mostrar información sobre la versión y copyright de dnsmasq."
-#: option.c:302
+#: option.c:306
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Traducir direcciones IPv4 desde servidores upstream."
-#: option.c:303
+#: option.c:307
msgid "Specify a SRV record."
msgstr "Especificar un expediente SRV."
-#: option.c:304
+#: option.c:308
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr "Mostrar este mensaje. Usar --help dhcp para opciones DHCP conocidas."
-#: option.c:305
+#: option.c:309
#, fuzzy, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr "Especificar path de archivo PID (%s por predeterminado)."
-#: option.c:306
+#: option.c:310
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Especificar número máximo de arriendos DHCP (%s por predeterminado)."
-#: option.c:307
+#: option.c:311
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr "Responder a búsquedas DNS en base a la interface a la cuál fueron enviadas."
-#: option.c:308
+#: option.c:312
msgid "Specify TXT DNS record."
msgstr "Especificar expediente DNS TXT."
-#: option.c:309
+#: option.c:313
#, fuzzy
msgid "Specify PTR DNS record."
msgstr "Especificar expediente DNS PTR."
-#: option.c:310
+#: option.c:314
msgid "Give DNS name to IPv4 address of interface."
msgstr "Otorgar nombre DNS a dirección IPv4 de interface."
-#: option.c:311
+#: option.c:315
msgid "Bind only to interfaces in use."
msgstr "Acoplar solo a interfaces en uso."
-#: option.c:312
+#: option.c:316
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Leer información sobre hosts DHCP estáticos desde %s."
-#: option.c:313
+#: option.c:317
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Habilitar la interface DBus para fijar servidores upstream, etc."
-#: option.c:314
+#: option.c:318
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "No proveer DHCP en esta interface, sólo proveer DNS."
-#: option.c:315
+#: option.c:319
msgid "Enable dynamic address allocation for bootp."
msgstr "Habilitar alocación dinámica de direcciónes para BOOTP."
-#: option.c:316
+#: option.c:320
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Trazar dirección MAC (con comodínes) a opción fijada."
-#: option.c:317
+#: option.c:321
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr "Tratar pedidos DHCP en alias como si llegaran de la interface."
-#: option.c:318
+#: option.c:322
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr "Deshabilitar verificación de direcciónes para echo ICMP en el servidor DHCP."
-#: option.c:319
+#: option.c:323
msgid "Script to run on DHCP lease creation and destruction."
msgstr "Archivo guión para ejecutar cuando se crea o destruye un arriendo DHCP."
-#: option.c:320
+#: option.c:324
msgid "Read configuration from all the files in this directory."
msgstr "Leer configuración desde todos los archivos en este directorio."
-#: option.c:321
+#: option.c:325
#, fuzzy
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr "Bitacorear a esta facilidad syslog o archivo. (DAEMON por predeterminado)"
-#: option.c:322
+#: option.c:326
msgid "Do not use leasefile."
msgstr "No usar archivo de arriendos."
-#: option.c:323
+#: option.c:327
#, fuzzy, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr "Número máximo de búsquedas DNS simultáneas. (%s por predeterminado)"
-#: option.c:324
+#: option.c:328
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr "Liberar caché DNS al recargar %s."
-#: option.c:325
+#: option.c:329
msgid "Ignore hostnames provided by DHCP clients."
msgstr "Ignorar nombres de host brindados por clientes DHCP."
-#: option.c:326
+#: option.c:330
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr "NO reutilizar campos de nombre de archivo y servidor para opciones DHCP extra."
-#: option.c:327
+#: option.c:331
msgid "Enable integrated read-only TFTP server."
msgstr "Habilitar servidor integrado TFTP solo-lectura."
-#: option.c:328
+#: option.c:332
msgid "Export files by TFTP only from the specified subtree."
msgstr "Exportar archivos vía TFTP solo del sub-árbol especificado."
-#: option.c:329
+#: option.c:333
msgid "Add client IP address to tftp-root."
msgstr "Agregar IP de cliente a tftp-root."
-#: option.c:330
+#: option.c:334
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr "Permitir acceso solo a archivos pertenecientes al usuario que corre dnsmasq."
-#: option.c:331
+#: option.c:335
#, fuzzy, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr "Número máximo de transferencias TFTP simultáneas (%s por predeterminado)."
-#: option.c:332
+#: option.c:336
msgid "Disable the TFTP blocksize extension."
msgstr "Deshabilitar la extensión TFTP blocksize (tamaño de bloque)."
-#: option.c:333
+#: option.c:337
msgid "Ephemeral port range for use by TFTP transfers."
msgstr "Rango de puertos efímeros para ser usados por transferencias TFTP."
-#: option.c:334
+#: option.c:338
msgid "Extra logging for DHCP."
msgstr "Bitacoreo extra para DHCP."
-#: option.c:335
+#: option.c:339
msgid "Enable async. logging; optionally set queue length."
msgstr "Habilitar bitacoreo asincrónico; opcionalmente fijar tamaño de cola."
-#: option.c:336
+#: option.c:340
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr "Detener revinculación DNS. Filtrar rangos de IP privados al resolver."
-#: option.c:337
+#: option.c:341
msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
msgstr "Permitir revinculación de 127.0.0.0/8, para servidores RBL."
-#: option.c:338
+#: option.c:342
msgid "Inhibit DNS-rebind protection on this domain."
msgstr "Inhibir protección de revinculación DNS en este dominio."
-#: option.c:339
+#: option.c:343
msgid "Always perform DNS queries to all servers."
msgstr "Siempre realizar búsquedas DNS a todos los servidores."
-#: option.c:340
+#: option.c:344
#, fuzzy
msgid "Set tag if client includes matching option in request."
msgstr "Fijar etiqueta si cliente incluye opción coincidente en pedido."
-#: option.c:341
+#: option.c:345
msgid "Use alternative ports for DHCP."
msgstr "Usar puertos alternativos para DHCP."
-#: option.c:342
+#: option.c:346
msgid "Run lease-change script as this user."
msgstr "Correr archivo guión de cambio de arriendos como este usuario."
-#: option.c:343
+#: option.c:347
#, fuzzy
msgid "Specify NAPTR DNS record."
msgstr "Especificar expediente DNS NAPTR."
-#: option.c:344
+#: option.c:348
msgid "Specify lowest port available for DNS query transmission."
msgstr "Especificar puerto más bajo disponible para transmisión de búsquedas DNS."
-#: option.c:345
+#: option.c:349
msgid "Use only fully qualified domain names for DHCP clients."
msgstr "Usar solo nombres de dominio completamente calificados para clientes DHCP."
-#: option.c:346
+#: option.c:350
msgid "Generate hostnames based on MAC address for nameless clients."
msgstr "Generar hostnames basados en direcciones MAC para clientes sin nombre."
-#: option.c:347
+#: option.c:351
msgid "Use these DHCP relays as full proxies."
msgstr "Usar estos relays DHCP como proxies completos."
-#: option.c:348
+#: option.c:352
msgid "Specify alias name for LOCAL DNS name."
msgstr "Especificar nombre alias para nombre DNS LOCAL."
-#: option.c:349
+#: option.c:353
#, fuzzy
msgid "Prompt to send to PXE clients."
msgstr "Aviso a ser enviado a clientes PXE."
-#: option.c:350
+#: option.c:354
msgid "Boot service for PXE menu."
msgstr "Servico boot para menú PXE."
-#: option.c:351
+#: option.c:355
msgid "Check configuration syntax."
msgstr "Revisar sintaxis de configuración."
-#: option.c:352
+#: option.c:356
msgid "Add requestor's MAC address to forwarded DNS queries."
msgstr ""
-#: option.c:353
+#: option.c:357
#, fuzzy
msgid "Proxy DNSSEC validation results from upstream nameservers."
msgstr "Traducir direcciones IPv4 desde servidores upstream."
-#: option.c:354
+#: option.c:358
msgid "Attempt to allocate sequential IP addresses to DHCP clients."
msgstr ""
-#: option.c:355
+#: option.c:359
msgid "Copy connection-track mark from queries to upstream connections."
msgstr ""
-#: option.c:644
+#: option.c:360
+msgid "Allow DHCP clients to do their own DDNS updates."
+msgstr ""
+
+#: option.c:361
+#, fuzzy
+msgid "Specify path to Lua script (no default)."
+msgstr "Especificar path de archivo PID (%s por predeterminado)."
+
+#: option.c:650
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -579,242 +588,247 @@ msgstr ""
"Modo de uso: dnsmasq [opciones]\n"
"\n"
-#: option.c:646
+#: option.c:652
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Usar opciones cortas solo en la línea de comandos.\n"
-#: option.c:648
+#: option.c:654
#, fuzzy, c-format
msgid "Valid options are:\n"
msgstr "Opciones válidas son :\n"
-#: option.c:689
+#: option.c:695
#, c-format
msgid "Known DHCP options:\n"
msgstr "Opciones DHCP conocidas:\n"
-#: option.c:804
+#: option.c:810
msgid "bad dhcp-option"
msgstr "opción dhcp-option errónea"
-#: option.c:866
+#: option.c:872
#, fuzzy
msgid "bad IP address"
msgstr "dirección IP errónea"
-#: option.c:974
+#: option.c:980
msgid "bad domain in dhcp-option"
msgstr "dominio erróneo en dhcp-option"
-#: option.c:1040
+#: option.c:1046
msgid "dhcp-option too long"
msgstr "opción dhcp-option demasiado larga"
-#: option.c:1049
+#: option.c:1055
msgid "illegal dhcp-match"
msgstr "dhcp-match ilegal"
-#: option.c:1093
+#: option.c:1099
msgid "illegal repeated flag"
msgstr "opción repetida ilegal"
-#: option.c:1101
+#: option.c:1107
msgid "illegal repeated keyword"
msgstr "palabra clave repetida ilegal"
-#: option.c:1153 option.c:3062
+#: option.c:1159 option.c:3077
#, fuzzy, c-format
msgid "cannot access directory %s: %s"
msgstr "no se puede accesar directorio %s: %s"
-#: option.c:1184 tftp.c:465
+#: option.c:1190 tftp.c:464
#, fuzzy, c-format
msgid "cannot access %s: %s"
msgstr "no se puede accesar %s: %s"
-#: option.c:1213
+#: option.c:1219
msgid "setting log facility is not possible under Android"
msgstr ""
-#: option.c:1222
+#: option.c:1228
msgid "bad log facility"
msgstr ""
-#: option.c:1271
+#: option.c:1277
msgid "bad MX preference"
msgstr "preferencia MX errónea"
-#: option.c:1276
+#: option.c:1282
msgid "bad MX name"
msgstr "nombre MX erróneo"
-#: option.c:1290
+#: option.c:1296
msgid "bad MX target"
msgstr "destino MX erróneo"
-#: option.c:1300
+#: option.c:1308
msgid "cannot run scripts under uClinux"
msgstr "no se pueden correr archivos guiónes bajo uClinux"
-#: option.c:1302
+#: option.c:1310
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr "recompilar con HAVE_SCRIPT definido para habilitar guiónes de cambio de arriendo"
-#: option.c:1607 option.c:1611
+#: option.c:1314
+#, fuzzy
+msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts"
+msgstr "recompilar con HAVE_SCRIPT definido para habilitar guiónes de cambio de arriendo"
+
+#: option.c:1622 option.c:1626
msgid "bad port"
msgstr "puerto erróneo"
-#: option.c:1634 option.c:1665
+#: option.c:1649 option.c:1680
msgid "interface binding not supported"
msgstr "vinculación de interface no está soportado"
-#: option.c:1645 option.c:2614
+#: option.c:1660 option.c:2629
#, fuzzy
msgid "bad interface name"
msgstr "nombre de interface erróneo"
-#: option.c:1810
+#: option.c:1825
#, fuzzy
msgid "bad port range"
msgstr "rango de puertos erróneo"
-#: option.c:1827
+#: option.c:1842
msgid "bad bridge-interface"
msgstr "opción bridge-interface (interface puente) errónea"
-#: option.c:1870
+#: option.c:1885
msgid "bad dhcp-range"
msgstr "opción dhcp-range (rango DHCP) errónea"
-#: option.c:1898
+#: option.c:1913
msgid "only one tag allowed"
msgstr "solo una etiqueta permitida"
-#: option.c:1945
+#: option.c:1960
msgid "inconsistent DHCP range"
msgstr "rango DHCP inconsistente"
-#: option.c:2039 option.c:2067
+#: option.c:2054 option.c:2082
#, fuzzy
msgid "bad hex constant"
msgstr "opción dhcp-host errónea"
-#: option.c:2061
+#: option.c:2076
msgid "cannot match tags in --dhcp-host"
msgstr ""
-#: option.c:2129
+#: option.c:2144
#, fuzzy
msgid "bad DHCP host name"
msgstr "nombre de host DHCP erróneo"
-#: option.c:2210
+#: option.c:2225
#, fuzzy
msgid "bad tag-if"
msgstr "destino MX erróneo"
-#: option.c:2499 option.c:2784
+#: option.c:2514 option.c:2799
msgid "invalid port number"
msgstr "número de puerto inválido"
-#: option.c:2561
+#: option.c:2576
#, fuzzy
msgid "bad dhcp-proxy address"
msgstr "dirección IP errónea"
-#: option.c:2601
+#: option.c:2616
#, fuzzy
msgid "invalid alias range"
msgstr "rango alias inválido"
-#: option.c:2639
+#: option.c:2654
msgid "bad CNAME"
msgstr "CNAME erróneo"
-#: option.c:2644
+#: option.c:2659
msgid "duplicate CNAME"
msgstr "CNAME duplicado"
-#: option.c:2664
+#: option.c:2679
#, fuzzy
msgid "bad PTR record"
msgstr "expediente PTR erróneo"
-#: option.c:2695
+#: option.c:2710
#, fuzzy
msgid "bad NAPTR record"
msgstr "expediente NAPTR erróneo"
-#: option.c:2727
+#: option.c:2742
msgid "bad TXT record"
msgstr "expediente TXT erróneo"
-#: option.c:2770
+#: option.c:2785
msgid "bad SRV record"
msgstr "expediente SRV erróneo"
-#: option.c:2777
+#: option.c:2792
msgid "bad SRV target"
msgstr "destino SRV erróneo"
-#: option.c:2791
+#: option.c:2806
msgid "invalid priority"
msgstr "prioridad inválida"
-#: option.c:2798
+#: option.c:2813
msgid "invalid weight"
msgstr "peso inválido"
-#: option.c:2817
+#: option.c:2832
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr "opción no soportada (verificar que dnsmasq fue compilado con soporte para DHCP/TFTP/DBus)"
-#: option.c:2881
+#: option.c:2896
msgid "missing \""
msgstr "falta \""
-#: option.c:2940
+#: option.c:2955
msgid "bad option"
msgstr "opción errónea"
-#: option.c:2942
+#: option.c:2957
msgid "extraneous parameter"
msgstr "parámetro extraño"
-#: option.c:2944
+#: option.c:2959
msgid "missing parameter"
msgstr "parámetro ausente"
-#: option.c:2948
+#: option.c:2963
msgid "error"
msgstr "error"
-#: option.c:2953
+#: option.c:2968
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s en línea %d de %%s"
-#: option.c:3017 tftp.c:629
+#: option.c:3032 tftp.c:627
#, c-format
msgid "cannot read %s: %s"
msgstr "no se puede leer %s: %s"
-#: option.c:3183 option.c:3219
+#: option.c:3198 option.c:3234
#, fuzzy, c-format
msgid "read %s"
msgstr "leyendo %s"
-#: option.c:3271
+#: option.c:3286
msgid "junk found in command line"
msgstr ""
-#: option.c:3301
+#: option.c:3316
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq versión %s %s\n"
-#: option.c:3302
+#: option.c:3317
#, c-format
msgid ""
"Compile time options %s\n"
@@ -823,63 +837,63 @@ msgstr ""
"Opciones de compilación %s\n"
"\n"
-#: option.c:3303
+#: option.c:3318
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Este software viene SIN NINGUNA GARANTIA.\n"
-#: option.c:3304
+#: option.c:3319
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr "Dnsmasq es software libre, y usted está bienvenido a redistribuirlo\n"
-#: option.c:3305
+#: option.c:3320
#, fuzzy, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr "bajo los términos de la GNU General Public License, versión 2 o 3.\n"
-#: option.c:3316
+#: option.c:3331
msgid "try --help"
msgstr "pruebe --help"
-#: option.c:3318
+#: option.c:3333
msgid "try -w"
msgstr "pruebe -w"
-#: option.c:3321
+#: option.c:3336
#, fuzzy, c-format
msgid "bad command line options: %s"
msgstr "opciones de línea de comandos erróneas: %s"
-#: option.c:3362
+#: option.c:3377
#, c-format
msgid "cannot get host-name: %s"
msgstr "no se puede obtener host-name (nombre de host): %s"
-#: option.c:3390
+#: option.c:3405
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "solo un archivo resolv.conf permitido en modo no-poll."
-#: option.c:3400
+#: option.c:3415
msgid "must have exactly one resolv.conf to read domain from."
msgstr "debe haber exáctamente un resolv.conf desde donde leer dominio."
-#: option.c:3403 network.c:845 dhcp.c:823
+#: option.c:3418 network.c:821 dhcp.c:885
#, fuzzy, c-format
msgid "failed to read %s: %s"
msgstr "no se pudo leer %s: %s"
-#: option.c:3420
+#: option.c:3435
#, c-format
msgid "no search directive found in %s"
msgstr "ninguna directiva de búsqueda encontrada en %s"
-#: option.c:3441
+#: option.c:3456
#, fuzzy
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr "debe haber un dominio predeterminado cuando --dhcp-fqdn está fijado"
-#: option.c:3445
+#: option.c:3460
msgid "syntax check OK"
msgstr "revisión de sintaxis OK"
@@ -893,377 +907,382 @@ msgstr "servidor DNS %s se reusó a hacer una búsqueda recursiva"
msgid "possible DNS-rebind attack detected: %s"
msgstr "posible ataque de revinculación DNS detectado"
-#: network.c:171
-#, fuzzy, c-format
-msgid "unknown interface %s in bridge-interface"
-msgstr "interface desconocida %s en bridge-interface"
-
-#: network.c:384
+#: network.c:354
#, fuzzy, c-format
msgid "failed to create listening socket for %s: %s"
msgstr "no se pudo crear un socket escuchador: %s"
-#: network.c:743
+#: network.c:719
#, fuzzy, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "no se pudo acoplar socket escuchador para %s: %s"
-#: network.c:780
+#: network.c:756
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorando servidor DNS %s - interface local"
-#: network.c:791
+#: network.c:767
#, fuzzy, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr "ignorando servidor DNS %s - no se puede crear/acoplar socket: %s"
-#: network.c:808
+#: network.c:784
msgid "unqualified"
msgstr "no calificado"
-#: network.c:808
+#: network.c:784
msgid "names"
msgstr "nombres"
-#: network.c:810
+#: network.c:786
msgid "default"
msgstr "predeterminado"
-#: network.c:812
+#: network.c:788
msgid "domain"
msgstr "dominio"
-#: network.c:815
+#: network.c:791
#, c-format
msgid "using local addresses only for %s %s"
msgstr "usando direcciones locales solo para %s %s"
-#: network.c:817
+#: network.c:793
#, fuzzy, c-format
msgid "using standard nameservers for %s %s"
msgstr "usando servidor DNS %s#%d para %s %s"
-#: network.c:819
+#: network.c:795
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "usando servidor DNS %s#%d para %s %s"
-#: network.c:822
+#: network.c:798
#, fuzzy, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "usando servidor DNS %s#%d(vía %s)"
-#: network.c:824
+#: network.c:800
#, c-format
msgid "using nameserver %s#%d"
msgstr "usando servidor DNS %s#%d"
-#: dnsmasq.c:152
+#: dnsmasq.c:114
#, fuzzy
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr "servidor TFTP no disponible: fijar HAVE_TFTP en src/config.h"
-#: dnsmasq.c:157
+#: dnsmasq.c:119
msgid "Cannot use --conntrack AND --query-port"
msgstr ""
-#: dnsmasq.c:160
+#: dnsmasq.c:122
#, fuzzy
msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
msgstr "servidor TFTP no disponible: fijar HAVE_TFTP en src/config.h"
-#: dnsmasq.c:165
+#: dnsmasq.c:127
#, fuzzy
msgid "asychronous logging is not available under Solaris"
msgstr "bitacoreo asincrónico no está disponible bajo Solaris"
-#: dnsmasq.c:170
+#: dnsmasq.c:132
#, fuzzy
msgid "asychronous logging is not available under Android"
msgstr "bitacoreo asincrónico no está disponible bajo Solaris"
-#: dnsmasq.c:189
+#: dnsmasq.c:151
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr "no se pudo encontrar lista de interfaces: %s"
-#: dnsmasq.c:197
+#: dnsmasq.c:159
#, c-format
msgid "unknown interface %s"
msgstr "interface desconocida %s"
-#: dnsmasq.c:203
+#: dnsmasq.c:165
#, c-format
msgid "no interface with address %s"
msgstr "ninguna interface con dirección %s"
-#: dnsmasq.c:219 dnsmasq.c:716
+#: dnsmasq.c:181 dnsmasq.c:680
#, c-format
msgid "DBus error: %s"
msgstr "error DBus: %s"
-#: dnsmasq.c:222
+#: dnsmasq.c:184
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus no disponible: fijar HAVE_DBUS en src/config.h"
-#: dnsmasq.c:248
+#: dnsmasq.c:211
#, c-format
msgid "unknown user or group: %s"
msgstr "usuario o grupo desconocido: %s"
-#: dnsmasq.c:303
+#: dnsmasq.c:266
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr "no se puede cambiar directorio a raíz de sistema de archivos: %s"
-#: dnsmasq.c:477
+#: dnsmasq.c:441
#, fuzzy, c-format
msgid "started, version %s DNS disabled"
msgstr "iniciado, versión %s DNS deshabilitado"
-#: dnsmasq.c:479
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s cachesize %d"
msgstr "iniciado, versión %s tamaño de caché %d"
-#: dnsmasq.c:481
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cache disabled"
msgstr "iniciado, versión %s caché deshabilitado"
-#: dnsmasq.c:483
+#: dnsmasq.c:447
#, c-format
msgid "compile time options: %s"
msgstr "opciones de compilación: %s"
-#: dnsmasq.c:489
+#: dnsmasq.c:453
msgid "DBus support enabled: connected to system bus"
msgstr "soporte DBus habilitado: conectado a bus de sistema"
-#: dnsmasq.c:491
+#: dnsmasq.c:455
msgid "DBus support enabled: bus connection pending"
msgstr "soporte DBus habilitado: conección a bus pendiente"
-#: dnsmasq.c:496
+#: dnsmasq.c:460
#, fuzzy, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr "advertencia: no se pudo cambiar dueño de %s: %s"
-#: dnsmasq.c:500
+#: dnsmasq.c:464
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "fijando opción --bind-interfaces debido a limitaciones de sistema operativo"
-#: dnsmasq.c:505
+#: dnsmasq.c:469
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "advertencia: interface %s no existe actuálmente"
-#: dnsmasq.c:510
+#: dnsmasq.c:474
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr "advertencia: ignorando opción resolv-file porque no-resolv está fijado"
-#: dnsmasq.c:513
+#: dnsmasq.c:477
#, fuzzy
msgid "warning: no upstream servers configured"
msgstr "advertencia: ningún servidor upstream configurado"
-#: dnsmasq.c:517
+#: dnsmasq.c:481
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr "bitacoreo asincrónico habilitado, límite de cola es %d mensajes"
-#: dnsmasq.c:530
+#: dnsmasq.c:494
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "DHCP, arriendos estáticos solo en %.0s%s, tiempo de arriendo %s"
-#: dnsmasq.c:532
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, proxy on subnet %.0s%s%.0s"
msgstr "DHCP, proxy en subred %.0s%s%.0s"
-#: dnsmasq.c:533
+#: dnsmasq.c:497
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, rango de IPs %s -- %s, tiempo de arriendo %s"
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "root is "
msgstr "root es "
-#: dnsmasq.c:548
+#: dnsmasq.c:512
#, fuzzy
msgid "enabled"
msgstr "habilitado"
-#: dnsmasq.c:550
+#: dnsmasq.c:514
msgid "secure mode"
msgstr "modo seguro"
-#: dnsmasq.c:576
+#: dnsmasq.c:540
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "limitando número máximo de transferencias TFTP simultáneas a %d"
-#: dnsmasq.c:718
+#: dnsmasq.c:682
msgid "connected to system DBus"
msgstr "conectado a DBus de sistema"
-#: dnsmasq.c:813
+#: dnsmasq.c:806
#, c-format
msgid "cannot fork into background: %s"
msgstr "no se puede hacer fork hacia el fondo: %s"
-#: dnsmasq.c:816
+#: dnsmasq.c:809
#, fuzzy, c-format
msgid "failed to create helper: %s"
msgstr "no se pudo crear ayudante: %s"
-#: dnsmasq.c:819
+#: dnsmasq.c:812
#, fuzzy, c-format
msgid "setting capabilities failed: %s"
msgstr "configuración de capacidades ha fallado: %s"
-#: dnsmasq.c:823
+#: dnsmasq.c:815
#, fuzzy, c-format
msgid "failed to change user-id to %s: %s"
msgstr "no se pudo cambiar user-id a %s: %s"
-#: dnsmasq.c:828
+#: dnsmasq.c:818
#, fuzzy, c-format
msgid "failed to change group-id to %s: %s"
msgstr "no se pudo cambiar group-id a %s: %s"
-#: dnsmasq.c:831
+#: dnsmasq.c:821
#, fuzzy, c-format
msgid "failed to open pidfile %s: %s"
msgstr "no se pudo abrir archivo PID %s: %s"
-#: dnsmasq.c:834
+#: dnsmasq.c:824
#, fuzzy, c-format
-msgid "cannot open %s: %s"
+msgid "cannot open log %s: %s"
msgstr "no se puede abrir %s: %s"
-#: dnsmasq.c:889
-#, c-format
-msgid "child process killed by signal %d"
+#: dnsmasq.c:827
+#, fuzzy, c-format
+msgid "failed to load Lua script: %s"
+msgstr "no se pudo cargar %s: %s"
+
+#: dnsmasq.c:886
+#, fuzzy, c-format
+msgid "script process killed by signal %d"
msgstr "proceso hijo eliminado por señal %d"
-#: dnsmasq.c:893
-#, c-format
-msgid "child process exited with status %d"
+#: dnsmasq.c:890
+#, fuzzy, c-format
+msgid "script process exited with status %d"
msgstr "proceso hijo hizo exit con estado %d"
-#: dnsmasq.c:897
+#: dnsmasq.c:894
#, fuzzy, c-format
msgid "failed to execute %s: %s"
msgstr "no se pudo ejecutar %s: %s"
-#: dnsmasq.c:941
+#: dnsmasq.c:939
msgid "exiting on receipt of SIGTERM"
msgstr "saliendo al recibir SIGTERM"
-#: dnsmasq.c:969
+#: dnsmasq.c:967
#, fuzzy, c-format
msgid "failed to access %s: %s"
msgstr "no se pudo accesar %s: %s"
-#: dnsmasq.c:999
+#: dnsmasq.c:997
#, c-format
msgid "reading %s"
msgstr "leyendo %s"
-#: dnsmasq.c:1010
+#: dnsmasq.c:1008
#, fuzzy, c-format
msgid "no servers found in %s, will retry"
msgstr "ningún servidor encontrado en %s, se reintentará"
-#: dhcp.c:39
+#: dhcp.c:49
#, c-format
msgid "cannot create DHCP socket: %s"
msgstr "no se puede crear socket DHCP: %s"
-#: dhcp.c:51
+#: dhcp.c:64
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "no se pudo fijar opciones en socket DHCP: %s"
-#: dhcp.c:64
+#: dhcp.c:77
#, fuzzy, c-format
msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
msgstr "no se pudo fijar SO_REUSE{ADDR|PORT} en socket DHCP: %s"
-#: dhcp.c:76
+#: dhcp.c:89
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "no se pudo acoplar socket de servidor DHCP: %s"
-#: dhcp.c:102
+#: dhcp.c:115
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "no se puede crear socket crudo ICMP: %s."
-#: dhcp.c:278
+#: dhcp.c:264
+#, fuzzy, c-format
+msgid "unknown interface %s in bridge-interface"
+msgstr "interface desconocida %s en bridge-interface"
+
+#: dhcp.c:289
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr "Paquete DHCP recibido en %s que no tiene dirección"
-#: dhcp.c:442
+#: dhcp.c:504
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "rango DHCP %s -- %s no coincide con máscara de subred %s"
-#: dhcp.c:861
+#: dhcp.c:923
#, fuzzy, c-format
msgid "bad line at %s line %d"
msgstr "línea errónea en %s línea %d"
-#: dhcp.c:904
+#: dhcp.c:966
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr "ignorando %s línea %d, nombre o dirección IP duplicada"
-#: dhcp.c:987
+#: dhcp.c:1049
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "dirección IP duplicada %s en directiva dhcp-config."
-#: dhcp.c:990
+#: dhcp.c:1052
#, fuzzy, c-format
msgid "duplicate IP address %s in %s."
msgstr "dirección IP duplicada %s en %s."
-#: dhcp.c:1033
+#: dhcp.c:1095
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr "%s tiene más de una dirección en hostsfile, usando %s para DHCP"
-#: dhcp.c:1038
+#: dhcp.c:1100
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "dirección IP duplicada %s (%s) en directiva dhcp-config"
-#: lease.c:67
+#: lease.c:70
#, fuzzy, c-format
msgid "cannot open or create lease file %s: %s"
msgstr "no se puede abrir o crear archivo de arriendos %s: %s"
-#: lease.c:93
+#: lease.c:116
msgid "too many stored leases"
msgstr "demasiados arriendos almacenados"
-#: lease.c:129
+#: lease.c:173
#, fuzzy, c-format
msgid "cannot run lease-init script %s: %s"
msgstr "no se puede ejecutar archivo guión lease-init %s: %s"
-#: lease.c:135
+#: lease.c:179
#, c-format
msgid "lease-init script returned exit code %s"
msgstr "archivo guión lease-init retornó exit code %s"
-#: lease.c:235
+#: lease.c:325
#, fuzzy, c-format
msgid "failed to write %s: %s (retry in %us)"
msgstr "error al escribir %s: %s (reintentar en %us)"
@@ -1295,19 +1314,19 @@ msgstr "%u Rango DHCP disponible: %s -- %s"
msgid "disabled"
msgstr "deshabilitado"
-#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
+#: rfc2131.c:428 rfc2131.c:944 rfc2131.c:1336
msgid "ignored"
msgstr "ignorado"
-#: rfc2131.c:443 rfc2131.c:1183
+#: rfc2131.c:443 rfc2131.c:1182
msgid "address in use"
msgstr "dirección en uso"
-#: rfc2131.c:457 rfc2131.c:999
+#: rfc2131.c:457 rfc2131.c:998
msgid "no address available"
msgstr "ninguna dirección disponible"
-#: rfc2131.c:464 rfc2131.c:1146
+#: rfc2131.c:464 rfc2131.c:1145
msgid "wrong network"
msgstr "red equivocada"
@@ -1315,146 +1334,146 @@ msgstr "red equivocada"
msgid "no address configured"
msgstr "ninguna dirección configurada"
-#: rfc2131.c:485 rfc2131.c:1196
+#: rfc2131.c:485 rfc2131.c:1195
msgid "no leases left"
msgstr "no sobra ningún arriendo"
-#: rfc2131.c:570
+#: rfc2131.c:569
#, fuzzy, c-format
msgid "%u client provides name: %s"
msgstr "%u cliente provee nombre: %s"
-#: rfc2131.c:725
+#: rfc2131.c:724
#, fuzzy, c-format
msgid "%u vendor class: %s"
msgstr "%u Clase de vendedor: %s"
-#: rfc2131.c:727
+#: rfc2131.c:726
#, fuzzy, c-format
msgid "%u user class: %s"
msgstr "%u Clase de usuario: %s"
-#: rfc2131.c:786
+#: rfc2131.c:785
msgid "PXE BIS not supported"
msgstr "no hay soporte para BIS PXE"
-#: rfc2131.c:915
+#: rfc2131.c:914
#, fuzzy, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "deshabilitando dirección DHCP estática %s para %s"
-#: rfc2131.c:936
+#: rfc2131.c:935
msgid "unknown lease"
msgstr "arriendo desconocido"
-#: rfc2131.c:968
+#: rfc2131.c:967
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr "no usando dirección configurada %s porque está arrendada a %s"
-#: rfc2131.c:978
+#: rfc2131.c:977
#, fuzzy, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr "no usando dirección configurada %s porque está en uso por el servidor o relay"
-#: rfc2131.c:981
+#: rfc2131.c:980
#, fuzzy, c-format
msgid "not using configured address %s because it was previously declined"
msgstr "no usando dirección configurada %s porque fué previamente denegada"
-#: rfc2131.c:997 rfc2131.c:1189
+#: rfc2131.c:996 rfc2131.c:1188
msgid "no unique-id"
msgstr "ningún unique-id (identificación única)"
-#: rfc2131.c:1084
+#: rfc2131.c:1083
msgid "wrong server-ID"
msgstr "ID de servidor equivocada"
-#: rfc2131.c:1103
+#: rfc2131.c:1102
msgid "wrong address"
msgstr "dirección equivocada"
-#: rfc2131.c:1121
+#: rfc2131.c:1120
msgid "lease not found"
msgstr "arriendo no encontrado"
-#: rfc2131.c:1154
+#: rfc2131.c:1153
msgid "address not available"
msgstr "dirección no disponible"
-#: rfc2131.c:1165
+#: rfc2131.c:1164
msgid "static lease available"
msgstr "arriendo estático disponible"
-#: rfc2131.c:1169
+#: rfc2131.c:1168
msgid "address reserved"
msgstr "dirección reservada"
-#: rfc2131.c:1177
+#: rfc2131.c:1176
#, c-format
msgid "abandoning lease to %s of %s"
msgstr "abandonando arriendo a %s de %s"
-#: rfc2131.c:1746
+#: rfc2131.c:1745
#, c-format
msgid "%u tags: %s"
msgstr "%u etiquetas: %s"
-#: rfc2131.c:1774
+#: rfc2131.c:1773
#, c-format
msgid "%u bootfile name: %s"
msgstr "%u nombre de bootfile: %s"
-#: rfc2131.c:1783
+#: rfc2131.c:1782
#, c-format
msgid "%u server name: %s"
msgstr "%u nombre de servidor: %s"
-#: rfc2131.c:1791
+#: rfc2131.c:1790
#, fuzzy, c-format
msgid "%u next server: %s"
msgstr "%u siguiente servidor: %s"
-#: rfc2131.c:1794
+#: rfc2131.c:1793
#, c-format
msgid "%u broadcast response"
msgstr ""
-#: rfc2131.c:1857
+#: rfc2131.c:1856
#, fuzzy, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr "no se puede enviar opción DHCP/BOOTP %d: no queda espacio en paquete"
-#: rfc2131.c:2097
+#: rfc2131.c:2096
msgid "PXE menu too large"
msgstr "menú PXE demasiado grande"
-#: rfc2131.c:2253
+#: rfc2131.c:2252
#, c-format
msgid "Ignoring duplicate dhcp-option %d"
msgstr ""
-#: rfc2131.c:2257
+#: rfc2131.c:2256
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr "Ignorando dominio %s para nombre de host DHCP %s"
-#: rfc2131.c:2275
+#: rfc2131.c:2274
#, fuzzy, c-format
msgid "%u requested options: %s"
msgstr "%u opciones solicitadas: %s"
-#: rfc2131.c:2550
+#: rfc2131.c:2549
#, c-format
msgid "cannot send RFC3925 option: too many options for enterprise number %d"
msgstr "no se puede enviar opción RFC3925: demasiadas opciones para número enterprise %d"
-#: netlink.c:70
+#: netlink.c:71
#, fuzzy, c-format
msgid "cannot create netlink socket: %s"
msgstr "no se puede crear socket netlink: %s"
-#: netlink.c:289
+#: netlink.c:321
#, fuzzy, c-format
msgid "netlink returns error: %s"
msgstr "netlink retorna error: %s"
@@ -1471,41 +1490,45 @@ msgstr "fijando servidores upstream desde DBus"
msgid "could not register a DBus message handler"
msgstr "no se pudo registrar un manejador de mensajes DBus"
-#: bpf.c:224
+#: bpf.c:225
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "no se puede crear socket BPF DHCP: %s"
-#: bpf.c:252
+#: bpf.c:253
#, fuzzy, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "pedido DHCP por tipo de hardware no-soportado (%d) recibido en %s"
-#: tftp.c:286
+#: helper.c:130
+msgid "lease() function missing in Lua script"
+msgstr ""
+
+#: tftp.c:285
msgid "unable to get free port for TFTP"
msgstr "incapaz de conseguir puerto libre para TFTP"
-#: tftp.c:301
+#: tftp.c:300
#, c-format
msgid "unsupported request from %s"
msgstr "pedido no-soportado desde %s"
-#: tftp.c:411
+#: tftp.c:410
#, fuzzy, c-format
msgid "file %s not found"
msgstr "archivo %s no encontrado"
-#: tftp.c:527
+#: tftp.c:525
#, fuzzy, c-format
msgid "error %d %s received from %s"
msgstr "error TFTP %d %s recibido de %s"
-#: tftp.c:559
+#: tftp.c:557
#, fuzzy, c-format
msgid "failed sending %s to %s"
msgstr "TFTP no pudo enviar %s a %s"
-#: tftp.c:573
+#: tftp.c:571
#, fuzzy, c-format
msgid "sent %s to %s"
msgstr "TFTP envió %s a %s"
@@ -1515,12 +1538,12 @@ msgstr "TFTP envió %s a %s"
msgid "overflow: %d log entries lost"
msgstr "desbordamiento: %d entradas de bitácora perdidas"
-#: log.c:267
+#: log.c:268
#, c-format
msgid "log failed: %s"
msgstr "bitácora falló: %s"
-#: log.c:471
+#: log.c:472
msgid "FAILED to start up"
msgstr "el inicio ha FALLADO"
@@ -1529,6 +1552,21 @@ msgstr "el inicio ha FALLADO"
msgid "Conntrack connection mark retrieval failed: %s"
msgstr ""
+#: dhcp6.c:42
+#, fuzzy, c-format
+msgid "cannot create DHCPv6 socket: %s"
+msgstr "no se puede crear socket DHCP: %s"
+
+#: dhcp6.c:53
+#, fuzzy, c-format
+msgid "failed to bind DHCPv6 server socket: %s"
+msgstr "no se pudo acoplar socket de servidor DHCP: %s"
+
+#: dhcp6.c:57
+#, fuzzy, c-format
+msgid "failed to join DHCPv6 multicast group: %s"
+msgstr "no se pudo acoplar socket de servidor DHCP: %s"
+
#, fuzzy
#~ msgid "only one dhcp-hostsfile allowed"
#~ msgstr "solo un dhcp-hostsfile permitido"
@@ -1562,10 +1600,6 @@ msgstr ""
#~ msgid "must set exactly one interface on broken systems without IP_RECVIF"
#~ msgstr "debe fijarse exáctamente una interface en sistemas rotos sin IP_RECVIF"
-#, fuzzy
-#~ msgid "failed to load %s: %s"
-#~ msgstr "no se pudo cargar %s: %s"
-
#~ msgid "bad name in %s"
#~ msgstr "nombre erróneo en %s"
diff --git a/po/fi.po b/po/fi.po
index 9c39c70..c397383 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -15,61 +15,61 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: cache.c:761
+#: cache.c:757
#, c-format
msgid "failed to load names from %s: %s"
msgstr ""
-#: cache.c:795 dhcp.c:874
+#: cache.c:791 dhcp.c:936
#, c-format
msgid "bad address at %s line %d"
msgstr ""
-#: cache.c:853 dhcp.c:890
+#: cache.c:849 dhcp.c:952
#, c-format
msgid "bad name at %s line %d"
msgstr ""
-#: cache.c:860 dhcp.c:965
+#: cache.c:856 dhcp.c:1027
#, c-format
msgid "read %s - %d addresses"
msgstr ""
-#: cache.c:899
+#: cache.c:895
msgid "cleared cache"
msgstr ""
-#: cache.c:934
+#: cache.c:930
#, c-format
msgid "No IPv4 address found for %s"
msgstr ""
-#: cache.c:975
+#: cache.c:971
#, c-format
msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
msgstr ""
-#: cache.c:981
+#: cache.c:977
#, c-format
msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
msgstr ""
-#: cache.c:1054
+#: cache.c:1050
#, c-format
msgid "time %lu"
msgstr ""
-#: cache.c:1055
+#: cache.c:1051
#, c-format
msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
msgstr ""
-#: cache.c:1057
+#: cache.c:1053
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr ""
-#: cache.c:1083
+#: cache.c:1076
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr ""
@@ -83,7 +83,7 @@ msgstr ""
msgid "failed to allocate memory"
msgstr ""
-#: util.c:227 option.c:579
+#: util.c:227 option.c:585
msgid "could not get memory"
msgstr ""
@@ -97,755 +97,767 @@ msgstr ""
msgid "failed to allocate %d bytes"
msgstr ""
-#: util.c:358
+#: util.c:377
#, c-format
msgid "infinite"
msgstr ""
-#: option.c:248
+#: option.c:252
msgid "Specify local address(es) to listen on."
msgstr ""
-#: option.c:249
+#: option.c:253
msgid "Return ipaddr for all hosts in specified domains."
msgstr ""
-#: option.c:250
+#: option.c:254
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
-#: option.c:251
+#: option.c:255
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr ""
-#: option.c:252
+#: option.c:256
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr ""
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr ""
-#: option.c:254
+#: option.c:258
msgid "Do NOT fork into the background: run in debug mode."
msgstr ""
-#: option.c:255
+#: option.c:259
msgid "Do NOT forward queries with no domain part."
msgstr ""
-#: option.c:256
+#: option.c:260
msgid "Return self-pointing MX records for local hosts."
msgstr ""
-#: option.c:257
+#: option.c:261
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr ""
-#: option.c:258
+#: option.c:262
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr ""
-#: option.c:259
+#: option.c:263
msgid "Enable DHCP in the range given with lease duration."
msgstr ""
-#: option.c:260
+#: option.c:264
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr ""
-#: option.c:261
+#: option.c:265
msgid "Set address or hostname for a specified machine."
msgstr ""
-#: option.c:262
+#: option.c:266
msgid "Read DHCP host specs from file."
msgstr ""
-#: option.c:263
+#: option.c:267
msgid "Read DHCP option specs from file."
msgstr ""
-#: option.c:264
+#: option.c:268
msgid "Evaluate conditional tag expression."
msgstr ""
-#: option.c:265
+#: option.c:269
#, c-format
msgid "Do NOT load %s file."
msgstr ""
-#: option.c:266
+#: option.c:270
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr ""
-#: option.c:267
+#: option.c:271
msgid "Specify interface(s) to listen on."
msgstr ""
-#: option.c:268
+#: option.c:272
msgid "Specify interface(s) NOT to listen on."
msgstr ""
-#: option.c:269
+#: option.c:273
msgid "Map DHCP user class to tag."
msgstr ""
-#: option.c:270
+#: option.c:274
msgid "Map RFC3046 circuit-id to tag."
msgstr ""
-#: option.c:271
+#: option.c:275
msgid "Map RFC3046 remote-id to tag."
msgstr ""
-#: option.c:272
+#: option.c:276
msgid "Map RFC3993 subscriber-id to tag."
msgstr ""
-#: option.c:273
+#: option.c:277
msgid "Don't do DHCP for hosts with tag set."
msgstr ""
-#: option.c:274
+#: option.c:278
msgid "Force broadcast replies for hosts with tag set."
msgstr ""
-#: option.c:275
+#: option.c:279
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr ""
-#: option.c:276
+#: option.c:280
msgid "Assume we are the only DHCP server on the local network."
msgstr ""
-#: option.c:277
+#: option.c:281
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:278
+#: option.c:282
msgid "Return MX records for local hosts."
msgstr ""
-#: option.c:279
+#: option.c:283
msgid "Specify an MX record."
msgstr ""
-#: option.c:280
+#: option.c:284
msgid "Specify BOOTP options to DHCP server."
msgstr ""
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
-#: option.c:282
+#: option.c:286
msgid "Do NOT cache failed search results."
msgstr ""
-#: option.c:283
+#: option.c:287
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr ""
-#: option.c:284
+#: option.c:288
msgid "Specify options to be sent to DHCP clients."
msgstr ""
-#: option.c:285
+#: option.c:289
msgid "DHCP option sent even if the client does not request it."
msgstr ""
-#: option.c:286
+#: option.c:290
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
-#: option.c:287
+#: option.c:291
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
-#: option.c:288
+#: option.c:292
msgid "Log DNS queries."
msgstr ""
-#: option.c:289
+#: option.c:293
msgid "Force the originating port for upstream DNS queries."
msgstr ""
-#: option.c:290
+#: option.c:294
msgid "Do NOT read resolv.conf."
msgstr ""
-#: option.c:291
+#: option.c:295
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr ""
-#: option.c:292
+#: option.c:296
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
-#: option.c:293
+#: option.c:297
msgid "Never forward queries to specified domains."
msgstr ""
-#: option.c:294
+#: option.c:298
msgid "Specify the domain to be assigned in DHCP leases."
msgstr ""
-#: option.c:295
+#: option.c:299
msgid "Specify default target in an MX record."
msgstr ""
-#: option.c:296
+#: option.c:300
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
-#: option.c:297
+#: option.c:301
msgid "Specify time-to-live in seconds for negative caching."
msgstr ""
-#: option.c:298
+#: option.c:302
msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
msgstr ""
-#: option.c:299
+#: option.c:303
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr ""
-#: option.c:300
+#: option.c:304
msgid "Map DHCP vendor class to tag."
msgstr ""
-#: option.c:301
+#: option.c:305
msgid "Display dnsmasq version and copyright information."
msgstr ""
-#: option.c:302
+#: option.c:306
msgid "Translate IPv4 addresses from upstream servers."
msgstr ""
-#: option.c:303
+#: option.c:307
msgid "Specify a SRV record."
msgstr ""
-#: option.c:304
+#: option.c:308
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr ""
-#: option.c:305
+#: option.c:309
#, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr ""
-#: option.c:306
+#: option.c:310
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:307
+#: option.c:311
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
-#: option.c:308
+#: option.c:312
msgid "Specify TXT DNS record."
msgstr ""
-#: option.c:309
+#: option.c:313
msgid "Specify PTR DNS record."
msgstr ""
-#: option.c:310
+#: option.c:314
msgid "Give DNS name to IPv4 address of interface."
msgstr ""
-#: option.c:311
+#: option.c:315
msgid "Bind only to interfaces in use."
msgstr ""
-#: option.c:312
+#: option.c:316
#, c-format
msgid "Read DHCP static host information from %s."
msgstr ""
-#: option.c:313
+#: option.c:317
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr ""
-#: option.c:314
+#: option.c:318
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr ""
-#: option.c:315
+#: option.c:319
msgid "Enable dynamic address allocation for bootp."
msgstr ""
-#: option.c:316
+#: option.c:320
msgid "Map MAC address (with wildcards) to option set."
msgstr ""
-#: option.c:317
+#: option.c:321
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr ""
-#: option.c:318
+#: option.c:322
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:319
+#: option.c:323
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
-#: option.c:320
+#: option.c:324
msgid "Read configuration from all the files in this directory."
msgstr ""
-#: option.c:321
+#: option.c:325
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr ""
-#: option.c:322
+#: option.c:326
msgid "Do not use leasefile."
msgstr ""
-#: option.c:323
+#: option.c:327
#, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr ""
-#: option.c:324
+#: option.c:328
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr ""
-#: option.c:325
+#: option.c:329
msgid "Ignore hostnames provided by DHCP clients."
msgstr ""
-#: option.c:326
+#: option.c:330
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr ""
-#: option.c:327
+#: option.c:331
msgid "Enable integrated read-only TFTP server."
msgstr ""
-#: option.c:328
+#: option.c:332
msgid "Export files by TFTP only from the specified subtree."
msgstr ""
-#: option.c:329
+#: option.c:333
msgid "Add client IP address to tftp-root."
msgstr ""
-#: option.c:330
+#: option.c:334
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr ""
-#: option.c:331
+#: option.c:335
#, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr ""
-#: option.c:332
+#: option.c:336
msgid "Disable the TFTP blocksize extension."
msgstr ""
-#: option.c:333
+#: option.c:337
msgid "Ephemeral port range for use by TFTP transfers."
msgstr ""
-#: option.c:334
+#: option.c:338
msgid "Extra logging for DHCP."
msgstr ""
-#: option.c:335
+#: option.c:339
msgid "Enable async. logging; optionally set queue length."
msgstr ""
-#: option.c:336
+#: option.c:340
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr ""
-#: option.c:337
+#: option.c:341
msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
msgstr ""
-#: option.c:338
+#: option.c:342
msgid "Inhibit DNS-rebind protection on this domain."
msgstr ""
-#: option.c:339
+#: option.c:343
msgid "Always perform DNS queries to all servers."
msgstr ""
-#: option.c:340
+#: option.c:344
msgid "Set tag if client includes matching option in request."
msgstr ""
-#: option.c:341
+#: option.c:345
msgid "Use alternative ports for DHCP."
msgstr ""
-#: option.c:342
+#: option.c:346
msgid "Run lease-change script as this user."
msgstr ""
-#: option.c:343
+#: option.c:347
msgid "Specify NAPTR DNS record."
msgstr ""
-#: option.c:344
+#: option.c:348
msgid "Specify lowest port available for DNS query transmission."
msgstr ""
-#: option.c:345
+#: option.c:349
msgid "Use only fully qualified domain names for DHCP clients."
msgstr ""
-#: option.c:346
+#: option.c:350
msgid "Generate hostnames based on MAC address for nameless clients."
msgstr ""
-#: option.c:347
+#: option.c:351
msgid "Use these DHCP relays as full proxies."
msgstr ""
-#: option.c:348
+#: option.c:352
msgid "Specify alias name for LOCAL DNS name."
msgstr ""
-#: option.c:349
+#: option.c:353
msgid "Prompt to send to PXE clients."
msgstr ""
-#: option.c:350
+#: option.c:354
msgid "Boot service for PXE menu."
msgstr ""
-#: option.c:351
+#: option.c:355
msgid "Check configuration syntax."
msgstr ""
-#: option.c:352
+#: option.c:356
msgid "Add requestor's MAC address to forwarded DNS queries."
msgstr ""
-#: option.c:353
+#: option.c:357
msgid "Proxy DNSSEC validation results from upstream nameservers."
msgstr ""
-#: option.c:354
+#: option.c:358
msgid "Attempt to allocate sequential IP addresses to DHCP clients."
msgstr ""
-#: option.c:355
+#: option.c:359
msgid "Copy connection-track mark from queries to upstream connections."
msgstr ""
-#: option.c:644
+#: option.c:360
+msgid "Allow DHCP clients to do their own DDNS updates."
+msgstr ""
+
+#: option.c:361
+msgid "Specify path to Lua script (no default)."
+msgstr ""
+
+#: option.c:650
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
-#: option.c:646
+#: option.c:652
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
-#: option.c:648
+#: option.c:654
#, c-format
msgid "Valid options are:\n"
msgstr ""
-#: option.c:689
+#: option.c:695
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:804
+#: option.c:810
msgid "bad dhcp-option"
msgstr ""
-#: option.c:866
+#: option.c:872
msgid "bad IP address"
msgstr ""
-#: option.c:974
+#: option.c:980
msgid "bad domain in dhcp-option"
msgstr ""
-#: option.c:1040
+#: option.c:1046
msgid "dhcp-option too long"
msgstr ""
-#: option.c:1049
+#: option.c:1055
msgid "illegal dhcp-match"
msgstr ""
-#: option.c:1093
+#: option.c:1099
msgid "illegal repeated flag"
msgstr ""
-#: option.c:1101
+#: option.c:1107
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:1153 option.c:3062
+#: option.c:1159 option.c:3077
#, c-format
msgid "cannot access directory %s: %s"
msgstr ""
-#: option.c:1184 tftp.c:465
+#: option.c:1190 tftp.c:464
#, c-format
msgid "cannot access %s: %s"
msgstr ""
-#: option.c:1213
+#: option.c:1219
msgid "setting log facility is not possible under Android"
msgstr ""
-#: option.c:1222
+#: option.c:1228
msgid "bad log facility"
msgstr ""
-#: option.c:1271
+#: option.c:1277
msgid "bad MX preference"
msgstr ""
-#: option.c:1276
+#: option.c:1282
msgid "bad MX name"
msgstr ""
-#: option.c:1290
+#: option.c:1296
msgid "bad MX target"
msgstr ""
-#: option.c:1300
+#: option.c:1308
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1302
+#: option.c:1310
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr ""
-#: option.c:1607 option.c:1611
+#: option.c:1314
+msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts"
+msgstr ""
+
+#: option.c:1622 option.c:1626
msgid "bad port"
msgstr ""
-#: option.c:1634 option.c:1665
+#: option.c:1649 option.c:1680
msgid "interface binding not supported"
msgstr ""
-#: option.c:1645 option.c:2614
+#: option.c:1660 option.c:2629
msgid "bad interface name"
msgstr ""
-#: option.c:1810
+#: option.c:1825
msgid "bad port range"
msgstr ""
-#: option.c:1827
+#: option.c:1842
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1870
+#: option.c:1885
msgid "bad dhcp-range"
msgstr ""
-#: option.c:1898
+#: option.c:1913
msgid "only one tag allowed"
msgstr ""
-#: option.c:1945
+#: option.c:1960
msgid "inconsistent DHCP range"
msgstr ""
-#: option.c:2039 option.c:2067
+#: option.c:2054 option.c:2082
msgid "bad hex constant"
msgstr ""
-#: option.c:2061
+#: option.c:2076
msgid "cannot match tags in --dhcp-host"
msgstr ""
-#: option.c:2129
+#: option.c:2144
msgid "bad DHCP host name"
msgstr ""
-#: option.c:2210
+#: option.c:2225
msgid "bad tag-if"
msgstr ""
-#: option.c:2499 option.c:2784
+#: option.c:2514 option.c:2799
msgid "invalid port number"
msgstr ""
-#: option.c:2561
+#: option.c:2576
msgid "bad dhcp-proxy address"
msgstr ""
-#: option.c:2601
+#: option.c:2616
msgid "invalid alias range"
msgstr ""
-#: option.c:2639
+#: option.c:2654
msgid "bad CNAME"
msgstr ""
-#: option.c:2644
+#: option.c:2659
msgid "duplicate CNAME"
msgstr ""
-#: option.c:2664
+#: option.c:2679
msgid "bad PTR record"
msgstr ""
-#: option.c:2695
+#: option.c:2710
msgid "bad NAPTR record"
msgstr ""
-#: option.c:2727
+#: option.c:2742
msgid "bad TXT record"
msgstr ""
-#: option.c:2770
+#: option.c:2785
msgid "bad SRV record"
msgstr ""
-#: option.c:2777
+#: option.c:2792
msgid "bad SRV target"
msgstr ""
-#: option.c:2791
+#: option.c:2806
msgid "invalid priority"
msgstr ""
-#: option.c:2798
+#: option.c:2813
msgid "invalid weight"
msgstr ""
-#: option.c:2817
+#: option.c:2832
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr ""
-#: option.c:2881
+#: option.c:2896
msgid "missing \""
msgstr ""
-#: option.c:2940
+#: option.c:2955
msgid "bad option"
msgstr ""
-#: option.c:2942
+#: option.c:2957
msgid "extraneous parameter"
msgstr ""
-#: option.c:2944
+#: option.c:2959
msgid "missing parameter"
msgstr ""
-#: option.c:2948
+#: option.c:2963
msgid "error"
msgstr ""
-#: option.c:2953
+#: option.c:2968
#, c-format
msgid "%s at line %d of %%s"
msgstr ""
-#: option.c:3017 tftp.c:629
+#: option.c:3032 tftp.c:627
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: option.c:3183 option.c:3219
+#: option.c:3198 option.c:3234
#, c-format
msgid "read %s"
msgstr ""
-#: option.c:3271
+#: option.c:3286
msgid "junk found in command line"
msgstr ""
-#: option.c:3301
+#: option.c:3316
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
-#: option.c:3302
+#: option.c:3317
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
-#: option.c:3303
+#: option.c:3318
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
-#: option.c:3304
+#: option.c:3319
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:3305
+#: option.c:3320
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr ""
-#: option.c:3316
+#: option.c:3331
msgid "try --help"
msgstr ""
-#: option.c:3318
+#: option.c:3333
msgid "try -w"
msgstr ""
-#: option.c:3321
+#: option.c:3336
#, c-format
msgid "bad command line options: %s"
msgstr ""
-#: option.c:3362
+#: option.c:3377
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
-#: option.c:3390
+#: option.c:3405
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
-#: option.c:3400
+#: option.c:3415
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
-#: option.c:3403 network.c:845 dhcp.c:823
+#: option.c:3418 network.c:821 dhcp.c:885
#, c-format
msgid "failed to read %s: %s"
msgstr ""
-#: option.c:3420
+#: option.c:3435
#, c-format
msgid "no search directive found in %s"
msgstr ""
-#: option.c:3441
+#: option.c:3456
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr ""
-#: option.c:3445
+#: option.c:3460
msgid "syntax check OK"
msgstr ""
@@ -859,371 +871,376 @@ msgstr ""
msgid "possible DNS-rebind attack detected: %s"
msgstr ""
-#: network.c:171
-#, c-format
-msgid "unknown interface %s in bridge-interface"
-msgstr ""
-
-#: network.c:384
+#: network.c:354
#, c-format
msgid "failed to create listening socket for %s: %s"
msgstr ""
-#: network.c:743
+#: network.c:719
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr ""
-#: network.c:780
+#: network.c:756
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
-#: network.c:791
+#: network.c:767
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr ""
-#: network.c:808
+#: network.c:784
msgid "unqualified"
msgstr ""
-#: network.c:808
+#: network.c:784
msgid "names"
msgstr ""
-#: network.c:810
+#: network.c:786
msgid "default"
msgstr ""
-#: network.c:812
+#: network.c:788
msgid "domain"
msgstr ""
-#: network.c:815
+#: network.c:791
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:817
+#: network.c:793
#, c-format
msgid "using standard nameservers for %s %s"
msgstr ""
-#: network.c:819
+#: network.c:795
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:822
+#: network.c:798
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr ""
-#: network.c:824
+#: network.c:800
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
-#: dnsmasq.c:152
+#: dnsmasq.c:114
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr ""
-#: dnsmasq.c:157
+#: dnsmasq.c:119
msgid "Cannot use --conntrack AND --query-port"
msgstr ""
-#: dnsmasq.c:160
+#: dnsmasq.c:122
msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
msgstr ""
-#: dnsmasq.c:165
+#: dnsmasq.c:127
msgid "asychronous logging is not available under Solaris"
msgstr ""
-#: dnsmasq.c:170
+#: dnsmasq.c:132
msgid "asychronous logging is not available under Android"
msgstr ""
-#: dnsmasq.c:189
+#: dnsmasq.c:151
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr ""
-#: dnsmasq.c:197
+#: dnsmasq.c:159
#, c-format
msgid "unknown interface %s"
msgstr ""
-#: dnsmasq.c:203
+#: dnsmasq.c:165
#, c-format
msgid "no interface with address %s"
msgstr ""
-#: dnsmasq.c:219 dnsmasq.c:716
+#: dnsmasq.c:181 dnsmasq.c:680
#, c-format
msgid "DBus error: %s"
msgstr ""
-#: dnsmasq.c:222
+#: dnsmasq.c:184
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr ""
-#: dnsmasq.c:248
+#: dnsmasq.c:211
#, c-format
msgid "unknown user or group: %s"
msgstr ""
-#: dnsmasq.c:303
+#: dnsmasq.c:266
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr ""
-#: dnsmasq.c:477
+#: dnsmasq.c:441
#, c-format
msgid "started, version %s DNS disabled"
msgstr ""
-#: dnsmasq.c:479
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s cachesize %d"
msgstr ""
-#: dnsmasq.c:481
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cache disabled"
msgstr ""
-#: dnsmasq.c:483
+#: dnsmasq.c:447
#, c-format
msgid "compile time options: %s"
msgstr ""
-#: dnsmasq.c:489
+#: dnsmasq.c:453
msgid "DBus support enabled: connected to system bus"
msgstr ""
-#: dnsmasq.c:491
+#: dnsmasq.c:455
msgid "DBus support enabled: bus connection pending"
msgstr ""
-#: dnsmasq.c:496
+#: dnsmasq.c:460
#, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr ""
-#: dnsmasq.c:500
+#: dnsmasq.c:464
msgid "setting --bind-interfaces option because of OS limitations"
msgstr ""
-#: dnsmasq.c:505
+#: dnsmasq.c:469
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr ""
-#: dnsmasq.c:510
+#: dnsmasq.c:474
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr ""
-#: dnsmasq.c:513
+#: dnsmasq.c:477
msgid "warning: no upstream servers configured"
msgstr ""
-#: dnsmasq.c:517
+#: dnsmasq.c:481
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr ""
-#: dnsmasq.c:530
+#: dnsmasq.c:494
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr ""
-#: dnsmasq.c:532
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, proxy on subnet %.0s%s%.0s"
msgstr ""
-#: dnsmasq.c:533
+#: dnsmasq.c:497
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr ""
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "root is "
msgstr ""
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "enabled"
msgstr ""
-#: dnsmasq.c:550
+#: dnsmasq.c:514
msgid "secure mode"
msgstr ""
-#: dnsmasq.c:576
+#: dnsmasq.c:540
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:718
+#: dnsmasq.c:682
msgid "connected to system DBus"
msgstr ""
-#: dnsmasq.c:813
+#: dnsmasq.c:806
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
-#: dnsmasq.c:816
+#: dnsmasq.c:809
#, c-format
msgid "failed to create helper: %s"
msgstr ""
-#: dnsmasq.c:819
+#: dnsmasq.c:812
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
-#: dnsmasq.c:823
+#: dnsmasq.c:815
#, c-format
msgid "failed to change user-id to %s: %s"
msgstr ""
-#: dnsmasq.c:828
+#: dnsmasq.c:818
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr ""
-#: dnsmasq.c:831
+#: dnsmasq.c:821
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr ""
-#: dnsmasq.c:834
+#: dnsmasq.c:824
+#, c-format
+msgid "cannot open log %s: %s"
+msgstr ""
+
+#: dnsmasq.c:827
#, c-format
-msgid "cannot open %s: %s"
+msgid "failed to load Lua script: %s"
msgstr ""
-#: dnsmasq.c:889
+#: dnsmasq.c:886
#, c-format
-msgid "child process killed by signal %d"
+msgid "script process killed by signal %d"
msgstr ""
-#: dnsmasq.c:893
+#: dnsmasq.c:890
#, c-format
-msgid "child process exited with status %d"
+msgid "script process exited with status %d"
msgstr ""
-#: dnsmasq.c:897
+#: dnsmasq.c:894
#, c-format
msgid "failed to execute %s: %s"
msgstr ""
-#: dnsmasq.c:941
+#: dnsmasq.c:939
msgid "exiting on receipt of SIGTERM"
msgstr ""
-#: dnsmasq.c:969
+#: dnsmasq.c:967
#, c-format
msgid "failed to access %s: %s"
msgstr ""
-#: dnsmasq.c:999
+#: dnsmasq.c:997
#, c-format
msgid "reading %s"
msgstr ""
-#: dnsmasq.c:1010
+#: dnsmasq.c:1008
#, c-format
msgid "no servers found in %s, will retry"
msgstr ""
-#: dhcp.c:39
+#: dhcp.c:49
#, c-format
msgid "cannot create DHCP socket: %s"
msgstr ""
-#: dhcp.c:51
+#: dhcp.c:64
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr ""
-#: dhcp.c:64
+#: dhcp.c:77
#, c-format
msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
msgstr ""
-#: dhcp.c:76
+#: dhcp.c:89
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr ""
-#: dhcp.c:102
+#: dhcp.c:115
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr ""
-#: dhcp.c:278
+#: dhcp.c:264
+#, c-format
+msgid "unknown interface %s in bridge-interface"
+msgstr ""
+
+#: dhcp.c:289
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr ""
-#: dhcp.c:442
+#: dhcp.c:504
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
-#: dhcp.c:861
+#: dhcp.c:923
#, c-format
msgid "bad line at %s line %d"
msgstr ""
-#: dhcp.c:904
+#: dhcp.c:966
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr ""
-#: dhcp.c:987
+#: dhcp.c:1049
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
-#: dhcp.c:990
+#: dhcp.c:1052
#, c-format
msgid "duplicate IP address %s in %s."
msgstr ""
-#: dhcp.c:1033
+#: dhcp.c:1095
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:1038
+#: dhcp.c:1100
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
-#: lease.c:67
+#: lease.c:70
#, c-format
msgid "cannot open or create lease file %s: %s"
msgstr ""
-#: lease.c:93
+#: lease.c:116
msgid "too many stored leases"
msgstr ""
-#: lease.c:129
+#: lease.c:173
#, c-format
msgid "cannot run lease-init script %s: %s"
msgstr ""
-#: lease.c:135
+#: lease.c:179
#, c-format
msgid "lease-init script returned exit code %s"
msgstr ""
-#: lease.c:235
+#: lease.c:325
#, c-format
msgid "failed to write %s: %s (retry in %us)"
msgstr ""
@@ -1255,19 +1272,19 @@ msgstr ""
msgid "disabled"
msgstr ""
-#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
+#: rfc2131.c:428 rfc2131.c:944 rfc2131.c:1336
msgid "ignored"
msgstr ""
-#: rfc2131.c:443 rfc2131.c:1183
+#: rfc2131.c:443 rfc2131.c:1182
msgid "address in use"
msgstr ""
-#: rfc2131.c:457 rfc2131.c:999
+#: rfc2131.c:457 rfc2131.c:998
msgid "no address available"
msgstr ""
-#: rfc2131.c:464 rfc2131.c:1146
+#: rfc2131.c:464 rfc2131.c:1145
msgid "wrong network"
msgstr ""
@@ -1275,146 +1292,146 @@ msgstr ""
msgid "no address configured"
msgstr ""
-#: rfc2131.c:485 rfc2131.c:1196
+#: rfc2131.c:485 rfc2131.c:1195
msgid "no leases left"
msgstr ""
-#: rfc2131.c:570
+#: rfc2131.c:569
#, c-format
msgid "%u client provides name: %s"
msgstr ""
-#: rfc2131.c:725
+#: rfc2131.c:724
#, c-format
msgid "%u vendor class: %s"
msgstr ""
-#: rfc2131.c:727
+#: rfc2131.c:726
#, c-format
msgid "%u user class: %s"
msgstr ""
-#: rfc2131.c:786
+#: rfc2131.c:785
msgid "PXE BIS not supported"
msgstr ""
-#: rfc2131.c:915
+#: rfc2131.c:914
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr ""
-#: rfc2131.c:936
+#: rfc2131.c:935
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:968
+#: rfc2131.c:967
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:978
+#: rfc2131.c:977
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:981
+#: rfc2131.c:980
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:997 rfc2131.c:1189
+#: rfc2131.c:996 rfc2131.c:1188
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:1084
+#: rfc2131.c:1083
msgid "wrong server-ID"
msgstr ""
-#: rfc2131.c:1103
+#: rfc2131.c:1102
msgid "wrong address"
msgstr ""
-#: rfc2131.c:1121
+#: rfc2131.c:1120
msgid "lease not found"
msgstr ""
-#: rfc2131.c:1154
+#: rfc2131.c:1153
msgid "address not available"
msgstr ""
-#: rfc2131.c:1165
+#: rfc2131.c:1164
msgid "static lease available"
msgstr ""
-#: rfc2131.c:1169
+#: rfc2131.c:1168
msgid "address reserved"
msgstr ""
-#: rfc2131.c:1177
+#: rfc2131.c:1176
#, c-format
msgid "abandoning lease to %s of %s"
msgstr ""
-#: rfc2131.c:1746
+#: rfc2131.c:1745
#, c-format
msgid "%u tags: %s"
msgstr ""
-#: rfc2131.c:1774
+#: rfc2131.c:1773
#, c-format
msgid "%u bootfile name: %s"
msgstr ""
-#: rfc2131.c:1783
+#: rfc2131.c:1782
#, c-format
msgid "%u server name: %s"
msgstr ""
-#: rfc2131.c:1791
+#: rfc2131.c:1790
#, c-format
msgid "%u next server: %s"
msgstr ""
-#: rfc2131.c:1794
+#: rfc2131.c:1793
#, c-format
msgid "%u broadcast response"
msgstr ""
-#: rfc2131.c:1857
+#: rfc2131.c:1856
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:2097
+#: rfc2131.c:2096
msgid "PXE menu too large"
msgstr ""
-#: rfc2131.c:2253
+#: rfc2131.c:2252
#, c-format
msgid "Ignoring duplicate dhcp-option %d"
msgstr ""
-#: rfc2131.c:2257
+#: rfc2131.c:2256
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr ""
-#: rfc2131.c:2275
+#: rfc2131.c:2274
#, c-format
msgid "%u requested options: %s"
msgstr ""
-#: rfc2131.c:2550
+#: rfc2131.c:2549
#, c-format
msgid "cannot send RFC3925 option: too many options for enterprise number %d"
msgstr ""
-#: netlink.c:70
+#: netlink.c:71
#, c-format
msgid "cannot create netlink socket: %s"
msgstr ""
-#: netlink.c:289
+#: netlink.c:321
#, c-format
msgid "netlink returns error: %s"
msgstr ""
@@ -1431,41 +1448,45 @@ msgstr ""
msgid "could not register a DBus message handler"
msgstr ""
-#: bpf.c:224
+#: bpf.c:225
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr ""
-#: bpf.c:252
+#: bpf.c:253
#, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr ""
-#: tftp.c:286
+#: helper.c:130
+msgid "lease() function missing in Lua script"
+msgstr ""
+
+#: tftp.c:285
msgid "unable to get free port for TFTP"
msgstr ""
-#: tftp.c:301
+#: tftp.c:300
#, c-format
msgid "unsupported request from %s"
msgstr ""
-#: tftp.c:411
+#: tftp.c:410
#, c-format
msgid "file %s not found"
msgstr ""
-#: tftp.c:527
+#: tftp.c:525
#, c-format
msgid "error %d %s received from %s"
msgstr ""
-#: tftp.c:559
+#: tftp.c:557
#, c-format
msgid "failed sending %s to %s"
msgstr ""
-#: tftp.c:573
+#: tftp.c:571
#, c-format
msgid "sent %s to %s"
msgstr ""
@@ -1475,12 +1496,12 @@ msgstr ""
msgid "overflow: %d log entries lost"
msgstr ""
-#: log.c:267
+#: log.c:268
#, c-format
msgid "log failed: %s"
msgstr ""
-#: log.c:471
+#: log.c:472
msgid "FAILED to start up"
msgstr ""
@@ -1488,3 +1509,18 @@ msgstr ""
#, c-format
msgid "Conntrack connection mark retrieval failed: %s"
msgstr ""
+
+#: dhcp6.c:42
+#, c-format
+msgid "cannot create DHCPv6 socket: %s"
+msgstr ""
+
+#: dhcp6.c:53
+#, c-format
+msgid "failed to bind DHCPv6 server socket: %s"
+msgstr ""
+
+#: dhcp6.c:57
+#, c-format
+msgid "failed to join DHCPv6 multicast group: %s"
+msgstr ""
diff --git a/po/fr.po b/po/fr.po
index c344c42..eda32e0 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -14,61 +14,61 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: cache.c:761
+#: cache.c:757
#, c-format
msgid "failed to load names from %s: %s"
msgstr "Impossible de charger les noms à partir de %s : %s"
-#: cache.c:795 dhcp.c:874
+#: cache.c:791 dhcp.c:936
#, c-format
msgid "bad address at %s line %d"
msgstr "mauvaise adresse dans %s ligne %d"
-#: cache.c:853 dhcp.c:890
+#: cache.c:849 dhcp.c:952
#, c-format
msgid "bad name at %s line %d"
msgstr "mauvais nom dans %s ligne %d"
-#: cache.c:860 dhcp.c:965
+#: cache.c:856 dhcp.c:1027
#, c-format
msgid "read %s - %d addresses"
msgstr "lecture %s - %d adresses"
-#: cache.c:899
+#: cache.c:895
msgid "cleared cache"
msgstr "cache vidé"
-#: cache.c:934
+#: cache.c:930
#, c-format
msgid "No IPv4 address found for %s"
msgstr "Aucune adresse IPv4 trouvée pour %s"
-#: cache.c:975
+#: cache.c:971
#, c-format
msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
msgstr "%s est un CNAME, il ne sera pas donné au bail DHCP de %s"
-#: cache.c:981
+#: cache.c:977
#, c-format
msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
msgstr "ne donne pas de nom %s au bail DHCP de %s parce-que le nom existe dans %s avec l'adresse %s"
-#: cache.c:1054
+#: cache.c:1050
#, c-format
msgid "time %lu"
msgstr "horodatage %lu"
-#: cache.c:1055
+#: cache.c:1051
#, c-format
msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
msgstr "taille de cache %d, %d/%d insertions dans le cache entrées non-expirées réutilisées"
-#: cache.c:1057
+#: cache.c:1053
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr "requêtes transmises %u, requêtes résolues localement %u"
-#: cache.c:1083
+#: cache.c:1076
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr "serveur %s#%d: requêtes envoyées %u, requêtes réessayées ou échouées %u"
@@ -82,7 +82,7 @@ msgstr "impossible d'initialiser le générateur de nombre aléatoire : %s"
msgid "failed to allocate memory"
msgstr "impossible d'allouer la mémoire"
-#: util.c:227 option.c:579
+#: util.c:227 option.c:585
msgid "could not get memory"
msgstr "impossible d'allouer de la mémoire"
@@ -96,475 +96,484 @@ msgstr "Ne peut pas créer le tube %s : %s"
msgid "failed to allocate %d bytes"
msgstr "impossible d'allouer %d octets"
-#: util.c:358
+#: util.c:377
#, c-format
msgid "infinite"
msgstr "illimité(e)"
-#: option.c:248
+#: option.c:252
msgid "Specify local address(es) to listen on."
msgstr "Spécifie la ou les adresse(s) locales où le démon doit se mettre à l'écoute."
-#: option.c:249
+#: option.c:253
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Retourne les adresses IP pour toutes les machines présentes dans les domaines spécifiés"
-#: option.c:250
+#: option.c:254
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Traduction inverse truquée pour la plage d'adresse privée RFC1918"
-#: option.c:251
+#: option.c:255
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Traite l'adresse IP comme un domaine inexistant NXDOMAIN (contourne le systeme de redirection de Verisign)"
-#: option.c:252
+#: option.c:256
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Spécifie le nombre d'entrées que contiendra le cache (par défaut : %s)."
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Spécifie le nom du fichier de configuration (par défaut : %s)"
-#: option.c:254
+#: option.c:258
msgid "Do NOT fork into the background: run in debug mode."
msgstr "Ne passe pas en tâche de fond : démarre en mode debug"
-#: option.c:255
+#: option.c:259
msgid "Do NOT forward queries with no domain part."
msgstr "Ne retransmet pas les requêtes qui n'ont pas de domaine."
-#: option.c:256
+#: option.c:260
msgid "Return self-pointing MX records for local hosts."
msgstr "Retourne les champs MX pour les machines locales."
-#: option.c:257
+#: option.c:261
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Etend les noms uniques des machines dans /etc/hosts avec le suffixe du domaine."
-#: option.c:258
+#: option.c:262
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Ne retransmet pas les fausses requêtes DNS en provenance des machines Windows."
-#: option.c:259
+#: option.c:263
msgid "Enable DHCP in the range given with lease duration."
msgstr "Autorise DHCP dans la plage d'adresses donnée sur la durée de validité du bail."
-#: option.c:260
+#: option.c:264
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "On change pour ce groupe après le démarrage (par défaut : %s)."
-#: option.c:261
+#: option.c:265
msgid "Set address or hostname for a specified machine."
msgstr "On assigne une adresse ou un nom pour une machine spécifiée."
-#: option.c:262
+#: option.c:266
msgid "Read DHCP host specs from file."
msgstr "Lecture des spécifications d'hôtes DHCP à partir du fichier"
-#: option.c:263
+#: option.c:267
msgid "Read DHCP option specs from file."
msgstr "Lecture des options DHCP à partir du fichier"
-#: option.c:264
+#: option.c:268
msgid "Evaluate conditional tag expression."
msgstr "Expression d'évaluation conditionnelle d'étiquette"
-#: option.c:265
+#: option.c:269
#, c-format
msgid "Do NOT load %s file."
msgstr "Ne charge PAS le fichier %s."
-#: option.c:266
+#: option.c:270
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Spécifie un nom de fichier hosts à lire en complément de %s"
-#: option.c:267
+#: option.c:271
msgid "Specify interface(s) to listen on."
msgstr "Spécifie la ou les interface(s) où le démon doit se mettre à l'écoute."
-#: option.c:268
+#: option.c:272
msgid "Specify interface(s) NOT to listen on."
msgstr "Spécifie la ou les interface(s) que le démon ne doit PAS traiter."
#
-#: option.c:269
+#: option.c:273
msgid "Map DHCP user class to tag."
msgstr "Associe les classes d'utilisateurs ('user class') DHCP aux options."
-#: option.c:270
+#: option.c:274
msgid "Map RFC3046 circuit-id to tag."
msgstr "Associe les identifiants de circuits RFC3046 ('circuit-id') aux options"
-#: option.c:271
+#: option.c:275
msgid "Map RFC3046 remote-id to tag."
msgstr "Associe les identifiants distants RFC3046 ('remote-id') aux options"
-#: option.c:272
+#: option.c:276
msgid "Map RFC3993 subscriber-id to tag."
msgstr "Associe les identifiants de souscripteurs RFC3993 ('subscriber-id') aux options"
#
-#: option.c:273
+#: option.c:277
msgid "Don't do DHCP for hosts with tag set."
msgstr "Ne pas autoriser DHCP pour les machines énumerées dans les options."
#
-#: option.c:274
+#: option.c:278
msgid "Force broadcast replies for hosts with tag set."
msgstr "Forcer les réponses par 'broadcast' pour les machines énumerées dans les options."
-#: option.c:275
+#: option.c:279
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "Ne passe pas en tâche de fond, ne pas s'exécuter en mode debug."
-#: option.c:276
+#: option.c:280
msgid "Assume we are the only DHCP server on the local network."
msgstr "On considère que l'on est le seul serveur DHCP sur le réseau local."
-#: option.c:277
+#: option.c:281
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Spécifie où il faut sauvegarder les baux DHCP (par défaut : %s)."
-#: option.c:278
+#: option.c:282
msgid "Return MX records for local hosts."
msgstr "Retourne les champs MX pour les machines locales."
-#: option.c:279
+#: option.c:283
msgid "Specify an MX record."
msgstr "Spécifie un champ MX."
-#: option.c:280
+#: option.c:284
msgid "Specify BOOTP options to DHCP server."
msgstr "Spécifie les options BOOTP pour le serveur DHCP."
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "Ne pas scruter le fichier %s, ne recharger les modifications que sur réception du signal SIGHUP."
-#: option.c:282
+#: option.c:286
msgid "Do NOT cache failed search results."
msgstr "Ne place pas en cache le résultat des requêtes qui ont échouées."
-#: option.c:283
+#: option.c:287
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Utilise les serveurs de noms dans l'ordre donné dans %s."
#
-#: option.c:284
+#: option.c:288
msgid "Specify options to be sent to DHCP clients."
msgstr "Options supplémentaires à associer aux clients DHCP."
-#: option.c:285
+#: option.c:289
msgid "DHCP option sent even if the client does not request it."
msgstr "Option DHCP envoyée même si le client de la demande pas."
-#: option.c:286
+#: option.c:290
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Spécifie le port où il faut écouter les requêtes DNS (par défaut : 53)."
-#: option.c:287
+#: option.c:291
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Taille maximale des paquets UDP supportés pour EDNS.0 (par défaut : %s)."
#
-#: option.c:288
+#: option.c:292
msgid "Log DNS queries."
msgstr "Enregistre les requêtes DNS dans un journal d'activité."
#
-#: option.c:289
+#: option.c:293
msgid "Force the originating port for upstream DNS queries."
msgstr "Force le port d'origine pour les requêtes vers les serveurs amonts."
-#: option.c:290
+#: option.c:294
msgid "Do NOT read resolv.conf."
msgstr "Ne pas lire le fichier resolv.conf."
-#: option.c:291
+#: option.c:295
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Spécifie le chemin pour le fichier resolv.conf (par défaut : %s)."
-#: option.c:292
+#: option.c:296
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Spécifie la ou les adresses des serveurs amonts avec des domaines optionels."
-#: option.c:293
+#: option.c:297
msgid "Never forward queries to specified domains."
msgstr "Ne jamais retransmettre les requêtes pour les domaines spécifiés."
-#: option.c:294
+#: option.c:298
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Spécifie le domaine qui doit etre assigné aux baux DHCP."
-#: option.c:295
+#: option.c:299
msgid "Specify default target in an MX record."
msgstr "Spécifie la cible par défaut dans un champ MX."
-#: option.c:296
+#: option.c:300
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr "Spécifie le TTL en secondes pour les réponses qui utilisent /etc/hosts."
#
-#: option.c:297
+#: option.c:301
msgid "Specify time-to-live in seconds for negative caching."
msgstr "Spécifie le TTL en secondes pour les réponses qui utilisent /etc/hosts."
-#: option.c:298
+#: option.c:302
msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
msgstr "Spécifie, en secondes, la valeur maximum de TTL à renvoyer aux clients."
-#: option.c:299
+#: option.c:303
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Change pour cet utilisateur après le démarrage (par défaut : %s)."
#
-#: option.c:300
+#: option.c:304
msgid "Map DHCP vendor class to tag."
msgstr "Associe les classes de fournisseurs ('vendor class') DHCP aux options."
-#: option.c:301
+#: option.c:305
msgid "Display dnsmasq version and copyright information."
msgstr "Affiche la version de Dnsmasq et les informations liées au copyright."
-#: option.c:302
+#: option.c:306
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Traduit les adresses IPV4 des serveurs amonts."
-#: option.c:303
+#: option.c:307
msgid "Specify a SRV record."
msgstr "Spécifie un champ SRV."
-#: option.c:304
+#: option.c:308
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr "Afficher ce message. Utiliser --help dhcp pour obtenir la liste des options DHCP connues."
-#: option.c:305
+#: option.c:309
#, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr "Spécifie un chemin pour le fichier PID (par défaut : %s)."
-#: option.c:306
+#: option.c:310
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Spécifie le nombre maximum de baux DHCP (par défaut : %s)."
-#: option.c:307
+#: option.c:311
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr "Repond aux requêtes DNS en se basant sur l'interface ou a été envoyée la requête."
-#: option.c:308
+#: option.c:312
msgid "Specify TXT DNS record."
msgstr "Spécifie un champ DNS TXT"
#
-#: option.c:309
+#: option.c:313
msgid "Specify PTR DNS record."
msgstr "Spécifie un champ DNS PTR"
-#: option.c:310
+#: option.c:314
msgid "Give DNS name to IPv4 address of interface."
msgstr "Donne le nom DNS pour l'adresse IPv4 de l'interface."
-#: option.c:311
+#: option.c:315
msgid "Bind only to interfaces in use."
msgstr "Association uniquement aux interfaces réseau actuellement actives."
-#: option.c:312
+#: option.c:316
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Lecture des informations de DHCP statique à partir de %s."
-#: option.c:313
+#: option.c:317
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Autorise l'interface DBus pour la configuration des serveurs amonts, etc."
-#: option.c:314
+#: option.c:318
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Ne pas assurer de fonction DHCP sur cette interface, mais seulement la fonction DNS."
-#: option.c:315
+#: option.c:319
msgid "Enable dynamic address allocation for bootp."
msgstr "Autorise l'allocation dynamique d'adresse pour bootp."
#
-#: option.c:316
+#: option.c:320
msgid "Map MAC address (with wildcards) to option set."
msgstr "Associe l'adresse MAC (avec les jokers) aux options."
-#: option.c:317
+#: option.c:321
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr "Traiter les requêtes DHCP sur les alias comme arrivant de l'interface."
-#: option.c:318
+#: option.c:322
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr "Supprime la vérification d'adresse sur le serveur au moyen de paquets ICMP echo"
-#: option.c:319
+#: option.c:323
msgid "Script to run on DHCP lease creation and destruction."
msgstr "Script à exécuter lors de la création ou destruction de bail DHCP."
-#: option.c:320
+#: option.c:324
msgid "Read configuration from all the files in this directory."
msgstr "Lecture de la configuration dans tous les fichiers de ce répertoire."
#
-#: option.c:321
+#: option.c:325
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr "Enregistrer les journaux d'activité dans cette facilité syslog. (défaut : DAEMON)"
-#: option.c:322
+#: option.c:326
msgid "Do not use leasefile."
msgstr "Ne pas utiliser de fichier de baux."
-#: option.c:323
+#: option.c:327
#, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr "Spécifie le nombre maximum de requêtes DHCP concurrentes (par défaut : %s)."
-#: option.c:324
+#: option.c:328
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr "Vider le cache DNS lors du rechargement de %s."
-#: option.c:325
+#: option.c:329
msgid "Ignore hostnames provided by DHCP clients."
msgstr "Ignorer les noms d'hôtes fournis par les clients DHCP"
-#: option.c:326
+#: option.c:330
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr "Ne pas réutiliser les champs nom de fichier et serveur dans les options DHCP supplémentaires."
-#: option.c:327
+#: option.c:331
msgid "Enable integrated read-only TFTP server."
msgstr "Activer le server TFTP intégré (fonctionnant en lecture seulement)"
-#: option.c:328
+#: option.c:332
msgid "Export files by TFTP only from the specified subtree."
msgstr "N'exporter par TFTP que les fichiers de l'arborescence de fichier spécifiée"
-#: option.c:329
+#: option.c:333
msgid "Add client IP address to tftp-root."
msgstr "Ajouter les adresses IP clientes à la racine tftp ('tftp-root')."
-#: option.c:330
+#: option.c:334
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr "Accès aux seuls fichiers appartenants à l'utilisateur sous lequel tourne dnsmasq"
-#: option.c:331
+#: option.c:335
#, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr "Spécifie le nombre maximum de transfert TFTP concurrents (défaut : %s)."
-#: option.c:332
+#: option.c:336
msgid "Disable the TFTP blocksize extension."
msgstr "Désactivation de l'extension TFTP « taille de bloc »"
-#: option.c:333
+#: option.c:337
msgid "Ephemeral port range for use by TFTP transfers."
msgstr "Gamme de ports dans laquelle seront choisis les ports temporaires utilisés dans les transferts TFTP."
-#: option.c:334
+#: option.c:338
msgid "Extra logging for DHCP."
msgstr "Traces supplémentaires pour le DHCP."
-#: option.c:335
+#: option.c:339
msgid "Enable async. logging; optionally set queue length."
msgstr "Active l'écriture de traces en mode asynchrone. Peut prendre en option la valeur de la longueur de la queue."
-#: option.c:336
+#: option.c:340
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr "Stopper la réassociation DNS ('DNS rebinding'). Filtre les gammes d'adresses IP privées lors de la résolution."
-#: option.c:337
+#: option.c:341
msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
msgstr "Autorise la réassociation de 127.0.0/8, pour les serveurs RBL (Realtime Blackhole List)"
-#: option.c:338
+#: option.c:342
msgid "Inhibit DNS-rebind protection on this domain."
msgstr "Désactive la protection contre les réassociation DNS pour ce domaine"
-#: option.c:339
+#: option.c:343
msgid "Always perform DNS queries to all servers."
msgstr "Toujours effectuer les requêtes DNS à tous les serveurs."
#
-#: option.c:340
+#: option.c:344
msgid "Set tag if client includes matching option in request."
msgstr "Spécifie le label si le client inclus l'option dans la requête."
-#: option.c:341
+#: option.c:345
msgid "Use alternative ports for DHCP."
msgstr "Utiliser des ports alternatifs pour le DHCP."
-#: option.c:342
+#: option.c:346
msgid "Run lease-change script as this user."
msgstr "Lancer le script 'lease-change' avec cet utilisateur."
#
-#: option.c:343
+#: option.c:347
msgid "Specify NAPTR DNS record."
msgstr "Spécifie un champ DNS NAPTR."
-#: option.c:344
+#: option.c:348
msgid "Specify lowest port available for DNS query transmission."
msgstr "Définie le plus petit port utilisé pour la transmission d'une requête DNS."
-#: option.c:345
+#: option.c:349
msgid "Use only fully qualified domain names for DHCP clients."
msgstr "Utilise seulement les noms de domaine pleinement qualifiés pour les clients DHCP."
-#: option.c:346
+#: option.c:350
msgid "Generate hostnames based on MAC address for nameless clients."
msgstr "Génère les noms d'hôtes à partir de l'adresse MAC pour les clients sans nom."
-#: option.c:347
+#: option.c:351
msgid "Use these DHCP relays as full proxies."
msgstr "Utilise ces relais DHCP en temps que proxy complets."
-#: option.c:348
+#: option.c:352
msgid "Specify alias name for LOCAL DNS name."
msgstr "Spécifie un alias pour un nom DNS local."
#
-#: option.c:349
+#: option.c:353
msgid "Prompt to send to PXE clients."
msgstr "Invite à envoyer aux clients PXE."
-#: option.c:350
+#: option.c:354
msgid "Boot service for PXE menu."
msgstr "Service de démarrage pour menu PXE."
-#: option.c:351
+#: option.c:355
msgid "Check configuration syntax."
msgstr "vérification de la syntaxe de la configuration."
-#: option.c:352
+#: option.c:356
msgid "Add requestor's MAC address to forwarded DNS queries."
msgstr "Ajoute l'adresse MAC du requêteur aux requêtes DNS transmises"
-#: option.c:353
+#: option.c:357
msgid "Proxy DNSSEC validation results from upstream nameservers."
msgstr "Copie dans la réponse DNS le résultat de la validation DNSSEC effectuée par les serveurs DNS amonts."
-#: option.c:354
+#: option.c:358
msgid "Attempt to allocate sequential IP addresses to DHCP clients."
msgstr "Essaie d'allouer des adresses IP séquentielles aux clients DHCP."
-#: option.c:355
+#: option.c:359
msgid "Copy connection-track mark from queries to upstream connections."
msgstr "Copie les marques de suivi de connexion pour les requêtes amont."
-#: option.c:644
+#: option.c:360
+msgid "Allow DHCP clients to do their own DDNS updates."
+msgstr ""
+
+#: option.c:361
+#, fuzzy
+msgid "Specify path to Lua script (no default)."
+msgstr "Spécifie un chemin pour le fichier PID (par défaut : %s)."
+
+#: option.c:650
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -573,240 +582,245 @@ msgstr ""
"Usage : dnsmasq [options]\n"
"\n"
-#: option.c:646
+#: option.c:652
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Utilisez les options courtes uniquement sur la ligne de commande.\n"
-#: option.c:648
+#: option.c:654
#, c-format
msgid "Valid options are:\n"
msgstr "Les options valides sont :\n"
-#: option.c:689
+#: option.c:695
#, c-format
msgid "Known DHCP options:\n"
msgstr "Options DHCP connues :\n"
-#: option.c:804
+#: option.c:810
msgid "bad dhcp-option"
msgstr "mauvaise valeur de 'dhcp-option'"
#
-#: option.c:866
+#: option.c:872
msgid "bad IP address"
msgstr "mauvaise adresse IP"
-#: option.c:974
+#: option.c:980
msgid "bad domain in dhcp-option"
msgstr "mauvais domaine dans dhcp-option"
-#: option.c:1040
+#: option.c:1046
msgid "dhcp-option too long"
msgstr "dhcp-option trop long"
-#: option.c:1049
+#: option.c:1055
msgid "illegal dhcp-match"
msgstr "valeur illégale pour 'dhcp-match'"
-#: option.c:1093
+#: option.c:1099
msgid "illegal repeated flag"
msgstr "Une option ne pouvant être spécifié qu'une seule fois à été donnée plusieurs fois"
-#: option.c:1101
+#: option.c:1107
msgid "illegal repeated keyword"
msgstr "Mot-clef ne pouvant être répété"
-#: option.c:1153 option.c:3062
+#: option.c:1159 option.c:3077
#, c-format
msgid "cannot access directory %s: %s"
msgstr "Ne peut pas lire le répertoire %s : %s"
-#: option.c:1184 tftp.c:465
+#: option.c:1190 tftp.c:464
#, c-format
msgid "cannot access %s: %s"
msgstr "Ne peut pas lire %s : %s"
-#: option.c:1213
+#: option.c:1219
msgid "setting log facility is not possible under Android"
msgstr "Sous android, impossible de positionner la cible (facility) pour les traces (logs)."
-#: option.c:1222
+#: option.c:1228
msgid "bad log facility"
msgstr "Mauvaise cible (facility) pour les traces."
-#: option.c:1271
+#: option.c:1277
msgid "bad MX preference"
msgstr "préference MX incorrecte"
-#: option.c:1276
+#: option.c:1282
msgid "bad MX name"
msgstr "nom MX incorrect"
-#: option.c:1290
+#: option.c:1296
msgid "bad MX target"
msgstr "valeur MX cible incorrecte"
-#: option.c:1300
+#: option.c:1308
msgid "cannot run scripts under uClinux"
msgstr "ne peut exécuter de script sous uClinux"
-#: option.c:1302
+#: option.c:1310
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr "pour permettre l'exécution de scripts au changement de bail (lease-change), recompiler en définissant HAVE_SCRIPT"
-#: option.c:1607 option.c:1611
+#: option.c:1314
+#, fuzzy
+msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts"
+msgstr "pour permettre l'exécution de scripts au changement de bail (lease-change), recompiler en définissant HAVE_SCRIPT"
+
+#: option.c:1622 option.c:1626
msgid "bad port"
msgstr "numéro de port incorrect"
-#: option.c:1634 option.c:1665
+#: option.c:1649 option.c:1680
msgid "interface binding not supported"
msgstr "association d'interface non supportée"
#
-#: option.c:1645 option.c:2614
+#: option.c:1660 option.c:2629
msgid "bad interface name"
msgstr "nom d'interface invalide"
#
-#: option.c:1810
+#: option.c:1825
msgid "bad port range"
msgstr "gamme de ports incorrecte"
-#: option.c:1827
+#: option.c:1842
msgid "bad bridge-interface"
msgstr "interface-pont incorrecte"
-#: option.c:1870
+#: option.c:1885
msgid "bad dhcp-range"
msgstr "plage d'adresses DHCP (dhcp-range) incorrecte"
-#: option.c:1898
+#: option.c:1913
msgid "only one tag allowed"
msgstr "une seule étiquette est autorisée"
-#: option.c:1945
+#: option.c:1960
msgid "inconsistent DHCP range"
msgstr "plage d'adresses DHCP incohérente"
-#: option.c:2039 option.c:2067
+#: option.c:2054 option.c:2082
msgid "bad hex constant"
msgstr "mauvaise constante hexadecimale"
-#: option.c:2061
+#: option.c:2076
msgid "cannot match tags in --dhcp-host"
msgstr "L'utilisation de labels est prohibée dans --dhcp-host"
#
-#: option.c:2129
+#: option.c:2144
msgid "bad DHCP host name"
msgstr "nom d'hôte DHCP incorrect"
-#: option.c:2210
+#: option.c:2225
msgid "bad tag-if"
msgstr "mauvaise étiquette tag-if"
-#: option.c:2499 option.c:2784
+#: option.c:2514 option.c:2799
msgid "invalid port number"
msgstr "numéro de port invalide"
#
-#: option.c:2561
+#: option.c:2576
msgid "bad dhcp-proxy address"
msgstr "adresse dhcp-proxy incorrecte"
#
-#: option.c:2601
+#: option.c:2616
msgid "invalid alias range"
msgstr "poids invalide"
-#: option.c:2639
+#: option.c:2654
msgid "bad CNAME"
msgstr "mauvais CNAME"
-#: option.c:2644
+#: option.c:2659
msgid "duplicate CNAME"
msgstr "ce CNAME existe déja"
#
-#: option.c:2664
+#: option.c:2679
msgid "bad PTR record"
msgstr "mauvais champ PTR"
#
-#: option.c:2695
+#: option.c:2710
msgid "bad NAPTR record"
msgstr "mauvais champ NAPTR"
-#: option.c:2727
+#: option.c:2742
msgid "bad TXT record"
msgstr "champ TXT invalide"
-#: option.c:2770
+#: option.c:2785
msgid "bad SRV record"
msgstr "champ SRV invalide"
-#: option.c:2777
+#: option.c:2792
msgid "bad SRV target"
msgstr "cible SRV invalide"
-#: option.c:2791
+#: option.c:2806
msgid "invalid priority"
msgstr "priorité invalide"
-#: option.c:2798
+#: option.c:2813
msgid "invalid weight"
msgstr "poids invalide"
-#: option.c:2817
+#: option.c:2832
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr "option non supportée (vérifier que Dnsmasq a été compilé avec le support DHCP/TFTP/DBus)"
-#: option.c:2881
+#: option.c:2896
msgid "missing \""
msgstr "il manque \""
-#: option.c:2940
+#: option.c:2955
msgid "bad option"
msgstr "mauvaise option"
-#: option.c:2942
+#: option.c:2957
msgid "extraneous parameter"
msgstr "paramètre en trop"
-#: option.c:2944
+#: option.c:2959
msgid "missing parameter"
msgstr "paramètre manquant"
-#: option.c:2948
+#: option.c:2963
msgid "error"
msgstr "erreur"
-#: option.c:2953
+#: option.c:2968
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s à la ligne %d de %%s"
-#: option.c:3017 tftp.c:629
+#: option.c:3032 tftp.c:627
#, c-format
msgid "cannot read %s: %s"
msgstr "Ne peut pas lire %s : %s"
-#: option.c:3183 option.c:3219
+#: option.c:3198 option.c:3234
#, c-format
msgid "read %s"
msgstr "Lecture de %s"
-#: option.c:3271
+#: option.c:3286
msgid "junk found in command line"
msgstr "la ligne de commande contient des éléments indésirables ou incompréhensibles"
-#: option.c:3301
+#: option.c:3316
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Version de Dnsmasq %s %s\n"
-#: option.c:3302
+#: option.c:3317
#, c-format
msgid ""
"Compile time options %s\n"
@@ -815,62 +829,62 @@ msgstr ""
"Options à la compilation %s\n"
"\n"
-#: option.c:3303
+#: option.c:3318
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Ce logiciel est fourni sans AUCUNE GARANTIE.\n"
-#: option.c:3304
+#: option.c:3319
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr "Dnsmasq est un logiciel libre, il vous est permis de le redistribuer\n"
-#: option.c:3305
+#: option.c:3320
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr "sous les termes de la licence GPL (GNU General Public License), version 2 ou 3.\n"
-#: option.c:3316
+#: option.c:3331
msgid "try --help"
msgstr "essayez avec --help"
-#: option.c:3318
+#: option.c:3333
msgid "try -w"
msgstr "essayez avec -w"
-#: option.c:3321
+#: option.c:3336
#, c-format
msgid "bad command line options: %s"
msgstr "mauvaises options en ligne de commande : %s."
-#: option.c:3362
+#: option.c:3377
#, c-format
msgid "cannot get host-name: %s"
msgstr "ne peut pas obtenir le nom de la machine : %s"
-#: option.c:3390
+#: option.c:3405
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "seul un fichier resolv.conf est autorisé dans le mode no-poll"
-#: option.c:3400
+#: option.c:3415
msgid "must have exactly one resolv.conf to read domain from."
msgstr "un fichier resolv.conf (et un seul) est nécessaire pour y récuperer le nom de domaine."
-#: option.c:3403 network.c:845 dhcp.c:823
+#: option.c:3418 network.c:821 dhcp.c:885
#, c-format
msgid "failed to read %s: %s"
msgstr "impossible de lire %s : %s"
-#: option.c:3420
+#: option.c:3435
#, c-format
msgid "no search directive found in %s"
msgstr "pas de directive de recherche trouvée dans %s"
-#: option.c:3441
+#: option.c:3456
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr "un domaine par défaut doit être spécifié lorsque l'option --dhcp-fqdn est utilisée"
-#: option.c:3445
+#: option.c:3460
msgid "syntax check OK"
msgstr "vérification de syntaxe OK"
@@ -884,375 +898,381 @@ msgstr "le serveur de nom %s a refusé de faire une recherche récursive"
msgid "possible DNS-rebind attack detected: %s"
msgstr "détection d'une possible attaque de type DNS-rebind: %s"
-#: network.c:171
-#, c-format
-msgid "unknown interface %s in bridge-interface"
-msgstr "interface %s inconnue spécifiée comme interface de pont"
-
-#: network.c:384
+#: network.c:354
#, c-format
msgid "failed to create listening socket for %s: %s"
msgstr "impossible de créer une socket d'écoute pour %s : %s"
-#: network.c:743
+#: network.c:719
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "impossible de lier la socket de serveur pour %s : %s"
-#: network.c:780
+#: network.c:756
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignore le serveur de nom %s - interface locale"
-#: network.c:791
+#: network.c:767
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr "ignore le serveur de nom %s - ne peut construire/lier la socket : %m"
-#: network.c:808
+#: network.c:784
msgid "unqualified"
msgstr "non-qualifié(e)"
-#: network.c:808
+#: network.c:784
msgid "names"
msgstr "noms"
-#: network.c:810
+#: network.c:786
msgid "default"
msgstr "défaut"
-#: network.c:812
+#: network.c:788
msgid "domain"
msgstr "domaine"
-#: network.c:815
+#: network.c:791
#, c-format
msgid "using local addresses only for %s %s"
msgstr "utilise les adresses locales seulement pour %s %s"
-#: network.c:817
+#: network.c:793
#, c-format
msgid "using standard nameservers for %s %s"
msgstr "utilisation des serveurs de nom standards pour %s %s"
-#: network.c:819
+#: network.c:795
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "utilise le serveur de nom %s#%d pour %s %s"
-#: network.c:822
+#: network.c:798
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "utilise le serveur de nom %s#%d (via %s)"
-#: network.c:824
+#: network.c:800
#, c-format
msgid "using nameserver %s#%d"
msgstr "utilise le serveur de nom %s#%d"
#
-#: dnsmasq.c:152
+#: dnsmasq.c:114
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr "TFTP n'est pas disponible : activez HAVE_TFTP dans src/config.h"
-#: dnsmasq.c:157
+#: dnsmasq.c:119
msgid "Cannot use --conntrack AND --query-port"
msgstr "impossible d'utiliser conjointement --conntrack et --query-port"
#
-#: dnsmasq.c:160
+#: dnsmasq.c:122
msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
msgstr "Support de suivi de connexion non disponible : activez HAVE_CONNTRACK dans src/config.h"
-#: dnsmasq.c:165
+#: dnsmasq.c:127
msgid "asychronous logging is not available under Solaris"
msgstr "l'écriture de traces en mode asynchrone n'est pas disponible sous Solaris."
-#: dnsmasq.c:170
+#: dnsmasq.c:132
msgid "asychronous logging is not available under Android"
msgstr "l'écriture de traces en mode asynchrone n'est pas disponible sous Android."
-#: dnsmasq.c:189
+#: dnsmasq.c:151
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr "impossible de trouver la liste des interfaces : %s"
-#: dnsmasq.c:197
+#: dnsmasq.c:159
#, c-format
msgid "unknown interface %s"
msgstr "interface %s inconnue"
-#: dnsmasq.c:203
+#: dnsmasq.c:165
#, c-format
msgid "no interface with address %s"
msgstr "pas d'interface avec l'adresse %s"
-#: dnsmasq.c:219 dnsmasq.c:716
+#: dnsmasq.c:181 dnsmasq.c:680
#, c-format
msgid "DBus error: %s"
msgstr "Erreur DBus : %s"
-#: dnsmasq.c:222
+#: dnsmasq.c:184
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus n'est pas disponible : activez HAVE_DBUS dans src/config.h"
-#: dnsmasq.c:248
+#: dnsmasq.c:211
#, c-format
msgid "unknown user or group: %s"
msgstr "utilisateur ou groupe inconnu : %s"
-#: dnsmasq.c:303
+#: dnsmasq.c:266
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr "Ne peut effectuer un 'chdir' à la racine du système de fichier : %s"
-#: dnsmasq.c:477
+#: dnsmasq.c:441
#, c-format
msgid "started, version %s DNS disabled"
msgstr "démarrage avec le DNS désactivé (version %s)"
-#: dnsmasq.c:479
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s cachesize %d"
msgstr "demarré, version %s (taille de cache %d)"
-#: dnsmasq.c:481
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cache disabled"
msgstr "démarrage avec le cache désactivé (version %s)"
-#: dnsmasq.c:483
+#: dnsmasq.c:447
#, c-format
msgid "compile time options: %s"
msgstr "options à la compilation : %s"
-#: dnsmasq.c:489
+#: dnsmasq.c:453
msgid "DBus support enabled: connected to system bus"
msgstr "Support DBus autorisé : connecté au bus système"
-#: dnsmasq.c:491
+#: dnsmasq.c:455
msgid "DBus support enabled: bus connection pending"
msgstr "Support DBus autorisé : connexion au bus en attente"
-#: dnsmasq.c:496
+#: dnsmasq.c:460
#, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr "Impossible de changer pour l'utilisateur %s : %s"
-#: dnsmasq.c:500
+#: dnsmasq.c:464
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "active l'option --bind-interfaces à cause de limitations dans le système d'exploitation"
-#: dnsmasq.c:505
+#: dnsmasq.c:469
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "attention : l'interface %s n'existe pas actuellement"
-#: dnsmasq.c:510
+#: dnsmasq.c:474
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr "attention : l'option « resolv-file » sera ignorée car « no-resolv » a été spécifié"
#
-#: dnsmasq.c:513
+#: dnsmasq.c:477
msgid "warning: no upstream servers configured"
msgstr "attention : aucun serveur amont n'est configuré"
-#: dnsmasq.c:517
+#: dnsmasq.c:481
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr "mode asynchrone d'écriture de traces, la taille maximum de la queue est de %d messages."
-#: dnsmasq.c:530
+#: dnsmasq.c:494
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "baux statiques DHCP seulement sur %.0s%s, durée de validité de bail %s"
-#: dnsmasq.c:532
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, proxy on subnet %.0s%s%.0s"
msgstr "DHCP, proxy sur le sous-réseau %.0s%s%.0s"
-#: dnsmasq.c:533
+#: dnsmasq.c:497
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, plage d'adresses %s -- %s, durée de bail %s"
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "root is "
msgstr "root est"
#
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "enabled"
msgstr "activé"
-#: dnsmasq.c:550
+#: dnsmasq.c:514
msgid "secure mode"
msgstr "mode sécurisé"
-#: dnsmasq.c:576
+#: dnsmasq.c:540
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "le nombre maximum de transferts TFTP simultanés sera restreint à %d"
-#: dnsmasq.c:718
+#: dnsmasq.c:682
msgid "connected to system DBus"
msgstr "connecté au systeme DBus"
-#: dnsmasq.c:813
+#: dnsmasq.c:806
#, c-format
msgid "cannot fork into background: %s"
msgstr "Ne peut se lancer en tâche de fond : %s"
-#: dnsmasq.c:816
+#: dnsmasq.c:809
#, c-format
msgid "failed to create helper: %s"
msgstr "impossible de créer le 'helper' : %s"
-#: dnsmasq.c:819
+#: dnsmasq.c:812
#, c-format
msgid "setting capabilities failed: %s"
msgstr "impossible de configurer la capacité %s"
-#: dnsmasq.c:823
+#: dnsmasq.c:815
#, c-format
msgid "failed to change user-id to %s: %s"
msgstr "Impossible de changer l'identifiant utilisateur pour %s : %s"
-#: dnsmasq.c:828
+#: dnsmasq.c:818
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr "Impossible de changer l'identifiant de groupe pour %s : %s"
-#: dnsmasq.c:831
+#: dnsmasq.c:821
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr "impossible de lire le fichier de PID %s : %s"
-#: dnsmasq.c:834
-#, c-format
-msgid "cannot open %s: %s"
+#: dnsmasq.c:824
+#, fuzzy, c-format
+msgid "cannot open log %s: %s"
msgstr "Ne peut pas lire %s : %s"
-#: dnsmasq.c:889
-#, c-format
-msgid "child process killed by signal %d"
+#
+#: dnsmasq.c:827
+#, fuzzy, c-format
+msgid "failed to load Lua script: %s"
+msgstr "impossible de charger %s : %m"
+
+#: dnsmasq.c:886
+#, fuzzy, c-format
+msgid "script process killed by signal %d"
msgstr "Le processus fils a été terminé par le signal %d"
-#: dnsmasq.c:893
-#, c-format
-msgid "child process exited with status %d"
+#: dnsmasq.c:890
+#, fuzzy, c-format
+msgid "script process exited with status %d"
msgstr "Le processus fils s'est terminé avec le statut %d"
-#: dnsmasq.c:897
+#: dnsmasq.c:894
#, c-format
msgid "failed to execute %s: %s"
msgstr "impossible d'exécuter à %s : %s"
-#: dnsmasq.c:941
+#: dnsmasq.c:939
msgid "exiting on receipt of SIGTERM"
msgstr "sortie sur réception du signal SIGTERM"
-#: dnsmasq.c:969
+#: dnsmasq.c:967
#, c-format
msgid "failed to access %s: %s"
msgstr "impossible d'accéder à %s : %s"
-#: dnsmasq.c:999
+#: dnsmasq.c:997
#, c-format
msgid "reading %s"
msgstr "Lecture de %s"
-#: dnsmasq.c:1010
+#: dnsmasq.c:1008
#, c-format
msgid "no servers found in %s, will retry"
msgstr "aucun serveur trouvé dans %s, va réessayer"
-#: dhcp.c:39
+#: dhcp.c:49
#, c-format
msgid "cannot create DHCP socket: %s"
msgstr "ne peut créer la socket DHCP: %s"
-#: dhcp.c:51
+#: dhcp.c:64
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "impossible d'appliquer les options sur la socket DHCP : %s"
-#: dhcp.c:64
+#: dhcp.c:77
#, c-format
msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
msgstr "impossible de déclarer SO_REUSE{ADDR|PORT} sur la socket DHCP : %s"
-#: dhcp.c:76
+#: dhcp.c:89
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "impossible de lier la socket serveur DHCP : %s"
-#: dhcp.c:102
+#: dhcp.c:115
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "ne peut créer de socket en mode raw pour ICMP : %s."
-#: dhcp.c:278
+#: dhcp.c:264
+#, c-format
+msgid "unknown interface %s in bridge-interface"
+msgstr "interface %s inconnue spécifiée comme interface de pont"
+
+#: dhcp.c:289
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr "Paquet DHCP reçu sur %s qui n'a pas d'adresse"
-#: dhcp.c:442
+#: dhcp.c:504
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "La plage d'adresses DHCP %s -- %s n'est pas cohérente avec le masque de réseau %s"
-#: dhcp.c:861
+#: dhcp.c:923
#, c-format
msgid "bad line at %s line %d"
msgstr "mauvaise ligne dans %s ligne %d"
-#: dhcp.c:904
+#: dhcp.c:966
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr "ignore %s à la ligne %d : duplication de nom ou d'adresse IP"
-#: dhcp.c:987
+#: dhcp.c:1049
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "adresse IP %s dupliquée dans la directive dhcp-config."
-#: dhcp.c:990
+#: dhcp.c:1052
#, c-format
msgid "duplicate IP address %s in %s."
msgstr "adresse IP %s dupliquée dans %s."
-#: dhcp.c:1033
+#: dhcp.c:1095
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr "%s a plus d'une adresse dans le fichier d'hôte, utilisation de %s pour le DHCP."
-#: dhcp.c:1038
+#: dhcp.c:1100
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "adresse IP %s (%s) dupliquée dans la directive dhcp-config."
-#: lease.c:67
+#: lease.c:70
#, c-format
msgid "cannot open or create lease file %s: %s"
msgstr "ne peut ouvrir ou créer le fichiers de baux %s : %s"
-#: lease.c:93
+#: lease.c:116
msgid "too many stored leases"
msgstr "beaucoup trop de baux enregistrés"
-#: lease.c:129
+#: lease.c:173
#, c-format
msgid "cannot run lease-init script %s: %s"
msgstr "Ne peut pas exécuter le script lease-init %s : %s"
-#: lease.c:135
+#: lease.c:179
#, c-format
msgid "lease-init script returned exit code %s"
msgstr "le script lease-init a retourné le code %s"
-#: lease.c:235
+#: lease.c:325
#, c-format
msgid "failed to write %s: %s (retry in %us)"
msgstr "impossible de lire %s : %s (prochain essai dans %us)"
@@ -1284,19 +1304,19 @@ msgstr "%u la gamme DHCP disponible est : %s -- %s"
msgid "disabled"
msgstr "désactivé"
-#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
+#: rfc2131.c:428 rfc2131.c:944 rfc2131.c:1336
msgid "ignored"
msgstr "ignoré"
-#: rfc2131.c:443 rfc2131.c:1183
+#: rfc2131.c:443 rfc2131.c:1182
msgid "address in use"
msgstr "adresse déjà utilisée"
-#: rfc2131.c:457 rfc2131.c:999
+#: rfc2131.c:457 rfc2131.c:998
msgid "no address available"
msgstr "pas d'adresse disponible"
-#: rfc2131.c:464 rfc2131.c:1146
+#: rfc2131.c:464 rfc2131.c:1145
msgid "wrong network"
msgstr "mauvais réseau"
@@ -1304,146 +1324,146 @@ msgstr "mauvais réseau"
msgid "no address configured"
msgstr "pas d'adresse configurée"
-#: rfc2131.c:485 rfc2131.c:1196
+#: rfc2131.c:485 rfc2131.c:1195
msgid "no leases left"
msgstr "plus aucun bail disponible"
-#: rfc2131.c:570
+#: rfc2131.c:569
#, c-format
msgid "%u client provides name: %s"
msgstr "le client %u fourni le nom : %s"
-#: rfc2131.c:725
+#: rfc2131.c:724
#, c-format
msgid "%u vendor class: %s"
msgstr "%u Classe de vendeur ('Vendor Class') : %s"
-#: rfc2131.c:727
+#: rfc2131.c:726
#, c-format
msgid "%u user class: %s"
msgstr "%u Classe d'utilisateur : %s"
-#: rfc2131.c:786
+#: rfc2131.c:785
msgid "PXE BIS not supported"
msgstr "Service PXE BIS (Boot Integrity Services) non supporté"
-#: rfc2131.c:915
+#: rfc2131.c:914
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "désactive l'adresse statique DHCP %s pour %s"
-#: rfc2131.c:936
+#: rfc2131.c:935
msgid "unknown lease"
msgstr "bail inconnu"
-#: rfc2131.c:968
+#: rfc2131.c:967
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr "L'adresse statique %s ne sera pas utilisée car un bail est déjà attribué à %s"
-#: rfc2131.c:978
+#: rfc2131.c:977
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr "L'adresse statique %s ne sera pas utilisée car elle est utilisée par le serveur ou un relai"
-#: rfc2131.c:981
+#: rfc2131.c:980
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr "L'adresse statique %s ne sera pas utilisée car elle a préalablement été refusée"
-#: rfc2131.c:997 rfc2131.c:1189
+#: rfc2131.c:996 rfc2131.c:1188
msgid "no unique-id"
msgstr "pas d'identifiant unique"
-#: rfc2131.c:1084
+#: rfc2131.c:1083
msgid "wrong server-ID"
msgstr "mauvais identifiant de serveur"
-#: rfc2131.c:1103
+#: rfc2131.c:1102
msgid "wrong address"
msgstr "mauvaise adresse"
-#: rfc2131.c:1121
+#: rfc2131.c:1120
msgid "lease not found"
msgstr "bail non trouvé"
-#: rfc2131.c:1154
+#: rfc2131.c:1153
msgid "address not available"
msgstr "adresse non disponible"
-#: rfc2131.c:1165
+#: rfc2131.c:1164
msgid "static lease available"
msgstr "bail statique disponible"
-#: rfc2131.c:1169
+#: rfc2131.c:1168
msgid "address reserved"
msgstr "adresse reservée"
-#: rfc2131.c:1177
+#: rfc2131.c:1176
#, c-format
msgid "abandoning lease to %s of %s"
msgstr "abandon du bail de %s pour %s"
-#: rfc2131.c:1746
+#: rfc2131.c:1745
#, c-format
msgid "%u tags: %s"
msgstr "%u options: %s"
-#: rfc2131.c:1774
+#: rfc2131.c:1773
#, c-format
msgid "%u bootfile name: %s"
msgstr "%u nom de fichier 'bootfile' : %s"
-#: rfc2131.c:1783
+#: rfc2131.c:1782
#, c-format
msgid "%u server name: %s"
msgstr "%u nom du serveur : %s"
-#: rfc2131.c:1791
+#: rfc2131.c:1790
#, c-format
msgid "%u next server: %s"
msgstr "%u serveur suivant : %s"
-#: rfc2131.c:1794
+#: rfc2131.c:1793
#, c-format
msgid "%u broadcast response"
msgstr "%u réponse broadcast"
-#: rfc2131.c:1857
+#: rfc2131.c:1856
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr "Impossible d'envoyer l'option DHCP/BOOTP %d : pas assez d'espace dans le paquet"
-#: rfc2131.c:2097
+#: rfc2131.c:2096
msgid "PXE menu too large"
msgstr "menu PXE trop grand"
-#: rfc2131.c:2253
+#: rfc2131.c:2252
#, c-format
msgid "Ignoring duplicate dhcp-option %d"
msgstr "L'option dhcp-option redondante %d sera ignorée"
-#: rfc2131.c:2257
+#: rfc2131.c:2256
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr "Le domaine %s est ignoré pour l'hôte DHCP %s"
-#: rfc2131.c:2275
+#: rfc2131.c:2274
#, c-format
msgid "%u requested options: %s"
msgstr "%u options demandées : %s"
-#: rfc2131.c:2550
+#: rfc2131.c:2549
#, c-format
msgid "cannot send RFC3925 option: too many options for enterprise number %d"
msgstr "ne peux envoyer l'option RFC3925 : trop d'options pour le numéro d'entreprise %d"
-#: netlink.c:70
+#: netlink.c:71
#, c-format
msgid "cannot create netlink socket: %s"
msgstr "ne peux lier une socket netlink : %s"
-#: netlink.c:289
+#: netlink.c:321
#, c-format
msgid "netlink returns error: %s"
msgstr "Erreur netlink : %s"
@@ -1460,41 +1480,45 @@ msgstr "configuration des serveurs amonts à partir de DBus"
msgid "could not register a DBus message handler"
msgstr "ne peut enregistrer une routine de traitement des messages DBus"
-#: bpf.c:224
+#: bpf.c:225
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "impossible de créer une socket BPF pour DHCP : %s"
-#: bpf.c:252
+#: bpf.c:253
#, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "requête DHCP pour un type de matériel non supporté (%d) reçue sur %s"
-#: tftp.c:286
+#: helper.c:130
+msgid "lease() function missing in Lua script"
+msgstr ""
+
+#: tftp.c:285
msgid "unable to get free port for TFTP"
msgstr "impossible d'obtenir un port libre pour TFTP"
-#: tftp.c:301
+#: tftp.c:300
#, c-format
msgid "unsupported request from %s"
msgstr "requête de %s non supportée"
-#: tftp.c:411
+#: tftp.c:410
#, c-format
msgid "file %s not found"
msgstr "fichier %s non trouvé"
-#: tftp.c:527
+#: tftp.c:525
#, c-format
msgid "error %d %s received from %s"
msgstr "erreur %d %s reçu de %s"
-#: tftp.c:559
+#: tftp.c:557
#, c-format
msgid "failed sending %s to %s"
msgstr "impossible d'envoyer %s à %s"
-#: tftp.c:573
+#: tftp.c:571
#, c-format
msgid "sent %s to %s"
msgstr "envoyé %s à %s"
@@ -1504,12 +1528,12 @@ msgstr "envoyé %s à %s"
msgid "overflow: %d log entries lost"
msgstr "débordement : %d traces perdues"
-#: log.c:267
+#: log.c:268
#, c-format
msgid "log failed: %s"
msgstr "trace perdue : %s"
-#: log.c:471
+#: log.c:472
msgid "FAILED to start up"
msgstr "IMPOSSIBLE de démarrer"
@@ -1518,6 +1542,21 @@ msgstr "IMPOSSIBLE de démarrer"
msgid "Conntrack connection mark retrieval failed: %s"
msgstr "La récupération de la marque de suivi de connexion a échoué : %s"
+#: dhcp6.c:42
+#, fuzzy, c-format
+msgid "cannot create DHCPv6 socket: %s"
+msgstr "ne peut créer la socket DHCP: %s"
+
+#: dhcp6.c:53
+#, fuzzy, c-format
+msgid "failed to bind DHCPv6 server socket: %s"
+msgstr "impossible de lier la socket serveur DHCP : %s"
+
+#: dhcp6.c:57
+#, fuzzy, c-format
+msgid "failed to join DHCPv6 multicast group: %s"
+msgstr "impossible de lier la socket serveur DHCP : %s"
+
#
#~ msgid "only one dhcp-hostsfile allowed"
#~ msgstr "une seule valeur est autorisée pour 'dhcp-hostsfile'"
@@ -1553,10 +1592,6 @@ msgstr "La récupération de la marque de suivi de connexion a échoué : %s"
#~ msgid "must set exactly one interface on broken systems without IP_RECVIF"
#~ msgstr "Une interface et une seule doit être déclarée sur les systèmes sans IP_RECVIF"
-#
-#~ msgid "failed to load %s: %s"
-#~ msgstr "impossible de charger %s : %m"
-
#~ msgid "bad name in %s"
#~ msgstr "mauvais nom dans %s"
diff --git a/po/id.po b/po/id.po
index 683a76c..94321b2 100644
--- a/po/id.po
+++ b/po/id.po
@@ -15,67 +15,67 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
# OK
-#: cache.c:761
+#: cache.c:757
#, fuzzy, c-format
msgid "failed to load names from %s: %s"
msgstr "gagal memuat nama-nama dari %s: %s"
# OK
-#: cache.c:795 dhcp.c:874
+#: cache.c:791 dhcp.c:936
#, fuzzy, c-format
msgid "bad address at %s line %d"
msgstr "kesalahan nama pada %s baris %d"
# OK
-#: cache.c:853 dhcp.c:890
+#: cache.c:849 dhcp.c:952
#, c-format
msgid "bad name at %s line %d"
msgstr "kesalahan nama pada %s baris %d"
# OK
-#: cache.c:860 dhcp.c:965
+#: cache.c:856 dhcp.c:1027
#, c-format
msgid "read %s - %d addresses"
msgstr "membaca %s - %d alamat"
# OK
-#: cache.c:899
+#: cache.c:895
msgid "cleared cache"
msgstr "cache telah dihapus"
-#: cache.c:934
+#: cache.c:930
#, c-format
msgid "No IPv4 address found for %s"
msgstr ""
-#: cache.c:975
+#: cache.c:971
#, c-format
msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
msgstr ""
# OK
-#: cache.c:981
+#: cache.c:977
#, c-format
msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
msgstr "tidak memberikan nama %s kepada lease DHCP %s karena nama telah ada dalam %sdengan alamat %s"
-#: cache.c:1054
+#: cache.c:1050
#, c-format
msgid "time %lu"
msgstr ""
# OK
-#: cache.c:1055
+#: cache.c:1051
#, fuzzy, c-format
msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
msgstr "ukuran cache %d, %d/%d penyisipan cache menimpa cache yang belum kadaluwarsa"
-#: cache.c:1057
+#: cache.c:1053
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr ""
-#: cache.c:1083
+#: cache.c:1076
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr ""
@@ -93,7 +93,7 @@ msgid "failed to allocate memory"
msgstr "gagal memuat %S: %m"
# OK
-#: util.c:227 option.c:579
+#: util.c:227 option.c:585
msgid "could not get memory"
msgstr "tidak bisa mendapatkan memory"
@@ -110,544 +110,554 @@ msgid "failed to allocate %d bytes"
msgstr "gagal memuat %S: %m"
# OK
-#: util.c:358
+#: util.c:377
#, c-format
msgid "infinite"
msgstr "tak terbatas"
# OK
-#: option.c:248
+#: option.c:252
msgid "Specify local address(es) to listen on."
msgstr "Tentukan alamat lokal untuk mendengarkan."
# OK
-#: option.c:249
+#: option.c:253
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Menghasilkan ipaddr untuk semua host dalam domain yang dipilih."
# OK
-#: option.c:250
+#: option.c:254
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Fake pencarian balik untuk alamat private sesuai dengan RFC1918."
# OK
-#: option.c:251
+#: option.c:255
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Perlakukan ipaddr sebagai NXDOMAIN (mengalahkan wildcard Verisign)."
# OK
-#: option.c:252
+#: option.c:256
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Tentukan ukuran cache, dalam jumlah isian (default %s)."
# OK
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Tentukan file konfigurasi (default %s)."
# OK
-#: option.c:254
+#: option.c:258
msgid "Do NOT fork into the background: run in debug mode."
msgstr "JANGAN berjalan di background: berjalan dalam modus debug."
# OK
-#: option.c:255
+#: option.c:259
msgid "Do NOT forward queries with no domain part."
msgstr "JANGAN teruskan permintaan tanpa bagian domain."
# OK
-#: option.c:256
+#: option.c:260
msgid "Return self-pointing MX records for local hosts."
msgstr "Mengembalikan record MX untuk diri sendiri host-host lokal."
# OK
-#: option.c:257
+#: option.c:261
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Melengkapi nama-nama di /etc/hosts dengan akhiran domain."
# OK
-#: option.c:258
+#: option.c:262
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Jangan meneruskan permintaan DNS spurious dari host-host Windows."
# OK
-#: option.c:259
+#: option.c:263
msgid "Enable DHCP in the range given with lease duration."
msgstr "Bolehkan DHCP dalam jangkauan yang diberikan dengan durasi lease."
# OK
-#: option.c:260
+#: option.c:264
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Ubah ke group ini setelah mulai (default %s)."
# OK
-#: option.c:261
+#: option.c:265
msgid "Set address or hostname for a specified machine."
msgstr "Setel alamat atau nama host untuk mesin yang disebutkan."
# OK
-#: option.c:262
+#: option.c:266
#, fuzzy
msgid "Read DHCP host specs from file."
msgstr "nama MX salah"
-#: option.c:263
+#: option.c:267
msgid "Read DHCP option specs from file."
msgstr ""
-#: option.c:264
+#: option.c:268
msgid "Evaluate conditional tag expression."
msgstr ""
# OK
-#: option.c:265
+#: option.c:269
#, c-format
msgid "Do NOT load %s file."
msgstr "JANGAN muat file %s."
# OK
-#: option.c:266
+#: option.c:270
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Sebutkan sebuah file hosts yang harus dibaca sebagai tambahan untuk %s."
# OK
-#: option.c:267
+#: option.c:271
msgid "Specify interface(s) to listen on."
msgstr "Sebutkan antarmuka untuk mendengarkan."
# OK
-#: option.c:268
+#: option.c:272
msgid "Specify interface(s) NOT to listen on."
msgstr "Sebutkan antarmuka untuk TIDAK mendengarkan."
# OK
-#: option.c:269
+#: option.c:273
#, fuzzy
msgid "Map DHCP user class to tag."
msgstr "Petakan kelas user DHCP ke setelan yang dipilih."
-#: option.c:270
+#: option.c:274
msgid "Map RFC3046 circuit-id to tag."
msgstr ""
-#: option.c:271
+#: option.c:275
msgid "Map RFC3046 remote-id to tag."
msgstr ""
-#: option.c:272
+#: option.c:276
msgid "Map RFC3993 subscriber-id to tag."
msgstr ""
# OK
-#: option.c:273
+#: option.c:277
#, fuzzy
msgid "Don't do DHCP for hosts with tag set."
msgstr "Jangan menggunakan DHCP untuk host-host yang dipilih."
# OK
-#: option.c:274
+#: option.c:278
#, fuzzy
msgid "Force broadcast replies for hosts with tag set."
msgstr "Jangan menggunakan DHCP untuk host-host yang dipilih."
# OK
-#: option.c:275
+#: option.c:279
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "JANGAN berjalan di background, jangan berjalan dalam modus debug."
# OK
-#: option.c:276
+#: option.c:280
msgid "Assume we are the only DHCP server on the local network."
msgstr "Berpikir bahwa kita satu-satunya DHCP server dalam jaringan."
# OK
-#: option.c:277
+#: option.c:281
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Sebutkan lokasi untuk menyimpan lease DHCP (default %s)."
# OK
-#: option.c:278
+#: option.c:282
msgid "Return MX records for local hosts."
msgstr "Kembalikan rekord MX untuk host-host lokal."
# OK
-#: option.c:279
+#: option.c:283
msgid "Specify an MX record."
msgstr "Sebutkan sebuah rekord MX."
# OK
-#: option.c:280
+#: option.c:284
msgid "Specify BOOTP options to DHCP server."
msgstr "Sebutkan pilihan-pilihan BOOTP untuk DHCP server."
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "Jangan kumpulkan file %s, muat kembali saat SIGHUP."
# OK
-#: option.c:282
+#: option.c:286
msgid "Do NOT cache failed search results."
msgstr "JANGAN menyimpan hasil pencarian yang gagal."
# OK
-#: option.c:283
+#: option.c:287
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Gunakan secara ketat namaserver yang disebutkan sesuai urutan di %s."
# OK
-#: option.c:284
+#: option.c:288
#, fuzzy
msgid "Specify options to be sent to DHCP clients."
msgstr "Setel pilihan-pilihan tambahan yang akan disetel untuk klien-klien DHCP."
-#: option.c:285
+#: option.c:289
msgid "DHCP option sent even if the client does not request it."
msgstr ""
# OK
-#: option.c:286
+#: option.c:290
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Sebutkan port untuk mendengarkan permintaan DNS (default port 53)."
# OK
-#: option.c:287
+#: option.c:291
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Ukuran maksimum paket UDP yang didukung untuk EDNS.0 (default %s)."
# OK
-#: option.c:288
+#: option.c:292
#, fuzzy
msgid "Log DNS queries."
msgstr "Permintaan log."
# OK
-#: option.c:289
+#: option.c:293
#, fuzzy
msgid "Force the originating port for upstream DNS queries."
msgstr "Paksa port asal untuk permintaan ke atas."
# OK
-#: option.c:290
+#: option.c:294
msgid "Do NOT read resolv.conf."
msgstr "JANGAN baca resolv.conf."
# OK
-#: option.c:291
+#: option.c:295
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Sebutkan path ke resolv.conf (default %s)."
# OK
-#: option.c:292
+#: option.c:296
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Sebutkan alamat-alamat server di atas, boleh dilengkapi dengan nama domain."
# OK
-#: option.c:293
+#: option.c:297
msgid "Never forward queries to specified domains."
msgstr "JANGAN pernah meneruskan permintaan ke domain yang disebutkan."
# OK
-#: option.c:294
+#: option.c:298
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Sebutkan domain yang digunakan dalam lease DHCP."
# OK
-#: option.c:295
+#: option.c:299
msgid "Specify default target in an MX record."
msgstr "Sebutkan tujuan default dalam rekord MX."
# OK
-#: option.c:296
+#: option.c:300
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr "Sebutkan time-to-live dalam detik untuk jawaban dari /etc/hosts."
# OK
-#: option.c:297
+#: option.c:301
#, fuzzy
msgid "Specify time-to-live in seconds for negative caching."
msgstr "Sebutkan time-to-live dalam detik untuk jawaban dari /etc/hosts."
# OK
-#: option.c:298
+#: option.c:302
#, fuzzy
msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
msgstr "Sebutkan time-to-live dalam detik untuk jawaban dari /etc/hosts."
# OK
-#: option.c:299
+#: option.c:303
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Ubah ke user ini setelah mulai. (default %s)."
# OK
-#: option.c:300
+#: option.c:304
#, fuzzy
msgid "Map DHCP vendor class to tag."
msgstr "Memetakan kelas vendor DHCP ke daftar pilihan."
# OK
-#: option.c:301
+#: option.c:305
msgid "Display dnsmasq version and copyright information."
msgstr "Menampilkan versi dan informasi hak cipta dnsmasq."
# OK
-#: option.c:302
+#: option.c:306
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Terjemahkan alamat-alamat IPv4 dari server-server di atas."
# OK
-#: option.c:303
+#: option.c:307
msgid "Specify a SRV record."
msgstr "Sebutkan rekord SRV."
-#: option.c:304
+#: option.c:308
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr ""
# OK
-#: option.c:305
+#: option.c:309
#, fuzzy, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr "Sebutkan path file PID. (default %s)."
# OK
-#: option.c:306
+#: option.c:310
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)."
# OK
-#: option.c:307
+#: option.c:311
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr "Jawab permintaan DNS berdasarkan antarmuka dimana permintaan dikirimkan."
# OK
-#: option.c:308
+#: option.c:312
msgid "Specify TXT DNS record."
msgstr "Sebutkan rekord TXT DNS."
# OK
-#: option.c:309
+#: option.c:313
#, fuzzy
msgid "Specify PTR DNS record."
msgstr "Sebutkan rekord TXT DNS."
-#: option.c:310
+#: option.c:314
msgid "Give DNS name to IPv4 address of interface."
msgstr ""
# OK
-#: option.c:311
+#: option.c:315
msgid "Bind only to interfaces in use."
msgstr "Hanya kaitkan ke antarmuka yang sedang digunakan saja."
# OK
-#: option.c:312
+#: option.c:316
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Baca informasi statik host DHCP dari %s."
# OK
-#: option.c:313
+#: option.c:317
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Mungkinkan antar muka DBus untuk menyetel server-server di atas, dsb."
# OK
-#: option.c:314
+#: option.c:318
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "JANGAN menyediakan DHCP pada antarmuka ini, hanya menyediakan DNS."
# OK
-#: option.c:315
+#: option.c:319
msgid "Enable dynamic address allocation for bootp."
msgstr "Mungkinkan alokasi alamat dinamis untuk bootp."
# OK
-#: option.c:316
+#: option.c:320
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Memetakan kelas vendor DHCP ke daftar pilihan."
-#: option.c:317
+#: option.c:321
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr ""
-#: option.c:318
+#: option.c:322
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:319
+#: option.c:323
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
-#: option.c:320
+#: option.c:324
msgid "Read configuration from all the files in this directory."
msgstr ""
# OK
-#: option.c:321
+#: option.c:325
#, fuzzy
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr "Ubah ke user ini setelah mulai. (default %s)."
-#: option.c:322
+#: option.c:326
msgid "Do not use leasefile."
msgstr ""
# OK
-#: option.c:323
+#: option.c:327
#, fuzzy, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)."
-#: option.c:324
+#: option.c:328
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr ""
-#: option.c:325
+#: option.c:329
msgid "Ignore hostnames provided by DHCP clients."
msgstr ""
-#: option.c:326
+#: option.c:330
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr ""
-#: option.c:327
+#: option.c:331
msgid "Enable integrated read-only TFTP server."
msgstr ""
-#: option.c:328
+#: option.c:332
msgid "Export files by TFTP only from the specified subtree."
msgstr ""
-#: option.c:329
+#: option.c:333
msgid "Add client IP address to tftp-root."
msgstr ""
-#: option.c:330
+#: option.c:334
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr ""
# OK
-#: option.c:331
+#: option.c:335
#, fuzzy, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)."
-#: option.c:332
+#: option.c:336
msgid "Disable the TFTP blocksize extension."
msgstr ""
-#: option.c:333
+#: option.c:337
msgid "Ephemeral port range for use by TFTP transfers."
msgstr ""
-#: option.c:334
+#: option.c:338
msgid "Extra logging for DHCP."
msgstr ""
-#: option.c:335
+#: option.c:339
msgid "Enable async. logging; optionally set queue length."
msgstr ""
-#: option.c:336
+#: option.c:340
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr ""
-#: option.c:337
+#: option.c:341
msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
msgstr ""
-#: option.c:338
+#: option.c:342
msgid "Inhibit DNS-rebind protection on this domain."
msgstr ""
-#: option.c:339
+#: option.c:343
msgid "Always perform DNS queries to all servers."
msgstr ""
-#: option.c:340
+#: option.c:344
msgid "Set tag if client includes matching option in request."
msgstr ""
-#: option.c:341
+#: option.c:345
msgid "Use alternative ports for DHCP."
msgstr ""
-#: option.c:342
+#: option.c:346
msgid "Run lease-change script as this user."
msgstr ""
# OK
-#: option.c:343
+#: option.c:347
#, fuzzy
msgid "Specify NAPTR DNS record."
msgstr "Sebutkan rekord TXT DNS."
-#: option.c:344
+#: option.c:348
msgid "Specify lowest port available for DNS query transmission."
msgstr ""
-#: option.c:345
+#: option.c:349
msgid "Use only fully qualified domain names for DHCP clients."
msgstr ""
-#: option.c:346
+#: option.c:350
msgid "Generate hostnames based on MAC address for nameless clients."
msgstr ""
-#: option.c:347
+#: option.c:351
msgid "Use these DHCP relays as full proxies."
msgstr ""
-#: option.c:348
+#: option.c:352
msgid "Specify alias name for LOCAL DNS name."
msgstr ""
# OK
-#: option.c:349
+#: option.c:353
#, fuzzy
msgid "Prompt to send to PXE clients."
msgstr "Setel pilihan-pilihan tambahan yang akan disetel untuk klien-klien DHCP."
-#: option.c:350
+#: option.c:354
msgid "Boot service for PXE menu."
msgstr ""
-#: option.c:351
+#: option.c:355
msgid "Check configuration syntax."
msgstr ""
-#: option.c:352
+#: option.c:356
msgid "Add requestor's MAC address to forwarded DNS queries."
msgstr ""
# OK
-#: option.c:353
+#: option.c:357
#, fuzzy
msgid "Proxy DNSSEC validation results from upstream nameservers."
msgstr "Terjemahkan alamat-alamat IPv4 dari server-server di atas."
-#: option.c:354
+#: option.c:358
msgid "Attempt to allocate sequential IP addresses to DHCP clients."
msgstr ""
-#: option.c:355
+#: option.c:359
msgid "Copy connection-track mark from queries to upstream connections."
msgstr ""
+#: option.c:360
+msgid "Allow DHCP clients to do their own DDNS updates."
+msgstr ""
+
+# OK
+#: option.c:361
+#, fuzzy
+msgid "Specify path to Lua script (no default)."
+msgstr "Sebutkan path file PID. (default %s)."
+
# OK
-#: option.c:644
+#: option.c:650
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -657,280 +667,284 @@ msgstr ""
"\n"
# OK
-#: option.c:646
+#: option.c:652
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Gunakan pilihan pendek saja pada perintah baris.\n"
# OK
-#: option.c:648
+#: option.c:654
#, fuzzy, c-format
msgid "Valid options are:\n"
msgstr "Pilihan yang boleh adalah:\n"
-#: option.c:689
+#: option.c:695
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
# OK
-#: option.c:804
+#: option.c:810
msgid "bad dhcp-option"
msgstr "dhcp-option salah"
# OK
-#: option.c:866
+#: option.c:872
#, fuzzy
msgid "bad IP address"
msgstr "membaca %s - %d alamat"
# OK
-#: option.c:974
+#: option.c:980
msgid "bad domain in dhcp-option"
msgstr "domain dalam dhcp-option salah"
# OK
-#: option.c:1040
+#: option.c:1046
msgid "dhcp-option too long"
msgstr "dhcp-option terlalu panjang"
-#: option.c:1049
+#: option.c:1055
msgid "illegal dhcp-match"
msgstr ""
-#: option.c:1093
+#: option.c:1099
msgid "illegal repeated flag"
msgstr ""
-#: option.c:1101
+#: option.c:1107
msgid "illegal repeated keyword"
msgstr ""
# OK
-#: option.c:1153 option.c:3062
+#: option.c:1159 option.c:3077
#, fuzzy, c-format
msgid "cannot access directory %s: %s"
msgstr "tidak bisa membaca %s: %s"
# OK
-#: option.c:1184 tftp.c:465
+#: option.c:1190 tftp.c:464
#, fuzzy, c-format
msgid "cannot access %s: %s"
msgstr "tidak bisa membaca %s: %s"
-#: option.c:1213
+#: option.c:1219
msgid "setting log facility is not possible under Android"
msgstr ""
-#: option.c:1222
+#: option.c:1228
msgid "bad log facility"
msgstr ""
# OK
-#: option.c:1271
+#: option.c:1277
msgid "bad MX preference"
msgstr "kesukaan MX salah"
# OK
-#: option.c:1276
+#: option.c:1282
msgid "bad MX name"
msgstr "nama MX salah"
# OK
-#: option.c:1290
+#: option.c:1296
msgid "bad MX target"
msgstr "target MX salah"
-#: option.c:1300
+#: option.c:1308
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1302
+#: option.c:1310
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr ""
+#: option.c:1314
+msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts"
+msgstr ""
+
# OK
-#: option.c:1607 option.c:1611
+#: option.c:1622 option.c:1626
msgid "bad port"
msgstr "port salah"
-#: option.c:1634 option.c:1665
+#: option.c:1649 option.c:1680
msgid "interface binding not supported"
msgstr ""
# OK
-#: option.c:1645 option.c:2614
+#: option.c:1660 option.c:2629
#, fuzzy
msgid "bad interface name"
msgstr "nama MX salah"
# OK
-#: option.c:1810
+#: option.c:1825
#, fuzzy
msgid "bad port range"
msgstr "port salah"
-#: option.c:1827
+#: option.c:1842
msgid "bad bridge-interface"
msgstr ""
# OK
-#: option.c:1870
+#: option.c:1885
msgid "bad dhcp-range"
msgstr "dhcp-range salah"
-#: option.c:1898
+#: option.c:1913
msgid "only one tag allowed"
msgstr ""
# OK
-#: option.c:1945
+#: option.c:1960
msgid "inconsistent DHCP range"
msgstr "jangkauan DHCP tidak konsisten"
# OK
-#: option.c:2039 option.c:2067
+#: option.c:2054 option.c:2082
#, fuzzy
msgid "bad hex constant"
msgstr "dhcp-host salah"
-#: option.c:2061
+#: option.c:2076
msgid "cannot match tags in --dhcp-host"
msgstr ""
# OK
-#: option.c:2129
+#: option.c:2144
#, fuzzy
msgid "bad DHCP host name"
msgstr "nama MX salah"
# OK
-#: option.c:2210
+#: option.c:2225
#, fuzzy
msgid "bad tag-if"
msgstr "target MX salah"
# OK
-#: option.c:2499 option.c:2784
+#: option.c:2514 option.c:2799
msgid "invalid port number"
msgstr "nomor port tidak benar"
# OK
-#: option.c:2561
+#: option.c:2576
#, fuzzy
msgid "bad dhcp-proxy address"
msgstr "membaca %s - %d alamat"
# OK
-#: option.c:2601
+#: option.c:2616
#, fuzzy
msgid "invalid alias range"
msgstr "weight tidak benar"
-#: option.c:2639
+#: option.c:2654
msgid "bad CNAME"
msgstr ""
-#: option.c:2644
+#: option.c:2659
msgid "duplicate CNAME"
msgstr ""
# OK
-#: option.c:2664
+#: option.c:2679
#, fuzzy
msgid "bad PTR record"
msgstr "rekord SRV salah"
# OK
-#: option.c:2695
+#: option.c:2710
#, fuzzy
msgid "bad NAPTR record"
msgstr "rekord SRV salah"
# OK
-#: option.c:2727
+#: option.c:2742
msgid "bad TXT record"
msgstr "rekord TXT salah"
# OK
-#: option.c:2770
+#: option.c:2785
msgid "bad SRV record"
msgstr "rekord SRV salah"
# OK
-#: option.c:2777
+#: option.c:2792
msgid "bad SRV target"
msgstr "target SRV salah"
# OK
-#: option.c:2791
+#: option.c:2806
msgid "invalid priority"
msgstr "prioritas tidak benar"
# OK
-#: option.c:2798
+#: option.c:2813
msgid "invalid weight"
msgstr "weight tidak benar"
-#: option.c:2817
+#: option.c:2832
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr ""
# OK
-#: option.c:2881
+#: option.c:2896
msgid "missing \""
msgstr "kurang \""
# OK
-#: option.c:2940
+#: option.c:2955
msgid "bad option"
msgstr "pilihan salah"
# OK
-#: option.c:2942
+#: option.c:2957
msgid "extraneous parameter"
msgstr "parameter berlebihan"
# OK
-#: option.c:2944
+#: option.c:2959
msgid "missing parameter"
msgstr "parameter kurang"
# OK
-#: option.c:2948
+#: option.c:2963
msgid "error"
msgstr "kesalahan"
# OK
-#: option.c:2953
+#: option.c:2968
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s pada baris %d dari %%s"
# OK
-#: option.c:3017 tftp.c:629
+#: option.c:3032 tftp.c:627
#, c-format
msgid "cannot read %s: %s"
msgstr "tidak bisa membaca %s: %s"
# OK
-#: option.c:3183 option.c:3219
+#: option.c:3198 option.c:3234
#, fuzzy, c-format
msgid "read %s"
msgstr "membaca %s"
-#: option.c:3271
+#: option.c:3286
msgid "junk found in command line"
msgstr ""
# OK
-#: option.c:3301
+#: option.c:3316
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq versi %s %s\n"
# OK
-#: option.c:3302
+#: option.c:3317
#, c-format
msgid ""
"Compile time options %s\n"
@@ -940,70 +954,70 @@ msgstr ""
"\n"
# OK
-#: option.c:3303
+#: option.c:3318
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Perangkat lunak ini tersedia TANPA JAMINAN SEDIKITPUN.\n"
# OK
-#: option.c:3304
+#: option.c:3319
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr "Dnsdmasq adalah perangkat lunak bebas, dan Anda dipersilahkan untuk membagikannya\n"
# OK
-#: option.c:3305
+#: option.c:3320
#, fuzzy, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr "dengan aturan GNU General Public License, versi 2.\n"
-#: option.c:3316
+#: option.c:3331
msgid "try --help"
msgstr ""
-#: option.c:3318
+#: option.c:3333
msgid "try -w"
msgstr ""
# OK
-#: option.c:3321
+#: option.c:3336
#, fuzzy, c-format
msgid "bad command line options: %s"
msgstr "pilihan baris perintah salah: %s."
# OK
-#: option.c:3362
+#: option.c:3377
#, c-format
msgid "cannot get host-name: %s"
msgstr "tidak bisa mendapatkan host-name: %s"
# OK
-#: option.c:3390
+#: option.c:3405
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "hanya satu file resolv.conf yang diperbolehkan dalam modus no-poll."
# OK
-#: option.c:3400
+#: option.c:3415
msgid "must have exactly one resolv.conf to read domain from."
msgstr "harus mempunyai tepat satu resolv.conf untuk mendapatkan nama domain."
# OK
-#: option.c:3403 network.c:845 dhcp.c:823
+#: option.c:3418 network.c:821 dhcp.c:885
#, fuzzy, c-format
msgid "failed to read %s: %s"
msgstr "gagal membaca %s: %s"
# OK
-#: option.c:3420
+#: option.c:3435
#, c-format
msgid "no search directive found in %s"
msgstr "tidak ditemukan direktif search di %s"
-#: option.c:3441
+#: option.c:3456
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr ""
-#: option.c:3445
+#: option.c:3460
msgid "syntax check OK"
msgstr ""
@@ -1019,429 +1033,435 @@ msgid "possible DNS-rebind attack detected: %s"
msgstr ""
# OK
-#: network.c:171
-#, fuzzy, c-format
-msgid "unknown interface %s in bridge-interface"
-msgstr "antarmuka tidak dikenal %s"
-
-# OK
-#: network.c:384
+#: network.c:354
#, fuzzy, c-format
msgid "failed to create listening socket for %s: %s"
msgstr "gagal membuat socket: %s "
-#: network.c:743
+#: network.c:719
#, fuzzy, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "gagal mem-bind socket untuk mendengarkan %s: %s"
# OK
-#: network.c:780
+#: network.c:756
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "mengabaikan nameserver %s - antarmuka lokal"
# OK
-#: network.c:791
+#: network.c:767
#, fuzzy, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr "mengabaikan nameserver %s - tak dapat membuat/mem-bind socket: %s"
# OK
-#: network.c:808
+#: network.c:784
msgid "unqualified"
msgstr "tidak memenuhi syarat"
-#: network.c:808
+#: network.c:784
msgid "names"
msgstr ""
-#: network.c:810
+#: network.c:786
msgid "default"
msgstr ""
# OK
-#: network.c:812
+#: network.c:788
msgid "domain"
msgstr "domain"
# OK
-#: network.c:815
+#: network.c:791
#, c-format
msgid "using local addresses only for %s %s"
msgstr "menggunakan alamat lokal saja untuk %s %s"
# OK
-#: network.c:817
+#: network.c:793
#, fuzzy, c-format
msgid "using standard nameservers for %s %s"
msgstr "menggunakan nameserver %s#%d untuk %s %s"
# OK
-#: network.c:819
+#: network.c:795
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "menggunakan nameserver %s#%d untuk %s %s"
# OK
-#: network.c:822
+#: network.c:798
#, fuzzy, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "menggunakan nameserver %s#%d"
# OK
-#: network.c:824
+#: network.c:800
#, c-format
msgid "using nameserver %s#%d"
msgstr "menggunakan nameserver %s#%d"
# OK
-#: dnsmasq.c:152
+#: dnsmasq.c:114
#, fuzzy
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h"
-#: dnsmasq.c:157
+#: dnsmasq.c:119
msgid "Cannot use --conntrack AND --query-port"
msgstr ""
# OK
-#: dnsmasq.c:160
+#: dnsmasq.c:122
#, fuzzy
msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h"
-#: dnsmasq.c:165
+#: dnsmasq.c:127
msgid "asychronous logging is not available under Solaris"
msgstr ""
-#: dnsmasq.c:170
+#: dnsmasq.c:132
msgid "asychronous logging is not available under Android"
msgstr ""
# OK
-#: dnsmasq.c:189
+#: dnsmasq.c:151
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr "gagal mendapatkan daftar antarmuka: %s"
# OK
-#: dnsmasq.c:197
+#: dnsmasq.c:159
#, c-format
msgid "unknown interface %s"
msgstr "antarmuka tidak dikenal %s"
# OK
-#: dnsmasq.c:203
+#: dnsmasq.c:165
#, c-format
msgid "no interface with address %s"
msgstr "tidak ada antarmuka dengan alamat %s"
# OK
-#: dnsmasq.c:219 dnsmasq.c:716
+#: dnsmasq.c:181 dnsmasq.c:680
#, c-format
msgid "DBus error: %s"
msgstr "DBus error: %s"
# OK
-#: dnsmasq.c:222
+#: dnsmasq.c:184
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h"
-#: dnsmasq.c:248
+#: dnsmasq.c:211
#, c-format
msgid "unknown user or group: %s"
msgstr ""
-#: dnsmasq.c:303
+#: dnsmasq.c:266
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr ""
# OK
-#: dnsmasq.c:477
+#: dnsmasq.c:441
#, fuzzy, c-format
msgid "started, version %s DNS disabled"
msgstr "dimulai, cache versi %s di disable"
# OK
-#: dnsmasq.c:479
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s cachesize %d"
msgstr "dimulai, versi %s ukuran cache %d"
# OK
-#: dnsmasq.c:481
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cache disabled"
msgstr "dimulai, cache versi %s di disable"
# OK
-#: dnsmasq.c:483
+#: dnsmasq.c:447
#, c-format
msgid "compile time options: %s"
msgstr "pilihan-pilihan saat kompilasi: %s"
# OK
-#: dnsmasq.c:489
+#: dnsmasq.c:453
msgid "DBus support enabled: connected to system bus"
msgstr "dukungan DBus dimungkinkan: terkoneksi pada bus sistem"
# OK
-#: dnsmasq.c:491
+#: dnsmasq.c:455
msgid "DBus support enabled: bus connection pending"
msgstr "dukungan DBus dimungkinkan: koneksi bus ditunda"
# OK
-#: dnsmasq.c:496
+#: dnsmasq.c:460
#, fuzzy, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr "gagal memuat nama-nama dari %s: %s"
# OK
-#: dnsmasq.c:500
+#: dnsmasq.c:464
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "setelan opsi --bind-interfaces disebabkan keterbatasan OS"
# OK
-#: dnsmasq.c:505
+#: dnsmasq.c:469
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "peringatan: antarmuka %s tidak ada"
-#: dnsmasq.c:510
+#: dnsmasq.c:474
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr ""
# OK
-#: dnsmasq.c:513
+#: dnsmasq.c:477
#, fuzzy
msgid "warning: no upstream servers configured"
msgstr "menyetel server-server di atas dengan DBus"
-#: dnsmasq.c:517
+#: dnsmasq.c:481
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr ""
# OK
-#: dnsmasq.c:530
+#: dnsmasq.c:494
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "DHCP, lease static pada %.0s%s, waktu lease %s"
-#: dnsmasq.c:532
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, proxy on subnet %.0s%s%.0s"
msgstr ""
# OK
-#: dnsmasq.c:533
+#: dnsmasq.c:497
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, jangkaun IP %s -- %s, waktu lease %s"
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "root is "
msgstr ""
# OK
-#: dnsmasq.c:548
+#: dnsmasq.c:512
#, fuzzy
msgid "enabled"
msgstr "di disable"
-#: dnsmasq.c:550
+#: dnsmasq.c:514
msgid "secure mode"
msgstr ""
-#: dnsmasq.c:576
+#: dnsmasq.c:540
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
# OK
-#: dnsmasq.c:718
+#: dnsmasq.c:682
msgid "connected to system DBus"
msgstr "terhubung ke sistem DBus"
-#: dnsmasq.c:813
+#: dnsmasq.c:806
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
# OK
-#: dnsmasq.c:816
+#: dnsmasq.c:809
#, fuzzy, c-format
msgid "failed to create helper: %s"
msgstr "gagal membaca %s: %s"
-#: dnsmasq.c:819
+#: dnsmasq.c:812
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
# OK
-#: dnsmasq.c:823
+#: dnsmasq.c:815
#, fuzzy, c-format
msgid "failed to change user-id to %s: %s"
msgstr "gagal memuat nama-nama dari %s: %s"
# OK
-#: dnsmasq.c:828
+#: dnsmasq.c:818
#, fuzzy, c-format
msgid "failed to change group-id to %s: %s"
msgstr "gagal memuat nama-nama dari %s: %s"
# OK
-#: dnsmasq.c:831
+#: dnsmasq.c:821
#, fuzzy, c-format
msgid "failed to open pidfile %s: %s"
msgstr "gagal membaca %s: %s"
# OK
-#: dnsmasq.c:834
+#: dnsmasq.c:824
#, fuzzy, c-format
-msgid "cannot open %s: %s"
+msgid "cannot open log %s: %s"
msgstr "tidak bisa membuka %s:%s"
-#: dnsmasq.c:889
+# OK
+#: dnsmasq.c:827
+#, fuzzy, c-format
+msgid "failed to load Lua script: %s"
+msgstr "gagal memuat %S: %s"
+
+#: dnsmasq.c:886
#, c-format
-msgid "child process killed by signal %d"
+msgid "script process killed by signal %d"
msgstr ""
-#: dnsmasq.c:893
+#: dnsmasq.c:890
#, c-format
-msgid "child process exited with status %d"
+msgid "script process exited with status %d"
msgstr ""
# OK
-#: dnsmasq.c:897
+#: dnsmasq.c:894
#, fuzzy, c-format
msgid "failed to execute %s: %s"
msgstr "gagal mengakses %s: %s"
-#: dnsmasq.c:941
+#: dnsmasq.c:939
msgid "exiting on receipt of SIGTERM"
msgstr "keluar karena menerima SIGTERM"
# OK
-#: dnsmasq.c:969
+#: dnsmasq.c:967
#, fuzzy, c-format
msgid "failed to access %s: %s"
msgstr "gagal mengakses %s: %s"
# OK
-#: dnsmasq.c:999
+#: dnsmasq.c:997
#, c-format
msgid "reading %s"
msgstr "membaca %s"
# OK
-#: dnsmasq.c:1010
+#: dnsmasq.c:1008
#, fuzzy, c-format
msgid "no servers found in %s, will retry"
msgstr "tidak ditemukan direktif search di %s"
# OK
-#: dhcp.c:39
+#: dhcp.c:49
#, c-format
msgid "cannot create DHCP socket: %s"
msgstr "tidak bisa membuat socket DHCP: %s"
# OK
-#: dhcp.c:51
+#: dhcp.c:64
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "gagal menyetel opsi pada socket DHCP: %s"
# OK
-#: dhcp.c:64
+#: dhcp.c:77
#, fuzzy, c-format
msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
msgstr "gagal menyetel SO_REUSEADDR pada socket DHCP: %s"
# OK
-#: dhcp.c:76
+#: dhcp.c:89
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "gagal mem-bind socket server DHCP: %s"
# OK
-#: dhcp.c:102
+#: dhcp.c:115
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "tidak dapat membuat socket ICMP raw: %s"
-#: dhcp.c:278
+# OK
+#: dhcp.c:264
+#, fuzzy, c-format
+msgid "unknown interface %s in bridge-interface"
+msgstr "antarmuka tidak dikenal %s"
+
+#: dhcp.c:289
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr ""
# OK
-#: dhcp.c:442
+#: dhcp.c:504
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "jangkauan DHCP %s -- %s tidak konsisten dengan netmask %s"
# OK
-#: dhcp.c:861
+#: dhcp.c:923
#, fuzzy, c-format
msgid "bad line at %s line %d"
msgstr "kesalahan nama pada %s baris %d"
-#: dhcp.c:904
+#: dhcp.c:966
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr ""
# OK
-#: dhcp.c:987
+#: dhcp.c:1049
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "alamat IP kembar %s dalam direktif dhcp-config"
# OK
-#: dhcp.c:990
+#: dhcp.c:1052
#, fuzzy, c-format
msgid "duplicate IP address %s in %s."
msgstr "alamat IP kembar %s dalam direktif dhcp-config"
-#: dhcp.c:1033
+#: dhcp.c:1095
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
# OK
-#: dhcp.c:1038
+#: dhcp.c:1100
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "alamat IP kembar %s (%s) dalam direktif dhcp-config"
# OK
-#: lease.c:67
+#: lease.c:70
#, fuzzy, c-format
msgid "cannot open or create lease file %s: %s"
msgstr "tidak dapat membuka atau membuat file lease: %s"
# OK
-#: lease.c:93
+#: lease.c:116
msgid "too many stored leases"
msgstr "terlalu banyak lease yang disimpan"
# OK
-#: lease.c:129
+#: lease.c:173
#, fuzzy, c-format
msgid "cannot run lease-init script %s: %s"
msgstr "tidak bisa membaca %s: %s"
-#: lease.c:135
+#: lease.c:179
#, c-format
msgid "lease-init script returned exit code %s"
msgstr ""
# OK
-#: lease.c:235
+#: lease.c:325
#, fuzzy, c-format
msgid "failed to write %s: %s (retry in %us)"
msgstr "gagal membaca %s: %s"
@@ -1479,22 +1499,22 @@ msgid "disabled"
msgstr "di disable"
# OK
-#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
+#: rfc2131.c:428 rfc2131.c:944 rfc2131.c:1336
msgid "ignored"
msgstr "diabaikan"
# OK
-#: rfc2131.c:443 rfc2131.c:1183
+#: rfc2131.c:443 rfc2131.c:1182
msgid "address in use"
msgstr "alamat telah digunakan"
# OK
-#: rfc2131.c:457 rfc2131.c:999
+#: rfc2131.c:457 rfc2131.c:998
msgid "no address available"
msgstr "tak ada alamat yang tersedia"
# OK
-#: rfc2131.c:464 rfc2131.c:1146
+#: rfc2131.c:464 rfc2131.c:1145
msgid "wrong network"
msgstr "jaringan yang salah"
@@ -1504,160 +1524,160 @@ msgid "no address configured"
msgstr "tak ada alamat yang disetel"
# OK
-#: rfc2131.c:485 rfc2131.c:1196
+#: rfc2131.c:485 rfc2131.c:1195
msgid "no leases left"
msgstr "tak ada lease yang tersisa"
-#: rfc2131.c:570
+#: rfc2131.c:569
#, c-format
msgid "%u client provides name: %s"
msgstr ""
# OK
-#: rfc2131.c:725
+#: rfc2131.c:724
#, fuzzy, c-format
msgid "%u vendor class: %s"
msgstr "DBus error: %s"
# OK
-#: rfc2131.c:727
+#: rfc2131.c:726
#, fuzzy, c-format
msgid "%u user class: %s"
msgstr "DBus error: %s"
-#: rfc2131.c:786
+#: rfc2131.c:785
msgid "PXE BIS not supported"
msgstr ""
# OK
-#: rfc2131.c:915
+#: rfc2131.c:914
#, fuzzy, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "men-disable alamat statik DHCP %s"
# OK
-#: rfc2131.c:936
+#: rfc2131.c:935
msgid "unknown lease"
msgstr "lease tidak diketahui"
-#: rfc2131.c:968
+#: rfc2131.c:967
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:978
+#: rfc2131.c:977
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:981
+#: rfc2131.c:980
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:997 rfc2131.c:1189
+#: rfc2131.c:996 rfc2131.c:1188
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:1084
+#: rfc2131.c:1083
msgid "wrong server-ID"
msgstr ""
# OK
-#: rfc2131.c:1103
+#: rfc2131.c:1102
msgid "wrong address"
msgstr "alamat salah"
# OK
-#: rfc2131.c:1121
+#: rfc2131.c:1120
msgid "lease not found"
msgstr "lease tak ditemukan"
# OK
-#: rfc2131.c:1154
+#: rfc2131.c:1153
msgid "address not available"
msgstr "alamat tak tersedia"
# OK
-#: rfc2131.c:1165
+#: rfc2131.c:1164
msgid "static lease available"
msgstr "lease statik tak tersedia"
# OK
-#: rfc2131.c:1169
+#: rfc2131.c:1168
msgid "address reserved"
msgstr "alamat telah dipesan"
-#: rfc2131.c:1177
+#: rfc2131.c:1176
#, c-format
msgid "abandoning lease to %s of %s"
msgstr ""
-#: rfc2131.c:1746
+#: rfc2131.c:1745
#, c-format
msgid "%u tags: %s"
msgstr ""
-#: rfc2131.c:1774
+#: rfc2131.c:1773
#, c-format
msgid "%u bootfile name: %s"
msgstr ""
# OK
-#: rfc2131.c:1783
+#: rfc2131.c:1782
#, fuzzy, c-format
msgid "%u server name: %s"
msgstr "DBus error: %s"
# OK
-#: rfc2131.c:1791
+#: rfc2131.c:1790
#, fuzzy, c-format
msgid "%u next server: %s"
msgstr "DBus error: %s"
-#: rfc2131.c:1794
+#: rfc2131.c:1793
#, c-format
msgid "%u broadcast response"
msgstr ""
-#: rfc2131.c:1857
+#: rfc2131.c:1856
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:2097
+#: rfc2131.c:2096
msgid "PXE menu too large"
msgstr ""
-#: rfc2131.c:2253
+#: rfc2131.c:2252
#, c-format
msgid "Ignoring duplicate dhcp-option %d"
msgstr ""
-#: rfc2131.c:2257
+#: rfc2131.c:2256
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr ""
# OK
-#: rfc2131.c:2275
+#: rfc2131.c:2274
#, fuzzy, c-format
msgid "%u requested options: %s"
msgstr "pilihan-pilihan saat kompilasi: %s"
-#: rfc2131.c:2550
+#: rfc2131.c:2549
#, c-format
msgid "cannot send RFC3925 option: too many options for enterprise number %d"
msgstr ""
# OK
-#: netlink.c:70
+#: netlink.c:71
#, fuzzy, c-format
msgid "cannot create netlink socket: %s"
msgstr "tidak bisa mem-bind netlink socket: %s"
# OK
-#: netlink.c:289
+#: netlink.c:321
#, fuzzy, c-format
msgid "netlink returns error: %s"
msgstr "DBus error: %s"
@@ -1678,44 +1698,48 @@ msgid "could not register a DBus message handler"
msgstr "tidak bisa mendaftar sebuah DBus message handler"
# OK
-#: bpf.c:224
+#: bpf.c:225
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "tidak dapat membuat socket DHCP BPF: %s"
# OK
-#: bpf.c:252
+#: bpf.c:253
#, fuzzy, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "permintaan DHCP untuk tipe hardware yang tidak didukung (%d) diterima pada %s"
-#: tftp.c:286
+#: helper.c:130
+msgid "lease() function missing in Lua script"
+msgstr ""
+
+#: tftp.c:285
msgid "unable to get free port for TFTP"
msgstr ""
-#: tftp.c:301
+#: tftp.c:300
#, c-format
msgid "unsupported request from %s"
msgstr ""
# OK
-#: tftp.c:411
+#: tftp.c:410
#, fuzzy, c-format
msgid "file %s not found"
msgstr "lease tak ditemukan"
-#: tftp.c:527
+#: tftp.c:525
#, c-format
msgid "error %d %s received from %s"
msgstr ""
# OK
-#: tftp.c:559
+#: tftp.c:557
#, fuzzy, c-format
msgid "failed sending %s to %s"
msgstr "gagal membaca %s: %s"
-#: tftp.c:573
+#: tftp.c:571
#, c-format
msgid "sent %s to %s"
msgstr ""
@@ -1725,13 +1749,13 @@ msgstr ""
msgid "overflow: %d log entries lost"
msgstr ""
-#: log.c:267
+#: log.c:268
#, c-format
msgid "log failed: %s"
msgstr ""
# OK
-#: log.c:471
+#: log.c:472
msgid "FAILED to start up"
msgstr "GAGAL untuk memulai"
@@ -1741,6 +1765,24 @@ msgid "Conntrack connection mark retrieval failed: %s"
msgstr ""
# OK
+#: dhcp6.c:42
+#, fuzzy, c-format
+msgid "cannot create DHCPv6 socket: %s"
+msgstr "tidak bisa membuat socket DHCP: %s"
+
+# OK
+#: dhcp6.c:53
+#, fuzzy, c-format
+msgid "failed to bind DHCPv6 server socket: %s"
+msgstr "gagal mem-bind socket server DHCP: %s"
+
+# OK
+#: dhcp6.c:57
+#, fuzzy, c-format
+msgid "failed to join DHCPv6 multicast group: %s"
+msgstr "gagal mem-bind socket server DHCP: %s"
+
+# OK
#~ msgid "TXT record string too long"
#~ msgstr "string rekord TXT terlalu panjang"
@@ -1765,11 +1807,6 @@ msgstr ""
#~ msgstr "harus menyetel satu antarmuka saja pada sistem yang tidak benar dengan IP_RECVIF"
# OK
-#, fuzzy
-#~ msgid "failed to load %s: %s"
-#~ msgstr "gagal memuat %S: %s"
-
-# OK
#~ msgid "bad name in %s"
#~ msgstr "kesalahan nama di %s"
diff --git a/po/it.po b/po/it.po
index 5f6675f..792b2d7 100644
--- a/po/it.po
+++ b/po/it.po
@@ -15,61 +15,61 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: cache.c:761
+#: cache.c:757
#, c-format
msgid "failed to load names from %s: %s"
msgstr ""
-#: cache.c:795 dhcp.c:874
+#: cache.c:791 dhcp.c:936
#, c-format
msgid "bad address at %s line %d"
msgstr ""
-#: cache.c:853 dhcp.c:890
+#: cache.c:849 dhcp.c:952
#, c-format
msgid "bad name at %s line %d"
msgstr ""
-#: cache.c:860 dhcp.c:965
+#: cache.c:856 dhcp.c:1027
#, c-format
msgid "read %s - %d addresses"
msgstr ""
-#: cache.c:899
+#: cache.c:895
msgid "cleared cache"
msgstr ""
-#: cache.c:934
+#: cache.c:930
#, c-format
msgid "No IPv4 address found for %s"
msgstr ""
-#: cache.c:975
+#: cache.c:971
#, c-format
msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
msgstr ""
-#: cache.c:981
+#: cache.c:977
#, c-format
msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
msgstr ""
-#: cache.c:1054
+#: cache.c:1050
#, c-format
msgid "time %lu"
msgstr ""
-#: cache.c:1055
+#: cache.c:1051
#, c-format
msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
msgstr ""
-#: cache.c:1057
+#: cache.c:1053
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr ""
-#: cache.c:1083
+#: cache.c:1076
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr ""
@@ -83,7 +83,7 @@ msgstr ""
msgid "failed to allocate memory"
msgstr ""
-#: util.c:227 option.c:579
+#: util.c:227 option.c:585
msgid "could not get memory"
msgstr ""
@@ -97,755 +97,767 @@ msgstr ""
msgid "failed to allocate %d bytes"
msgstr ""
-#: util.c:358
+#: util.c:377
#, c-format
msgid "infinite"
msgstr ""
-#: option.c:248
+#: option.c:252
msgid "Specify local address(es) to listen on."
msgstr ""
-#: option.c:249
+#: option.c:253
msgid "Return ipaddr for all hosts in specified domains."
msgstr ""
-#: option.c:250
+#: option.c:254
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
-#: option.c:251
+#: option.c:255
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr ""
-#: option.c:252
+#: option.c:256
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr ""
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr ""
-#: option.c:254
+#: option.c:258
msgid "Do NOT fork into the background: run in debug mode."
msgstr ""
-#: option.c:255
+#: option.c:259
msgid "Do NOT forward queries with no domain part."
msgstr ""
-#: option.c:256
+#: option.c:260
msgid "Return self-pointing MX records for local hosts."
msgstr ""
-#: option.c:257
+#: option.c:261
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr ""
-#: option.c:258
+#: option.c:262
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr ""
-#: option.c:259
+#: option.c:263
msgid "Enable DHCP in the range given with lease duration."
msgstr ""
-#: option.c:260
+#: option.c:264
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr ""
-#: option.c:261
+#: option.c:265
msgid "Set address or hostname for a specified machine."
msgstr ""
-#: option.c:262
+#: option.c:266
msgid "Read DHCP host specs from file."
msgstr ""
-#: option.c:263
+#: option.c:267
msgid "Read DHCP option specs from file."
msgstr ""
-#: option.c:264
+#: option.c:268
msgid "Evaluate conditional tag expression."
msgstr ""
-#: option.c:265
+#: option.c:269
#, c-format
msgid "Do NOT load %s file."
msgstr ""
-#: option.c:266
+#: option.c:270
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr ""
-#: option.c:267
+#: option.c:271
msgid "Specify interface(s) to listen on."
msgstr ""
-#: option.c:268
+#: option.c:272
msgid "Specify interface(s) NOT to listen on."
msgstr ""
-#: option.c:269
+#: option.c:273
msgid "Map DHCP user class to tag."
msgstr ""
-#: option.c:270
+#: option.c:274
msgid "Map RFC3046 circuit-id to tag."
msgstr ""
-#: option.c:271
+#: option.c:275
msgid "Map RFC3046 remote-id to tag."
msgstr ""
-#: option.c:272
+#: option.c:276
msgid "Map RFC3993 subscriber-id to tag."
msgstr ""
-#: option.c:273
+#: option.c:277
msgid "Don't do DHCP for hosts with tag set."
msgstr ""
-#: option.c:274
+#: option.c:278
msgid "Force broadcast replies for hosts with tag set."
msgstr ""
-#: option.c:275
+#: option.c:279
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr ""
-#: option.c:276
+#: option.c:280
msgid "Assume we are the only DHCP server on the local network."
msgstr ""
-#: option.c:277
+#: option.c:281
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:278
+#: option.c:282
msgid "Return MX records for local hosts."
msgstr ""
-#: option.c:279
+#: option.c:283
msgid "Specify an MX record."
msgstr ""
-#: option.c:280
+#: option.c:284
msgid "Specify BOOTP options to DHCP server."
msgstr ""
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
-#: option.c:282
+#: option.c:286
msgid "Do NOT cache failed search results."
msgstr ""
-#: option.c:283
+#: option.c:287
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr ""
-#: option.c:284
+#: option.c:288
msgid "Specify options to be sent to DHCP clients."
msgstr ""
-#: option.c:285
+#: option.c:289
msgid "DHCP option sent even if the client does not request it."
msgstr ""
-#: option.c:286
+#: option.c:290
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
-#: option.c:287
+#: option.c:291
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
-#: option.c:288
+#: option.c:292
msgid "Log DNS queries."
msgstr ""
-#: option.c:289
+#: option.c:293
msgid "Force the originating port for upstream DNS queries."
msgstr ""
-#: option.c:290
+#: option.c:294
msgid "Do NOT read resolv.conf."
msgstr ""
-#: option.c:291
+#: option.c:295
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr ""
-#: option.c:292
+#: option.c:296
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
-#: option.c:293
+#: option.c:297
msgid "Never forward queries to specified domains."
msgstr ""
-#: option.c:294
+#: option.c:298
msgid "Specify the domain to be assigned in DHCP leases."
msgstr ""
-#: option.c:295
+#: option.c:299
msgid "Specify default target in an MX record."
msgstr ""
-#: option.c:296
+#: option.c:300
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
-#: option.c:297
+#: option.c:301
msgid "Specify time-to-live in seconds for negative caching."
msgstr ""
-#: option.c:298
+#: option.c:302
msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
msgstr ""
-#: option.c:299
+#: option.c:303
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr ""
-#: option.c:300
+#: option.c:304
msgid "Map DHCP vendor class to tag."
msgstr ""
-#: option.c:301
+#: option.c:305
msgid "Display dnsmasq version and copyright information."
msgstr ""
-#: option.c:302
+#: option.c:306
msgid "Translate IPv4 addresses from upstream servers."
msgstr ""
-#: option.c:303
+#: option.c:307
msgid "Specify a SRV record."
msgstr ""
-#: option.c:304
+#: option.c:308
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr ""
-#: option.c:305
+#: option.c:309
#, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr ""
-#: option.c:306
+#: option.c:310
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:307
+#: option.c:311
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
-#: option.c:308
+#: option.c:312
msgid "Specify TXT DNS record."
msgstr ""
-#: option.c:309
+#: option.c:313
msgid "Specify PTR DNS record."
msgstr ""
-#: option.c:310
+#: option.c:314
msgid "Give DNS name to IPv4 address of interface."
msgstr ""
-#: option.c:311
+#: option.c:315
msgid "Bind only to interfaces in use."
msgstr ""
-#: option.c:312
+#: option.c:316
#, c-format
msgid "Read DHCP static host information from %s."
msgstr ""
-#: option.c:313
+#: option.c:317
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr ""
-#: option.c:314
+#: option.c:318
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr ""
-#: option.c:315
+#: option.c:319
msgid "Enable dynamic address allocation for bootp."
msgstr ""
-#: option.c:316
+#: option.c:320
msgid "Map MAC address (with wildcards) to option set."
msgstr ""
-#: option.c:317
+#: option.c:321
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr ""
-#: option.c:318
+#: option.c:322
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:319
+#: option.c:323
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
-#: option.c:320
+#: option.c:324
msgid "Read configuration from all the files in this directory."
msgstr ""
-#: option.c:321
+#: option.c:325
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr ""
-#: option.c:322
+#: option.c:326
msgid "Do not use leasefile."
msgstr ""
-#: option.c:323
+#: option.c:327
#, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr ""
-#: option.c:324
+#: option.c:328
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr ""
-#: option.c:325
+#: option.c:329
msgid "Ignore hostnames provided by DHCP clients."
msgstr ""
-#: option.c:326
+#: option.c:330
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr ""
-#: option.c:327
+#: option.c:331
msgid "Enable integrated read-only TFTP server."
msgstr ""
-#: option.c:328
+#: option.c:332
msgid "Export files by TFTP only from the specified subtree."
msgstr ""
-#: option.c:329
+#: option.c:333
msgid "Add client IP address to tftp-root."
msgstr ""
-#: option.c:330
+#: option.c:334
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr ""
-#: option.c:331
+#: option.c:335
#, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr ""
-#: option.c:332
+#: option.c:336
msgid "Disable the TFTP blocksize extension."
msgstr ""
-#: option.c:333
+#: option.c:337
msgid "Ephemeral port range for use by TFTP transfers."
msgstr ""
-#: option.c:334
+#: option.c:338
msgid "Extra logging for DHCP."
msgstr ""
-#: option.c:335
+#: option.c:339
msgid "Enable async. logging; optionally set queue length."
msgstr ""
-#: option.c:336
+#: option.c:340
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr ""
-#: option.c:337
+#: option.c:341
msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
msgstr ""
-#: option.c:338
+#: option.c:342
msgid "Inhibit DNS-rebind protection on this domain."
msgstr ""
-#: option.c:339
+#: option.c:343
msgid "Always perform DNS queries to all servers."
msgstr ""
-#: option.c:340
+#: option.c:344
msgid "Set tag if client includes matching option in request."
msgstr ""
-#: option.c:341
+#: option.c:345
msgid "Use alternative ports for DHCP."
msgstr ""
-#: option.c:342
+#: option.c:346
msgid "Run lease-change script as this user."
msgstr ""
-#: option.c:343
+#: option.c:347
msgid "Specify NAPTR DNS record."
msgstr ""
-#: option.c:344
+#: option.c:348
msgid "Specify lowest port available for DNS query transmission."
msgstr ""
-#: option.c:345
+#: option.c:349
msgid "Use only fully qualified domain names for DHCP clients."
msgstr ""
-#: option.c:346
+#: option.c:350
msgid "Generate hostnames based on MAC address for nameless clients."
msgstr ""
-#: option.c:347
+#: option.c:351
msgid "Use these DHCP relays as full proxies."
msgstr ""
-#: option.c:348
+#: option.c:352
msgid "Specify alias name for LOCAL DNS name."
msgstr ""
-#: option.c:349
+#: option.c:353
msgid "Prompt to send to PXE clients."
msgstr ""
-#: option.c:350
+#: option.c:354
msgid "Boot service for PXE menu."
msgstr ""
-#: option.c:351
+#: option.c:355
msgid "Check configuration syntax."
msgstr ""
-#: option.c:352
+#: option.c:356
msgid "Add requestor's MAC address to forwarded DNS queries."
msgstr ""
-#: option.c:353
+#: option.c:357
msgid "Proxy DNSSEC validation results from upstream nameservers."
msgstr ""
-#: option.c:354
+#: option.c:358
msgid "Attempt to allocate sequential IP addresses to DHCP clients."
msgstr ""
-#: option.c:355
+#: option.c:359
msgid "Copy connection-track mark from queries to upstream connections."
msgstr ""
-#: option.c:644
+#: option.c:360
+msgid "Allow DHCP clients to do their own DDNS updates."
+msgstr ""
+
+#: option.c:361
+msgid "Specify path to Lua script (no default)."
+msgstr ""
+
+#: option.c:650
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
-#: option.c:646
+#: option.c:652
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
-#: option.c:648
+#: option.c:654
#, c-format
msgid "Valid options are:\n"
msgstr ""
-#: option.c:689
+#: option.c:695
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:804
+#: option.c:810
msgid "bad dhcp-option"
msgstr ""
-#: option.c:866
+#: option.c:872
msgid "bad IP address"
msgstr ""
-#: option.c:974
+#: option.c:980
msgid "bad domain in dhcp-option"
msgstr ""
-#: option.c:1040
+#: option.c:1046
msgid "dhcp-option too long"
msgstr ""
-#: option.c:1049
+#: option.c:1055
msgid "illegal dhcp-match"
msgstr ""
-#: option.c:1093
+#: option.c:1099
msgid "illegal repeated flag"
msgstr ""
-#: option.c:1101
+#: option.c:1107
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:1153 option.c:3062
+#: option.c:1159 option.c:3077
#, c-format
msgid "cannot access directory %s: %s"
msgstr ""
-#: option.c:1184 tftp.c:465
+#: option.c:1190 tftp.c:464
#, c-format
msgid "cannot access %s: %s"
msgstr ""
-#: option.c:1213
+#: option.c:1219
msgid "setting log facility is not possible under Android"
msgstr ""
-#: option.c:1222
+#: option.c:1228
msgid "bad log facility"
msgstr ""
-#: option.c:1271
+#: option.c:1277
msgid "bad MX preference"
msgstr ""
-#: option.c:1276
+#: option.c:1282
msgid "bad MX name"
msgstr ""
-#: option.c:1290
+#: option.c:1296
msgid "bad MX target"
msgstr ""
-#: option.c:1300
+#: option.c:1308
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1302
+#: option.c:1310
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr ""
-#: option.c:1607 option.c:1611
+#: option.c:1314
+msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts"
+msgstr ""
+
+#: option.c:1622 option.c:1626
msgid "bad port"
msgstr ""
-#: option.c:1634 option.c:1665
+#: option.c:1649 option.c:1680
msgid "interface binding not supported"
msgstr ""
-#: option.c:1645 option.c:2614
+#: option.c:1660 option.c:2629
msgid "bad interface name"
msgstr ""
-#: option.c:1810
+#: option.c:1825
msgid "bad port range"
msgstr ""
-#: option.c:1827
+#: option.c:1842
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1870
+#: option.c:1885
msgid "bad dhcp-range"
msgstr ""
-#: option.c:1898
+#: option.c:1913
msgid "only one tag allowed"
msgstr ""
-#: option.c:1945
+#: option.c:1960
msgid "inconsistent DHCP range"
msgstr ""
-#: option.c:2039 option.c:2067
+#: option.c:2054 option.c:2082
msgid "bad hex constant"
msgstr ""
-#: option.c:2061
+#: option.c:2076
msgid "cannot match tags in --dhcp-host"
msgstr ""
-#: option.c:2129
+#: option.c:2144
msgid "bad DHCP host name"
msgstr ""
-#: option.c:2210
+#: option.c:2225
msgid "bad tag-if"
msgstr ""
-#: option.c:2499 option.c:2784
+#: option.c:2514 option.c:2799
msgid "invalid port number"
msgstr ""
-#: option.c:2561
+#: option.c:2576
msgid "bad dhcp-proxy address"
msgstr ""
-#: option.c:2601
+#: option.c:2616
msgid "invalid alias range"
msgstr ""
-#: option.c:2639
+#: option.c:2654
msgid "bad CNAME"
msgstr ""
-#: option.c:2644
+#: option.c:2659
msgid "duplicate CNAME"
msgstr ""
-#: option.c:2664
+#: option.c:2679
msgid "bad PTR record"
msgstr ""
-#: option.c:2695
+#: option.c:2710
msgid "bad NAPTR record"
msgstr ""
-#: option.c:2727
+#: option.c:2742
msgid "bad TXT record"
msgstr ""
-#: option.c:2770
+#: option.c:2785
msgid "bad SRV record"
msgstr ""
-#: option.c:2777
+#: option.c:2792
msgid "bad SRV target"
msgstr ""
-#: option.c:2791
+#: option.c:2806
msgid "invalid priority"
msgstr ""
-#: option.c:2798
+#: option.c:2813
msgid "invalid weight"
msgstr ""
-#: option.c:2817
+#: option.c:2832
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr ""
-#: option.c:2881
+#: option.c:2896
msgid "missing \""
msgstr ""
-#: option.c:2940
+#: option.c:2955
msgid "bad option"
msgstr ""
-#: option.c:2942
+#: option.c:2957
msgid "extraneous parameter"
msgstr ""
-#: option.c:2944
+#: option.c:2959
msgid "missing parameter"
msgstr ""
-#: option.c:2948
+#: option.c:2963
msgid "error"
msgstr ""
-#: option.c:2953
+#: option.c:2968
#, c-format
msgid "%s at line %d of %%s"
msgstr ""
-#: option.c:3017 tftp.c:629
+#: option.c:3032 tftp.c:627
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: option.c:3183 option.c:3219
+#: option.c:3198 option.c:3234
#, c-format
msgid "read %s"
msgstr ""
-#: option.c:3271
+#: option.c:3286
msgid "junk found in command line"
msgstr ""
-#: option.c:3301
+#: option.c:3316
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
-#: option.c:3302
+#: option.c:3317
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
-#: option.c:3303
+#: option.c:3318
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
-#: option.c:3304
+#: option.c:3319
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:3305
+#: option.c:3320
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr ""
-#: option.c:3316
+#: option.c:3331
msgid "try --help"
msgstr ""
-#: option.c:3318
+#: option.c:3333
msgid "try -w"
msgstr ""
-#: option.c:3321
+#: option.c:3336
#, c-format
msgid "bad command line options: %s"
msgstr ""
-#: option.c:3362
+#: option.c:3377
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
-#: option.c:3390
+#: option.c:3405
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
-#: option.c:3400
+#: option.c:3415
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
-#: option.c:3403 network.c:845 dhcp.c:823
+#: option.c:3418 network.c:821 dhcp.c:885
#, c-format
msgid "failed to read %s: %s"
msgstr ""
-#: option.c:3420
+#: option.c:3435
#, c-format
msgid "no search directive found in %s"
msgstr ""
-#: option.c:3441
+#: option.c:3456
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr ""
-#: option.c:3445
+#: option.c:3460
msgid "syntax check OK"
msgstr ""
@@ -859,371 +871,376 @@ msgstr ""
msgid "possible DNS-rebind attack detected: %s"
msgstr ""
-#: network.c:171
-#, c-format
-msgid "unknown interface %s in bridge-interface"
-msgstr ""
-
-#: network.c:384
+#: network.c:354
#, c-format
msgid "failed to create listening socket for %s: %s"
msgstr ""
-#: network.c:743
+#: network.c:719
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr ""
-#: network.c:780
+#: network.c:756
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
-#: network.c:791
+#: network.c:767
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr ""
-#: network.c:808
+#: network.c:784
msgid "unqualified"
msgstr ""
-#: network.c:808
+#: network.c:784
msgid "names"
msgstr ""
-#: network.c:810
+#: network.c:786
msgid "default"
msgstr ""
-#: network.c:812
+#: network.c:788
msgid "domain"
msgstr ""
-#: network.c:815
+#: network.c:791
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:817
+#: network.c:793
#, c-format
msgid "using standard nameservers for %s %s"
msgstr ""
-#: network.c:819
+#: network.c:795
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:822
+#: network.c:798
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr ""
-#: network.c:824
+#: network.c:800
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
-#: dnsmasq.c:152
+#: dnsmasq.c:114
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr ""
-#: dnsmasq.c:157
+#: dnsmasq.c:119
msgid "Cannot use --conntrack AND --query-port"
msgstr ""
-#: dnsmasq.c:160
+#: dnsmasq.c:122
msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
msgstr ""
-#: dnsmasq.c:165
+#: dnsmasq.c:127
msgid "asychronous logging is not available under Solaris"
msgstr ""
-#: dnsmasq.c:170
+#: dnsmasq.c:132
msgid "asychronous logging is not available under Android"
msgstr ""
-#: dnsmasq.c:189
+#: dnsmasq.c:151
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr ""
-#: dnsmasq.c:197
+#: dnsmasq.c:159
#, c-format
msgid "unknown interface %s"
msgstr ""
-#: dnsmasq.c:203
+#: dnsmasq.c:165
#, c-format
msgid "no interface with address %s"
msgstr ""
-#: dnsmasq.c:219 dnsmasq.c:716
+#: dnsmasq.c:181 dnsmasq.c:680
#, c-format
msgid "DBus error: %s"
msgstr ""
-#: dnsmasq.c:222
+#: dnsmasq.c:184
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr ""
-#: dnsmasq.c:248
+#: dnsmasq.c:211
#, c-format
msgid "unknown user or group: %s"
msgstr ""
-#: dnsmasq.c:303
+#: dnsmasq.c:266
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr ""
-#: dnsmasq.c:477
+#: dnsmasq.c:441
#, c-format
msgid "started, version %s DNS disabled"
msgstr ""
-#: dnsmasq.c:479
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s cachesize %d"
msgstr ""
-#: dnsmasq.c:481
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cache disabled"
msgstr ""
-#: dnsmasq.c:483
+#: dnsmasq.c:447
#, c-format
msgid "compile time options: %s"
msgstr ""
-#: dnsmasq.c:489
+#: dnsmasq.c:453
msgid "DBus support enabled: connected to system bus"
msgstr ""
-#: dnsmasq.c:491
+#: dnsmasq.c:455
msgid "DBus support enabled: bus connection pending"
msgstr ""
-#: dnsmasq.c:496
+#: dnsmasq.c:460
#, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr ""
-#: dnsmasq.c:500
+#: dnsmasq.c:464
msgid "setting --bind-interfaces option because of OS limitations"
msgstr ""
-#: dnsmasq.c:505
+#: dnsmasq.c:469
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr ""
-#: dnsmasq.c:510
+#: dnsmasq.c:474
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr ""
-#: dnsmasq.c:513
+#: dnsmasq.c:477
msgid "warning: no upstream servers configured"
msgstr ""
-#: dnsmasq.c:517
+#: dnsmasq.c:481
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr ""
-#: dnsmasq.c:530
+#: dnsmasq.c:494
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr ""
-#: dnsmasq.c:532
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, proxy on subnet %.0s%s%.0s"
msgstr ""
-#: dnsmasq.c:533
+#: dnsmasq.c:497
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr ""
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "root is "
msgstr ""
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "enabled"
msgstr ""
-#: dnsmasq.c:550
+#: dnsmasq.c:514
msgid "secure mode"
msgstr ""
-#: dnsmasq.c:576
+#: dnsmasq.c:540
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:718
+#: dnsmasq.c:682
msgid "connected to system DBus"
msgstr ""
-#: dnsmasq.c:813
+#: dnsmasq.c:806
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
-#: dnsmasq.c:816
+#: dnsmasq.c:809
#, c-format
msgid "failed to create helper: %s"
msgstr ""
-#: dnsmasq.c:819
+#: dnsmasq.c:812
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
-#: dnsmasq.c:823
+#: dnsmasq.c:815
#, c-format
msgid "failed to change user-id to %s: %s"
msgstr ""
-#: dnsmasq.c:828
+#: dnsmasq.c:818
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr ""
-#: dnsmasq.c:831
+#: dnsmasq.c:821
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr ""
-#: dnsmasq.c:834
+#: dnsmasq.c:824
+#, c-format
+msgid "cannot open log %s: %s"
+msgstr ""
+
+#: dnsmasq.c:827
#, c-format
-msgid "cannot open %s: %s"
+msgid "failed to load Lua script: %s"
msgstr ""
-#: dnsmasq.c:889
+#: dnsmasq.c:886
#, c-format
-msgid "child process killed by signal %d"
+msgid "script process killed by signal %d"
msgstr ""
-#: dnsmasq.c:893
+#: dnsmasq.c:890
#, c-format
-msgid "child process exited with status %d"
+msgid "script process exited with status %d"
msgstr ""
-#: dnsmasq.c:897
+#: dnsmasq.c:894
#, c-format
msgid "failed to execute %s: %s"
msgstr ""
-#: dnsmasq.c:941
+#: dnsmasq.c:939
msgid "exiting on receipt of SIGTERM"
msgstr ""
-#: dnsmasq.c:969
+#: dnsmasq.c:967
#, c-format
msgid "failed to access %s: %s"
msgstr ""
-#: dnsmasq.c:999
+#: dnsmasq.c:997
#, c-format
msgid "reading %s"
msgstr ""
-#: dnsmasq.c:1010
+#: dnsmasq.c:1008
#, c-format
msgid "no servers found in %s, will retry"
msgstr ""
-#: dhcp.c:39
+#: dhcp.c:49
#, c-format
msgid "cannot create DHCP socket: %s"
msgstr ""
-#: dhcp.c:51
+#: dhcp.c:64
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr ""
-#: dhcp.c:64
+#: dhcp.c:77
#, c-format
msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
msgstr ""
-#: dhcp.c:76
+#: dhcp.c:89
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr ""
-#: dhcp.c:102
+#: dhcp.c:115
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr ""
-#: dhcp.c:278
+#: dhcp.c:264
+#, c-format
+msgid "unknown interface %s in bridge-interface"
+msgstr ""
+
+#: dhcp.c:289
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr ""
-#: dhcp.c:442
+#: dhcp.c:504
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
-#: dhcp.c:861
+#: dhcp.c:923
#, c-format
msgid "bad line at %s line %d"
msgstr ""
-#: dhcp.c:904
+#: dhcp.c:966
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr ""
-#: dhcp.c:987
+#: dhcp.c:1049
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
-#: dhcp.c:990
+#: dhcp.c:1052
#, c-format
msgid "duplicate IP address %s in %s."
msgstr ""
-#: dhcp.c:1033
+#: dhcp.c:1095
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:1038
+#: dhcp.c:1100
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
-#: lease.c:67
+#: lease.c:70
#, c-format
msgid "cannot open or create lease file %s: %s"
msgstr ""
-#: lease.c:93
+#: lease.c:116
msgid "too many stored leases"
msgstr ""
-#: lease.c:129
+#: lease.c:173
#, c-format
msgid "cannot run lease-init script %s: %s"
msgstr ""
-#: lease.c:135
+#: lease.c:179
#, c-format
msgid "lease-init script returned exit code %s"
msgstr ""
-#: lease.c:235
+#: lease.c:325
#, c-format
msgid "failed to write %s: %s (retry in %us)"
msgstr ""
@@ -1255,19 +1272,19 @@ msgstr ""
msgid "disabled"
msgstr ""
-#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
+#: rfc2131.c:428 rfc2131.c:944 rfc2131.c:1336
msgid "ignored"
msgstr ""
-#: rfc2131.c:443 rfc2131.c:1183
+#: rfc2131.c:443 rfc2131.c:1182
msgid "address in use"
msgstr ""
-#: rfc2131.c:457 rfc2131.c:999
+#: rfc2131.c:457 rfc2131.c:998
msgid "no address available"
msgstr ""
-#: rfc2131.c:464 rfc2131.c:1146
+#: rfc2131.c:464 rfc2131.c:1145
msgid "wrong network"
msgstr ""
@@ -1275,146 +1292,146 @@ msgstr ""
msgid "no address configured"
msgstr ""
-#: rfc2131.c:485 rfc2131.c:1196
+#: rfc2131.c:485 rfc2131.c:1195
msgid "no leases left"
msgstr ""
-#: rfc2131.c:570
+#: rfc2131.c:569
#, c-format
msgid "%u client provides name: %s"
msgstr ""
-#: rfc2131.c:725
+#: rfc2131.c:724
#, c-format
msgid "%u vendor class: %s"
msgstr ""
-#: rfc2131.c:727
+#: rfc2131.c:726
#, c-format
msgid "%u user class: %s"
msgstr ""
-#: rfc2131.c:786
+#: rfc2131.c:785
msgid "PXE BIS not supported"
msgstr ""
-#: rfc2131.c:915
+#: rfc2131.c:914
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr ""
-#: rfc2131.c:936
+#: rfc2131.c:935
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:968
+#: rfc2131.c:967
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:978
+#: rfc2131.c:977
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:981
+#: rfc2131.c:980
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:997 rfc2131.c:1189
+#: rfc2131.c:996 rfc2131.c:1188
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:1084
+#: rfc2131.c:1083
msgid "wrong server-ID"
msgstr ""
-#: rfc2131.c:1103
+#: rfc2131.c:1102
msgid "wrong address"
msgstr ""
-#: rfc2131.c:1121
+#: rfc2131.c:1120
msgid "lease not found"
msgstr ""
-#: rfc2131.c:1154
+#: rfc2131.c:1153
msgid "address not available"
msgstr ""
-#: rfc2131.c:1165
+#: rfc2131.c:1164
msgid "static lease available"
msgstr ""
-#: rfc2131.c:1169
+#: rfc2131.c:1168
msgid "address reserved"
msgstr ""
-#: rfc2131.c:1177
+#: rfc2131.c:1176
#, c-format
msgid "abandoning lease to %s of %s"
msgstr ""
-#: rfc2131.c:1746
+#: rfc2131.c:1745
#, c-format
msgid "%u tags: %s"
msgstr ""
-#: rfc2131.c:1774
+#: rfc2131.c:1773
#, c-format
msgid "%u bootfile name: %s"
msgstr ""
-#: rfc2131.c:1783
+#: rfc2131.c:1782
#, c-format
msgid "%u server name: %s"
msgstr ""
-#: rfc2131.c:1791
+#: rfc2131.c:1790
#, c-format
msgid "%u next server: %s"
msgstr ""
-#: rfc2131.c:1794
+#: rfc2131.c:1793
#, c-format
msgid "%u broadcast response"
msgstr ""
-#: rfc2131.c:1857
+#: rfc2131.c:1856
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:2097
+#: rfc2131.c:2096
msgid "PXE menu too large"
msgstr ""
-#: rfc2131.c:2253
+#: rfc2131.c:2252
#, c-format
msgid "Ignoring duplicate dhcp-option %d"
msgstr ""
-#: rfc2131.c:2257
+#: rfc2131.c:2256
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr ""
-#: rfc2131.c:2275
+#: rfc2131.c:2274
#, c-format
msgid "%u requested options: %s"
msgstr ""
-#: rfc2131.c:2550
+#: rfc2131.c:2549
#, c-format
msgid "cannot send RFC3925 option: too many options for enterprise number %d"
msgstr ""
-#: netlink.c:70
+#: netlink.c:71
#, c-format
msgid "cannot create netlink socket: %s"
msgstr ""
-#: netlink.c:289
+#: netlink.c:321
#, c-format
msgid "netlink returns error: %s"
msgstr ""
@@ -1431,41 +1448,45 @@ msgstr ""
msgid "could not register a DBus message handler"
msgstr ""
-#: bpf.c:224
+#: bpf.c:225
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr ""
-#: bpf.c:252
+#: bpf.c:253
#, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr ""
-#: tftp.c:286
+#: helper.c:130
+msgid "lease() function missing in Lua script"
+msgstr ""
+
+#: tftp.c:285
msgid "unable to get free port for TFTP"
msgstr ""
-#: tftp.c:301
+#: tftp.c:300
#, c-format
msgid "unsupported request from %s"
msgstr ""
-#: tftp.c:411
+#: tftp.c:410
#, c-format
msgid "file %s not found"
msgstr ""
-#: tftp.c:527
+#: tftp.c:525
#, c-format
msgid "error %d %s received from %s"
msgstr ""
-#: tftp.c:559
+#: tftp.c:557
#, c-format
msgid "failed sending %s to %s"
msgstr ""
-#: tftp.c:573
+#: tftp.c:571
#, c-format
msgid "sent %s to %s"
msgstr ""
@@ -1475,12 +1496,12 @@ msgstr ""
msgid "overflow: %d log entries lost"
msgstr ""
-#: log.c:267
+#: log.c:268
#, c-format
msgid "log failed: %s"
msgstr ""
-#: log.c:471
+#: log.c:472
msgid "FAILED to start up"
msgstr ""
@@ -1488,3 +1509,18 @@ msgstr ""
#, c-format
msgid "Conntrack connection mark retrieval failed: %s"
msgstr ""
+
+#: dhcp6.c:42
+#, c-format
+msgid "cannot create DHCPv6 socket: %s"
+msgstr ""
+
+#: dhcp6.c:53
+#, c-format
+msgid "failed to bind DHCPv6 server socket: %s"
+msgstr ""
+
+#: dhcp6.c:57
+#, c-format
+msgid "failed to join DHCPv6 multicast group: %s"
+msgstr ""
diff --git a/po/no.po b/po/no.po
index 46640d2..b266572 100644
--- a/po/no.po
+++ b/po/no.po
@@ -17,61 +17,61 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: cache.c:761
+#: cache.c:757
#, fuzzy, c-format
msgid "failed to load names from %s: %s"
msgstr "feilet å laste navn fra %s: %s"
-#: cache.c:795 dhcp.c:874
+#: cache.c:791 dhcp.c:936
#, c-format
msgid "bad address at %s line %d"
msgstr "dårlig adresse ved %s linje %d"
-#: cache.c:853 dhcp.c:890
+#: cache.c:849 dhcp.c:952
#, c-format
msgid "bad name at %s line %d"
msgstr "dårlig navn ved %s linje %d"
-#: cache.c:860 dhcp.c:965
+#: cache.c:856 dhcp.c:1027
#, c-format
msgid "read %s - %d addresses"
msgstr "les %s - %d adresser"
-#: cache.c:899
+#: cache.c:895
msgid "cleared cache"
msgstr "mellomlager tømt"
-#: cache.c:934
+#: cache.c:930
#, c-format
msgid "No IPv4 address found for %s"
msgstr ""
-#: cache.c:975
+#: cache.c:971
#, c-format
msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
msgstr ""
-#: cache.c:981
+#: cache.c:977
#, c-format
msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
msgstr "gir ikke navnet %s til DHCP leien for %s fordi navnet eksisterer i %s med adressen %s"
-#: cache.c:1054
+#: cache.c:1050
#, c-format
msgid "time %lu"
msgstr ""
-#: cache.c:1055
+#: cache.c:1051
#, fuzzy, c-format
msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
msgstr "mellomlager størrelse %d, %d/%d mellomlager innsettinger re-bruker mellomlager plasser som ikke er utløpt"
-#: cache.c:1057
+#: cache.c:1053
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr ""
-#: cache.c:1083
+#: cache.c:1076
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr ""
@@ -86,7 +86,7 @@ msgstr "feilet å lytte på socket: %s"
msgid "failed to allocate memory"
msgstr "feilet å laste %d bytes"
-#: util.c:227 option.c:579
+#: util.c:227 option.c:585
msgid "could not get memory"
msgstr "kunne ikke få minne"
@@ -100,477 +100,486 @@ msgstr "kan ikke lese %s: %s"
msgid "failed to allocate %d bytes"
msgstr "feilet å laste %d bytes"
-#: util.c:358
+#: util.c:377
#, c-format
msgid "infinite"
msgstr "uendelig"
-#: option.c:248
+#: option.c:252
msgid "Specify local address(es) to listen on."
msgstr "Spesifiser lokal(e) adresse(r) å lytte på."
-#: option.c:249
+#: option.c:253
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Returner ipaddr for alle verter i det spesifiserte domenet."
-#: option.c:250
+#: option.c:254
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Forfalsk revers oppslag for RFC1918 private adresse områder."
-#: option.c:251
+#: option.c:255
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Behandle ipaddr som NXDOMAIN (omgår Verisign wildcard)."
-#: option.c:252
+#: option.c:256
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Spesifiser størrelsen på mellomlager plassene (standard er %s)."
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Spesifiser konfigurasjonsfil (standard er %s)."
-#: option.c:254
+#: option.c:258
msgid "Do NOT fork into the background: run in debug mode."
msgstr "IKKE legg (fork) som bakgrunnsprosess: kjør i debug modus."
-#: option.c:255
+#: option.c:259
msgid "Do NOT forward queries with no domain part."
msgstr "IKKE videresend oppslag som mangler domene del."
-#: option.c:256
+#: option.c:260
msgid "Return self-pointing MX records for local hosts."
msgstr "Returner selv-pekende MX post for lokale verter."
-#: option.c:257
+#: option.c:261
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Utvid enkle navn i /etc/hosts med domene-suffiks."
-#: option.c:258
+#: option.c:262
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Ikke videresend falske/uekte DNS forespørsler fra Windows verter."
-#: option.c:259
+#: option.c:263
msgid "Enable DHCP in the range given with lease duration."
msgstr "Aktiver DHCP i det gitte området med leie varighet"
-#: option.c:260
+#: option.c:264
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Skift til denne gruppen etter oppstart (standard er %s)."
-#: option.c:261
+#: option.c:265
msgid "Set address or hostname for a specified machine."
msgstr "Sett adresse eller vertsnavn for en spesifikk maskin."
-#: option.c:262
+#: option.c:266
#, fuzzy
msgid "Read DHCP host specs from file."
msgstr "dårlig MX navn"
-#: option.c:263
+#: option.c:267
msgid "Read DHCP option specs from file."
msgstr ""
-#: option.c:264
+#: option.c:268
msgid "Evaluate conditional tag expression."
msgstr ""
-#: option.c:265
+#: option.c:269
#, c-format
msgid "Do NOT load %s file."
msgstr "IKKE last %s filen."
-#: option.c:266
+#: option.c:270
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Spesifiser en verts (hosts) fil som skal leses i tilleg til %s."
-#: option.c:267
+#: option.c:271
msgid "Specify interface(s) to listen on."
msgstr "Spesifiser nettverkskort det skal lyttes på."
-#: option.c:268
+#: option.c:272
msgid "Specify interface(s) NOT to listen on."
msgstr "Spesifiser nettverkskort det IKKE skal lyttes på."
-#: option.c:269
+#: option.c:273
#, fuzzy
msgid "Map DHCP user class to tag."
msgstr "Map DHCP bruker klasse til opsjon sett."
-#: option.c:270
+#: option.c:274
msgid "Map RFC3046 circuit-id to tag."
msgstr ""
-#: option.c:271
+#: option.c:275
msgid "Map RFC3046 remote-id to tag."
msgstr ""
-#: option.c:272
+#: option.c:276
msgid "Map RFC3993 subscriber-id to tag."
msgstr ""
-#: option.c:273
+#: option.c:277
#, fuzzy
msgid "Don't do DHCP for hosts with tag set."
msgstr "Ikke utfør DHCP for klienter i opsjon sett."
-#: option.c:274
+#: option.c:278
#, fuzzy
msgid "Force broadcast replies for hosts with tag set."
msgstr "Ikke utfør DHCP for klienter i opsjon sett."
-#: option.c:275
+#: option.c:279
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "IKKE last (fork) som bakgrunnsprosess, IKKE kjør i debug modus."
-#: option.c:276
+#: option.c:280
msgid "Assume we are the only DHCP server on the local network."
msgstr "Anta at vi er den eneste DHCP tjeneren på det lokale nettverket."
-#: option.c:277
+#: option.c:281
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Spesifiser hvor DHCP leiene skal lagres (standard er %s)."
-#: option.c:278
+#: option.c:282
msgid "Return MX records for local hosts."
msgstr "Returner MX records for lokale verter."
-#: option.c:279
+#: option.c:283
msgid "Specify an MX record."
msgstr "Spesifiser en MX post."
-#: option.c:280
+#: option.c:284
msgid "Specify BOOTP options to DHCP server."
msgstr "Spesifiser BOOTP opsjoner til DHCP tjener."
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "IKKE spør (poll) %s fil, les på nytt kun ved SIGHUP"
-#: option.c:282
+#: option.c:286
msgid "Do NOT cache failed search results."
msgstr "IKKE mellomlagre søkeresultater som feiler."
-#: option.c:283
+#: option.c:287
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Bruk navnetjenere kun som bestemt i rekkefølgen gitt i %s."
-#: option.c:284
+#: option.c:288
#, fuzzy
msgid "Specify options to be sent to DHCP clients."
msgstr "Sett ekstra opsjoner som skal fordeles til DHCP klientene."
-#: option.c:285
+#: option.c:289
msgid "DHCP option sent even if the client does not request it."
msgstr ""
-#: option.c:286
+#: option.c:290
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Spesifiser lytteport for DNS oppslag (standard er 53)."
-#: option.c:287
+#: option.c:291
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Maksimal støttet UDP pakkestørrelse for EDNS.0 (standard er %s)."
-#: option.c:288
+#: option.c:292
#, fuzzy
msgid "Log DNS queries."
msgstr "Logg oppslag."
-#: option.c:289
+#: option.c:293
#, fuzzy
msgid "Force the originating port for upstream DNS queries."
msgstr "Tving bruk av opprinnelig port for oppstrøms oppslag."
-#: option.c:290
+#: option.c:294
msgid "Do NOT read resolv.conf."
msgstr "IKKE les resolv.conf."
-#: option.c:291
+#: option.c:295
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Spesifiser stien til resolv.conf (standard er %s)."
-#: option.c:292
+#: option.c:296
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Spesifiser adressen(e) til oppstrøms tjenere med valgfrie domener."
-#: option.c:293
+#: option.c:297
msgid "Never forward queries to specified domains."
msgstr "Aldri videresend oppslag til spesifiserte domener."
-#: option.c:294
+#: option.c:298
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Spesifiser domenet som skal tildeles i DHCP leien."
-#: option.c:295
+#: option.c:299
msgid "Specify default target in an MX record."
msgstr "Spesifiser default mål i en MX post."
-#: option.c:296
+#: option.c:300
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr "Spesifiser time-to-live i sekunder for svar fra /etc/hosts."
-#: option.c:297
+#: option.c:301
#, fuzzy
msgid "Specify time-to-live in seconds for negative caching."
msgstr "Spesifiser time-to-live i sekunder for svar fra /etc/hosts."
-#: option.c:298
+#: option.c:302
#, fuzzy
msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
msgstr "Spesifiser time-to-live i sekunder for svar fra /etc/hosts."
-#: option.c:299
+#: option.c:303
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Skift til denne bruker etter oppstart (standard er %s)."
-#: option.c:300
+#: option.c:304
#, fuzzy
msgid "Map DHCP vendor class to tag."
msgstr "Map DHCP produsent klasse til opsjon sett."
-#: option.c:301
+#: option.c:305
msgid "Display dnsmasq version and copyright information."
msgstr "Vis dnsmasq versjon og copyright informasjon."
-#: option.c:302
+#: option.c:306
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Oversett IPv4 adresser fra oppstrøms tjenere."
-#: option.c:303
+#: option.c:307
msgid "Specify a SRV record."
msgstr "Spesifiser en SRV post."
-#: option.c:304
+#: option.c:308
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr ""
-#: option.c:305
+#: option.c:309
#, fuzzy, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr "Spesifiser stien til PID fil. (standard er %s)."
-#: option.c:306
+#: option.c:310
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
-#: option.c:307
+#: option.c:311
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr "Svar DNS oppslag basert på nettverkskortet oppslaget ble sendt til."
-#: option.c:308
+#: option.c:312
msgid "Specify TXT DNS record."
msgstr "Spesifiser TXT DNS post."
-#: option.c:309
+#: option.c:313
#, fuzzy
msgid "Specify PTR DNS record."
msgstr "Spesifiser TXT DNS post."
-#: option.c:310
+#: option.c:314
msgid "Give DNS name to IPv4 address of interface."
msgstr ""
-#: option.c:311
+#: option.c:315
msgid "Bind only to interfaces in use."
msgstr "Bind kun til nettverkskort som er i bruk."
-#: option.c:312
+#: option.c:316
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Les DHCP statisk vert informasjon fra %s."
-#: option.c:313
+#: option.c:317
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Aktiver DBus interface for å sette oppstrøms tjenere, osv."
-#: option.c:314
+#: option.c:318
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Ikke lever DHCP på dette nettverkskortet, kun lever DNS."
-#: option.c:315
+#: option.c:319
msgid "Enable dynamic address allocation for bootp."
msgstr "Aktiver dynamisk adresse allokering for bootp."
-#: option.c:316
+#: option.c:320
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Map DHCP produsent klasse til opsjon sett."
-#: option.c:317
+#: option.c:321
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr ""
-#: option.c:318
+#: option.c:322
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:319
+#: option.c:323
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
-#: option.c:320
+#: option.c:324
msgid "Read configuration from all the files in this directory."
msgstr ""
-#: option.c:321
+#: option.c:325
#, fuzzy
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr "Skift til denne bruker etter oppstart (standard er %s)."
-#: option.c:322
+#: option.c:326
msgid "Do not use leasefile."
msgstr ""
-#: option.c:323
+#: option.c:327
#, fuzzy, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
-#: option.c:324
+#: option.c:328
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr ""
-#: option.c:325
+#: option.c:329
msgid "Ignore hostnames provided by DHCP clients."
msgstr ""
-#: option.c:326
+#: option.c:330
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr ""
-#: option.c:327
+#: option.c:331
msgid "Enable integrated read-only TFTP server."
msgstr ""
-#: option.c:328
+#: option.c:332
msgid "Export files by TFTP only from the specified subtree."
msgstr ""
-#: option.c:329
+#: option.c:333
msgid "Add client IP address to tftp-root."
msgstr ""
-#: option.c:330
+#: option.c:334
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr ""
-#: option.c:331
+#: option.c:335
#, fuzzy, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
-#: option.c:332
+#: option.c:336
msgid "Disable the TFTP blocksize extension."
msgstr ""
-#: option.c:333
+#: option.c:337
msgid "Ephemeral port range for use by TFTP transfers."
msgstr ""
-#: option.c:334
+#: option.c:338
msgid "Extra logging for DHCP."
msgstr ""
-#: option.c:335
+#: option.c:339
msgid "Enable async. logging; optionally set queue length."
msgstr ""
-#: option.c:336
+#: option.c:340
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr ""
-#: option.c:337
+#: option.c:341
msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
msgstr ""
-#: option.c:338
+#: option.c:342
msgid "Inhibit DNS-rebind protection on this domain."
msgstr ""
-#: option.c:339
+#: option.c:343
msgid "Always perform DNS queries to all servers."
msgstr ""
-#: option.c:340
+#: option.c:344
msgid "Set tag if client includes matching option in request."
msgstr ""
-#: option.c:341
+#: option.c:345
msgid "Use alternative ports for DHCP."
msgstr ""
-#: option.c:342
+#: option.c:346
msgid "Run lease-change script as this user."
msgstr ""
-#: option.c:343
+#: option.c:347
#, fuzzy
msgid "Specify NAPTR DNS record."
msgstr "Spesifiser TXT DNS post."
-#: option.c:344
+#: option.c:348
msgid "Specify lowest port available for DNS query transmission."
msgstr ""
-#: option.c:345
+#: option.c:349
msgid "Use only fully qualified domain names for DHCP clients."
msgstr ""
-#: option.c:346
+#: option.c:350
msgid "Generate hostnames based on MAC address for nameless clients."
msgstr ""
-#: option.c:347
+#: option.c:351
msgid "Use these DHCP relays as full proxies."
msgstr ""
-#: option.c:348
+#: option.c:352
msgid "Specify alias name for LOCAL DNS name."
msgstr ""
-#: option.c:349
+#: option.c:353
#, fuzzy
msgid "Prompt to send to PXE clients."
msgstr "Sett ekstra opsjoner som skal fordeles til DHCP klientene."
-#: option.c:350
+#: option.c:354
msgid "Boot service for PXE menu."
msgstr ""
-#: option.c:351
+#: option.c:355
msgid "Check configuration syntax."
msgstr ""
-#: option.c:352
+#: option.c:356
msgid "Add requestor's MAC address to forwarded DNS queries."
msgstr ""
-#: option.c:353
+#: option.c:357
#, fuzzy
msgid "Proxy DNSSEC validation results from upstream nameservers."
msgstr "Oversett IPv4 adresser fra oppstrøms tjenere."
-#: option.c:354
+#: option.c:358
msgid "Attempt to allocate sequential IP addresses to DHCP clients."
msgstr ""
-#: option.c:355
+#: option.c:359
msgid "Copy connection-track mark from queries to upstream connections."
msgstr ""
-#: option.c:644
+#: option.c:360
+msgid "Allow DHCP clients to do their own DDNS updates."
+msgstr ""
+
+#: option.c:361
+#, fuzzy
+msgid "Specify path to Lua script (no default)."
+msgstr "Spesifiser stien til PID fil. (standard er %s)."
+
+#: option.c:650
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -579,242 +588,246 @@ msgstr ""
"Bruk: dnsmasq [opsjoner]\n"
"\n"
-#: option.c:646
+#: option.c:652
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Bruk korte opsjoner kun på kommandolinjen.\n"
-#: option.c:648
+#: option.c:654
#, fuzzy, c-format
msgid "Valid options are:\n"
msgstr "Gyldige opsjoner er :\n"
-#: option.c:689
+#: option.c:695
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:804
+#: option.c:810
msgid "bad dhcp-option"
msgstr "dårlig dhcp-opsjon"
-#: option.c:866
+#: option.c:872
#, fuzzy
msgid "bad IP address"
msgstr "les %s - %d adresser"
-#: option.c:974
+#: option.c:980
msgid "bad domain in dhcp-option"
msgstr "dårlig domene i dhcp-opsjon"
-#: option.c:1040
+#: option.c:1046
msgid "dhcp-option too long"
msgstr "dhcp-opsjon for lang"
-#: option.c:1049
+#: option.c:1055
msgid "illegal dhcp-match"
msgstr ""
-#: option.c:1093
+#: option.c:1099
msgid "illegal repeated flag"
msgstr ""
-#: option.c:1101
+#: option.c:1107
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:1153 option.c:3062
+#: option.c:1159 option.c:3077
#, fuzzy, c-format
msgid "cannot access directory %s: %s"
msgstr "kan ikke lese %s: %s"
-#: option.c:1184 tftp.c:465
+#: option.c:1190 tftp.c:464
#, fuzzy, c-format
msgid "cannot access %s: %s"
msgstr "kan ikke lese %s: %s"
-#: option.c:1213
+#: option.c:1219
msgid "setting log facility is not possible under Android"
msgstr ""
-#: option.c:1222
+#: option.c:1228
msgid "bad log facility"
msgstr ""
-#: option.c:1271
+#: option.c:1277
msgid "bad MX preference"
msgstr "dårlig MX preferanse"
-#: option.c:1276
+#: option.c:1282
msgid "bad MX name"
msgstr "dårlig MX navn"
-#: option.c:1290
+#: option.c:1296
msgid "bad MX target"
msgstr "dårlig MX mål"
-#: option.c:1300
+#: option.c:1308
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1302
+#: option.c:1310
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr ""
-#: option.c:1607 option.c:1611
+#: option.c:1314
+msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts"
+msgstr ""
+
+#: option.c:1622 option.c:1626
msgid "bad port"
msgstr "dårlig port"
-#: option.c:1634 option.c:1665
+#: option.c:1649 option.c:1680
msgid "interface binding not supported"
msgstr ""
-#: option.c:1645 option.c:2614
+#: option.c:1660 option.c:2629
#, fuzzy
msgid "bad interface name"
msgstr "dårlig MX navn"
-#: option.c:1810
+#: option.c:1825
#, fuzzy
msgid "bad port range"
msgstr "dårlig port"
-#: option.c:1827
+#: option.c:1842
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1870
+#: option.c:1885
msgid "bad dhcp-range"
msgstr "dårlig dhcp-område"
-#: option.c:1898
+#: option.c:1913
msgid "only one tag allowed"
msgstr ""
-#: option.c:1945
+#: option.c:1960
msgid "inconsistent DHCP range"
msgstr "ikke konsistent DHCP område"
-#: option.c:2039 option.c:2067
+#: option.c:2054 option.c:2082
#, fuzzy
msgid "bad hex constant"
msgstr "dårlig dhcp-vert"
-#: option.c:2061
+#: option.c:2076
msgid "cannot match tags in --dhcp-host"
msgstr ""
-#: option.c:2129
+#: option.c:2144
#, fuzzy
msgid "bad DHCP host name"
msgstr "dårlig MX navn"
-#: option.c:2210
+#: option.c:2225
#, fuzzy
msgid "bad tag-if"
msgstr "dårlig MX mål"
-#: option.c:2499 option.c:2784
+#: option.c:2514 option.c:2799
msgid "invalid port number"
msgstr "ugyldig portnummer"
-#: option.c:2561
+#: option.c:2576
#, fuzzy
msgid "bad dhcp-proxy address"
msgstr "les %s - %d adresser"
-#: option.c:2601
+#: option.c:2616
#, fuzzy
msgid "invalid alias range"
msgstr "ugyldig vekt"
-#: option.c:2639
+#: option.c:2654
msgid "bad CNAME"
msgstr ""
-#: option.c:2644
+#: option.c:2659
msgid "duplicate CNAME"
msgstr ""
-#: option.c:2664
+#: option.c:2679
#, fuzzy
msgid "bad PTR record"
msgstr "dårlig SRV post"
-#: option.c:2695
+#: option.c:2710
#, fuzzy
msgid "bad NAPTR record"
msgstr "dårlig SRV post"
-#: option.c:2727
+#: option.c:2742
msgid "bad TXT record"
msgstr "dårlig TXT post"
-#: option.c:2770
+#: option.c:2785
msgid "bad SRV record"
msgstr "dårlig SRV post"
-#: option.c:2777
+#: option.c:2792
msgid "bad SRV target"
msgstr "dårlig SRV mål"
-#: option.c:2791
+#: option.c:2806
msgid "invalid priority"
msgstr "ugyldig prioritet"
-#: option.c:2798
+#: option.c:2813
msgid "invalid weight"
msgstr "ugyldig vekt"
-#: option.c:2817
+#: option.c:2832
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr ""
-#: option.c:2881
+#: option.c:2896
msgid "missing \""
msgstr "mangler \""
-#: option.c:2940
+#: option.c:2955
msgid "bad option"
msgstr "dårlig opsjon"
-#: option.c:2942
+#: option.c:2957
msgid "extraneous parameter"
msgstr "overflødig parameter"
-#: option.c:2944
+#: option.c:2959
msgid "missing parameter"
msgstr "mangler parameter"
-#: option.c:2948
+#: option.c:2963
msgid "error"
msgstr "feil"
-#: option.c:2953
+#: option.c:2968
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s på linje %d av %%s"
-#: option.c:3017 tftp.c:629
+#: option.c:3032 tftp.c:627
#, c-format
msgid "cannot read %s: %s"
msgstr "kan ikke lese %s: %s"
-#: option.c:3183 option.c:3219
+#: option.c:3198 option.c:3234
#, fuzzy, c-format
msgid "read %s"
msgstr "leser %s"
-#: option.c:3271
+#: option.c:3286
msgid "junk found in command line"
msgstr ""
-#: option.c:3301
+#: option.c:3316
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq versjon %s %s\n"
-#: option.c:3302
+#: option.c:3317
#, c-format
msgid ""
"Compile time options %s\n"
@@ -823,62 +836,62 @@ msgstr ""
"Kompileringsopsjoner %s\n"
"\n"
-#: option.c:3303
+#: option.c:3318
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Denne programvaren kommer med ABSOLUTT INGEN GARANTI.\n"
-#: option.c:3304
+#: option.c:3319
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr "DNsmasq er fri programvare, du er velkommen til å redistribuere den\n"
-#: option.c:3305
+#: option.c:3320
#, fuzzy, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr "under vilkårene gitt i GNU General Public License, versjon 2.\n"
-#: option.c:3316
+#: option.c:3331
msgid "try --help"
msgstr ""
-#: option.c:3318
+#: option.c:3333
msgid "try -w"
msgstr ""
-#: option.c:3321
+#: option.c:3336
#, fuzzy, c-format
msgid "bad command line options: %s"
msgstr "dårlige kommandlinje opsjoner: %s."
-#: option.c:3362
+#: option.c:3377
#, c-format
msgid "cannot get host-name: %s"
msgstr "klarer ikke å få vertsnavn: %s"
-#: option.c:3390
+#: option.c:3405
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "kun en resolv.conf fil tillat i no-poll modus."
-#: option.c:3400
+#: option.c:3415
msgid "must have exactly one resolv.conf to read domain from."
msgstr "må ha nøyaktig en resolv.conf å lese domene fra."
-#: option.c:3403 network.c:845 dhcp.c:823
+#: option.c:3418 network.c:821 dhcp.c:885
#, fuzzy, c-format
msgid "failed to read %s: %s"
msgstr "feilet å lese %s: %s"
-#: option.c:3420
+#: option.c:3435
#, c-format
msgid "no search directive found in %s"
msgstr "intet søke direktiv funnet i %s"
-#: option.c:3441
+#: option.c:3456
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr ""
-#: option.c:3445
+#: option.c:3460
msgid "syntax check OK"
msgstr ""
@@ -892,375 +905,380 @@ msgstr "navnetjener %s nektet å gjøre et rekursivt oppslag"
msgid "possible DNS-rebind attack detected: %s"
msgstr ""
-#: network.c:171
-#, fuzzy, c-format
-msgid "unknown interface %s in bridge-interface"
-msgstr "ukjent tilknytning (interface) %s"
-
-#: network.c:384
+#: network.c:354
#, fuzzy, c-format
msgid "failed to create listening socket for %s: %s"
msgstr "feilet å lage lytte socket: %s"
-#: network.c:743
+#: network.c:719
#, fuzzy, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "feilet å binde lytte socket for %s: %s"
-#: network.c:780
+#: network.c:756
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorerer navnetjener %s - lokal tilknytning"
-#: network.c:791
+#: network.c:767
#, fuzzy, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr "ignorerer navnetjener %s - kan ikke lage/dinde socket: %s"
-#: network.c:808
+#: network.c:784
msgid "unqualified"
msgstr "ikke kvalifisert"
-#: network.c:808
+#: network.c:784
msgid "names"
msgstr ""
-#: network.c:810
+#: network.c:786
msgid "default"
msgstr ""
-#: network.c:812
+#: network.c:788
msgid "domain"
msgstr "domene"
-#: network.c:815
+#: network.c:791
#, c-format
msgid "using local addresses only for %s %s"
msgstr "benytter lokale adresser kun for %s %s"
-#: network.c:817
+#: network.c:793
#, fuzzy, c-format
msgid "using standard nameservers for %s %s"
msgstr "benytter navnetjener %s#%d for %s %s"
-#: network.c:819
+#: network.c:795
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "benytter navnetjener %s#%d for %s %s"
-#: network.c:822
+#: network.c:798
#, fuzzy, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "benytter navnetjener %s#%d"
-#: network.c:824
+#: network.c:800
#, c-format
msgid "using nameserver %s#%d"
msgstr "benytter navnetjener %s#%d"
-#: dnsmasq.c:152
+#: dnsmasq.c:114
#, fuzzy
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h"
-#: dnsmasq.c:157
+#: dnsmasq.c:119
msgid "Cannot use --conntrack AND --query-port"
msgstr ""
-#: dnsmasq.c:160
+#: dnsmasq.c:122
#, fuzzy
msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h"
-#: dnsmasq.c:165
+#: dnsmasq.c:127
msgid "asychronous logging is not available under Solaris"
msgstr ""
-#: dnsmasq.c:170
+#: dnsmasq.c:132
msgid "asychronous logging is not available under Android"
msgstr ""
-#: dnsmasq.c:189
+#: dnsmasq.c:151
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr "feilet å finne liste av tilknytninger (interfaces): %s"
-#: dnsmasq.c:197
+#: dnsmasq.c:159
#, c-format
msgid "unknown interface %s"
msgstr "ukjent tilknytning (interface) %s"
-#: dnsmasq.c:203
+#: dnsmasq.c:165
#, c-format
msgid "no interface with address %s"
msgstr "ingen tilknytning (interface) med adresse %s"
-#: dnsmasq.c:219 dnsmasq.c:716
+#: dnsmasq.c:181 dnsmasq.c:680
#, c-format
msgid "DBus error: %s"
msgstr "DBus feil: %s"
-#: dnsmasq.c:222
+#: dnsmasq.c:184
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h"
-#: dnsmasq.c:248
+#: dnsmasq.c:211
#, c-format
msgid "unknown user or group: %s"
msgstr ""
-#: dnsmasq.c:303
+#: dnsmasq.c:266
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr ""
-#: dnsmasq.c:477
+#: dnsmasq.c:441
#, fuzzy, c-format
msgid "started, version %s DNS disabled"
msgstr "startet, versjon %s mellomlager deaktivert"
-#: dnsmasq.c:479
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s cachesize %d"
msgstr "startet, versjon %s mellomlager størrelse %d"
-#: dnsmasq.c:481
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cache disabled"
msgstr "startet, versjon %s mellomlager deaktivert"
-#: dnsmasq.c:483
+#: dnsmasq.c:447
#, c-format
msgid "compile time options: %s"
msgstr "kompilerings opsjoner: %s"
-#: dnsmasq.c:489
+#: dnsmasq.c:453
msgid "DBus support enabled: connected to system bus"
msgstr "DBus støtte aktivert: koblet til system buss"
-#: dnsmasq.c:491
+#: dnsmasq.c:455
msgid "DBus support enabled: bus connection pending"
msgstr "DBus støtte aktivert: avventer buss tilkobling"
-#: dnsmasq.c:496
+#: dnsmasq.c:460
#, fuzzy, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr "feilet å laste navn fra %s: %s"
-#: dnsmasq.c:500
+#: dnsmasq.c:464
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "setter --bind-interfaces opsjon på grunn av OS begrensninger"
-#: dnsmasq.c:505
+#: dnsmasq.c:469
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "advarsel: nettverkskort %s eksisterer ikke for tiden"
-#: dnsmasq.c:510
+#: dnsmasq.c:474
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr ""
-#: dnsmasq.c:513
+#: dnsmasq.c:477
#, fuzzy
msgid "warning: no upstream servers configured"
msgstr "setter oppstrøms tjener fra DBus"
-#: dnsmasq.c:517
+#: dnsmasq.c:481
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr ""
-#: dnsmasq.c:530
+#: dnsmasq.c:494
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "DHCP, statisk leie kun på %.0s%s, leie tid %s"
-#: dnsmasq.c:532
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, proxy on subnet %.0s%s%.0s"
msgstr ""
-#: dnsmasq.c:533
+#: dnsmasq.c:497
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, IP område %s -- %s, leie tid %s"
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "root is "
msgstr ""
-#: dnsmasq.c:548
+#: dnsmasq.c:512
#, fuzzy
msgid "enabled"
msgstr "deaktivert"
-#: dnsmasq.c:550
+#: dnsmasq.c:514
msgid "secure mode"
msgstr ""
-#: dnsmasq.c:576
+#: dnsmasq.c:540
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:718
+#: dnsmasq.c:682
msgid "connected to system DBus"
msgstr "tilkoblet til system DBus"
-#: dnsmasq.c:813
+#: dnsmasq.c:806
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
-#: dnsmasq.c:816
+#: dnsmasq.c:809
#, fuzzy, c-format
msgid "failed to create helper: %s"
msgstr "feilet å lese %s: %s"
-#: dnsmasq.c:819
+#: dnsmasq.c:812
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
-#: dnsmasq.c:823
+#: dnsmasq.c:815
#, fuzzy, c-format
msgid "failed to change user-id to %s: %s"
msgstr "feilet å laste navn fra %s: %s"
-#: dnsmasq.c:828
+#: dnsmasq.c:818
#, fuzzy, c-format
msgid "failed to change group-id to %s: %s"
msgstr "feilet å laste navn fra %s: %s"
-#: dnsmasq.c:831
+#: dnsmasq.c:821
#, fuzzy, c-format
msgid "failed to open pidfile %s: %s"
msgstr "feilet å lese %s: %s"
-#: dnsmasq.c:834
+#: dnsmasq.c:824
#, fuzzy, c-format
-msgid "cannot open %s: %s"
+msgid "cannot open log %s: %s"
msgstr "kan ikke åpne %s:%s"
-#: dnsmasq.c:889
+#: dnsmasq.c:827
+#, fuzzy, c-format
+msgid "failed to load Lua script: %s"
+msgstr "feilet å laste %s: %s"
+
+#: dnsmasq.c:886
#, c-format
-msgid "child process killed by signal %d"
+msgid "script process killed by signal %d"
msgstr ""
-#: dnsmasq.c:893
+#: dnsmasq.c:890
#, c-format
-msgid "child process exited with status %d"
+msgid "script process exited with status %d"
msgstr ""
-#: dnsmasq.c:897
+#: dnsmasq.c:894
#, fuzzy, c-format
msgid "failed to execute %s: %s"
msgstr "feilet å få tilgang til %s: %s"
-#: dnsmasq.c:941
+#: dnsmasq.c:939
msgid "exiting on receipt of SIGTERM"
msgstr "avslutter etter mottak av SIGTERM"
-#: dnsmasq.c:969
+#: dnsmasq.c:967
#, fuzzy, c-format
msgid "failed to access %s: %s"
msgstr "feilet å få tilgang til %s: %s"
-#: dnsmasq.c:999
+#: dnsmasq.c:997
#, c-format
msgid "reading %s"
msgstr "leser %s"
-#: dnsmasq.c:1010
+#: dnsmasq.c:1008
#, fuzzy, c-format
msgid "no servers found in %s, will retry"
msgstr "intet søke direktiv funnet i %s"
-#: dhcp.c:39
+#: dhcp.c:49
#, c-format
msgid "cannot create DHCP socket: %s"
msgstr "kan ikke lage DHCP socket: %s"
-#: dhcp.c:51
+#: dhcp.c:64
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "feilet å sette opsjoner på DHCP socket: %s"
-#: dhcp.c:64
+#: dhcp.c:77
#, fuzzy, c-format
msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
msgstr "feilet å sette SO_REUSEADDR på DHCP socket: %s"
-#: dhcp.c:76
+#: dhcp.c:89
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "feilet å binde DHCP tjener socket: %s"
-#: dhcp.c:102
+#: dhcp.c:115
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "kan ikke lage ICMP raw socket: %s"
-#: dhcp.c:278
+#: dhcp.c:264
+#, fuzzy, c-format
+msgid "unknown interface %s in bridge-interface"
+msgstr "ukjent tilknytning (interface) %s"
+
+#: dhcp.c:289
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr ""
-#: dhcp.c:442
+#: dhcp.c:504
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "DHCP område %s -- %s er ikke konsistent med nettmaske %s"
-#: dhcp.c:861
+#: dhcp.c:923
#, c-format
msgid "bad line at %s line %d"
msgstr "dårlig linje ved %s linje %d"
-#: dhcp.c:904
+#: dhcp.c:966
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr ""
-#: dhcp.c:987
+#: dhcp.c:1049
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
-#: dhcp.c:990
+#: dhcp.c:1052
#, fuzzy, c-format
msgid "duplicate IP address %s in %s."
msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
-#: dhcp.c:1033
+#: dhcp.c:1095
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:1038
+#: dhcp.c:1100
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "dubliserte IP adresser i %s (%s) i dhcp-config direktiv"
-#: lease.c:67
+#: lease.c:70
#, fuzzy, c-format
msgid "cannot open or create lease file %s: %s"
msgstr "kan ikke åpne eller lage leie fil: %s"
-#: lease.c:93
+#: lease.c:116
msgid "too many stored leases"
msgstr "for mange lagrede leier"
-#: lease.c:129
+#: lease.c:173
#, fuzzy, c-format
msgid "cannot run lease-init script %s: %s"
msgstr "kan ikke lese %s: %s"
-#: lease.c:135
+#: lease.c:179
#, c-format
msgid "lease-init script returned exit code %s"
msgstr ""
-#: lease.c:235
+#: lease.c:325
#, fuzzy, c-format
msgid "failed to write %s: %s (retry in %us)"
msgstr "feilet å lese %s: %s"
@@ -1292,19 +1310,19 @@ msgstr ""
msgid "disabled"
msgstr "deaktivert"
-#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
+#: rfc2131.c:428 rfc2131.c:944 rfc2131.c:1336
msgid "ignored"
msgstr "oversett"
-#: rfc2131.c:443 rfc2131.c:1183
+#: rfc2131.c:443 rfc2131.c:1182
msgid "address in use"
msgstr "adresse i bruk"
-#: rfc2131.c:457 rfc2131.c:999
+#: rfc2131.c:457 rfc2131.c:998
msgid "no address available"
msgstr "ingen adresse tilgjengelig"
-#: rfc2131.c:464 rfc2131.c:1146
+#: rfc2131.c:464 rfc2131.c:1145
msgid "wrong network"
msgstr "galt nettverk"
@@ -1312,146 +1330,146 @@ msgstr "galt nettverk"
msgid "no address configured"
msgstr "ingen adresse konfigurert"
-#: rfc2131.c:485 rfc2131.c:1196
+#: rfc2131.c:485 rfc2131.c:1195
msgid "no leases left"
msgstr "ingen leier igjen"
-#: rfc2131.c:570
+#: rfc2131.c:569
#, c-format
msgid "%u client provides name: %s"
msgstr ""
-#: rfc2131.c:725
+#: rfc2131.c:724
#, fuzzy, c-format
msgid "%u vendor class: %s"
msgstr "DBus feil: %s"
-#: rfc2131.c:727
+#: rfc2131.c:726
#, fuzzy, c-format
msgid "%u user class: %s"
msgstr "DBus feil: %s"
-#: rfc2131.c:786
+#: rfc2131.c:785
msgid "PXE BIS not supported"
msgstr ""
-#: rfc2131.c:915
+#: rfc2131.c:914
#, fuzzy, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "deaktiverer DHCP statisk adresse %s"
-#: rfc2131.c:936
+#: rfc2131.c:935
msgid "unknown lease"
msgstr "ukjent leie"
-#: rfc2131.c:968
+#: rfc2131.c:967
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:978
+#: rfc2131.c:977
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:981
+#: rfc2131.c:980
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:997 rfc2131.c:1189
+#: rfc2131.c:996 rfc2131.c:1188
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:1084
+#: rfc2131.c:1083
msgid "wrong server-ID"
msgstr ""
-#: rfc2131.c:1103
+#: rfc2131.c:1102
msgid "wrong address"
msgstr "gal adresse"
-#: rfc2131.c:1121
+#: rfc2131.c:1120
msgid "lease not found"
msgstr "leie ikke funnet"
-#: rfc2131.c:1154
+#: rfc2131.c:1153
msgid "address not available"
msgstr "adresse ikke tilgjengelig"
-#: rfc2131.c:1165
+#: rfc2131.c:1164
msgid "static lease available"
msgstr "statisk leie tilgjengelig"
-#: rfc2131.c:1169
+#: rfc2131.c:1168
msgid "address reserved"
msgstr "adresse reservert"
-#: rfc2131.c:1177
+#: rfc2131.c:1176
#, c-format
msgid "abandoning lease to %s of %s"
msgstr ""
-#: rfc2131.c:1746
+#: rfc2131.c:1745
#, c-format
msgid "%u tags: %s"
msgstr ""
-#: rfc2131.c:1774
+#: rfc2131.c:1773
#, c-format
msgid "%u bootfile name: %s"
msgstr ""
-#: rfc2131.c:1783
+#: rfc2131.c:1782
#, fuzzy, c-format
msgid "%u server name: %s"
msgstr "DBus feil: %s"
-#: rfc2131.c:1791
+#: rfc2131.c:1790
#, fuzzy, c-format
msgid "%u next server: %s"
msgstr "DBus feil: %s"
-#: rfc2131.c:1794
+#: rfc2131.c:1793
#, c-format
msgid "%u broadcast response"
msgstr ""
-#: rfc2131.c:1857
+#: rfc2131.c:1856
#, fuzzy, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr "kan ikke sende DHCP opsjon %d: ikke mer plass i pakken"
-#: rfc2131.c:2097
+#: rfc2131.c:2096
msgid "PXE menu too large"
msgstr ""
-#: rfc2131.c:2253
+#: rfc2131.c:2252
#, c-format
msgid "Ignoring duplicate dhcp-option %d"
msgstr ""
-#: rfc2131.c:2257
+#: rfc2131.c:2256
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr ""
-#: rfc2131.c:2275
+#: rfc2131.c:2274
#, fuzzy, c-format
msgid "%u requested options: %s"
msgstr "kompilerings opsjoner: %s"
-#: rfc2131.c:2550
+#: rfc2131.c:2549
#, c-format
msgid "cannot send RFC3925 option: too many options for enterprise number %d"
msgstr ""
-#: netlink.c:70
+#: netlink.c:71
#, fuzzy, c-format
msgid "cannot create netlink socket: %s"
msgstr "kan ikke binde netlink socket: %s"
-#: netlink.c:289
+#: netlink.c:321
#, fuzzy, c-format
msgid "netlink returns error: %s"
msgstr "DBus feil: %s"
@@ -1468,41 +1486,45 @@ msgstr "setter oppstrøms tjener fra DBus"
msgid "could not register a DBus message handler"
msgstr "kunne ikke registrere en DBus meldingshåndterer"
-#: bpf.c:224
+#: bpf.c:225
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "kan ikke lage DHCP BPF socket: %s"
-#: bpf.c:252
+#: bpf.c:253
#, fuzzy, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "DHCP krav for ikke støttet maskinvare type (%d) mottatt på %s"
-#: tftp.c:286
+#: helper.c:130
+msgid "lease() function missing in Lua script"
+msgstr ""
+
+#: tftp.c:285
msgid "unable to get free port for TFTP"
msgstr ""
-#: tftp.c:301
+#: tftp.c:300
#, c-format
msgid "unsupported request from %s"
msgstr ""
-#: tftp.c:411
+#: tftp.c:410
#, fuzzy, c-format
msgid "file %s not found"
msgstr "leie ikke funnet"
-#: tftp.c:527
+#: tftp.c:525
#, c-format
msgid "error %d %s received from %s"
msgstr ""
-#: tftp.c:559
+#: tftp.c:557
#, fuzzy, c-format
msgid "failed sending %s to %s"
msgstr "feilet å lese %s: %s"
-#: tftp.c:573
+#: tftp.c:571
#, c-format
msgid "sent %s to %s"
msgstr ""
@@ -1512,12 +1534,12 @@ msgstr ""
msgid "overflow: %d log entries lost"
msgstr ""
-#: log.c:267
+#: log.c:268
#, c-format
msgid "log failed: %s"
msgstr ""
-#: log.c:471
+#: log.c:472
msgid "FAILED to start up"
msgstr "FEILET å starte opp"
@@ -1526,6 +1548,21 @@ msgstr "FEILET å starte opp"
msgid "Conntrack connection mark retrieval failed: %s"
msgstr ""
+#: dhcp6.c:42
+#, fuzzy, c-format
+msgid "cannot create DHCPv6 socket: %s"
+msgstr "kan ikke lage DHCP socket: %s"
+
+#: dhcp6.c:53
+#, fuzzy, c-format
+msgid "failed to bind DHCPv6 server socket: %s"
+msgstr "feilet å binde DHCP tjener socket: %s"
+
+#: dhcp6.c:57
+#, fuzzy, c-format
+msgid "failed to join DHCPv6 multicast group: %s"
+msgstr "feilet å binde DHCP tjener socket: %s"
+
#~ msgid "TXT record string too long"
#~ msgstr "TXT post streng for lang"
@@ -1545,10 +1582,6 @@ msgstr ""
#~ msgid "must set exactly one interface on broken systems without IP_RECVIF"
#~ msgstr "må sette nøyaktig et interface på ødelagte systemer uten IP_RECVIF"
-#, fuzzy
-#~ msgid "failed to load %s: %s"
-#~ msgstr "feilet å laste %s: %s"
-
#~ msgid "bad name in %s"
#~ msgstr "dårlig navn i %s"
diff --git a/po/pl.po b/po/pl.po
index 67b094a..8d31148 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -20,61 +20,61 @@ msgstr ""
"X-Generator: Lokalize 1.1\n"
"X-Language: pl_PL\n"
-#: cache.c:761
+#: cache.c:757
#, c-format
msgid "failed to load names from %s: %s"
msgstr "nie potrafię wczytać nazw z %s: %s"
-#: cache.c:795 dhcp.c:874
+#: cache.c:791 dhcp.c:936
#, c-format
msgid "bad address at %s line %d"
msgstr "błędny adres w pliku %s, w linii %d"
-#: cache.c:853 dhcp.c:890
+#: cache.c:849 dhcp.c:952
#, c-format
msgid "bad name at %s line %d"
msgstr "błędna nazwa w pliku %s, w linii %d"
-#: cache.c:860 dhcp.c:965
+#: cache.c:856 dhcp.c:1027
#, c-format
msgid "read %s - %d addresses"
msgstr "wczytałem %s - %d adresów"
-#: cache.c:899
+#: cache.c:895
msgid "cleared cache"
msgstr "wyczyszczono pamięć podręczną"
-#: cache.c:934
+#: cache.c:930
#, c-format
msgid "No IPv4 address found for %s"
msgstr "Nie znalazłem adresu IPv4 komputera %s"
-#: cache.c:975
+#: cache.c:971
#, c-format
msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
msgstr "%s to nazwa CNAME, nie przypisuję jej dzierżawie DHCP %s"
-#: cache.c:981
+#: cache.c:977
#, c-format
msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
msgstr "nazwa %s nie została nadana dzierżawie DHCP %s, ponieważ nazwa istnieje w %s i ma już adres %s"
-#: cache.c:1054
+#: cache.c:1050
#, c-format
msgid "time %lu"
msgstr "czas %lu"
-#: cache.c:1055
+#: cache.c:1051
#, c-format
msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
msgstr "wielkość pamięci podręcznej: %d; %d z %d miejsc aktualnych wpisów użyto ponownie."
-#: cache.c:1057
+#: cache.c:1053
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr "%u zapytań przesłanych dalej, %u odpowiedzi udzielonych samodzielnie"
-#: cache.c:1083
+#: cache.c:1076
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr "serwer %s#%d: %u zapytań wysłanych, %u ponowionych lub nieudanych"
@@ -88,7 +88,7 @@ msgstr "brak możliwości użycia generatora liczb losowych: %s"
msgid "failed to allocate memory"
msgstr "nie udało się przydzielić pamięci"
-#: util.c:227 option.c:579
+#: util.c:227 option.c:585
msgid "could not get memory"
msgstr "nie można dostać pamięci"
@@ -102,461 +102,470 @@ msgstr "błąd podczas próby utworzenia potoku: %s"
msgid "failed to allocate %d bytes"
msgstr "niemożliwość przydzielenia %d bajtów pamięci"
-#: util.c:358
+#: util.c:377
#, c-format
msgid "infinite"
msgstr "nieskończona"
-#: option.c:248
+#: option.c:252
msgid "Specify local address(es) to listen on."
msgstr "Wskazanie adresów, na których należy nasłuchiwać."
-#: option.c:249
+#: option.c:253
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Zwracanie adresu IP dla wszystkich hostów we wskazanych domenach."
-#: option.c:250
+#: option.c:254
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Wyłączenie przekazywania zapytań odwrotnych dla prywatnych zakresów IP."
-#: option.c:251
+#: option.c:255
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Traktowanie adresu IP jako NXDOMAIN (unieważnia ,,Verisign wildcard'')."
-#: option.c:252
+#: option.c:256
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Wskazanie wielkości pamięci podręcznej (domyślnie: %s miejsc)."
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Wskazanie pliku konfiguracyjnego (domyślnie: %s)."
-#: option.c:254
+#: option.c:258
msgid "Do NOT fork into the background: run in debug mode."
msgstr "NIE twórz procesu potomnego w tle: działanie w trybie debugowania."
-#: option.c:255
+#: option.c:259
msgid "Do NOT forward queries with no domain part."
msgstr "Wyłączenie przekazywania zapytań bez podanej części domenowej."
-#: option.c:256
+#: option.c:260
msgid "Return self-pointing MX records for local hosts."
msgstr "Zwracanie samowskazującego rekordu MX dla lokalnych hostów."
-#: option.c:257
+#: option.c:261
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Rozwijanie prostych nazw z /etc/hosts przyrostkiem domenowym."
-#: option.c:258
+#: option.c:262
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Wyłączenie przekazywania pozornych zapytań DNS z komputerów działających pod Windows."
-#: option.c:259
+#: option.c:263
msgid "Enable DHCP in the range given with lease duration."
msgstr "Włączenie serwera DHCP dla wskazanego zakresu adresów."
-#: option.c:260
+#: option.c:264
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Po uruchomieniu zmiana grupy procesu na podaną (domyślnie: %s)."
-#: option.c:261
+#: option.c:265
msgid "Set address or hostname for a specified machine."
msgstr "Ustawienie adresu lub nazwy dla wskazanego komputera."
-#: option.c:262
+#: option.c:266
msgid "Read DHCP host specs from file."
msgstr "Wskazanie pliku z wartościami 'dhcp-host='."
-#: option.c:263
+#: option.c:267
msgid "Read DHCP option specs from file."
msgstr "Wskazanie pliku z wartościami 'dhcp-option='."
-#: option.c:264
+#: option.c:268
msgid "Evaluate conditional tag expression."
msgstr "Warunkowe ustawianie znaczników."
-#: option.c:265
+#: option.c:269
#, c-format
msgid "Do NOT load %s file."
msgstr "NIE wczytywanie pliku %s."
-#: option.c:266
+#: option.c:270
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Wskazanie dodatkowego pliku 'hosts' oprócz %s."
-#: option.c:267
+#: option.c:271
msgid "Specify interface(s) to listen on."
msgstr "Interfejsy, na których nasłuchiwać."
-#: option.c:268
+#: option.c:272
msgid "Specify interface(s) NOT to listen on."
msgstr "Interfejsy, na których NIE nasłuchiwać."
-#: option.c:269
+#: option.c:273
msgid "Map DHCP user class to tag."
msgstr "Przyporządkowanie znacznika w zależności od klasy użytkownika DHCP."
-#: option.c:270
+#: option.c:274
msgid "Map RFC3046 circuit-id to tag."
msgstr "Przyporządkowanie znacznika w zależności od numeru obwodu (w rozumieniu RFC3046)."
-#: option.c:271
+#: option.c:275
msgid "Map RFC3046 remote-id to tag."
msgstr "Przyporządkowanie znacznika w zależności od numeru agenta (w rozumieniu RFC3046)."
-#: option.c:272
+#: option.c:276
msgid "Map RFC3993 subscriber-id to tag."
msgstr "Przyporządkowanie znacznika w zależności od numeru subskrybenta (w rozumieniu RFC3993)."
-#: option.c:273
+#: option.c:277
msgid "Don't do DHCP for hosts with tag set."
msgstr "Wyłączenie DHCP dla hostów z określonym znacznikiem."
-#: option.c:274
+#: option.c:278
msgid "Force broadcast replies for hosts with tag set."
msgstr "Wymuszenie odpowiedzi w trybie rozgłoszeniowym dla hostów z określonym znacznikiem."
-#: option.c:275
+#: option.c:279
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "NIE twórz procesu potomnego w tle i NIE włączaj trybu debugowania."
-#: option.c:276
+#: option.c:280
msgid "Assume we are the only DHCP server on the local network."
msgstr "Zakładanie, że jesteśmy jedynym serwerem DHCP w sieci lokalnej."
-#: option.c:277
+#: option.c:281
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Ścieżka przechowywania pliku dzierżaw DHCP (domyślnie: %s)."
-#: option.c:278
+#: option.c:282
msgid "Return MX records for local hosts."
msgstr "Włączenie zwracania rekordu MX dla hostów lokalnych."
-#: option.c:279
+#: option.c:283
msgid "Specify an MX record."
msgstr "Specyfikacja rekordu MX."
-#: option.c:280
+#: option.c:284
msgid "Specify BOOTP options to DHCP server."
msgstr "Określenie opcji BOOTP serwera DHCP."
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "Wyłączenie obserwowania pliku %s; ponowne odczytywanie tylko po odebraniu sygnału SIGHUP."
-#: option.c:282
+#: option.c:286
msgid "Do NOT cache failed search results."
msgstr "Wyłączenie przechowywania w pamięci podręcznej wyników nieudanych wyszukiwań."
-#: option.c:283
+#: option.c:287
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Odpytywanie serwerów nazw w kolejności ich wystąpienia w %s."
-#: option.c:284
+#: option.c:288
msgid "Specify options to be sent to DHCP clients."
msgstr "Specyfikacja opcji wysyłanej do klientów DHCP."
-#: option.c:285
+#: option.c:289
msgid "DHCP option sent even if the client does not request it."
msgstr "Opcja DHCP wysyłana nawet jeżeli klient o nią nie prosi."
-#: option.c:286
+#: option.c:290
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Wskazanie portu do nasłuchiwania zapytań DNS (domyślnie: 53)."
-#: option.c:287
+#: option.c:291
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Maksymalna obsługiwana wielkość pakietu EDNS.0 (domyślnie: %s)."
-#: option.c:288
+#: option.c:292
msgid "Log DNS queries."
msgstr "Włączenie spisywania zapytań DNS do logu."
-#: option.c:289
+#: option.c:293
msgid "Force the originating port for upstream DNS queries."
msgstr "Wymuszenie użycia wskazanego portu UDP do odpytywania nadrzędnych serwerów DNS i odbierania od nich odpowiedzi."
-#: option.c:290
+#: option.c:294
msgid "Do NOT read resolv.conf."
msgstr "Wyłączenie czytania pliku resolv.conf."
-#: option.c:291
+#: option.c:295
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Wskazanie położenia pliku resolv.conf (domyślnie: %s)."
-#: option.c:292
+#: option.c:296
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Wskazywanie adresów serwerów nazw, opcjonalnie z przypisaniem do domeny."
-#: option.c:293
+#: option.c:297
msgid "Never forward queries to specified domains."
msgstr "Wyłączenie przekazywania zapytań do wskazanych domen."
-#: option.c:294
+#: option.c:298
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Wskazanie domeny dla serwera DHCP."
-#: option.c:295
+#: option.c:299
msgid "Specify default target in an MX record."
msgstr "Określenie domyślnego celu w rekordzie MX."
-#: option.c:296
+#: option.c:300
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr "Określenie (w sekundach) czasu ważności odpowiedzi udzielonych na podstawie /etc/hosts (domyślnie 0)."
-#: option.c:297
+#: option.c:301
msgid "Specify time-to-live in seconds for negative caching."
msgstr "Określenie (w sekundach) czasu ważności negatywnych odpowiedzi."
-#: option.c:298
+#: option.c:302
msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
msgstr "Ograniczenie maksymalnego czasu ważności odpowiedzi (TTL) podawanego klientom [w sekundach]."
-#: option.c:299
+#: option.c:303
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Zmiana użytkownika procesu na wskazanego (po uruchomieniu, domyślnie: %s)."
-#: option.c:300
+#: option.c:304
msgid "Map DHCP vendor class to tag."
msgstr "Przyporządkowanie znacznika w zależności od typu klienta DHCP."
-#: option.c:301
+#: option.c:305
msgid "Display dnsmasq version and copyright information."
msgstr "Wydrukowanie informacji o programie i ochronie praw autorskich."
-#: option.c:302
+#: option.c:306
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Tłumaczenie adresów IPv4 z serwerów nadrzędnych."
-#: option.c:303
+#: option.c:307
msgid "Specify a SRV record."
msgstr "Określenie rekordu SRV."
-#: option.c:304
+#: option.c:308
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr "Wyświetla ten komunikat. Użyj '--help dhcp' chcąc przejrzeć listę opcji DHCP (dhcp-option=xxx,...)."
-#: option.c:305
+#: option.c:309
#, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr "Określenie ścieżki do pliku PID (domyślnie: %s)."
-#: option.c:306
+#: option.c:310
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Maksymalna liczba dzierżaw DHCP (domyślnie: %s)."
-#: option.c:307
+#: option.c:311
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr "Uzależnienie odpowiedzi DNS od interfejsu, na którym odebrano zapytanie (wygodne dla serwerów kilku podsieci z różnymi adresami w /etc/hosts)."
-#: option.c:308
+#: option.c:312
msgid "Specify TXT DNS record."
msgstr "Specyfikacja rekordu DNS TXT."
-#: option.c:309
+#: option.c:313
msgid "Specify PTR DNS record."
msgstr "Specyfikacja rekordu DNS PTR."
-#: option.c:310
+#: option.c:314
msgid "Give DNS name to IPv4 address of interface."
msgstr "Zwraca nazwÄ™ domenowÄ… powiÄ…zanÄ… z adresem interfejsu sieciowego."
-#: option.c:311
+#: option.c:315
msgid "Bind only to interfaces in use."
msgstr "Nasłuchiwanie tylko na wykorzystywanych interfejsach (umożliwia uruchomienie osobnych serwerów dla różnych kart)."
-#: option.c:312
+#: option.c:316
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Wczytanie przyporządkowań adresów z %s."
-#: option.c:313
+#: option.c:317
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Włączenie używania interfejsu DBus do informowania o zmianach konfiguracji."
-#: option.c:314
+#: option.c:318
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Uruchomienie na wskazanym interfejsie tylko DNS-a, bez usług DHCP i TFTP."
-#: option.c:315
+#: option.c:319
msgid "Enable dynamic address allocation for bootp."
msgstr "Włączenie dynamicznego przydzielania adresów dla klientów BOOTP."
-#: option.c:316
+#: option.c:320
msgid "Map MAC address (with wildcards) to option set."
msgstr "Przyporządkowanie znacznika w zależności od adresu MAC (można używać uogólnień: *)."
-#: option.c:317
+#: option.c:321
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr "Traktowanie żądań DHCP odebranych na interfejsach alias, ..., jako odebranych na iface."
-#: option.c:318
+#: option.c:322
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr "Pominięcie sprawdzania za pomocą ICMP niezajętości adresu przed jego wydzierżawieniem."
-#: option.c:319
+#: option.c:323
msgid "Script to run on DHCP lease creation and destruction."
msgstr "Wskazanie skryptu uruchamianego w przypadku wydzierżawienia adresu lub wygaśnięcia dzierżawy."
-#: option.c:320
+#: option.c:324
msgid "Read configuration from all the files in this directory."
msgstr "Wczytanie wszystkich plików ze wskazanego katalogu jako konfiguracyjnych."
-#: option.c:321
+#: option.c:325
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr "Wskazanie kanału syslog-a do którego mają trafiać komunikaty (domyślnie: DAEMON)"
-#: option.c:322
+#: option.c:326
msgid "Do not use leasefile."
msgstr "Nieużywanie bazy dzierżaw."
-#: option.c:323
+#: option.c:327
#, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr "Maksymalna liczba jednocześnie obsługiwanych zapytań DNS (domyślnie: %s)"
-#: option.c:324
+#: option.c:328
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr "Czyszczenie pamięci podręcznej serwera nazw w przypadku ponownego odczytu %s."
-#: option.c:325
+#: option.c:329
msgid "Ignore hostnames provided by DHCP clients."
msgstr "Nie zwracanie uwagi na nazwę podawaną przez klienta w przypadku dopasowania wszystkich wymienionych znaczników."
-#: option.c:326
+#: option.c:330
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr "Wyłączenie oszczędzania miejsca w pakiecie DHCP przez przesuwanie pól servername i filename do opcji DHCP. Wymusza prostszy tryb budowy pakietu rozwiązując problemy z nieprzystosowanymi klientami DHCP."
-#: option.c:327
+#: option.c:331
msgid "Enable integrated read-only TFTP server."
msgstr "Włączenie wbudowanego serwera TFTP (tylko do wysyłania)."
-#: option.c:328
+#: option.c:332
msgid "Export files by TFTP only from the specified subtree."
msgstr "Ograniczenie działania serwera TFTP do wskazanego katalogu i podkatalogów. Nazwy z .. są odrzucane, / odnosi się do wskazanego katalogu."
-#: option.c:329
+#: option.c:333
msgid "Add client IP address to tftp-root."
msgstr "Doklejanie adresu IP klienta do głównego katalogu TFTP. Jeżeli wynikowy katalog nie istnieje, nadal wykorzystuje się tftp-root."
-#: option.c:330
+#: option.c:334
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr "Ograniczenie dostępu do plików przez TFTP do tych, których właścicielem jest użytkownik uruchamiający dnsmasq-a."
-#: option.c:331
+#: option.c:335
#, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr "Maksymalna liczba jednocześnie obsługiwanych połączeń TFTP (domyślnie %s)."
-#: option.c:332
+#: option.c:336
msgid "Disable the TFTP blocksize extension."
msgstr "Wyłączenie możliwości negocjowania wielkości bloku dla przesyłów przez TFTP."
-#: option.c:333
+#: option.c:337
msgid "Ephemeral port range for use by TFTP transfers."
msgstr "Wskazanie zakresu portów do użytku TFTP."
-#: option.c:334
+#: option.c:338
msgid "Extra logging for DHCP."
msgstr "WÅ‚Ä…czenie spisywania w logu operacji DHCP."
-#: option.c:335
+#: option.c:339
msgid "Enable async. logging; optionally set queue length."
msgstr "Włączenie asynchronicznego zapisywania do logu z ewentualnym wskazaniem długości kolejki."
-#: option.c:336
+#: option.c:340
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr "Odfiltrowywanie adresów wskazujących na komputery w sieciach wewnętrznych spośród odpowiedzi od zewnętrznych serwerów DNS."
-#: option.c:337
+#: option.c:341
msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
msgstr "Zezwolenie na przekazywanie odpowiedzi w klasie 127.0.0.0/8. Dla serwerów RBL."
-#: option.c:338
+#: option.c:342
msgid "Inhibit DNS-rebind protection on this domain."
msgstr "Dezaktywacja zabezpieczenia przed atakami DNS-rebind dla wskazanych domen."
-#: option.c:339
+#: option.c:343
msgid "Always perform DNS queries to all servers."
msgstr "Jednoczesne odpytywanie wszystkich serwerów nadrzędnych; klientowi przekazywana jest pierwsza odpowiedź."
-#: option.c:340
+#: option.c:344
msgid "Set tag if client includes matching option in request."
msgstr "Ustawienie znacznika jeżeli w żądaniu DHCP pojawi się wskazana opcja, ewentualnie o konkretnej wartości."
-#: option.c:341
+#: option.c:345
msgid "Use alternative ports for DHCP."
msgstr "Użycie alternatywnych portów dla usługi DHCP."
-#: option.c:342
+#: option.c:346
msgid "Run lease-change script as this user."
msgstr "Uruchamianie skryptu dhcp-script jako wskazany użytkownik."
-#: option.c:343
+#: option.c:347
msgid "Specify NAPTR DNS record."
msgstr "Specyfikacja rekordu DNS NAPTR."
-#: option.c:344
+#: option.c:348
msgid "Specify lowest port available for DNS query transmission."
msgstr "Ustawienie dolnej granicy numerów portów do przesyłania zapytań DNS."
-#: option.c:345
+#: option.c:349
msgid "Use only fully qualified domain names for DHCP clients."
msgstr "Przechowywanie w serwerze DNS dnsmasq-a tylko w pełni kwalifikowanych nazw zgłaszanych przez klientów DHCP."
-#: option.c:346
+#: option.c:350
msgid "Generate hostnames based on MAC address for nameless clients."
msgstr "Generowanie nazw na podstawie MAC-adresów dla klientów bez nazwy."
-#: option.c:347
+#: option.c:351
msgid "Use these DHCP relays as full proxies."
msgstr "Traktowanie wskazanych serwerów pośredniczących DHCP jako działających w trybie \"pełnomocnika\" (full-proxy)."
-#: option.c:348
+#: option.c:352
msgid "Specify alias name for LOCAL DNS name."
msgstr "Wskazanie synonimu nazwy komputera lokalnego - znanego z /etc/hosts albo z DHCP."
-#: option.c:349
+#: option.c:353
msgid "Prompt to send to PXE clients."
msgstr "Zgłoszenie wysyłane klientom PXE."
-#: option.c:350
+#: option.c:354
msgid "Boot service for PXE menu."
msgstr "Składnik menu PXE (--> man)."
-#: option.c:351
+#: option.c:355
msgid "Check configuration syntax."
msgstr "Sprawdzenie składni."
-#: option.c:352
+#: option.c:356
msgid "Add requestor's MAC address to forwarded DNS queries."
msgstr "Przekazywanie MAC-adresu komputera pytajÄ…cego w ruchu wychodzÄ…cym DNS."
-#: option.c:353
+#: option.c:357
msgid "Proxy DNSSEC validation results from upstream nameservers."
msgstr "Przekazywanie wyników weryfikacji DNSSEC z serwerów nadrzędnych."
-#: option.c:354
+#: option.c:358
msgid "Attempt to allocate sequential IP addresses to DHCP clients."
msgstr "Zmiana sposobu przydzielania adresów IP na sekwencyjny."
-#: option.c:355
+#: option.c:359
msgid "Copy connection-track mark from queries to upstream connections."
msgstr "Zachowanie znacznika połączenia z odebranego zapytania DNS w ruchu zewnętrznym."
-#: option.c:644
+#: option.c:360
+msgid "Allow DHCP clients to do their own DDNS updates."
+msgstr ""
+
+#: option.c:361
+#, fuzzy
+msgid "Specify path to Lua script (no default)."
+msgstr "Określenie ścieżki do pliku PID (domyślnie: %s)."
+
+#: option.c:650
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -565,232 +574,237 @@ msgstr ""
"Użycie: dnsmasq [opcje]\n"
"\n"
-#: option.c:646
+#: option.c:652
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "W tym systemie w linii poleceń można używać wyłącznie jednoliterowych opcji.\n"
-#: option.c:648
+#: option.c:654
#, c-format
msgid "Valid options are:\n"
msgstr "Dostępne opcje:\n"
-#: option.c:689
+#: option.c:695
#, c-format
msgid "Known DHCP options:\n"
msgstr "Znane opcje DHCP:\n"
-#: option.c:804
+#: option.c:810
msgid "bad dhcp-option"
msgstr "błąd w dhcp-option"
-#: option.c:866
+#: option.c:872
msgid "bad IP address"
msgstr "zły adres IP"
-#: option.c:974
+#: option.c:980
msgid "bad domain in dhcp-option"
msgstr "nieprawidłowa nazwa domeny w dhcp-option"
-#: option.c:1040
+#: option.c:1046
msgid "dhcp-option too long"
msgstr "zbyt długa dhcp-option (>255 znaków)"
-#: option.c:1049
+#: option.c:1055
msgid "illegal dhcp-match"
msgstr "niedopuszczalne dhcp-match"
-#: option.c:1093
+#: option.c:1099
msgid "illegal repeated flag"
msgstr "wielokrotne użycie opcji niedozwolone (pojawiła się wcześniej w linii poleceń)"
-#: option.c:1101
+#: option.c:1107
msgid "illegal repeated keyword"
msgstr "wielokrotne użycie opcji niedozwolone (pojawiła się wsześniej w pliku konfiguracyjnym)"
-#: option.c:1153 option.c:3062
+#: option.c:1159 option.c:3077
#, c-format
msgid "cannot access directory %s: %s"
msgstr "brak dostępu do katalogu %s: %s"
-#: option.c:1184 tftp.c:465
+#: option.c:1190 tftp.c:464
#, c-format
msgid "cannot access %s: %s"
msgstr "brak dostępu do %s: %s"
-#: option.c:1213
+#: option.c:1219
msgid "setting log facility is not possible under Android"
msgstr "zmiana log-facility w systemie Android nie jest możliwa"
-#: option.c:1222
+#: option.c:1228
msgid "bad log facility"
msgstr "nierozpoznany znacznik logów"
-#: option.c:1271
+#: option.c:1277
msgid "bad MX preference"
msgstr "nieprawidłowa wartość preferencji MX"
-#: option.c:1276
+#: option.c:1282
msgid "bad MX name"
msgstr "nieprawidłowa nazwa MX"
-#: option.c:1290
+#: option.c:1296
msgid "bad MX target"
msgstr "nieprawidłowa wartość celu MX"
-#: option.c:1300
+#: option.c:1308
msgid "cannot run scripts under uClinux"
msgstr "w uClinuksie nie ma możliwości uruchamiania skryptów"
-#: option.c:1302
+#: option.c:1310
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr "żeby mieć możliwość używania skryptów wywoływanych przy zmianie dzierżawy, przekompiluj dnsmasq-a z włączoną flagą HAVE_SCRIPT"
-#: option.c:1607 option.c:1611
+#: option.c:1314
+#, fuzzy
+msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts"
+msgstr "żeby mieć możliwość używania skryptów wywoływanych przy zmianie dzierżawy, przekompiluj dnsmasq-a z włączoną flagą HAVE_SCRIPT"
+
+#: option.c:1622 option.c:1626
msgid "bad port"
msgstr "nieprawidłowy numer portu"
-#: option.c:1634 option.c:1665
+#: option.c:1649 option.c:1680
msgid "interface binding not supported"
msgstr "nie ma możliwości dowiązywania do interfejsu"
-#: option.c:1645 option.c:2614
+#: option.c:1660 option.c:2629
msgid "bad interface name"
msgstr "nieprawidłowa nazwa interfejsu"
-#: option.c:1810
+#: option.c:1825
msgid "bad port range"
msgstr "nieprawidłowy zakres numerów portów"
-#: option.c:1827
+#: option.c:1842
msgid "bad bridge-interface"
msgstr "nieprawidłowa nazwa urządzenia w bridge-interface"
-#: option.c:1870
+#: option.c:1885
msgid "bad dhcp-range"
msgstr "nieprawidłowy zakres dhcp-range"
-#: option.c:1898
+#: option.c:1913
msgid "only one tag allowed"
msgstr "można wskazać tylko jeden znacznik sieci"
-#: option.c:1945
+#: option.c:1960
msgid "inconsistent DHCP range"
msgstr "niespójny zakres adresów DHCP"
-#: option.c:2039 option.c:2067
+#: option.c:2054 option.c:2082
msgid "bad hex constant"
msgstr "zapis niezgodny z formatem szesnastkowym"
-#: option.c:2061
+#: option.c:2076
msgid "cannot match tags in --dhcp-host"
msgstr "--dhcp-host nie dopuszcza dopasowywania na podstawie znaczników"
-#: option.c:2129
+#: option.c:2144
msgid "bad DHCP host name"
msgstr "niedopuszczalna nazwa komputera w dhcp-host"
-#: option.c:2210
+#: option.c:2225
msgid "bad tag-if"
msgstr "nieprawidłowa składnia 'tag-if'"
-#: option.c:2499 option.c:2784
+#: option.c:2514 option.c:2799
msgid "invalid port number"
msgstr "nieprawidłowy numer portu"
-#: option.c:2561
+#: option.c:2576
msgid "bad dhcp-proxy address"
msgstr "zły adres dhcp-proxy"
-#: option.c:2601
+#: option.c:2616
msgid "invalid alias range"
msgstr "nieprawidłowy zakres adresów w --alias"
-#: option.c:2639
+#: option.c:2654
msgid "bad CNAME"
msgstr "zła CNAME"
-#: option.c:2644
+#: option.c:2659
msgid "duplicate CNAME"
msgstr "powtórzona CNAME"
-#: option.c:2664
+#: option.c:2679
msgid "bad PTR record"
msgstr "nieprawidłowy zapis rekordu PTR"
-#: option.c:2695
+#: option.c:2710
msgid "bad NAPTR record"
msgstr "nieprawidłowy zapis rekordu NAPTR"
-#: option.c:2727
+#: option.c:2742
msgid "bad TXT record"
msgstr "nieprawidłowy zapis rekordu TXT"
-#: option.c:2770
+#: option.c:2785
msgid "bad SRV record"
msgstr "nieprawidłowy zapis rekordu SRV"
-#: option.c:2777
+#: option.c:2792
msgid "bad SRV target"
msgstr "nieprawidłowa wartość celu SRV"
-#: option.c:2791
+#: option.c:2806
msgid "invalid priority"
msgstr "nieprawidłowy priorytet"
-#: option.c:2798
+#: option.c:2813
msgid "invalid weight"
msgstr "nieprawidłowa waga"
-#: option.c:2817
+#: option.c:2832
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr "nieobsługiwana opcja (sprawdź, czy obsługa DHCP/TFTP/DBus została wkompilowana)"
-#: option.c:2881
+#: option.c:2896
msgid "missing \""
msgstr "brakuje \""
-#: option.c:2940
+#: option.c:2955
msgid "bad option"
msgstr "nieprawidłowa opcja"
-#: option.c:2942
+#: option.c:2957
msgid "extraneous parameter"
msgstr "nadwyżkowy parametr"
-#: option.c:2944
+#: option.c:2959
msgid "missing parameter"
msgstr "brak parametru"
-#: option.c:2948
+#: option.c:2963
msgid "error"
msgstr "błąd"
-#: option.c:2953
+#: option.c:2968
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s w linii %d pliku %%s"
-#: option.c:3017 tftp.c:629
+#: option.c:3032 tftp.c:627
#, c-format
msgid "cannot read %s: %s"
msgstr "błąd odczytu z pliku %s: %s"
-#: option.c:3183 option.c:3219
+#: option.c:3198 option.c:3234
#, c-format
msgid "read %s"
msgstr "przeczytałem %s"
-#: option.c:3271
+#: option.c:3286
msgid "junk found in command line"
msgstr "jakieś śmieci w linii poleceń"
-#: option.c:3301
+#: option.c:3316
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq, wersja %s %s\n"
-#: option.c:3302
+#: option.c:3317
#, c-format
msgid ""
"Compile time options %s\n"
@@ -799,62 +813,62 @@ msgstr ""
"Wkompilowane opcje %s\n"
"\n"
-#: option.c:3303
+#: option.c:3318
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Autor nie daje ŻADNYCH GWARANCJI egzekwowalnych prawnie.\n"
-#: option.c:3304
+#: option.c:3319
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr "Dnsmasq jest wolnym oprogramowaniem, możesz go rozprowadzać\n"
-#: option.c:3305
+#: option.c:3320
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr "na warunkach określonych w GNU General Public Licence, w wersji 2 lub 3.\n"
-#: option.c:3316
+#: option.c:3331
msgid "try --help"
msgstr "spróbuj: --help"
-#: option.c:3318
+#: option.c:3333
msgid "try -w"
msgstr "spróbuj: -w"
-#: option.c:3321
+#: option.c:3336
#, c-format
msgid "bad command line options: %s"
msgstr "nieprawidłowa opcja w linii poleceń %s"
-#: option.c:3362
+#: option.c:3377
#, c-format
msgid "cannot get host-name: %s"
msgstr "nie można pobrać nazwy hosta: %s"
-#: option.c:3390
+#: option.c:3405
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "w trybie no-poll można wskazać najwyżej jeden plik resolv.conf."
-#: option.c:3400
+#: option.c:3415
msgid "must have exactly one resolv.conf to read domain from."
msgstr "musisz mieć dokładnie jeden plik resolv.conf do odczytu domen."
-#: option.c:3403 network.c:845 dhcp.c:823
+#: option.c:3418 network.c:821 dhcp.c:885
#, c-format
msgid "failed to read %s: %s"
msgstr "nie udało się odczytać %s: %s"
-#: option.c:3420
+#: option.c:3435
#, c-format
msgid "no search directive found in %s"
msgstr "brak wytycznych wyszukiwania w %s"
-#: option.c:3441
+#: option.c:3456
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr "w przypadku używania --dhcp-fqdn trzeba wskazać domyślną domenę"
-#: option.c:3445
+#: option.c:3460
msgid "syntax check OK"
msgstr "składnia sprawdzona, jest prawidłowa"
@@ -868,371 +882,376 @@ msgstr "serwer nazw %s odmawia wykonania zapytania rekurencyjnego"
msgid "possible DNS-rebind attack detected: %s"
msgstr "prawdopodobnie wykryto atak DNS-rebind: %s"
-#: network.c:171
-#, c-format
-msgid "unknown interface %s in bridge-interface"
-msgstr "nieznany interfejs %s w bridge-u"
-
-#: network.c:384
+#: network.c:354
#, c-format
msgid "failed to create listening socket for %s: %s"
msgstr "nie udało się otworzyć gniazda %s: %s"
-#: network.c:743
+#: network.c:719
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "błąd przy przyznawaniu nazwy gniazdu serwera %s: %s"
-#: network.c:780
+#: network.c:756
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorowanie serwera nazw %s - interfejs lokalny"
-#: network.c:791
+#: network.c:767
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr "ignorowanie serwera nazw %s - nie można utworzyć/dowiązać gniazda: %s"
-#: network.c:808
+#: network.c:784
msgid "unqualified"
msgstr "niekwalifikowane(-a)"
-#: network.c:808
+#: network.c:784
msgid "names"
msgstr "nazwy"
-#: network.c:810
+#: network.c:786
msgid "default"
msgstr "domyślne"
-#: network.c:812
+#: network.c:788
msgid "domain"
msgstr "domeny"
-#: network.c:815
+#: network.c:791
#, c-format
msgid "using local addresses only for %s %s"
msgstr "używam adresów lokalnych tylko dla %s %s"
-#: network.c:817
+#: network.c:793
#, c-format
msgid "using standard nameservers for %s %s"
msgstr "używam standardowych serwerów nazw dla %s %s"
-#: network.c:819
+#: network.c:795
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "używam serwera nazw %s#%d dla %s %s"
-#: network.c:822
+#: network.c:798
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "używam serwera nazw %s#%d (przez %s)"
-#: network.c:824
+#: network.c:800
#, c-format
msgid "using nameserver %s#%d"
msgstr "używam serwera nazw %s#%d"
-#: dnsmasq.c:152
+#: dnsmasq.c:114
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr "Serwer TFTP nie został wkompilowany -- ustaw HAVE_TFTP w src/config.h"
-#: dnsmasq.c:157
+#: dnsmasq.c:119
msgid "Cannot use --conntrack AND --query-port"
msgstr "--conntrack i --query-port wykluczajÄ… siÄ™ wzajemnie"
-#: dnsmasq.c:160
+#: dnsmasq.c:122
msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
msgstr "Wsparcie dla przekazywania znaczników połączeń (conntrack) nie zostało wkompilowane - ustaw HAVE_CONNTRACK w src/config.h"
-#: dnsmasq.c:165
+#: dnsmasq.c:127
msgid "asychronous logging is not available under Solaris"
msgstr "zapis do logów w trybie asynchronicznym nie jest dostępny w Solarisie"
-#: dnsmasq.c:170
+#: dnsmasq.c:132
msgid "asychronous logging is not available under Android"
msgstr "zapis do logów w trybie asynchronicznym nie jest dostępny w Androidzie"
-#: dnsmasq.c:189
+#: dnsmasq.c:151
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr "błąd podczas tworzenia listy interfejsów sieciowych: %s"
-#: dnsmasq.c:197
+#: dnsmasq.c:159
#, c-format
msgid "unknown interface %s"
msgstr "nieznany interfejs %s"
-#: dnsmasq.c:203
+#: dnsmasq.c:165
#, c-format
msgid "no interface with address %s"
msgstr "brak interfejsu z adresem %s"
-#: dnsmasq.c:219 dnsmasq.c:716
+#: dnsmasq.c:181 dnsmasq.c:680
#, c-format
msgid "DBus error: %s"
msgstr "błąd DBus: %s"
-#: dnsmasq.c:222
+#: dnsmasq.c:184
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "Obsługa DBus nie została wkompilowana -- ustaw HAVE_DBUS w src/config.h"
-#: dnsmasq.c:248
+#: dnsmasq.c:211
#, c-format
msgid "unknown user or group: %s"
msgstr "nieznany użytkownik lub grupa: %s"
-#: dnsmasq.c:303
+#: dnsmasq.c:266
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr "nie potrafię wejść do głównego katalogu: %s"
-#: dnsmasq.c:477
+#: dnsmasq.c:441
#, c-format
msgid "started, version %s DNS disabled"
msgstr "uruchomiony, wersja %s, DNS wyłączony"
-#: dnsmasq.c:479
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s cachesize %d"
msgstr "uruchomiony, wersja %s, %d miejsc w pamięci podręcznej"
-#: dnsmasq.c:481
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cache disabled"
msgstr "uruchomiony, wersja %s, pamięć podręczna wyłączona"
-#: dnsmasq.c:483
+#: dnsmasq.c:447
#, c-format
msgid "compile time options: %s"
msgstr "opcje kompilacji: %s"
-#: dnsmasq.c:489
+#: dnsmasq.c:453
msgid "DBus support enabled: connected to system bus"
msgstr "obsługa DBus włączona, podłączono do serwera DBus"
-#: dnsmasq.c:491
+#: dnsmasq.c:455
msgid "DBus support enabled: bus connection pending"
msgstr "obsługa DBus włączona, trwa podłączanie do serwera DBus"
-#: dnsmasq.c:496
+#: dnsmasq.c:460
#, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr "UWAGA! Nie udało się zmienić użytkownika pliku %s: %s"
-#: dnsmasq.c:500
+#: dnsmasq.c:464
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "ustawiam --bind-interfaces z powodu ograniczeń systemu operacyjnego"
-#: dnsmasq.c:505
+#: dnsmasq.c:469
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "uwaga: interfejs %s nie jest włączony"
-#: dnsmasq.c:510
+#: dnsmasq.c:474
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr "uwaga: ignoruję opcję resolv-file, ponieważ wybrano tryb no-resolv"
-#: dnsmasq.c:513
+#: dnsmasq.c:477
msgid "warning: no upstream servers configured"
msgstr "uwaga: nie wskazano nadrzędnych serwerów DNS"
-#: dnsmasq.c:517
+#: dnsmasq.c:481
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr "włączono asynchroniczny tryb zapisu do logów z kolejką na %d komunikatów"
-#: dnsmasq.c:530
+#: dnsmasq.c:494
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "DHCP: tylko statyczne dzierżawy na %.0s%s, czas dzierżawy %s"
-#: dnsmasq.c:532
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, proxy on subnet %.0s%s%.0s"
msgstr "DHCP: pośrednik na podsieci %.0s%s%.0s"
-#: dnsmasq.c:533
+#: dnsmasq.c:497
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP: zakres IP %s -- %s, czas dzierżawy %s"
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "root is "
msgstr "z głównym katalogiem w "
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "enabled"
msgstr "włączony"
-#: dnsmasq.c:550
+#: dnsmasq.c:514
msgid "secure mode"
msgstr "w trybie bezpiecznym"
-#: dnsmasq.c:576
+#: dnsmasq.c:540
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "ograniczam ilość jednoczesnych przesłań TFTP do %d"
-#: dnsmasq.c:718
+#: dnsmasq.c:682
msgid "connected to system DBus"
msgstr "podłączono do DBus-a"
-#: dnsmasq.c:813
+#: dnsmasq.c:806
#, c-format
msgid "cannot fork into background: %s"
msgstr "nie potrafię przełączyć się do pracy w tle: %s"
-#: dnsmasq.c:816
+#: dnsmasq.c:809
#, c-format
msgid "failed to create helper: %s"
msgstr "nie udało się utworzyć procesu pomocniczego: %s"
-#: dnsmasq.c:819
+#: dnsmasq.c:812
#, c-format
msgid "setting capabilities failed: %s"
msgstr "nie powiodło się ustawianie ograniczeń (capabilities): %s"
-#: dnsmasq.c:823
+#: dnsmasq.c:815
#, c-format
msgid "failed to change user-id to %s: %s"
msgstr "nie udało się zmienić użytkownika procesu na %s: %s"
-#: dnsmasq.c:828
+#: dnsmasq.c:818
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr "nie udało się zmienić grupy procesu na %s: %s"
-#: dnsmasq.c:831
+#: dnsmasq.c:821
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr "nie udało się otworzyć pliku z PID-em %s: %s"
-#: dnsmasq.c:834
-#, c-format
-msgid "cannot open %s: %s"
+#: dnsmasq.c:824
+#, fuzzy, c-format
+msgid "cannot open log %s: %s"
msgstr "nie można otworzyć %s: %s"
-#: dnsmasq.c:889
-#, c-format
-msgid "child process killed by signal %d"
+#: dnsmasq.c:827
+#, fuzzy, c-format
+msgid "failed to load Lua script: %s"
+msgstr "nie udało się odczytać %s: %s"
+
+#: dnsmasq.c:886
+#, fuzzy, c-format
+msgid "script process killed by signal %d"
msgstr "proces potomny zabity sygnałem %d"
-#: dnsmasq.c:893
-#, c-format
-msgid "child process exited with status %d"
+#: dnsmasq.c:890
+#, fuzzy, c-format
+msgid "script process exited with status %d"
msgstr "proces potomny zakończył się z kodem powrotu %d"
-#: dnsmasq.c:897
+#: dnsmasq.c:894
#, c-format
msgid "failed to execute %s: %s"
msgstr "nie udało się uruchomić %s: %s"
-#: dnsmasq.c:941
+#: dnsmasq.c:939
msgid "exiting on receipt of SIGTERM"
msgstr "zakończyłem działanie z powodu odebrania SIGTERM"
-#: dnsmasq.c:969
+#: dnsmasq.c:967
#, c-format
msgid "failed to access %s: %s"
msgstr "brak dostępu do %s: %s"
-#: dnsmasq.c:999
+#: dnsmasq.c:997
#, c-format
msgid "reading %s"
msgstr "czytanie %s"
-#: dnsmasq.c:1010
+#: dnsmasq.c:1008
#, c-format
msgid "no servers found in %s, will retry"
msgstr "w %s nie znalazłem serwerów, spróbuję ponownie później"
-#: dhcp.c:39
+#: dhcp.c:49
#, c-format
msgid "cannot create DHCP socket: %s"
msgstr "nie udało się utworzyć gniazda dla DHCP: %s"
-#: dhcp.c:51
+#: dhcp.c:64
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "błąd podczas ustawiania opcji gniazda DHCP: %s"
-#: dhcp.c:64
+#: dhcp.c:77
#, c-format
msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
msgstr "nie udało się ustawić SO_REUSE{ADDR|PORT} gniazda DHCP: %s"
-#: dhcp.c:76
+#: dhcp.c:89
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "błąd przy przyznawaniu nazwy gniazdu serwera DHCP: %s"
-#: dhcp.c:102
+#: dhcp.c:115
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "nie udało się utworzyć surowego gniazda ICMP: %s."
-#: dhcp.c:278
+#: dhcp.c:264
+#, c-format
+msgid "unknown interface %s in bridge-interface"
+msgstr "nieznany interfejs %s w bridge-u"
+
+#: dhcp.c:289
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr "żądanie DHCP odebrano na interfejsie %s, który nie ma adresu"
-#: dhcp.c:442
+#: dhcp.c:504
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "zakres adresów DHCP %s -- %s jest niespójny z maską sieci %s"
-#: dhcp.c:861
+#: dhcp.c:923
#, c-format
msgid "bad line at %s line %d"
msgstr "zła zawartość pliku %s, w linii %d"
-#: dhcp.c:904
+#: dhcp.c:966
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr "w %s pomijam linię %d -- powtórzona nazwa lub adres IP"
-#: dhcp.c:987
+#: dhcp.c:1049
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "powtórzony adres IP (%s) w parametrze dhcp-config"
-#: dhcp.c:990
+#: dhcp.c:1052
#, c-format
msgid "duplicate IP address %s in %s."
msgstr "powtórzony adres IP (%s) w pliku %s"
-#: dhcp.c:1033
+#: dhcp.c:1095
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr "do komputera o nazwie %s pasuje więcej niż jeden adres, w odpowiedzi DHCP wysyłam %s"
-#: dhcp.c:1038
+#: dhcp.c:1100
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "powtórzenie adresu IP %s (%s) w opcji dhcp-config"
-#: lease.c:67
+#: lease.c:70
#, c-format
msgid "cannot open or create lease file %s: %s"
msgstr "nie potrafię otworzyć albo utworzyć pliku dzierżaw %s: %s"
-#: lease.c:93
+#: lease.c:116
msgid "too many stored leases"
msgstr "zbyt duża ilość zapisanych dzierżaw"
-#: lease.c:129
+#: lease.c:173
#, c-format
msgid "cannot run lease-init script %s: %s"
msgstr "nie potrafię uruchomić skryptu %s: %s"
-#: lease.c:135
+#: lease.c:179
#, c-format
msgid "lease-init script returned exit code %s"
msgstr "skrypt zakończył się z kodem powrotu %s"
-#: lease.c:235
+#: lease.c:325
#, c-format
msgid "failed to write %s: %s (retry in %us)"
msgstr "błąd zapisu do %s: %s (spróbuję ponownie za %us)"
@@ -1264,19 +1283,19 @@ msgstr "%u dostępny zakres adresów DHCP: %s -- %s"
msgid "disabled"
msgstr "wyłączony(a)"
-#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
+#: rfc2131.c:428 rfc2131.c:944 rfc2131.c:1336
msgid "ignored"
msgstr "ignorujÄ™"
-#: rfc2131.c:443 rfc2131.c:1183
+#: rfc2131.c:443 rfc2131.c:1182
msgid "address in use"
msgstr "adres jest w użyciu"
-#: rfc2131.c:457 rfc2131.c:999
+#: rfc2131.c:457 rfc2131.c:998
msgid "no address available"
msgstr "brak dostępnego adresu"
-#: rfc2131.c:464 rfc2131.c:1146
+#: rfc2131.c:464 rfc2131.c:1145
msgid "wrong network"
msgstr "nieprawidłowa sieć"
@@ -1284,146 +1303,146 @@ msgstr "nieprawidłowa sieć"
msgid "no address configured"
msgstr "brak skonfigurowanego adresu"
-#: rfc2131.c:485 rfc2131.c:1196
+#: rfc2131.c:485 rfc2131.c:1195
msgid "no leases left"
msgstr "brak wolnych dzierżaw"
-#: rfc2131.c:570
+#: rfc2131.c:569
#, c-format
msgid "%u client provides name: %s"
msgstr "klient %u przedstawia siÄ™ jako %s"
-#: rfc2131.c:725
+#: rfc2131.c:724
#, c-format
msgid "%u vendor class: %s"
msgstr "%u klasa dostawcy: %s"
-#: rfc2131.c:727
+#: rfc2131.c:726
#, c-format
msgid "%u user class: %s"
msgstr "%u klasa użytkownika: %s"
-#: rfc2131.c:786
+#: rfc2131.c:785
msgid "PXE BIS not supported"
msgstr "PXE BIS nie jest obsługiwane"
-#: rfc2131.c:915
+#: rfc2131.c:914
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "wyłączam statyczne przypisanie adresu %s dla %s"
-#: rfc2131.c:936
+#: rfc2131.c:935
msgid "unknown lease"
msgstr "nieznana dzierżawa"
-#: rfc2131.c:968
+#: rfc2131.c:967
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr "nie proponuję zakładanego w konfiguracji adresu %s, bo jest on już wydzierżawiony komputerowi %s"
-#: rfc2131.c:978
+#: rfc2131.c:977
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr "nie proponuję zakładanego w konfiguracji adresu %s, bo używa go któryś z serwerów"
-#: rfc2131.c:981
+#: rfc2131.c:980
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr "nie proponuję zakładanego w konfiguracji adresu %s, bo już poprzednio został odrzucony"
-#: rfc2131.c:997 rfc2131.c:1189
+#: rfc2131.c:996 rfc2131.c:1188
msgid "no unique-id"
msgstr "brak unikalnego id"
-#: rfc2131.c:1084
+#: rfc2131.c:1083
msgid "wrong server-ID"
msgstr "nieprawidłowy identyfikator serwera (server-ID)"
-#: rfc2131.c:1103
+#: rfc2131.c:1102
msgid "wrong address"
msgstr "błędny adres"
-#: rfc2131.c:1121
+#: rfc2131.c:1120
msgid "lease not found"
msgstr "dzierżawa nieznaleziona"
-#: rfc2131.c:1154
+#: rfc2131.c:1153
msgid "address not available"
msgstr "adres niedostępny"
-#: rfc2131.c:1165
+#: rfc2131.c:1164
msgid "static lease available"
msgstr "dostępna statyczna dzierżawa"
-#: rfc2131.c:1169
+#: rfc2131.c:1168
msgid "address reserved"
msgstr "adres zarezerwowany"
-#: rfc2131.c:1177
+#: rfc2131.c:1176
#, c-format
msgid "abandoning lease to %s of %s"
msgstr "porzucam przypisanie do %s nazwy %s"
-#: rfc2131.c:1746
+#: rfc2131.c:1745
#, c-format
msgid "%u tags: %s"
msgstr "%u cechy: %s"
-#: rfc2131.c:1774
+#: rfc2131.c:1773
#, c-format
msgid "%u bootfile name: %s"
msgstr "%u nazwa pliku bootowania: %s"
-#: rfc2131.c:1783
+#: rfc2131.c:1782
#, c-format
msgid "%u server name: %s"
msgstr "%u nazwa serwera: %s"
-#: rfc2131.c:1791
+#: rfc2131.c:1790
#, c-format
msgid "%u next server: %s"
msgstr "%u następny serwer: %s"
-#: rfc2131.c:1794
+#: rfc2131.c:1793
#, c-format
msgid "%u broadcast response"
msgstr "%u odpowiedź rozgłoszeniowa"
-#: rfc2131.c:1857
+#: rfc2131.c:1856
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr "nie mam możliwości wysłania opcji %d DHCP/BOOTP: niedostateczna ilość miejsca w pakiecie"
-#: rfc2131.c:2097
+#: rfc2131.c:2096
msgid "PXE menu too large"
msgstr "menu PXE zbyt duże"
-#: rfc2131.c:2253
+#: rfc2131.c:2252
#, c-format
msgid "Ignoring duplicate dhcp-option %d"
msgstr "Pomijam powtórzoną dhcp-option %d"
-#: rfc2131.c:2257
+#: rfc2131.c:2256
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr "Nie uwzględniam części domenowej (%s) dla komputera %s"
-#: rfc2131.c:2275
+#: rfc2131.c:2274
#, c-format
msgid "%u requested options: %s"
msgstr "%u zażądano: %s"
-#: rfc2131.c:2550
+#: rfc2131.c:2549
#, c-format
msgid "cannot send RFC3925 option: too many options for enterprise number %d"
msgstr "nie mogę wysłać opcji RFC3925: za długi łańcuch opcji przy numerze %d"
-#: netlink.c:70
+#: netlink.c:71
#, c-format
msgid "cannot create netlink socket: %s"
msgstr "nie potrafię utworzyć połączenia netlink %s"
-#: netlink.c:289
+#: netlink.c:321
#, c-format
msgid "netlink returns error: %s"
msgstr "wystąpił błąd w połączeniu netlink %s"
@@ -1440,41 +1459,45 @@ msgstr "ustawiam adresy serwerów nadrzędnych na podstawie informacji odebranyc
msgid "could not register a DBus message handler"
msgstr "nie można zarejestrować uchwytu DBus"
-#: bpf.c:224
+#: bpf.c:225
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "nie potrafię utworzyć gniazda DHCP BPF: %s"
-#: bpf.c:252
+#: bpf.c:253
#, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "żądanie DHCP od urządzenia nieobsługiwanego typu (%d) odebrano na %s"
-#: tftp.c:286
+#: helper.c:130
+msgid "lease() function missing in Lua script"
+msgstr ""
+
+#: tftp.c:285
msgid "unable to get free port for TFTP"
msgstr "brak wolnego portu dla usługi TFTP"
-#: tftp.c:301
+#: tftp.c:300
#, c-format
msgid "unsupported request from %s"
msgstr "nieobsługiwane żądanie od komputera %s"
-#: tftp.c:411
+#: tftp.c:410
#, c-format
msgid "file %s not found"
msgstr "plik %s nie został znaleziony"
-#: tftp.c:527
+#: tftp.c:525
#, c-format
msgid "error %d %s received from %s"
msgstr "błąd %d %s odebrano od %s"
-#: tftp.c:559
+#: tftp.c:557
#, c-format
msgid "failed sending %s to %s"
msgstr "błąd wysyłania pliku %s do komputera %s"
-#: tftp.c:573
+#: tftp.c:571
#, c-format
msgid "sent %s to %s"
msgstr "plik %s przesłano do %s"
@@ -1484,12 +1507,12 @@ msgstr "plik %s przesłano do %s"
msgid "overflow: %d log entries lost"
msgstr "przepełnienie: stracono %d wpisów do logów"
-#: log.c:267
+#: log.c:268
#, c-format
msgid "log failed: %s"
msgstr "nie udało się zapisać komunikatów do %s"
-#: log.c:471
+#: log.c:472
msgid "FAILED to start up"
msgstr "BÅÄ„D: nie udaÅ‚o siÄ™ uruchomić dnsmasq-a"
@@ -1498,6 +1521,21 @@ msgstr "BÅÄ„D: nie udaÅ‚o siÄ™ uruchomić dnsmasq-a"
msgid "Conntrack connection mark retrieval failed: %s"
msgstr "Nie udało się odcztać znacznika połączenia (conntrack): %s"
+#: dhcp6.c:42
+#, fuzzy, c-format
+msgid "cannot create DHCPv6 socket: %s"
+msgstr "nie udało się utworzyć gniazda dla DHCP: %s"
+
+#: dhcp6.c:53
+#, fuzzy, c-format
+msgid "failed to bind DHCPv6 server socket: %s"
+msgstr "błąd przy przyznawaniu nazwy gniazdu serwera DHCP: %s"
+
+#: dhcp6.c:57
+#, fuzzy, c-format
+msgid "failed to join DHCPv6 multicast group: %s"
+msgstr "błąd przy przyznawaniu nazwy gniazdu serwera DHCP: %s"
+
#~ msgid "only one dhcp-hostsfile allowed"
#~ msgstr "można wskazać tylko jeden plik dhcp-hostsfile"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 30b8c86..dd902de 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -15,61 +15,61 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: cache.c:761
+#: cache.c:757
#, c-format
msgid "failed to load names from %s: %s"
msgstr ""
-#: cache.c:795 dhcp.c:874
+#: cache.c:791 dhcp.c:936
#, c-format
msgid "bad address at %s line %d"
msgstr ""
-#: cache.c:853 dhcp.c:890
+#: cache.c:849 dhcp.c:952
#, c-format
msgid "bad name at %s line %d"
msgstr ""
-#: cache.c:860 dhcp.c:965
+#: cache.c:856 dhcp.c:1027
#, c-format
msgid "read %s - %d addresses"
msgstr ""
-#: cache.c:899
+#: cache.c:895
msgid "cleared cache"
msgstr ""
-#: cache.c:934
+#: cache.c:930
#, c-format
msgid "No IPv4 address found for %s"
msgstr ""
-#: cache.c:975
+#: cache.c:971
#, c-format
msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
msgstr ""
-#: cache.c:981
+#: cache.c:977
#, c-format
msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
msgstr ""
-#: cache.c:1054
+#: cache.c:1050
#, c-format
msgid "time %lu"
msgstr ""
-#: cache.c:1055
+#: cache.c:1051
#, c-format
msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
msgstr ""
-#: cache.c:1057
+#: cache.c:1053
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr ""
-#: cache.c:1083
+#: cache.c:1076
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr ""
@@ -83,7 +83,7 @@ msgstr ""
msgid "failed to allocate memory"
msgstr ""
-#: util.c:227 option.c:579
+#: util.c:227 option.c:585
msgid "could not get memory"
msgstr ""
@@ -97,755 +97,767 @@ msgstr ""
msgid "failed to allocate %d bytes"
msgstr ""
-#: util.c:358
+#: util.c:377
#, c-format
msgid "infinite"
msgstr ""
-#: option.c:248
+#: option.c:252
msgid "Specify local address(es) to listen on."
msgstr ""
-#: option.c:249
+#: option.c:253
msgid "Return ipaddr for all hosts in specified domains."
msgstr ""
-#: option.c:250
+#: option.c:254
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
-#: option.c:251
+#: option.c:255
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr ""
-#: option.c:252
+#: option.c:256
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr ""
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr ""
-#: option.c:254
+#: option.c:258
msgid "Do NOT fork into the background: run in debug mode."
msgstr ""
-#: option.c:255
+#: option.c:259
msgid "Do NOT forward queries with no domain part."
msgstr ""
-#: option.c:256
+#: option.c:260
msgid "Return self-pointing MX records for local hosts."
msgstr ""
-#: option.c:257
+#: option.c:261
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr ""
-#: option.c:258
+#: option.c:262
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr ""
-#: option.c:259
+#: option.c:263
msgid "Enable DHCP in the range given with lease duration."
msgstr ""
-#: option.c:260
+#: option.c:264
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr ""
-#: option.c:261
+#: option.c:265
msgid "Set address or hostname for a specified machine."
msgstr ""
-#: option.c:262
+#: option.c:266
msgid "Read DHCP host specs from file."
msgstr ""
-#: option.c:263
+#: option.c:267
msgid "Read DHCP option specs from file."
msgstr ""
-#: option.c:264
+#: option.c:268
msgid "Evaluate conditional tag expression."
msgstr ""
-#: option.c:265
+#: option.c:269
#, c-format
msgid "Do NOT load %s file."
msgstr ""
-#: option.c:266
+#: option.c:270
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr ""
-#: option.c:267
+#: option.c:271
msgid "Specify interface(s) to listen on."
msgstr ""
-#: option.c:268
+#: option.c:272
msgid "Specify interface(s) NOT to listen on."
msgstr ""
-#: option.c:269
+#: option.c:273
msgid "Map DHCP user class to tag."
msgstr ""
-#: option.c:270
+#: option.c:274
msgid "Map RFC3046 circuit-id to tag."
msgstr ""
-#: option.c:271
+#: option.c:275
msgid "Map RFC3046 remote-id to tag."
msgstr ""
-#: option.c:272
+#: option.c:276
msgid "Map RFC3993 subscriber-id to tag."
msgstr ""
-#: option.c:273
+#: option.c:277
msgid "Don't do DHCP for hosts with tag set."
msgstr ""
-#: option.c:274
+#: option.c:278
msgid "Force broadcast replies for hosts with tag set."
msgstr ""
-#: option.c:275
+#: option.c:279
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr ""
-#: option.c:276
+#: option.c:280
msgid "Assume we are the only DHCP server on the local network."
msgstr ""
-#: option.c:277
+#: option.c:281
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:278
+#: option.c:282
msgid "Return MX records for local hosts."
msgstr ""
-#: option.c:279
+#: option.c:283
msgid "Specify an MX record."
msgstr ""
-#: option.c:280
+#: option.c:284
msgid "Specify BOOTP options to DHCP server."
msgstr ""
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
-#: option.c:282
+#: option.c:286
msgid "Do NOT cache failed search results."
msgstr ""
-#: option.c:283
+#: option.c:287
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr ""
-#: option.c:284
+#: option.c:288
msgid "Specify options to be sent to DHCP clients."
msgstr ""
-#: option.c:285
+#: option.c:289
msgid "DHCP option sent even if the client does not request it."
msgstr ""
-#: option.c:286
+#: option.c:290
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
-#: option.c:287
+#: option.c:291
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
-#: option.c:288
+#: option.c:292
msgid "Log DNS queries."
msgstr ""
-#: option.c:289
+#: option.c:293
msgid "Force the originating port for upstream DNS queries."
msgstr ""
-#: option.c:290
+#: option.c:294
msgid "Do NOT read resolv.conf."
msgstr ""
-#: option.c:291
+#: option.c:295
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr ""
-#: option.c:292
+#: option.c:296
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
-#: option.c:293
+#: option.c:297
msgid "Never forward queries to specified domains."
msgstr ""
-#: option.c:294
+#: option.c:298
msgid "Specify the domain to be assigned in DHCP leases."
msgstr ""
-#: option.c:295
+#: option.c:299
msgid "Specify default target in an MX record."
msgstr ""
-#: option.c:296
+#: option.c:300
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
-#: option.c:297
+#: option.c:301
msgid "Specify time-to-live in seconds for negative caching."
msgstr ""
-#: option.c:298
+#: option.c:302
msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
msgstr ""
-#: option.c:299
+#: option.c:303
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr ""
-#: option.c:300
+#: option.c:304
msgid "Map DHCP vendor class to tag."
msgstr ""
-#: option.c:301
+#: option.c:305
msgid "Display dnsmasq version and copyright information."
msgstr ""
-#: option.c:302
+#: option.c:306
msgid "Translate IPv4 addresses from upstream servers."
msgstr ""
-#: option.c:303
+#: option.c:307
msgid "Specify a SRV record."
msgstr ""
-#: option.c:304
+#: option.c:308
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr ""
-#: option.c:305
+#: option.c:309
#, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr ""
-#: option.c:306
+#: option.c:310
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:307
+#: option.c:311
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
-#: option.c:308
+#: option.c:312
msgid "Specify TXT DNS record."
msgstr ""
-#: option.c:309
+#: option.c:313
msgid "Specify PTR DNS record."
msgstr ""
-#: option.c:310
+#: option.c:314
msgid "Give DNS name to IPv4 address of interface."
msgstr ""
-#: option.c:311
+#: option.c:315
msgid "Bind only to interfaces in use."
msgstr ""
-#: option.c:312
+#: option.c:316
#, c-format
msgid "Read DHCP static host information from %s."
msgstr ""
-#: option.c:313
+#: option.c:317
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr ""
-#: option.c:314
+#: option.c:318
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr ""
-#: option.c:315
+#: option.c:319
msgid "Enable dynamic address allocation for bootp."
msgstr ""
-#: option.c:316
+#: option.c:320
msgid "Map MAC address (with wildcards) to option set."
msgstr ""
-#: option.c:317
+#: option.c:321
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr ""
-#: option.c:318
+#: option.c:322
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:319
+#: option.c:323
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
-#: option.c:320
+#: option.c:324
msgid "Read configuration from all the files in this directory."
msgstr ""
-#: option.c:321
+#: option.c:325
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr ""
-#: option.c:322
+#: option.c:326
msgid "Do not use leasefile."
msgstr ""
-#: option.c:323
+#: option.c:327
#, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr ""
-#: option.c:324
+#: option.c:328
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr ""
-#: option.c:325
+#: option.c:329
msgid "Ignore hostnames provided by DHCP clients."
msgstr ""
-#: option.c:326
+#: option.c:330
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr ""
-#: option.c:327
+#: option.c:331
msgid "Enable integrated read-only TFTP server."
msgstr ""
-#: option.c:328
+#: option.c:332
msgid "Export files by TFTP only from the specified subtree."
msgstr ""
-#: option.c:329
+#: option.c:333
msgid "Add client IP address to tftp-root."
msgstr ""
-#: option.c:330
+#: option.c:334
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr ""
-#: option.c:331
+#: option.c:335
#, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr ""
-#: option.c:332
+#: option.c:336
msgid "Disable the TFTP blocksize extension."
msgstr ""
-#: option.c:333
+#: option.c:337
msgid "Ephemeral port range for use by TFTP transfers."
msgstr ""
-#: option.c:334
+#: option.c:338
msgid "Extra logging for DHCP."
msgstr ""
-#: option.c:335
+#: option.c:339
msgid "Enable async. logging; optionally set queue length."
msgstr ""
-#: option.c:336
+#: option.c:340
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr ""
-#: option.c:337
+#: option.c:341
msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
msgstr ""
-#: option.c:338
+#: option.c:342
msgid "Inhibit DNS-rebind protection on this domain."
msgstr ""
-#: option.c:339
+#: option.c:343
msgid "Always perform DNS queries to all servers."
msgstr ""
-#: option.c:340
+#: option.c:344
msgid "Set tag if client includes matching option in request."
msgstr ""
-#: option.c:341
+#: option.c:345
msgid "Use alternative ports for DHCP."
msgstr ""
-#: option.c:342
+#: option.c:346
msgid "Run lease-change script as this user."
msgstr ""
-#: option.c:343
+#: option.c:347
msgid "Specify NAPTR DNS record."
msgstr ""
-#: option.c:344
+#: option.c:348
msgid "Specify lowest port available for DNS query transmission."
msgstr ""
-#: option.c:345
+#: option.c:349
msgid "Use only fully qualified domain names for DHCP clients."
msgstr ""
-#: option.c:346
+#: option.c:350
msgid "Generate hostnames based on MAC address for nameless clients."
msgstr ""
-#: option.c:347
+#: option.c:351
msgid "Use these DHCP relays as full proxies."
msgstr ""
-#: option.c:348
+#: option.c:352
msgid "Specify alias name for LOCAL DNS name."
msgstr ""
-#: option.c:349
+#: option.c:353
msgid "Prompt to send to PXE clients."
msgstr ""
-#: option.c:350
+#: option.c:354
msgid "Boot service for PXE menu."
msgstr ""
-#: option.c:351
+#: option.c:355
msgid "Check configuration syntax."
msgstr ""
-#: option.c:352
+#: option.c:356
msgid "Add requestor's MAC address to forwarded DNS queries."
msgstr ""
-#: option.c:353
+#: option.c:357
msgid "Proxy DNSSEC validation results from upstream nameservers."
msgstr ""
-#: option.c:354
+#: option.c:358
msgid "Attempt to allocate sequential IP addresses to DHCP clients."
msgstr ""
-#: option.c:355
+#: option.c:359
msgid "Copy connection-track mark from queries to upstream connections."
msgstr ""
-#: option.c:644
+#: option.c:360
+msgid "Allow DHCP clients to do their own DDNS updates."
+msgstr ""
+
+#: option.c:361
+msgid "Specify path to Lua script (no default)."
+msgstr ""
+
+#: option.c:650
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
-#: option.c:646
+#: option.c:652
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
-#: option.c:648
+#: option.c:654
#, c-format
msgid "Valid options are:\n"
msgstr ""
-#: option.c:689
+#: option.c:695
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:804
+#: option.c:810
msgid "bad dhcp-option"
msgstr ""
-#: option.c:866
+#: option.c:872
msgid "bad IP address"
msgstr ""
-#: option.c:974
+#: option.c:980
msgid "bad domain in dhcp-option"
msgstr ""
-#: option.c:1040
+#: option.c:1046
msgid "dhcp-option too long"
msgstr ""
-#: option.c:1049
+#: option.c:1055
msgid "illegal dhcp-match"
msgstr ""
-#: option.c:1093
+#: option.c:1099
msgid "illegal repeated flag"
msgstr ""
-#: option.c:1101
+#: option.c:1107
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:1153 option.c:3062
+#: option.c:1159 option.c:3077
#, c-format
msgid "cannot access directory %s: %s"
msgstr ""
-#: option.c:1184 tftp.c:465
+#: option.c:1190 tftp.c:464
#, c-format
msgid "cannot access %s: %s"
msgstr ""
-#: option.c:1213
+#: option.c:1219
msgid "setting log facility is not possible under Android"
msgstr ""
-#: option.c:1222
+#: option.c:1228
msgid "bad log facility"
msgstr ""
-#: option.c:1271
+#: option.c:1277
msgid "bad MX preference"
msgstr ""
-#: option.c:1276
+#: option.c:1282
msgid "bad MX name"
msgstr ""
-#: option.c:1290
+#: option.c:1296
msgid "bad MX target"
msgstr ""
-#: option.c:1300
+#: option.c:1308
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1302
+#: option.c:1310
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr ""
-#: option.c:1607 option.c:1611
+#: option.c:1314
+msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts"
+msgstr ""
+
+#: option.c:1622 option.c:1626
msgid "bad port"
msgstr ""
-#: option.c:1634 option.c:1665
+#: option.c:1649 option.c:1680
msgid "interface binding not supported"
msgstr ""
-#: option.c:1645 option.c:2614
+#: option.c:1660 option.c:2629
msgid "bad interface name"
msgstr ""
-#: option.c:1810
+#: option.c:1825
msgid "bad port range"
msgstr ""
-#: option.c:1827
+#: option.c:1842
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1870
+#: option.c:1885
msgid "bad dhcp-range"
msgstr ""
-#: option.c:1898
+#: option.c:1913
msgid "only one tag allowed"
msgstr ""
-#: option.c:1945
+#: option.c:1960
msgid "inconsistent DHCP range"
msgstr ""
-#: option.c:2039 option.c:2067
+#: option.c:2054 option.c:2082
msgid "bad hex constant"
msgstr ""
-#: option.c:2061
+#: option.c:2076
msgid "cannot match tags in --dhcp-host"
msgstr ""
-#: option.c:2129
+#: option.c:2144
msgid "bad DHCP host name"
msgstr ""
-#: option.c:2210
+#: option.c:2225
msgid "bad tag-if"
msgstr ""
-#: option.c:2499 option.c:2784
+#: option.c:2514 option.c:2799
msgid "invalid port number"
msgstr ""
-#: option.c:2561
+#: option.c:2576
msgid "bad dhcp-proxy address"
msgstr ""
-#: option.c:2601
+#: option.c:2616
msgid "invalid alias range"
msgstr ""
-#: option.c:2639
+#: option.c:2654
msgid "bad CNAME"
msgstr ""
-#: option.c:2644
+#: option.c:2659
msgid "duplicate CNAME"
msgstr ""
-#: option.c:2664
+#: option.c:2679
msgid "bad PTR record"
msgstr ""
-#: option.c:2695
+#: option.c:2710
msgid "bad NAPTR record"
msgstr ""
-#: option.c:2727
+#: option.c:2742
msgid "bad TXT record"
msgstr ""
-#: option.c:2770
+#: option.c:2785
msgid "bad SRV record"
msgstr ""
-#: option.c:2777
+#: option.c:2792
msgid "bad SRV target"
msgstr ""
-#: option.c:2791
+#: option.c:2806
msgid "invalid priority"
msgstr ""
-#: option.c:2798
+#: option.c:2813
msgid "invalid weight"
msgstr ""
-#: option.c:2817
+#: option.c:2832
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr ""
-#: option.c:2881
+#: option.c:2896
msgid "missing \""
msgstr ""
-#: option.c:2940
+#: option.c:2955
msgid "bad option"
msgstr ""
-#: option.c:2942
+#: option.c:2957
msgid "extraneous parameter"
msgstr ""
-#: option.c:2944
+#: option.c:2959
msgid "missing parameter"
msgstr ""
-#: option.c:2948
+#: option.c:2963
msgid "error"
msgstr ""
-#: option.c:2953
+#: option.c:2968
#, c-format
msgid "%s at line %d of %%s"
msgstr ""
-#: option.c:3017 tftp.c:629
+#: option.c:3032 tftp.c:627
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: option.c:3183 option.c:3219
+#: option.c:3198 option.c:3234
#, c-format
msgid "read %s"
msgstr ""
-#: option.c:3271
+#: option.c:3286
msgid "junk found in command line"
msgstr ""
-#: option.c:3301
+#: option.c:3316
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
-#: option.c:3302
+#: option.c:3317
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
-#: option.c:3303
+#: option.c:3318
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
-#: option.c:3304
+#: option.c:3319
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:3305
+#: option.c:3320
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr ""
-#: option.c:3316
+#: option.c:3331
msgid "try --help"
msgstr ""
-#: option.c:3318
+#: option.c:3333
msgid "try -w"
msgstr ""
-#: option.c:3321
+#: option.c:3336
#, c-format
msgid "bad command line options: %s"
msgstr ""
-#: option.c:3362
+#: option.c:3377
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
-#: option.c:3390
+#: option.c:3405
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
-#: option.c:3400
+#: option.c:3415
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
-#: option.c:3403 network.c:845 dhcp.c:823
+#: option.c:3418 network.c:821 dhcp.c:885
#, c-format
msgid "failed to read %s: %s"
msgstr ""
-#: option.c:3420
+#: option.c:3435
#, c-format
msgid "no search directive found in %s"
msgstr ""
-#: option.c:3441
+#: option.c:3456
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr ""
-#: option.c:3445
+#: option.c:3460
msgid "syntax check OK"
msgstr ""
@@ -859,371 +871,376 @@ msgstr ""
msgid "possible DNS-rebind attack detected: %s"
msgstr ""
-#: network.c:171
-#, c-format
-msgid "unknown interface %s in bridge-interface"
-msgstr ""
-
-#: network.c:384
+#: network.c:354
#, c-format
msgid "failed to create listening socket for %s: %s"
msgstr ""
-#: network.c:743
+#: network.c:719
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr ""
-#: network.c:780
+#: network.c:756
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
-#: network.c:791
+#: network.c:767
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr ""
-#: network.c:808
+#: network.c:784
msgid "unqualified"
msgstr ""
-#: network.c:808
+#: network.c:784
msgid "names"
msgstr ""
-#: network.c:810
+#: network.c:786
msgid "default"
msgstr ""
-#: network.c:812
+#: network.c:788
msgid "domain"
msgstr ""
-#: network.c:815
+#: network.c:791
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:817
+#: network.c:793
#, c-format
msgid "using standard nameservers for %s %s"
msgstr ""
-#: network.c:819
+#: network.c:795
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:822
+#: network.c:798
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr ""
-#: network.c:824
+#: network.c:800
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
-#: dnsmasq.c:152
+#: dnsmasq.c:114
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr ""
-#: dnsmasq.c:157
+#: dnsmasq.c:119
msgid "Cannot use --conntrack AND --query-port"
msgstr ""
-#: dnsmasq.c:160
+#: dnsmasq.c:122
msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
msgstr ""
-#: dnsmasq.c:165
+#: dnsmasq.c:127
msgid "asychronous logging is not available under Solaris"
msgstr ""
-#: dnsmasq.c:170
+#: dnsmasq.c:132
msgid "asychronous logging is not available under Android"
msgstr ""
-#: dnsmasq.c:189
+#: dnsmasq.c:151
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr ""
-#: dnsmasq.c:197
+#: dnsmasq.c:159
#, c-format
msgid "unknown interface %s"
msgstr ""
-#: dnsmasq.c:203
+#: dnsmasq.c:165
#, c-format
msgid "no interface with address %s"
msgstr ""
-#: dnsmasq.c:219 dnsmasq.c:716
+#: dnsmasq.c:181 dnsmasq.c:680
#, c-format
msgid "DBus error: %s"
msgstr ""
-#: dnsmasq.c:222
+#: dnsmasq.c:184
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr ""
-#: dnsmasq.c:248
+#: dnsmasq.c:211
#, c-format
msgid "unknown user or group: %s"
msgstr ""
-#: dnsmasq.c:303
+#: dnsmasq.c:266
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr ""
-#: dnsmasq.c:477
+#: dnsmasq.c:441
#, c-format
msgid "started, version %s DNS disabled"
msgstr ""
-#: dnsmasq.c:479
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s cachesize %d"
msgstr ""
-#: dnsmasq.c:481
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cache disabled"
msgstr ""
-#: dnsmasq.c:483
+#: dnsmasq.c:447
#, c-format
msgid "compile time options: %s"
msgstr ""
-#: dnsmasq.c:489
+#: dnsmasq.c:453
msgid "DBus support enabled: connected to system bus"
msgstr ""
-#: dnsmasq.c:491
+#: dnsmasq.c:455
msgid "DBus support enabled: bus connection pending"
msgstr ""
-#: dnsmasq.c:496
+#: dnsmasq.c:460
#, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr ""
-#: dnsmasq.c:500
+#: dnsmasq.c:464
msgid "setting --bind-interfaces option because of OS limitations"
msgstr ""
-#: dnsmasq.c:505
+#: dnsmasq.c:469
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr ""
-#: dnsmasq.c:510
+#: dnsmasq.c:474
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr ""
-#: dnsmasq.c:513
+#: dnsmasq.c:477
msgid "warning: no upstream servers configured"
msgstr ""
-#: dnsmasq.c:517
+#: dnsmasq.c:481
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr ""
-#: dnsmasq.c:530
+#: dnsmasq.c:494
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr ""
-#: dnsmasq.c:532
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, proxy on subnet %.0s%s%.0s"
msgstr ""
-#: dnsmasq.c:533
+#: dnsmasq.c:497
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr ""
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "root is "
msgstr ""
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "enabled"
msgstr ""
-#: dnsmasq.c:550
+#: dnsmasq.c:514
msgid "secure mode"
msgstr ""
-#: dnsmasq.c:576
+#: dnsmasq.c:540
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:718
+#: dnsmasq.c:682
msgid "connected to system DBus"
msgstr ""
-#: dnsmasq.c:813
+#: dnsmasq.c:806
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
-#: dnsmasq.c:816
+#: dnsmasq.c:809
#, c-format
msgid "failed to create helper: %s"
msgstr ""
-#: dnsmasq.c:819
+#: dnsmasq.c:812
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
-#: dnsmasq.c:823
+#: dnsmasq.c:815
#, c-format
msgid "failed to change user-id to %s: %s"
msgstr ""
-#: dnsmasq.c:828
+#: dnsmasq.c:818
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr ""
-#: dnsmasq.c:831
+#: dnsmasq.c:821
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr ""
-#: dnsmasq.c:834
+#: dnsmasq.c:824
+#, c-format
+msgid "cannot open log %s: %s"
+msgstr ""
+
+#: dnsmasq.c:827
#, c-format
-msgid "cannot open %s: %s"
+msgid "failed to load Lua script: %s"
msgstr ""
-#: dnsmasq.c:889
+#: dnsmasq.c:886
#, c-format
-msgid "child process killed by signal %d"
+msgid "script process killed by signal %d"
msgstr ""
-#: dnsmasq.c:893
+#: dnsmasq.c:890
#, c-format
-msgid "child process exited with status %d"
+msgid "script process exited with status %d"
msgstr ""
-#: dnsmasq.c:897
+#: dnsmasq.c:894
#, c-format
msgid "failed to execute %s: %s"
msgstr ""
-#: dnsmasq.c:941
+#: dnsmasq.c:939
msgid "exiting on receipt of SIGTERM"
msgstr ""
-#: dnsmasq.c:969
+#: dnsmasq.c:967
#, c-format
msgid "failed to access %s: %s"
msgstr ""
-#: dnsmasq.c:999
+#: dnsmasq.c:997
#, c-format
msgid "reading %s"
msgstr ""
-#: dnsmasq.c:1010
+#: dnsmasq.c:1008
#, c-format
msgid "no servers found in %s, will retry"
msgstr ""
-#: dhcp.c:39
+#: dhcp.c:49
#, c-format
msgid "cannot create DHCP socket: %s"
msgstr ""
-#: dhcp.c:51
+#: dhcp.c:64
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr ""
-#: dhcp.c:64
+#: dhcp.c:77
#, c-format
msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
msgstr ""
-#: dhcp.c:76
+#: dhcp.c:89
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr ""
-#: dhcp.c:102
+#: dhcp.c:115
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr ""
-#: dhcp.c:278
+#: dhcp.c:264
+#, c-format
+msgid "unknown interface %s in bridge-interface"
+msgstr ""
+
+#: dhcp.c:289
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr ""
-#: dhcp.c:442
+#: dhcp.c:504
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
-#: dhcp.c:861
+#: dhcp.c:923
#, c-format
msgid "bad line at %s line %d"
msgstr ""
-#: dhcp.c:904
+#: dhcp.c:966
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr ""
-#: dhcp.c:987
+#: dhcp.c:1049
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
-#: dhcp.c:990
+#: dhcp.c:1052
#, c-format
msgid "duplicate IP address %s in %s."
msgstr ""
-#: dhcp.c:1033
+#: dhcp.c:1095
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:1038
+#: dhcp.c:1100
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
-#: lease.c:67
+#: lease.c:70
#, c-format
msgid "cannot open or create lease file %s: %s"
msgstr ""
-#: lease.c:93
+#: lease.c:116
msgid "too many stored leases"
msgstr ""
-#: lease.c:129
+#: lease.c:173
#, c-format
msgid "cannot run lease-init script %s: %s"
msgstr ""
-#: lease.c:135
+#: lease.c:179
#, c-format
msgid "lease-init script returned exit code %s"
msgstr ""
-#: lease.c:235
+#: lease.c:325
#, c-format
msgid "failed to write %s: %s (retry in %us)"
msgstr ""
@@ -1255,19 +1272,19 @@ msgstr ""
msgid "disabled"
msgstr ""
-#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
+#: rfc2131.c:428 rfc2131.c:944 rfc2131.c:1336
msgid "ignored"
msgstr ""
-#: rfc2131.c:443 rfc2131.c:1183
+#: rfc2131.c:443 rfc2131.c:1182
msgid "address in use"
msgstr ""
-#: rfc2131.c:457 rfc2131.c:999
+#: rfc2131.c:457 rfc2131.c:998
msgid "no address available"
msgstr ""
-#: rfc2131.c:464 rfc2131.c:1146
+#: rfc2131.c:464 rfc2131.c:1145
msgid "wrong network"
msgstr ""
@@ -1275,146 +1292,146 @@ msgstr ""
msgid "no address configured"
msgstr ""
-#: rfc2131.c:485 rfc2131.c:1196
+#: rfc2131.c:485 rfc2131.c:1195
msgid "no leases left"
msgstr ""
-#: rfc2131.c:570
+#: rfc2131.c:569
#, c-format
msgid "%u client provides name: %s"
msgstr ""
-#: rfc2131.c:725
+#: rfc2131.c:724
#, c-format
msgid "%u vendor class: %s"
msgstr ""
-#: rfc2131.c:727
+#: rfc2131.c:726
#, c-format
msgid "%u user class: %s"
msgstr ""
-#: rfc2131.c:786
+#: rfc2131.c:785
msgid "PXE BIS not supported"
msgstr ""
-#: rfc2131.c:915
+#: rfc2131.c:914
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr ""
-#: rfc2131.c:936
+#: rfc2131.c:935
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:968
+#: rfc2131.c:967
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:978
+#: rfc2131.c:977
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:981
+#: rfc2131.c:980
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:997 rfc2131.c:1189
+#: rfc2131.c:996 rfc2131.c:1188
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:1084
+#: rfc2131.c:1083
msgid "wrong server-ID"
msgstr ""
-#: rfc2131.c:1103
+#: rfc2131.c:1102
msgid "wrong address"
msgstr ""
-#: rfc2131.c:1121
+#: rfc2131.c:1120
msgid "lease not found"
msgstr ""
-#: rfc2131.c:1154
+#: rfc2131.c:1153
msgid "address not available"
msgstr ""
-#: rfc2131.c:1165
+#: rfc2131.c:1164
msgid "static lease available"
msgstr ""
-#: rfc2131.c:1169
+#: rfc2131.c:1168
msgid "address reserved"
msgstr ""
-#: rfc2131.c:1177
+#: rfc2131.c:1176
#, c-format
msgid "abandoning lease to %s of %s"
msgstr ""
-#: rfc2131.c:1746
+#: rfc2131.c:1745
#, c-format
msgid "%u tags: %s"
msgstr ""
-#: rfc2131.c:1774
+#: rfc2131.c:1773
#, c-format
msgid "%u bootfile name: %s"
msgstr ""
-#: rfc2131.c:1783
+#: rfc2131.c:1782
#, c-format
msgid "%u server name: %s"
msgstr ""
-#: rfc2131.c:1791
+#: rfc2131.c:1790
#, c-format
msgid "%u next server: %s"
msgstr ""
-#: rfc2131.c:1794
+#: rfc2131.c:1793
#, c-format
msgid "%u broadcast response"
msgstr ""
-#: rfc2131.c:1857
+#: rfc2131.c:1856
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:2097
+#: rfc2131.c:2096
msgid "PXE menu too large"
msgstr ""
-#: rfc2131.c:2253
+#: rfc2131.c:2252
#, c-format
msgid "Ignoring duplicate dhcp-option %d"
msgstr ""
-#: rfc2131.c:2257
+#: rfc2131.c:2256
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr ""
-#: rfc2131.c:2275
+#: rfc2131.c:2274
#, c-format
msgid "%u requested options: %s"
msgstr ""
-#: rfc2131.c:2550
+#: rfc2131.c:2549
#, c-format
msgid "cannot send RFC3925 option: too many options for enterprise number %d"
msgstr ""
-#: netlink.c:70
+#: netlink.c:71
#, c-format
msgid "cannot create netlink socket: %s"
msgstr ""
-#: netlink.c:289
+#: netlink.c:321
#, c-format
msgid "netlink returns error: %s"
msgstr ""
@@ -1431,41 +1448,45 @@ msgstr ""
msgid "could not register a DBus message handler"
msgstr ""
-#: bpf.c:224
+#: bpf.c:225
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr ""
-#: bpf.c:252
+#: bpf.c:253
#, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr ""
-#: tftp.c:286
+#: helper.c:130
+msgid "lease() function missing in Lua script"
+msgstr ""
+
+#: tftp.c:285
msgid "unable to get free port for TFTP"
msgstr ""
-#: tftp.c:301
+#: tftp.c:300
#, c-format
msgid "unsupported request from %s"
msgstr ""
-#: tftp.c:411
+#: tftp.c:410
#, c-format
msgid "file %s not found"
msgstr ""
-#: tftp.c:527
+#: tftp.c:525
#, c-format
msgid "error %d %s received from %s"
msgstr ""
-#: tftp.c:559
+#: tftp.c:557
#, c-format
msgid "failed sending %s to %s"
msgstr ""
-#: tftp.c:573
+#: tftp.c:571
#, c-format
msgid "sent %s to %s"
msgstr ""
@@ -1475,12 +1496,12 @@ msgstr ""
msgid "overflow: %d log entries lost"
msgstr ""
-#: log.c:267
+#: log.c:268
#, c-format
msgid "log failed: %s"
msgstr ""
-#: log.c:471
+#: log.c:472
msgid "FAILED to start up"
msgstr ""
@@ -1488,3 +1509,18 @@ msgstr ""
#, c-format
msgid "Conntrack connection mark retrieval failed: %s"
msgstr ""
+
+#: dhcp6.c:42
+#, c-format
+msgid "cannot create DHCPv6 socket: %s"
+msgstr ""
+
+#: dhcp6.c:53
+#, c-format
+msgid "failed to bind DHCPv6 server socket: %s"
+msgstr ""
+
+#: dhcp6.c:57
+#, c-format
+msgid "failed to join DHCPv6 multicast group: %s"
+msgstr ""
diff --git a/po/ro.po b/po/ro.po
index 9710152..451d78f 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -15,61 +15,61 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
# for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
-#: cache.c:761
+#: cache.c:757
#, fuzzy, c-format
msgid "failed to load names from %s: %s"
msgstr "încărcarea numelor din %s: %s a eşuat"
-#: cache.c:795 dhcp.c:874
+#: cache.c:791 dhcp.c:936
#, c-format
msgid "bad address at %s line %d"
msgstr "adresă greşită în %s, linia %d"
-#: cache.c:853 dhcp.c:890
+#: cache.c:849 dhcp.c:952
#, c-format
msgid "bad name at %s line %d"
msgstr "nume greşit în %s linia %d"
-#: cache.c:860 dhcp.c:965
+#: cache.c:856 dhcp.c:1027
#, c-format
msgid "read %s - %d addresses"
msgstr "citesc %s - %d adrese"
-#: cache.c:899
+#: cache.c:895
msgid "cleared cache"
msgstr "memoria temporară a fost ştearsă"
-#: cache.c:934
+#: cache.c:930
#, c-format
msgid "No IPv4 address found for %s"
msgstr ""
-#: cache.c:975
+#: cache.c:971
#, c-format
msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
msgstr ""
-#: cache.c:981
+#: cache.c:977
#, c-format
msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
msgstr "nu pot da numele %s împrumutului de adresă DHCP a lui %s deoarece numeleexistă în %s cu adresa %s"
-#: cache.c:1054
+#: cache.c:1050
#, c-format
msgid "time %lu"
msgstr ""
-#: cache.c:1055
+#: cache.c:1051
#, fuzzy, c-format
msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
msgstr "cantitate de memorie temporară %d, %d/%d stocări temporare aureutilizat locaţii neexpirate."
-#: cache.c:1057
+#: cache.c:1053
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr ""
-#: cache.c:1083
+#: cache.c:1076
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr ""
@@ -84,7 +84,7 @@ msgstr "ascultarea pe socket a eÅŸuat: %s"
msgid "failed to allocate memory"
msgstr "nu pot încărca %d bytes"
-#: util.c:227 option.c:579
+#: util.c:227 option.c:585
msgid "could not get memory"
msgstr "nu am putut aloca memorie"
@@ -98,477 +98,486 @@ msgstr "nu pot citi %s: %s"
msgid "failed to allocate %d bytes"
msgstr "nu pot încărca %d bytes"
-#: util.c:358
+#: util.c:377
#, c-format
msgid "infinite"
msgstr "infinit"
-#: option.c:248
+#: option.c:252
msgid "Specify local address(es) to listen on."
msgstr "Specificaţi adresele locale deservite."
-#: option.c:249
+#: option.c:253
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Afişează adresele IP ale maşinilor în domeniul dat."
-#: option.c:250
+#: option.c:254
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Simulează căutări după adresă pentru domenii de adresă private (RFC1918)."
-#: option.c:251
+#: option.c:255
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Interpretează adresa IP ca NXDOMAIN (împotriva manipulărilor Verisign)"
-#: option.c:252
+#: option.c:256
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Specifică mărimea înregistrărilor temporare (implicit e %s)."
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Specifică fişier de configurare (implicit e %s)."
-#: option.c:254
+#: option.c:258
msgid "Do NOT fork into the background: run in debug mode."
msgstr "NU porneşte în fundal: rulează în modul depanare."
-#: option.c:255
+#: option.c:259
msgid "Do NOT forward queries with no domain part."
msgstr "NU înainta cererile ce nu conţin domeniu DNS."
-#: option.c:256
+#: option.c:260
msgid "Return self-pointing MX records for local hosts."
msgstr "Răspunde cu înregistrări MX spre el însuşi pentru maşini locale."
-#: option.c:257
+#: option.c:261
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Adaugă numelor simple din /etc/hosts numele domeniului ca sufix."
-#: option.c:258
+#: option.c:262
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Nu inainta cereri DNS defecte provenite de la maÅŸini Windows."
-#: option.c:259
+#: option.c:263
msgid "Enable DHCP in the range given with lease duration."
msgstr "Activează DHCP în domeniul dat cu durată limitată de împrumut."
-#: option.c:260
+#: option.c:264
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Rulează sub acest grup după pornire (implicit e %s)."
-#: option.c:261
+#: option.c:265
msgid "Set address or hostname for a specified machine."
msgstr "Schimbă adresa sau numele maşinii specificate."
-#: option.c:262
+#: option.c:266
#, fuzzy
msgid "Read DHCP host specs from file."
msgstr "nume MX invalid"
-#: option.c:263
+#: option.c:267
msgid "Read DHCP option specs from file."
msgstr ""
-#: option.c:264
+#: option.c:268
msgid "Evaluate conditional tag expression."
msgstr ""
-#: option.c:265
+#: option.c:269
#, c-format
msgid "Do NOT load %s file."
msgstr "Nu încarcă fişierul %s."
-#: option.c:266
+#: option.c:270
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Specifică spre citire un fişier hosts adiţional la %s."
-#: option.c:267
+#: option.c:271
msgid "Specify interface(s) to listen on."
msgstr "Specifică interfeţele deservite."
-#: option.c:268
+#: option.c:272
msgid "Specify interface(s) NOT to listen on."
msgstr "Specifică interfeţele NE-deservite."
-#: option.c:269
+#: option.c:273
#, fuzzy
msgid "Map DHCP user class to tag."
msgstr "Leagă clasa de utilizator DHCP cu grup de opţiuni."
-#: option.c:270
+#: option.c:274
msgid "Map RFC3046 circuit-id to tag."
msgstr ""
-#: option.c:271
+#: option.c:275
msgid "Map RFC3046 remote-id to tag."
msgstr ""
-#: option.c:272
+#: option.c:276
msgid "Map RFC3993 subscriber-id to tag."
msgstr ""
-#: option.c:273
+#: option.c:277
#, fuzzy
msgid "Don't do DHCP for hosts with tag set."
msgstr "Nu furniza DHCP maşinilor din grupul de opţiuni."
-#: option.c:274
+#: option.c:278
#, fuzzy
msgid "Force broadcast replies for hosts with tag set."
msgstr "Nu furniza DHCP maşinilor din grupul de opţiuni."
-#: option.c:275
+#: option.c:279
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "NU porneşte în fundal, NU rulează în modul depanare."
-#: option.c:276
+#: option.c:280
msgid "Assume we are the only DHCP server on the local network."
msgstr "Presupune că suntem singurul server DHCP din reţeaua locală."
-#: option.c:277
+#: option.c:281
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Specifică fişierul de stocare a împrumuturilor DHCP (implicit e %s)."
-#: option.c:278
+#: option.c:282
msgid "Return MX records for local hosts."
msgstr "Răspunde cu întregistrări MX pentru maşini locale."
-#: option.c:279
+#: option.c:283
msgid "Specify an MX record."
msgstr "Specifică o înregistrare MX."
-#: option.c:280
+#: option.c:284
msgid "Specify BOOTP options to DHCP server."
msgstr "Specifică opţiuni BOOTP serverului DHCP."
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "Nu încărca fişierul %s, citeşte-l doar la SIGHUP."
-#: option.c:282
+#: option.c:286
msgid "Do NOT cache failed search results."
msgstr "NU memora rezultatele de căutare DNS eşuatată."
-#: option.c:283
+#: option.c:287
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Foloseşte servere DNS strict în ordinea dată în %s."
-#: option.c:284
+#: option.c:288
#, fuzzy
msgid "Specify options to be sent to DHCP clients."
msgstr "Configurează opţiuni în plusce trebuie trimise clienţilor DHCP."
-#: option.c:285
+#: option.c:289
msgid "DHCP option sent even if the client does not request it."
msgstr ""
-#: option.c:286
+#: option.c:290
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Specifică numărul portului pentru cereri DNS (implicit e 53)."
-#: option.c:287
+#: option.c:291
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Marimea maximă a pachetului UDP pentru EDNS.0 (implicit e %s)."
-#: option.c:288
+#: option.c:292
#, fuzzy
msgid "Log DNS queries."
msgstr "Înregistrează tranzacţiile."
-#: option.c:289
+#: option.c:293
#, fuzzy
msgid "Force the originating port for upstream DNS queries."
msgstr "Forţează acest port pentru datele ce pleacă."
-#: option.c:290
+#: option.c:294
msgid "Do NOT read resolv.conf."
msgstr "NU citi fiÅŸierul resolv.conf"
-#: option.c:291
+#: option.c:295
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Specifică calea către resolv.conf (implicit e %s)."
-#: option.c:292
+#: option.c:296
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Specifică adresele server(elor) superioare cu domenii opţionale."
-#: option.c:293
+#: option.c:297
msgid "Never forward queries to specified domains."
msgstr "Nu înaintează cererile spre domeniile specificate."
-#: option.c:294
+#: option.c:298
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Specifică domeniul de transmis prin DHCP."
-#: option.c:295
+#: option.c:299
msgid "Specify default target in an MX record."
msgstr "Specifică o ţintă într-o înregistrare MX."
-#: option.c:296
+#: option.c:300
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr "Specifică TTL în secunde pentru răspunsurile din /etc/hosts."
-#: option.c:297
+#: option.c:301
#, fuzzy
msgid "Specify time-to-live in seconds for negative caching."
msgstr "Specifică TTL în secunde pentru răspunsurile din /etc/hosts."
-#: option.c:298
+#: option.c:302
#, fuzzy
msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
msgstr "Specifică TTL în secunde pentru răspunsurile din /etc/hosts."
-#: option.c:299
+#: option.c:303
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Rulează sub acest utilizator după pornire. (implicit e %s)."
-#: option.c:300
+#: option.c:304
#, fuzzy
msgid "Map DHCP vendor class to tag."
msgstr "Trimite opţiuni DHCP în funcţie de marca plăcii de reţea."
-#: option.c:301
+#: option.c:305
msgid "Display dnsmasq version and copyright information."
msgstr "Afişează versiunea dnsmasq şi drepturile de autor."
-#: option.c:302
+#: option.c:306
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Traduce adresele IPv4 de la serverele DNS superioare."
-#: option.c:303
+#: option.c:307
msgid "Specify a SRV record."
msgstr "Specifică o înregistrare SRV."
-#: option.c:304
+#: option.c:308
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr ""
-#: option.c:305
+#: option.c:309
#, fuzzy, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr "Specifică o cale pentru fişierul PID. (implicit %s)."
-#: option.c:306
+#: option.c:310
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)."
-#: option.c:307
+#: option.c:311
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr "Răspunde cererilor DNS în funcţie de interfaţa pe care a venit cererea."
-#: option.c:308
+#: option.c:312
msgid "Specify TXT DNS record."
msgstr "Specifică o înregistrare TXT."
-#: option.c:309
+#: option.c:313
#, fuzzy
msgid "Specify PTR DNS record."
msgstr "Specifică o înregistrare TXT."
-#: option.c:310
+#: option.c:314
msgid "Give DNS name to IPv4 address of interface."
msgstr ""
-#: option.c:311
+#: option.c:315
msgid "Bind only to interfaces in use."
msgstr "Ascultă doar pe interfeţele active."
-#: option.c:312
+#: option.c:316
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Citeşte informaţii DHCP statice despre maşină din %s."
-#: option.c:313
+#: option.c:317
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Activeaza interfaţa DBus pentru configurarea serverelor superioare."
-#: option.c:314
+#: option.c:318
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Nu activează DHCP ci doar DNS pe această interfaţă."
-#: option.c:315
+#: option.c:319
msgid "Enable dynamic address allocation for bootp."
msgstr "Activează alocarea dinamică a adreselor pentru BOOTP."
-#: option.c:316
+#: option.c:320
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Trimite opţiuni DHCP în funcţie de marca plăcii de reţea."
-#: option.c:317
+#: option.c:321
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr ""
-#: option.c:318
+#: option.c:322
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:319
+#: option.c:323
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
-#: option.c:320
+#: option.c:324
msgid "Read configuration from all the files in this directory."
msgstr ""
-#: option.c:321
+#: option.c:325
#, fuzzy
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr "Rulează sub acest utilizator după pornire. (implicit e %s)."
-#: option.c:322
+#: option.c:326
msgid "Do not use leasefile."
msgstr ""
-#: option.c:323
+#: option.c:327
#, fuzzy, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)."
-#: option.c:324
+#: option.c:328
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr ""
-#: option.c:325
+#: option.c:329
msgid "Ignore hostnames provided by DHCP clients."
msgstr ""
-#: option.c:326
+#: option.c:330
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr ""
-#: option.c:327
+#: option.c:331
msgid "Enable integrated read-only TFTP server."
msgstr ""
-#: option.c:328
+#: option.c:332
msgid "Export files by TFTP only from the specified subtree."
msgstr ""
-#: option.c:329
+#: option.c:333
msgid "Add client IP address to tftp-root."
msgstr ""
-#: option.c:330
+#: option.c:334
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr ""
-#: option.c:331
+#: option.c:335
#, fuzzy, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)."
-#: option.c:332
+#: option.c:336
msgid "Disable the TFTP blocksize extension."
msgstr ""
-#: option.c:333
+#: option.c:337
msgid "Ephemeral port range for use by TFTP transfers."
msgstr ""
-#: option.c:334
+#: option.c:338
msgid "Extra logging for DHCP."
msgstr ""
-#: option.c:335
+#: option.c:339
msgid "Enable async. logging; optionally set queue length."
msgstr ""
-#: option.c:336
+#: option.c:340
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr ""
-#: option.c:337
+#: option.c:341
msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
msgstr ""
-#: option.c:338
+#: option.c:342
msgid "Inhibit DNS-rebind protection on this domain."
msgstr ""
-#: option.c:339
+#: option.c:343
msgid "Always perform DNS queries to all servers."
msgstr ""
-#: option.c:340
+#: option.c:344
msgid "Set tag if client includes matching option in request."
msgstr ""
-#: option.c:341
+#: option.c:345
msgid "Use alternative ports for DHCP."
msgstr ""
-#: option.c:342
+#: option.c:346
msgid "Run lease-change script as this user."
msgstr ""
-#: option.c:343
+#: option.c:347
#, fuzzy
msgid "Specify NAPTR DNS record."
msgstr "Specifică o înregistrare TXT."
-#: option.c:344
+#: option.c:348
msgid "Specify lowest port available for DNS query transmission."
msgstr ""
-#: option.c:345
+#: option.c:349
msgid "Use only fully qualified domain names for DHCP clients."
msgstr ""
-#: option.c:346
+#: option.c:350
msgid "Generate hostnames based on MAC address for nameless clients."
msgstr ""
-#: option.c:347
+#: option.c:351
msgid "Use these DHCP relays as full proxies."
msgstr ""
-#: option.c:348
+#: option.c:352
msgid "Specify alias name for LOCAL DNS name."
msgstr ""
-#: option.c:349
+#: option.c:353
#, fuzzy
msgid "Prompt to send to PXE clients."
msgstr "Configurează opţiuni în plusce trebuie trimise clienţilor DHCP."
-#: option.c:350
+#: option.c:354
msgid "Boot service for PXE menu."
msgstr ""
-#: option.c:351
+#: option.c:355
msgid "Check configuration syntax."
msgstr ""
-#: option.c:352
+#: option.c:356
msgid "Add requestor's MAC address to forwarded DNS queries."
msgstr ""
-#: option.c:353
+#: option.c:357
#, fuzzy
msgid "Proxy DNSSEC validation results from upstream nameservers."
msgstr "Traduce adresele IPv4 de la serverele DNS superioare."
-#: option.c:354
+#: option.c:358
msgid "Attempt to allocate sequential IP addresses to DHCP clients."
msgstr ""
-#: option.c:355
+#: option.c:359
msgid "Copy connection-track mark from queries to upstream connections."
msgstr ""
-#: option.c:644
+#: option.c:360
+msgid "Allow DHCP clients to do their own DDNS updates."
+msgstr ""
+
+#: option.c:361
+#, fuzzy
+msgid "Specify path to Lua script (no default)."
+msgstr "Specifică o cale pentru fişierul PID. (implicit %s)."
+
+#: option.c:650
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -577,242 +586,246 @@ msgstr ""
"Utilizare: dnsmasq [opţiuni]\n"
"\n"
-#: option.c:646
+#: option.c:652
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Folosiţi opţiunile prescurtate doar în linie de comandă.\n"
-#: option.c:648
+#: option.c:654
#, fuzzy, c-format
msgid "Valid options are:\n"
msgstr "Opţiunile valide sunt:\n"
-#: option.c:689
+#: option.c:695
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:804
+#: option.c:810
msgid "bad dhcp-option"
msgstr "dhcp-option invalid"
-#: option.c:866
+#: option.c:872
#, fuzzy
msgid "bad IP address"
msgstr "citesc %s - %d adrese"
-#: option.c:974
+#: option.c:980
msgid "bad domain in dhcp-option"
msgstr "domeniu DNS invalid în declaraţia dhcp-option"
-#: option.c:1040
+#: option.c:1046
msgid "dhcp-option too long"
msgstr "declararea dhcp-option este prea lungă"
-#: option.c:1049
+#: option.c:1055
msgid "illegal dhcp-match"
msgstr ""
-#: option.c:1093
+#: option.c:1099
msgid "illegal repeated flag"
msgstr ""
-#: option.c:1101
+#: option.c:1107
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:1153 option.c:3062
+#: option.c:1159 option.c:3077
#, fuzzy, c-format
msgid "cannot access directory %s: %s"
msgstr "nu pot citi %s: %s"
-#: option.c:1184 tftp.c:465
+#: option.c:1190 tftp.c:464
#, fuzzy, c-format
msgid "cannot access %s: %s"
msgstr "nu pot citi %s: %s"
-#: option.c:1213
+#: option.c:1219
msgid "setting log facility is not possible under Android"
msgstr ""
-#: option.c:1222
+#: option.c:1228
msgid "bad log facility"
msgstr ""
-#: option.c:1271
+#: option.c:1277
msgid "bad MX preference"
msgstr "preferinţă MX invalidă"
-#: option.c:1276
+#: option.c:1282
msgid "bad MX name"
msgstr "nume MX invalid"
-#: option.c:1290
+#: option.c:1296
msgid "bad MX target"
msgstr "ţintă MX invalidă"
-#: option.c:1300
+#: option.c:1308
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1302
+#: option.c:1310
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr ""
-#: option.c:1607 option.c:1611
+#: option.c:1314
+msgid "recompile with HAVE_LUASCRIPT defined to enable Lua scripts"
+msgstr ""
+
+#: option.c:1622 option.c:1626
msgid "bad port"
msgstr "port invalid"
-#: option.c:1634 option.c:1665
+#: option.c:1649 option.c:1680
msgid "interface binding not supported"
msgstr ""
-#: option.c:1645 option.c:2614
+#: option.c:1660 option.c:2629
#, fuzzy
msgid "bad interface name"
msgstr "nume MX invalid"
-#: option.c:1810
+#: option.c:1825
#, fuzzy
msgid "bad port range"
msgstr "port invalid"
-#: option.c:1827
+#: option.c:1842
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1870
+#: option.c:1885
msgid "bad dhcp-range"
msgstr "dhcp-range invalid"
-#: option.c:1898
+#: option.c:1913
msgid "only one tag allowed"
msgstr ""
-#: option.c:1945
+#: option.c:1960
msgid "inconsistent DHCP range"
msgstr "domeniu DHCP inconsistent"
-#: option.c:2039 option.c:2067
+#: option.c:2054 option.c:2082
#, fuzzy
msgid "bad hex constant"
msgstr "dhcp-host invalid"
-#: option.c:2061
+#: option.c:2076
msgid "cannot match tags in --dhcp-host"
msgstr ""
-#: option.c:2129
+#: option.c:2144
#, fuzzy
msgid "bad DHCP host name"
msgstr "nume MX invalid"
-#: option.c:2210
+#: option.c:2225
#, fuzzy
msgid "bad tag-if"
msgstr "ţintă MX invalidă"
-#: option.c:2499 option.c:2784
+#: option.c:2514 option.c:2799
msgid "invalid port number"
msgstr "număr de port invalid"
-#: option.c:2561
+#: option.c:2576
#, fuzzy
msgid "bad dhcp-proxy address"
msgstr "citesc %s - %d adrese"
-#: option.c:2601
+#: option.c:2616
#, fuzzy
msgid "invalid alias range"
msgstr "pondere invalidă"
-#: option.c:2639
+#: option.c:2654
msgid "bad CNAME"
msgstr ""
-#: option.c:2644
+#: option.c:2659
msgid "duplicate CNAME"
msgstr ""
-#: option.c:2664
+#: option.c:2679
#, fuzzy
msgid "bad PTR record"
msgstr "înregistrare SRV invalidă"
-#: option.c:2695
+#: option.c:2710
#, fuzzy
msgid "bad NAPTR record"
msgstr "înregistrare SRV invalidă"
-#: option.c:2727
+#: option.c:2742
msgid "bad TXT record"
msgstr "înregistrare TXT invalidă"
-#: option.c:2770
+#: option.c:2785
msgid "bad SRV record"
msgstr "înregistrare SRV invalidă"
-#: option.c:2777
+#: option.c:2792
msgid "bad SRV target"
msgstr "ţintă SRV invalidă"
-#: option.c:2791
+#: option.c:2806
msgid "invalid priority"
msgstr "prioritate invalidă"
-#: option.c:2798
+#: option.c:2813
msgid "invalid weight"
msgstr "pondere invalidă"
-#: option.c:2817
+#: option.c:2832
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr ""
-#: option.c:2881
+#: option.c:2896
msgid "missing \""
msgstr "lipseÅŸte \""
-#: option.c:2940
+#: option.c:2955
msgid "bad option"
msgstr "opţiune invalidă"
-#: option.c:2942
+#: option.c:2957
msgid "extraneous parameter"
msgstr "parametru nerecunoscut"
-#: option.c:2944
+#: option.c:2959
msgid "missing parameter"
msgstr "parametru lipsa"
-#: option.c:2948
+#: option.c:2963
msgid "error"
msgstr "eroare"
-#: option.c:2953
+#: option.c:2968
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s la linia %d din %%s"
-#: option.c:3017 tftp.c:629
+#: option.c:3032 tftp.c:627
#, c-format
msgid "cannot read %s: %s"
msgstr "nu pot citi %s: %s"
-#: option.c:3183 option.c:3219
+#: option.c:3198 option.c:3234
#, fuzzy, c-format
msgid "read %s"
msgstr "citesc %s"
-#: option.c:3271
+#: option.c:3286
msgid "junk found in command line"
msgstr ""
-#: option.c:3301
+#: option.c:3316
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "dnsmasq versiunea %s %s\n"
-#: option.c:3302
+#: option.c:3317
#, c-format
msgid ""
"Compile time options %s\n"
@@ -821,62 +834,62 @@ msgstr ""
"Opţiuni cu care a fost compilat %s\n"
"\n"
-#: option.c:3303
+#: option.c:3318
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Acest program vine FÄ‚RÄ‚ NICI O GARANÅ¢IE.\n"
-#: option.c:3304
+#: option.c:3319
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr "Dnsmasq este un program gratuit, sunteţi invitaţi să-l redistribuiţi\n"
-#: option.c:3305
+#: option.c:3320
#, fuzzy, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr "în termenii Licenţei publice generale GNU, versiunea 2.\n"
-#: option.c:3316
+#: option.c:3331
msgid "try --help"
msgstr ""
-#: option.c:3318
+#: option.c:3333
msgid "try -w"
msgstr ""
-#: option.c:3321
+#: option.c:3336
#, fuzzy, c-format
msgid "bad command line options: %s"
msgstr "opţiuni în linie de comandă invalide: %s."
-#: option.c:3362
+#: option.c:3377
#, c-format
msgid "cannot get host-name: %s"
msgstr "nu pot citi numele maÅŸinii: %s"
-#: option.c:3390
+#: option.c:3405
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "se permite un singur fişier resolv.conf în modul no-poll"
-#: option.c:3400
+#: option.c:3415
msgid "must have exactly one resolv.conf to read domain from."
msgstr "am nevoie de un singur resolv.conf din care să citesc numele domeniului."
-#: option.c:3403 network.c:845 dhcp.c:823
+#: option.c:3418 network.c:821 dhcp.c:885
#, fuzzy, c-format
msgid "failed to read %s: %s"
msgstr "nu pot citi %s: %s"
-#: option.c:3420
+#: option.c:3435
#, c-format
msgid "no search directive found in %s"
msgstr "nu s-a găsit nici un criteriu de căutare în %s"
-#: option.c:3441
+#: option.c:3456
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr ""
-#: option.c:3445
+#: option.c:3460
msgid "syntax check OK"
msgstr ""
@@ -890,378 +903,383 @@ msgstr "serverul DNS %s refuză interogările recursive"
msgid "possible DNS-rebind attack detected: %s"
msgstr ""
-#: network.c:171
-#, fuzzy, c-format
-msgid "unknown interface %s in bridge-interface"
-msgstr "interfaţă necunoscută %s"
-
-#: network.c:384
+#: network.c:354
#, fuzzy, c-format
msgid "failed to create listening socket for %s: %s"
msgstr "creearea socket-ului de ascultare a eÅŸuat: %s"
-#: network.c:743
+#: network.c:719
#, fuzzy, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "activarea socket-ului de ascultare pentru %s a eÅŸuat: %s"
-#: network.c:780
+#: network.c:756
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorăm serverul DNS %s - interfaţă locală"
-#: network.c:791
+#: network.c:767
#, fuzzy, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr "ignorăm serverul DNS %s - nu pot creea/activa socket-ul: %s"
-#: network.c:808
+#: network.c:784
msgid "unqualified"
msgstr "invalid"
-#: network.c:808
+#: network.c:784
msgid "names"
msgstr ""
-#: network.c:810
+#: network.c:786
msgid "default"
msgstr ""
-#: network.c:812
+#: network.c:788
msgid "domain"
msgstr "domeniu"
-#: network.c:815
+#: network.c:791
#, c-format
msgid "using local addresses only for %s %s"
msgstr "folosim adresele locale doar pentru %S %s"
-#: network.c:817
+#: network.c:793
#, fuzzy, c-format
msgid "using standard nameservers for %s %s"
msgstr "folosim serverul DNS %s#%d pentru %s %s"
-#: network.c:819
+#: network.c:795
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "folosim serverul DNS %s#%d pentru %s %s"
-#: network.c:822
+#: network.c:798
#, fuzzy, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "folosim serverul DNS %s#%d"
-#: network.c:824
+#: network.c:800
#, c-format
msgid "using nameserver %s#%d"
msgstr "folosim serverul DNS %s#%d"
-#: dnsmasq.c:152
+#: dnsmasq.c:114
#, fuzzy
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr "DBus nu este disponibil: puneţi HAVE_DBUS in src/config.h"
-#: dnsmasq.c:157
+#: dnsmasq.c:119
msgid "Cannot use --conntrack AND --query-port"
msgstr ""
-#: dnsmasq.c:160
+#: dnsmasq.c:122
#, fuzzy
msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
msgstr "DBus nu este disponibil: puneţi HAVE_DBUS in src/config.h"
-#: dnsmasq.c:165
+#: dnsmasq.c:127
msgid "asychronous logging is not available under Solaris"
msgstr ""
-#: dnsmasq.c:170
+#: dnsmasq.c:132
msgid "asychronous logging is not available under Android"
msgstr ""
-#: dnsmasq.c:189
+#: dnsmasq.c:151
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr "enumerarea interfeţelor a eşuat: %s"
-#: dnsmasq.c:197
+#: dnsmasq.c:159
#, c-format
msgid "unknown interface %s"
msgstr "interfaţă necunoscută %s"
-#: dnsmasq.c:203
+#: dnsmasq.c:165
#, c-format
msgid "no interface with address %s"
msgstr "nu exista interfaţă pentru adresa %s"
-#: dnsmasq.c:219 dnsmasq.c:716
+#: dnsmasq.c:181 dnsmasq.c:680
#, c-format
msgid "DBus error: %s"
msgstr "eroare DBus: %s"
-#: dnsmasq.c:222
+#: dnsmasq.c:184
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus nu este disponibil: puneţi HAVE_DBUS in src/config.h"
-#: dnsmasq.c:248
+#: dnsmasq.c:211
#, c-format
msgid "unknown user or group: %s"
msgstr ""
-#: dnsmasq.c:303
+#: dnsmasq.c:266
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr ""
-#: dnsmasq.c:477
+#: dnsmasq.c:441
#, fuzzy, c-format
msgid "started, version %s DNS disabled"
msgstr "am pornit, versiunea %s memorie temporară dezactivată"
-#: dnsmasq.c:479
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s cachesize %d"
msgstr "am ponit, versiunea %s memorie temporară %d"
-#: dnsmasq.c:481
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cache disabled"
msgstr "am pornit, versiunea %s memorie temporară dezactivată"
-#: dnsmasq.c:483
+#: dnsmasq.c:447
#, c-format
msgid "compile time options: %s"
msgstr "compilat cu opţiunile: %s"
-#: dnsmasq.c:489
+#: dnsmasq.c:453
msgid "DBus support enabled: connected to system bus"
msgstr "suportul DBus activ: sunt conectat la magistrala sistem"
-#: dnsmasq.c:491
+#: dnsmasq.c:455
msgid "DBus support enabled: bus connection pending"
msgstr "suportul DBus activ: aştept conexiunea la magistrală"
# for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
-#: dnsmasq.c:496
+#: dnsmasq.c:460
#, fuzzy, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr "încărcarea numelor din %s: %s a eşuat"
-#: dnsmasq.c:500
+#: dnsmasq.c:464
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "specific opţiunea --bind-interfaces din cauza limitărilor SO"
-#: dnsmasq.c:505
+#: dnsmasq.c:469
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "atenţie: interfaţa %s nu există momentan"
-#: dnsmasq.c:510
+#: dnsmasq.c:474
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr ""
-#: dnsmasq.c:513
+#: dnsmasq.c:477
#, fuzzy
msgid "warning: no upstream servers configured"
msgstr "configurăm serverele superioare prin Dbus"
-#: dnsmasq.c:517
+#: dnsmasq.c:481
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr ""
-#: dnsmasq.c:530
+#: dnsmasq.c:494
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "DHCP, împrumuturi statice doar către %.0s%s, timpul reînoirii %s"
-#: dnsmasq.c:532
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, proxy on subnet %.0s%s%.0s"
msgstr ""
-#: dnsmasq.c:533
+#: dnsmasq.c:497
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, domeniu IP %s -- %s, timpul reînoirii %s"
-#: dnsmasq.c:548
+#: dnsmasq.c:512
msgid "root is "
msgstr ""
-#: dnsmasq.c:548
+#: dnsmasq.c:512
#, fuzzy
msgid "enabled"
msgstr "dezactivat"
-#: dnsmasq.c:550
+#: dnsmasq.c:514
msgid "secure mode"
msgstr ""
-#: dnsmasq.c:576
+#: dnsmasq.c:540
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:718
+#: dnsmasq.c:682
msgid "connected to system DBus"
msgstr "magistrala sistem Dbus conectată"
-#: dnsmasq.c:813
+#: dnsmasq.c:806
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
-#: dnsmasq.c:816
+#: dnsmasq.c:809
#, fuzzy, c-format
msgid "failed to create helper: %s"
msgstr "nu pot citi %s: %s"
-#: dnsmasq.c:819
+#: dnsmasq.c:812
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
# for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
-#: dnsmasq.c:823
+#: dnsmasq.c:815
#, fuzzy, c-format
msgid "failed to change user-id to %s: %s"
msgstr "încărcarea numelor din %s: %s a eşuat"
# for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
-#: dnsmasq.c:828
+#: dnsmasq.c:818
#, fuzzy, c-format
msgid "failed to change group-id to %s: %s"
msgstr "încărcarea numelor din %s: %s a eşuat"
-#: dnsmasq.c:831
+#: dnsmasq.c:821
#, fuzzy, c-format
msgid "failed to open pidfile %s: %s"
msgstr "nu pot citi %s: %s"
-#: dnsmasq.c:834
+#: dnsmasq.c:824
#, fuzzy, c-format
-msgid "cannot open %s: %s"
+msgid "cannot open log %s: %s"
msgstr "nu pot deschide %s:%s"
-#: dnsmasq.c:889
+#: dnsmasq.c:827
+#, fuzzy, c-format
+msgid "failed to load Lua script: %s"
+msgstr "nu pot încărca %s: %s"
+
+#: dnsmasq.c:886
#, c-format
-msgid "child process killed by signal %d"
+msgid "script process killed by signal %d"
msgstr ""
-#: dnsmasq.c:893
+#: dnsmasq.c:890
#, c-format
-msgid "child process exited with status %d"
+msgid "script process exited with status %d"
msgstr ""
-#: dnsmasq.c:897
+#: dnsmasq.c:894
#, fuzzy, c-format
msgid "failed to execute %s: %s"
msgstr "accesarea serverului %s a eÅŸuat: %s"
-#: dnsmasq.c:941
+#: dnsmasq.c:939
msgid "exiting on receipt of SIGTERM"
msgstr "am primit SIGTERM, am terminat"
-#: dnsmasq.c:969
+#: dnsmasq.c:967
#, fuzzy, c-format
msgid "failed to access %s: %s"
msgstr "accesarea serverului %s a eÅŸuat: %s"
-#: dnsmasq.c:999
+#: dnsmasq.c:997
#, c-format
msgid "reading %s"
msgstr "citesc %s"
-#: dnsmasq.c:1010
+#: dnsmasq.c:1008
#, fuzzy, c-format
msgid "no servers found in %s, will retry"
msgstr "nu s-a găsit nici un criteriu de căutare în %s"
-#: dhcp.c:39
+#: dhcp.c:49
#, c-format
msgid "cannot create DHCP socket: %s"
msgstr "nu pot creea socket DHCP: %s"
-#: dhcp.c:51
+#: dhcp.c:64
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "configurarea opţiunilor socketului DHCP a eşuat: %s"
-#: dhcp.c:64
+#: dhcp.c:77
#, fuzzy, c-format
msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
msgstr "configurarea SO_REUSEADDR pe socket-ul DHCP a eÅŸuat: %s"
-#: dhcp.c:76
+#: dhcp.c:89
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "activarea socket-ului server-ului DHCP a eÅŸuat: %s"
-#: dhcp.c:102
+#: dhcp.c:115
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "nu pot creea socket ICMP raw: %s."
-#: dhcp.c:278
+#: dhcp.c:264
+#, fuzzy, c-format
+msgid "unknown interface %s in bridge-interface"
+msgstr "interfaţă necunoscută %s"
+
+#: dhcp.c:289
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr ""
-#: dhcp.c:442
+#: dhcp.c:504
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "domeniu DHCP %s -- %s nu este consistent cu masca de reţea %s"
-#: dhcp.c:861
+#: dhcp.c:923
#, c-format
msgid "bad line at %s line %d"
msgstr "linie invalidă în %s rândul %d"
-#: dhcp.c:904
+#: dhcp.c:966
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr ""
-#: dhcp.c:987
+#: dhcp.c:1049
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
-#: dhcp.c:990
+#: dhcp.c:1052
#, fuzzy, c-format
msgid "duplicate IP address %s in %s."
msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
-#: dhcp.c:1033
+#: dhcp.c:1095
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:1038
+#: dhcp.c:1100
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "adresă IP duplicat %s (%s) în declaraţia dhcp-config."
-#: lease.c:67
+#: lease.c:70
#, fuzzy, c-format
msgid "cannot open or create lease file %s: %s"
msgstr "nu pot creea sau deschide fişierul cu împrumuturi: %s"
-#: lease.c:93
+#: lease.c:116
msgid "too many stored leases"
msgstr "prea multe împrumuturi stocate"
-#: lease.c:129
+#: lease.c:173
#, fuzzy, c-format
msgid "cannot run lease-init script %s: %s"
msgstr "nu pot citi %s: %s"
-#: lease.c:135
+#: lease.c:179
#, c-format
msgid "lease-init script returned exit code %s"
msgstr ""
-#: lease.c:235
+#: lease.c:325
#, fuzzy, c-format
msgid "failed to write %s: %s (retry in %us)"
msgstr "nu pot citi %s: %s"
@@ -1293,19 +1311,19 @@ msgstr ""
msgid "disabled"
msgstr "dezactivat"
-#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
+#: rfc2131.c:428 rfc2131.c:944 rfc2131.c:1336
msgid "ignored"
msgstr "ignorat"
-#: rfc2131.c:443 rfc2131.c:1183
+#: rfc2131.c:443 rfc2131.c:1182
msgid "address in use"
msgstr "adresa este folosită"
-#: rfc2131.c:457 rfc2131.c:999
+#: rfc2131.c:457 rfc2131.c:998
msgid "no address available"
msgstr "nici o adresă disponibilă"
-#: rfc2131.c:464 rfc2131.c:1146
+#: rfc2131.c:464 rfc2131.c:1145
msgid "wrong network"
msgstr "reţea greşită"
@@ -1313,146 +1331,146 @@ msgstr "reţea greşită"
msgid "no address configured"
msgstr "adresă lipsă"
-#: rfc2131.c:485 rfc2131.c:1196
+#: rfc2131.c:485 rfc2131.c:1195
msgid "no leases left"
msgstr "nu mai am de unde să împrumut"
-#: rfc2131.c:570
+#: rfc2131.c:569
#, c-format
msgid "%u client provides name: %s"
msgstr ""
-#: rfc2131.c:725
+#: rfc2131.c:724
#, fuzzy, c-format
msgid "%u vendor class: %s"
msgstr "eroare DBus: %s"
-#: rfc2131.c:727
+#: rfc2131.c:726
#, fuzzy, c-format
msgid "%u user class: %s"
msgstr "eroare DBus: %s"
-#: rfc2131.c:786
+#: rfc2131.c:785
msgid "PXE BIS not supported"
msgstr ""
-#: rfc2131.c:915
+#: rfc2131.c:914
#, fuzzy, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "dezactivăm adresele DHCP statice %s"
-#: rfc2131.c:936
+#: rfc2131.c:935
msgid "unknown lease"
msgstr "împrumut necunoscut"
-#: rfc2131.c:968
+#: rfc2131.c:967
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:978
+#: rfc2131.c:977
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:981
+#: rfc2131.c:980
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:997 rfc2131.c:1189
+#: rfc2131.c:996 rfc2131.c:1188
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:1084
+#: rfc2131.c:1083
msgid "wrong server-ID"
msgstr ""
-#: rfc2131.c:1103
+#: rfc2131.c:1102
msgid "wrong address"
msgstr "adresă greşită"
-#: rfc2131.c:1121
+#: rfc2131.c:1120
msgid "lease not found"
msgstr "împrumutul nu a fost găsit"
-#: rfc2131.c:1154
+#: rfc2131.c:1153
msgid "address not available"
msgstr "adresă indisponibilă"
-#: rfc2131.c:1165
+#: rfc2131.c:1164
msgid "static lease available"
msgstr "împrumut static este disponibil"
-#: rfc2131.c:1169
+#: rfc2131.c:1168
msgid "address reserved"
msgstr "adresă rezervată"
-#: rfc2131.c:1177
+#: rfc2131.c:1176
#, c-format
msgid "abandoning lease to %s of %s"
msgstr ""
-#: rfc2131.c:1746
+#: rfc2131.c:1745
#, c-format
msgid "%u tags: %s"
msgstr ""
-#: rfc2131.c:1774
+#: rfc2131.c:1773
#, c-format
msgid "%u bootfile name: %s"
msgstr ""
-#: rfc2131.c:1783
+#: rfc2131.c:1782
#, fuzzy, c-format
msgid "%u server name: %s"
msgstr "eroare DBus: %s"
-#: rfc2131.c:1791
+#: rfc2131.c:1790
#, fuzzy, c-format
msgid "%u next server: %s"
msgstr "eroare DBus: %s"
-#: rfc2131.c:1794
+#: rfc2131.c:1793
#, c-format
msgid "%u broadcast response"
msgstr ""
-#: rfc2131.c:1857
+#: rfc2131.c:1856
#, fuzzy, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr "nu pot trimite opţiunea DHCP %d: nu mai este loc în pachet"
-#: rfc2131.c:2097
+#: rfc2131.c:2096
msgid "PXE menu too large"
msgstr ""
-#: rfc2131.c:2253
+#: rfc2131.c:2252
#, c-format
msgid "Ignoring duplicate dhcp-option %d"
msgstr ""
-#: rfc2131.c:2257
+#: rfc2131.c:2256
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr ""
-#: rfc2131.c:2275
+#: rfc2131.c:2274
#, fuzzy, c-format
msgid "%u requested options: %s"
msgstr "compilat cu opţiunile: %s"
-#: rfc2131.c:2550
+#: rfc2131.c:2549
#, c-format
msgid "cannot send RFC3925 option: too many options for enterprise number %d"
msgstr ""
-#: netlink.c:70
+#: netlink.c:71
#, fuzzy, c-format
msgid "cannot create netlink socket: %s"
msgstr "nu pot să activez socket-ul netlink: %s"
-#: netlink.c:289
+#: netlink.c:321
#, fuzzy, c-format
msgid "netlink returns error: %s"
msgstr "eroare DBus: %s"
@@ -1469,41 +1487,45 @@ msgstr "configurăm serverele superioare prin Dbus"
msgid "could not register a DBus message handler"
msgstr "nu pot activa o interfaţă de mesaje DBus"
-#: bpf.c:224
+#: bpf.c:225
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "nu pot creea socket DHCP BPF: %s"
-#: bpf.c:252
+#: bpf.c:253
#, fuzzy, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "cerere DHCP pentru dispozitiv nesuportat (%d) recepţionată prin %s"
-#: tftp.c:286
+#: helper.c:130
+msgid "lease() function missing in Lua script"
+msgstr ""
+
+#: tftp.c:285
msgid "unable to get free port for TFTP"
msgstr ""
-#: tftp.c:301
+#: tftp.c:300
#, c-format
msgid "unsupported request from %s"
msgstr ""
-#: tftp.c:411
+#: tftp.c:410
#, fuzzy, c-format
msgid "file %s not found"
msgstr "împrumutul nu a fost găsit"
-#: tftp.c:527
+#: tftp.c:525
#, c-format
msgid "error %d %s received from %s"
msgstr ""
-#: tftp.c:559
+#: tftp.c:557
#, fuzzy, c-format
msgid "failed sending %s to %s"
msgstr "nu pot citi %s: %s"
-#: tftp.c:573
+#: tftp.c:571
#, c-format
msgid "sent %s to %s"
msgstr ""
@@ -1513,12 +1535,12 @@ msgstr ""
msgid "overflow: %d log entries lost"
msgstr ""
-#: log.c:267
+#: log.c:268
#, c-format
msgid "log failed: %s"
msgstr ""
-#: log.c:471
+#: log.c:472
msgid "FAILED to start up"
msgstr "pornirea A EÅžUAT"
@@ -1527,6 +1549,21 @@ msgstr "pornirea A EÅžUAT"
msgid "Conntrack connection mark retrieval failed: %s"
msgstr ""
+#: dhcp6.c:42
+#, fuzzy, c-format
+msgid "cannot create DHCPv6 socket: %s"
+msgstr "nu pot creea socket DHCP: %s"
+
+#: dhcp6.c:53
+#, fuzzy, c-format
+msgid "failed to bind DHCPv6 server socket: %s"
+msgstr "activarea socket-ului server-ului DHCP a eÅŸuat: %s"
+
+#: dhcp6.c:57
+#, fuzzy, c-format
+msgid "failed to join DHCPv6 multicast group: %s"
+msgstr "activarea socket-ului server-ului DHCP a eÅŸuat: %s"
+
#~ msgid "TXT record string too long"
#~ msgstr "şirul de caractere pentru înregistrarea TXT este prea lung"
@@ -1546,10 +1583,6 @@ msgstr ""
#~ msgid "must set exactly one interface on broken systems without IP_RECVIF"
#~ msgstr "trebuie specificată exact o singură interfaţă pe sistemele defectece nu au IP_RECVIF"
-#, fuzzy
-#~ msgid "failed to load %s: %s"
-#~ msgstr "nu pot încărca %s: %s"
-
#~ msgid "bad name in %s"
#~ msgstr "nume invalid în %s"
diff --git a/src/NOTES b/src/NOTES
new file mode 100644
index 0000000..7f084af
--- /dev/null
+++ b/src/NOTES
@@ -0,0 +1,2 @@
+Worry about IPv6 leases and DUID in script-storage.
+
diff --git a/src/bpf.c b/src/bpf.c
index 0a131a4..5e4f424 100644
--- a/src/bpf.c
+++ b/src/bpf.c
@@ -182,7 +182,8 @@ int iface_enumerate(int family, void *parm, int (*callback)())
addr->s6_addr[2] = 0;
addr->s6_addr[3] = 0;
}
- if (!((*callback)(addr,
+ /* We have no way to determine the prefix, so we assume it's 64 for now....... */
+ if (!((*callback)(addr, 64,
(int)((struct sockaddr_in6 *)&ifr->ifr_addr)->sin6_scope_id,
(int)if_nametoindex(ifr->ifr_name), 0,
parm)))
diff --git a/src/cache.c b/src/cache.c
index 11ccc0d..d7877d7 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -25,7 +25,6 @@ static int cache_inserted = 0, cache_live_freed = 0, insert_error;
static union bigname *big_free = NULL;
static int bignames_left, hash_size;
static int uid = 0;
-static char *addrbuff = NULL;
/* type->string mapping: this is also used by the name-hash function as a mixing table. */
static const struct {
@@ -75,9 +74,6 @@ void cache_init(void)
struct crec *crecp;
int i;
- if (option_bool(OPT_LOG))
- addrbuff = safe_malloc(ADDRSTRLEN);
-
bignames_left = daemon->cachesize/10;
if (daemon->cachesize > 0)
@@ -1057,9 +1053,6 @@ void dump_cache(time_t now)
my_syslog(LOG_INFO, _("queries forwarded %u, queries answered locally %u"),
daemon->queries_forwarded, daemon->local_answer);
- if (!addrbuff && !(addrbuff = whine_malloc(ADDRSTRLEN)))
- return;
-
/* sum counts from different records for same server */
for (serv = daemon->servers; serv; serv = serv->next)
serv->flags &= ~SERV_COUNTED;
@@ -1079,8 +1072,8 @@ void dump_cache(time_t now)
queries += serv1->queries;
failed_queries += serv1->failed_queries;
}
- port = prettyprint_addr(&serv->addr, addrbuff);
- my_syslog(LOG_INFO, _("server %s#%d: queries sent %u, retried or failed %u"), addrbuff, port, queries, failed_queries);
+ port = prettyprint_addr(&serv->addr, daemon->addrbuff);
+ my_syslog(LOG_INFO, _("server %s#%d: queries sent %u, retried or failed %u"), daemon->addrbuff, port, queries, failed_queries);
}
if (option_bool(OPT_DEBUG) || option_bool(OPT_LOG))
@@ -1105,11 +1098,11 @@ void dump_cache(time_t now)
#ifdef HAVE_IPV6
else
{
- a = addrbuff;
+ a = daemon->addrbuff;
if (cache->flags & F_IPV4)
- inet_ntop(AF_INET, &cache->addr.addr, addrbuff, ADDRSTRLEN);
+ inet_ntop(AF_INET, &cache->addr.addr, a, ADDRSTRLEN);
else if (cache->flags & F_IPV6)
- inet_ntop(AF_INET6, &cache->addr.addr, addrbuff, ADDRSTRLEN);
+ inet_ntop(AF_INET6, &cache->addr.addr, a, ADDRSTRLEN);
}
#else
else
@@ -1164,7 +1157,7 @@ void querystr(char *str, unsigned short type)
void log_query(unsigned int flags, char *name, struct all_addr *addr, char *arg)
{
- char *source, *dest = addrbuff;
+ char *source, *dest = daemon->addrbuff;
char *verb = "is";
if (!option_bool(OPT_LOG))
@@ -1174,16 +1167,16 @@ void log_query(unsigned int flags, char *name, struct all_addr *addr, char *arg)
{
#ifdef HAVE_IPV6
inet_ntop(flags & F_IPV4 ? AF_INET : AF_INET6,
- addr, addrbuff, ADDRSTRLEN);
+ addr, daemon->addrbuff, ADDRSTRLEN);
#else
- strncpy(addrbuff, inet_ntoa(addr->addr.addr4), ADDRSTRLEN);
+ strncpy(daemon->addrbuff, inet_ntoa(addr->addr.addr4), ADDRSTRLEN);
#endif
}
if (flags & F_REVERSE)
{
dest = name;
- name = addrbuff;
+ name = daemon->addrbuff;
}
if (flags & F_NEG)
diff --git a/src/config.h b/src/config.h
index ec048ad..edf8b95 100644
--- a/src/config.h
+++ b/src/config.h
@@ -14,7 +14,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#define VERSION "2.59"
+#define VERSION "2.60test6"
#define FTABSIZ 150 /* max number of outstanding requests (default) */
#define MAX_PROCS 20 /* max no children for TCP requests */
@@ -34,60 +34,19 @@
#define SMALLDNAME 40 /* most domain names are smaller than this */
#define HOSTSFILE "/etc/hosts"
#define ETHERSFILE "/etc/ethers"
-#ifdef __uClinux__
-# define RESOLVFILE "/etc/config/resolv.conf"
-#else
-# define RESOLVFILE "/etc/resolv.conf"
-#endif
#define RUNFILE "/var/run/dnsmasq.pid"
-
-#ifndef LEASEFILE
-# if defined(__FreeBSD__) || defined (__OpenBSD__) || defined(__DragonFly__) || defined(__NetBSD__)
-# define LEASEFILE "/var/db/dnsmasq.leases"
-# elif defined(__sun__) || defined (__sun)
-# define LEASEFILE "/var/cache/dnsmasq.leases"
-# elif defined(__ANDROID__)
-# define LEASEFILE "/data/misc/dhcp/dnsmasq.leases"
-# else
-# define LEASEFILE "/var/lib/misc/dnsmasq.leases"
-# endif
-#endif
-
-#ifndef CONFFILE
-# if defined(__FreeBSD__)
-# define CONFFILE "/usr/local/etc/dnsmasq.conf"
-# else
-# define CONFFILE "/etc/dnsmasq.conf"
-# endif
-#endif
-
#define DEFLEASE 3600 /* default lease time, 1 hour */
#define CHUSER "nobody"
#define CHGRP "dip"
-#define NAMESERVER_PORT 53
-#define DHCP_SERVER_PORT 67
-#define DHCP_CLIENT_PORT 68
-#define DHCP_SERVER_ALTPORT 1067
-#define DHCP_CLIENT_ALTPORT 1068
-#define PXE_PORT 4011
-#define TFTP_PORT 69
#define TFTP_MAX_CONNECTIONS 50 /* max simultaneous connections */
#define LOG_MAX 5 /* log-queue length */
#define RANDFILE "/dev/urandom"
#define EDNS0_OPTION_MAC 5 /* dyndns.org temporary assignment */
-
-/* DBUS interface specifics */
-#define DNSMASQ_SERVICE "uk.org.thekelleys.dnsmasq"
+#define DNSMASQ_SERVICE "uk.org.thekelleys.dnsmasq" /* DBUS interface specifics */
#define DNSMASQ_PATH "/uk/org/thekelleys/dnsmasq"
-/* Follows system specific switches. If you run on a
- new system, you may want to edit these.
- May replace this with Autoconf one day.
-
-HAVE_LINUX_NETWORK
-HAVE_BSD_NETWORK
-HAVE_SOLARIS_NETWORK
- define exactly one of these to alter interaction with kernel networking.
+/* compile-time options: uncomment below to enable or do eg.
+ make COPTS=-DHAVE_BROKEN_RTC
HAVE_BROKEN_RTC
define this on embedded systems which don't have an RTC
@@ -107,20 +66,16 @@ HAVE_TFTP
define this to get dnsmasq's built-in TFTP server.
HAVE_DHCP
- define this to get dnsmasq's DHCP server.
-
-HAVE_SCRIPT
- define this to get the ability to call scripts on lease-change
+ define this to get dnsmasq's DHCPv4 server.
-HAVE_GETOPT_LONG
- define this if you have GNU libc or GNU getopt.
+HAVE_DHCP6
+ define this to get dnsmasq's DHCPv6 server. (implies HAVE_DHCP).
-HAVE_ARC4RANDOM
- define this if you have arc4random() to get better security from DNS spoofs
- by using really random ids (OpenBSD)
+HAVE_SCRIPT
+ define this to get the ability to call scripts on lease-change.
-HAVE_SOCKADDR_SA_LEN
- define this if struct sockaddr has sa_len field (*BSD)
+HAVE_LUASCRIPT
+ define this to get the ability to call Lua script on lease-change. (implies HAVE_SCRIPT)
HAVE_DBUS
define this if you want to link against libdbus, and have dnsmasq
@@ -139,51 +94,90 @@ HAVE_CONNTRACK
a build-dependency on libnetfilter_conntrack, but the resulting binary will
still run happily on a kernel without conntrack support.
-NOTES:
- For Linux you should define
- HAVE_LINUX_NETWORK
- HAVE_GETOPT_LONG
- you should NOT define
- HAVE_ARC4RANDOM
- HAVE_SOCKADDR_SA_LEN
-
- For *BSD systems you should define
- HAVE_BSD_NETWORK
- HAVE_SOCKADDR_SA_LEN
- and you MAY define
- HAVE_ARC4RANDOM - OpenBSD and FreeBSD and NetBSD version 2.0 or later
- HAVE_GETOPT_LONG - NetBSD, later FreeBSD
- (FreeBSD and OpenBSD only if you link GNU getopt)
+NO_IPV6
+NO_TFTP
+NO_DHCP
+NO_DHCP6
+NO_SCRIPT
+NO_LARGEFILE
+ these are avilable to explictly disable compile time options which would
+ otherwise be enabled automatically (HAVE_IPV6, >2Gb file sizes) or
+ which are enabled by default in the distributed source tree. Building dnsmasq
+ with something like "make COPTS=-DNO_SCRIPT" will do the trick.
+
+LEASEFILE
+CONFFILE
+RESOLVFILE
+ the default locations of these files are determined below, but may be overridden
+ in a build command line using COPTS.
*/
-/* platform independent options- uncomment to enable */
+
+/* The default set of options to build. Built with these options, dnsmasq
+ has no library dependencies other than libc */
+
#define HAVE_DHCP
+/* #define HAVE_DHCP6 */
#define HAVE_TFTP
#define HAVE_SCRIPT
+/* #define HAVE_LUASCRIPT */
/* #define HAVE_BROKEN_RTC */
/* #define HAVE_DBUS */
/* #define HAVE_IDN */
/* #define HAVE_CONNTRACK */
-/* Allow TFTP to be disabled with COPTS=-DNO_TFTP */
-#ifdef NO_TFTP
-#undef HAVE_TFTP
+
+
+/* Default locations for important system files. */
+
+#ifndef LEASEFILE
+# if defined(__FreeBSD__) || defined (__OpenBSD__) || defined(__DragonFly__) || defined(__NetBSD__)
+# define LEASEFILE "/var/db/dnsmasq.leases"
+# elif defined(__sun__) || defined (__sun)
+# define LEASEFILE "/var/cache/dnsmasq.leases"
+# elif defined(__ANDROID__)
+# define LEASEFILE "/data/misc/dhcp/dnsmasq.leases"
+# else
+# define LEASEFILE "/var/lib/misc/dnsmasq.leases"
+# endif
#endif
-/* Allow DHCP to be disabled with COPTS=-DNO_DHCP */
-#ifdef NO_DHCP
-#undef HAVE_DHCP
+#ifndef CONFFILE
+# if defined(__FreeBSD__)
+# define CONFFILE "/usr/local/etc/dnsmasq.conf"
+# else
+# define CONFFILE "/etc/dnsmasq.conf"
+# endif
#endif
-/* Allow scripts to be disabled with COPTS=-DNO_SCRIPT */
-#ifdef NO_SCRIPT
-#undef HAVE_SCRIPT
+#ifndef RESOLVFILE
+# if defined(__uClinux__)
+# define RESOLVFILE "/etc/config/resolv.conf"
+# else
+# define RESOLVFILE "/etc/resolv.conf"
+# endif
#endif
-/* platform dependent options. */
+/* platform dependent options: these are determined automatically below
+
+HAVE_LINUX_NETWORK
+HAVE_BSD_NETWORK
+HAVE_SOLARIS_NETWORK
+ define exactly one of these to alter interaction with kernel networking.
+
+HAVE_GETOPT_LONG
+ defined when GNU-sty;e getopt_long available.
+
+HAVE_ARC4RANDOM
+ defined if arc4random() available to get better security from DNS spoofs
+ by using really random ids (OpenBSD)
+
+HAVE_SOCKADDR_SA_LEN
+ defined if struct sockaddr has sa_len field (*BSD)
+*/
/* Must preceed __linux__ since uClinux defines __linux__ too. */
#if defined(__uClinux__)
@@ -259,18 +253,12 @@ NOTES:
#endif
/* Decide if we're going to support IPv6 */
-/* IPv6 can be forced off with "make COPTS=-DNO_IPV6" */
/* We assume that systems which don't have IPv6
headers don't have ntop and pton either */
-#if defined(INET6_ADDRSTRLEN) && defined(IPV6_V6ONLY) && !defined(NO_IPV6)
+#if defined(INET6_ADDRSTRLEN) && defined(IPV6_V6ONLY)
# define HAVE_IPV6
# define ADDRSTRLEN INET6_ADDRSTRLEN
-# if defined(SOL_IPV6)
-# define IPV6_LEVEL SOL_IPV6
-# else
-# define IPV6_LEVEL IPPROTO_IPV6
-# endif
#elif defined(INET_ADDRSTRLEN)
# undef HAVE_IPV6
# define ADDRSTRLEN INET_ADDRSTRLEN
@@ -279,8 +267,103 @@ NOTES:
# define ADDRSTRLEN 16 /* 4*3 + 3 dots + NULL */
#endif
-/* Can't do scripts without fork */
-#ifdef NOFORK
-# undef HAVE_SCRIPT
+
+/* rules to implement compile-time option dependencies and
+ the NO_XXX flags */
+
+#ifdef NO_IPV6
+#undef HAVE_IPV6
+#endif
+
+#ifdef NO_TFTP
+#undef HAVE_TFTP
+#endif
+
+#ifdef NO_DHCP
+#undef HAVE_DHCP
+#undef HAVE_DHCP6
+#endif
+
+#if defined(NO_DHCP6) || !defined(HAVE_IPV6)
+#undef HAVE_DHCP6
+#endif
+
+/* DHCP6 needs DHCP too */
+#ifdef HAVE_DHCP6
+#define HAVE_DHCP
+#endif
+
+#if defined(NO_SCRIPT) || !defined(HAVE_DHCP) || defined(NO_FORK)
+#undef HAVE_SCRIPT
+#undef HAVE_LUASCRIPT
+#endif
+
+/* Must HAVE_SCRIPT to HAVE_LUASCRIPT */
+#ifdef HAVE_LUASCRIPT
+#define HAVE_SCRIPT
+#endif
+
+
+/* Define a string indicating which options are in use.
+ DNSMASQP_COMPILE_OPTS is only defined in dnsmasq.c */
+
+#ifdef DNSMASQ_COMPILE_OPTS
+
+static char *compile_opts =
+#ifndef HAVE_IPV6
+"no-"
+#endif
+"IPv6 "
+#ifndef HAVE_GETOPT_LONG
+"no-"
+#endif
+"GNU-getopt "
+#ifdef HAVE_BROKEN_RTC
+"no-RTC "
+#endif
+#ifdef NO_FORK
+"no-MMU "
+#endif
+#ifndef HAVE_DBUS
+"no-"
+#endif
+"DBus "
+#ifndef LOCALEDIR
+"no-"
+#endif
+"i18n "
+#if !defined(LOCALEDIR) && !defined(HAVE_IDN)
+"no-"
+#endif
+"IDN "
+#ifndef HAVE_DHCP
+"no-"
+#endif
+"DHCP "
+#if defined(HAVE_DHCP)
+# if !defined (HAVE_DHCP6)
+ "no-"
+# endif
+ "DHCPv6 "
+# if !defined(HAVE_SCRIPT)
+ "no-scripts "
+# else
+# if !defined(HAVE_LUASCRIPT)
+ "no-"
+# endif
+ "Lua "
+# endif
+#endif
+#ifndef HAVE_TFTP
+"no-"
+#endif
+"TFTP "
+#ifndef HAVE_CONNTRACK
+"no-"
+#endif
+"conntrack";
+
#endif
+
+
diff --git a/src/dhcp.c b/src/dhcp.c
index 28a3dac..b9aa325 100644
--- a/src/dhcp.c
+++ b/src/dhcp.c
@@ -23,8 +23,15 @@ struct iface_param {
int ind;
};
+struct match_param {
+ int ind, matched;
+ struct in_addr netmask, broadcast, addr;
+};
+
static int complete_context(struct in_addr local, int if_index,
struct in_addr netmask, struct in_addr broadcast, void *vparam);
+static int check_listen_addrs(struct in_addr local, int if_index,
+ struct in_addr netmask, struct in_addr broadcast, void *vparam);
static int make_fd(int port)
{
@@ -34,16 +41,22 @@ static int make_fd(int port)
#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT)
int mtu = IP_PMTUDISC_DONT;
#endif
+#if defined(IP_TOS) && defined(IPTOS_CLASS_CS6)
+ int tos = IPTOS_CLASS_CS6;
+#endif
if (fd == -1)
die (_("cannot create DHCP socket: %s"), NULL, EC_BADNET);
if (!fix_fd(fd) ||
#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT)
- setsockopt(fd, SOL_IP, IP_MTU_DISCOVER, &mtu, sizeof(mtu)) == -1 ||
+ setsockopt(fd, IPPROTO_IP, IP_MTU_DISCOVER, &mtu, sizeof(mtu)) == -1 ||
+#endif
+#if defined(IP_TOS) && defined(IPTOS_CLASS_CS6)
+ setsockopt(fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)) == -1 ||
#endif
#if defined(HAVE_LINUX_NETWORK)
- setsockopt(fd, SOL_IP, IP_PKTINFO, &oneopt, sizeof(oneopt)) == -1 ||
+ setsockopt(fd, IPPROTO_IP, IP_PKTINFO, &oneopt, sizeof(oneopt)) == -1 ||
#else
setsockopt(fd, IPPROTO_IP, IP_RECVIF, &oneopt, sizeof(oneopt)) == -1 ||
#endif
@@ -110,7 +123,41 @@ void dhcp_init(void)
daemon->dhcp_packet.iov_len = sizeof(struct dhcp_packet);
daemon->dhcp_packet.iov_base = safe_malloc(daemon->dhcp_packet.iov_len);
}
+
+ssize_t recv_dhcp_packet(int fd, struct msghdr *msg)
+{
+ ssize_t sz;
+
+ while (1)
+ {
+ msg->msg_flags = 0;
+ while ((sz = recvmsg(fd, msg, MSG_PEEK | MSG_TRUNC)) == -1 && errno == EINTR);
+
+ if (sz == -1)
+ return -1;
+
+ if (!(msg->msg_flags & MSG_TRUNC))
+ break;
+
+ /* Very new Linux kernels return the actual size needed,
+ older ones always return truncated size */
+ if ((size_t)sz == daemon->dhcp_packet.iov_len)
+ {
+ if (!expand_buf(&daemon->dhcp_packet, sz + 100))
+ return -1;
+ }
+ else
+ {
+ expand_buf(&daemon->dhcp_packet, sz);
+ break;
+ }
+ }
+
+ while ((sz = recvmsg(fd, msg, 0)) == -1 && errno == EINTR);
+ return (msg->msg_flags & MSG_TRUNC) ? -1 : sz;
+}
+
void dhcp_packet(time_t now, int pxe_fd)
{
int fd = pxe_fd ? daemon->pxefd : daemon->dhcpfd;
@@ -124,7 +171,7 @@ void dhcp_packet(time_t now, int pxe_fd)
struct iovec iov;
ssize_t sz;
int iface_index = 0, unicast_dest = 0, is_inform = 0;
- struct in_addr iface_addr, *addrp = NULL;
+ struct in_addr iface_addr;
struct iface_param parm;
#ifdef HAVE_LINUX_NETWORK
struct arpreq arp_req;
@@ -140,56 +187,23 @@ void dhcp_packet(time_t now, int pxe_fd)
char control[CMSG_SPACE(sizeof(struct sockaddr_dl))];
#endif
} control_u;
-
- msg.msg_control = NULL;
- msg.msg_controllen = 0;
- msg.msg_name = NULL;
- msg.msg_namelen = 0;
- msg.msg_iov = &daemon->dhcp_packet;
- msg.msg_iovlen = 1;
-
- while (1)
- {
- msg.msg_flags = 0;
- while ((sz = recvmsg(fd, &msg, MSG_PEEK | MSG_TRUNC)) == -1 && errno == EINTR);
-
- if (sz == -1)
- return;
-
- if (!(msg.msg_flags & MSG_TRUNC))
- break;
+ struct dhcp_bridge *bridge, *alias;
- /* Very new Linux kernels return the actual size needed,
- older ones always return truncated size */
- if ((size_t)sz == daemon->dhcp_packet.iov_len)
- {
- if (!expand_buf(&daemon->dhcp_packet, sz + 100))
- return;
- }
- else
- {
- expand_buf(&daemon->dhcp_packet, sz);
- break;
- }
- }
-
- /* expand_buf may have moved buffer */
- mess = (struct dhcp_packet *)daemon->dhcp_packet.iov_base;
msg.msg_controllen = sizeof(control_u);
msg.msg_control = control_u.control;
- msg.msg_flags = 0;
msg.msg_name = &dest;
msg.msg_namelen = sizeof(dest);
-
- while ((sz = recvmsg(fd, &msg, 0)) == -1 && errno == EINTR);
-
- if ((msg.msg_flags & MSG_TRUNC) || sz < (ssize_t)(sizeof(*mess) - sizeof(mess->options)))
- return;
+ msg.msg_iov = &daemon->dhcp_packet;
+ msg.msg_iovlen = 1;
-#if defined (HAVE_LINUX_NETWORK)
+ if ((sz = recv_dhcp_packet(fd, &msg)) == -1 ||
+ (sz < (ssize_t)(sizeof(*mess) - sizeof(mess->options))))
+ return;
+
+ #if defined (HAVE_LINUX_NETWORK)
if (msg.msg_controllen >= sizeof(struct cmsghdr))
for (cmptr = CMSG_FIRSTHDR(&msg); cmptr; cmptr = CMSG_NXTHDR(&msg, cmptr))
- if (cmptr->cmsg_level == SOL_IP && cmptr->cmsg_type == IP_PKTINFO)
+ if (cmptr->cmsg_level == IPPROTO_IP && cmptr->cmsg_type == IP_PKTINFO)
{
union {
unsigned char *c;
@@ -236,26 +250,50 @@ void dhcp_packet(time_t now, int pxe_fd)
strncpy(arp_req.arp_dev, ifr.ifr_name, 16);
#endif
+ /* One form of bridging on BSD has the property that packets
+ can be recieved on bridge interfaces which do not have an IP address.
+ We allow these to be treated as aliases of another interface which does have
+ an IP address with --dhcp-bridge=interface,alias,alias */
+ for (bridge = daemon->bridges; bridge; bridge = bridge->next)
+ {
+ for (alias = bridge->alias; alias; alias = alias->next)
+ if (strncmp(ifr.ifr_name, alias->iface, IF_NAMESIZE) == 0)
+ {
+ if (!(iface_index = if_nametoindex(bridge->iface)))
+ {
+ my_syslog(LOG_WARNING, _("unknown interface %s in bridge-interface"), ifr.ifr_name);
+ return;
+ }
+ else
+ {
+ strncpy(ifr.ifr_name, bridge->iface, IF_NAMESIZE);
+ break;
+ }
+ }
+
+ if (alias)
+ break;
+ }
+
#ifdef MSG_BCAST
/* OpenBSD tells us when a packet was broadcast */
if (!(msg.msg_flags & MSG_BCAST))
unicast_dest = 1;
#endif
-
+
ifr.ifr_addr.sa_family = AF_INET;
if (ioctl(daemon->dhcpfd, SIOCGIFADDR, &ifr) != -1 )
+ iface_addr = ((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr;
+ else
{
- addrp = &iface_addr;
- iface_addr = ((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr;
+ my_syslog(MS_DHCP | LOG_WARNING, _("DHCP packet received on %s which has no address"), ifr.ifr_name);
+ return;
}
-
- if (!iface_check(AF_INET, (struct all_addr *)addrp, ifr.ifr_name, &iface_index))
- return;
for (tmp = daemon->dhcp_except; tmp; tmp = tmp->next)
if (tmp->name && (strcmp(tmp->name, ifr.ifr_name) == 0))
return;
-
+
/* weird libvirt-inspired access control */
for (context = daemon->dhcp; context; context = context->next)
if (!context->interface || strcmp(context->interface, ifr.ifr_name) == 0)
@@ -263,7 +301,7 @@ void dhcp_packet(time_t now, int pxe_fd)
if (!context)
return;
-
+
/* unlinked contexts are marked by context->current == context */
for (context = daemon->dhcp; context; context = context->next)
context->current = context;
@@ -271,29 +309,29 @@ void dhcp_packet(time_t now, int pxe_fd)
parm.current = NULL;
parm.ind = iface_index;
- /* interface may have been changed by alias in iface_check, make sure it gets priority in case
- there is more than one address on the interface in the same subnet */
- if (ioctl(daemon->dhcpfd, SIOCGIFADDR, &ifr) == -1)
+ if (!iface_check(AF_INET, (struct all_addr *)&iface_addr, ifr.ifr_name))
{
- my_syslog(MS_DHCP | LOG_WARNING, _("DHCP packet received on %s which has no address"), ifr.ifr_name);
- return;
- }
- else
- {
- iface_addr = ((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr;
- if (ioctl(daemon->dhcpfd, SIOCGIFNETMASK, &ifr) != -1)
- {
- struct in_addr netmask = ((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr;
- if (ioctl(daemon->dhcpfd, SIOCGIFBRDADDR, &ifr) != -1)
- {
- struct in_addr broadcast = ((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr;
- complete_context(iface_addr, iface_index, netmask, broadcast, &parm);
- }
- }
- }
+ /* If we failed to match the primary address of the interface, see if we've got a --listen-address
+ for a secondary */
+ struct match_param match;
+ match.matched = 0;
+ match.ind = iface_index;
+
+ if (!daemon->if_addrs ||
+ !iface_enumerate(AF_INET, &match, check_listen_addrs) ||
+ !match.matched)
+ return;
+
+ iface_addr = match.addr;
+ /* make sure secondary address gets priority in case
+ there is more than one address on the interface in the same subnet */
+ complete_context(match.addr, iface_index, match.netmask, match.broadcast, &parm);
+ }
+
if (!iface_enumerate(AF_INET, &parm, complete_context))
return;
+
lease_prune(NULL, now); /* lose any expired leases */
iov.iov_len = dhcp_reply(parm.current, ifr.ifr_name, iface_index, (size_t)sz,
now, unicast_dest, &is_inform, pxe_fd, iface_addr);
@@ -316,7 +354,7 @@ void dhcp_packet(time_t now, int pxe_fd)
#ifdef HAVE_SOCKADDR_SA_LEN
dest.sin_len = sizeof(struct sockaddr_in);
#endif
-
+
if (pxe_fd)
{
if (mess->ciaddr.s_addr != 0)
@@ -354,7 +392,7 @@ void dhcp_packet(time_t now, int pxe_fd)
pkt->ipi_ifindex = iface_index;
pkt->ipi_spec_dst.s_addr = 0;
msg.msg_controllen = cmptr->cmsg_len = CMSG_LEN(sizeof(struct in_pktinfo));
- cmptr->cmsg_level = SOL_IP;
+ cmptr->cmsg_level = IPPROTO_IP;
cmptr->cmsg_type = IP_PKTINFO;
dest.sin_addr.s_addr = INADDR_BROADCAST;
dest.sin_port = htons(daemon->dhcp_client_port);
@@ -411,6 +449,30 @@ void dhcp_packet(time_t now, int pxe_fd)
while(sendmsg(fd, &msg, 0) == -1 && retry_send());
}
+/* check against secondary interface addresses */
+static int check_listen_addrs(struct in_addr local, int if_index,
+ struct in_addr netmask, struct in_addr broadcast, void *vparam)
+{
+ struct match_param *param = vparam;
+ struct iname *tmp;
+
+ if (if_index == param->ind)
+ {
+ for (tmp = daemon->if_addrs; tmp; tmp = tmp->next)
+ if ( tmp->addr.sa.sa_family == AF_INET &&
+ tmp->addr.in.sin_addr.s_addr == local.s_addr)
+ {
+ param->matched = 1;
+ param->addr = local;
+ param->netmask = netmask;
+ param->broadcast = broadcast;
+ break;
+ }
+ }
+
+ return 1;
+}
+
/* This is a complex routine: it gets called with each (address,netmask,broadcast) triple
of each interface (and any relay address) and does the following things:
diff --git a/src/dhcp6.c b/src/dhcp6.c
new file mode 100644
index 0000000..0755ce5
--- /dev/null
+++ b/src/dhcp6.c
@@ -0,0 +1,220 @@
+/* dnsmasq is Copyright (c) 2000-2011 Simon Kelley
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 dated June, 1991, or
+ (at your option) version 3 dated 29 June, 2007.
+
+ 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "dnsmasq.h"
+
+#ifdef HAVE_DHCP6
+
+struct iface_param {
+ struct dhcp_context *current;
+ int ind;
+};
+
+static int join_multicast(struct in6_addr *local, int prefix,
+ int scope, int if_index, void *vparam);
+
+static int complete_context6(struct in6_addr *local, int prefix,
+ int scope, int if_index, void *vparam);
+
+void dhcp6_init(void)
+{
+ int fd;
+ struct sockaddr_in6 saddr;
+ int class = IPTOS_CLASS_CS6;
+
+ if ((fd = socket(PF_INET6, SOCK_DGRAM, IPPROTO_UDP)) == -1 ||
+ setsockopt(fd, IPPROTO_IPV6, IPV6_TCLASS, &class, sizeof(class)) == -1 ||
+ !fix_fd(fd) ||
+ !set_ipv6pktinfo(fd))
+ die (_("cannot create DHCPv6 socket: %s"), NULL, EC_BADNET);
+
+ memset(&saddr, 0, sizeof(saddr));
+#ifdef HAVE_SOCKADDR_SA_LEN
+ saddr.sin6_len = sizeof(addr.in6);
+#endif
+ saddr.sin6_family = AF_INET6;
+ saddr.sin6_addr = in6addr_any;
+ saddr.sin6_port = htons(DHCPV6_SERVER_PORT);
+
+ if (bind(fd, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in6)))
+ die(_("failed to bind DHCPv6 server socket: %s"), NULL, EC_BADNET);
+
+ /* join multicast groups on each interface we're interested in */
+ if (!iface_enumerate(AF_INET6, &fd, join_multicast))
+ die(_("failed to join DHCPv6 multicast group: %s"), NULL, EC_BADNET);
+
+ daemon->dhcp6fd = fd;
+
+}
+
+static int join_multicast(struct in6_addr *local, int prefix,
+ int scope, int if_index, void *vparam)
+{
+ char ifrn_name[IFNAMSIZ];
+ struct ipv6_mreq mreq;
+ struct in6_addr maddr;
+ int fd = *((int *)vparam);
+ struct dhcp_context *context;
+ struct iname *tmp;
+
+ (void)prefix;
+ (void)scope; /* warnings */
+
+ if (!indextoname(fd, if_index, ifrn_name))
+ return 0;
+
+ /* Are we doing DHCP on this interface? */
+ if (!iface_check(AF_INET6, (struct all_addr *)local, ifrn_name))
+ return 1;
+
+ for (tmp = daemon->dhcp_except; tmp; tmp = tmp->next)
+ if (tmp->name && (strcmp(tmp->name, ifrn_name) == 0))
+ return 1;
+
+ /* weird libvirt-inspired access control */
+ for (context = daemon->dhcp; context; context = context->next)
+ if (!context->interface || strcmp(context->interface, ifrn_name) == 0)
+ break;
+
+ if (!context)
+ return 1;
+
+ mreq.ipv6mr_interface = if_index;
+ inet_pton(AF_INET6, ALL_RELAY_AGENTS_AND_SERVERS, &maddr);
+
+ if (!setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == -1)
+ return 0;
+
+ inet_pton(AF_INET6, ALL_SERVERS, &maddr);
+
+ if (!setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == -1)
+ return 0;
+
+ return 1;
+
+}
+
+
+
+
+void dhcp6_packet(time_t now)
+{
+ struct dhcp_context *context;
+ struct iface_param parm;
+ struct cmsghdr *cmptr;
+ struct msghdr msg;
+ int if_index = 0;
+ union {
+ struct cmsghdr align; /* this ensures alignment */
+ char control6[CMSG_SPACE(sizeof(struct in6_pktinfo))];
+ } control_u;
+ union mysockaddr from;
+ struct all_addr dest;
+ ssize_t sz;
+ struct ifreq ifr;
+ struct iname *tmp;
+
+ msg.msg_control = control_u.control6;
+ msg.msg_controllen = sizeof(control_u);
+ msg.msg_flags = 0;
+ msg.msg_name = &from;
+ msg.msg_namelen = sizeof(from);
+ msg.msg_iov = &daemon->dhcp_packet;
+ msg.msg_iovlen = 1;
+
+ if ((sz = recv_dhcp_packet(daemon->dhcp6fd, &msg) == -1) || sz <= 4)
+ return;
+
+ for (cmptr = CMSG_FIRSTHDR(&msg); cmptr; cmptr = CMSG_NXTHDR(&msg, cmptr))
+ if (cmptr->cmsg_level == IPPROTO_IPV6 && cmptr->cmsg_type == daemon->v6pktinfo)
+ {
+ union {
+ unsigned char *c;
+ struct in6_pktinfo *p;
+ } p;
+ p.c = CMSG_DATA(cmptr);
+
+ if_index = p.p->ipi6_ifindex;
+ dest.addr.addr6 = p.p->ipi6_addr;
+ }
+
+ if (!indextoname(daemon->dhcp6fd, if_index, ifr.ifr_name))
+ return;
+ls -l
+ if (!iface_check(AF_INET6, (struct all_addr *)&dest, ifr.ifr_name))
+ return;
+
+ for (tmp = daemon->dhcp_except; tmp; tmp = tmp->next)
+ if (tmp->name && (strcmp(tmp->name, ifr.ifr_name) == 0))
+ return;
+
+ /* weird libvirt-inspired access control */
+ for (context = daemon->dhcp; context; context = context->next)
+ if (!context->interface || strcmp(context->interface, ifr.ifr_name) == 0)
+ break;
+
+ if (!context)
+ return;
+
+ /* unlinked contexts are marked by context->current == context */
+ for (context = daemon->dhcp; context; context = context->next)
+ context->current = context;
+
+ parm.current = NULL;
+ parm.ind = if_index;
+
+ if (!iface_enumerate(AF_INET6, &parm, complete_context6))
+ return;
+
+ lease_prune(NULL, now); /* lose any expired leases */
+
+ msg.msg_iov = &daemon->dhcp_packet;
+ sz = dhcp6_reply(parm.current, sz);
+ /* ifr.ifr_name, if_index, (size_t)sz,
+ now, unicast_dest, &is_inform, pxe_fd, iface_addr); */
+ lease_update_file(now);
+ lease_update_dns();
+
+ if (sz != 0)
+ send_from(daemon->dhcp6fd, 0, daemon->outpacket.iov_base, sz, &from, &dest, if_index);
+}
+
+static int complete_context6(struct in6_addr *local, int prefix,
+ int scope, int if_index, void *vparam)
+{
+ struct dhcp_context *context;
+ struct iface_param *param = vparam;
+
+ for (context = daemon->dhcp6; context; context = context->next)
+ {
+ if ((context->flags & CONTEXT_IPV6) &&
+ prefix == context->prefix &&
+ is_same_net6(local, &context->start6, prefix) &&
+ is_same_net6(local, &context->end6, prefix))
+ {
+ /* link it onto the current chain if we've not seen it before */
+ if (if_index == param->ind && context->current == context)
+ {
+ context->current = param->current;
+ param->current = context;
+ }
+ }
+ }
+ return 1;
+}
+#endif
+
+
diff --git a/src/dhcp6_protocol.h b/src/dhcp6_protocol.h
new file mode 100644
index 0000000..12c7bb5
--- /dev/null
+++ b/src/dhcp6_protocol.h
@@ -0,0 +1,55 @@
+/* dnsmasq is Copyright (c) 2000-2011 Simon Kelley
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 dated June, 1991, or
+ (at your option) version 3 dated 29 June, 2007.
+
+ 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#define DHCPV6_SERVER_PORT 547
+#define DHCPV6_CLIENT_PORT 546
+
+#define ALL_SERVERS "FF05::1:3"
+#define ALL_RELAY_AGENTS_AND_SERVERS "FF02::1:2"
+
+#define DHCP6SOLICIT 1
+#define DHCP6ADVERTISE 2
+#define DHCP6REQUEST 3
+#define DHCP6CONFIRM 4
+#define DHCP6RENEW 5
+#define DHCP6REBIND 6
+#define DHCP6REPLY 7
+#define DHCP6RELEASE 8
+#define DHCP6DECLINE 9
+#define DHCP6RECONFIGURE 10
+#define DHCP6IREQ 11
+#define DHCP6RELAYFORW 12
+#define DHCP6RELAYREPL 13
+
+#define OPTION6_CLIENT_ID 1
+#define OPTION6_SERVER_ID 2
+#define OPTION6_IA_NA 3
+#define OPTION6_IA_TA 4
+#define OPTION6_IAADDR 5
+#define OPTION6_ORO 6
+#define OPTION6_PREFERENCE 7
+#define OPTION6_ELAPSED_TIME 8
+#define OPTION6_RELAY_MSG 9
+#define OPTION6_AUTH 11
+#define OPTION6_UNICAST 12
+#define OPTION6_STATUS_CODE 13
+#define OPTION6_RAPID_COMMIT 14
+#define OPTION6_USER_CLASS 15
+#define OPTION6_VENDOR_CLASS 16
+#define OPTION6_VENDOR_OPTS 17
+#define OPTION6_INTERFACE_ID 18
+#define OPTION6_RECONFIGURE_MSG 19
+#define OPTION6_RECONF_ACCEPT 20
diff --git a/src/dhcp_protocol.h b/src/dhcp_protocol.h
index e09cad8..633b624 100644
--- a/src/dhcp_protocol.h
+++ b/src/dhcp_protocol.h
@@ -13,6 +13,11 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#define DHCP_SERVER_PORT 67
+#define DHCP_CLIENT_PORT 68
+#define DHCP_SERVER_ALTPORT 1067
+#define DHCP_CLIENT_ALTPORT 1068
+#define PXE_PORT 4011
#define BOOTREQUEST 1
#define BOOTREPLY 2
diff --git a/src/dns_protocol.h b/src/dns_protocol.h
index 456a997..aca5d71 100644
--- a/src/dns_protocol.h
+++ b/src/dns_protocol.h
@@ -14,6 +14,9 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#define NAMESERVER_PORT 53
+#define TFTP_PORT 69
+
#define IN6ADDRSZ 16
#define INADDRSZ 4
diff --git a/src/dnsmasq.c b/src/dnsmasq.c
index 791a0dd..fa7bbfd 100644
--- a/src/dnsmasq.c
+++ b/src/dnsmasq.c
@@ -14,54 +14,13 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+/* Declare static char *compiler_opts in config.h */
+#define DNSMASQ_COMPILE_OPTS
+
#include "dnsmasq.h"
struct daemon *daemon;
-static char *compile_opts =
-#ifndef HAVE_IPV6
-"no-"
-#endif
-"IPv6 "
-#ifndef HAVE_GETOPT_LONG
-"no-"
-#endif
-"GNU-getopt "
-#ifdef HAVE_BROKEN_RTC
-"no-RTC "
-#endif
-#ifdef NO_FORK
-"no-MMU "
-#endif
-#ifndef HAVE_DBUS
-"no-"
-#endif
-"DBus "
-#ifndef LOCALEDIR
-"no-"
-#endif
-"i18n "
-#ifndef HAVE_DHCP
-"no-"
-#endif
-"DHCP "
-#if defined(HAVE_DHCP) && !defined(HAVE_SCRIPT)
-"no-scripts "
-#endif
-#ifndef HAVE_TFTP
-"no-"
-#endif
-"TFTP "
-#ifndef HAVE_CONNTRACK
-"no-"
-#endif
-"conntrack "
-#if !defined(LOCALEDIR) && !defined(HAVE_IDN)
-"no-"
-#endif
-"IDN";
-
-
static volatile pid_t pid = 0;
static volatile int pipewrite;
@@ -69,7 +28,8 @@ static int set_dns_listeners(time_t now, fd_set *set, int *maxfdp);
static void check_dns_listeners(fd_set *set, time_t now);
static void sig_handler(int sig);
static void async_event(int pipe, time_t now);
-static void fatal_event(struct event_desc *ev);
+static void fatal_event(struct event_desc *ev, char *msg);
+static int read_event(int fd, struct event_desc *evp, char **msg);
int main (int argc, char **argv)
{
@@ -79,7 +39,7 @@ int main (int argc, char **argv)
struct iname *if_tmp;
int piperead, pipefd[2], err_pipe[2];
struct passwd *ent_pw = NULL;
-#if defined(HAVE_DHCP) && defined(HAVE_SCRIPT)
+#if defined(HAVE_SCRIPT)
uid_t script_uid = 0;
gid_t script_gid = 0;
#endif
@@ -122,6 +82,8 @@ int main (int argc, char **argv)
daemon->edns_pktsz : DNSMASQ_PACKETSZ;
daemon->packet = safe_malloc(daemon->packet_buff_sz);
+ daemon->addrbuff = safe_malloc(ADDRSTRLEN);
+
#ifdef HAVE_DHCP
if (!daemon->lease_file)
{
@@ -225,9 +187,10 @@ int main (int argc, char **argv)
if (daemon->port != 0)
pre_allocate_sfds();
-#if defined(HAVE_DHCP) && defined(HAVE_SCRIPT)
+#if defined(HAVE_SCRIPT)
/* Note getpwnam returns static storage */
- if (daemon->dhcp && daemon->lease_change_command && daemon->scriptuser)
+ if (daemon->dhcp && daemon->scriptuser &&
+ (daemon->lease_change_command || daemon->luascript))
{
if ((ent_pw = getpwnam(daemon->scriptuser)))
{
@@ -290,7 +253,7 @@ int main (int argc, char **argv)
piperead = pipefd[0];
pipewrite = pipefd[1];
/* prime the pipe to load stuff first time. */
- send_event(pipewrite, EVENT_RELOAD, 0);
+ send_event(pipewrite, EVENT_RELOAD, 0, NULL);
err_pipe[1] = -1;
@@ -313,18 +276,19 @@ int main (int argc, char **argv)
if ((pid = fork()) == -1)
/* fd == -1 since we've not forked, never returns. */
- send_event(-1, EVENT_FORK_ERR, errno);
+ send_event(-1, EVENT_FORK_ERR, errno, NULL);
if (pid != 0)
{
struct event_desc ev;
-
+ char *msg;
+
/* close our copy of write-end */
close(err_pipe[1]);
/* check for errors after the fork */
- if (read_write(err_pipe[0], (unsigned char *)&ev, sizeof(ev), 1))
- fatal_event(&ev);
+ if (read_event(err_pipe[0], &ev, &msg))
+ fatal_event(&ev, msg);
_exit(EC_GOOD);
}
@@ -336,7 +300,7 @@ int main (int argc, char **argv)
setsid();
if ((pid = fork()) == -1)
- send_event(err_pipe[1], EVENT_FORK_ERR, errno);
+ send_event(err_pipe[1], EVENT_FORK_ERR, errno, NULL);
if (pid != 0)
_exit(0);
@@ -356,7 +320,7 @@ int main (int argc, char **argv)
}
else if (getuid() == 0)
{
- send_event(err_pipe[1], EVENT_PIDFILE, errno);
+ send_event(err_pipe[1], EVENT_PIDFILE, errno, daemon->runfile);
_exit(0);
}
}
@@ -376,8 +340,8 @@ int main (int argc, char **argv)
/* if we are to run scripts, we need to fork a helper before dropping root. */
daemon->helperfd = -1;
-#if defined(HAVE_DHCP) && defined(HAVE_SCRIPT)
- if (daemon->dhcp && daemon->lease_change_command)
+#ifdef HAVE_SCRIPT
+ if (daemon->dhcp && (daemon->lease_change_command || daemon->luascript))
daemon->helperfd = create_helper(pipewrite, err_pipe[1], script_uid, script_gid, max_fd);
#endif
@@ -391,7 +355,7 @@ int main (int argc, char **argv)
(setgroups(0, &dummy) == -1 ||
setgid(gp->gr_gid) == -1))
{
- send_event(err_pipe[1], EVENT_GROUP_ERR, errno);
+ send_event(err_pipe[1], EVENT_GROUP_ERR, errno, daemon->groupname);
_exit(0);
}
@@ -437,14 +401,14 @@ int main (int argc, char **argv)
if (bad_capabilities != 0)
{
- send_event(err_pipe[1], EVENT_CAP_ERR, bad_capabilities);
+ send_event(err_pipe[1], EVENT_CAP_ERR, bad_capabilities, NULL);
_exit(0);
}
/* finally drop root */
if (setuid(ent_pw->pw_uid) == -1)
{
- send_event(err_pipe[1], EVENT_USER_ERR, errno);
+ send_event(err_pipe[1], EVENT_USER_ERR, errno, daemon->username);
_exit(0);
}
@@ -460,7 +424,7 @@ int main (int argc, char **argv)
/* lose the setuid and setgid capbilities */
if (capset(hdr, data) == -1)
{
- send_event(err_pipe[1], EVENT_CAP_ERR, errno);
+ send_event(err_pipe[1], EVENT_CAP_ERR, errno, NULL);
_exit(0);
}
#endif
@@ -779,28 +743,57 @@ static void sig_handler(int sig)
else
return;
- send_event(pipewrite, event, 0);
+ send_event(pipewrite, event, 0, NULL);
errno = errsave;
}
}
-void send_event(int fd, int event, int data)
+void send_event(int fd, int event, int data, char *msg)
{
struct event_desc ev;
-
+ struct iovec iov[2];
+
ev.event = event;
ev.data = data;
+ ev.msg_sz = msg ? strlen(msg) : 0;
+
+ iov[0].iov_base = &ev;
+ iov[0].iov_len = sizeof(ev);
+ iov[1].iov_base = msg;
+ iov[1].iov_len = ev.msg_sz;
/* error pipe, debug mode. */
if (fd == -1)
- fatal_event(&ev);
+ fatal_event(&ev, msg);
else
/* pipe is non-blocking and struct event_desc is smaller than
PIPE_BUF, so this either fails or writes everything */
- while (write(fd, &ev, sizeof(ev)) == -1 && errno == EINTR);
+ while (writev(fd, iov, msg ? 2 : 1) == -1 && errno == EINTR);
}
-static void fatal_event(struct event_desc *ev)
+/* NOTE: the memory used to return msg is leaked: use msgs in events only
+ to describe fatal errors. */
+static int read_event(int fd, struct event_desc *evp, char **msg)
+{
+ char *buf;
+
+ if (!read_write(fd, (unsigned char *)evp, sizeof(struct event_desc), 1))
+ return 0;
+
+ *msg = NULL;
+
+ if (evp->msg_sz != 0 &&
+ (buf = malloc(evp->msg_sz + 1)) &&
+ read_write(fd, (unsigned char *)buf, evp->msg_sz, 1))
+ {
+ buf[evp->msg_sz] = 0;
+ *msg = buf;
+ }
+
+ return 1;
+}
+
+static void fatal_event(struct event_desc *ev, char *msg)
{
errno = ev->data;
@@ -819,19 +812,19 @@ static void fatal_event(struct event_desc *ev)
die(_("setting capabilities failed: %s"), NULL, EC_MISC);
case EVENT_USER_ERR:
- case EVENT_HUSER_ERR:
- die(_("failed to change user-id to %s: %s"),
- ev->event == EVENT_USER_ERR ? daemon->username : daemon->scriptuser,
- EC_MISC);
+ die(_("failed to change user-id to %s: %s"), msg, EC_MISC);
case EVENT_GROUP_ERR:
- die(_("failed to change group-id to %s: %s"), daemon->groupname, EC_MISC);
+ die(_("failed to change group-id to %s: %s"), msg, EC_MISC);
case EVENT_PIDFILE:
- die(_("failed to open pidfile %s: %s"), daemon->runfile, EC_FILE);
+ die(_("failed to open pidfile %s: %s"), msg, EC_FILE);
case EVENT_LOG_ERR:
- die(_("cannot open %s: %s"), daemon->log_file ? daemon->log_file : "log", EC_FILE);
+ die(_("cannot open log %s: %s"), msg, EC_FILE);
+
+ case EVENT_LUA_ERR:
+ die(_("failed to load Lua script: %s"), msg, EC_MISC);
}
}
@@ -840,8 +833,12 @@ static void async_event(int pipe, time_t now)
pid_t p;
struct event_desc ev;
int i;
-
- if (read_write(pipe, (unsigned char *)&ev, sizeof(ev), 1))
+ char *msg;
+
+ /* NOTE: the memory used to return msg is leaked: use msgs in events only
+ to describe fatal errors. */
+
+ if (read_event(pipe, &ev, &msg))
switch (ev.event)
{
case EVENT_RELOAD:
@@ -886,11 +883,11 @@ static void async_event(int pipe, time_t now)
break;
case EVENT_KILLED:
- my_syslog(LOG_WARNING, _("child process killed by signal %d"), ev.data);
+ my_syslog(LOG_WARNING, _("script process killed by signal %d"), ev.data);
break;
case EVENT_EXITED:
- my_syslog(LOG_WARNING, _("child process exited with status %d"), ev.data);
+ my_syslog(LOG_WARNING, _("script process exited with status %d"), ev.data);
break;
case EVENT_EXEC_ERR:
@@ -899,9 +896,10 @@ static void async_event(int pipe, time_t now)
break;
/* necessary for fatal errors in helper */
- case EVENT_HUSER_ERR:
+ case EVENT_USER_ERR:
case EVENT_DIE:
- fatal_event(&ev);
+ case EVENT_LUA_ERR:
+ fatal_event(&ev, msg);
break;
case EVENT_REOPEN:
@@ -918,7 +916,7 @@ static void async_event(int pipe, time_t now)
if (daemon->tcp_pids[i] != 0)
kill(daemon->tcp_pids[i], SIGALRM);
-#if defined(HAVE_DHCP) && defined(HAVE_SCRIPT)
+#if defined(HAVE_SCRIPT)
/* handle pending lease transitions */
if (daemon->helperfd != -1)
{
diff --git a/src/dnsmasq.h b/src/dnsmasq.h
index 1eba3d0..405db6b 100644
--- a/src/dnsmasq.h
+++ b/src/dnsmasq.h
@@ -39,9 +39,14 @@
/* get these before config.h for IPv6 stuff... */
#include <sys/types.h>
#include <sys/socket.h>
+
+#ifdef __APPLE__
+/* Define before netinet/in.h to select API. OSX Lion onwards. */
+# define __APPLE_USE_RFC_3542
+#endif
#include <netinet/in.h>
-/* and this. */
+/* Also needed before config.h. */
#include <getopt.h>
#include "config.h"
@@ -52,6 +57,9 @@ typedef unsigned int u32;
#include "dns_protocol.h"
#include "dhcp_protocol.h"
+#ifdef HAVE_DHCP6
+#include "dhcp6_protocol.h"
+#endif
#define gettext_noop(S) (S)
#ifndef LOCALEDIR
@@ -127,7 +135,7 @@ extern int capget(cap_user_header_t header, cap_user_data_t data);
/* Async event queue */
struct event_desc {
- int event, data;
+ int event, data, msg_sz;
};
#define EVENT_RELOAD 1
@@ -148,6 +156,7 @@ struct event_desc {
#define EVENT_DIE 16
#define EVENT_LOG_ERR 17
#define EVENT_FORK_ERR 18
+#define EVENT_LUA_ERR 19
/* Exit codes. */
#define EC_GOOD 0
@@ -204,7 +213,8 @@ struct event_desc {
#define OPT_DNSSEC 33
#define OPT_CONSEC_ADDR 34
#define OPT_CONNTRACK 35
-#define OPT_LAST 36
+#define OPT_FQDN_UPDATE 36
+#define OPT_LAST 37
/* extra flags for my_syslog, we use a couple of facilities since they are known
not to occupy the same bits as priorities, no matter how syslog.h is set up. */
@@ -444,6 +454,9 @@ struct dhcp_lease {
unsigned char *extradata;
unsigned int extradata_len, extradata_size;
int last_interface;
+#ifdef HAVE_DHCP6
+ char is_ipv6;
+#endif
struct dhcp_lease *next;
};
@@ -573,6 +586,10 @@ struct dhcp_context {
struct in_addr netmask, broadcast;
struct in_addr local, router;
struct in_addr start, end; /* range of available addresses */
+#ifdef HAVE_DHCP6
+ struct in6_addr start6, end6; /* range of available addresses */
+ int prefix;
+#endif
int flags;
char *interface;
struct dhcp_netid netid, *filter;
@@ -583,6 +600,7 @@ struct dhcp_context {
#define CONTEXT_NETMASK 2
#define CONTEXT_BRDCAST 4
#define CONTEXT_PROXY 8
+#define CONTEXT_IPV6 16
struct ping_result {
struct in_addr addr;
@@ -645,6 +663,7 @@ extern struct daemon {
char *mxtarget;
char *lease_file;
char *username, *groupname, *scriptuser;
+ char *luascript;
int group_set, osport;
char *domain_suffix;
struct cond_domain *cond_domain;
@@ -660,7 +679,7 @@ extern struct daemon {
int port, query_port, min_port;
unsigned long local_ttl, neg_ttl, max_ttl;
struct hostsfile *addn_hosts;
- struct dhcp_context *dhcp;
+ struct dhcp_context *dhcp, *dhcp6;
struct dhcp_config *dhcp_conf;
struct dhcp_opt *dhcp_opts, *dhcp_match;
struct dhcp_vendor *dhcp_vendors;
@@ -716,7 +735,12 @@ extern struct daemon {
struct ping_result *ping_results;
FILE *lease_stream;
struct dhcp_bridge *bridges;
-
+#ifdef HAVE_DHCP6
+ int duid_len;
+ unsigned char *duid;
+ struct iovec outpacket;
+ int dhcp6fd;
+#endif
/* DBus stuff */
/* void * here to avoid depending on dbus headers outside dbus.c */
void *dbus;
@@ -727,6 +751,9 @@ extern struct daemon {
/* TFTP stuff */
struct tftp_transfer *tftp_trans;
+ /* utility string buffer, hold max sized IP address as string */
+ char *addrbuff;
+
} *daemon;
/* cache.c */
@@ -785,6 +812,9 @@ int sockaddr_isequal(union mysockaddr *s1, union mysockaddr *s2);
int hostname_isequal(char *a, char *b);
time_t dnsmasq_time(void);
int is_same_net(struct in_addr a, struct in_addr b, struct in_addr mask);
+#ifdef HAVE_IPV6
+int is_same_net6(struct in6_addr *a, struct in6_addr *b, int prefixlen);
+#endif
int retry_send(void);
void prettyprint_time(char *buf, unsigned int t);
int prettyprint_addr(union mysockaddr *addr, char *buf);
@@ -820,6 +850,9 @@ unsigned char *tcp_request(int confd, time_t now,
union mysockaddr *local_addr, struct in_addr netmask);
void server_gone(struct server *server);
struct frec *get_new_frec(time_t now, int *wait);
+void send_from(int fd, int nowild, char *packet, size_t len,
+ union mysockaddr *to, struct all_addr *source,
+ unsigned int iface);
/* network.c */
int indextoname(int fd, int index, char *name);
@@ -832,14 +865,18 @@ int enumerate_interfaces();
void create_wildcard_listeners(void);
void create_bound_listeners(int die);
int is_dad_listeners(void);
-int iface_check(int family, struct all_addr *addr, char *name, int *indexp);
+int iface_check(int family, struct all_addr *addr, char *name);
int fix_fd(int fd);
struct in_addr get_ifaddr(char *intr);
+#ifdef HAVE_IPV6
+int set_ipv6pktinfo(int fd);
+#endif
/* dhcp.c */
#ifdef HAVE_DHCP
void dhcp_init(void);
void dhcp_packet(time_t now, int pxe_fd);
+ssize_t recv_dhcp_packet(int fd, struct msghdr *msg);
struct dhcp_context *address_available(struct dhcp_context *context,
struct in_addr addr,
struct dhcp_netid *netids);
@@ -871,7 +908,10 @@ char *get_domain(struct in_addr addr);
void lease_update_file(time_t now);
void lease_update_dns();
void lease_init(time_t now);
-struct dhcp_lease *lease_allocate(struct in_addr addr);
+struct dhcp_lease *lease_allocate4(struct in_addr addr);
+#ifdef HAVE_DHCP6
+struct dhcp_lease *lease_allocate6(struct in6_addr *addrp);
+#endif
void lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
unsigned char *clid, int hw_len, int hw_type, int clid_len);
void lease_set_hostname(struct dhcp_lease *lease, char *name, int auth);
@@ -900,7 +940,7 @@ unsigned char *extended_hwaddr(int hwtype, int hwlen, unsigned char *hwaddr,
int make_icmp_sock(void);
int icmp_ping(struct in_addr addr);
#endif
-void send_event(int fd, int event, int data);
+void send_event(int fd, int event, int data, char *msg);
void clear_cache_and_reload(time_t now);
void poll_resolv(int force, int do_reload, time_t now);
@@ -950,3 +990,9 @@ void check_tftp_listeners(fd_set *rset, time_t now);
int get_incoming_mark(union mysockaddr *peer_addr, struct all_addr *local_addr,
int istcp, unsigned int *markp);
#endif
+
+/* rfc3315.c */
+#ifdef HAVE_DHCP6
+void make_duid(time_t now);
+size_t dhcp6_reply(struct dhcp_context *context, size_t sz);
+#endif
diff --git a/src/forward.c b/src/forward.c
index bdf6bfb..73195df 100644
--- a/src/forward.c
+++ b/src/forward.c
@@ -26,9 +26,9 @@ static struct randfd *allocate_rfd(int family);
/* Send a UDP packet with its source address set as "source"
unless nowild is true, when we just send it with the kernel default */
-static void send_from(int fd, int nowild, char *packet, size_t len,
- union mysockaddr *to, struct all_addr *source,
- unsigned int iface)
+void send_from(int fd, int nowild, char *packet, size_t len,
+ union mysockaddr *to, struct all_addr *source,
+ unsigned int iface)
{
struct msghdr msg;
struct iovec iov[1];
@@ -70,7 +70,7 @@ static void send_from(int fd, int nowild, char *packet, size_t len,
p.ipi_spec_dst = source->addr.addr4;
memcpy(CMSG_DATA(cmptr), &p, sizeof(p));
msg.msg_controllen = cmptr->cmsg_len = CMSG_LEN(sizeof(struct in_pktinfo));
- cmptr->cmsg_level = SOL_IP;
+ cmptr->cmsg_level = IPPROTO_IP;
cmptr->cmsg_type = IP_PKTINFO;
#elif defined(IP_SENDSRCADDR)
memcpy(CMSG_DATA(cmptr), &(source->addr.addr4), sizeof(source->addr.addr4));
@@ -88,10 +88,10 @@ static void send_from(int fd, int nowild, char *packet, size_t len,
memcpy(CMSG_DATA(cmptr), &p, sizeof(p));
msg.msg_controllen = cmptr->cmsg_len = CMSG_LEN(sizeof(struct in6_pktinfo));
cmptr->cmsg_type = daemon->v6pktinfo;
- cmptr->cmsg_level = IPV6_LEVEL;
+ cmptr->cmsg_level = IPPROTO_IPV6;
}
#else
- iface = 0; /* eliminate warning */
+ (void)iface; /* eliminate warning */
#endif
}
@@ -703,7 +703,7 @@ void receive_query(struct listener *listen, time_t now)
#if defined(HAVE_LINUX_NETWORK)
if (listen->family == AF_INET)
for (cmptr = CMSG_FIRSTHDR(&msg); cmptr; cmptr = CMSG_NXTHDR(&msg, cmptr))
- if (cmptr->cmsg_level == SOL_IP && cmptr->cmsg_type == IP_PKTINFO)
+ if (cmptr->cmsg_level == IPPROTO_IP && cmptr->cmsg_type == IP_PKTINFO)
{
union {
unsigned char *c;
@@ -743,7 +743,7 @@ void receive_query(struct listener *listen, time_t now)
if (listen->family == AF_INET6)
{
for (cmptr = CMSG_FIRSTHDR(&msg); cmptr; cmptr = CMSG_NXTHDR(&msg, cmptr))
- if (cmptr->cmsg_level == IPV6_LEVEL && cmptr->cmsg_type == daemon->v6pktinfo)
+ if (cmptr->cmsg_level == IPPROTO_IPV6 && cmptr->cmsg_type == daemon->v6pktinfo)
{
union {
unsigned char *c;
@@ -760,7 +760,7 @@ void receive_query(struct listener *listen, time_t now)
/* enforce available interface configuration */
if (!indextoname(listen->fd, if_index, ifr.ifr_name) ||
- !iface_check(listen->family, &dst_addr, ifr.ifr_name, &if_index))
+ !iface_check(listen->family, &dst_addr, ifr.ifr_name))
return;
if (listen->family == AF_INET &&
diff --git a/src/helper.c b/src/helper.c
index 93f99f0..7ef0675 100644
--- a/src/helper.c
+++ b/src/helper.c
@@ -16,6 +16,8 @@
#include "dnsmasq.h"
+#ifdef HAVE_SCRIPT
+
/* This file has code to fork a helper process which recieves data via a pipe
shared with the main process and which is responsible for calling a script when
DHCP leases change.
@@ -28,11 +30,20 @@
main process.
*/
-#if defined(HAVE_DHCP) && defined(HAVE_SCRIPT)
-
static void my_setenv(const char *name, const char *value, int *error);
static unsigned char *grab_extradata(unsigned char *buf, unsigned char *end, char *env, int *err);
+#ifdef HAVE_LUASCRIPT
+#include <lua.h>
+#include <lualib.h>
+#include <lauxlib.h>
+
+lua_State *lua;
+
+static unsigned char *grab_extradata_lua(unsigned char *buf, unsigned char *end, char *field);
+#endif
+
+
struct script_data
{
unsigned char action, hwaddr_len, hwaddr_type;
@@ -61,7 +72,7 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
then fork our process. */
if (pipe(pipefd) == -1 || !fix_fd(pipefd[1]) || (pid = fork()) == -1)
{
- send_event(err_fd, EVENT_PIPE_ERR, errno);
+ send_event(err_fd, EVENT_PIPE_ERR, errno, NULL);
_exit(0);
}
@@ -88,38 +99,98 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
{
if (option_bool(OPT_NO_FORK))
/* send error to daemon process if no-fork */
- send_event(event_fd, EVENT_HUSER_ERR, errno);
+ send_event(event_fd, EVENT_USER_ERR, errno, daemon->scriptuser);
else
{
/* kill daemon */
- send_event(event_fd, EVENT_DIE, 0);
+ send_event(event_fd, EVENT_DIE, 0, NULL);
/* return error */
- send_event(err_fd, EVENT_HUSER_ERR, errno);
+ send_event(err_fd, EVENT_USER_ERR, errno, daemon->scriptuser);
}
_exit(0);
}
}
- /* close all the sockets etc, we don't need them here. This closes err_fd, so that
- main process can return. */
+ /* close all the sockets etc, we don't need them here.
+ Don't close err_fd, in case the lua-init fails.
+ Note that we have to do this before lua init
+ so we don't close any lua fds. */
for (max_fd--; max_fd >= 0; max_fd--)
if (max_fd != STDOUT_FILENO && max_fd != STDERR_FILENO &&
- max_fd != STDIN_FILENO && max_fd != pipefd[0] && max_fd != event_fd)
+ max_fd != STDIN_FILENO && max_fd != pipefd[0] &&
+ max_fd != event_fd && max_fd != err_fd)
close(max_fd);
+#ifdef HAVE_LUASCRIPT
+ if (daemon->luascript)
+ {
+ const char *lua_err = NULL;
+ lua = lua_open();
+ luaL_openlibs(lua);
+
+ /* get Lua to load our script file */
+ if (luaL_dofile(lua, daemon->luascript) != 0)
+ lua_err = lua_tostring(lua, -1);
+ else
+ {
+ lua_getglobal(lua, "lease");
+ if (lua_type(lua, -1) != LUA_TFUNCTION)
+ lua_err = _("lease() function missing in Lua script");
+ }
+
+ if (lua_err)
+ {
+ if (option_bool(OPT_NO_FORK) || option_bool(OPT_DEBUG))
+ /* send error to daemon process if no-fork */
+ send_event(event_fd, EVENT_LUA_ERR, 0, (char *)lua_err);
+ else
+ {
+ /* kill daemon */
+ send_event(event_fd, EVENT_DIE, 0, NULL);
+ /* return error */
+ send_event(err_fd, EVENT_LUA_ERR, 0, (char *)lua_err);
+ }
+ _exit(0);
+ }
+
+ lua_pop(lua, 1); /* remove nil from stack */
+ lua_getglobal(lua, "init");
+ if (lua_type(lua, -1) == LUA_TFUNCTION)
+ lua_call(lua, 0, 0);
+ else
+ lua_pop(lua, 1); /* remove nil from stack */
+ }
+#endif
+
+ /* All init done, close our copy of the error pipe, so that main process can return */
+ if (err_fd != -1)
+ close(err_fd);
+
/* loop here */
while(1)
{
struct script_data data;
- char *p, *action_str, *hostname = NULL;
+ char *p, *action_str, *hostname = NULL, *domain = NULL;
unsigned char *buf = (unsigned char *)daemon->namebuff;
- unsigned char *end, *alloc_buff = NULL;
+ unsigned char *end, *extradata, *alloc_buff = NULL;
int err = 0;
+ free(alloc_buff);
+
/* we read zero bytes when pipe closed: this is our signal to exit */
if (!read_write(pipefd[0], (unsigned char *)&data, sizeof(data), 1))
- _exit(0);
-
+ {
+#ifdef HAVE_LUASCRIPT
+ if (daemon->luascript)
+ {
+ lua_getglobal(lua, "shutdown");
+ if (lua_type(lua, -1) == LUA_TFUNCTION)
+ lua_call(lua, 0, 0);
+ }
+#endif
+ _exit(0);
+ }
+
if (data.action == ACTION_DEL)
action_str = "del";
else if (data.action == ACTION_ADD)
@@ -139,42 +210,142 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
if (i != data.hwaddr_len - 1)
p += sprintf(p, ":");
}
+
+ /* expiry or length into dhcp_buff2 */
+#ifdef HAVE_BROKEN_RTC
+ sprintf(daemon->dhcp_buff2, "%u", data.length);
+#else
+ sprintf(daemon->dhcp_buff2, "%lu", (unsigned long)data.expires);
+#endif
+
+ /* supplied data may just exceed normal buffer (unlikely) */
+ if ((data.hostname_len + data.ed_len + data.clid_len) > MAXDNAME &&
+ !(alloc_buff = buf = malloc(data.hostname_len + data.ed_len + data.clid_len)))
+ continue;
- /* and CLID into packet, avoid overwrite from bad data */
- if ((data.clid_len > daemon->packet_buff_sz) || !read_write(pipefd[0], buf, data.clid_len, 1))
+ if (!read_write(pipefd[0], buf,
+ data.hostname_len + data.ed_len + data.clid_len, 1))
continue;
+
+ /* CLID into packet */
for (p = daemon->packet, i = 0; i < data.clid_len; i++)
{
p += sprintf(p, "%.2x", buf[i]);
if (i != data.clid_len - 1)
p += sprintf(p, ":");
}
-
- /* and expiry or length into dhcp_buff2 */
-#ifdef HAVE_BROKEN_RTC
- sprintf(daemon->dhcp_buff2, "%u", data.length);
+
+ buf += data.clid_len;
+
+ if (data.hostname_len != 0)
+ {
+ char *dot;
+ hostname = (char *)buf;
+ hostname[data.hostname_len - 1] = 0;
+ if (!legal_hostname(hostname))
+ hostname = NULL;
+ else if ((dot = strchr(hostname, '.')))
+ {
+ domain = dot+1;
+ *dot = 0;
+ }
+ }
+
+ extradata = buf + data.hostname_len;
+
+#ifdef HAVE_LUASCRIPT
+ if (daemon->luascript)
+ {
+ lua_getglobal(lua, "lease"); /* function to call */
+ lua_pushstring(lua, action_str); /* arg1 - action */
+ lua_newtable(lua); /* arg2 - data table */
+
+ if (data.clid_len != 0)
+ {
+ lua_pushstring(lua, daemon->packet);
+ lua_setfield(lua, -2, "client_id");
+ }
+
+ if (strlen(data.interface) != 0)
+ {
+ lua_pushstring(lua, data.interface);
+ lua_setfield(lua, -2, "interface");
+ }
+
+#ifdef HAVE_BROKEN_RTC
+ lua_pushnumber(lua, data.length);
+ lua_setfield(lua, -2, "lease_length");
#else
- sprintf(daemon->dhcp_buff2, "%lu", (unsigned long)data.expires);
+ lua_pushnumber(lua, data.expires);
+ lua_setfield(lua, -2, "lease_expires");
#endif
+
+ if (hostname)
+ {
+ lua_pushstring(lua, hostname);
+ lua_setfield(lua, -2, "hostname");
+ }
+
+ if (domain)
+ {
+ lua_pushstring(lua, domain);
+ lua_setfield(lua, -2, "domain");
+ }
+
+ end = extradata + data.ed_len;
+ buf = extradata;
+ buf = grab_extradata_lua(buf, end, "vendor_class");
+ buf = grab_extradata_lua(buf, end, "supplied_hostname");
+ buf = grab_extradata_lua(buf, end, "cpewan_oui");
+ buf = grab_extradata_lua(buf, end, "cpewan_serial");
+ buf = grab_extradata_lua(buf, end, "cpewan_class");
+ buf = grab_extradata_lua(buf, end, "tags");
- /* supplied data may just exceed normal buffer (unlikely) */
- if ((data.hostname_len + data.ed_len) > daemon->packet_buff_sz &&
- !(alloc_buff = buf = malloc(data.hostname_len + data.ed_len)))
- continue;
-
- if (!read_write(pipefd[0], buf,
- data.hostname_len + data.ed_len, 1))
+ for (i = 0; buf; i++)
+ {
+ sprintf(daemon->dhcp_buff2, "user_class%i", i);
+ buf = grab_extradata_lua(buf, end, daemon->dhcp_buff2);
+ }
+
+ if (data.giaddr.s_addr != 0)
+ {
+ lua_pushstring(lua, inet_ntoa(data.giaddr));
+ lua_setfield(lua, -2, "relay_address");
+ }
+
+ if (data.action != ACTION_DEL && data.remaining_time != 0)
+ {
+ lua_pushnumber(lua, data.remaining_time);
+ lua_setfield(lua, -2, "time_remaining");
+ }
+
+ if (data.action == ACTION_OLD_HOSTNAME && hostname)
+ {
+ lua_pushstring(lua, hostname);
+ lua_setfield(lua, -2, "old_hostname");
+ }
+
+ lua_pushstring(lua, daemon->dhcp_buff);
+ lua_setfield(lua, -2, "mac_address");
+
+ lua_pushstring(lua, inet_ntoa(data.addr));
+ lua_setfield(lua, -2, "ip_address");
+
+ lua_call(lua, 2, 0); /* pass 2 values, expect 0 */
+ }
+#endif
+
+ /* no script, just lua */
+ if (!daemon->lease_change_command)
continue;
-
+
/* possible fork errors are all temporary resource problems */
while ((pid = fork()) == -1 && (errno == EAGAIN || errno == ENOMEM))
sleep(2);
- free(alloc_buff);
-
if (pid == -1)
continue;
-
+
/* wait for child to complete */
if (pid != 0)
{
@@ -188,9 +359,9 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
{
/* On error send event back to main process for logging */
if (WIFSIGNALED(status))
- send_event(event_fd, EVENT_KILLED, WTERMSIG(status));
+ send_event(event_fd, EVENT_KILLED, WTERMSIG(status), NULL);
else if (WIFEXITED(status) && WEXITSTATUS(status) != 0)
- send_event(event_fd, EVENT_EXITED, WEXITSTATUS(status));
+ send_event(event_fd, EVENT_EXITED, WEXITSTATUS(status), NULL);
break;
}
@@ -213,22 +384,11 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
my_setenv("DNSMASQ_LEASE_EXPIRES", daemon->dhcp_buff2, &err);
#endif
- if (data.hostname_len != 0)
- {
- char *dot;
- hostname = (char *)buf;
- hostname[data.hostname_len - 1] = 0;
- if (!legal_hostname(hostname))
- hostname = NULL;
- else if ((dot = strchr(hostname, '.')))
- {
- my_setenv("DNSMASQ_DOMAIN", dot+1, &err);
- *dot = 0;
- }
- buf += data.hostname_len;
- }
-
- end = buf + data.ed_len;
+ if (domain)
+ my_setenv("DNSMASQ_DOMAIN", domain, &err);
+
+ end = extradata + data.ed_len;
+ buf = extradata;
buf = grab_extradata(buf, end, "DNSMASQ_VENDOR_CLASS", &err);
buf = grab_extradata(buf, end, "DNSMASQ_SUPPLIED_HOSTNAME", &err);
buf = grab_extradata(buf, end, "DNSMASQ_CPEWAN_OUI", &err);
@@ -245,7 +405,7 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
if (data.giaddr.s_addr != 0)
my_setenv("DNSMASQ_RELAY_ADDRESS", inet_ntoa(data.giaddr), &err);
- if (data.action != ACTION_DEL)
+ if (data.action != ACTION_DEL && data.remaining_time != 0)
{
sprintf(daemon->dhcp_buff2, "%u", data.remaining_time);
my_setenv("DNSMASQ_TIME_REMAINING", daemon->dhcp_buff2, &err);
@@ -271,7 +431,7 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
err = errno;
}
/* failed, send event so the main process logs the problem */
- send_event(event_fd, EVENT_EXEC_ERR, err);
+ send_event(event_fd, EVENT_EXEC_ERR, err, NULL);
_exit(0);
}
}
@@ -305,6 +465,28 @@ static unsigned char *grab_extradata(unsigned char *buf, unsigned char *end, ch
return next + 1;
}
+#ifdef HAVE_LUASCRIPT
+static unsigned char *grab_extradata_lua(unsigned char *buf, unsigned char *end, char *field)
+{
+ unsigned char *next;
+
+ if (!buf || (buf == end))
+ return NULL;
+
+ for (next = buf; *next != 0; next++)
+ if (next == end)
+ return NULL;
+
+ if (next != buf)
+ {
+ lua_pushstring(lua, (char *)buf);
+ lua_setfield(lua, -2, field);
+ }
+
+ return next + 1;
+}
+#endif
+
/* pack up lease data into a buffer */
void queue_script(int action, struct dhcp_lease *lease, char *hostname, time_t now)
{
@@ -358,7 +540,11 @@ void queue_script(int action, struct dhcp_lease *lease, char *hostname, time_t n
#else
buf->expires = lease->expires;
#endif
- buf->remaining_time = (unsigned int)difftime(lease->expires, now);
+
+ if (lease->expires != 0)
+ buf->remaining_time = (unsigned int)difftime(lease->expires, now);
+ else
+ buf->remaining_time = 0;
p = (unsigned char *)(buf+1);
if (clid_len != 0)
@@ -408,3 +594,4 @@ void helper_write(void)
#endif
+
diff --git a/src/lease.c b/src/lease.c
index 0945495..234ebab 100644
--- a/src/lease.c
+++ b/src/lease.c
@@ -24,10 +24,13 @@ static int dns_dirty, file_dirty, leases_left;
void lease_init(time_t now)
{
unsigned long ei;
- struct in_addr addr;
+ struct all_addr addr;
struct dhcp_lease *lease;
int clid_len, hw_len, hw_type;
FILE *leasestream;
+#ifdef HAVE_DHCP6
+ int v6pass = 0;
+#endif
/* These each hold a DHCP option max size 255
and get a terminating zero added */
@@ -70,26 +73,46 @@ void lease_init(time_t now)
rewind(leasestream);
}
+#ifdef HAVE_DHCP6
+ again:
+#endif
+
/* client-id max length is 255 which is 255*2 digits + 254 colons
borrow DNS packet buffer which is always larger than 1000 bytes */
if (leasestream)
- while (fscanf(leasestream, "%lu %255s %16s %255s %764s",
+ while (fscanf(leasestream, "%lu %255s %64s %255s %764s",
&ei, daemon->dhcp_buff2, daemon->namebuff,
daemon->dhcp_buff, daemon->packet) == 5)
{
- hw_len = parse_hex(daemon->dhcp_buff2, (unsigned char *)daemon->dhcp_buff2, DHCP_CHADDR_MAX, NULL, &hw_type);
- /* For backwards compatibility, no explict MAC address type means ether. */
- if (hw_type == 0 && hw_len != 0)
- hw_type = ARPHRD_ETHER;
-
- addr.s_addr = inet_addr(daemon->namebuff);
-
- /* decode hex in place */
+#ifdef HAVE_DHCP6
+ if (!v6pass)
+#endif
+ {
+ hw_len = parse_hex(daemon->dhcp_buff2, (unsigned char *)daemon->dhcp_buff2, DHCP_CHADDR_MAX, NULL, &hw_type);
+ /* For backwards compatibility, no explict MAC address type means ether. */
+ if (hw_type == 0 && hw_len != 0)
+ hw_type = ARPHRD_ETHER;
+ }
+
+#ifdef HAVE_DHCP6
+ if (v6pass)
+ inet_pton(AF_INET6, daemon->namebuff, &addr.addr.addr6);
+ else
+#endif
+ inet_pton(AF_INET, daemon->namebuff, &addr.addr.addr4);
+
clid_len = 0;
if (strcmp(daemon->packet, "*") != 0)
clid_len = parse_hex(daemon->packet, (unsigned char *)daemon->packet, 255, NULL, NULL);
- if (!(lease = lease_allocate(addr)))
+#ifdef HAVE_DHCP6
+ if (v6pass)
+ lease = lease_allocate6(&addr.addr.addr6);
+ else
+#endif
+ lease = lease_allocate4(addr.addr.addr4);
+
+ if (!lease)
die (_("too many stored leases"), NULL, EC_MISC);
#ifdef HAVE_BROKEN_RTC
@@ -103,8 +126,11 @@ void lease_init(time_t now)
even when sizeof(time_t) == 8 */
lease->expires = (time_t)ei;
#endif
-
- lease_set_hwaddr(lease, (unsigned char *)daemon->dhcp_buff2, (unsigned char *)daemon->packet, hw_len, hw_type, clid_len);
+
+#ifdef HAVE_DHCP6
+ if (!v6pass)
+#endif
+ lease_set_hwaddr(lease, (unsigned char *)daemon->dhcp_buff2, (unsigned char *)daemon->packet, hw_len, hw_type, clid_len);
if (strcmp(daemon->dhcp_buff, "*") != 0)
lease_set_hostname(lease, daemon->dhcp_buff, 0);
@@ -113,6 +139,24 @@ void lease_init(time_t now)
the startup synthesised SIGHUP. */
lease->new = lease->changed = 0;
}
+
+#ifdef HAVE_DHCP6
+ if (!v6pass)
+ {
+ if (fscanf(leasestream, "duid %255s", daemon->dhcp_buff) == 1)
+ {
+ daemon->duid_len = parse_hex(daemon->dhcp_buff, (unsigned char *)daemon->dhcp_buff, 130, NULL, NULL);
+ daemon->duid = safe_malloc(daemon->duid_len);
+ memcpy(daemon->duid, daemon->dhcp_buff, daemon->duid_len );
+ v6pass = 1;
+ goto again;
+ }
+
+ /* If we're not doing DHCPv6, and there are not v6 leases, don't add the DUID to the database */
+ if (daemon->dhcp6)
+ make_duid(now);
+ }
+#endif
#ifdef HAVE_SCRIPT
if (!daemon->lease_stream)
@@ -186,11 +230,18 @@ void lease_update_file(time_t now)
for (lease = leases; lease; lease = lease->next)
{
+
+#ifdef HAVE_DHCP6
+ if (lease->is_ipv6)
+ continue;
+#endif
+
#ifdef HAVE_BROKEN_RTC
ourprintf(&err, "%u ", lease->length);
#else
ourprintf(&err, "%lu ", (unsigned long)lease->expires);
#endif
+
if (lease->hwaddr_type != ARPHRD_ETHER || lease->hwaddr_len == 0)
ourprintf(&err, "%.2x-", lease->hwaddr_type);
for (i = 0; i < lease->hwaddr_len; i++)
@@ -199,8 +250,10 @@ void lease_update_file(time_t now)
if (i != lease->hwaddr_len - 1)
ourprintf(&err, ":");
}
+
+ inet_ntop(AF_INET, &lease->addr, daemon->addrbuff, ADDRSTRLEN);
- ourprintf(&err, " %s ", inet_ntoa(lease->addr));
+ ourprintf(&err, " %s ", daemon->addrbuff);
ourprintf(&err, "%s ", lease->hostname ? lease->hostname : "*");
if (lease->clid && lease->clid_len != 0)
@@ -213,6 +266,43 @@ void lease_update_file(time_t now)
ourprintf(&err, "*\n");
}
+#ifdef HAVE_DHCP6
+ if (daemon->duid)
+ {
+ ourprintf(&err, "duid ");
+ for (i = 0; i < daemon->duid_len - 1; i++)
+ ourprintf(&err, "%.2x:", daemon->duid[i]);
+ ourprintf(&err, "%.2x\n", daemon->duid[i]);
+
+ for (lease = leases; lease; lease = lease->next)
+ {
+
+ if (!lease->is_ipv6)
+ continue;
+
+#ifdef HAVE_BROKEN_RTC
+ ourprintf(&err, "%u ", lease->length);
+#else
+ ourprintf(&err, "%lu ", (unsigned long)lease->expires);
+#endif
+
+ inet_ntop(AF_INET6, lease->hwaddr, daemon->addrbuff, ADDRSTRLEN);
+
+ ourprintf(&err, "* %s ", daemon->addrbuff);
+ ourprintf(&err, "%s ", lease->hostname ? lease->hostname : "*");
+
+ if (lease->clid && lease->clid_len != 0)
+ {
+ for (i = 0; i < lease->clid_len - 1; i++)
+ ourprintf(&err, "%.2x:", lease->clid[i]);
+ ourprintf(&err, "%.2x\n", lease->clid[i]);
+ }
+ else
+ ourprintf(&err, "*\n");
+ }
+ }
+#endif
+
if (fflush(daemon->lease_stream) != 0 ||
fsync(fileno(daemon->lease_stream)) < 0)
err = errno;
@@ -275,7 +365,7 @@ void lease_prune(struct dhcp_lease *target, time_t now)
if (lease->hostname)
dns_dirty = 1;
- *up = lease->next; /* unlink */
+ *up = lease->next; /* unlink */
/* Put on old_leases list 'till we
can run the script */
@@ -297,18 +387,30 @@ struct dhcp_lease *lease_find_by_client(unsigned char *hwaddr, int hw_len, int h
if (clid)
for (lease = leases; lease; lease = lease->next)
- if (lease->clid && clid_len == lease->clid_len &&
- memcmp(clid, lease->clid, clid_len) == 0)
- return lease;
+ {
+#ifdef HAVE_DHCP6
+ if (lease->is_ipv6)
+ continue;
+#endif
+ if (lease->clid && clid_len == lease->clid_len &&
+ memcmp(clid, lease->clid, clid_len) == 0)
+ return lease;
+ }
for (lease = leases; lease; lease = lease->next)
- if ((!lease->clid || !clid) &&
- hw_len != 0 &&
- lease->hwaddr_len == hw_len &&
- lease->hwaddr_type == hw_type &&
- memcmp(hwaddr, lease->hwaddr, hw_len) == 0)
- return lease;
-
+ {
+#ifdef HAVE_DHCP6
+ if (lease->is_ipv6)
+ continue;
+#endif
+ if ((!lease->clid || !clid) &&
+ hw_len != 0 &&
+ lease->hwaddr_len == hw_len &&
+ lease->hwaddr_type == hw_type &&
+ memcmp(hwaddr, lease->hwaddr, hw_len) == 0)
+ return lease;
+ }
+
return NULL;
}
@@ -317,9 +419,15 @@ struct dhcp_lease *lease_find_by_addr(struct in_addr addr)
struct dhcp_lease *lease;
for (lease = leases; lease; lease = lease->next)
- if (lease->addr.s_addr == addr.s_addr)
- return lease;
-
+ {
+#ifdef HAVE_DHCP6
+ if (lease->is_ipv6)
+ continue;
+#endif
+ if (lease->addr.s_addr == addr.s_addr)
+ return lease;
+ }
+
return NULL;
}
@@ -331,15 +439,21 @@ struct in_addr lease_find_max_addr(struct dhcp_context *context)
if (!(context->flags & (CONTEXT_STATIC | CONTEXT_PROXY)))
for (lease = leases; lease; lease = lease->next)
- if (((unsigned)ntohl(lease->addr.s_addr)) > ((unsigned)ntohl(context->start.s_addr)) &&
- ((unsigned)ntohl(lease->addr.s_addr)) <= ((unsigned)ntohl(context->end.s_addr)) &&
- ((unsigned)ntohl(lease->addr.s_addr)) > ((unsigned)ntohl(addr.s_addr)))
- addr = lease->addr;
+ {
+#ifdef HAVE_DHCP6
+ if (lease->is_ipv6)
+ continue;
+#endif
+ if (((unsigned)ntohl(lease->addr.s_addr)) > ((unsigned)ntohl(context->start.s_addr)) &&
+ ((unsigned)ntohl(lease->addr.s_addr)) <= ((unsigned)ntohl(context->end.s_addr)) &&
+ ((unsigned)ntohl(lease->addr.s_addr)) > ((unsigned)ntohl(addr.s_addr)))
+ addr = lease->addr;
+ }
return addr;
}
-struct dhcp_lease *lease_allocate(struct in_addr addr)
+static struct dhcp_lease *lease_allocate(void)
{
struct dhcp_lease *lease;
if (!leases_left || !(lease = whine_malloc(sizeof(struct dhcp_lease))))
@@ -347,8 +461,6 @@ struct dhcp_lease *lease_allocate(struct in_addr addr)
memset(lease, 0, sizeof(struct dhcp_lease));
lease->new = 1;
- lease->addr = addr;
- lease->hwaddr_len = 256; /* illegal value */
lease->expires = 1;
#ifdef HAVE_BROKEN_RTC
lease->length = 0xffffffff; /* illegal value */
@@ -362,6 +474,26 @@ struct dhcp_lease *lease_allocate(struct in_addr addr)
return lease;
}
+struct dhcp_lease *lease_allocate4(struct in_addr addr)
+{
+ struct dhcp_lease *lease = lease_allocate();
+ lease->addr = addr;
+ lease->hwaddr_len = 256; /* illegal value */
+
+ return lease;
+}
+
+#ifdef HAVE_DHCP6
+struct dhcp_lease *lease_allocate6(struct in6_addr *addrp)
+{
+ struct dhcp_lease *lease = lease_allocate();
+ memcpy(lease->hwaddr, addrp, sizeof(*addrp)) ;
+ lease->is_ipv6 = 1;
+
+ return lease;
+}
+#endif
+
void lease_set_expires(struct dhcp_lease *lease, unsigned int len, time_t now)
{
time_t exp = now + (time_t)len;
diff --git a/src/log.c b/src/log.c
index 08ce62b..881597e 100644
--- a/src/log.c
+++ b/src/log.c
@@ -84,7 +84,7 @@ int log_start(struct passwd *ent_pw, int errfd)
if (!log_reopen(daemon->log_file))
{
- send_event(errfd, EVENT_LOG_ERR, errno);
+ send_event(errfd, EVENT_LOG_ERR, errno, daemon->log_file ? daemon->log_file : "");
_exit(0);
}
@@ -196,7 +196,7 @@ static void log_write(void)
if (errno == EINTR)
continue;
- if (errno == EAGAIN)
+ if (errno == EAGAIN || errno == EWOULDBLOCK)
return; /* syslogd busy, go again when select() or poll() says so */
if (errno == ENOBUFS)
@@ -244,7 +244,8 @@ static void log_write(void)
errno == ECONNREFUSED ||
errno == EISCONN ||
errno == EINTR ||
- errno == EAGAIN)
+ errno == EAGAIN ||
+ errno == EWOULDBLOCK)
{
/* try again on next syslog() call */
connection_good = 0;
diff --git a/src/netlink.c b/src/netlink.c
index 6ece177..a9cc41e 100644
--- a/src/netlink.c
+++ b/src/netlink.c
@@ -34,6 +34,7 @@
# define NDA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ndmsg))))
#endif
+
static struct iovec iov;
static u32 netlink_pid;
@@ -127,7 +128,8 @@ static ssize_t netlink_recv(void)
}
-/* family = AF_UNSPEC finds ARP table entries. */
+/* family = AF_UNSPEC finds ARP table entries.
+ family = AF_LOCAL finds MAC addresses. */
int iface_enumerate(int family, void *parm, int (*callback)())
{
struct sockaddr_nl addr;
@@ -144,10 +146,16 @@ int iface_enumerate(int family, void *parm, int (*callback)())
addr.nl_pad = 0;
addr.nl_groups = 0;
addr.nl_pid = 0; /* address to kernel */
+
+ again:
+ if (family == AF_UNSPEC)
+ req.nlh.nlmsg_type = RTM_GETNEIGH;
+ else if (family == AF_LOCAL)
+ req.nlh.nlmsg_type = RTM_GETLINK;
+ else
+ req.nlh.nlmsg_type = RTM_GETADDR;
- again:
req.nlh.nlmsg_len = sizeof(req);
- req.nlh.nlmsg_type = family == AF_UNSPEC ? RTM_GETNEIGH : RTM_GETADDR;
req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST | NLM_F_ACK;
req.nlh.nlmsg_pid = 0;
req.nlh.nlmsg_seq = ++seq;
@@ -179,7 +187,7 @@ int iface_enumerate(int family, void *parm, int (*callback)())
nl_err(h);
else if (h->nlmsg_type == NLMSG_DONE)
return 1;
- else if (h->nlmsg_type == RTM_NEWADDR && family != AF_UNSPEC)
+ else if (h->nlmsg_type == RTM_NEWADDR && family != AF_UNSPEC && family != AF_LOCAL)
{
struct ifaddrmsg *ifa = NLMSG_DATA(h);
struct rtattr *rta = IFA_RTA(ifa);
@@ -222,7 +230,7 @@ int iface_enumerate(int family, void *parm, int (*callback)())
}
if (addrp)
- if (!((*callback)(addrp, ifa->ifa_index,
+ if (!((*callback)(addrp, ifa->ifa_prefixlen, ifa->ifa_index,
ifa->ifa_index, ifa->ifa_flags & IFA_F_TENTATIVE, parm)))
return 0;
}
@@ -253,7 +261,31 @@ int iface_enumerate(int family, void *parm, int (*callback)())
if (inaddr && mac)
if (!((*callback)(neigh->ndm_family, inaddr, mac, maclen, parm)))
return 0;
- }
+ }
+#ifdef HAVE_DHCP6
+ else if (h->nlmsg_type == RTM_NEWLINK && family == AF_LOCAL)
+ {
+ struct ifinfomsg *link = NLMSG_DATA(h);
+ struct rtattr *rta = IFLA_RTA(link);
+ unsigned int len1 = h->nlmsg_len - NLMSG_LENGTH(sizeof(*link));
+ char *mac = NULL;
+ size_t maclen = 0;
+
+ while (RTA_OK(rta, len1))
+ {
+ if (rta->rta_type == IFLA_ADDRESS)
+ {
+ maclen = rta->rta_len - sizeof(struct rtattr);
+ mac = (char *)(rta+1);
+ }
+
+ rta = RTA_NEXT(rta, len1);
+ }
+
+ if (mac && !((*callback)(link->ifi_type, link->ifi_flags, mac, maclen, parm)))
+ return 0;
+ }
+#endif
}
}
diff --git a/src/network.c b/src/network.c
index ee590d8..8ac2ae4 100644
--- a/src/network.c
+++ b/src/network.c
@@ -107,7 +107,7 @@ int indextoname(int fd, int index, char *name)
#endif
-int iface_check(int family, struct all_addr *addr, char *name, int *indexp)
+int iface_check(int family, struct all_addr *addr, char *name)
{
struct iname *tmp;
int ret = 1;
@@ -115,7 +115,7 @@ int iface_check(int family, struct all_addr *addr, char *name, int *indexp)
/* Note: have to check all and not bail out early, so that we set the
"used" flags. */
- if (daemon->if_names || (addr && daemon->if_addrs))
+ if (daemon->if_names || daemon->if_addrs)
{
#ifdef HAVE_DHCP
struct dhcp_context *range;
@@ -134,7 +134,7 @@ int iface_check(int family, struct all_addr *addr, char *name, int *indexp)
ret = tmp->used = 1;
for (tmp = daemon->if_addrs; tmp; tmp = tmp->next)
- if (addr && tmp->addr.sa.sa_family == family)
+ if (tmp->addr.sa.sa_family == family)
{
if (family == AF_INET &&
tmp->addr.in.sin_addr.s_addr == addr->addr.addr4.s_addr)
@@ -151,38 +151,7 @@ int iface_check(int family, struct all_addr *addr, char *name, int *indexp)
for (tmp = daemon->if_except; tmp; tmp = tmp->next)
if (tmp->name && (strcmp(tmp->name, name) == 0))
ret = 0;
-
- if (indexp)
- {
- /* One form of bridging on BSD has the property that packets
- can be recieved on bridge interfaces which do not have an IP address.
- We allow these to be treated as aliases of another interface which does have
- an IP address with --dhcp-bridge=interface,alias,alias */
- struct dhcp_bridge *bridge, *alias;
- for (bridge = daemon->bridges; bridge; bridge = bridge->next)
- {
- for (alias = bridge->alias; alias; alias = alias->next)
- if (strncmp(name, alias->iface, IF_NAMESIZE) == 0)
- {
- int newindex;
-
- if (!(newindex = if_nametoindex(bridge->iface)))
- {
- my_syslog(LOG_WARNING, _("unknown interface %s in bridge-interface"), name);
- return 0;
- }
- else
- {
- *indexp = newindex;
- strncpy(name, bridge->iface, IF_NAMESIZE);
- break;
- }
- }
- if (alias)
- break;
- }
- }
-
+
return ret;
}
@@ -263,7 +232,7 @@ static int iface_allowed(struct irec **irecp, int if_index,
if (!ir)
{
if (addr->sa.sa_family == AF_INET &&
- !iface_check(AF_INET, (struct all_addr *)&addr->in.sin_addr, ifr.ifr_name, NULL))
+ !iface_check(AF_INET, (struct all_addr *)&addr->in.sin_addr, ifr.ifr_name))
return 1;
#ifdef HAVE_DHCP
@@ -274,7 +243,7 @@ static int iface_allowed(struct irec **irecp, int if_index,
#ifdef HAVE_IPV6
if (addr->sa.sa_family == AF_INET6 &&
- !iface_check(AF_INET6, (struct all_addr *)&addr->in6.sin6_addr, ifr.ifr_name, NULL))
+ !iface_check(AF_INET6, (struct all_addr *)&addr->in6.sin6_addr, ifr.ifr_name))
return 1;
#endif
}
@@ -300,12 +269,13 @@ static int iface_allowed(struct irec **irecp, int if_index,
}
#ifdef HAVE_IPV6
-static int iface_allowed_v6(struct in6_addr *local,
+static int iface_allowed_v6(struct in6_addr *local, int prefix,
int scope, int if_index, int dad, void *vparam)
{
union mysockaddr addr;
struct in_addr netmask; /* dummy */
+ (void)prefix; /* warning */
netmask.s_addr = 0;
memset(&addr, 0, sizeof(addr));
@@ -392,7 +362,7 @@ static int make_sock(union mysockaddr *addr, int type, int dienow)
goto err;
#ifdef HAVE_IPV6
- if (family == AF_INET6 && setsockopt(fd, IPV6_LEVEL, IPV6_V6ONLY, &opt, sizeof(opt)) == -1)
+ if (family == AF_INET6 && setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &opt, sizeof(opt)) == -1)
goto err;
#endif
@@ -409,7 +379,7 @@ static int make_sock(union mysockaddr *addr, int type, int dienow)
if (family == AF_INET)
{
#if defined(HAVE_LINUX_NETWORK)
- if (setsockopt(fd, SOL_IP, IP_PKTINFO, &opt, sizeof(opt)) == -1)
+ if (setsockopt(fd, IPPROTO_IP, IP_PKTINFO, &opt, sizeof(opt)) == -1)
goto err;
#elif defined(IP_RECVDSTADDR) && defined(IP_RECVIF)
if (setsockopt(fd, IPPROTO_IP, IP_RECVDSTADDR, &opt, sizeof(opt)) == -1 ||
@@ -418,36 +388,42 @@ static int make_sock(union mysockaddr *addr, int type, int dienow)
#endif
}
#ifdef HAVE_IPV6
- else
- {
- /* The API changed around Linux 2.6.14 but the old ABI is still supported:
- handle all combinations of headers and kernel.
- OpenWrt note that this fixes the problem addressed by your very broken patch. */
- daemon->v6pktinfo = IPV6_PKTINFO;
-
-# ifdef IPV6_RECVPKTINFO
-# ifdef IPV6_2292PKTINFO
- if (setsockopt(fd, IPV6_LEVEL, IPV6_RECVPKTINFO, &opt, sizeof(opt)) == -1)
- {
- if (errno == ENOPROTOOPT && setsockopt(fd, IPV6_LEVEL, IPV6_2292PKTINFO, &opt, sizeof(opt)) != -1)
- daemon->v6pktinfo = IPV6_2292PKTINFO;
- else
- goto err;
- }
-# else
- if (setsockopt(fd, IPV6_LEVEL, IPV6_RECVPKTINFO, &opt, sizeof(opt)) == -1)
- goto err;
-# endif
-# else
- if (setsockopt(fd, IPV6_LEVEL, IPV6_PKTINFO, &opt, sizeof(opt)) == -1)
- goto err;
-# endif
- }
+ else if (!set_ipv6pktinfo(fd))
+ goto err;
#endif
}
-
+
return fd;
}
+
+#ifdef HAVE_IPV6
+int set_ipv6pktinfo(int fd)
+{
+ int opt = 1;
+
+ /* The API changed around Linux 2.6.14 but the old ABI is still supported:
+ handle all combinations of headers and kernel.
+ OpenWrt note that this fixes the problem addressed by your very broken patch. */
+ daemon->v6pktinfo = IPV6_PKTINFO;
+
+#ifdef IPV6_RECVPKTINFO
+ if (setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &opt, sizeof(opt)) != -1)
+ return 1;
+# ifdef IPV6_2292PKTINFO
+ else if (errno == ENOPROTOOPT && setsockopt(fd, IPPROTO_IPV6, IPV6_2292PKTINFO, &opt, sizeof(opt)) != -1)
+ {
+ daemon->v6pktinfo = IPV6_2292PKTINFO;
+ return 1;
+ }
+# endif
+#else
+ if (setsockopt(fd, IPPROTO_IPV6, IPV6_PKTINFO, &opt, sizeof(opt)) != -1)
+ return 1;
+#endif
+
+ return 0;
+}
+#endif
static struct listener *create_listeners(union mysockaddr *addr, int do_tftp, int dienow)
{
diff --git a/src/option.c b/src/option.c
index 7e8f47a..1ac081e 100644
--- a/src/option.c
+++ b/src/option.c
@@ -112,6 +112,8 @@ struct myoption {
#define LOPT_DNSSEC 301
#define LOPT_INCR_ADDR 302
#define LOPT_CONNTRACK 303
+#define LOPT_FQDN 304
+#define LOPT_LUASCRIPT 305
#ifdef HAVE_GETOPT_LONG
static const struct option opts[] =
@@ -229,6 +231,8 @@ static const struct myoption opts[] =
{ "proxy-dnssec", 0, 0, LOPT_DNSSEC },
{ "dhcp-sequential-ip", 0, 0, LOPT_INCR_ADDR },
{ "conntrack", 0, 0, LOPT_CONNTRACK },
+ { "dhcp-client-update", 0, 0, LOPT_FQDN },
+ { "dhcp-luascript", 1, 0, LOPT_LUASCRIPT },
{ NULL, 0, 0, 0 }
};
@@ -353,6 +357,8 @@ static struct {
{ LOPT_DNSSEC, OPT_DNSSEC, NULL, gettext_noop("Proxy DNSSEC validation results from upstream nameservers."), NULL },
{ LOPT_INCR_ADDR, OPT_CONSEC_ADDR, NULL, gettext_noop("Attempt to allocate sequential IP addresses to DHCP clients."), NULL },
{ LOPT_CONNTRACK, OPT_CONNTRACK, NULL, gettext_noop("Copy connection-track mark from queries to upstream connections."), NULL },
+ { LOPT_FQDN, OPT_FQDN_UPDATE, NULL, gettext_noop("Allow DHCP clients to do their own DDNS updates."), NULL },
+ { LOPT_LUASCRIPT, ARG_DUP, "luascript", gettext_noop("Specify path to Lua script (no default)."), NULL },
{ 0, 0, NULL, NULL, NULL }
};
@@ -1295,16 +1301,25 @@ static char *one_opt(int option, char *arg, char *gen_prob, int command_line)
daemon->lease_file = opt_string_alloc(arg);
break;
- case '6': /* --dhcp-script */
+ /* Sorry about the gross pre-processor abuse */
+ case '6': /* --dhcp-script */
+ case LOPT_LUASCRIPT: /* --dhcp-luascript */
# if defined(NO_FORK)
problem = _("cannot run scripts under uClinux");
# elif !defined(HAVE_SCRIPT)
problem = _("recompile with HAVE_SCRIPT defined to enable lease-change scripts");
# else
- daemon->lease_change_command = opt_string_alloc(arg);
+ if (option == LOPT_LUASCRIPT)
+# if !defined(HAVE_LUASCRIPT)
+ problem = _("recompile with HAVE_LUASCRIPT defined to enable Lua scripts");
+# else
+ daemon->luascript = opt_string_alloc(arg);
+# endif
+ else
+ daemon->lease_change_command = opt_string_alloc(arg);
# endif
break;
-#endif
+#endif /* HAVE_DHCP */
case LOPT_DHCP_HOST: /* --dhcp-hostfile */
case LOPT_DHCP_OPTS: /* --dhcp-optsfile */
@@ -3299,7 +3314,7 @@ void read_opts(int argc, char **argv, char *compile_opts)
else if (option == 'v')
{
printf(_("Dnsmasq version %s %s\n"), VERSION, COPYRIGHT);
- printf(_("Compile time options %s\n\n"), compile_opts);
+ printf(_("Compile time options: %s\n\n"), compile_opts);
printf(_("This software comes with ABSOLUTELY NO WARRANTY.\n"));
printf(_("Dnsmasq is free software, and you are welcome to redistribute it\n"));
printf(_("under the terms of the GNU General Public License, version 2 or 3.\n"));
diff --git a/src/rfc2131.c b/src/rfc2131.c
index b96b197..4375550 100644
--- a/src/rfc2131.c
+++ b/src/rfc2131.c
@@ -481,7 +481,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
if (!message &&
!lease &&
- (!(lease = lease_allocate(mess->yiaddr))))
+ (!(lease = lease_allocate4(mess->yiaddr))))
message = _("no leases left");
if (!message)
@@ -521,11 +521,10 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
pp = op;
/* Always force update, since the client has no way to do it itself. */
- if (!(fqdn_flags & 0x01))
- fqdn_flags |= 0x02;
-
+ if (!option_bool(OPT_FQDN_UPDATE) && !(fqdn_flags & 0x01))
+ fqdn_flags |= 0x03;
+
fqdn_flags &= ~0x08;
- fqdn_flags |= 0x01;
if (fqdn_flags & 0x04)
while (*op != 0 && ((op + (*op) + 1) - pp) < len)
@@ -1190,7 +1189,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
else if (!lease)
{
- if ((lease = lease_allocate(mess->yiaddr)))
+ if ((lease = lease_allocate4(mess->yiaddr)))
do_classes = 1;
else
message = _("no leases left");
diff --git a/src/rfc3315.c b/src/rfc3315.c
new file mode 100644
index 0000000..8de65ae
--- /dev/null
+++ b/src/rfc3315.c
@@ -0,0 +1,298 @@
+/* dnsmasq is Copyright (c) 2000-2011 Simon Kelley
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 dated June, 1991, or
+ (at your option) version 3 dated 29 June, 2007.
+
+ 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+#include "dnsmasq.h"
+
+#ifdef HAVE_DHCP6
+
+static size_t outpacket_counter;
+
+static int make_duid1(unsigned short type, unsigned int flags, char *mac,
+ size_t maclen, void *parm);
+
+void make_duid(time_t now)
+{
+ iface_enumerate(AF_LOCAL, &now, make_duid1);
+
+ if (!daemon->duid)
+ die("Cannot create DHCPv6 server DUID", NULL, EC_MISC);
+}
+
+static int make_duid1(unsigned short type, unsigned int flags, char *mac,
+ size_t maclen, void *parm)
+{
+ /* create DUID as specified in RFC3315. We use the MAC of the
+ first interface we find that isn't loopback or P-to-P */
+
+ unsigned char *p;
+
+ if (flags & (IFF_LOOPBACK | IFF_POINTOPOINT))
+ return 1;
+
+ daemon->duid = p = safe_malloc(maclen + 8);
+ daemon->duid_len = maclen + 8;
+ PUTSHORT(1, p); /* DUID_LLT */
+ PUTSHORT(type, p); /* address type */
+ PUTLONG(*((time_t *)parm), p); /* time */
+ memcpy(p, mac, maclen);
+
+ return 0;
+}
+
+void *opt6_find (void *opts, void *end, unsigned int search, unsigned int minsize)
+{
+ u16 opt, opt_len;
+ void *start;
+
+ if (!opts)
+ return NULL;
+
+ while (1)
+ {
+ if (end - opts < 4)
+ return NULL;
+
+ start = opts;
+ GETSHORT(opt, opts);
+ GETSHORT(opt_len, opts);
+
+ if (opt_len > (end - opts))
+ return NULL;
+
+ if (opt == search && (opt_len >= minsize))
+ return start;
+
+ opts += opt_len;
+ }
+}
+
+void *opt6_next(void *opts, void *end)
+{
+ u16 opt_len;
+
+ if (end - opts < 4)
+ return NULL;
+
+ opts += 2;
+ GETSHORT(opt_len, opts);
+
+ if (opt_len >= (end - opts))
+ return NULL;
+
+ return opts + opt_len;
+}
+
+
+#define opt6_len(opt) ((int)(((unsigned short *)(opt))[1]))
+#define opt6_ptr(opt, i) ((void *)&(((unsigned char *)(opt))[4u+(unsigned int)(i)]))
+
+
+static unsigned int opt6_uint(unsigned char *opt, int offset, int size)
+{
+ /* this worries about unaligned data and byte order */
+ unsigned int ret = 0;
+ int i;
+ unsigned char *p = opt6_ptr(opt, offset);
+
+ for (i = 0; i < size; i++)
+ ret = (ret << 8) | *p++;
+
+ return ret;
+}
+
+/*
+ daemon->outpacket_counter = 4; message type and ID
+
+ elapsed time:
+ int o = new_opt(OPTION_ELAPSED_TIME);
+ put_opt_short(o, 100)
+ finalise_opt(o);
+
+ IA_NA
+
+ int o = new_opt(OPTION_IA_NA);
+ put_opt_long(o, IAID);
+ put_opt_long(o, T1);
+ put_opt_long(0, T2);
+ int o1 = new_opt(OPTION_IAADDR);
+ put_opt(o1, &addr, sizeof(addr));
+ put_opt_long(o1, preferred_lifetime);
+ put_opt_long(o1, valid_lifetime);
+ finalise_opt(o1);
+ finalise_opt(o);
+
+
+*/
+
+
+
+
+
+void end_opt6(int container)
+{
+ void *p = daemon->outpacket.iov_base + container + 2;
+ u16 len = outpacket_counter - container - 4 ;
+
+ PUTSHORT(len, p);
+}
+
+static void *expand(size_t headroom)
+{
+ void *ret;
+
+ if (expand_buf(&daemon->outpacket, outpacket_counter + headroom))
+ {
+ ret = daemon->outpacket.iov_base + outpacket_counter;
+ outpacket_counter += headroom;
+ return ret;
+ }
+
+ return NULL;
+}
+
+int new_opt6(int opt)
+{
+ int ret = outpacket_counter;
+ void *p;
+
+ if ((p = expand(4)))
+ {
+ PUTSHORT(opt, p);
+ PUTSHORT(0, p);
+ }
+
+ return ret;
+}
+
+
+
+
+void *put_opt6(void *data, size_t len)
+{
+ void *p;
+
+ if (data && (p = expand(len)))
+ memcpy(p, data, len);
+
+ return p;
+}
+
+void put_opt6_long(unsigned int val)
+{
+ void *p;
+
+ if (( p = expand(4)))
+ PUTLONG(p, val);
+}
+
+void put_opt6_short(unsigned int val)
+{
+ void *p;
+
+ if ((p = expand(2)))
+ PUTSHORT(val, p);
+}
+
+void put_opt6_byte(unsigned int val)
+{
+ void *p;
+
+ if ((p = expand(1)))
+ *((unsigned char *)p) = val;
+}
+
+size_t dhcp6_reply(struct dhcp_context *context, size_t sz)
+{
+ void *packet_options = ((void *)daemon->dhcp_packet.iov_base) + 4;
+ void *end = ((void *)daemon->dhcp_packet.iov_base) + sz;
+ void *na_option, *na_end;
+ void *opt, *p;
+ int o;
+
+ outpacket_counter = 4; /* skip message type and transaction-id */
+
+ if (!(opt = opt6_find(packet_options, end, OPTION6_CLIENT_ID, 1)))
+ return;
+
+ o = new_opt6(OPTION6_CLIENT_ID);
+ put_opt6(opt6_ptr(opt, 0), opt6_len(opt));
+ end_opt6(o);
+
+ o = new_opt6(OPTION6_SERVER_ID);
+ put_opt6(daemon->duid, daemon->duid_len);
+ end_opt6(o);
+
+ if ((opt = opt6_find(packet_options, end, OPTION6_IA_NA, 12)))
+ {
+ while (opt = opt6_find(opt, end, OPTION6_IA_NA, 12))
+ {
+ void *ia_end = opt6_ptr(opt, opt6_len(opt));
+ void *ia_option = opt6_find(opt6_ptr(opt, 12), ia_end, OPTION6_IAADDR, 24);
+
+ unsigned int iaid = opt6_uint(opt, 0, 4);
+ unsigned int t1 = opt6_uint(opt, 4, 4);
+ unsigned int t2 = opt6_uint(opt, 8, 4);
+
+
+ if (ia_option)
+ while ((ia_option = ia_option, ia_end, OPTION6_IAADDR, 24))
+ {
+ /* do address option */
+
+ ia_option = opt6_next(ia_option, ia_end);
+ }
+ else
+ {
+ /* no preferred address call address allocate */
+
+ }
+
+ opt = opt6_next(opt, end);
+ }
+ }
+ else if ((opt = opt6_find(packet_options, end, OPTION6_IA_TA, 4)))
+ while (opt = opt6_find(opt, end, OPTION6_IA_TA, 4))
+ {
+ void *ia_end = opt6_ptr(opt, opt6_len(opt));
+ void *ia_option = opt6_find(opt6_ptr(opt, 4), ia_end, OPTION6_IAADDR, 24);
+
+ unsigned int iaid = opt6_uint(opt, 0, 4);
+
+ if (ia_option)
+ while ((ia_option = ia_option, ia_end, OPTION6_IAADDR, 24))
+ {
+ /* do address option */
+
+ ia_option = opt6_next(ia_option, ia_end);
+ }
+ else
+ {
+ /* no preferred address */
+
+ }
+
+ opt = opt6_next(opt, end);
+ }
+ else
+ return; /* no IA_NA and no IA_TA */
+
+
+
+}
+
+#endif
+
diff --git a/src/tftp.c b/src/tftp.c
index 9cecdd9..a554472 100644
--- a/src/tftp.c
+++ b/src/tftp.c
@@ -57,7 +57,6 @@ void tftp_request(struct listener *listen, time_t now)
int mtuflag = IP_PMTUDISC_DONT;
#endif
char namebuff[IF_NAMESIZE];
- char pretty_addr[ADDRSTRLEN];
char *name;
char *prefix = daemon->tftp_prefix;
struct tftp_prefix *pref;
@@ -114,7 +113,7 @@ void tftp_request(struct listener *listen, time_t now)
#if defined(HAVE_LINUX_NETWORK)
if (listen->family == AF_INET)
for (cmptr = CMSG_FIRSTHDR(&msg); cmptr; cmptr = CMSG_NXTHDR(&msg, cmptr))
- if (cmptr->cmsg_level == SOL_IP && cmptr->cmsg_type == IP_PKTINFO)
+ if (cmptr->cmsg_level == IPPROTO_IP && cmptr->cmsg_type == IP_PKTINFO)
{
union {
unsigned char *c;
@@ -163,7 +162,7 @@ void tftp_request(struct listener *listen, time_t now)
if (listen->family == AF_INET6)
{
for (cmptr = CMSG_FIRSTHDR(&msg); cmptr; cmptr = CMSG_NXTHDR(&msg, cmptr))
- if (cmptr->cmsg_level == IPV6_LEVEL && cmptr->cmsg_type == daemon->v6pktinfo)
+ if (cmptr->cmsg_level == IPPROTO_IPV6 && cmptr->cmsg_type == daemon->v6pktinfo)
{
union {
unsigned char *c;
@@ -184,10 +183,10 @@ void tftp_request(struct listener *listen, time_t now)
#ifdef HAVE_IPV6
if (listen->family == AF_INET6)
- check = iface_check(AF_INET6, (struct all_addr *)&addr.in6.sin6_addr, name, &if_index);
+ check = iface_check(AF_INET6, (struct all_addr *)&addr.in6.sin6_addr, name);
else
#endif
- check = iface_check(AF_INET, (struct all_addr *)&addr.in.sin_addr, name, &if_index);
+ check = iface_check(AF_INET, (struct all_addr *)&addr.in.sin_addr, name);
/* wierd TFTP service override */
for (ir = daemon->tftp_interfaces; ir; ir = ir->next)
@@ -260,14 +259,14 @@ void tftp_request(struct listener *listen, time_t now)
transfer->opt_blocksize = transfer->opt_transize = 0;
transfer->netascii = transfer->carrylf = 0;
- prettyprint_addr(&peer, pretty_addr);
+ prettyprint_addr(&peer, daemon->addrbuff);
/* if we have a nailed-down range, iterate until we find a free one. */
while (1)
{
if (bind(transfer->sockfd, &addr.sa, sa_len(&addr)) == -1 ||
#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT)
- setsockopt(transfer->sockfd, SOL_IP, IP_MTU_DISCOVER, &mtuflag, sizeof(mtuflag)) == -1 ||
+ setsockopt(transfer->sockfd, IPPROTO_IP, IP_MTU_DISCOVER, &mtuflag, sizeof(mtuflag)) == -1 ||
#endif
!fix_fd(transfer->sockfd))
{
@@ -298,7 +297,7 @@ void tftp_request(struct listener *listen, time_t now)
!(filename = next(&p, end)) ||
!(mode = next(&p, end)) ||
(strcasecmp(mode, "octet") != 0 && strcasecmp(mode, "netascii") != 0))
- len = tftp_err(ERR_ILL, packet, _("unsupported request from %s"), pretty_addr);
+ len = tftp_err(ERR_ILL, packet, _("unsupported request from %s"), daemon->addrbuff);
else
{
if (strcasecmp(mode, "netascii") == 0)
@@ -348,7 +347,7 @@ void tftp_request(struct listener *listen, time_t now)
size_t oldlen = strlen(daemon->namebuff);
struct stat statbuf;
- strncat(daemon->namebuff, pretty_addr, (MAXDNAME-1) - strlen(daemon->namebuff));
+ strncat(daemon->namebuff, daemon->addrbuff, (MAXDNAME-1) - strlen(daemon->namebuff));
strncat(daemon->namebuff, "/", (MAXDNAME-1) - strlen(daemon->namebuff));
/* remove unique-directory if it doesn't exist */
@@ -478,7 +477,6 @@ void check_tftp_listeners(fd_set *rset, time_t now)
{
struct tftp_transfer *transfer, *tmp, **up;
ssize_t len;
- char pretty_addr[ADDRSTRLEN];
struct ack {
unsigned short op, block;
@@ -494,7 +492,7 @@ void check_tftp_listeners(fd_set *rset, time_t now)
/* we overwrote the buffer... */
daemon->srv_save = NULL;
- prettyprint_addr(&transfer->peer, pretty_addr);
+ prettyprint_addr(&transfer->peer, daemon->addrbuff);
if ((len = recv(transfer->sockfd, daemon->packet, daemon->packet_buff_sz, 0)) >= (ssize_t)sizeof(struct ack))
{
@@ -526,7 +524,7 @@ void check_tftp_listeners(fd_set *rset, time_t now)
my_syslog(MS_TFTP | LOG_ERR, _("error %d %s received from %s"),
(int)ntohs(mess->block), err,
- pretty_addr);
+ daemon->addrbuff);
/* Got err, ensure we take abort */
transfer->timeout = now;
@@ -557,7 +555,7 @@ void check_tftp_listeners(fd_set *rset, time_t now)
if (len != 0)
{
my_syslog(MS_TFTP | LOG_ERR, _("failed sending %s to %s"),
- transfer->file->filename, pretty_addr);
+ transfer->file->filename, daemon->addrbuff);
len = 0;
endcon = 1;
}
@@ -570,7 +568,7 @@ void check_tftp_listeners(fd_set *rset, time_t now)
if (endcon || len == 0)
{
if (!endcon)
- my_syslog(MS_TFTP | LOG_INFO, _("sent %s to %s"), transfer->file->filename, pretty_addr);
+ my_syslog(MS_TFTP | LOG_INFO, _("sent %s to %s"), transfer->file->filename, daemon->addrbuff);
/* unlink */
*up = tmp;
free_transfer(transfer);
diff --git a/src/util.c b/src/util.c
index e11360b..4c816b9 100644
--- a/src/util.c
+++ b/src/util.c
@@ -320,6 +320,25 @@ int is_same_net(struct in_addr a, struct in_addr b, struct in_addr mask)
return (a.s_addr & mask.s_addr) == (b.s_addr & mask.s_addr);
}
+#ifdef HAVE_IPV6
+int is_same_net6(struct in6_addr *a, struct in6_addr *b, int prefixlen)
+{
+ int pfbytes = prefixlen >> 3;
+ int pfbits = prefixlen & 7;
+
+ if (memcmp(&a->s6_addr, &b->s6_addr, pfbytes) != 0)
+ return 0;
+
+ if (pfbits == 0 ||
+ (a->s6_addr[pfbytes] >> (8 - pfbits) != b->s6_addr[pfbytes] >> (8 - pfbits)))
+ return 1;
+
+ return 0;
+}
+
+#endif
+
+
/* returns port number from address */
int prettyprint_addr(union mysockaddr *addr, char *buf)
{
@@ -483,7 +502,7 @@ void bump_maxfd(int fd, int *max)
int retry_send(void)
{
struct timespec waiter;
- if (errno == EAGAIN)
+ if (errno == EAGAIN || errno == EWOULDBLOCK)
{
waiter.tv_sec = 0;
waiter.tv_nsec = 10000;