diff options
author | Simon Kelley <simon@thekelleys.org.uk> | 2012-01-05 21:33:27 +0000 |
---|---|---|
committer | Simon Kelley <simon@thekelleys.org.uk> | 2012-01-05 21:33:27 +0000 |
commit | c72daea86807d391ae800be7846e86708588def6 (patch) | |
tree | 0ddaeffd42140667e1b7917f10f96e37d47da1a9 | |
parent | 74c95c25425154af858de72773eb643fd5712e72 (diff) | |
download | dnsmasq-c72daea86807d391ae800be7846e86708588def6.tar.gz |
Accumulated 2.60 changes going into git
-rw-r--r-- | .new | 1 | ||||
-rw-r--r-- | CHANGELOG | 57 | ||||
-rw-r--r-- | Makefile | 12 | ||||
-rwxr-xr-x | bld/pkg-wrapper | 2 | ||||
-rw-r--r-- | debian/changelog | 1010 | ||||
-rw-r--r-- | debian/conffiles | 6 | ||||
-rw-r--r-- | debian/control | 41 | ||||
-rw-r--r-- | debian/copyright | 21 | ||||
-rw-r--r-- | debian/dbus.conf | 18 | ||||
-rw-r--r-- | debian/default | 33 | ||||
-rw-r--r-- | debian/init | 266 | ||||
-rw-r--r-- | debian/insserv | 1 | ||||
-rw-r--r-- | debian/postinst | 49 | ||||
-rw-r--r-- | debian/postrm | 12 | ||||
-rw-r--r-- | debian/prerm | 14 | ||||
-rw-r--r-- | debian/readme | 70 | ||||
-rw-r--r-- | debian/readme.dnsmasq.d | 7 | ||||
-rw-r--r-- | debian/resolvconf | 70 | ||||
-rw-r--r-- | debian/resolvconf-package | 13 | ||||
-rwxr-xr-x | debian/rules | 186 | ||||
-rw-r--r-- | debian/source/format | 1 | ||||
-rw-r--r-- | debian/systemd.service | 31 | ||||
-rw-r--r-- | man/dnsmasq.8 | 14 | ||||
-rw-r--r-- | po/de.po | 686 | ||||
-rw-r--r-- | po/es.po | 688 | ||||
-rw-r--r-- | po/fi.po | 678 | ||||
-rw-r--r-- | po/fr.po | 691 | ||||
-rw-r--r-- | po/id.po | 691 | ||||
-rw-r--r-- | po/it.po | 678 | ||||
-rw-r--r-- | po/no.po | 683 | ||||
-rw-r--r-- | po/pl.po | 686 | ||||
-rw-r--r-- | po/pt_BR.po | 678 | ||||
-rw-r--r-- | po/ro.po | 683 | ||||
-rw-r--r-- | src/NOTES | 2 | ||||
-rw-r--r-- | src/bpf.c | 3 | ||||
-rw-r--r-- | src/cache.c | 25 | ||||
-rw-r--r-- | src/config.h | 267 | ||||
-rw-r--r-- | src/dhcp.c | 210 | ||||
-rw-r--r-- | src/dhcp6.c | 220 | ||||
-rw-r--r-- | src/dhcp6_protocol.h | 55 | ||||
-rw-r--r-- | src/dhcp_protocol.h | 5 | ||||
-rw-r--r-- | src/dns_protocol.h | 3 | ||||
-rw-r--r-- | src/dnsmasq.c | 160 | ||||
-rw-r--r-- | src/dnsmasq.h | 62 | ||||
-rw-r--r-- | src/forward.c | 18 | ||||
-rw-r--r-- | src/helper.c | 291 | ||||
-rw-r--r-- | src/lease.c | 202 | ||||
-rw-r--r-- | src/log.c | 7 | ||||
-rw-r--r-- | src/netlink.c | 44 | ||||
-rw-r--r-- | src/network.c | 108 | ||||
-rw-r--r-- | src/option.c | 23 | ||||
-rw-r--r-- | src/rfc2131.c | 11 | ||||
-rw-r--r-- | src/rfc3315.c | 298 | ||||
-rw-r--r-- | src/tftp.c | 26 | ||||
-rw-r--r-- | src/util.c | 21 |
55 files changed, 7103 insertions, 3735 deletions
@@ -1 +0,0 @@ -shlibs:Depends=libc6 (>= 2.1) @@ -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 @@ -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 @@ -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" @@ -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" @@ -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 "" @@ -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" @@ -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" @@ -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 "" @@ -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" @@ -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 "" @@ -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. + @@ -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 + + @@ -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; @@ -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 + @@ -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); @@ -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; |