import of dnsmasq-2.52.tar.gz
diff --git a/CHANGELOG b/CHANGELOG
index 89209d5..d857065 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,107 @@
+version 2.52
+ Work around a Linux kernel bug which insists that the
+ length of the option passed to setsockopt must be at least
+ sizeof(int) bytes, even if we're calling SO_BINDTODEVICE
+ and the device name is "lo". Note that this is fixed
+ in kernel 2.6.31, but the workaround is harmless and
+ allows earlier kernels to be used. Also fix dnsmasq
+ bug which reported the wrong address when this failed.
+ Thanks to Fedor for finding this.
+
+ The API for IPv6 PKTINFO changed around Linux kernel
+ 2.6.14. Workaround the case where dnsmasq is compiled
+ against newer headers, but then run on an old kernel:
+ necessary for some *WRT distros.
+
+ Re-read the set of network interfaces when re-loading
+ /etc/resolv.conf if --bind-interfaces is not set. This
+ handles the case that loopback interfaces do not exist
+ when dnsmasq is first started.
+
+ Tweak the PXE code to support port 4011. This should
+ reduce broadcasts and make things more reliable when other
+ servers are around. It also improves inter-operability
+ with certain clients.
+
+ Make a pxe-service configuration with no filename or boot
+ service type legal: this does a local boot. eg.
+ pxe-service=x86PC, "Local boot"
+
+ Be more conservative in detecting "A for A"
+ queries. Dnsmasq checks if the name in a type=A query looks
+ like a dotted-quad IP address and answers the query itself
+ if so, rather than forwarding it. Previously dnsmasq
+ relied in the library function inet_addr() to convert
+ addresses, and that will accept some things which are
+ confusing in this context, like 1.2.3 or even just
+ 1234. Now we only do A for A processing for four decimal
+ numbers delimited by dots.
+
+ A couple of tweaks to fix compilation on Solaris. Thanks
+ to Joel Macklow for help with this.
+
+ Another Solaris compilation tweak, needed for Solaris
+ 2009.06. Thanks to Lee Essen for that.
+
+ Added extract packaging stuff from Lee Essen to
+ contrib/Solaris10.
+
+ Increased the default limit on number of leases to 1000
+ (from 150). This is mainly a defence against DoS attacks,
+ and for the average "one for two class C networks"
+ installation, IP address exhaustion does that just as
+ well. Making the limit greater than the number of IP
+ addresses available in such an installation removes a
+ surprise which otherwise can catch people out.
+
+ Removed extraneous trailing space in the value of the
+ DNSMASQ_TIME_REMAINING DNSMASQ_LEASE_LENGTH and
+ DNSMASQ_LEASE_EXPIRES environment variables. Thanks to
+ Gildas Le Nadan for spotting this.
+
+ Provide the network-id tags for a DHCP transaction to
+ the lease-change script in the environment variable
+ DNSMASQ_TAGS. A good suggestion from Gildas Le Nadan.
+
+ Add support for RFC3925 "Vendor-Identifying Vendor
+ Options". The syntax looks like this:
+ --dhcp-option=vi-encap:<enterprise number>, .........
+
+ Add support to --dhcp-match to allow matching against
+ RFC3925 "Vendor-Identifying Vendor Classes". The syntax
+ looks like this:
+ --dhcp-match=tag,vi-encap<enterprise number>, <value>
+
+ Add some application specific code to assist in
+ implementing the Broadband forum TR069 CPE-WAN
+ specification. The details are in contrib/CPE-WAN/README
+
+ Increase the default DNS packet size limit to 4096, as
+ recommended by RFC5625 section 4.4.3. This can be
+ reconfigured using --edns-packet-max if needed. Thanks to
+ Francis Dupont for pointing this out.
+
+ Rewrite query-ids even for DNSSEC signed packets, since
+ this is allowed by RFC5625 section 4.5.
+
+ Use getopt_long by default on OS X. It has been supported
+ since version 10.3.0. Thanks to Arek Dreyer for spotting
+ this.
+
+ Added up-to-date startup configuration for MacOSX/launchd
+ in contrib/MacOSX-launchd. Thanks to Arek Dreyer for
+ providing this.
+
+ Fix link error when including Dbus but excluding DHCP.
+ Thanks to Oschtan for the bug report.
+
+ Updated French translation. Thanks to Gildas Le Nadan.
+
+ Updated Polish translation. Thanks to Jan Psota.
+
+ Updated Spanish translation. Thanks to Chris Chatham.
+
+
version 2.51
Add support for internationalised DNS. Non-ASCII characters
in domain names found in /etc/hosts, /etc/ethers and
diff --git a/Makefile b/Makefile
index 3d07c24..49acbc3 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+# dnsmasq is Copyright (c) 2000-2010 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
@@ -18,29 +18,33 @@
MANDIR = ${PREFIX}/share/man
LOCALEDIR = ${PREFIX}/share/locale
-SRC = src
-PO = po
-MAN = man
-
PKG_CONFIG = pkg-config
INSTALL = install
MSGMERGE = msgmerge
MSGFMT = msgfmt
XGETTEXT = xgettext
+CFLAGS = -Wall -W -O2
+
#################################################################
+SRC = src
+PO = po
+MAN = man
+
DNSMASQ_CFLAGS=`echo $(COPTS) | ../bld/pkg-wrapper HAVE_DBUS $(PKG_CONFIG) --cflags dbus-1`
DNSMASQ_LIBS= `echo $(COPTS) | ../bld/pkg-wrapper HAVE_DBUS $(PKG_CONFIG) --libs dbus-1`
SUNOS_LIBS= `if uname | grep SunOS 2>&1 >/dev/null; then echo -lsocket -lnsl -lposix4; fi`
-all : dnsmasq
+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
-dnsmasq :
+all :
@cd $(SRC) && $(MAKE) \
- DNSMASQ_CFLAGS="$(DNSMASQ_CFLAGS)" \
- DNSMASQ_LIBS="$(DNSMASQ_LIBS) $(SUNOS_LIBS)" \
- -f ../bld/Makefile dnsmasq
+ BUILD_CFLAGS="$(DNSMASQ_CFLAGS)" \
+ BUILD_LIBS="$(DNSMASQ_LIBS) $(SUNOS_LIBS)" \
+ -f ../Makefile dnsmasq
clean :
rm -f *~ $(SRC)/*.mo contrib/*/*~ */*~ $(SRC)/*.pot
@@ -56,13 +60,12 @@
all-i18n :
@cd $(SRC) && $(MAKE) \
I18N=-DLOCALEDIR='\"$(LOCALEDIR)\"' \
- DNSMASQ_CFLAGS="$(DNSMASQ_CFLAGS) `$(PKG_CONFIG) --cflags libidn`" \
- DNSMASQ_LIBS="$(DNSMASQ_LIBS) $(SUNOS_LIBS) `$(PKG_CONFIG) --libs libidn`" \
- -f ../bld/Makefile dnsmasq
+ BUILD_CFLAGS="$(DNSMASQ_CFLAGS) `$(PKG_CONFIG) --cflags libidn`" \
+ BUILD_LIBS="$(DNSMASQ_LIBS) $(SUNOS_LIBS) `$(PKG_CONFIG) --libs libidn`" \
+ -f ../Makefile dnsmasq
@cd $(PO); for f in *.po; do \
cd ../$(SRC) && $(MAKE) \
- MSGMERGE=$(MSGMERGE) MSGFMT=$(MSGFMT) XGETTEXT=$(XGETTEXT) \
- -f ../bld/Makefile $${f%.po}.mo; \
+ -f ../Makefile $${f%.po}.mo; \
done
install-i18n : all-i18n install-common
@@ -70,9 +73,25 @@
cd $(MAN); ../bld/install-man $(DESTDIR)$(MANDIR) $(INSTALL)
merge :
- @cd $(SRC) && $(MAKE) XGETTEXT=$(XGETTEXT) -f ../bld/Makefile dnsmasq.pot
+ @cd $(SRC) && $(MAKE) -f ../Makefile dnsmasq.pot
@cd $(PO); for f in *.po; do \
echo -n msgmerge $$f && $(MSGMERGE) --no-wrap -U $$f ../$(SRC)/dnsmasq.pot; \
done
+# rules below are targets in recusive makes with cwd=$(SRC)
+
+.c.o:
+ $(CC) $(CFLAGS) $(COPTS) $(I18N) $(BUILD_CFLAGS) $(RPM_OPT_FLAGS) -c $<
+
+dnsmasq : $(OBJS)
+ $(CC) $(LDFLAGS) -o $@ $(OBJS) $(BUILD_LIBS) $(LIBS)
+
+dnsmasq.pot : $(OBJS:.o=.c) dnsmasq.h config.h
+ $(XGETTEXT) -d dnsmasq --foreign-user --omit-header --keyword=_ -o $@ -i $(OBJS:.o=.c)
+
+%.mo : ../po/%.po dnsmasq.pot
+ $(MSGMERGE) -o - ../po/$*.po dnsmasq.pot | $(MSGFMT) -o $*.mo -
+
+
+.PHONY : all clean install install-common all-i18n install-i18n merge
diff --git a/bld/Makefile b/bld/Makefile
deleted file mode 100644
index 53dab34..0000000
--- a/bld/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-CFLAGS = -Wall -W -O2
-
-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
-
-.c.o:
- $(CC) $(CFLAGS) $(COPTS) $(I18N) $(DNSMASQ_CFLAGS) $(RPM_OPT_FLAGS) -c $<
-
-dnsmasq : $(OBJS)
- $(CC) $(LDFLAGS) -o $@ $(OBJS) $(DNSMASQ_LIBS) $(LIBS)
-
-dnsmasq.pot : $(OBJS:.o=.c) dnsmasq.h config.h
- $(XGETTEXT) -d dnsmasq --foreign-user --omit-header --keyword=_ -o $@ -i $(OBJS:.o=.c)
-
-%.mo : ../po/%.po dnsmasq.pot
- $(MSGMERGE) -o - ../po/$*.po dnsmasq.pot | $(MSGFMT) -o $*.mo -
diff --git a/contrib/CPE-WAN/README b/contrib/CPE-WAN/README
new file mode 100644
index 0000000..4d56347
--- /dev/null
+++ b/contrib/CPE-WAN/README
@@ -0,0 +1,36 @@
+Dnsmasq from version 2.52 has a couple of rather application-specific
+features designed to allow for implementation of the DHCP part of CPE
+WAN management protocol.
+
+http://www.broadband-forum.org/technical/download/TR-069_Amendment-2.pdf
+http://en.wikipedia.org/wiki/TR-069
+
+The relevant sections are F.2.1 "Gateway Requirements" and F.2.5 "DHCP
+Vendor Options".
+
+First, dnsmasq checks for DHCP requests which contain an option-125
+vendor-class option which in turn holds a vendor section for IANA
+enterprise number 3561 which contains sub-options codes 1 and 2. If
+this is present then the network-tag "cpewan-id" is set.
+This allows dnsmasq to be configured to reply with the correct
+GatewayManufacturerOUI, GatewaySerialNumber and GatewayProductClass like this:
+
+dhcp-option=cpewan-id,vi-encap:3561,4,"<GatewayManufacturerOUI>"
+dhcp-option=cpewan-id,vi-encap:3561,5,"<SerialNumber>"
+dhcp-option=cpewan-id,vi-encap:3561,6,"<ProductClass>"
+
+Second, the received sub-options 1, 2, and 3 are passed to the DHCP
+lease-change script as the environment variables DNSMASQ_CPEWAN_OUI,
+DNSMASQ_CPEWAN_SERIAL, and DNSMASQ_CPEWAN_CLASS respectively. This allows
+the script to be used to maintain a ManageableDevice table as
+specified in F.2.1. Note that this data is not retained in dnsmasq's
+internal DHCP lease database, so it is not available on every call to
+the script (this is the same as some other data such as vendor and
+user classes). It will however be available for at least the "add"
+call, and should be stored then against the IP address as primary
+key for future use.
+
+
+This feature was added to dnsmasq under sponsorship from Ericsson.
+
+
diff --git a/contrib/MacOSX-launchd/launchd-README.txt b/contrib/MacOSX-launchd/launchd-README.txt
new file mode 100644
index 0000000..4783221
--- /dev/null
+++ b/contrib/MacOSX-launchd/launchd-README.txt
@@ -0,0 +1,38 @@
+This is a launchd item for Mac OS X and Mac OS X Server.
+For more information about launchd, the
+"System wide and per-user daemon/agent manager", see the launchd
+man page, or the wikipedia page: http://en.wikipedia.org/wiki/Launchd
+
+This launchd item uses the following flags:
+--keep-in-foreground - this is crucial for use with launchd
+--log-queries - this is optional and you can remove it
+--log-facility=/var/log/dnsmasq.log - again optional instead of system.log
+
+To use this launchd item for dnsmasq:
+
+If you don't already have a folder /Library/LaunchDaemons, then create one:
+sudo mkdir /Library/LaunchDaemons
+sudo chown root:admin /Library/LaunchDaemons
+sudo chmod 775 /Library/LaunchDaemons
+
+Copy uk.org.thekelleys.dnsmasq.plist there and then set ownership/permissions:
+sudo cp uk.org.thekelleys.dnsmasq.plist /Library/LaunchDaemons/
+sudo chown root:admin /Library/LaunchDaemons/uk.org.thekelleys.dnsmasq.plist
+sudo chmod 644 /Library/LaunchDaemons/uk.org.thekelleys.dnsmasq.plist
+
+Optionally, edit your dnsmasq configuration file to your liking.
+
+To start the launchd job, which starts dnsmaq, reboot or use the command:
+sudo launchctl load /Library/LaunchDaemons/uk.org.thekelleys.dnsmasq.plist
+
+To stop the launchd job, which stops dnsmasq, use the command:
+sudo launchctl unload /Library/LaunchDaemons/uk.org.thekelleys.dnsmasq.plist
+
+If you want to permanently stop the launchd job, so it doesn't start the job even after a reboot, use the following command:
+sudo launchctl unload -w /Library/LaunchDaemons/uk.org.thekelleys.dnsmasq.plist
+
+If you make a change to the configuration file, you should relaunch dnsmasq;
+to do this unload and then load again:
+
+sudo launchctl unload /Library/LaunchDaemons/uk.org.thekelleys.dnsmasq.plist
+sudo launchctl load /Library/LaunchDaemons/uk.org.thekelleys.dnsmasq.plist
diff --git a/contrib/MacOSX-launchd/uk.org.thekelleys.dnsmasq.plist b/contrib/MacOSX-launchd/uk.org.thekelleys.dnsmasq.plist
new file mode 100644
index 0000000..fa99176
--- /dev/null
+++ b/contrib/MacOSX-launchd/uk.org.thekelleys.dnsmasq.plist
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>Label</key>
+ <string>uk.org.thekelleys.dnsmasq</string>
+ <key>ProgramArguments</key>
+ <array>
+ <string>/usr/local/sbin/dnsmasq</string>
+ <string>--keep-in-foreground</string>
+ <string>--log-queries</string>
+ <string>--log-facility=/var/log/dnsmasq.log</string>
+ </array>
+ <key>RunAtLoad</key>
+ <true/>
+</dict>
+</plist>
diff --git a/contrib/Solaris10/README.create_package b/contrib/Solaris10/README.create_package
new file mode 100644
index 0000000..676899a
--- /dev/null
+++ b/contrib/Solaris10/README.create_package
@@ -0,0 +1,25 @@
+Ok, script attached ... seems to be working ok for me,
+tried to install and remove a few times. It does the
+right thing with the smf when installing, you can then
+simply enable the service. Upon removal it cleans up the
+files but won't clean up the services (I think until
+a reboot) ... I've only started looking at the new
+packages stuff in the last day or two, so I could be
+missing something, but I can't find any way to force
+ a proper cleanup.
+
+It requires that you have a writable repository setup
+as per the docs on the opensolaris website and it will
+create a dnsmasq package (package name is a variable
+in the script). The script takes a version number for
+the package and assumes that it's in the contrib/Solaris10
+directory, it then works out the base tree directory
+from $0.
+
+i.e. $ contrib/Solaris10/create_package 2.52-1
+or $ cd contrib/Solaris10; ./create_package 2.52-1
+
+It's a bit more complex than it could be because I
+prefer putting the daemon in /usr/sbin and the config
+in /etc, so the script will actually create a new
+version of the existing contrib dnsmasq.xml.
diff --git a/contrib/Solaris10/create_package b/contrib/Solaris10/create_package
new file mode 100644
index 0000000..fd3fc84
--- /dev/null
+++ b/contrib/Solaris10/create_package
@@ -0,0 +1,87 @@
+#!/bin/sh
+
+#
+# For our package, and for the SMF script, we need to define where we
+# want things to go...
+#
+BIN_DIR="/usr/sbin"
+CONF_DIR="/etc"
+MAN_DIR="/usr/man/man8"
+
+PACKAGE_NAME="dnsmasq"
+
+#
+# Since we know we are in the contrib directory we can work out where
+# the rest of the tree is...
+#
+BASEDIR="`dirname $0`/../.."
+
+#
+# We need a version number to use for the package creation...
+#
+if [ $# != 1 ]; then
+ echo "Usage: $0 <package_version_number>" >&2
+ exit 1
+fi
+VERSION="$1"
+
+#
+# First thing we do is fix-up the smf file to use the paths we prefer...
+#
+if [ ! -f "${BASEDIR}/contrib/Solaris10/dnsmasq.xml" ]; then
+ echo "$0: unable to find contrib/Solaris10/dnsmasq.xml" >&2
+ exit 1
+fi
+
+echo "Fixing up smf file ... \c"
+cat "${BASEDIR}/contrib/Solaris10/dnsmasq.xml" | \
+ sed -e "s%/usr/local/etc%${CONF_DIR}%" \
+ -e "s%/usr/local/sbin%${BIN_DIR}%" \
+ -e "s%/usr/local/man%${MAN_DIR}%" > ${BASEDIR}/contrib/Solaris10/dnsmasq-pkg.xml
+echo "done."
+
+echo "Creating packaging file ... \c"
+cat <<EOF >${BASEDIR}/contrib/Solaris10/dnsmasq_package.inc
+#
+# header
+#
+set name=pkg.name value="dnsmasq"
+set name=pkg.description value="dnsmasq daemon - dns, dhcp, tftp etc"
+set name=pkg.detailed_url value="http://www.thekelleys.org.uk/dnsmasq/doc.html"
+set name=info.maintainer value="TBD (tbd@tbd.com)"
+set name=info.upstream value="dnsmasq-discuss@lists.thekelleys.org.uk"
+set name=info.upstream_url value="http://www.thekelleys.org.uk/dnsmasq/doc.html"
+#
+# dependencies ... none?
+#
+
+#
+# directories
+#
+dir mode=0755 owner=root group=bin path=${BIN_DIR}/
+dir mode=0755 owner=root group=sys path=${CONF_DIR}/
+dir mode=0755 owner=root group=sys path=${MAN_DIR}/
+dir mode=0755 owner=root group=sys path=/var/
+dir mode=0755 owner=root group=sys path=/var/svc
+dir mode=0755 owner=root group=sys path=/var/svc/manifest
+dir mode=0755 owner=root group=sys path=/var/svc/manifest/network
+
+#
+# files
+#
+file ${BASEDIR}/src/dnsmasq mode=0555 owner=root group=bin path=${BIN_DIR}/dnsmasq
+file ${BASEDIR}/man/dnsmasq.8 mode=0555 owner=root group=bin path=${MAN_DIR}/dnsmasq.8
+file ${BASEDIR}/dnsmasq.conf.example mode=0644 owner=root group=sys path=${CONF_DIR}/dnsmasq.conf preserve=strawberry
+file ${BASEDIR}/contrib/Solaris10/dnsmasq-pkg.xml mode=0644 owner=root group=sys path=/var/svc/manifest/network/dnsmasq.xml restart_fmri=svc:/system/manifest-import:default
+
+EOF
+echo "done."
+
+echo "Creating package..."
+eval `pkgsend open ${PACKAGE_NAME}@${VERSION}`
+pkgsend include ${BASEDIR}/contrib/Solaris10/dnsmasq_package.inc
+if [ "$?" = 0 ]; then
+ pkgsend close
+else
+ echo "Errors"
+fi
diff --git a/contrib/dnsmasq_MacOSX/DNSmasq b/contrib/dnsmasq_MacOSX-pre10.4/DNSmasq
similarity index 100%
rename from contrib/dnsmasq_MacOSX/DNSmasq
rename to contrib/dnsmasq_MacOSX-pre10.4/DNSmasq
diff --git a/contrib/dnsmasq_MacOSX/README.rtf b/contrib/dnsmasq_MacOSX-pre10.4/README.rtf
similarity index 100%
rename from contrib/dnsmasq_MacOSX/README.rtf
rename to contrib/dnsmasq_MacOSX-pre10.4/README.rtf
diff --git a/contrib/dnsmasq_MacOSX/StartupParameters.plist b/contrib/dnsmasq_MacOSX-pre10.4/StartupParameters.plist
similarity index 100%
rename from contrib/dnsmasq_MacOSX/StartupParameters.plist
rename to contrib/dnsmasq_MacOSX-pre10.4/StartupParameters.plist
diff --git a/dnsmasq.conf.example b/dnsmasq.conf.example
index ac9ef7a..9540560 100644
--- a/dnsmasq.conf.example
+++ b/dnsmasq.conf.example
@@ -365,7 +365,7 @@
#pxe-prompt="Press F8 for menu.", 60
# Available boot services. for PXE.
-#pxe-service=x86PC, "Boot from local disk", 0
+#pxe-service=x86PC, "Boot from local disk"
# Loads <tftp-root>/pxelinux.0 from dnsmasq TFTP server.
#pxe-service=x86PC, "Install Linux", pxelinux
diff --git a/man/dnsmasq.8 b/man/dnsmasq.8
index a5eac63..6ed8a0d 100644
--- a/man/dnsmasq.8
+++ b/man/dnsmasq.8
@@ -123,8 +123,7 @@
.TP
.B \-P, --edns-packet-max=<size>
Specify the largest EDNS.0 UDP packet which is supported by the DNS
-forwarder. Defaults to 1280, which is the RFC2671-recommended maximum
-for ethernet.
+forwarder. Defaults to 4096, which is the RFC5625-recommended size.
.TP
.B \-Q, --query-port=<query_port>
Send outbound DNS queries from, and listen for their replies on, the
@@ -427,7 +426,7 @@
where this needs to be increased is when using web-server log file
resolvers, which can generate large numbers of concurrent queries.
.TP
-.B \-F, --dhcp-range=[[net:]network-id,]<start-addr>,<end-addr>[[,<netmask>],<broadcast>][,<lease time>]
+.B \-F, --dhcp-range=[[net:]network-id,]<start-addr>,<end-addr>[,<netmask>[,<broadcast>]][,<lease time>]
Enable the DHCP server. Addresses will be given out from the range
<start-addr> to <end-addr> and from statically defined addresses given
in
@@ -564,7 +563,7 @@
options containing the same information. /etc/ethers is re-read when
dnsmasq receives SIGHUP.
.TP
-.B \-O, --dhcp-option=[<network-id>,[<network-id>,]][encap:<opt>,][vendor:[<vendor-class>],][<opt>|option:<opt-name>],[<value>[,<value>]]
+.B \-O, --dhcp-option=[<network-id>,[<network-id>,]][encap:<opt>,][vi-encap:<enterprise>,][vendor:[<vendor-class>],][<opt>|option:<opt-name>],[<value>[,<value>]]
Specify different or extra options to DHCP clients. By default,
dnsmasq sends some standard options to DHCP clients, the netmask and
broadcast address are set to the same as the host running dnsmasq, and
@@ -632,10 +631,16 @@
then they will be correctly combined into one encapsulated option.
encap: and vendor: are may not both be set in the same dhcp-option.
+The final variant on encapsulated options is "Vendor-Identifying
+Vendor Options" as specified by RFC3925. These are denoted like this:
+.B --dhcp-option=vi-encap:2, 10, "text"
+The number in the vi-encap: section is the IANA enterprise number
+used to identify this option.
+
The address 0.0.0.0 is not treated specially in
encapsulated options.
.TP
-.B --dhcp-option-force=[<network-id>,[<network-id>,]][encap:<opt>,][vendor:[<vendor-class>],]<opt>,[<value>[,<value>]]
+.B --dhcp-option-force=[<network-id>,[<network-id>,]][encap:<opt>,][vi-encap:<enterprise>,][vendor:[<vendor-class>],]<opt>,[<value>[,<value>]]
This works in exactly the same way as
.B --dhcp-option
except that the option will always be sent, even if the client does
@@ -687,7 +692,7 @@
.B --dhcp-subscrid=<network-id>,<subscriber-id>
Map from RFC3993 subscriber-id relay agent options to network-id tags.
.TP
-.B --dhcp-match=<network-id>,<option number>|option:<option name>[,<value>]
+.B --dhcp-match=<network-id>,<option number>|option:<option name>|vi-encap:<enterprise>[,<value>]
Without a value, set the network-id tag if the client sends a DHCP
option of the given number or name. When a value is given, set the tag only if
the option is sent and matches the value. The value may be of the form
@@ -702,7 +707,11 @@
will set the tag "efi-ia32" if the the number 6 appears in the list of
architectures sent by the client in option 93. (See RFC 4578 for
-details.) If the value is a string, substring matching is used.
+details.) If the value is a string, substring matching is used.
+
+The special form with vi-encap:<enterpise number> matches against
+vendor-identifying vendor classes for the specified enterprise. Please
+see RFC 3925 for more details of the rare and interesting beasts.
.TP
.B \-J, --dhcp-ignore=<network-id>[,<network-id>]
When all the given network-ids match the set of network-ids derived
@@ -736,7 +745,7 @@
they must match for this configuration to be sent. Note that
network-ids are prefixed by "net:" to distinguish them.
.TP
-.B --pxe-service=[net:<network-id>,]<CSA>,<menu text>,<basename>|<bootservicetype>[,<server address>]
+.B --pxe-service=[net:<network-id>,]<CSA>,<menu text>[,<basename>|<bootservicetype>][,<server address>]
Most uses of PXE boot-ROMS simply allow the PXE
system to obtain an IP address and then download the file specified by
.B dhcp-boot
@@ -759,8 +768,9 @@
the basename. If an integer boot service type, rather than a basename
is given, then the PXE client will search for a
suitable boot service for that type on the network. This search may be done
-by multicast or broadcast, or direct to a server if its IP address is provided. A boot service
-type of 0 is special, and will abort the net boot procedure and
+by broadcast, or direct to a server if its IP address is provided.
+If no boot service type or filename is provided (or a boot service type of 0 is specified)
+then the menu entry will abort the net boot procedure and
continue booting from local media.
.TP
.B --pxe-prompt=[net:<network-id>,]<prompt>[,<timeout>]
@@ -865,7 +875,9 @@
variable DNSMASQ_OLD_HOSTNAME. DNSMASQ_INTERFACE stores the name of
the interface on which the request arrived; this is not set for "old"
actions when dnsmasq restarts. DNSMASQ_RELAY_ADDRESS is set if the client
-used a DHCP relay to contact dnsmasq and the IP address of the relay is known.
+used a DHCP relay to contact dnsmasq and the IP address of the relay
+is known. DNSMASQ_TAGS contains all the network-id tags set during the
+DHCP transaction, separated by spaces.
All file descriptors are
closed except stdin, stdout and stderr which are open to /dev/null
(except in debug mode).
diff --git a/man/es/dnsmasq.8 b/man/es/dnsmasq.8
index 7197212..19ac845 100644
--- a/man/es/dnsmasq.8
+++ b/man/es/dnsmasq.8
@@ -49,7 +49,8 @@
.TP
.B \-E, --expand-hosts
Agregar el dominio a nombres sencillos (sin punto) en /etc/hosts de la
-misma manera que con nombres derivados de DHCP.
+misma manera que con nombres derivados de DHCP. Nótese que esto no
+aplica a nombres de dominio en cnames, expedientes PTR, TXT, etc.
.TP
.B \-T, --local-ttl=<tiempo>
Al responder con información desde /etc/hosts o desde el archivo
@@ -133,8 +134,8 @@
.TP
.B \-P, --edns-packet-max=<tamaño>
Especificar el paquete UDP EDNS.0 más grande que es soportado por
-el reenviador DNS. Por predeterminado es 1280, lo cual es el
-máximo recomendado en RFC2671 para ethernet.
+el reenviador DNS. Por predeterminado es 4096, lo cual es el
+tamaño recomendado en RFC5625.
.TP
.B \-Q, --query-port=<puerto>
Enviar búsquedas outbound desde, y escuchar por respuestas en,
@@ -459,7 +460,7 @@
es al usar resolvedores de bitácoras de servidores web, los cuales pueden
generar un número inmenso de búsquedas simultáneas.
.TP
-.B \-F, --dhcp-range=[[net:]network-id,]<dirección-inicio>,<dirección-final>[[,<máscara>],<broadcast>][,<tiempo de arriendo>]
+.B \-F, --dhcp-range=[[net:]network-id,]<dirección-inicio>,<dirección-final>[,<máscara>[,<broadcast>]][,<tiempo de arriendo>]
Habilitar el servidor DHCP. Direcciones serán distribuidas desde el
rango <dirección-inicio> hasta <dirección-final> y desde direcciones definidas
estáticamente en opciones
@@ -578,6 +579,11 @@
Leer información sobre opciones DHCP desde el archivo especificado. La
ventaja de usar esta opción es la misma que con --dhcp-hostsfile: el
archivo dhcp-optsfile será re-leído cuando dnsmasq recibe un SIGHUP.
+Nótese que es posible colocar la información mediante
+.B --dhcp-boot
+como opciones DHCP, usando los nombres de opción bootfile-name,
+server-ip-address, y tftp-server. Esto permite que sean incluidas en
+un archivo dhcp-optsfile.
.TP
.B \-Z, --read-ethers
Leer /etc/ethers en busca de información sobre hosts para el servidor
@@ -587,7 +593,7 @@
.B --dhcp-host
que contienen la misma información. /etc/ethers es re-leída cuando dnsmasq recibe un SIGHUP.
.TP
-.B \-O, --dhcp-option=[<network-id>,[<network-id>,]][encap:<opt>,][vendor:[<vendor-class>],][<opt>|option:<opt-name>],[<value>[,<value>]]
+.B \-O, --dhcp-option=[<network-id>,[<network-id>,]][encap:<opt>,][vi-encap:<enterprise>,][vendor:[<vendor-class>],][<opt>|option:<opt-name>],[<valor>[,<valor>]]
Especificar opciones diferentes o extra a clientes DHCP. Por
predeterminado, dnsmasq envía algunas opciones estándar a clientes
DHCP. La máscara de subred y dirección broadcast son fijadas igual
@@ -657,9 +663,16 @@
opciones son brindadas que están encapsuladas con el mismo número de
opción entonces serán correctamente combinadas en una opción encapsulada.
encap: y vendor: no pueden ser fijadas ambas dentro de la misma opción dhcp-option.
+
+La variante final en opciones encapsuladas es "Vendor-Identifying Vendor Options"
+como especificado en RFC3925. Estos son denotados así:
+.B --dhcp-option=rfc3925-encap:2, 10, "text"
+El número en la sección rfc3925-encap: es el número enterprise usado
+para identificar esta opción.
+
La dirección 0.0.0.0 no es tratada de forma especial en opciones encapsuladas.
.TP
-.B --dhcp-option-force=[<network-id>,[<network-id>,]][encap:<opt>,][vendor:[<vendor-class>],]<opt>,[<value>[,<value>]]
+.B --dhcp-option-force=[<network-id>,[<network-id>,]][encap:<opt>,][rfc3925-encap:<enterprise>,][vendor:[<vendor-class>],]<opt>,[<valor>[,<valor>]]
Esto funciona exáctamente de la misma forma que
.B --dhcp-option
excepto que la opción siempre será enviada, aún si el cliente no la pide en
@@ -713,7 +726,7 @@
.B --dhcp-subscrid=<network-id>,<subscriber-id>
Trazar de opciones relay subscriber-id RFC3993 a opciones network-id.
.TP
-.B --dhcp-match=<network-id>,<option number>|option:<option name>[,<value>]
+.B --dhcp-match=<network-id>,<option number>|option:<option name>|vi-encap:<enterprise>[,<valor>]
Sin un valor, fijar la etiqueta network-id si el cliente envía una opción
DHCP del número o valor brindado. Cuando un valor es brindado, fijar la
etiqueta solo si la opción es enviada y coincide con el valor. El valor puede
@@ -729,6 +742,11 @@
fijará la etiqueta a "efi-ia32" si el número 6 aparece en la lista de
architecturas enviada por los clientes en opción 93. (Ver RFC 4578 para
detalles.) Si el valor es un string, coincidencia substring es usada.
+
+La forma especial con vi-encap:<enterpise number> busca coincidencia con
+clases de vendedor identificadoras para el enterprise especificado. Por
+favor ver RFC 3925 para mas detalles sobre las bestias raras e interesantes.
+.TP
.B \-J, --dhcp-ignore=<network-id>[,<network-id>]
Cuando todos los network ids brindados coincidan con el juego de
network ids derivados de las clases net, host, y vendor, ignorar
@@ -762,7 +780,7 @@
ellas deberán coincidir para que esta configuración sea enviada. Nótese
que network-ids están prefijadas con "net:" para distinguirlas.
.TP
-.B --pxe-service=[net:<network-id>,]<CSA>,<texto de menú>,<nombre base>|<tipo de servicio boot>[,<dirección de servidor>]
+.B --pxe-service=[net:<network-id>,]<CSA>,<texto de menú>[,<nombre base>|<tipo de servicio boot>][,<dirección de servidor>]
La mayoría de usos para boot-ROMS PXE simplemente permiten al sistema PXE
obtener una dirección IP y entonces bajar el archivo especificado por
.B dhcp-boot
@@ -784,10 +802,11 @@
Nótese que el sufijo "layer" (normalmente ".0") es brindado por PXE, y
no debe ser agregado al nombre base. Si un número entero es brindado en vez
de un nombre base, entonces el cliente PXE buscará un servicio boot adecuado
-para ese tipo de red. Esta búsqueda puede ser hecha mediante multicast o
-broadcast, o directamente a un servidor si la dirección IP es brindada. Un
-tipo de servicio boot de 0 es especial, y abortará el proceso boot de red
-y continuará desde medio local.
+para ese tipo de red. Esta búsqueda puede ser hecha mediante broadcast,
+o directamente a un servidor si la dirección IP es brindada. Si ningún tipo
+de servicio boot o nombre de archivo es brindado (o un tipo de servicio boot
+de 0 es especificado), entonces la opción de menú abortará el proceso net boot
+y continuará desde el medio local.
.TP
.B --pxe-prompt=[net:<network-id>,]<prompt>[,<timeout>]
Fijar esto hace que un aviso sea expuesto despues del boot PXE. Si el timeout
@@ -879,10 +898,11 @@
host brindó un client-id, es almacenado en la variable de ambiente
DNSMASQ_CLIENT_ID. Si el dominio completamente calificado del host
es conocido, la parte de dominio es almacenada en DNSMASQ_DOMAIN. Si
-el cliente brinda información de clase de vendedoro usuario,
-estos son brindados en las variables DNSMASQ_VENDOR_CLASS y
+el cliente brinda información de clase de vendedor, nombre de host,
+o clase de usuario, estos son brindados en las variables
+DNSMASQ_VENDOR_CLASS, DNSMASQ_SUPPLIED_HOSTNAME, y
DNSMASQ_USER_CLASS0..DNSMASQ_USER_CLASSn, pero solo para acciones "add"
-y "old" cuando un host resume un arriendo existente, dado a que estos
+y "old" cuando un host reanuda un arriendo existente, dado a que estos
datos no son almacenados en la base de datos de arriendos de dnsmasq.
Si dnsmasq fue compilado con HAVE_BROKEN_RTC, entonces la duración del
arriendo (en segundos) es almacenada en DNSMASQ_LEASE_LENGTH, de otra
@@ -894,7 +914,10 @@
nombre), y el nombre anterior es brindado en la variable de ambiente
DNSMASQ_OLD_HOSTNAME. DNSMASQ_INTERFACE almacena el nombre de la interface
en la cual llegó el pedido; esto no es fijado para acciones "viejas"
-cuando dnsmasq re-inicia.
+cuando dnsmasq re-inicia. DNSMASQ_RELAY_ADDRESS es fijado si el cliente
+usó un relay DHCP para contactar a dnsmasq y la dirección IP del relay
+es conocida. DNSMASQ_TAGS contiene todas las etiquetas network-id fijadas
+durante la transacción DHCP, separadas por espacios.
Todos los descriptores de archivo están cerrados
excepto stdin, stdout, y stderr los cuales están abiertos a /dev/null
(excepto en modo debug).
@@ -1040,11 +1063,13 @@
también es permitida en archivos de configuración, para incluir múltiples
archivos de configuración.
.TP
-.B \-7, --conf-dir=<directorio>
+.B \-7, --conf-dir=<directorio>[,<file-extension>......]
Leer todos los archivos dentro del directorio brindado como archivos
-de configuración. Archivos cuyos nombres terminen con ~ o comienzen
-con . o comienzen y terminen con # son ignorados. Esta opción puede
-ser brindada en la línea de comandos o en un archivo de configuración.
+de configuración. Si extensiones son brindadas, cualquier archivo que
+termine en esas extensiones son ignorados. Cualquier archivos cuyos nombres
+terminen con ~ o comienzen con . o comienzen y terminen con # siempre son
+ignorados. Esta opción puede ser brindada en la línea de comandos o en un
+archivo de configuración.
.SH ARCHIVO DE CONFIGURACION
Al inicio, dnsmasq lee
.I /etc/dnsmasq.conf,
@@ -1285,6 +1310,23 @@
probado exitósamente con un millón de nombres. Ese tamaño de archivo necesita
un CPU de 1GHz y aproximadamente 60MB de RAM.
+.SH INTERNACIONALIZACION
+
+Dnsmasq puede ser compilado con soporte para internacionalización. Para hacer esto,
+los targets make "all-i18n" y "install-i18n" deberán ser usados en vez de
+los targets estándares "all" y "install". Cuando internacionalización es
+compilada, dnsmasq producirá mensajes de bitácora en el lenguaje local y soportará
+dominios internacionalizados (IDN). Nombres de dominio en /etc/hosts, /etc/ethers,
+y /etc/dnsmasq.conf que contienen carácteres no-ASCII serán traducidos a
+representación interna DNS punycode. Nótese que dnsmasq determina ambos el
+lenguaje para mensajes y el juego de carácteres asumido para archivos de configuración
+de la variable ambiental LANG. Esto debe estar fijado al valor predeterminado del sistema
+por el guión responsable de iniciar dnsmasq. Al editar archivos de configuración,
+tener cuidado de hacerlo usando solo el locale predeterminado del sistema y no
+uno especifico del usuario, dado a que dnsmasq no tiene ninguna manera directa de
+determinar el juego de caracteres en uso, y debe asumir que es el predeterminado
+del sistema.
+
.SH ARCHIVOS
.IR /etc/dnsmasq.conf
diff --git a/man/fr/dnsmasq.8 b/man/fr/dnsmasq.8
index 92ec024..2e6dad1 100644
--- a/man/fr/dnsmasq.8
+++ b/man/fr/dnsmasq.8
@@ -140,8 +140,7 @@
.TP
.B \-P, --edns-packet-max=<taille>
Spécifie la taille maximum de paquet UDP EDNS.0 supporté par le relai DNS. Le
-défaut est de 1280, qui est la valeur maximale
-recommandée pour ethernet dans la RFC2671.
+défaut est de 4096, qui est la valeur recommandée dans la RFC5625.
.TP
.B \-Q, --query-port=<numéro de port>
Envoie et écoute les requêtes DNS sortantes depuis le port UDP spécifié par
@@ -503,7 +502,7 @@
son journal des requêtes, ce qui peut générer un nombre important de requêtes
simultanées.
.TP
-.B \-F, --dhcp-range=[[net:]identifiant de réseau,]<adresse de début>,<adresse de fin>[[,<masque de réseau>],<broadcast>][,<durée de bail>]
+.B \-F, --dhcp-range=[[net:]identifiant de réseau,]<adresse de début>,<adresse de fin>[,<masque de réseau>[,<broadcast>]][,<durée de bail>]
Active le serveur DHCP. Les adresses seront données dans la plage comprise entre
<adresse de début> et <adresse de fin> et à partir des adresses définies
statiquement dans l'option
@@ -650,7 +649,7 @@
contenant les mêmes informations. /etc/ethers est relu à la réception d'un
signal SIGHUP par Dnsmasq.
.TP
-.B \-O, --dhcp-option=[<identifiant_de_réseau>,[<identifiant_de_réseau>,]][encap:<option>,][vendor:[<classe_vendeur>],][<option>|option:<nom d'option>],[<valeur>[,<valeur>]]
+.B \-O, --dhcp-option=[<identifiant_de_réseau>,[<identifiant_de_réseau>,]][encap:<option>,][vi-encap:<entreprise>,][vendor:[<classe_vendeur>],][<option>|option:<nom d'option>],[<valeur>[,<valeur>]]
Spécifie des options différentes ou supplémentaires pour des clients DHCP. Par
défaut, Dnsmasq envoie un ensemble standard d'options aux clients DHCP : le
masque de réseau et l'adresse de broadcast sont les mêmes que pour l'hôte
@@ -729,10 +728,17 @@
combinées au sein d'une seule option encapsulée. Il n'est pas possible de
spécifier encap: et vendor: au sein d'une même option dhcp.
+La dernière variante pour les options encapsulées est "l'option de Vendeur
+identifiant le vendeur" ("Vendor-Identifying Vendor Options") telle que
+décrite dans le RFC3925. Celles-ci sont spécifiées comme suit :
+.B --dhcp-option=vi-encap:2, 10, "text"
+Le numéro dans la section vi-encap: est le numéro IANA de l'entreprise servant
+à identifier cette option.
+
L'adresse 0.0.0.0 n'est pas traitée de manière particulière lorsque fournie dans
une option encapsulée.
.TP
-.B --dhcp-option-force=[<identifiant de réseau>,[<identifiant de réseau>,]][encap:<option>,][vendor:[<classe de vendeur>],]<option>,[<valeur>[,<valeur>]]
+.B --dhcp-option-force=[<identifiant de réseau>,[<identifiant de réseau>,]][encap:<option>,][vi-encap:<entreprise>,][vendor:[<classe de vendeur>],]<option>,[<valeur>[,<valeur>]]
Cela fonctionne exactement de la même façon que
.B --dhcp-option
sauf que cette option sera toujours envoyée, même si le client ne la demande pas
@@ -794,7 +800,7 @@
Associe des options de relais DHCP issues de la RFC3993 à des identifiants de
réseau.
.TP
-.B --dhcp-match=<identifiant de réseau>,<numéro d'option>|option:<nom d'option>[,<valeur>]
+.B --dhcp-match=<identifiant de réseau>,<numéro d'option>|option:<nom d'option>|vi-encap:<entreprise>[,<valeur>]
Si aucune valeur n'est spécifiée, associe l'identifiant de réseau si le client
envoie une option DHCP avec le numéro ou le nom spécifié. Lorsqu'une valeur est
fournie, positionne le label seulement dans le cas où l'option est fournie et
@@ -811,6 +817,11 @@
d'architectures envoyé par le client au sein de l'option 93. (se réferer
au RFC 4578 pour plus de détails). Si la valeur est un chaine de caractères,
celle-ci est recherchée (correspondance en temps que sous-chaîne).
+
+Pour la forme particulière vi-encap:<numéro d'entreprise>, la comparaison se
+fait avec les classes de vendeur "identifiant de vendeur" ("vendor-identifying
+vendor classes") pour l'entreprise dont le numéro est fourni en option.
+Veuillez vous réferer à la RFC 3925 pour plus de détail.
.TP
.B \-J, --dhcp-ignore=<identifiant de réseau>[,<identifiant de réseau>]
Lorsque tous les identifiants de réseau fournis coïncident avec la liste
@@ -847,7 +858,7 @@
ceux du client pour que cet élement de configuration lui soit envoyé. Il est à
noter que les identifiants de réseau doivent-être préfixés par "net:".
.TP
-.B --pxe-service=[net:<identifiant de réseau>,]<CSA>,<entrée de menu>,<nom de fichier>|<type de service de démarrage>[,<adresse de serveur>]
+.B --pxe-service=[net:<identifiant de réseau>,]<CSA>,<entrée de menu>[,<nom de fichier>|<type de service de démarrage>][,<adresse de serveur>]
La plupart des ROMS de démarrage PXE ne permettent au système PXE que la simple
obtention d'une adresse IP, le téléchargement du fichier spécifié dans
.B dhcp-boot
@@ -870,10 +881,12 @@
et ne doit pas être rajouté au nom de fichier. Si une valeur numérique entière
est fournir pour le type de démarrage, en remplacement du nom de fichier, le
client PXE devra chercher un service de démarrage de ce type sur le réseau.
-Cette recherche peut être faite via multicast ou broadcast, ou directement
-auprès d'un serveur si son adresse IP est fournie dans l'option. Un service de
-démarrage de type 0 est spécial et provoquera une interruption du démarrage par
-le réseau ainsi que la poursuite du démarrage sur un média local.
+Cette recherche peut être faite via broadcast ou directement auprès d'un
+serveur si son adresse IP est fournie dans l'option.
+Si aucun nom de fichier n'est donné ni aucune valeur de type de service de
+démarrage n'est fournie (ou qu'une valeur de 0 est donnée pour le type de
+service), alors l'entrée de menu provoque l'interruption du démarrage par
+le réseau et la poursuite du démarrage sur un média local.
.TP
.B --pxe-prompt=[net:<identifiant de réseau>,]<invite>[,<délai>]
Cette option permet d'afficher une invite à la suite du démarrage PXE. Si un
@@ -984,7 +997,9 @@
arrivée; ceci n'est pas renseigné dans le cas des actions "old" ayant lieu
après un redémarrage de dnsmasq. La variable DNSMASQ_RELAY_ADDRESS est
renseignée si le client a utilisé un relai DHCP pour contacter Dnsmasq, si
-l'adresse IP du relai est connue.
+l'adresse IP du relai est connue. DNSMASQ_TAGS contient tous les labels
+d'identifiants de réseau fournis pendant la transaction DHCP, séparés par des
+espaces.
Tous les descripteurs de fichiers sont fermés, sauf stdin, stdout et stderr qui
sont ouverts sur /dev/null (sauf en mode déverminage).
Le script n'est pas lancé de manière concurrente : si un autre changement de
@@ -1421,6 +1436,25 @@
ayant été testé avec succès avec un million de noms. Cette taille de fichier
nécessite un processeur à 1 Ghz et environ 60 Mo de RAM.
+.SH INTERNATIONALISATION
+Dnsmasq peut être compilé pour supporter l'internationalisation. Pour cela,
+les cibles "all-i18n" et "install-i18n" doivent être données à make, en lieu
+et place des cibles standards "all" et "install". Lorsque compilé avec le
+support de l'internationalisation, dnsmasq supporte les noms de domaines
+internationalisés ("internationalised domain names" ou IDN), et les messages de
+traces ("logs") sont écrits dans la langue locale. Les noms de domaines dans
+/etc/hosts, /etc/ethers et /etc/dnsmasq.conf contenant des caractères
+non-ASCII seront transformés selon la représentation punycode interne
+aux DNS. Veuillez noter que dnsmasq détermine la langue pour les messages
+ainsi que le jeu de caractères susceptible d'être utilisé dans les fichiers
+de configuration à partir de la variable d'environnement LANG. Ceci devrait
+être configuré à la valeur par défaut du système par les scripts démarrant
+dnsmasq. Lorsque les fichiers de configuration sont édités, veuillez faire
+attention à le faire en utilisant la valeur de locale par défaut du système
+et non une valeur spécifique à l'utilisateur, puisque dnsmasq n'a aucun
+moyen de déterminer directement la valeur de jeu de caractère utilisé,
+et assume de ce fait qu'il s'agit de la valeur par défaut du système.
+
.SH FICHIERS
.IR /etc/dnsmasq.conf
diff --git a/po/de.po b/po/de.po
index 6e1c440..9d32c89 100644
--- a/po/de.po
+++ b/po/de.po
@@ -20,19 +20,19 @@
msgid "failed to load names from %s: %s"
msgstr ""
-#: cache.c:798 dhcp.c:785
+#: cache.c:798 dhcp.c:804
#, c-format
msgid "bad address at %s line %d"
msgstr ""
# @Simon: Here I need an example to understand it :)
-#: cache.c:856 dhcp.c:801
+#: cache.c:856 dhcp.c:820
#, c-format
msgid "bad name at %s line %d"
msgstr ""
# @Simon: Here I need an example to understand it :)
-#: cache.c:863 dhcp.c:875
+#: cache.c:863 dhcp.c:894
#, c-format
msgid "read %s - %d addresses"
msgstr "lese %s - %d Adressen"
@@ -43,7 +43,7 @@
msgid "cleared cache"
msgstr "Cache geleert"
-#: cache.c:933 option.c:1055
+#: cache.c:933 option.c:1069
#, c-format
msgid "cannot access directory %s: %s"
msgstr ""
@@ -91,7 +91,7 @@
# @Simon: I would prefer to use "noch gültige" = "still valid", would that fit to the sense? Then it would be:
# @Simon: msgstr "Cache Größe %d, %d/%d Cache-Einfügungen verwendeten noch gültige Cache-Einträge wieder."
# @Simon: btw, what is the "%d/%d"-part?
-#: util.c:229 option.c:548
+#: util.c:229 option.c:549
msgid "could not get memory"
msgstr "Speicher nicht verfügbar"
@@ -542,206 +542,206 @@
msgid "Check configuration syntax."
msgstr ""
-#: option.c:613
+#: option.c:614
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
-#: option.c:615
+#: option.c:616
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
-#: option.c:617
+#: option.c:618
#, c-format
msgid "Valid options are:\n"
msgstr ""
-#: option.c:658
+#: option.c:659
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:735
+#: option.c:747
msgid "bad dhcp-option"
msgstr ""
# @Simon: Here I need an example to understand it :)
-#: option.c:792
+#: option.c:804
#, fuzzy
msgid "bad IP address"
msgstr "lese %s - %d Adressen"
-#: option.c:891
+#: option.c:903
msgid "bad domain in dhcp-option"
msgstr ""
-#: option.c:950
+#: option.c:964
msgid "dhcp-option too long"
msgstr ""
-#: option.c:959
+#: option.c:973
msgid "illegal dhcp-match"
msgstr ""
-#: option.c:995
+#: option.c:1009
msgid "illegal repeated flag"
msgstr ""
-#: option.c:1003
+#: option.c:1017
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:1086 tftp.c:359
+#: option.c:1100 tftp.c:359
#, c-format
msgid "cannot access %s: %s"
msgstr ""
-#: option.c:1131
+#: option.c:1145
msgid "only one dhcp-hostsfile allowed"
msgstr ""
-#: option.c:1138
+#: option.c:1152
msgid "only one dhcp-optsfile allowed"
msgstr ""
-#: option.c:1183
+#: option.c:1197
msgid "bad MX preference"
msgstr ""
-#: option.c:1188
+#: option.c:1202
msgid "bad MX name"
msgstr ""
-#: option.c:1202
+#: option.c:1216
msgid "bad MX target"
msgstr ""
-#: option.c:1212
+#: option.c:1226
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1214
+#: option.c:1228
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr ""
-#: option.c:1442 option.c:1446
+#: option.c:1456 option.c:1460
msgid "bad port"
msgstr ""
-#: option.c:1465 option.c:1490
+#: option.c:1479 option.c:1504
msgid "interface binding not supported"
msgstr ""
-#: option.c:1611
+#: option.c:1625
msgid "bad port range"
msgstr ""
-#: option.c:1628
+#: option.c:1642
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1669
+#: option.c:1683
msgid "bad dhcp-range"
msgstr ""
-#: option.c:1695
+#: option.c:1709
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1740
+#: option.c:1754
msgid "inconsistent DHCP range"
msgstr ""
-#: option.c:1912
+#: option.c:1926
msgid "bad DHCP host name"
msgstr ""
-#: option.c:2201 option.c:2481
+#: option.c:2221 option.c:2501
msgid "invalid port number"
msgstr ""
-#: option.c:2284
+#: option.c:2304
msgid "invalid alias range"
msgstr ""
-#: option.c:2297
+#: option.c:2317
msgid "bad interface name"
msgstr ""
-#: option.c:2322
+#: option.c:2342
msgid "bad CNAME"
msgstr ""
-#: option.c:2327
+#: option.c:2347
msgid "duplicate CNAME"
msgstr ""
-#: option.c:2347
+#: option.c:2367
msgid "bad PTR record"
msgstr ""
-#: option.c:2378
+#: option.c:2398
msgid "bad NAPTR record"
msgstr ""
-#: option.c:2403
+#: option.c:2423
msgid "TXT record string too long"
msgstr ""
-#: option.c:2451
+#: option.c:2471
msgid "bad TXT record"
msgstr ""
-#: option.c:2467
+#: option.c:2487
msgid "bad SRV record"
msgstr ""
-#: option.c:2474
+#: option.c:2494
msgid "bad SRV target"
msgstr ""
-#: option.c:2488
+#: option.c:2508
msgid "invalid priority"
msgstr ""
-#: option.c:2495
+#: option.c:2515
msgid "invalid weight"
msgstr ""
-#: option.c:2514
+#: option.c:2534
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr ""
-#: option.c:2557
+#: option.c:2577
#, c-format
msgid "files nested too deep in %s"
msgstr ""
-#: option.c:2565 tftp.c:513
+#: option.c:2585 tftp.c:513
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: option.c:2626
+#: option.c:2646
msgid "missing \""
msgstr ""
-#: option.c:2673
+#: option.c:2693
msgid "bad option"
msgstr ""
-#: option.c:2675
+#: option.c:2695
msgid "extraneous parameter"
msgstr ""
-#: option.c:2677
+#: option.c:2697
msgid "missing parameter"
msgstr ""
-#: option.c:2685
+#: option.c:2705
msgid "error"
msgstr ""
@@ -750,93 +750,93 @@
# @Simon: ("keinen Speicher" = "no memory", "... nicht bekommen" = "... not get")
# @Simon: both would be correct - but would sound rather clumsy in german
# @Simon: how about "Nicht genügend Speicher verfügbar" = "Not enough memory available" ?
-#: option.c:2691
+#: option.c:2711
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s in Zeile %d von %%s"
-#: option.c:2740 option.c:2771
+#: option.c:2760 option.c:2791
#, c-format
msgid "read %s"
msgstr ""
-#: option.c:2843
+#: option.c:2863
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
-#: option.c:2844
+#: option.c:2864
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
-#: option.c:2845
+#: option.c:2865
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
-#: option.c:2846
+#: option.c:2866
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:2847
+#: option.c:2867
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr ""
-#: option.c:2858
+#: option.c:2878
msgid "try --help"
msgstr ""
-#: option.c:2860
+#: option.c:2880
msgid "try -w"
msgstr ""
-#: option.c:2863
+#: option.c:2883
#, c-format
msgid "bad command line options: %s"
msgstr ""
-#: option.c:2904
+#: option.c:2924
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
-#: option.c:2932
+#: option.c:2952
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
-#: option.c:2942
+#: option.c:2962
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
-#: option.c:2945 network.c:754 dhcp.c:734
+#: option.c:2965 network.c:777 dhcp.c:753
#, c-format
msgid "failed to read %s: %s"
msgstr ""
-#: option.c:2962
+#: option.c:2982
#, c-format
msgid "no search directive found in %s"
msgstr ""
-#: option.c:2983
+#: option.c:3003
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr ""
-#: option.c:2987
+#: option.c:3007
msgid "syntax check OK"
msgstr ""
-#: forward.c:409
+#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
msgstr ""
-#: forward.c:437
+#: forward.c:433
msgid "possible DNS-rebind attack detected"
msgstr ""
@@ -845,78 +845,78 @@
msgid "unknown interface %s in bridge-interface"
msgstr ""
-#: network.c:417 dnsmasq.c:189
+#: network.c:436 dnsmasq.c:189
#, c-format
msgid "failed to create listening socket: %s"
msgstr ""
-#: network.c:424
+#: network.c:443
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr ""
-#: network.c:450
+#: network.c:469
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr ""
-#: network.c:455
+#: network.c:474
#, c-format
msgid "failed to listen on socket: %s"
msgstr ""
-#: network.c:467
+#: network.c:486
#, c-format
msgid "failed to create TFTP socket: %s"
msgstr ""
-#: network.c:661
+#: network.c:680
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr ""
-#: network.c:694
+#: network.c:717
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
-#: network.c:705
+#: network.c:728
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr ""
-#: network.c:720
+#: network.c:743
msgid "unqualified"
msgstr ""
-#: network.c:720
+#: network.c:743
msgid "names"
msgstr ""
-#: network.c:722
+#: network.c:745
msgid "default"
msgstr ""
-#: network.c:724
+#: network.c:747
msgid "domain"
msgstr ""
-#: network.c:727
+#: network.c:750
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:729
+#: network.c:752
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:732
+#: network.c:755
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr ""
-#: network.c:734
+#: network.c:757
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
@@ -944,7 +944,7 @@
msgid "no interface with address %s"
msgstr ""
-#: dnsmasq.c:201 dnsmasq.c:665
+#: dnsmasq.c:201 dnsmasq.c:670
#, c-format
msgid "DBus error: %s"
msgstr ""
@@ -1050,75 +1050,75 @@
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:667
+#: dnsmasq.c:672
msgid "connected to system DBus"
msgstr ""
-#: dnsmasq.c:757
-#, c-format
-msgid "cannot fork into background: %s"
-msgstr ""
-
-#: dnsmasq.c:760
-#, c-format
-msgid "failed to create helper: %s"
-msgstr ""
-
-#: dnsmasq.c:763
-#, c-format
-msgid "setting capabilities failed: %s"
-msgstr ""
-
#: dnsmasq.c:767
#, c-format
+msgid "cannot fork into background: %s"
+msgstr ""
+
+#: dnsmasq.c:770
+#, c-format
+msgid "failed to create helper: %s"
+msgstr ""
+
+#: dnsmasq.c:773
+#, c-format
+msgid "setting capabilities failed: %s"
+msgstr ""
+
+#: dnsmasq.c:777
+#, c-format
msgid "failed to change user-id to %s: %s"
msgstr ""
-#: dnsmasq.c:772
+#: dnsmasq.c:782
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr ""
-#: dnsmasq.c:775
+#: dnsmasq.c:785
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr ""
-#: dnsmasq.c:778
+#: dnsmasq.c:788
#, c-format
msgid "cannot open %s: %s"
msgstr ""
-#: dnsmasq.c:833
+#: dnsmasq.c:843
#, c-format
msgid "child process killed by signal %d"
msgstr ""
-#: dnsmasq.c:837
+#: dnsmasq.c:847
#, c-format
msgid "child process exited with status %d"
msgstr ""
-#: dnsmasq.c:841
+#: dnsmasq.c:851
#, c-format
msgid "failed to execute %s: %s"
msgstr ""
-#: dnsmasq.c:885
+#: dnsmasq.c:895
msgid "exiting on receipt of SIGTERM"
msgstr ""
-#: dnsmasq.c:903
+#: dnsmasq.c:913
#, c-format
msgid "failed to access %s: %s"
msgstr ""
-#: dnsmasq.c:925
+#: dnsmasq.c:935
#, c-format
msgid "reading %s"
msgstr ""
-#: dnsmasq.c:936
+#: dnsmasq.c:946
#, c-format
msgid "no servers found in %s, will retry"
msgstr ""
@@ -1143,47 +1143,47 @@
msgid "failed to bind DHCP server socket: %s"
msgstr ""
-#: dhcp.c:90
+#: dhcp.c:103
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr ""
-#: dhcp.c:226
+#: dhcp.c:240
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr ""
-#: dhcp.c:385
+#: dhcp.c:404
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
-#: dhcp.c:772
+#: dhcp.c:791
#, c-format
msgid "bad line at %s line %d"
msgstr ""
-#: dhcp.c:815
+#: dhcp.c:834
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr ""
-#: dhcp.c:897
+#: dhcp.c:916
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
-#: dhcp.c:900
+#: dhcp.c:919
#, c-format
msgid "duplicate IP address %s in %s."
msgstr ""
-#: dhcp.c:943
+#: dhcp.c:962
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:948
+#: dhcp.c:967
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
@@ -1212,172 +1212,177 @@
msgid "failed to write %s: %s (retry in %us)"
msgstr ""
-#: rfc2131.c:336
+#: rfc2131.c:375
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr ""
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "with subnet selector"
msgstr ""
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "via"
msgstr ""
-#: rfc2131.c:352
+#: rfc2131.c:391
#, c-format
msgid "%u Available DHCP subnet: %s/%s"
msgstr ""
-#: rfc2131.c:355
+#: rfc2131.c:394
#, c-format
msgid "%u Available DHCP range: %s -- %s"
msgstr ""
-#: rfc2131.c:384
+#: rfc2131.c:423
msgid "disabled"
msgstr ""
-#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+#: rfc2131.c:457 rfc2131.c:928 rfc2131.c:1277
msgid "ignored"
msgstr ""
-#: rfc2131.c:433 rfc2131.c:1100
+#: rfc2131.c:472 rfc2131.c:1145
msgid "address in use"
msgstr ""
-#: rfc2131.c:447 rfc2131.c:937
+#: rfc2131.c:486 rfc2131.c:982
msgid "no address available"
msgstr ""
-#: rfc2131.c:454 rfc2131.c:1063
+#: rfc2131.c:493 rfc2131.c:1108
msgid "wrong network"
msgstr ""
-#: rfc2131.c:467
+#: rfc2131.c:506
msgid "no address configured"
msgstr ""
-#: rfc2131.c:473 rfc2131.c:1113
+#: rfc2131.c:512 rfc2131.c:1158
msgid "no leases left"
msgstr ""
-#: rfc2131.c:558
+#: rfc2131.c:597
#, c-format
msgid "%u client provides name: %s"
msgstr ""
-#: rfc2131.c:696
+#: rfc2131.c:741
#, c-format
msgid "%u Vendor class: %s"
msgstr ""
-#: rfc2131.c:698
+#: rfc2131.c:743
#, c-format
msgid "%u User class: %s"
msgstr ""
-#: rfc2131.c:737
+#: rfc2131.c:782
msgid "PXE BIS not supported"
msgstr ""
-#: rfc2131.c:853
+#: rfc2131.c:898
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr ""
-#: rfc2131.c:874
+#: rfc2131.c:919
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:906
+#: rfc2131.c:951
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:916
+#: rfc2131.c:961
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:919
+#: rfc2131.c:964
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:935 rfc2131.c:1106
+#: rfc2131.c:980 rfc2131.c:1151
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:1003
+#: rfc2131.c:1048
msgid "wrong server-ID"
msgstr ""
-#: rfc2131.c:1022
+#: rfc2131.c:1067
msgid "wrong address"
msgstr ""
-#: rfc2131.c:1039
+#: rfc2131.c:1084
msgid "lease not found"
msgstr ""
-#: rfc2131.c:1071
+#: rfc2131.c:1116
msgid "address not available"
msgstr ""
-#: rfc2131.c:1082
+#: rfc2131.c:1127
msgid "static lease available"
msgstr ""
-#: rfc2131.c:1086
+#: rfc2131.c:1131
msgid "address reserved"
msgstr ""
-#: rfc2131.c:1094
+#: rfc2131.c:1139
#, c-format
msgid "abandoning lease to %s of %s"
msgstr ""
-#: rfc2131.c:1583
+#: rfc2131.c:1698
#, c-format
msgid "%u tags: %s"
msgstr ""
-#: rfc2131.c:1596
+#: rfc2131.c:1711
#, c-format
msgid "%u bootfile name: %s"
msgstr ""
-#: rfc2131.c:1605
+#: rfc2131.c:1720
#, c-format
msgid "%u server name: %s"
msgstr ""
-#: rfc2131.c:1613
+#: rfc2131.c:1728
#, c-format
msgid "%u next server: %s"
msgstr ""
-#: rfc2131.c:1680
+#: rfc2131.c:1795
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:1919
+#: rfc2131.c:2032
msgid "PXE menu too large"
msgstr ""
-#: rfc2131.c:2034
+#: rfc2131.c:2143
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr ""
-#: rfc2131.c:2052
+#: rfc2131.c:2161
#, c-format
msgid "%u requested options: %s"
msgstr ""
+#: rfc2131.c:2425
+#, c-format
+msgid "cannot send RFC3925 option: too many options for enterprise number %d"
+msgstr ""
+
#: netlink.c:66
#, c-format
msgid "cannot create netlink socket: %s"
@@ -1421,7 +1426,7 @@
#: tftp.c:282
#, c-format
-msgid "TFTP sent %s to %s"
+msgid "sent %s to %s"
msgstr ""
#: tftp.c:305
@@ -1431,12 +1436,12 @@
#: tftp.c:416
#, c-format
-msgid "TFTP error %d %s received from %s"
+msgid "error %d %s received from %s"
msgstr ""
#: tftp.c:447
#, c-format
-msgid "TFTP failed sending %s to %s"
+msgid "failed sending %s to %s"
msgstr ""
#: log.c:169
@@ -1452,7 +1457,7 @@
# @Simon: I would like to have an example :) - instead of "von" it would be possible to use "aus",
# @Simon: both translate to "of" and nothing else, but depending on the sense one could be better
# @Simon: than the other.
-#: log.c:415
+#: log.c:420
msgid "FAILED to start up"
msgstr "Start gescheitert"
diff --git a/po/es.po b/po/es.po
index 201e171..30eea7c 100644
--- a/po/es.po
+++ b/po/es.po
@@ -20,17 +20,17 @@
msgid "failed to load names from %s: %s"
msgstr "no se pudo cargar nombres desde %s: %s"
-#: cache.c:798 dhcp.c:785
+#: cache.c:798 dhcp.c:804
#, fuzzy, c-format
msgid "bad address at %s line %d"
msgstr "dirección errónea en %s línea %d"
-#: cache.c:856 dhcp.c:801
+#: cache.c:856 dhcp.c:820
#, c-format
msgid "bad name at %s line %d"
msgstr "nombre erróneo en %s línea %d"
-#: cache.c:863 dhcp.c:875
+#: cache.c:863 dhcp.c:894
#, c-format
msgid "read %s - %d addresses"
msgstr "direcciónes %s - %d leídas"
@@ -39,7 +39,7 @@
msgid "cleared cache"
msgstr "el caché fue liberado"
-#: cache.c:933 option.c:1055
+#: cache.c:933 option.c:1069
#, fuzzy, c-format
msgid "cannot access directory %s: %s"
msgstr "no se puede accesar directorio %s: %s"
@@ -77,9 +77,9 @@
#: util.c:191
#, fuzzy
msgid "failed to allocate memory"
-msgstr "no se pudo alocar %d bytes"
+msgstr "no se pudo asignar memoria"
-#: util.c:229 option.c:548
+#: util.c:229 option.c:549
msgid "could not get memory"
msgstr "no se pudo adquirir memoria"
@@ -91,7 +91,7 @@
#: util.c:247
#, fuzzy, c-format
msgid "failed to allocate %d bytes"
-msgstr "no se pudo alocar %d bytes"
+msgstr "no se pudo asignar %d bytes"
#: util.c:352
#, c-format
@@ -521,7 +521,7 @@
msgid "Check configuration syntax."
msgstr "Revisar sintaxis de configuración."
-#: option.c:613
+#: option.c:614
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -530,225 +530,225 @@
"Modo de uso: dnsmasq [opciones]\n"
"\n"
-#: option.c:615
+#: option.c:616
#, 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:617
+#: option.c:618
#, fuzzy, c-format
msgid "Valid options are:\n"
msgstr "Opciones válidas son :\n"
-#: option.c:658
+#: option.c:659
#, c-format
msgid "Known DHCP options:\n"
msgstr "Opciones DHCP conocidas:\n"
-#: option.c:735
+#: option.c:747
msgid "bad dhcp-option"
msgstr "opción dhcp-option errónea"
-#: option.c:792
+#: option.c:804
#, fuzzy
msgid "bad IP address"
msgstr "dirección IP errónea"
-#: option.c:891
+#: option.c:903
msgid "bad domain in dhcp-option"
msgstr "dominio erróneo en dhcp-option"
-#: option.c:950
+#: option.c:964
msgid "dhcp-option too long"
msgstr "opción dhcp-option demasiado larga"
-#: option.c:959
+#: option.c:973
msgid "illegal dhcp-match"
msgstr "dhcp-match ilegal"
-#: option.c:995
+#: option.c:1009
msgid "illegal repeated flag"
msgstr "opción repetida ilegal"
-#: option.c:1003
+#: option.c:1017
msgid "illegal repeated keyword"
msgstr "palabra clave repetida ilegal"
-#: option.c:1086 tftp.c:359
+#: option.c:1100 tftp.c:359
#, fuzzy, c-format
msgid "cannot access %s: %s"
msgstr "no se puede accesar %s: %s"
-#: option.c:1131
+#: option.c:1145
#, fuzzy
msgid "only one dhcp-hostsfile allowed"
msgstr "solo un dhcp-hostsfile permitido"
-#: option.c:1138
+#: option.c:1152
#, fuzzy
msgid "only one dhcp-optsfile allowed"
msgstr "solo un dhcp-optsfile permitido"
-#: option.c:1183
+#: option.c:1197
msgid "bad MX preference"
msgstr "preferencia MX errónea"
-#: option.c:1188
+#: option.c:1202
msgid "bad MX name"
msgstr "nombre MX erróneo"
-#: option.c:1202
+#: option.c:1216
msgid "bad MX target"
msgstr "destino MX erróneo"
-#: option.c:1212
+#: option.c:1226
msgid "cannot run scripts under uClinux"
msgstr "no se pueden correr archivos guiónes bajo uClinux"
-#: option.c:1214
+#: option.c:1228
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
-msgstr ""
+msgstr "recompilar con HAVE_SCRIPT definido para habilitar guiónes de cambio de arriendo"
-#: option.c:1442 option.c:1446
+#: option.c:1456 option.c:1460
msgid "bad port"
msgstr "puerto erróneo"
-#: option.c:1465 option.c:1490
+#: option.c:1479 option.c:1504
msgid "interface binding not supported"
msgstr "vinculación de interface no está soportado"
-#: option.c:1611
+#: option.c:1625
#, fuzzy
msgid "bad port range"
msgstr "rango de puertos erróneo"
-#: option.c:1628
+#: option.c:1642
msgid "bad bridge-interface"
msgstr "opción bridge-interface (interface puente) errónea"
-#: option.c:1669
+#: option.c:1683
msgid "bad dhcp-range"
msgstr "opción dhcp-range (rango DHCP) errónea"
-#: option.c:1695
+#: option.c:1709
msgid "only one netid tag allowed"
msgstr "solo una etiqueta netid permitida"
-#: option.c:1740
+#: option.c:1754
msgid "inconsistent DHCP range"
msgstr "rango DHCP inconsistente"
-#: option.c:1912
+#: option.c:1926
#, fuzzy
msgid "bad DHCP host name"
msgstr "nombre de host DHCP erróneo"
-#: option.c:2201 option.c:2481
+#: option.c:2221 option.c:2501
msgid "invalid port number"
msgstr "número de puerto inválido"
-#: option.c:2284
+#: option.c:2304
#, fuzzy
msgid "invalid alias range"
msgstr "rango alias inválido"
-#: option.c:2297
+#: option.c:2317
#, fuzzy
msgid "bad interface name"
msgstr "nombre de interface erróneo"
-#: option.c:2322
+#: option.c:2342
msgid "bad CNAME"
-msgstr ""
+msgstr "CNAME erróneo"
-#: option.c:2327
+#: option.c:2347
msgid "duplicate CNAME"
msgstr "CNAME duplicado"
-#: option.c:2347
+#: option.c:2367
#, fuzzy
msgid "bad PTR record"
msgstr "expediente PTR erróneo"
-#: option.c:2378
+#: option.c:2398
#, fuzzy
msgid "bad NAPTR record"
msgstr "expediente NAPTR erróneo"
-#: option.c:2403
+#: option.c:2423
msgid "TXT record string too long"
msgstr "expediente TXT demasiado largo"
-#: option.c:2451
+#: option.c:2471
msgid "bad TXT record"
msgstr "expediente TXT erróneo"
-#: option.c:2467
+#: option.c:2487
msgid "bad SRV record"
msgstr "expediente SRV erróneo"
-#: option.c:2474
+#: option.c:2494
msgid "bad SRV target"
msgstr "destino SRV erróneo"
-#: option.c:2488
+#: option.c:2508
msgid "invalid priority"
msgstr "prioridad inválida"
-#: option.c:2495
+#: option.c:2515
msgid "invalid weight"
msgstr "peso inválido"
-#: option.c:2514
+#: option.c:2534
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:2557
+#: option.c:2577
#, c-format
msgid "files nested too deep in %s"
msgstr "archivos jerarquizados demasiado profundo en %s"
-#: option.c:2565 tftp.c:513
+#: option.c:2585 tftp.c:513
#, c-format
msgid "cannot read %s: %s"
msgstr "no se puede leer %s: %s"
-#: option.c:2626
+#: option.c:2646
msgid "missing \""
msgstr "falta \""
-#: option.c:2673
+#: option.c:2693
msgid "bad option"
msgstr "opción errónea"
-#: option.c:2675
+#: option.c:2695
msgid "extraneous parameter"
msgstr "parámetro extraño"
-#: option.c:2677
+#: option.c:2697
msgid "missing parameter"
msgstr "parámetro ausente"
-#: option.c:2685
+#: option.c:2705
msgid "error"
msgstr "error"
-#: option.c:2691
+#: option.c:2711
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s en línea %d de %%s"
-#: option.c:2740 option.c:2771
+#: option.c:2760 option.c:2791
#, fuzzy, c-format
msgid "read %s"
msgstr "leyendo %s"
-#: option.c:2843
+#: option.c:2863
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq versión %s %s\n"
-#: option.c:2844
+#: option.c:2864
#, c-format
msgid ""
"Compile time options %s\n"
@@ -757,71 +757,71 @@
"Opciones de compilación %s\n"
"\n"
-#: option.c:2845
+#: option.c:2865
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Este software viene SIN NINGUNA GARANTIA.\n"
-#: option.c:2846
+#: option.c:2866
#, 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:2847
+#: option.c:2867
#, 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:2858
+#: option.c:2878
msgid "try --help"
msgstr "pruebe --help"
-#: option.c:2860
+#: option.c:2880
msgid "try -w"
msgstr "pruebe -w"
-#: option.c:2863
+#: option.c:2883
#, fuzzy, c-format
msgid "bad command line options: %s"
msgstr "opciones de línea de comandos erróneas: %s"
-#: option.c:2904
+#: option.c:2924
#, c-format
msgid "cannot get host-name: %s"
msgstr "no se puede obtener host-name (nombre de host): %s"
-#: option.c:2932
+#: option.c:2952
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "solo un archivo resolv.conf permitido en modo no-poll."
-#: option.c:2942
+#: option.c:2962
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:2945 network.c:754 dhcp.c:734
+#: option.c:2965 network.c:777 dhcp.c:753
#, fuzzy, c-format
msgid "failed to read %s: %s"
msgstr "no se pudo leer %s: %s"
-#: option.c:2962
+#: option.c:2982
#, c-format
msgid "no search directive found in %s"
msgstr "ninguna directiva de búsqueda encontrada en %s"
-#: option.c:2983
+#: option.c:3003
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:2987
+#: option.c:3007
msgid "syntax check OK"
msgstr "revisión de sintaxis OK"
-#: forward.c:409
+#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
msgstr "servidor DNS %s se reusó a hacer una búsqueda recursiva"
-#: forward.c:437
+#: forward.c:433
msgid "possible DNS-rebind attack detected"
msgstr "posible ataque de revinculación DNS detectado"
@@ -830,78 +830,78 @@
msgid "unknown interface %s in bridge-interface"
msgstr "interface desconocida %s en bridge-interface"
-#: network.c:417 dnsmasq.c:189
+#: network.c:436 dnsmasq.c:189
#, c-format
msgid "failed to create listening socket: %s"
msgstr "no se pudo crear un socket escuchador: %s"
-#: network.c:424
+#: network.c:443
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr "no se pudo fijar opciones IPv6 sobre socket escuchador: %s"
-#: network.c:450
+#: network.c:469
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "no se pudo acoplar socket escuchador para %s: %s"
-#: network.c:455
+#: network.c:474
#, c-format
msgid "failed to listen on socket: %s"
msgstr "no se pudo escuchar en socket: %s"
-#: network.c:467
+#: network.c:486
#, fuzzy, c-format
msgid "failed to create TFTP socket: %s"
msgstr "no se pudo crear socket TFTP: %s"
-#: network.c:661
+#: network.c:680
#, fuzzy, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "no se pudo acoplar socket escuchador para %s: %s"
-#: network.c:694
+#: network.c:717
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorando servidor DNS %s - interface local"
-#: network.c:705
+#: network.c:728
#, 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:720
+#: network.c:743
msgid "unqualified"
msgstr "no calificado"
-#: network.c:720
+#: network.c:743
msgid "names"
msgstr "nombres"
-#: network.c:722
+#: network.c:745
msgid "default"
msgstr "predeterminado"
-#: network.c:724
+#: network.c:747
msgid "domain"
msgstr "dominio"
-#: network.c:727
+#: network.c:750
#, c-format
msgid "using local addresses only for %s %s"
msgstr "usando direcciones locales solo para %s %s"
-#: network.c:729
+#: network.c:752
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "usando servidor DNS %s#%d para %s %s"
-#: network.c:732
+#: network.c:755
#, fuzzy, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "usando servidor DNS %s#%d(vía %s)"
-#: network.c:734
+#: network.c:757
#, c-format
msgid "using nameserver %s#%d"
msgstr "usando servidor DNS %s#%d"
@@ -931,7 +931,7 @@
msgid "no interface with address %s"
msgstr "ninguna interface con dirección %s"
-#: dnsmasq.c:201 dnsmasq.c:665
+#: dnsmasq.c:201 dnsmasq.c:670
#, c-format
msgid "DBus error: %s"
msgstr "error DBus: %s"
@@ -1039,75 +1039,75 @@
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "limitando número máximo de transferencias TFTP simultáneas a %d"
-#: dnsmasq.c:667
+#: dnsmasq.c:672
msgid "connected to system DBus"
msgstr "conectado a DBus de sistema"
-#: dnsmasq.c:757
+#: dnsmasq.c:767
#, c-format
msgid "cannot fork into background: %s"
msgstr "no se puede hacer fork hacia el fondo: %s"
-#: dnsmasq.c:760
+#: dnsmasq.c:770
#, fuzzy, c-format
msgid "failed to create helper: %s"
msgstr "no se pudo crear ayudante: %s"
-#: dnsmasq.c:763
+#: dnsmasq.c:773
#, fuzzy, c-format
msgid "setting capabilities failed: %s"
msgstr "configuración de capacidades ha fallado: %s"
-#: dnsmasq.c:767
+#: dnsmasq.c:777
#, fuzzy, c-format
msgid "failed to change user-id to %s: %s"
msgstr "no se pudo cambiar user-id a %s: %s"
-#: dnsmasq.c:772
+#: dnsmasq.c:782
#, fuzzy, c-format
msgid "failed to change group-id to %s: %s"
msgstr "no se pudo cambiar group-id a %s: %s"
-#: dnsmasq.c:775
+#: dnsmasq.c:785
#, fuzzy, c-format
msgid "failed to open pidfile %s: %s"
msgstr "no se pudo abrir archivo PID %s: %s"
-#: dnsmasq.c:778
+#: dnsmasq.c:788
#, fuzzy, c-format
msgid "cannot open %s: %s"
msgstr "no se puede abrir %s: %s"
-#: dnsmasq.c:833
+#: dnsmasq.c:843
#, c-format
msgid "child process killed by signal %d"
msgstr "proceso hijo eliminado por señal %d"
-#: dnsmasq.c:837
+#: dnsmasq.c:847
#, c-format
msgid "child process exited with status %d"
msgstr "proceso hijo hizo exit con estado %d"
-#: dnsmasq.c:841
+#: dnsmasq.c:851
#, fuzzy, c-format
msgid "failed to execute %s: %s"
msgstr "no se pudo ejecutar %s: %s"
-#: dnsmasq.c:885
+#: dnsmasq.c:895
msgid "exiting on receipt of SIGTERM"
msgstr "saliendo al recibir SIGTERM"
-#: dnsmasq.c:903
+#: dnsmasq.c:913
#, fuzzy, c-format
msgid "failed to access %s: %s"
msgstr "no se pudo accesar %s: %s"
-#: dnsmasq.c:925
+#: dnsmasq.c:935
#, c-format
msgid "reading %s"
msgstr "leyendo %s"
-#: dnsmasq.c:936
+#: dnsmasq.c:946
#, fuzzy, c-format
msgid "no servers found in %s, will retry"
msgstr "ningún servidor encontrado en %s, se reintentará"
@@ -1132,47 +1132,47 @@
msgid "failed to bind DHCP server socket: %s"
msgstr "no se pudo acoplar socket de servidor DHCP: %s"
-#: dhcp.c:90
+#: dhcp.c:103
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "no se puede crear socket crudo ICMP: %s."
-#: dhcp.c:226
+#: dhcp.c:240
#, 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:385
+#: dhcp.c:404
#, 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:772
+#: dhcp.c:791
#, fuzzy, c-format
msgid "bad line at %s line %d"
msgstr "línea errónea en %s línea %d"
-#: dhcp.c:815
+#: dhcp.c:834
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
-msgstr ""
+msgstr "ignorando %s línea %d, nombre o dirección IP duplicada"
-#: dhcp.c:897
+#: dhcp.c:916
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "dirección IP duplicada %s en directiva dhcp-config."
-#: dhcp.c:900
+#: dhcp.c:919
#, fuzzy, c-format
msgid "duplicate IP address %s in %s."
msgstr "dirección IP duplicada %s en %s."
-#: dhcp.c:943
+#: dhcp.c:962
#, 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:948
+#: dhcp.c:967
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "dirección IP duplicada %s (%s) en directiva dhcp-config"
@@ -1201,172 +1201,177 @@
msgid "failed to write %s: %s (retry in %us)"
msgstr "error al escribir %s: %s (reintentar en %us)"
-#: rfc2131.c:336
+#: rfc2131.c:375
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "ningún rango de direcciónes disponible para pedido DHCP %s %s"
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "with subnet selector"
msgstr "con selector de subred"
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "via"
msgstr "vía"
-#: rfc2131.c:352
+#: rfc2131.c:391
#, c-format
msgid "%u Available DHCP subnet: %s/%s"
msgstr "%u Subred DHCP disponible: %s/%s"
-#: rfc2131.c:355
+#: rfc2131.c:394
#, c-format
msgid "%u Available DHCP range: %s -- %s"
msgstr "%u Rango DHCP disponible: %s -- %s"
-#: rfc2131.c:384
+#: rfc2131.c:423
msgid "disabled"
msgstr "deshabilitado"
-#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+#: rfc2131.c:457 rfc2131.c:928 rfc2131.c:1277
msgid "ignored"
msgstr "ignorado"
-#: rfc2131.c:433 rfc2131.c:1100
+#: rfc2131.c:472 rfc2131.c:1145
msgid "address in use"
msgstr "dirección en uso"
-#: rfc2131.c:447 rfc2131.c:937
+#: rfc2131.c:486 rfc2131.c:982
msgid "no address available"
msgstr "ninguna dirección disponible"
-#: rfc2131.c:454 rfc2131.c:1063
+#: rfc2131.c:493 rfc2131.c:1108
msgid "wrong network"
msgstr "red equivocada"
-#: rfc2131.c:467
+#: rfc2131.c:506
msgid "no address configured"
msgstr "ninguna dirección configurada"
-#: rfc2131.c:473 rfc2131.c:1113
+#: rfc2131.c:512 rfc2131.c:1158
msgid "no leases left"
msgstr "no sobra ningún arriendo"
-#: rfc2131.c:558
+#: rfc2131.c:597
#, fuzzy, c-format
msgid "%u client provides name: %s"
msgstr "%u cliente provee nombre: %s"
-#: rfc2131.c:696
+#: rfc2131.c:741
#, c-format
msgid "%u Vendor class: %s"
msgstr "%u Clase de vendedor: %s"
-#: rfc2131.c:698
+#: rfc2131.c:743
#, c-format
msgid "%u User class: %s"
msgstr "%u Clase de usuario: %s"
-#: rfc2131.c:737
+#: rfc2131.c:782
msgid "PXE BIS not supported"
msgstr "no hay soporte para BIS PXE"
-#: rfc2131.c:853
+#: rfc2131.c:898
#, fuzzy, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "deshabilitando dirección DHCP estática %s para %s"
-#: rfc2131.c:874
+#: rfc2131.c:919
msgid "unknown lease"
msgstr "arriendo desconocido"
-#: rfc2131.c:906
+#: rfc2131.c:951
#, 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:916
+#: rfc2131.c:961
#, 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:919
+#: rfc2131.c:964
#, 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:935 rfc2131.c:1106
+#: rfc2131.c:980 rfc2131.c:1151
msgid "no unique-id"
msgstr "ningún unique-id (identificación única)"
-#: rfc2131.c:1003
+#: rfc2131.c:1048
msgid "wrong server-ID"
msgstr "ID de servidor equivocada"
-#: rfc2131.c:1022
+#: rfc2131.c:1067
msgid "wrong address"
msgstr "dirección equivocada"
-#: rfc2131.c:1039
+#: rfc2131.c:1084
msgid "lease not found"
msgstr "arriendo no encontrado"
-#: rfc2131.c:1071
+#: rfc2131.c:1116
msgid "address not available"
msgstr "dirección no disponible"
-#: rfc2131.c:1082
+#: rfc2131.c:1127
msgid "static lease available"
msgstr "arriendo estático disponible"
-#: rfc2131.c:1086
+#: rfc2131.c:1131
msgid "address reserved"
msgstr "dirección reservada"
-#: rfc2131.c:1094
+#: rfc2131.c:1139
#, c-format
msgid "abandoning lease to %s of %s"
msgstr "abandonando arriendo a %s de %s"
-#: rfc2131.c:1583
+#: rfc2131.c:1698
#, c-format
msgid "%u tags: %s"
msgstr "%u etiquetas: %s"
-#: rfc2131.c:1596
+#: rfc2131.c:1711
#, c-format
msgid "%u bootfile name: %s"
msgstr "%u nombre de bootfile: %s"
-#: rfc2131.c:1605
+#: rfc2131.c:1720
#, c-format
msgid "%u server name: %s"
msgstr "%u nombre de servidor: %s"
-#: rfc2131.c:1613
+#: rfc2131.c:1728
#, fuzzy, c-format
msgid "%u next server: %s"
msgstr "%u siguiente servidor: %s"
-#: rfc2131.c:1680
+#: rfc2131.c:1795
#, 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:1919
+#: rfc2131.c:2032
msgid "PXE menu too large"
msgstr "menú PXE demasiado grande"
-#: rfc2131.c:2034
+#: rfc2131.c:2143
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr "Ignorando dominio %s para nombre de host DHCP %s"
-#: rfc2131.c:2052
+#: rfc2131.c:2161
#, fuzzy, c-format
msgid "%u requested options: %s"
msgstr "%u opciones solicitadas: %s"
+#: rfc2131.c:2425
+#, 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:66
#, fuzzy, c-format
msgid "cannot create netlink socket: %s"
@@ -1409,8 +1414,8 @@
msgstr "pedido no-soportado desde %s"
#: tftp.c:282
-#, c-format
-msgid "TFTP sent %s to %s"
+#, fuzzy, c-format
+msgid "sent %s to %s"
msgstr "TFTP envió %s a %s"
#: tftp.c:305
@@ -1419,13 +1424,13 @@
msgstr "archivo %s no encontrado"
#: tftp.c:416
-#, c-format
-msgid "TFTP error %d %s received from %s"
+#, fuzzy, c-format
+msgid "error %d %s received from %s"
msgstr "error TFTP %d %s recibido de %s"
#: tftp.c:447
#, fuzzy, c-format
-msgid "TFTP failed sending %s to %s"
+msgid "failed sending %s to %s"
msgstr "TFTP no pudo enviar %s a %s"
#: log.c:169
@@ -1438,7 +1443,7 @@
msgid "log failed: %s"
msgstr "bitácora falló: %s"
-#: log.c:415
+#: log.c:420
msgid "FAILED to start up"
msgstr "el inicio ha FALLADO"
diff --git a/po/fi.po b/po/fi.po
index a0a6fbd..f11e53a 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -20,17 +20,17 @@
msgid "failed to load names from %s: %s"
msgstr ""
-#: cache.c:798 dhcp.c:785
+#: cache.c:798 dhcp.c:804
#, c-format
msgid "bad address at %s line %d"
msgstr ""
-#: cache.c:856 dhcp.c:801
+#: cache.c:856 dhcp.c:820
#, c-format
msgid "bad name at %s line %d"
msgstr ""
-#: cache.c:863 dhcp.c:875
+#: cache.c:863 dhcp.c:894
#, c-format
msgid "read %s - %d addresses"
msgstr ""
@@ -39,7 +39,7 @@
msgid "cleared cache"
msgstr ""
-#: cache.c:933 option.c:1055
+#: cache.c:933 option.c:1069
#, c-format
msgid "cannot access directory %s: %s"
msgstr ""
@@ -78,7 +78,7 @@
msgid "failed to allocate memory"
msgstr ""
-#: util.c:229 option.c:548
+#: util.c:229 option.c:549
msgid "could not get memory"
msgstr ""
@@ -506,294 +506,294 @@
msgid "Check configuration syntax."
msgstr ""
-#: option.c:613
+#: option.c:614
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
-#: option.c:615
+#: option.c:616
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
-#: option.c:617
+#: option.c:618
#, c-format
msgid "Valid options are:\n"
msgstr ""
-#: option.c:658
+#: option.c:659
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:735
+#: option.c:747
msgid "bad dhcp-option"
msgstr ""
-#: option.c:792
+#: option.c:804
msgid "bad IP address"
msgstr ""
-#: option.c:891
+#: option.c:903
msgid "bad domain in dhcp-option"
msgstr ""
-#: option.c:950
+#: option.c:964
msgid "dhcp-option too long"
msgstr ""
-#: option.c:959
+#: option.c:973
msgid "illegal dhcp-match"
msgstr ""
-#: option.c:995
+#: option.c:1009
msgid "illegal repeated flag"
msgstr ""
-#: option.c:1003
+#: option.c:1017
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:1086 tftp.c:359
+#: option.c:1100 tftp.c:359
#, c-format
msgid "cannot access %s: %s"
msgstr ""
-#: option.c:1131
+#: option.c:1145
msgid "only one dhcp-hostsfile allowed"
msgstr ""
-#: option.c:1138
+#: option.c:1152
msgid "only one dhcp-optsfile allowed"
msgstr ""
-#: option.c:1183
+#: option.c:1197
msgid "bad MX preference"
msgstr ""
-#: option.c:1188
+#: option.c:1202
msgid "bad MX name"
msgstr ""
-#: option.c:1202
+#: option.c:1216
msgid "bad MX target"
msgstr ""
-#: option.c:1212
+#: option.c:1226
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1214
+#: option.c:1228
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr ""
-#: option.c:1442 option.c:1446
+#: option.c:1456 option.c:1460
msgid "bad port"
msgstr ""
-#: option.c:1465 option.c:1490
+#: option.c:1479 option.c:1504
msgid "interface binding not supported"
msgstr ""
-#: option.c:1611
+#: option.c:1625
msgid "bad port range"
msgstr ""
-#: option.c:1628
+#: option.c:1642
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1669
+#: option.c:1683
msgid "bad dhcp-range"
msgstr ""
-#: option.c:1695
+#: option.c:1709
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1740
+#: option.c:1754
msgid "inconsistent DHCP range"
msgstr ""
-#: option.c:1912
+#: option.c:1926
msgid "bad DHCP host name"
msgstr ""
-#: option.c:2201 option.c:2481
+#: option.c:2221 option.c:2501
msgid "invalid port number"
msgstr ""
-#: option.c:2284
+#: option.c:2304
msgid "invalid alias range"
msgstr ""
-#: option.c:2297
+#: option.c:2317
msgid "bad interface name"
msgstr ""
-#: option.c:2322
+#: option.c:2342
msgid "bad CNAME"
msgstr ""
-#: option.c:2327
+#: option.c:2347
msgid "duplicate CNAME"
msgstr ""
-#: option.c:2347
+#: option.c:2367
msgid "bad PTR record"
msgstr ""
-#: option.c:2378
+#: option.c:2398
msgid "bad NAPTR record"
msgstr ""
-#: option.c:2403
+#: option.c:2423
msgid "TXT record string too long"
msgstr ""
-#: option.c:2451
+#: option.c:2471
msgid "bad TXT record"
msgstr ""
-#: option.c:2467
+#: option.c:2487
msgid "bad SRV record"
msgstr ""
-#: option.c:2474
+#: option.c:2494
msgid "bad SRV target"
msgstr ""
-#: option.c:2488
+#: option.c:2508
msgid "invalid priority"
msgstr ""
-#: option.c:2495
+#: option.c:2515
msgid "invalid weight"
msgstr ""
-#: option.c:2514
+#: option.c:2534
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr ""
-#: option.c:2557
+#: option.c:2577
#, c-format
msgid "files nested too deep in %s"
msgstr ""
-#: option.c:2565 tftp.c:513
+#: option.c:2585 tftp.c:513
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: option.c:2626
+#: option.c:2646
msgid "missing \""
msgstr ""
-#: option.c:2673
+#: option.c:2693
msgid "bad option"
msgstr ""
-#: option.c:2675
+#: option.c:2695
msgid "extraneous parameter"
msgstr ""
-#: option.c:2677
+#: option.c:2697
msgid "missing parameter"
msgstr ""
-#: option.c:2685
+#: option.c:2705
msgid "error"
msgstr ""
-#: option.c:2691
+#: option.c:2711
#, c-format
msgid "%s at line %d of %%s"
msgstr ""
-#: option.c:2740 option.c:2771
+#: option.c:2760 option.c:2791
#, c-format
msgid "read %s"
msgstr ""
-#: option.c:2843
+#: option.c:2863
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
-#: option.c:2844
+#: option.c:2864
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
-#: option.c:2845
+#: option.c:2865
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
-#: option.c:2846
+#: option.c:2866
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:2847
+#: option.c:2867
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr ""
-#: option.c:2858
+#: option.c:2878
msgid "try --help"
msgstr ""
-#: option.c:2860
+#: option.c:2880
msgid "try -w"
msgstr ""
-#: option.c:2863
+#: option.c:2883
#, c-format
msgid "bad command line options: %s"
msgstr ""
-#: option.c:2904
+#: option.c:2924
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
-#: option.c:2932
+#: option.c:2952
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
-#: option.c:2942
+#: option.c:2962
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
-#: option.c:2945 network.c:754 dhcp.c:734
+#: option.c:2965 network.c:777 dhcp.c:753
#, c-format
msgid "failed to read %s: %s"
msgstr ""
-#: option.c:2962
+#: option.c:2982
#, c-format
msgid "no search directive found in %s"
msgstr ""
-#: option.c:2983
+#: option.c:3003
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr ""
-#: option.c:2987
+#: option.c:3007
msgid "syntax check OK"
msgstr ""
-#: forward.c:409
+#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
msgstr ""
-#: forward.c:437
+#: forward.c:433
msgid "possible DNS-rebind attack detected"
msgstr ""
@@ -802,78 +802,78 @@
msgid "unknown interface %s in bridge-interface"
msgstr ""
-#: network.c:417 dnsmasq.c:189
+#: network.c:436 dnsmasq.c:189
#, c-format
msgid "failed to create listening socket: %s"
msgstr ""
-#: network.c:424
+#: network.c:443
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr ""
-#: network.c:450
+#: network.c:469
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr ""
-#: network.c:455
+#: network.c:474
#, c-format
msgid "failed to listen on socket: %s"
msgstr ""
-#: network.c:467
+#: network.c:486
#, c-format
msgid "failed to create TFTP socket: %s"
msgstr ""
-#: network.c:661
+#: network.c:680
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr ""
-#: network.c:694
+#: network.c:717
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
-#: network.c:705
+#: network.c:728
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr ""
-#: network.c:720
+#: network.c:743
msgid "unqualified"
msgstr ""
-#: network.c:720
+#: network.c:743
msgid "names"
msgstr ""
-#: network.c:722
+#: network.c:745
msgid "default"
msgstr ""
-#: network.c:724
+#: network.c:747
msgid "domain"
msgstr ""
-#: network.c:727
+#: network.c:750
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:729
+#: network.c:752
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:732
+#: network.c:755
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr ""
-#: network.c:734
+#: network.c:757
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
@@ -901,7 +901,7 @@
msgid "no interface with address %s"
msgstr ""
-#: dnsmasq.c:201 dnsmasq.c:665
+#: dnsmasq.c:201 dnsmasq.c:670
#, c-format
msgid "DBus error: %s"
msgstr ""
@@ -1007,75 +1007,75 @@
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:667
+#: dnsmasq.c:672
msgid "connected to system DBus"
msgstr ""
-#: dnsmasq.c:757
-#, c-format
-msgid "cannot fork into background: %s"
-msgstr ""
-
-#: dnsmasq.c:760
-#, c-format
-msgid "failed to create helper: %s"
-msgstr ""
-
-#: dnsmasq.c:763
-#, c-format
-msgid "setting capabilities failed: %s"
-msgstr ""
-
#: dnsmasq.c:767
#, c-format
+msgid "cannot fork into background: %s"
+msgstr ""
+
+#: dnsmasq.c:770
+#, c-format
+msgid "failed to create helper: %s"
+msgstr ""
+
+#: dnsmasq.c:773
+#, c-format
+msgid "setting capabilities failed: %s"
+msgstr ""
+
+#: dnsmasq.c:777
+#, c-format
msgid "failed to change user-id to %s: %s"
msgstr ""
-#: dnsmasq.c:772
+#: dnsmasq.c:782
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr ""
-#: dnsmasq.c:775
+#: dnsmasq.c:785
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr ""
-#: dnsmasq.c:778
+#: dnsmasq.c:788
#, c-format
msgid "cannot open %s: %s"
msgstr ""
-#: dnsmasq.c:833
+#: dnsmasq.c:843
#, c-format
msgid "child process killed by signal %d"
msgstr ""
-#: dnsmasq.c:837
+#: dnsmasq.c:847
#, c-format
msgid "child process exited with status %d"
msgstr ""
-#: dnsmasq.c:841
+#: dnsmasq.c:851
#, c-format
msgid "failed to execute %s: %s"
msgstr ""
-#: dnsmasq.c:885
+#: dnsmasq.c:895
msgid "exiting on receipt of SIGTERM"
msgstr ""
-#: dnsmasq.c:903
+#: dnsmasq.c:913
#, c-format
msgid "failed to access %s: %s"
msgstr ""
-#: dnsmasq.c:925
+#: dnsmasq.c:935
#, c-format
msgid "reading %s"
msgstr ""
-#: dnsmasq.c:936
+#: dnsmasq.c:946
#, c-format
msgid "no servers found in %s, will retry"
msgstr ""
@@ -1100,47 +1100,47 @@
msgid "failed to bind DHCP server socket: %s"
msgstr ""
-#: dhcp.c:90
+#: dhcp.c:103
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr ""
-#: dhcp.c:226
+#: dhcp.c:240
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr ""
-#: dhcp.c:385
+#: dhcp.c:404
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
-#: dhcp.c:772
+#: dhcp.c:791
#, c-format
msgid "bad line at %s line %d"
msgstr ""
-#: dhcp.c:815
+#: dhcp.c:834
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr ""
-#: dhcp.c:897
+#: dhcp.c:916
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
-#: dhcp.c:900
+#: dhcp.c:919
#, c-format
msgid "duplicate IP address %s in %s."
msgstr ""
-#: dhcp.c:943
+#: dhcp.c:962
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:948
+#: dhcp.c:967
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
@@ -1169,172 +1169,177 @@
msgid "failed to write %s: %s (retry in %us)"
msgstr ""
-#: rfc2131.c:336
+#: rfc2131.c:375
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr ""
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "with subnet selector"
msgstr ""
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "via"
msgstr ""
-#: rfc2131.c:352
+#: rfc2131.c:391
#, c-format
msgid "%u Available DHCP subnet: %s/%s"
msgstr ""
-#: rfc2131.c:355
+#: rfc2131.c:394
#, c-format
msgid "%u Available DHCP range: %s -- %s"
msgstr ""
-#: rfc2131.c:384
+#: rfc2131.c:423
msgid "disabled"
msgstr ""
-#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+#: rfc2131.c:457 rfc2131.c:928 rfc2131.c:1277
msgid "ignored"
msgstr ""
-#: rfc2131.c:433 rfc2131.c:1100
+#: rfc2131.c:472 rfc2131.c:1145
msgid "address in use"
msgstr ""
-#: rfc2131.c:447 rfc2131.c:937
+#: rfc2131.c:486 rfc2131.c:982
msgid "no address available"
msgstr ""
-#: rfc2131.c:454 rfc2131.c:1063
+#: rfc2131.c:493 rfc2131.c:1108
msgid "wrong network"
msgstr ""
-#: rfc2131.c:467
+#: rfc2131.c:506
msgid "no address configured"
msgstr ""
-#: rfc2131.c:473 rfc2131.c:1113
+#: rfc2131.c:512 rfc2131.c:1158
msgid "no leases left"
msgstr ""
-#: rfc2131.c:558
+#: rfc2131.c:597
#, c-format
msgid "%u client provides name: %s"
msgstr ""
-#: rfc2131.c:696
+#: rfc2131.c:741
#, c-format
msgid "%u Vendor class: %s"
msgstr ""
-#: rfc2131.c:698
+#: rfc2131.c:743
#, c-format
msgid "%u User class: %s"
msgstr ""
-#: rfc2131.c:737
+#: rfc2131.c:782
msgid "PXE BIS not supported"
msgstr ""
-#: rfc2131.c:853
+#: rfc2131.c:898
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr ""
-#: rfc2131.c:874
+#: rfc2131.c:919
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:906
+#: rfc2131.c:951
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:916
+#: rfc2131.c:961
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:919
+#: rfc2131.c:964
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:935 rfc2131.c:1106
+#: rfc2131.c:980 rfc2131.c:1151
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:1003
+#: rfc2131.c:1048
msgid "wrong server-ID"
msgstr ""
-#: rfc2131.c:1022
+#: rfc2131.c:1067
msgid "wrong address"
msgstr ""
-#: rfc2131.c:1039
+#: rfc2131.c:1084
msgid "lease not found"
msgstr ""
-#: rfc2131.c:1071
+#: rfc2131.c:1116
msgid "address not available"
msgstr ""
-#: rfc2131.c:1082
+#: rfc2131.c:1127
msgid "static lease available"
msgstr ""
-#: rfc2131.c:1086
+#: rfc2131.c:1131
msgid "address reserved"
msgstr ""
-#: rfc2131.c:1094
+#: rfc2131.c:1139
#, c-format
msgid "abandoning lease to %s of %s"
msgstr ""
-#: rfc2131.c:1583
+#: rfc2131.c:1698
#, c-format
msgid "%u tags: %s"
msgstr ""
-#: rfc2131.c:1596
+#: rfc2131.c:1711
#, c-format
msgid "%u bootfile name: %s"
msgstr ""
-#: rfc2131.c:1605
+#: rfc2131.c:1720
#, c-format
msgid "%u server name: %s"
msgstr ""
-#: rfc2131.c:1613
+#: rfc2131.c:1728
#, c-format
msgid "%u next server: %s"
msgstr ""
-#: rfc2131.c:1680
+#: rfc2131.c:1795
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:1919
+#: rfc2131.c:2032
msgid "PXE menu too large"
msgstr ""
-#: rfc2131.c:2034
+#: rfc2131.c:2143
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr ""
-#: rfc2131.c:2052
+#: rfc2131.c:2161
#, c-format
msgid "%u requested options: %s"
msgstr ""
+#: rfc2131.c:2425
+#, c-format
+msgid "cannot send RFC3925 option: too many options for enterprise number %d"
+msgstr ""
+
#: netlink.c:66
#, c-format
msgid "cannot create netlink socket: %s"
@@ -1378,7 +1383,7 @@
#: tftp.c:282
#, c-format
-msgid "TFTP sent %s to %s"
+msgid "sent %s to %s"
msgstr ""
#: tftp.c:305
@@ -1388,12 +1393,12 @@
#: tftp.c:416
#, c-format
-msgid "TFTP error %d %s received from %s"
+msgid "error %d %s received from %s"
msgstr ""
#: tftp.c:447
#, c-format
-msgid "TFTP failed sending %s to %s"
+msgid "failed sending %s to %s"
msgstr ""
#: log.c:169
@@ -1406,6 +1411,6 @@
msgid "log failed: %s"
msgstr ""
-#: log.c:415
+#: log.c:420
msgid "FAILED to start up"
msgstr ""
diff --git a/po/fr.po b/po/fr.po
index c9f2f9f..cb691a1 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -4,10 +4,10 @@
# Translation completed by Gildas Le Nadan <3ntr0p13@gmail.com>
msgid ""
msgstr ""
-"Project-Id-Version: dnsmasq 2.51\n"
+"Project-Id-Version: dnsmasq 2.52\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-18 12:24+0100\n"
-"PO-Revision-Date: 2009-09-30 10:22+0100\n"
+"PO-Revision-Date: 2010-01-14 17:24+0100\n"
"Last-Translator: Gildas Le Nadan <3ntr0p13@gmail.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
@@ -19,17 +19,17 @@
msgid "failed to load names from %s: %s"
msgstr "Impossible de charger les noms à partir de %s : %s"
-#: cache.c:798 dhcp.c:785
+#: cache.c:798 dhcp.c:804
#, c-format
msgid "bad address at %s line %d"
msgstr "mauvaise adresse dans %s ligne %d"
-#: cache.c:856 dhcp.c:801
+#: cache.c:856 dhcp.c:820
#, c-format
msgid "bad name at %s line %d"
msgstr "mauvais nom dans %s ligne %d"
-#: cache.c:863 dhcp.c:875
+#: cache.c:863 dhcp.c:894
#, c-format
msgid "read %s - %d addresses"
msgstr "lecture %s - %d adresses"
@@ -38,7 +38,7 @@
msgid "cleared cache"
msgstr "cache vidé"
-#: cache.c:933 option.c:1055
+#: cache.c:933 option.c:1069
#, c-format
msgid "cannot access directory %s: %s"
msgstr "Ne peut pas lire le répertoire %s : %s"
@@ -77,7 +77,7 @@
msgid "failed to allocate memory"
msgstr "impossible d'allouer la mémoire"
-#: util.c:229 option.c:548
+#: util.c:229 option.c:549
msgid "could not get memory"
msgstr "impossible d'allouer de la mémoire"
@@ -519,7 +519,7 @@
msgid "Check configuration syntax."
msgstr "vérification de la syntaxe de la configuration"
-#: option.c:613
+#: option.c:614
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -528,225 +528,225 @@
"Usage : dnsmasq [options]\n"
"\n"
-#: option.c:615
+#: option.c:616
#, 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:617
+#: option.c:618
#, c-format
msgid "Valid options are:\n"
msgstr "Les options valides sont :\n"
-#: option.c:658
+#: option.c:659
#, c-format
msgid "Known DHCP options:\n"
msgstr "Options DHCP connues :\n"
-#: option.c:735
+#: option.c:747
msgid "bad dhcp-option"
msgstr "mauvaise valeur de 'dhcp-option'"
#
-#: option.c:792
+#: option.c:804
msgid "bad IP address"
msgstr "mauvaise adresse IP"
-#: option.c:891
+#: option.c:903
msgid "bad domain in dhcp-option"
msgstr "mauvais domaine dans dhcp-option"
-#: option.c:950
+#: option.c:964
msgid "dhcp-option too long"
msgstr "dhcp-option trop long"
-#: option.c:959
+#: option.c:973
msgid "illegal dhcp-match"
msgstr "valeur illégale pour 'dhcp-match'"
-#: option.c:995
+#: option.c:1009
msgid "illegal repeated flag"
msgstr "Une option ne pouvant être spécifié qu'une seule fois à été donnée plusieurs fois."
-#: option.c:1003
+#: option.c:1017
msgid "illegal repeated keyword"
msgstr "Mot-clef ne pouvant être répété"
-#: option.c:1086 tftp.c:359
+#: option.c:1100 tftp.c:359
#, c-format
msgid "cannot access %s: %s"
msgstr "Ne peut pas lire %s : %s"
#
-#: option.c:1131
+#: option.c:1145
msgid "only one dhcp-hostsfile allowed"
msgstr "une seule valeur est autorisée pour 'dhcp-hostsfile'"
#
-#: option.c:1138
+#: option.c:1152
msgid "only one dhcp-optsfile allowed"
msgstr "une seule valeur est autorisée pour 'dhcp-optsfile'"
-#: option.c:1183
+#: option.c:1197
msgid "bad MX preference"
msgstr "Mauvaise préference MX"
-#: option.c:1188
+#: option.c:1202
msgid "bad MX name"
msgstr "mauvais nom MX"
-#: option.c:1202
+#: option.c:1216
msgid "bad MX target"
msgstr "mauvaise cible MX"
-#: option.c:1212
+#: option.c:1226
msgid "cannot run scripts under uClinux"
msgstr "ne peut exécuter de script sous uClinux"
-#: option.c:1214
+#: option.c:1228
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:1442 option.c:1446
+#: option.c:1456 option.c:1460
msgid "bad port"
msgstr "mauvais port"
-#: option.c:1465 option.c:1490
+#: option.c:1479 option.c:1504
msgid "interface binding not supported"
msgstr "association d'interface non supportée"
#
-#: option.c:1611
+#: option.c:1625
msgid "bad port range"
msgstr "mauvaise gamme de ports"
-#: option.c:1628
+#: option.c:1642
msgid "bad bridge-interface"
msgstr "mauvaise interface-pont"
-#: option.c:1669
+#: option.c:1683
msgid "bad dhcp-range"
msgstr "mauvaise plage d'adresses DHCP (dhcp-range)"
-#: option.c:1695
+#: option.c:1709
msgid "only one netid tag allowed"
msgstr "une seule étiquette netid est autorisée"
-#: option.c:1740
+#: option.c:1754
msgid "inconsistent DHCP range"
msgstr "plage d'adresses DHCP incohérente"
#
-#: option.c:1912
+#: option.c:1926
msgid "bad DHCP host name"
msgstr "mauvais nom d'hôte DHCP"
-#: option.c:2201 option.c:2481
+#: option.c:2221 option.c:2501
msgid "invalid port number"
msgstr "numéro de port invalide"
#
-#: option.c:2284
+#: option.c:2304
msgid "invalid alias range"
msgstr "poids invalide"
#
-#: option.c:2297
+#: option.c:2317
msgid "bad interface name"
msgstr "mauvais nom d'interface"
-#: option.c:2322
+#: option.c:2342
msgid "bad CNAME"
msgstr "mauvais CNAME"
-#: option.c:2327
+#: option.c:2347
msgid "duplicate CNAME"
msgstr "ce CNAME existe déja"
#
-#: option.c:2347
+#: option.c:2367
msgid "bad PTR record"
msgstr "mauvais champ PTR"
#
-#: option.c:2378
+#: option.c:2398
msgid "bad NAPTR record"
msgstr "mauvais champ NAPTR"
-#: option.c:2403
+#: option.c:2423
msgid "TXT record string too long"
msgstr "chaîne du champ TXT trop longue"
-#: option.c:2451
+#: option.c:2471
msgid "bad TXT record"
msgstr "mauvais champ TXT"
-#: option.c:2467
+#: option.c:2487
msgid "bad SRV record"
msgstr "mauvais champ SRV"
-#: option.c:2474
+#: option.c:2494
msgid "bad SRV target"
msgstr "mauvaise cible SRV"
-#: option.c:2488
+#: option.c:2508
msgid "invalid priority"
msgstr "priorité invalide"
-#: option.c:2495
+#: option.c:2515
msgid "invalid weight"
msgstr "poids invalide"
-#: option.c:2514
+#: option.c:2534
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:2557
+#: option.c:2577
#, c-format
msgid "files nested too deep in %s"
msgstr "trop de niveaux de récursion pour les fichiers dans %s"
-#: option.c:2565 tftp.c:513
+#: option.c:2585 tftp.c:513
#, c-format
msgid "cannot read %s: %s"
msgstr "Ne peut pas lire %s : %s"
-#: option.c:2626
+#: option.c:2646
msgid "missing \""
msgstr "il manque \""
-#: option.c:2673
+#: option.c:2693
msgid "bad option"
msgstr "mauvaise option"
-#: option.c:2675
+#: option.c:2695
msgid "extraneous parameter"
msgstr "paramètre en trop"
-#: option.c:2677
+#: option.c:2697
msgid "missing parameter"
msgstr "paramètre manquant"
-#: option.c:2685
+#: option.c:2705
msgid "error"
msgstr "erreur"
-#: option.c:2691
+#: option.c:2711
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s à la ligne %d de %%s"
-#: option.c:2740 option.c:2771
+#: option.c:2760 option.c:2791
#, c-format
msgid "read %s"
msgstr "Lecture de %s"
-#: option.c:2843
+#: option.c:2863
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Version de Dnsmasq %s %s\n"
-#: option.c:2844
+#: option.c:2864
#, c-format
msgid ""
"Compile time options %s\n"
@@ -755,71 +755,71 @@
"Options à la compilation %s\n"
"\n"
-#: option.c:2845
+#: option.c:2865
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Ce logiciel est fourni sans AUCUNE GARANTIE.\n"
-#: option.c:2846
+#: option.c:2866
#, 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:2847
+#: option.c:2867
#, 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:2858
+#: option.c:2878
msgid "try --help"
msgstr "essayez avec --help"
-#: option.c:2860
+#: option.c:2880
msgid "try -w"
msgstr "essayez avec -w"
-#: option.c:2863
+#: option.c:2883
#, c-format
msgid "bad command line options: %s"
msgstr "mauvaises options en ligne de commande : %s."
-#: option.c:2904
+#: option.c:2924
#, c-format
msgid "cannot get host-name: %s"
msgstr "ne peut pas obtenir le nom de la machine : %s"
-#: option.c:2932
+#: option.c:2952
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:2942
+#: option.c:2962
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:2945 network.c:754 dhcp.c:734
+#: option.c:2965 network.c:777 dhcp.c:753
#, c-format
msgid "failed to read %s: %s"
msgstr "impossible de lire %s : %s"
-#: option.c:2962
+#: option.c:2982
#, c-format
msgid "no search directive found in %s"
msgstr "pas de directive de recherche trouvée dans %s"
-#: option.c:2983
+#: option.c:3003
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:2987
+#: option.c:3007
msgid "syntax check OK"
msgstr "vérification de syntaxe OK"
-#: forward.c:409
+#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
msgstr "le serveur de nom %s a refusé de faire une recherche récursive"
-#: forward.c:437
+#: forward.c:433
msgid "possible DNS-rebind attack detected"
msgstr "détection d'une possible attaque de type DNS-rebind"
@@ -828,78 +828,78 @@
msgid "unknown interface %s in bridge-interface"
msgstr "interface %s inconnue spécifiée comme interface de pont"
-#: network.c:417 dnsmasq.c:189
+#: network.c:436 dnsmasq.c:189
#, c-format
msgid "failed to create listening socket: %s"
msgstr "impossible de créer une socket de lecture : %s"
-#: network.c:424
+#: network.c:443
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr "impossible d'activer les options IPV6 sur la socket de lecture : %s"
-#: network.c:450
+#: network.c:469
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "impossible de lier la socket de lecture pour %s : %s"
-#: network.c:455
+#: network.c:474
#, c-format
msgid "failed to listen on socket: %s"
msgstr "impossible de lire sur la socket : %s"
-#: network.c:467
+#: network.c:486
#, c-format
msgid "failed to create TFTP socket: %s"
msgstr "impossible de créer une socket TFTP : %s"
-#: network.c:661
+#: network.c:680
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "impossible de lier la socket de serveur pour %s : %s"
-#: network.c:694
+#: network.c:717
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignore le serveur de nom %s - interface locale"
-#: network.c:705
+#: network.c:728
#, 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:720
+#: network.c:743
msgid "unqualified"
msgstr "non-qualifié(e)"
-#: network.c:720
+#: network.c:743
msgid "names"
msgstr "noms"
-#: network.c:722
+#: network.c:745
msgid "default"
msgstr "défaut"
-#: network.c:724
+#: network.c:747
msgid "domain"
msgstr "domaine"
-#: network.c:727
+#: network.c:750
#, c-format
msgid "using local addresses only for %s %s"
msgstr "utilise les adresses locales seulement pour %s %s"
-#: network.c:729
+#: network.c:752
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "utilise le serveur de nom %s#%d pour %s %s"
-#: network.c:732
+#: network.c:755
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "utilise le serveur de nom %s#%d (via %s)"
-#: network.c:734
+#: network.c:757
#, c-format
msgid "using nameserver %s#%d"
msgstr "utilise le serveur de nom %s#%d"
@@ -928,7 +928,7 @@
msgid "no interface with address %s"
msgstr "pas d'interface avec l'adresse %s"
-#: dnsmasq.c:201 dnsmasq.c:665
+#: dnsmasq.c:201 dnsmasq.c:670
#, c-format
msgid "DBus error: %s"
msgstr "Erreur DBus : %s"
@@ -1036,75 +1036,75 @@
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "le nombre maximum de transferts TFTP simultanés sera restreint à %d"
-#: dnsmasq.c:667
+#: dnsmasq.c:672
msgid "connected to system DBus"
msgstr "connecté au systeme DBus"
-#: dnsmasq.c:757
+#: dnsmasq.c:767
#, c-format
msgid "cannot fork into background: %s"
msgstr "Ne peut se lancer en tâche de fond : %s"
-#: dnsmasq.c:760
+#: dnsmasq.c:770
#, c-format
msgid "failed to create helper: %s"
msgstr "impossible de créer le 'helper' : %s"
-#: dnsmasq.c:763
+#: dnsmasq.c:773
#, c-format
msgid "setting capabilities failed: %s"
msgstr "impossible de configurer la capacité %s"
-#: dnsmasq.c:767
+#: dnsmasq.c:777
#, c-format
msgid "failed to change user-id to %s: %s"
msgstr "Impossible de changer l'identifiant utilisateur pour %s : %s"
-#: dnsmasq.c:772
+#: dnsmasq.c:782
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr "Impossible de changer l'identifiant de groupe pour %s : %s"
-#: dnsmasq.c:775
+#: dnsmasq.c:785
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr "impossible de lire le fichier de PID %s : %s"
-#: dnsmasq.c:778
+#: dnsmasq.c:788
#, c-format
msgid "cannot open %s: %s"
msgstr "Ne peut pas lire %s : %s"
-#: dnsmasq.c:833
+#: dnsmasq.c:843
#, c-format
msgid "child process killed by signal %d"
msgstr "Le processus fils a été terminé par le signal %d"
-#: dnsmasq.c:837
+#: dnsmasq.c:847
#, c-format
msgid "child process exited with status %d"
msgstr "Le processus fils s'est terminé avec le statut %d"
-#: dnsmasq.c:841
+#: dnsmasq.c:851
#, c-format
msgid "failed to execute %s: %s"
msgstr "impossible d'exécuter à %s : %s"
-#: dnsmasq.c:885
+#: dnsmasq.c:895
msgid "exiting on receipt of SIGTERM"
msgstr "sortie sur réception du signal SIGTERM"
-#: dnsmasq.c:903
+#: dnsmasq.c:913
#, c-format
msgid "failed to access %s: %s"
msgstr "impossible d'accéder à %s : %s"
-#: dnsmasq.c:925
+#: dnsmasq.c:935
#, c-format
msgid "reading %s"
msgstr "Lecture de %s"
-#: dnsmasq.c:936
+#: dnsmasq.c:946
#, c-format
msgid "no servers found in %s, will retry"
msgstr "aucun serveur trouvé dans %s, va réessayer"
@@ -1129,47 +1129,47 @@
msgid "failed to bind DHCP server socket: %s"
msgstr "impossible de lier la socket serveur DHCP : %s"
-#: dhcp.c:90
+#: dhcp.c:103
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "ne peut créer de socket en mode raw pour ICMP : %s."
-#: dhcp.c:226
+#: dhcp.c:240
#, 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:385
+#: dhcp.c:404
#, 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:772
+#: dhcp.c:791
#, c-format
msgid "bad line at %s line %d"
msgstr "mauvaise ligne dans %s ligne %d"
-#: dhcp.c:815
+#: dhcp.c:834
#, 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:897
+#: dhcp.c:916
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "adresse IP %s dupliquée dans la directive dhcp-config."
-#: dhcp.c:900
+#: dhcp.c:919
#, c-format
msgid "duplicate IP address %s in %s."
msgstr "adresse IP %s dupliquée dans %s."
-#: dhcp.c:943
+#: dhcp.c:962
#, 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:948
+#: dhcp.c:967
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "adresse IP %s (%s) dupliquée dans la directive dhcp-config."
@@ -1198,172 +1198,177 @@
msgid "failed to write %s: %s (retry in %us)"
msgstr "impossible de lire %s : %s (prochain essai dans %us)"
-#: rfc2131.c:336
+#: rfc2131.c:375
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "pas de plage d'adresse disponible pour la requête DHCP %s %s"
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "with subnet selector"
msgstr "avec sélecteur de sous-reseau"
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "via"
msgstr "par l'intermédiaire de"
-#: rfc2131.c:352
+#: rfc2131.c:391
#, c-format
msgid "%u Available DHCP subnet: %s/%s"
msgstr "%u sous-réseaux DHCP disponibles : %s/%s"
-#: rfc2131.c:355
+#: rfc2131.c:394
#, c-format
msgid "%u Available DHCP range: %s -- %s"
msgstr "%u la gamme DHCP disponible est : %s -- %s"
-#: rfc2131.c:384
+#: rfc2131.c:423
msgid "disabled"
msgstr "désactivé"
-#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+#: rfc2131.c:457 rfc2131.c:928 rfc2131.c:1277
msgid "ignored"
msgstr "ignoré"
-#: rfc2131.c:433 rfc2131.c:1100
+#: rfc2131.c:472 rfc2131.c:1145
msgid "address in use"
msgstr "adresse déjà utilisée"
-#: rfc2131.c:447 rfc2131.c:937
+#: rfc2131.c:486 rfc2131.c:982
msgid "no address available"
msgstr "pas d'adresse disponible"
-#: rfc2131.c:454 rfc2131.c:1063
+#: rfc2131.c:493 rfc2131.c:1108
msgid "wrong network"
msgstr "mauvais réseau"
-#: rfc2131.c:467
+#: rfc2131.c:506
msgid "no address configured"
msgstr "pas d'adresse configurée"
-#: rfc2131.c:473 rfc2131.c:1113
+#: rfc2131.c:512 rfc2131.c:1158
msgid "no leases left"
msgstr "plus aucun bail disponible"
-#: rfc2131.c:558
+#: rfc2131.c:597
#, c-format
msgid "%u client provides name: %s"
msgstr "le client %u fourni le nom : %s"
-#: rfc2131.c:696
+#: rfc2131.c:741
#, c-format
msgid "%u Vendor class: %s"
msgstr "%u Classe de vendeur ('Vendor Class') : %s"
-#: rfc2131.c:698
+#: rfc2131.c:743
#, c-format
msgid "%u User class: %s"
msgstr "%u Classe d'utilisateur : %s"
-#: rfc2131.c:737
+#: rfc2131.c:782
msgid "PXE BIS not supported"
msgstr "Service PXE BIS (Boot Integrity Services) non supporté"
-#: rfc2131.c:853
+#: rfc2131.c:898
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "désactive l'adresse statique DHCP %s pour %s"
-#: rfc2131.c:874
+#: rfc2131.c:919
msgid "unknown lease"
msgstr "bail inconnu"
-#: rfc2131.c:906
+#: rfc2131.c:951
#, 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:916
+#: rfc2131.c:961
#, 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:919
+#: rfc2131.c:964
#, 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:935 rfc2131.c:1106
+#: rfc2131.c:980 rfc2131.c:1151
msgid "no unique-id"
msgstr "pas d'identifiant unique"
-#: rfc2131.c:1003
+#: rfc2131.c:1048
msgid "wrong server-ID"
msgstr "mauvais identifiant de serveur"
-#: rfc2131.c:1022
+#: rfc2131.c:1067
msgid "wrong address"
msgstr "mauvaise adresse"
-#: rfc2131.c:1039
+#: rfc2131.c:1084
msgid "lease not found"
msgstr "bail non trouvé"
-#: rfc2131.c:1071
+#: rfc2131.c:1116
msgid "address not available"
msgstr "adresse non disponible"
-#: rfc2131.c:1082
+#: rfc2131.c:1127
msgid "static lease available"
msgstr "bail statique disponible"
-#: rfc2131.c:1086
+#: rfc2131.c:1131
msgid "address reserved"
msgstr "adresse reservée"
-#: rfc2131.c:1094
+#: rfc2131.c:1139
#, c-format
msgid "abandoning lease to %s of %s"
msgstr "abandon du bail de %s pour %s"
-#: rfc2131.c:1583
+#: rfc2131.c:1698
#, c-format
msgid "%u tags: %s"
msgstr "%u options: %s"
-#: rfc2131.c:1596
+#: rfc2131.c:1711
#, c-format
msgid "%u bootfile name: %s"
msgstr "%u nom de fichier 'bootfile' : %s"
-#: rfc2131.c:1605
+#: rfc2131.c:1720
#, c-format
msgid "%u server name: %s"
msgstr "%u nom du serveur : %s"
-#: rfc2131.c:1613
+#: rfc2131.c:1728
#, c-format
msgid "%u next server: %s"
msgstr "%u serveur suivant : %s"
-#: rfc2131.c:1680
+#: rfc2131.c:1795
#, 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:1919
+#: rfc2131.c:2032
msgid "PXE menu too large"
msgstr "menu PXE trop grand"
-#: rfc2131.c:2034
+#: rfc2131.c:2143
#, 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:2052
+#: rfc2131.c:2161
#, c-format
msgid "%u requested options: %s"
msgstr "%u options demandées : %s"
+#: rfc2131.c:2425
+#, 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:66
#, c-format
msgid "cannot create netlink socket: %s"
@@ -1407,8 +1412,8 @@
#: tftp.c:282
#, c-format
-msgid "TFTP sent %s to %s"
-msgstr "TFTP envoyé %s à %s"
+msgid "sent %s to %s"
+msgstr "envoyé %s à %s"
#: tftp.c:305
#, c-format
@@ -1417,13 +1422,13 @@
#: tftp.c:416
#, c-format
-msgid "TFTP error %d %s received from %s"
-msgstr "TFTP erreur %d %s reçu de %s"
+msgid "error %d %s received from %s"
+msgstr "erreur %d %s reçu de %s"
#: tftp.c:447
#, c-format
-msgid "TFTP failed sending %s to %s"
-msgstr "TFTP : impossible d'envoyer %s à %s"
+msgid "failed sending %s to %s"
+msgstr "impossible d'envoyer %s à %s"
#: log.c:169
#, c-format
@@ -1435,7 +1440,7 @@
msgid "log failed: %s"
msgstr "trace perdue : %s"
-#: log.c:415
+#: log.c:420
msgid "FAILED to start up"
msgstr "IMPOSSIBLE de démarrer"
diff --git a/po/id.po b/po/id.po
index a5ff6e8..9547f7b 100644
--- a/po/id.po
+++ b/po/id.po
@@ -21,19 +21,19 @@
msgstr "gagal memuat nama-nama dari %s: %s"
# OK
-#: cache.c:798 dhcp.c:785
+#: cache.c:798 dhcp.c:804
#, fuzzy, c-format
msgid "bad address at %s line %d"
msgstr "kesalahan nama pada %s baris %d"
# OK
-#: cache.c:856 dhcp.c:801
+#: cache.c:856 dhcp.c:820
#, c-format
msgid "bad name at %s line %d"
msgstr "kesalahan nama pada %s baris %d"
# OK
-#: cache.c:863 dhcp.c:875
+#: cache.c:863 dhcp.c:894
#, c-format
msgid "read %s - %d addresses"
msgstr "membaca %s - %d alamat"
@@ -44,7 +44,7 @@
msgstr "cache telah dihapus"
# OK
-#: cache.c:933 option.c:1055
+#: cache.c:933 option.c:1069
#, fuzzy, c-format
msgid "cannot access directory %s: %s"
msgstr "tidak bisa membaca %s: %s"
@@ -89,7 +89,7 @@
msgstr "gagal memuat %S: %m"
# OK
-#: util.c:229 option.c:548
+#: util.c:229 option.c:549
msgid "could not get memory"
msgstr "tidak bisa mendapatkan memory"
@@ -597,7 +597,7 @@
msgstr ""
# OK
-#: option.c:613
+#: option.c:614
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -607,258 +607,258 @@
"\n"
# OK
-#: option.c:615
+#: option.c:616
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Gunakan pilihan pendek saja pada perintah baris.\n"
# OK
-#: option.c:617
+#: option.c:618
#, fuzzy, c-format
msgid "Valid options are:\n"
msgstr "Pilihan yang boleh adalah:\n"
-#: option.c:658
+#: option.c:659
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
# OK
-#: option.c:735
+#: option.c:747
msgid "bad dhcp-option"
msgstr "dhcp-option salah"
# OK
-#: option.c:792
+#: option.c:804
#, fuzzy
msgid "bad IP address"
msgstr "membaca %s - %d alamat"
# OK
-#: option.c:891
+#: option.c:903
msgid "bad domain in dhcp-option"
msgstr "domain dalam dhcp-option salah"
# OK
-#: option.c:950
+#: option.c:964
msgid "dhcp-option too long"
msgstr "dhcp-option terlalu panjang"
-#: option.c:959
+#: option.c:973
msgid "illegal dhcp-match"
msgstr ""
-#: option.c:995
+#: option.c:1009
msgid "illegal repeated flag"
msgstr ""
-#: option.c:1003
+#: option.c:1017
msgid "illegal repeated keyword"
msgstr ""
# OK
-#: option.c:1086 tftp.c:359
+#: option.c:1100 tftp.c:359
#, fuzzy, c-format
msgid "cannot access %s: %s"
msgstr "tidak bisa membaca %s: %s"
-#: option.c:1131
+#: option.c:1145
msgid "only one dhcp-hostsfile allowed"
msgstr ""
-#: option.c:1138
+#: option.c:1152
msgid "only one dhcp-optsfile allowed"
msgstr ""
# OK
-#: option.c:1183
+#: option.c:1197
msgid "bad MX preference"
msgstr "kesukaan MX salah"
# OK
-#: option.c:1188
+#: option.c:1202
msgid "bad MX name"
msgstr "nama MX salah"
# OK
-#: option.c:1202
+#: option.c:1216
msgid "bad MX target"
msgstr "target MX salah"
-#: option.c:1212
+#: option.c:1226
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1214
+#: option.c:1228
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr ""
# OK
-#: option.c:1442 option.c:1446
+#: option.c:1456 option.c:1460
msgid "bad port"
msgstr "port salah"
-#: option.c:1465 option.c:1490
+#: option.c:1479 option.c:1504
msgid "interface binding not supported"
msgstr ""
# OK
-#: option.c:1611
+#: option.c:1625
#, fuzzy
msgid "bad port range"
msgstr "port salah"
-#: option.c:1628
+#: option.c:1642
msgid "bad bridge-interface"
msgstr ""
# OK
-#: option.c:1669
+#: option.c:1683
msgid "bad dhcp-range"
msgstr "dhcp-range salah"
-#: option.c:1695
+#: option.c:1709
msgid "only one netid tag allowed"
msgstr ""
# OK
-#: option.c:1740
+#: option.c:1754
msgid "inconsistent DHCP range"
msgstr "jangkauan DHCP tidak konsisten"
# OK
-#: option.c:1912
+#: option.c:1926
#, fuzzy
msgid "bad DHCP host name"
msgstr "nama MX salah"
# OK
-#: option.c:2201 option.c:2481
+#: option.c:2221 option.c:2501
msgid "invalid port number"
msgstr "nomor port tidak benar"
# OK
-#: option.c:2284
+#: option.c:2304
#, fuzzy
msgid "invalid alias range"
msgstr "weight tidak benar"
# OK
-#: option.c:2297
+#: option.c:2317
#, fuzzy
msgid "bad interface name"
msgstr "nama MX salah"
-#: option.c:2322
+#: option.c:2342
msgid "bad CNAME"
msgstr ""
-#: option.c:2327
+#: option.c:2347
msgid "duplicate CNAME"
msgstr ""
# OK
-#: option.c:2347
+#: option.c:2367
#, fuzzy
msgid "bad PTR record"
msgstr "rekord SRV salah"
# OK
-#: option.c:2378
+#: option.c:2398
#, fuzzy
msgid "bad NAPTR record"
msgstr "rekord SRV salah"
# OK
-#: option.c:2403
+#: option.c:2423
msgid "TXT record string too long"
msgstr "string rekord TXT terlalu panjang"
# OK
-#: option.c:2451
+#: option.c:2471
msgid "bad TXT record"
msgstr "rekord TXT salah"
# OK
-#: option.c:2467
+#: option.c:2487
msgid "bad SRV record"
msgstr "rekord SRV salah"
# OK
-#: option.c:2474
+#: option.c:2494
msgid "bad SRV target"
msgstr "target SRV salah"
# OK
-#: option.c:2488
+#: option.c:2508
msgid "invalid priority"
msgstr "prioritas tidak benar"
# OK
-#: option.c:2495
+#: option.c:2515
msgid "invalid weight"
msgstr "weight tidak benar"
-#: option.c:2514
+#: option.c:2534
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr ""
-#: option.c:2557
+#: option.c:2577
#, c-format
msgid "files nested too deep in %s"
msgstr ""
# OK
-#: option.c:2565 tftp.c:513
+#: option.c:2585 tftp.c:513
#, c-format
msgid "cannot read %s: %s"
msgstr "tidak bisa membaca %s: %s"
# OK
-#: option.c:2626
+#: option.c:2646
msgid "missing \""
msgstr "kurang \""
# OK
-#: option.c:2673
+#: option.c:2693
msgid "bad option"
msgstr "pilihan salah"
# OK
-#: option.c:2675
+#: option.c:2695
msgid "extraneous parameter"
msgstr "parameter berlebihan"
# OK
-#: option.c:2677
+#: option.c:2697
msgid "missing parameter"
msgstr "parameter kurang"
# OK
-#: option.c:2685
+#: option.c:2705
msgid "error"
msgstr "kesalahan"
# OK
-#: option.c:2691
+#: option.c:2711
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s pada baris %d dari %%s"
# OK
-#: option.c:2740 option.c:2771
+#: option.c:2760 option.c:2791
#, fuzzy, c-format
msgid "read %s"
msgstr "membaca %s"
# OK
-#: option.c:2843
+#: option.c:2863
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq versi %s %s\n"
# OK
-#: option.c:2844
+#: option.c:2864
#, c-format
msgid ""
"Compile time options %s\n"
@@ -868,80 +868,80 @@
"\n"
# OK
-#: option.c:2845
+#: option.c:2865
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Perangkat lunak ini tersedia TANPA JAMINAN SEDIKITPUN.\n"
# OK
-#: option.c:2846
+#: option.c:2866
#, 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:2847
+#: option.c:2867
#, 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:2858
+#: option.c:2878
msgid "try --help"
msgstr ""
-#: option.c:2860
+#: option.c:2880
msgid "try -w"
msgstr ""
# OK
-#: option.c:2863
+#: option.c:2883
#, fuzzy, c-format
msgid "bad command line options: %s"
msgstr "pilihan baris perintah salah: %s."
# OK
-#: option.c:2904
+#: option.c:2924
#, c-format
msgid "cannot get host-name: %s"
msgstr "tidak bisa mendapatkan host-name: %s"
# OK
-#: option.c:2932
+#: option.c:2952
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:2942
+#: option.c:2962
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:2945 network.c:754 dhcp.c:734
+#: option.c:2965 network.c:777 dhcp.c:753
#, fuzzy, c-format
msgid "failed to read %s: %s"
msgstr "gagal membaca %s: %s"
# OK
-#: option.c:2962
+#: option.c:2982
#, c-format
msgid "no search directive found in %s"
msgstr "tidak ditemukan direktif search di %s"
-#: option.c:2983
+#: option.c:3003
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr ""
-#: option.c:2987
+#: option.c:3007
msgid "syntax check OK"
msgstr ""
# OK
-#: forward.c:409
+#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
msgstr "nameserver %s menolak melakukan resolusi rekursif"
-#: forward.c:437
+#: forward.c:433
msgid "possible DNS-rebind attack detected"
msgstr ""
@@ -952,89 +952,89 @@
msgstr "antarmuka tidak dikenal %s"
# OK
-#: network.c:417 dnsmasq.c:189
+#: network.c:436 dnsmasq.c:189
#, c-format
msgid "failed to create listening socket: %s"
msgstr "gagal membuat socket: %s "
# OK
-#: network.c:424
+#: network.c:443
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr "gagal menyetel IPV6 pada socket: %s"
-#: network.c:450
+#: network.c:469
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "gagal mem-bind socket untuk mendengarkan %s: %s"
# OK
-#: network.c:455
+#: network.c:474
#, c-format
msgid "failed to listen on socket: %s"
msgstr "gagal mendengarkan di socket: %s"
# OK
-#: network.c:467
+#: network.c:486
#, fuzzy, c-format
msgid "failed to create TFTP socket: %s"
msgstr "gagal membuat socket: %s "
-#: network.c:661
+#: network.c:680
#, fuzzy, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "gagal mem-bind socket untuk mendengarkan %s: %s"
# OK
-#: network.c:694
+#: network.c:717
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "mengabaikan nameserver %s - antarmuka lokal"
# OK
-#: network.c:705
+#: network.c:728
#, 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:720
+#: network.c:743
msgid "unqualified"
msgstr "tidak memenuhi syarat"
-#: network.c:720
+#: network.c:743
msgid "names"
msgstr ""
-#: network.c:722
+#: network.c:745
msgid "default"
msgstr ""
# OK
-#: network.c:724
+#: network.c:747
msgid "domain"
msgstr "domain"
# OK
-#: network.c:727
+#: network.c:750
#, c-format
msgid "using local addresses only for %s %s"
msgstr "menggunakan alamat lokal saja untuk %s %s"
# OK
-#: network.c:729
+#: network.c:752
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "menggunakan nameserver %s#%d untuk %s %s"
# OK
-#: network.c:732
+#: network.c:755
#, fuzzy, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "menggunakan nameserver %s#%d"
# OK
-#: network.c:734
+#: network.c:757
#, c-format
msgid "using nameserver %s#%d"
msgstr "menggunakan nameserver %s#%d"
@@ -1068,7 +1068,7 @@
msgstr "tidak ada antarmuka dengan alamat %s"
# OK
-#: dnsmasq.c:201 dnsmasq.c:665
+#: dnsmasq.c:201 dnsmasq.c:670
#, c-format
msgid "DBus error: %s"
msgstr "DBus error: %s"
@@ -1191,84 +1191,84 @@
msgstr ""
# OK
-#: dnsmasq.c:667
+#: dnsmasq.c:672
msgid "connected to system DBus"
msgstr "terhubung ke sistem DBus"
-#: dnsmasq.c:757
+#: dnsmasq.c:767
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
# OK
-#: dnsmasq.c:760
+#: dnsmasq.c:770
#, fuzzy, c-format
msgid "failed to create helper: %s"
msgstr "gagal membaca %s: %s"
-#: dnsmasq.c:763
+#: dnsmasq.c:773
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
# OK
-#: dnsmasq.c:767
+#: dnsmasq.c:777
#, fuzzy, c-format
msgid "failed to change user-id to %s: %s"
msgstr "gagal memuat nama-nama dari %s: %s"
# OK
-#: dnsmasq.c:772
+#: dnsmasq.c:782
#, fuzzy, c-format
msgid "failed to change group-id to %s: %s"
msgstr "gagal memuat nama-nama dari %s: %s"
# OK
-#: dnsmasq.c:775
+#: dnsmasq.c:785
#, fuzzy, c-format
msgid "failed to open pidfile %s: %s"
msgstr "gagal membaca %s: %s"
# OK
-#: dnsmasq.c:778
+#: dnsmasq.c:788
#, fuzzy, c-format
msgid "cannot open %s: %s"
msgstr "tidak bisa membuka %s:%s"
-#: dnsmasq.c:833
+#: dnsmasq.c:843
#, c-format
msgid "child process killed by signal %d"
msgstr ""
-#: dnsmasq.c:837
+#: dnsmasq.c:847
#, c-format
msgid "child process exited with status %d"
msgstr ""
# OK
-#: dnsmasq.c:841
+#: dnsmasq.c:851
#, fuzzy, c-format
msgid "failed to execute %s: %s"
msgstr "gagal mengakses %s: %s"
-#: dnsmasq.c:885
+#: dnsmasq.c:895
msgid "exiting on receipt of SIGTERM"
msgstr "keluar karena menerima SIGTERM"
# OK
-#: dnsmasq.c:903
+#: dnsmasq.c:913
#, fuzzy, c-format
msgid "failed to access %s: %s"
msgstr "gagal mengakses %s: %s"
# OK
-#: dnsmasq.c:925
+#: dnsmasq.c:935
#, c-format
msgid "reading %s"
msgstr "membaca %s"
# OK
-#: dnsmasq.c:936
+#: dnsmasq.c:946
#, fuzzy, c-format
msgid "no servers found in %s, will retry"
msgstr "tidak ditemukan direktif search di %s"
@@ -1298,52 +1298,52 @@
msgstr "gagal mem-bind socket server DHCP: %s"
# OK
-#: dhcp.c:90
+#: dhcp.c:103
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "tidak dapat membuat socket ICMP raw: %s"
-#: dhcp.c:226
+#: dhcp.c:240
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr ""
# OK
-#: dhcp.c:385
+#: dhcp.c:404
#, 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:772
+#: dhcp.c:791
#, fuzzy, c-format
msgid "bad line at %s line %d"
msgstr "kesalahan nama pada %s baris %d"
-#: dhcp.c:815
+#: dhcp.c:834
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr ""
# OK
-#: dhcp.c:897
+#: dhcp.c:916
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "alamat IP kembar %s dalam direktif dhcp-config"
# OK
-#: dhcp.c:900
+#: dhcp.c:919
#, fuzzy, c-format
msgid "duplicate IP address %s in %s."
msgstr "alamat IP kembar %s dalam direktif dhcp-config"
-#: dhcp.c:943
+#: dhcp.c:962
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
# OK
-#: dhcp.c:948
+#: dhcp.c:967
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "alamat IP kembar %s (%s) dalam direktif dhcp-config"
@@ -1377,191 +1377,196 @@
msgstr "gagal membaca %s: %s"
# OK
-#: rfc2131.c:336
+#: rfc2131.c:375
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "tidak ada alamat yang bisa dipakai untuk permintaan DHCP %s %s"
# OK
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "with subnet selector"
msgstr "dengan pemilih subnet"
# OK
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "via"
msgstr "lewat"
-#: rfc2131.c:352
+#: rfc2131.c:391
#, c-format
msgid "%u Available DHCP subnet: %s/%s"
msgstr ""
-#: rfc2131.c:355
+#: rfc2131.c:394
#, c-format
msgid "%u Available DHCP range: %s -- %s"
msgstr ""
# OK
-#: rfc2131.c:384
+#: rfc2131.c:423
msgid "disabled"
msgstr "di disable"
# OK
-#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+#: rfc2131.c:457 rfc2131.c:928 rfc2131.c:1277
msgid "ignored"
msgstr "diabaikan"
# OK
-#: rfc2131.c:433 rfc2131.c:1100
+#: rfc2131.c:472 rfc2131.c:1145
msgid "address in use"
msgstr "alamat telah digunakan"
# OK
-#: rfc2131.c:447 rfc2131.c:937
+#: rfc2131.c:486 rfc2131.c:982
msgid "no address available"
msgstr "tak ada alamat yang tersedia"
# OK
-#: rfc2131.c:454 rfc2131.c:1063
+#: rfc2131.c:493 rfc2131.c:1108
msgid "wrong network"
msgstr "jaringan yang salah"
# OK
-#: rfc2131.c:467
+#: rfc2131.c:506
msgid "no address configured"
msgstr "tak ada alamat yang disetel"
# OK
-#: rfc2131.c:473 rfc2131.c:1113
+#: rfc2131.c:512 rfc2131.c:1158
msgid "no leases left"
msgstr "tak ada lease yang tersisa"
-#: rfc2131.c:558
+#: rfc2131.c:597
#, c-format
msgid "%u client provides name: %s"
msgstr ""
-#: rfc2131.c:696
+#: rfc2131.c:741
#, c-format
msgid "%u Vendor class: %s"
msgstr ""
-#: rfc2131.c:698
+#: rfc2131.c:743
#, c-format
msgid "%u User class: %s"
msgstr ""
-#: rfc2131.c:737
+#: rfc2131.c:782
msgid "PXE BIS not supported"
msgstr ""
# OK
-#: rfc2131.c:853
+#: rfc2131.c:898
#, fuzzy, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "men-disable alamat statik DHCP %s"
# OK
-#: rfc2131.c:874
+#: rfc2131.c:919
msgid "unknown lease"
msgstr "lease tidak diketahui"
-#: rfc2131.c:906
+#: rfc2131.c:951
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:916
+#: rfc2131.c:961
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:919
+#: rfc2131.c:964
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:935 rfc2131.c:1106
+#: rfc2131.c:980 rfc2131.c:1151
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:1003
+#: rfc2131.c:1048
msgid "wrong server-ID"
msgstr ""
# OK
-#: rfc2131.c:1022
+#: rfc2131.c:1067
msgid "wrong address"
msgstr "alamat salah"
# OK
-#: rfc2131.c:1039
+#: rfc2131.c:1084
msgid "lease not found"
msgstr "lease tak ditemukan"
# OK
-#: rfc2131.c:1071
+#: rfc2131.c:1116
msgid "address not available"
msgstr "alamat tak tersedia"
# OK
-#: rfc2131.c:1082
+#: rfc2131.c:1127
msgid "static lease available"
msgstr "lease statik tak tersedia"
# OK
-#: rfc2131.c:1086
+#: rfc2131.c:1131
msgid "address reserved"
msgstr "alamat telah dipesan"
-#: rfc2131.c:1094
+#: rfc2131.c:1139
#, c-format
msgid "abandoning lease to %s of %s"
msgstr ""
-#: rfc2131.c:1583
+#: rfc2131.c:1698
#, c-format
msgid "%u tags: %s"
msgstr ""
-#: rfc2131.c:1596
+#: rfc2131.c:1711
#, c-format
msgid "%u bootfile name: %s"
msgstr ""
# OK
-#: rfc2131.c:1605
+#: rfc2131.c:1720
#, fuzzy, c-format
msgid "%u server name: %s"
msgstr "DBus error: %s"
# OK
-#: rfc2131.c:1613
+#: rfc2131.c:1728
#, fuzzy, c-format
msgid "%u next server: %s"
msgstr "DBus error: %s"
-#: rfc2131.c:1680
+#: rfc2131.c:1795
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:1919
+#: rfc2131.c:2032
msgid "PXE menu too large"
msgstr ""
-#: rfc2131.c:2034
+#: rfc2131.c:2143
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr ""
# OK
-#: rfc2131.c:2052
+#: rfc2131.c:2161
#, fuzzy, c-format
msgid "%u requested options: %s"
msgstr "pilihan-pilihan saat kompilasi: %s"
+#: rfc2131.c:2425
+#, c-format
+msgid "cannot send RFC3925 option: too many options for enterprise number %d"
+msgstr ""
+
# OK
#: netlink.c:66
#, fuzzy, c-format
@@ -1612,7 +1617,7 @@
#: tftp.c:282
#, c-format
-msgid "TFTP sent %s to %s"
+msgid "sent %s to %s"
msgstr ""
# OK
@@ -1623,13 +1628,13 @@
#: tftp.c:416
#, c-format
-msgid "TFTP error %d %s received from %s"
+msgid "error %d %s received from %s"
msgstr ""
# OK
#: tftp.c:447
#, fuzzy, c-format
-msgid "TFTP failed sending %s to %s"
+msgid "failed sending %s to %s"
msgstr "gagal membaca %s: %s"
#: log.c:169
@@ -1643,7 +1648,7 @@
msgstr ""
# OK
-#: log.c:415
+#: log.c:420
msgid "FAILED to start up"
msgstr "GAGAL untuk memulai"
diff --git a/po/it.po b/po/it.po
index 37a8c4b..d4cf10e 100644
--- a/po/it.po
+++ b/po/it.po
@@ -20,17 +20,17 @@
msgid "failed to load names from %s: %s"
msgstr ""
-#: cache.c:798 dhcp.c:785
+#: cache.c:798 dhcp.c:804
#, c-format
msgid "bad address at %s line %d"
msgstr ""
-#: cache.c:856 dhcp.c:801
+#: cache.c:856 dhcp.c:820
#, c-format
msgid "bad name at %s line %d"
msgstr ""
-#: cache.c:863 dhcp.c:875
+#: cache.c:863 dhcp.c:894
#, c-format
msgid "read %s - %d addresses"
msgstr ""
@@ -39,7 +39,7 @@
msgid "cleared cache"
msgstr ""
-#: cache.c:933 option.c:1055
+#: cache.c:933 option.c:1069
#, c-format
msgid "cannot access directory %s: %s"
msgstr ""
@@ -78,7 +78,7 @@
msgid "failed to allocate memory"
msgstr ""
-#: util.c:229 option.c:548
+#: util.c:229 option.c:549
msgid "could not get memory"
msgstr ""
@@ -506,294 +506,294 @@
msgid "Check configuration syntax."
msgstr ""
-#: option.c:613
+#: option.c:614
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
-#: option.c:615
+#: option.c:616
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
-#: option.c:617
+#: option.c:618
#, c-format
msgid "Valid options are:\n"
msgstr ""
-#: option.c:658
+#: option.c:659
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:735
+#: option.c:747
msgid "bad dhcp-option"
msgstr ""
-#: option.c:792
+#: option.c:804
msgid "bad IP address"
msgstr ""
-#: option.c:891
+#: option.c:903
msgid "bad domain in dhcp-option"
msgstr ""
-#: option.c:950
+#: option.c:964
msgid "dhcp-option too long"
msgstr ""
-#: option.c:959
+#: option.c:973
msgid "illegal dhcp-match"
msgstr ""
-#: option.c:995
+#: option.c:1009
msgid "illegal repeated flag"
msgstr ""
-#: option.c:1003
+#: option.c:1017
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:1086 tftp.c:359
+#: option.c:1100 tftp.c:359
#, c-format
msgid "cannot access %s: %s"
msgstr ""
-#: option.c:1131
+#: option.c:1145
msgid "only one dhcp-hostsfile allowed"
msgstr ""
-#: option.c:1138
+#: option.c:1152
msgid "only one dhcp-optsfile allowed"
msgstr ""
-#: option.c:1183
+#: option.c:1197
msgid "bad MX preference"
msgstr ""
-#: option.c:1188
+#: option.c:1202
msgid "bad MX name"
msgstr ""
-#: option.c:1202
+#: option.c:1216
msgid "bad MX target"
msgstr ""
-#: option.c:1212
+#: option.c:1226
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1214
+#: option.c:1228
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr ""
-#: option.c:1442 option.c:1446
+#: option.c:1456 option.c:1460
msgid "bad port"
msgstr ""
-#: option.c:1465 option.c:1490
+#: option.c:1479 option.c:1504
msgid "interface binding not supported"
msgstr ""
-#: option.c:1611
+#: option.c:1625
msgid "bad port range"
msgstr ""
-#: option.c:1628
+#: option.c:1642
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1669
+#: option.c:1683
msgid "bad dhcp-range"
msgstr ""
-#: option.c:1695
+#: option.c:1709
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1740
+#: option.c:1754
msgid "inconsistent DHCP range"
msgstr ""
-#: option.c:1912
+#: option.c:1926
msgid "bad DHCP host name"
msgstr ""
-#: option.c:2201 option.c:2481
+#: option.c:2221 option.c:2501
msgid "invalid port number"
msgstr ""
-#: option.c:2284
+#: option.c:2304
msgid "invalid alias range"
msgstr ""
-#: option.c:2297
+#: option.c:2317
msgid "bad interface name"
msgstr ""
-#: option.c:2322
+#: option.c:2342
msgid "bad CNAME"
msgstr ""
-#: option.c:2327
+#: option.c:2347
msgid "duplicate CNAME"
msgstr ""
-#: option.c:2347
+#: option.c:2367
msgid "bad PTR record"
msgstr ""
-#: option.c:2378
+#: option.c:2398
msgid "bad NAPTR record"
msgstr ""
-#: option.c:2403
+#: option.c:2423
msgid "TXT record string too long"
msgstr ""
-#: option.c:2451
+#: option.c:2471
msgid "bad TXT record"
msgstr ""
-#: option.c:2467
+#: option.c:2487
msgid "bad SRV record"
msgstr ""
-#: option.c:2474
+#: option.c:2494
msgid "bad SRV target"
msgstr ""
-#: option.c:2488
+#: option.c:2508
msgid "invalid priority"
msgstr ""
-#: option.c:2495
+#: option.c:2515
msgid "invalid weight"
msgstr ""
-#: option.c:2514
+#: option.c:2534
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr ""
-#: option.c:2557
+#: option.c:2577
#, c-format
msgid "files nested too deep in %s"
msgstr ""
-#: option.c:2565 tftp.c:513
+#: option.c:2585 tftp.c:513
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: option.c:2626
+#: option.c:2646
msgid "missing \""
msgstr ""
-#: option.c:2673
+#: option.c:2693
msgid "bad option"
msgstr ""
-#: option.c:2675
+#: option.c:2695
msgid "extraneous parameter"
msgstr ""
-#: option.c:2677
+#: option.c:2697
msgid "missing parameter"
msgstr ""
-#: option.c:2685
+#: option.c:2705
msgid "error"
msgstr ""
-#: option.c:2691
+#: option.c:2711
#, c-format
msgid "%s at line %d of %%s"
msgstr ""
-#: option.c:2740 option.c:2771
+#: option.c:2760 option.c:2791
#, c-format
msgid "read %s"
msgstr ""
-#: option.c:2843
+#: option.c:2863
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
-#: option.c:2844
+#: option.c:2864
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
-#: option.c:2845
+#: option.c:2865
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
-#: option.c:2846
+#: option.c:2866
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:2847
+#: option.c:2867
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr ""
-#: option.c:2858
+#: option.c:2878
msgid "try --help"
msgstr ""
-#: option.c:2860
+#: option.c:2880
msgid "try -w"
msgstr ""
-#: option.c:2863
+#: option.c:2883
#, c-format
msgid "bad command line options: %s"
msgstr ""
-#: option.c:2904
+#: option.c:2924
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
-#: option.c:2932
+#: option.c:2952
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
-#: option.c:2942
+#: option.c:2962
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
-#: option.c:2945 network.c:754 dhcp.c:734
+#: option.c:2965 network.c:777 dhcp.c:753
#, c-format
msgid "failed to read %s: %s"
msgstr ""
-#: option.c:2962
+#: option.c:2982
#, c-format
msgid "no search directive found in %s"
msgstr ""
-#: option.c:2983
+#: option.c:3003
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr ""
-#: option.c:2987
+#: option.c:3007
msgid "syntax check OK"
msgstr ""
-#: forward.c:409
+#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
msgstr ""
-#: forward.c:437
+#: forward.c:433
msgid "possible DNS-rebind attack detected"
msgstr ""
@@ -802,78 +802,78 @@
msgid "unknown interface %s in bridge-interface"
msgstr ""
-#: network.c:417 dnsmasq.c:189
+#: network.c:436 dnsmasq.c:189
#, c-format
msgid "failed to create listening socket: %s"
msgstr ""
-#: network.c:424
+#: network.c:443
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr ""
-#: network.c:450
+#: network.c:469
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr ""
-#: network.c:455
+#: network.c:474
#, c-format
msgid "failed to listen on socket: %s"
msgstr ""
-#: network.c:467
+#: network.c:486
#, c-format
msgid "failed to create TFTP socket: %s"
msgstr ""
-#: network.c:661
+#: network.c:680
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr ""
-#: network.c:694
+#: network.c:717
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
-#: network.c:705
+#: network.c:728
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr ""
-#: network.c:720
+#: network.c:743
msgid "unqualified"
msgstr ""
-#: network.c:720
+#: network.c:743
msgid "names"
msgstr ""
-#: network.c:722
+#: network.c:745
msgid "default"
msgstr ""
-#: network.c:724
+#: network.c:747
msgid "domain"
msgstr ""
-#: network.c:727
+#: network.c:750
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:729
+#: network.c:752
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:732
+#: network.c:755
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr ""
-#: network.c:734
+#: network.c:757
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
@@ -901,7 +901,7 @@
msgid "no interface with address %s"
msgstr ""
-#: dnsmasq.c:201 dnsmasq.c:665
+#: dnsmasq.c:201 dnsmasq.c:670
#, c-format
msgid "DBus error: %s"
msgstr ""
@@ -1007,75 +1007,75 @@
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:667
+#: dnsmasq.c:672
msgid "connected to system DBus"
msgstr ""
-#: dnsmasq.c:757
-#, c-format
-msgid "cannot fork into background: %s"
-msgstr ""
-
-#: dnsmasq.c:760
-#, c-format
-msgid "failed to create helper: %s"
-msgstr ""
-
-#: dnsmasq.c:763
-#, c-format
-msgid "setting capabilities failed: %s"
-msgstr ""
-
#: dnsmasq.c:767
#, c-format
+msgid "cannot fork into background: %s"
+msgstr ""
+
+#: dnsmasq.c:770
+#, c-format
+msgid "failed to create helper: %s"
+msgstr ""
+
+#: dnsmasq.c:773
+#, c-format
+msgid "setting capabilities failed: %s"
+msgstr ""
+
+#: dnsmasq.c:777
+#, c-format
msgid "failed to change user-id to %s: %s"
msgstr ""
-#: dnsmasq.c:772
+#: dnsmasq.c:782
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr ""
-#: dnsmasq.c:775
+#: dnsmasq.c:785
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr ""
-#: dnsmasq.c:778
+#: dnsmasq.c:788
#, c-format
msgid "cannot open %s: %s"
msgstr ""
-#: dnsmasq.c:833
+#: dnsmasq.c:843
#, c-format
msgid "child process killed by signal %d"
msgstr ""
-#: dnsmasq.c:837
+#: dnsmasq.c:847
#, c-format
msgid "child process exited with status %d"
msgstr ""
-#: dnsmasq.c:841
+#: dnsmasq.c:851
#, c-format
msgid "failed to execute %s: %s"
msgstr ""
-#: dnsmasq.c:885
+#: dnsmasq.c:895
msgid "exiting on receipt of SIGTERM"
msgstr ""
-#: dnsmasq.c:903
+#: dnsmasq.c:913
#, c-format
msgid "failed to access %s: %s"
msgstr ""
-#: dnsmasq.c:925
+#: dnsmasq.c:935
#, c-format
msgid "reading %s"
msgstr ""
-#: dnsmasq.c:936
+#: dnsmasq.c:946
#, c-format
msgid "no servers found in %s, will retry"
msgstr ""
@@ -1100,47 +1100,47 @@
msgid "failed to bind DHCP server socket: %s"
msgstr ""
-#: dhcp.c:90
+#: dhcp.c:103
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr ""
-#: dhcp.c:226
+#: dhcp.c:240
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr ""
-#: dhcp.c:385
+#: dhcp.c:404
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
-#: dhcp.c:772
+#: dhcp.c:791
#, c-format
msgid "bad line at %s line %d"
msgstr ""
-#: dhcp.c:815
+#: dhcp.c:834
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr ""
-#: dhcp.c:897
+#: dhcp.c:916
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
-#: dhcp.c:900
+#: dhcp.c:919
#, c-format
msgid "duplicate IP address %s in %s."
msgstr ""
-#: dhcp.c:943
+#: dhcp.c:962
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:948
+#: dhcp.c:967
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
@@ -1169,172 +1169,177 @@
msgid "failed to write %s: %s (retry in %us)"
msgstr ""
-#: rfc2131.c:336
+#: rfc2131.c:375
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr ""
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "with subnet selector"
msgstr ""
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "via"
msgstr ""
-#: rfc2131.c:352
+#: rfc2131.c:391
#, c-format
msgid "%u Available DHCP subnet: %s/%s"
msgstr ""
-#: rfc2131.c:355
+#: rfc2131.c:394
#, c-format
msgid "%u Available DHCP range: %s -- %s"
msgstr ""
-#: rfc2131.c:384
+#: rfc2131.c:423
msgid "disabled"
msgstr ""
-#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+#: rfc2131.c:457 rfc2131.c:928 rfc2131.c:1277
msgid "ignored"
msgstr ""
-#: rfc2131.c:433 rfc2131.c:1100
+#: rfc2131.c:472 rfc2131.c:1145
msgid "address in use"
msgstr ""
-#: rfc2131.c:447 rfc2131.c:937
+#: rfc2131.c:486 rfc2131.c:982
msgid "no address available"
msgstr ""
-#: rfc2131.c:454 rfc2131.c:1063
+#: rfc2131.c:493 rfc2131.c:1108
msgid "wrong network"
msgstr ""
-#: rfc2131.c:467
+#: rfc2131.c:506
msgid "no address configured"
msgstr ""
-#: rfc2131.c:473 rfc2131.c:1113
+#: rfc2131.c:512 rfc2131.c:1158
msgid "no leases left"
msgstr ""
-#: rfc2131.c:558
+#: rfc2131.c:597
#, c-format
msgid "%u client provides name: %s"
msgstr ""
-#: rfc2131.c:696
+#: rfc2131.c:741
#, c-format
msgid "%u Vendor class: %s"
msgstr ""
-#: rfc2131.c:698
+#: rfc2131.c:743
#, c-format
msgid "%u User class: %s"
msgstr ""
-#: rfc2131.c:737
+#: rfc2131.c:782
msgid "PXE BIS not supported"
msgstr ""
-#: rfc2131.c:853
+#: rfc2131.c:898
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr ""
-#: rfc2131.c:874
+#: rfc2131.c:919
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:906
+#: rfc2131.c:951
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:916
+#: rfc2131.c:961
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:919
+#: rfc2131.c:964
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:935 rfc2131.c:1106
+#: rfc2131.c:980 rfc2131.c:1151
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:1003
+#: rfc2131.c:1048
msgid "wrong server-ID"
msgstr ""
-#: rfc2131.c:1022
+#: rfc2131.c:1067
msgid "wrong address"
msgstr ""
-#: rfc2131.c:1039
+#: rfc2131.c:1084
msgid "lease not found"
msgstr ""
-#: rfc2131.c:1071
+#: rfc2131.c:1116
msgid "address not available"
msgstr ""
-#: rfc2131.c:1082
+#: rfc2131.c:1127
msgid "static lease available"
msgstr ""
-#: rfc2131.c:1086
+#: rfc2131.c:1131
msgid "address reserved"
msgstr ""
-#: rfc2131.c:1094
+#: rfc2131.c:1139
#, c-format
msgid "abandoning lease to %s of %s"
msgstr ""
-#: rfc2131.c:1583
+#: rfc2131.c:1698
#, c-format
msgid "%u tags: %s"
msgstr ""
-#: rfc2131.c:1596
+#: rfc2131.c:1711
#, c-format
msgid "%u bootfile name: %s"
msgstr ""
-#: rfc2131.c:1605
+#: rfc2131.c:1720
#, c-format
msgid "%u server name: %s"
msgstr ""
-#: rfc2131.c:1613
+#: rfc2131.c:1728
#, c-format
msgid "%u next server: %s"
msgstr ""
-#: rfc2131.c:1680
+#: rfc2131.c:1795
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:1919
+#: rfc2131.c:2032
msgid "PXE menu too large"
msgstr ""
-#: rfc2131.c:2034
+#: rfc2131.c:2143
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr ""
-#: rfc2131.c:2052
+#: rfc2131.c:2161
#, c-format
msgid "%u requested options: %s"
msgstr ""
+#: rfc2131.c:2425
+#, c-format
+msgid "cannot send RFC3925 option: too many options for enterprise number %d"
+msgstr ""
+
#: netlink.c:66
#, c-format
msgid "cannot create netlink socket: %s"
@@ -1378,7 +1383,7 @@
#: tftp.c:282
#, c-format
-msgid "TFTP sent %s to %s"
+msgid "sent %s to %s"
msgstr ""
#: tftp.c:305
@@ -1388,12 +1393,12 @@
#: tftp.c:416
#, c-format
-msgid "TFTP error %d %s received from %s"
+msgid "error %d %s received from %s"
msgstr ""
#: tftp.c:447
#, c-format
-msgid "TFTP failed sending %s to %s"
+msgid "failed sending %s to %s"
msgstr ""
#: log.c:169
@@ -1406,6 +1411,6 @@
msgid "log failed: %s"
msgstr ""
-#: log.c:415
+#: log.c:420
msgid "FAILED to start up"
msgstr ""
diff --git a/po/no.po b/po/no.po
index f70e56b..9902704 100644
--- a/po/no.po
+++ b/po/no.po
@@ -22,17 +22,17 @@
msgid "failed to load names from %s: %s"
msgstr "feilet å laste navn fra %s: %s"
-#: cache.c:798 dhcp.c:785
+#: cache.c:798 dhcp.c:804
#, c-format
msgid "bad address at %s line %d"
msgstr "dårlig adresse ved %s linje %d"
-#: cache.c:856 dhcp.c:801
+#: cache.c:856 dhcp.c:820
#, c-format
msgid "bad name at %s line %d"
msgstr "dårlig navn ved %s linje %d"
-#: cache.c:863 dhcp.c:875
+#: cache.c:863 dhcp.c:894
#, c-format
msgid "read %s - %d addresses"
msgstr "les %s - %d adresser"
@@ -41,7 +41,7 @@
msgid "cleared cache"
msgstr "mellomlager tømt"
-#: cache.c:933 option.c:1055
+#: cache.c:933 option.c:1069
#, fuzzy, c-format
msgid "cannot access directory %s: %s"
msgstr "kan ikke lese %s: %s"
@@ -81,7 +81,7 @@
msgid "failed to allocate memory"
msgstr "feilet å laste %d bytes"
-#: util.c:229 option.c:548
+#: util.c:229 option.c:549
msgid "could not get memory"
msgstr "kunne ikke få minne"
@@ -522,7 +522,7 @@
msgid "Check configuration syntax."
msgstr ""
-#: option.c:613
+#: option.c:614
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -531,223 +531,223 @@
"Bruk: dnsmasq [opsjoner]\n"
"\n"
-#: option.c:615
+#: option.c:616
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Bruk korte opsjoner kun på kommandolinjen.\n"
-#: option.c:617
+#: option.c:618
#, fuzzy, c-format
msgid "Valid options are:\n"
msgstr "Gyldige opsjoner er :\n"
-#: option.c:658
+#: option.c:659
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:735
+#: option.c:747
msgid "bad dhcp-option"
msgstr "dårlig dhcp-opsjon"
-#: option.c:792
+#: option.c:804
#, fuzzy
msgid "bad IP address"
msgstr "les %s - %d adresser"
-#: option.c:891
+#: option.c:903
msgid "bad domain in dhcp-option"
msgstr "dårlig domene i dhcp-opsjon"
-#: option.c:950
+#: option.c:964
msgid "dhcp-option too long"
msgstr "dhcp-opsjon for lang"
-#: option.c:959
+#: option.c:973
msgid "illegal dhcp-match"
msgstr ""
-#: option.c:995
+#: option.c:1009
msgid "illegal repeated flag"
msgstr ""
-#: option.c:1003
+#: option.c:1017
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:1086 tftp.c:359
+#: option.c:1100 tftp.c:359
#, fuzzy, c-format
msgid "cannot access %s: %s"
msgstr "kan ikke lese %s: %s"
-#: option.c:1131
+#: option.c:1145
msgid "only one dhcp-hostsfile allowed"
msgstr ""
-#: option.c:1138
+#: option.c:1152
msgid "only one dhcp-optsfile allowed"
msgstr ""
-#: option.c:1183
+#: option.c:1197
msgid "bad MX preference"
msgstr "dårlig MX preferanse"
-#: option.c:1188
+#: option.c:1202
msgid "bad MX name"
msgstr "dårlig MX navn"
-#: option.c:1202
+#: option.c:1216
msgid "bad MX target"
msgstr "dårlig MX mål"
-#: option.c:1212
+#: option.c:1226
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1214
+#: option.c:1228
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr ""
-#: option.c:1442 option.c:1446
+#: option.c:1456 option.c:1460
msgid "bad port"
msgstr "dårlig port"
-#: option.c:1465 option.c:1490
+#: option.c:1479 option.c:1504
msgid "interface binding not supported"
msgstr ""
-#: option.c:1611
+#: option.c:1625
#, fuzzy
msgid "bad port range"
msgstr "dårlig port"
-#: option.c:1628
+#: option.c:1642
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1669
+#: option.c:1683
msgid "bad dhcp-range"
msgstr "dårlig dhcp-område"
-#: option.c:1695
+#: option.c:1709
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1740
+#: option.c:1754
msgid "inconsistent DHCP range"
msgstr "ikke konsistent DHCP område"
-#: option.c:1912
+#: option.c:1926
#, fuzzy
msgid "bad DHCP host name"
msgstr "dårlig MX navn"
-#: option.c:2201 option.c:2481
+#: option.c:2221 option.c:2501
msgid "invalid port number"
msgstr "ugyldig portnummer"
-#: option.c:2284
+#: option.c:2304
#, fuzzy
msgid "invalid alias range"
msgstr "ugyldig vekt"
-#: option.c:2297
+#: option.c:2317
#, fuzzy
msgid "bad interface name"
msgstr "dårlig MX navn"
-#: option.c:2322
+#: option.c:2342
msgid "bad CNAME"
msgstr ""
-#: option.c:2327
+#: option.c:2347
msgid "duplicate CNAME"
msgstr ""
-#: option.c:2347
+#: option.c:2367
#, fuzzy
msgid "bad PTR record"
msgstr "dårlig SRV post"
-#: option.c:2378
+#: option.c:2398
#, fuzzy
msgid "bad NAPTR record"
msgstr "dårlig SRV post"
-#: option.c:2403
+#: option.c:2423
msgid "TXT record string too long"
msgstr "TXT post streng for lang"
-#: option.c:2451
+#: option.c:2471
msgid "bad TXT record"
msgstr "dårlig TXT post"
-#: option.c:2467
+#: option.c:2487
msgid "bad SRV record"
msgstr "dårlig SRV post"
-#: option.c:2474
+#: option.c:2494
msgid "bad SRV target"
msgstr "dårlig SRV mål"
-#: option.c:2488
+#: option.c:2508
msgid "invalid priority"
msgstr "ugyldig prioritet"
-#: option.c:2495
+#: option.c:2515
msgid "invalid weight"
msgstr "ugyldig vekt"
-#: option.c:2514
+#: option.c:2534
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr ""
-#: option.c:2557
+#: option.c:2577
#, c-format
msgid "files nested too deep in %s"
msgstr ""
-#: option.c:2565 tftp.c:513
+#: option.c:2585 tftp.c:513
#, c-format
msgid "cannot read %s: %s"
msgstr "kan ikke lese %s: %s"
-#: option.c:2626
+#: option.c:2646
msgid "missing \""
msgstr "mangler \""
-#: option.c:2673
+#: option.c:2693
msgid "bad option"
msgstr "dårlig opsjon"
-#: option.c:2675
+#: option.c:2695
msgid "extraneous parameter"
msgstr "overflødig parameter"
-#: option.c:2677
+#: option.c:2697
msgid "missing parameter"
msgstr "mangler parameter"
-#: option.c:2685
+#: option.c:2705
msgid "error"
msgstr "feil"
-#: option.c:2691
+#: option.c:2711
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s på linje %d av %%s"
-#: option.c:2740 option.c:2771
+#: option.c:2760 option.c:2791
#, fuzzy, c-format
msgid "read %s"
msgstr "leser %s"
-#: option.c:2843
+#: option.c:2863
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq versjon %s %s\n"
-#: option.c:2844
+#: option.c:2864
#, c-format
msgid ""
"Compile time options %s\n"
@@ -756,71 +756,71 @@
"Kompileringsopsjoner %s\n"
"\n"
-#: option.c:2845
+#: option.c:2865
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Denne programvaren kommer med ABSOLUTT INGEN GARANTI.\n"
-#: option.c:2846
+#: option.c:2866
#, 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:2847
+#: option.c:2867
#, 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:2858
+#: option.c:2878
msgid "try --help"
msgstr ""
-#: option.c:2860
+#: option.c:2880
msgid "try -w"
msgstr ""
-#: option.c:2863
+#: option.c:2883
#, fuzzy, c-format
msgid "bad command line options: %s"
msgstr "dårlige kommandlinje opsjoner: %s."
-#: option.c:2904
+#: option.c:2924
#, c-format
msgid "cannot get host-name: %s"
msgstr "klarer ikke å få vertsnavn: %s"
-#: option.c:2932
+#: option.c:2952
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "kun en resolv.conf fil tillat i no-poll modus."
-#: option.c:2942
+#: option.c:2962
msgid "must have exactly one resolv.conf to read domain from."
msgstr "må ha nøyaktig en resolv.conf å lese domene fra."
-#: option.c:2945 network.c:754 dhcp.c:734
+#: option.c:2965 network.c:777 dhcp.c:753
#, fuzzy, c-format
msgid "failed to read %s: %s"
msgstr "feilet å lese %s: %s"
-#: option.c:2962
+#: option.c:2982
#, c-format
msgid "no search directive found in %s"
msgstr "intet søke direktiv funnet i %s"
-#: option.c:2983
+#: option.c:3003
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr ""
-#: option.c:2987
+#: option.c:3007
msgid "syntax check OK"
msgstr ""
-#: forward.c:409
+#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
msgstr "navnetjener %s nektet å gjøre et rekursivt oppslag"
-#: forward.c:437
+#: forward.c:433
msgid "possible DNS-rebind attack detected"
msgstr ""
@@ -829,78 +829,78 @@
msgid "unknown interface %s in bridge-interface"
msgstr "ukjent tilknytning (interface) %s"
-#: network.c:417 dnsmasq.c:189
+#: network.c:436 dnsmasq.c:189
#, c-format
msgid "failed to create listening socket: %s"
msgstr "feilet å lage lytte socket: %s"
-#: network.c:424
+#: network.c:443
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr "feilet å sette IPv6 opsjoner på lytte socket: %s"
-#: network.c:450
+#: network.c:469
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "feilet å binde lytte socket for %s: %s"
-#: network.c:455
+#: network.c:474
#, c-format
msgid "failed to listen on socket: %s"
msgstr "feilet å lytte på socket: %s"
-#: network.c:467
+#: network.c:486
#, fuzzy, c-format
msgid "failed to create TFTP socket: %s"
msgstr "feilet å lage lytte socket: %s"
-#: network.c:661
+#: network.c:680
#, fuzzy, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "feilet å binde lytte socket for %s: %s"
-#: network.c:694
+#: network.c:717
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorerer navnetjener %s - lokal tilknytning"
-#: network.c:705
+#: network.c:728
#, fuzzy, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr "ignorerer navnetjener %s - kan ikke lage/dinde socket: %s"
-#: network.c:720
+#: network.c:743
msgid "unqualified"
msgstr "ikke kvalifisert"
-#: network.c:720
+#: network.c:743
msgid "names"
msgstr ""
-#: network.c:722
+#: network.c:745
msgid "default"
msgstr ""
-#: network.c:724
+#: network.c:747
msgid "domain"
msgstr "domene"
-#: network.c:727
+#: network.c:750
#, c-format
msgid "using local addresses only for %s %s"
msgstr "benytter lokale adresser kun for %s %s"
-#: network.c:729
+#: network.c:752
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "benytter navnetjener %s#%d for %s %s"
-#: network.c:732
+#: network.c:755
#, fuzzy, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "benytter navnetjener %s#%d"
-#: network.c:734
+#: network.c:757
#, c-format
msgid "using nameserver %s#%d"
msgstr "benytter navnetjener %s#%d"
@@ -929,7 +929,7 @@
msgid "no interface with address %s"
msgstr "ingen tilknytning (interface) med adresse %s"
-#: dnsmasq.c:201 dnsmasq.c:665
+#: dnsmasq.c:201 dnsmasq.c:670
#, c-format
msgid "DBus error: %s"
msgstr "DBus feil: %s"
@@ -1037,75 +1037,75 @@
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:667
+#: dnsmasq.c:672
msgid "connected to system DBus"
msgstr "tilkoblet til system DBus"
-#: dnsmasq.c:757
+#: dnsmasq.c:767
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
-#: dnsmasq.c:760
+#: dnsmasq.c:770
#, fuzzy, c-format
msgid "failed to create helper: %s"
msgstr "feilet å lese %s: %s"
-#: dnsmasq.c:763
+#: dnsmasq.c:773
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
-#: dnsmasq.c:767
+#: dnsmasq.c:777
#, fuzzy, c-format
msgid "failed to change user-id to %s: %s"
msgstr "feilet å laste navn fra %s: %s"
-#: dnsmasq.c:772
+#: dnsmasq.c:782
#, fuzzy, c-format
msgid "failed to change group-id to %s: %s"
msgstr "feilet å laste navn fra %s: %s"
-#: dnsmasq.c:775
+#: dnsmasq.c:785
#, fuzzy, c-format
msgid "failed to open pidfile %s: %s"
msgstr "feilet å lese %s: %s"
-#: dnsmasq.c:778
+#: dnsmasq.c:788
#, fuzzy, c-format
msgid "cannot open %s: %s"
msgstr "kan ikke åpne %s:%s"
-#: dnsmasq.c:833
+#: dnsmasq.c:843
#, c-format
msgid "child process killed by signal %d"
msgstr ""
-#: dnsmasq.c:837
+#: dnsmasq.c:847
#, c-format
msgid "child process exited with status %d"
msgstr ""
-#: dnsmasq.c:841
+#: dnsmasq.c:851
#, fuzzy, c-format
msgid "failed to execute %s: %s"
msgstr "feilet å få tilgang til %s: %s"
-#: dnsmasq.c:885
+#: dnsmasq.c:895
msgid "exiting on receipt of SIGTERM"
msgstr "avslutter etter mottak av SIGTERM"
-#: dnsmasq.c:903
+#: dnsmasq.c:913
#, fuzzy, c-format
msgid "failed to access %s: %s"
msgstr "feilet å få tilgang til %s: %s"
-#: dnsmasq.c:925
+#: dnsmasq.c:935
#, c-format
msgid "reading %s"
msgstr "leser %s"
-#: dnsmasq.c:936
+#: dnsmasq.c:946
#, fuzzy, c-format
msgid "no servers found in %s, will retry"
msgstr "intet søke direktiv funnet i %s"
@@ -1130,47 +1130,47 @@
msgid "failed to bind DHCP server socket: %s"
msgstr "feilet å binde DHCP tjener socket: %s"
-#: dhcp.c:90
+#: dhcp.c:103
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "kan ikke lage ICMP raw socket: %s"
-#: dhcp.c:226
+#: dhcp.c:240
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr ""
-#: dhcp.c:385
+#: dhcp.c:404
#, 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:772
+#: dhcp.c:791
#, c-format
msgid "bad line at %s line %d"
msgstr "dårlig linje ved %s linje %d"
-#: dhcp.c:815
+#: dhcp.c:834
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr ""
-#: dhcp.c:897
+#: dhcp.c:916
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
-#: dhcp.c:900
+#: dhcp.c:919
#, fuzzy, c-format
msgid "duplicate IP address %s in %s."
msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
-#: dhcp.c:943
+#: dhcp.c:962
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:948
+#: dhcp.c:967
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "dubliserte IP adresser i %s (%s) i dhcp-config direktiv"
@@ -1199,172 +1199,177 @@
msgid "failed to write %s: %s (retry in %us)"
msgstr "feilet å lese %s: %s"
-#: rfc2131.c:336
+#: rfc2131.c:375
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "ingen adresse område tilgjengelig for DHCP krav %s %s"
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "with subnet selector"
msgstr "med subnet velger"
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "via"
msgstr "via"
-#: rfc2131.c:352
+#: rfc2131.c:391
#, c-format
msgid "%u Available DHCP subnet: %s/%s"
msgstr ""
-#: rfc2131.c:355
+#: rfc2131.c:394
#, c-format
msgid "%u Available DHCP range: %s -- %s"
msgstr ""
-#: rfc2131.c:384
+#: rfc2131.c:423
msgid "disabled"
msgstr "deaktivert"
-#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+#: rfc2131.c:457 rfc2131.c:928 rfc2131.c:1277
msgid "ignored"
msgstr "oversett"
-#: rfc2131.c:433 rfc2131.c:1100
+#: rfc2131.c:472 rfc2131.c:1145
msgid "address in use"
msgstr "adresse i bruk"
-#: rfc2131.c:447 rfc2131.c:937
+#: rfc2131.c:486 rfc2131.c:982
msgid "no address available"
msgstr "ingen adresse tilgjengelig"
-#: rfc2131.c:454 rfc2131.c:1063
+#: rfc2131.c:493 rfc2131.c:1108
msgid "wrong network"
msgstr "galt nettverk"
-#: rfc2131.c:467
+#: rfc2131.c:506
msgid "no address configured"
msgstr "ingen adresse konfigurert"
-#: rfc2131.c:473 rfc2131.c:1113
+#: rfc2131.c:512 rfc2131.c:1158
msgid "no leases left"
msgstr "ingen leier igjen"
-#: rfc2131.c:558
+#: rfc2131.c:597
#, c-format
msgid "%u client provides name: %s"
msgstr ""
-#: rfc2131.c:696
+#: rfc2131.c:741
#, c-format
msgid "%u Vendor class: %s"
msgstr ""
-#: rfc2131.c:698
+#: rfc2131.c:743
#, c-format
msgid "%u User class: %s"
msgstr ""
-#: rfc2131.c:737
+#: rfc2131.c:782
msgid "PXE BIS not supported"
msgstr ""
-#: rfc2131.c:853
+#: rfc2131.c:898
#, fuzzy, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "deaktiverer DHCP statisk adresse %s"
-#: rfc2131.c:874
+#: rfc2131.c:919
msgid "unknown lease"
msgstr "ukjent leie"
-#: rfc2131.c:906
+#: rfc2131.c:951
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:916
+#: rfc2131.c:961
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:919
+#: rfc2131.c:964
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:935 rfc2131.c:1106
+#: rfc2131.c:980 rfc2131.c:1151
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:1003
+#: rfc2131.c:1048
msgid "wrong server-ID"
msgstr ""
-#: rfc2131.c:1022
+#: rfc2131.c:1067
msgid "wrong address"
msgstr "gal adresse"
-#: rfc2131.c:1039
+#: rfc2131.c:1084
msgid "lease not found"
msgstr "leie ikke funnet"
-#: rfc2131.c:1071
+#: rfc2131.c:1116
msgid "address not available"
msgstr "adresse ikke tilgjengelig"
-#: rfc2131.c:1082
+#: rfc2131.c:1127
msgid "static lease available"
msgstr "statisk leie tilgjengelig"
-#: rfc2131.c:1086
+#: rfc2131.c:1131
msgid "address reserved"
msgstr "adresse reservert"
-#: rfc2131.c:1094
+#: rfc2131.c:1139
#, c-format
msgid "abandoning lease to %s of %s"
msgstr ""
-#: rfc2131.c:1583
+#: rfc2131.c:1698
#, c-format
msgid "%u tags: %s"
msgstr ""
-#: rfc2131.c:1596
+#: rfc2131.c:1711
#, c-format
msgid "%u bootfile name: %s"
msgstr ""
-#: rfc2131.c:1605
+#: rfc2131.c:1720
#, fuzzy, c-format
msgid "%u server name: %s"
msgstr "DBus feil: %s"
-#: rfc2131.c:1613
+#: rfc2131.c:1728
#, fuzzy, c-format
msgid "%u next server: %s"
msgstr "DBus feil: %s"
-#: rfc2131.c:1680
+#: rfc2131.c:1795
#, 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:1919
+#: rfc2131.c:2032
msgid "PXE menu too large"
msgstr ""
-#: rfc2131.c:2034
+#: rfc2131.c:2143
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr ""
-#: rfc2131.c:2052
+#: rfc2131.c:2161
#, fuzzy, c-format
msgid "%u requested options: %s"
msgstr "kompilerings opsjoner: %s"
+#: rfc2131.c:2425
+#, c-format
+msgid "cannot send RFC3925 option: too many options for enterprise number %d"
+msgstr ""
+
#: netlink.c:66
#, fuzzy, c-format
msgid "cannot create netlink socket: %s"
@@ -1408,7 +1413,7 @@
#: tftp.c:282
#, c-format
-msgid "TFTP sent %s to %s"
+msgid "sent %s to %s"
msgstr ""
#: tftp.c:305
@@ -1418,12 +1423,12 @@
#: tftp.c:416
#, c-format
-msgid "TFTP error %d %s received from %s"
+msgid "error %d %s received from %s"
msgstr ""
#: tftp.c:447
#, fuzzy, c-format
-msgid "TFTP failed sending %s to %s"
+msgid "failed sending %s to %s"
msgstr "feilet å lese %s: %s"
#: log.c:169
@@ -1436,7 +1441,7 @@
msgid "log failed: %s"
msgstr ""
-#: log.c:415
+#: log.c:420
msgid "FAILED to start up"
msgstr "FEILET å starte opp"
diff --git a/po/pl.po b/po/pl.po
index accaa60..6af56ad 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -3,15 +3,15 @@
# This file is put in the public domain.
#
# Tomasz Sochañski <nerdhero@gmail.com>, 2005.
-# Jan Psota <jasiu@belsznica.pl>, 2008, 2009.
+# Jan Psota <jasiu@belsznica.pl>, 2008, 2009, 2010.
msgid ""
msgstr ""
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 20:57+0100\n"
-"PO-Revision-Date: 2009-10-02 20:30+0200\n"
+"PO-Revision-Date: 2010-01-14 21:47+0100\n"
"Last-Translator: Jan Psota <jasiu@belsznica.pl>\n"
-"Language-Team: Polish <kde-i18n-doc@kde.org>\n"
+"Language-Team: Polish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -24,17 +24,17 @@
msgid "failed to load names from %s: %s"
msgstr "nie potrafiê wczytaæ nazw z %s: %s"
-#: cache.c:798 dhcp.c:785
+#: cache.c:798 dhcp.c:804
#, c-format
msgid "bad address at %s line %d"
msgstr "b³êdny adres w pliku %s, w linii %d"
-#: cache.c:856 dhcp.c:801
+#: cache.c:856 dhcp.c:820
#, c-format
msgid "bad name at %s line %d"
msgstr "b³êdna nazwa w pliku %s, w linii %d"
-#: cache.c:863 dhcp.c:875
+#: cache.c:863 dhcp.c:894
#, c-format
msgid "read %s - %d addresses"
msgstr "wczyta³em %s - %d adresów"
@@ -43,7 +43,7 @@
msgid "cleared cache"
msgstr "wyczyszczono pamiêæ podrêczn±"
-#: cache.c:933 option.c:1055
+#: cache.c:933 option.c:1069
#, c-format
msgid "cannot access directory %s: %s"
msgstr "brak dostêpu do katalogu %s: %s"
@@ -82,7 +82,7 @@
msgid "failed to allocate memory"
msgstr "nie uda³o siê przydzieliæ pamiêci"
-#: util.c:229 option.c:548
+#: util.c:229 option.c:549
msgid "could not get memory"
msgstr "nie mo¿na dostaæ pamiêci"
@@ -510,7 +510,7 @@
msgid "Check configuration syntax."
msgstr "Sprawd¼ sk³adniê."
-#: option.c:613
+#: option.c:614
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -519,216 +519,216 @@
"U¿ycie: dnsmasq [opcje]\n"
"\n"
-#: option.c:615
+#: option.c:616
#, 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:617
+#: option.c:618
#, c-format
msgid "Valid options are:\n"
msgstr "Dostêpne opcje:\n"
-#: option.c:658
+#: option.c:659
#, c-format
msgid "Known DHCP options:\n"
msgstr "Znane opcje DHCP:\n"
-#: option.c:735
+#: option.c:747
msgid "bad dhcp-option"
msgstr "b³±d w dhcp-option"
-#: option.c:792
+#: option.c:804
msgid "bad IP address"
msgstr "z³y adres IP"
-#: option.c:891
+#: option.c:903
msgid "bad domain in dhcp-option"
msgstr "nieprawid³owa nazwa domeny w dhcp-option"
-#: option.c:950
+#: option.c:964
msgid "dhcp-option too long"
msgstr "zbyt d³uga dhcp-option (>255 znaków)"
-#: option.c:959
+#: option.c:973
msgid "illegal dhcp-match"
msgstr "niedopuszczalne dhcp-match"
-#: option.c:995
+#: option.c:1009
msgid "illegal repeated flag"
msgstr "wielokrotne u¿ycie opcji niedozwolone (pojawi³a siê wcze¶niej w linii poleceñ)"
-#: option.c:1003
+#: option.c:1017
msgid "illegal repeated keyword"
msgstr "wielokrotne u¿ycie opcji niedozwolone (pojawi³a siê wsze¶niej w pliku konfiguracyjnym)"
-#: option.c:1086 tftp.c:359
+#: option.c:1100 tftp.c:359
#, c-format
msgid "cannot access %s: %s"
msgstr "brak dostêpu do %s: %s"
-#: option.c:1131
+#: option.c:1145
msgid "only one dhcp-hostsfile allowed"
msgstr "mo¿na wskazaæ tylko jeden plik dhcp-hostsfile"
-#: option.c:1138
+#: option.c:1152
msgid "only one dhcp-optsfile allowed"
msgstr "mo¿na wskazaæ tylko jeden plik dhcp-optsfile"
-#: option.c:1183
+#: option.c:1197
msgid "bad MX preference"
msgstr "nieprawid³owa warto¶æ preferencji MX"
-#: option.c:1188
+#: option.c:1202
msgid "bad MX name"
msgstr "nieprawid³owa nazwa MX"
-#: option.c:1202
+#: option.c:1216
msgid "bad MX target"
msgstr "nieprawid³owa warto¶æ celu MX"
-#: option.c:1212
+#: option.c:1226
msgid "cannot run scripts under uClinux"
msgstr "w uClinuksie nie ma mo¿liwo¶ci uruchamiania skryptów"
-#: option.c:1214
+#: option.c:1228
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:1442 option.c:1446
+#: option.c:1456 option.c:1460
msgid "bad port"
msgstr "nieprawid³owy numer portu"
-#: option.c:1465 option.c:1490
+#: option.c:1479 option.c:1504
msgid "interface binding not supported"
msgstr "nie ma mo¿liwo¶ci dowi±zywania do interfejsu"
-#: option.c:1611
+#: option.c:1625
msgid "bad port range"
msgstr "nieprawid³owy zakres numerów portów"
-#: option.c:1628
+#: option.c:1642
msgid "bad bridge-interface"
msgstr "nieprawid³owa nazwa urz±dzenia w bridge-interface"
-#: option.c:1669
+#: option.c:1683
msgid "bad dhcp-range"
msgstr "nieprawid³owy zakres dhcp-range"
-#: option.c:1695
+#: option.c:1709
msgid "only one netid tag allowed"
msgstr "mo¿na wskazaæ tylko jeden znacznik sieci"
-#: option.c:1740
+#: option.c:1754
msgid "inconsistent DHCP range"
msgstr "niespójny zakres adresów DHCP"
-#: option.c:1912
+#: option.c:1926
msgid "bad DHCP host name"
msgstr "niedopuszczalna nazwa komputera w dhcp-host"
-#: option.c:2201 option.c:2481
+#: option.c:2221 option.c:2501
msgid "invalid port number"
msgstr "nieprawid³owy numer portu"
-#: option.c:2284
+#: option.c:2304
msgid "invalid alias range"
msgstr "nieprawid³owy zakres adresów w --alias"
-#: option.c:2297
+#: option.c:2317
msgid "bad interface name"
msgstr "nieprawid³owa nazwa interfejsu"
-#: option.c:2322
+#: option.c:2342
msgid "bad CNAME"
msgstr "z³a CNAME"
-#: option.c:2327
+#: option.c:2347
msgid "duplicate CNAME"
msgstr "powtórzona CNAME"
-#: option.c:2347
+#: option.c:2367
msgid "bad PTR record"
msgstr "nieprawid³owy zapis rekordu PTR"
-#: option.c:2378
+#: option.c:2398
msgid "bad NAPTR record"
msgstr "nieprawid³owy zapis rekordu NAPTR"
-#: option.c:2403
+#: option.c:2423
msgid "TXT record string too long"
msgstr "zbyt d³ugi rekord TXT"
-#: option.c:2451
+#: option.c:2471
msgid "bad TXT record"
msgstr "nieprawid³owy zapis rekordu TXT"
-#: option.c:2467
+#: option.c:2487
msgid "bad SRV record"
msgstr "nieprawid³owy zapis rekordu SRV"
-#: option.c:2474
+#: option.c:2494
msgid "bad SRV target"
msgstr "nieprawid³owa warto¶æ celu SRV"
-#: option.c:2488
+#: option.c:2508
msgid "invalid priority"
msgstr "nieprawid³owy priorytet"
-#: option.c:2495
+#: option.c:2515
msgid "invalid weight"
msgstr "nieprawid³owa waga"
-#: option.c:2514
+#: option.c:2534
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:2557
+#: option.c:2577
#, c-format
msgid "files nested too deep in %s"
msgstr "zbyt du¿e zag³êbienie plików w %s"
-#: option.c:2565 tftp.c:513
+#: option.c:2585 tftp.c:513
#, c-format
msgid "cannot read %s: %s"
msgstr "b³±d odczytu z pliku %s: %s"
-#: option.c:2626
+#: option.c:2646
msgid "missing \""
msgstr "brakuje \""
-#: option.c:2673
+#: option.c:2693
msgid "bad option"
msgstr "nieprawid³owa opcja"
-#: option.c:2675
+#: option.c:2695
msgid "extraneous parameter"
msgstr "nadwy¿kowy parametr"
-#: option.c:2677
+#: option.c:2697
msgid "missing parameter"
msgstr "brak parametru"
-#: option.c:2685
+#: option.c:2705
msgid "error"
msgstr "b³±d"
-#: option.c:2691
+#: option.c:2711
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s w linii %d pliku %%s"
-#: option.c:2740 option.c:2771
+#: option.c:2760 option.c:2791
#, c-format
msgid "read %s"
msgstr "przeczyta³em %s"
-#: option.c:2843
+#: option.c:2863
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq, wersja %s %s\n"
-#: option.c:2844
+#: option.c:2864
#, c-format
msgid ""
"Compile time options %s\n"
@@ -737,71 +737,71 @@
"Wkompilowane opcje %s\n"
"\n"
-#: option.c:2845
+#: option.c:2865
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Autor nie daje ¯ADNYCH GWARANCJI egzekwowalnych prawnie.\n"
-#: option.c:2846
+#: option.c:2866
#, 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:2847
+#: option.c:2867
#, 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:2858
+#: option.c:2878
msgid "try --help"
msgstr "spróbuj: --help"
-#: option.c:2860
+#: option.c:2880
msgid "try -w"
msgstr "spróbuj: -w"
-#: option.c:2863
+#: option.c:2883
#, c-format
msgid "bad command line options: %s"
msgstr "nieprawid³owa opcja w linii poleceñ %s"
-#: option.c:2904
+#: option.c:2924
#, c-format
msgid "cannot get host-name: %s"
msgstr "nie mo¿na pobraæ nazwy hosta: %s"
-#: option.c:2932
+#: option.c:2952
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:2942
+#: option.c:2962
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:2945 network.c:754 dhcp.c:734
+#: option.c:2965 network.c:777 dhcp.c:753
#, c-format
msgid "failed to read %s: %s"
msgstr "nie uda³o siê odczytaæ %s: %s"
-#: option.c:2962
+#: option.c:2982
#, c-format
msgid "no search directive found in %s"
msgstr "brak wytycznych wyszukiwania w %s"
-#: option.c:2983
+#: option.c:3003
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:2987
+#: option.c:3007
msgid "syntax check OK"
msgstr "sk³adnia sprawdzona, jest prawid³owa"
-#: forward.c:409
+#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
msgstr "serwer nazw %s odmawia wykonania zapytania rekurencyjnego"
-#: forward.c:437
+#: forward.c:433
msgid "possible DNS-rebind attack detected"
msgstr "prawdopodobnie wykryto atak DNS-rebind"
@@ -810,78 +810,78 @@
msgid "unknown interface %s in bridge-interface"
msgstr "nieznany interfejs %s w bridge-u"
-#: network.c:417 dnsmasq.c:189
+#: network.c:436 dnsmasq.c:189
#, c-format
msgid "failed to create listening socket: %s"
msgstr "b³±d podczas tworzenia gniazda: %s"
-#: network.c:424
+#: network.c:443
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr "b³±d ustawiania opcji IPV6 na nas³uchuj±cym gnie¼dzie: %s"
-#: network.c:450
+#: network.c:469
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "b³±d przy przyznawaniu nazwy gniazdu %s: %s"
-#: network.c:455
+#: network.c:474
#, c-format
msgid "failed to listen on socket: %s"
msgstr "b³±d przy w³±czaniu nas³uchu na gnie¼dzie: %s"
-#: network.c:467
+#: network.c:486
#, c-format
msgid "failed to create TFTP socket: %s"
msgstr "nie powiod³o siê otwieranie gniazda dla us³ugi TFTP: %s"
-#: network.c:661
+#: network.c:680
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "b³±d przy przyznawaniu nazwy gniazdu serwera %s: %s"
-#: network.c:694
+#: network.c:717
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorowanie serwera nazw %s - interfejs lokalny"
-#: network.c:705
+#: network.c:728
#, 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:720
+#: network.c:743
msgid "unqualified"
msgstr "niekwalifikowane(-a)"
-#: network.c:720
+#: network.c:743
msgid "names"
msgstr "nazwy"
-#: network.c:722
+#: network.c:745
msgid "default"
msgstr "domy¶lne"
-#: network.c:724
+#: network.c:747
msgid "domain"
msgstr "domeny"
-#: network.c:727
+#: network.c:750
#, c-format
msgid "using local addresses only for %s %s"
msgstr "u¿ywam adresów lokalnych tylko dla %s %s"
-#: network.c:729
+#: network.c:752
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "u¿ywam serwera nazw %s#%d dla %s %s"
-#: network.c:732
+#: network.c:755
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "u¿ywam serwera nazw %s#%d (przez %s)"
-#: network.c:734
+#: network.c:757
#, c-format
msgid "using nameserver %s#%d"
msgstr "u¿ywam serwera nazw %s#%d"
@@ -909,7 +909,7 @@
msgid "no interface with address %s"
msgstr "brak interfejsu z adresem %s"
-#: dnsmasq.c:201 dnsmasq.c:665
+#: dnsmasq.c:201 dnsmasq.c:670
#, c-format
msgid "DBus error: %s"
msgstr "b³±d DBus: %s"
@@ -1015,75 +1015,75 @@
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "ograniczam ilo¶æ jednoczesnych przes³añ TFTP do %d"
-#: dnsmasq.c:667
+#: dnsmasq.c:672
msgid "connected to system DBus"
msgstr "pod³±czono do DBus-a"
-#: dnsmasq.c:757
+#: dnsmasq.c:767
#, c-format
msgid "cannot fork into background: %s"
msgstr "nie potrafiê prze³±czyæ siê do pracy w tle: %s"
-#: dnsmasq.c:760
+#: dnsmasq.c:770
#, c-format
msgid "failed to create helper: %s"
msgstr "nie uda³o siê utworzyæ procesu pomocniczego: %s"
-#: dnsmasq.c:763
+#: dnsmasq.c:773
#, c-format
msgid "setting capabilities failed: %s"
msgstr "nie powiod³o siê ustawianie ograniczeñ (capabilities): %s"
-#: dnsmasq.c:767
+#: dnsmasq.c:777
#, 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:772
+#: dnsmasq.c:782
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr "nie uda³o siê zmieniæ grupy procesu na %s: %s"
-#: dnsmasq.c:775
+#: dnsmasq.c:785
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr "nie uda³o siê otworzyæ pliku z PID-em %s: %s"
-#: dnsmasq.c:778
+#: dnsmasq.c:788
#, c-format
msgid "cannot open %s: %s"
msgstr "nie mo¿na otworzyæ %s: %s"
-#: dnsmasq.c:833
+#: dnsmasq.c:843
#, c-format
msgid "child process killed by signal %d"
msgstr "proces potomny zabity sygna³em %d"
-#: dnsmasq.c:837
+#: dnsmasq.c:847
#, c-format
msgid "child process exited with status %d"
msgstr "proces potomny zakoñczy³ siê z kodem powrotu %d"
-#: dnsmasq.c:841
+#: dnsmasq.c:851
#, c-format
msgid "failed to execute %s: %s"
msgstr "nie uda³o siê uruchomiæ %s: %s"
-#: dnsmasq.c:885
+#: dnsmasq.c:895
msgid "exiting on receipt of SIGTERM"
msgstr "zakoñczy³em dzia³anie z powodu odebrania SIGTERM"
-#: dnsmasq.c:903
+#: dnsmasq.c:913
#, c-format
msgid "failed to access %s: %s"
msgstr "brak dostêpu do %s: %s"
-#: dnsmasq.c:925
+#: dnsmasq.c:935
#, c-format
msgid "reading %s"
msgstr "czytanie %s"
-#: dnsmasq.c:936
+#: dnsmasq.c:946
#, c-format
msgid "no servers found in %s, will retry"
msgstr "w %s nie znalaz³em serwerów, spróbujê ponownie pó¼niej"
@@ -1108,47 +1108,47 @@
msgid "failed to bind DHCP server socket: %s"
msgstr "b³±d przy przyznawaniu nazwy gniazdu serwera DHCP: %s"
-#: dhcp.c:90
+#: dhcp.c:103
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "nie uda³o siê utworzyæ surowego gniazda ICMP: %s."
-#: dhcp.c:226
+#: dhcp.c:240
#, 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:385
+#: dhcp.c:404
#, 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:772
+#: dhcp.c:791
#, c-format
msgid "bad line at %s line %d"
msgstr "z³a zawarto¶æ pliku %s, w linii %d"
-#: dhcp.c:815
+#: dhcp.c:834
#, 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:897
+#: dhcp.c:916
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "powtórzony adres IP (%s) w parametrze dhcp-config"
-#: dhcp.c:900
+#: dhcp.c:919
#, c-format
msgid "duplicate IP address %s in %s."
msgstr "powtórzony adres IP (%s) w pliku %s"
-#: dhcp.c:943
+#: dhcp.c:962
#, 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:948
+#: dhcp.c:967
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "powtórzenie adresu IP %s (%s) w opcji dhcp-config"
@@ -1177,171 +1177,176 @@
msgid "failed to write %s: %s (retry in %us)"
msgstr "b³±d zapisu do %s: %s (spróbujê ponownie za %us)"
-#: rfc2131.c:336
+#: rfc2131.c:375
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "nie zdefiniowano zakresu adresów odpowiedniego dla ¿±dania %s %s"
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "with subnet selector"
msgstr "z wyborem podsieci"
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "via"
msgstr "przez"
-#: rfc2131.c:352
+#: rfc2131.c:391
#, c-format
msgid "%u Available DHCP subnet: %s/%s"
msgstr "%u Dostêpna podsieæ DHCP: %s/%s"
-#: rfc2131.c:355
+#: rfc2131.c:394
#, c-format
msgid "%u Available DHCP range: %s -- %s"
msgstr "%u zakres adresów na u¿ytek DHCP: %s -- %s"
-#: rfc2131.c:384
+#: rfc2131.c:423
msgid "disabled"
msgstr "wy³±czony(a)"
-#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+#: rfc2131.c:457 rfc2131.c:928 rfc2131.c:1277
msgid "ignored"
msgstr "ignorujê"
-#: rfc2131.c:433 rfc2131.c:1100
+#: rfc2131.c:472 rfc2131.c:1145
msgid "address in use"
msgstr "adres jest w u¿yciu"
-#: rfc2131.c:447 rfc2131.c:937
+#: rfc2131.c:486 rfc2131.c:982
msgid "no address available"
msgstr "brak dostêpnego adresu"
-#: rfc2131.c:454 rfc2131.c:1063
+#: rfc2131.c:493 rfc2131.c:1108
msgid "wrong network"
msgstr "nieprawid³owa sieæ"
-#: rfc2131.c:467
+#: rfc2131.c:506
msgid "no address configured"
msgstr "brak skonfigurowanego adresu"
-#: rfc2131.c:473 rfc2131.c:1113
+#: rfc2131.c:512 rfc2131.c:1158
msgid "no leases left"
msgstr "brak wolnych dzier¿aw"
-#: rfc2131.c:558
+#: rfc2131.c:597
#, c-format
msgid "%u client provides name: %s"
msgstr "klient %u przedstawia siê jako %s"
-#: rfc2131.c:696
+#: rfc2131.c:741
#, c-format
msgid "%u Vendor class: %s"
msgstr "%u klasa klienta: %s"
-#: rfc2131.c:698
+#: rfc2131.c:743
#, c-format
msgid "%u User class: %s"
msgstr "%u Klasa u¿ytkownika: %s"
-#: rfc2131.c:737
+#: rfc2131.c:782
msgid "PXE BIS not supported"
msgstr "PXE BIS nie jest obs³ugiwane"
-#: rfc2131.c:853
+#: rfc2131.c:898
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "wy³±czam statyczne przypisanie adresu %s dla %s"
-#: rfc2131.c:874
+#: rfc2131.c:919
msgid "unknown lease"
msgstr "nieznana dzier¿awa"
-#: rfc2131.c:906
+#: rfc2131.c:951
#, 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:916
+#: rfc2131.c:961
#, 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:919
+#: rfc2131.c:964
#, 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:935 rfc2131.c:1106
+#: rfc2131.c:980 rfc2131.c:1151
msgid "no unique-id"
msgstr "brak unikalnego id"
-#: rfc2131.c:1003
+#: rfc2131.c:1048
msgid "wrong server-ID"
msgstr "nieprawid³owy identyfikator serwera (server-ID)"
-#: rfc2131.c:1022
+#: rfc2131.c:1067
msgid "wrong address"
msgstr "b³êdny adres"
-#: rfc2131.c:1039
+#: rfc2131.c:1084
msgid "lease not found"
msgstr "dzier¿awa nieznaleziona"
-#: rfc2131.c:1071
+#: rfc2131.c:1116
msgid "address not available"
msgstr "adres niedostêpny"
-#: rfc2131.c:1082
+#: rfc2131.c:1127
msgid "static lease available"
msgstr "dostêpna statyczna dzier¿awa"
-#: rfc2131.c:1086
+#: rfc2131.c:1131
msgid "address reserved"
msgstr "adres zarezerwowany"
-#: rfc2131.c:1094
+#: rfc2131.c:1139
#, c-format
msgid "abandoning lease to %s of %s"
msgstr "porzucam przypisanie do %s nazwy %s"
-#: rfc2131.c:1583
+#: rfc2131.c:1698
#, c-format
msgid "%u tags: %s"
msgstr "%u cechy: %s"
-#: rfc2131.c:1596
+#: rfc2131.c:1711
#, c-format
msgid "%u bootfile name: %s"
msgstr "%u nazwa pliku bootowania: %s"
-#: rfc2131.c:1605
+#: rfc2131.c:1720
#, c-format
msgid "%u server name: %s"
msgstr "%u nazwa serwera: %s"
-#: rfc2131.c:1613
+#: rfc2131.c:1728
#, c-format
msgid "%u next server: %s"
msgstr "%u nastêpny serwer: %s"
-#: rfc2131.c:1680
+#: rfc2131.c:1795
#, 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:1919
+#: rfc2131.c:2032
msgid "PXE menu too large"
msgstr "menu PXE zbyt du¿e"
-#: rfc2131.c:2034
+#: rfc2131.c:2143
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr "Nie uwzglêdniam czê¶ci domenowej (%s) dla komputera %s"
-#: rfc2131.c:2052
+#: rfc2131.c:2161
#, c-format
msgid "%u requested options: %s"
-msgstr "%u wskazane opcje: %s"
+msgstr "%u za¿±dano: %s"
+
+#: rfc2131.c:2425
+#, 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:66
#, c-format
@@ -1386,8 +1391,8 @@
#: tftp.c:282
#, c-format
-msgid "TFTP sent %s to %s"
-msgstr "plik %s przes³ano za pomoc± TFTP do %s"
+msgid "sent %s to %s"
+msgstr "plik %s przes³ano do %s"
#: tftp.c:305
#, c-format
@@ -1396,13 +1401,13 @@
#: tftp.c:416
#, c-format
-msgid "TFTP error %d %s received from %s"
-msgstr "b³±d TFTP: %d bajtów odebrano (%s) z %s"
+msgid "error %d %s received from %s"
+msgstr "b³±d %d %s odebrano od %s"
#: tftp.c:447
#, c-format
-msgid "TFTP failed sending %s to %s"
-msgstr "b³±d wysy³ania przez TFTP pliku %s do komputera %s"
+msgid "failed sending %s to %s"
+msgstr "b³±d wysy³ania pliku %s do komputera %s"
#: log.c:169
#, c-format
@@ -1414,7 +1419,7 @@
msgid "log failed: %s"
msgstr "nie uda³o siê zapisaæ komunikatów do %s"
-#: log.c:415
+#: log.c:420
msgid "FAILED to start up"
msgstr "B£¡D: nie uda³o siê uruchomiæ dnsmasq-a"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 89b8133..a380678 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -20,17 +20,17 @@
msgid "failed to load names from %s: %s"
msgstr ""
-#: cache.c:798 dhcp.c:785
+#: cache.c:798 dhcp.c:804
#, c-format
msgid "bad address at %s line %d"
msgstr ""
-#: cache.c:856 dhcp.c:801
+#: cache.c:856 dhcp.c:820
#, c-format
msgid "bad name at %s line %d"
msgstr ""
-#: cache.c:863 dhcp.c:875
+#: cache.c:863 dhcp.c:894
#, c-format
msgid "read %s - %d addresses"
msgstr ""
@@ -39,7 +39,7 @@
msgid "cleared cache"
msgstr ""
-#: cache.c:933 option.c:1055
+#: cache.c:933 option.c:1069
#, c-format
msgid "cannot access directory %s: %s"
msgstr ""
@@ -78,7 +78,7 @@
msgid "failed to allocate memory"
msgstr ""
-#: util.c:229 option.c:548
+#: util.c:229 option.c:549
msgid "could not get memory"
msgstr ""
@@ -506,294 +506,294 @@
msgid "Check configuration syntax."
msgstr ""
-#: option.c:613
+#: option.c:614
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
-#: option.c:615
+#: option.c:616
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
-#: option.c:617
+#: option.c:618
#, c-format
msgid "Valid options are:\n"
msgstr ""
-#: option.c:658
+#: option.c:659
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:735
+#: option.c:747
msgid "bad dhcp-option"
msgstr ""
-#: option.c:792
+#: option.c:804
msgid "bad IP address"
msgstr ""
-#: option.c:891
+#: option.c:903
msgid "bad domain in dhcp-option"
msgstr ""
-#: option.c:950
+#: option.c:964
msgid "dhcp-option too long"
msgstr ""
-#: option.c:959
+#: option.c:973
msgid "illegal dhcp-match"
msgstr ""
-#: option.c:995
+#: option.c:1009
msgid "illegal repeated flag"
msgstr ""
-#: option.c:1003
+#: option.c:1017
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:1086 tftp.c:359
+#: option.c:1100 tftp.c:359
#, c-format
msgid "cannot access %s: %s"
msgstr ""
-#: option.c:1131
+#: option.c:1145
msgid "only one dhcp-hostsfile allowed"
msgstr ""
-#: option.c:1138
+#: option.c:1152
msgid "only one dhcp-optsfile allowed"
msgstr ""
-#: option.c:1183
+#: option.c:1197
msgid "bad MX preference"
msgstr ""
-#: option.c:1188
+#: option.c:1202
msgid "bad MX name"
msgstr ""
-#: option.c:1202
+#: option.c:1216
msgid "bad MX target"
msgstr ""
-#: option.c:1212
+#: option.c:1226
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1214
+#: option.c:1228
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr ""
-#: option.c:1442 option.c:1446
+#: option.c:1456 option.c:1460
msgid "bad port"
msgstr ""
-#: option.c:1465 option.c:1490
+#: option.c:1479 option.c:1504
msgid "interface binding not supported"
msgstr ""
-#: option.c:1611
+#: option.c:1625
msgid "bad port range"
msgstr ""
-#: option.c:1628
+#: option.c:1642
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1669
+#: option.c:1683
msgid "bad dhcp-range"
msgstr ""
-#: option.c:1695
+#: option.c:1709
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1740
+#: option.c:1754
msgid "inconsistent DHCP range"
msgstr ""
-#: option.c:1912
+#: option.c:1926
msgid "bad DHCP host name"
msgstr ""
-#: option.c:2201 option.c:2481
+#: option.c:2221 option.c:2501
msgid "invalid port number"
msgstr ""
-#: option.c:2284
+#: option.c:2304
msgid "invalid alias range"
msgstr ""
-#: option.c:2297
+#: option.c:2317
msgid "bad interface name"
msgstr ""
-#: option.c:2322
+#: option.c:2342
msgid "bad CNAME"
msgstr ""
-#: option.c:2327
+#: option.c:2347
msgid "duplicate CNAME"
msgstr ""
-#: option.c:2347
+#: option.c:2367
msgid "bad PTR record"
msgstr ""
-#: option.c:2378
+#: option.c:2398
msgid "bad NAPTR record"
msgstr ""
-#: option.c:2403
+#: option.c:2423
msgid "TXT record string too long"
msgstr ""
-#: option.c:2451
+#: option.c:2471
msgid "bad TXT record"
msgstr ""
-#: option.c:2467
+#: option.c:2487
msgid "bad SRV record"
msgstr ""
-#: option.c:2474
+#: option.c:2494
msgid "bad SRV target"
msgstr ""
-#: option.c:2488
+#: option.c:2508
msgid "invalid priority"
msgstr ""
-#: option.c:2495
+#: option.c:2515
msgid "invalid weight"
msgstr ""
-#: option.c:2514
+#: option.c:2534
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr ""
-#: option.c:2557
+#: option.c:2577
#, c-format
msgid "files nested too deep in %s"
msgstr ""
-#: option.c:2565 tftp.c:513
+#: option.c:2585 tftp.c:513
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: option.c:2626
+#: option.c:2646
msgid "missing \""
msgstr ""
-#: option.c:2673
+#: option.c:2693
msgid "bad option"
msgstr ""
-#: option.c:2675
+#: option.c:2695
msgid "extraneous parameter"
msgstr ""
-#: option.c:2677
+#: option.c:2697
msgid "missing parameter"
msgstr ""
-#: option.c:2685
+#: option.c:2705
msgid "error"
msgstr ""
-#: option.c:2691
+#: option.c:2711
#, c-format
msgid "%s at line %d of %%s"
msgstr ""
-#: option.c:2740 option.c:2771
+#: option.c:2760 option.c:2791
#, c-format
msgid "read %s"
msgstr ""
-#: option.c:2843
+#: option.c:2863
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
-#: option.c:2844
+#: option.c:2864
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
-#: option.c:2845
+#: option.c:2865
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
-#: option.c:2846
+#: option.c:2866
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:2847
+#: option.c:2867
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr ""
-#: option.c:2858
+#: option.c:2878
msgid "try --help"
msgstr ""
-#: option.c:2860
+#: option.c:2880
msgid "try -w"
msgstr ""
-#: option.c:2863
+#: option.c:2883
#, c-format
msgid "bad command line options: %s"
msgstr ""
-#: option.c:2904
+#: option.c:2924
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
-#: option.c:2932
+#: option.c:2952
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
-#: option.c:2942
+#: option.c:2962
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
-#: option.c:2945 network.c:754 dhcp.c:734
+#: option.c:2965 network.c:777 dhcp.c:753
#, c-format
msgid "failed to read %s: %s"
msgstr ""
-#: option.c:2962
+#: option.c:2982
#, c-format
msgid "no search directive found in %s"
msgstr ""
-#: option.c:2983
+#: option.c:3003
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr ""
-#: option.c:2987
+#: option.c:3007
msgid "syntax check OK"
msgstr ""
-#: forward.c:409
+#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
msgstr ""
-#: forward.c:437
+#: forward.c:433
msgid "possible DNS-rebind attack detected"
msgstr ""
@@ -802,78 +802,78 @@
msgid "unknown interface %s in bridge-interface"
msgstr ""
-#: network.c:417 dnsmasq.c:189
+#: network.c:436 dnsmasq.c:189
#, c-format
msgid "failed to create listening socket: %s"
msgstr ""
-#: network.c:424
+#: network.c:443
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr ""
-#: network.c:450
+#: network.c:469
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr ""
-#: network.c:455
+#: network.c:474
#, c-format
msgid "failed to listen on socket: %s"
msgstr ""
-#: network.c:467
+#: network.c:486
#, c-format
msgid "failed to create TFTP socket: %s"
msgstr ""
-#: network.c:661
+#: network.c:680
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr ""
-#: network.c:694
+#: network.c:717
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
-#: network.c:705
+#: network.c:728
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr ""
-#: network.c:720
+#: network.c:743
msgid "unqualified"
msgstr ""
-#: network.c:720
+#: network.c:743
msgid "names"
msgstr ""
-#: network.c:722
+#: network.c:745
msgid "default"
msgstr ""
-#: network.c:724
+#: network.c:747
msgid "domain"
msgstr ""
-#: network.c:727
+#: network.c:750
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:729
+#: network.c:752
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:732
+#: network.c:755
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr ""
-#: network.c:734
+#: network.c:757
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
@@ -901,7 +901,7 @@
msgid "no interface with address %s"
msgstr ""
-#: dnsmasq.c:201 dnsmasq.c:665
+#: dnsmasq.c:201 dnsmasq.c:670
#, c-format
msgid "DBus error: %s"
msgstr ""
@@ -1007,75 +1007,75 @@
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:667
+#: dnsmasq.c:672
msgid "connected to system DBus"
msgstr ""
-#: dnsmasq.c:757
-#, c-format
-msgid "cannot fork into background: %s"
-msgstr ""
-
-#: dnsmasq.c:760
-#, c-format
-msgid "failed to create helper: %s"
-msgstr ""
-
-#: dnsmasq.c:763
-#, c-format
-msgid "setting capabilities failed: %s"
-msgstr ""
-
#: dnsmasq.c:767
#, c-format
+msgid "cannot fork into background: %s"
+msgstr ""
+
+#: dnsmasq.c:770
+#, c-format
+msgid "failed to create helper: %s"
+msgstr ""
+
+#: dnsmasq.c:773
+#, c-format
+msgid "setting capabilities failed: %s"
+msgstr ""
+
+#: dnsmasq.c:777
+#, c-format
msgid "failed to change user-id to %s: %s"
msgstr ""
-#: dnsmasq.c:772
+#: dnsmasq.c:782
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr ""
-#: dnsmasq.c:775
+#: dnsmasq.c:785
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr ""
-#: dnsmasq.c:778
+#: dnsmasq.c:788
#, c-format
msgid "cannot open %s: %s"
msgstr ""
-#: dnsmasq.c:833
+#: dnsmasq.c:843
#, c-format
msgid "child process killed by signal %d"
msgstr ""
-#: dnsmasq.c:837
+#: dnsmasq.c:847
#, c-format
msgid "child process exited with status %d"
msgstr ""
-#: dnsmasq.c:841
+#: dnsmasq.c:851
#, c-format
msgid "failed to execute %s: %s"
msgstr ""
-#: dnsmasq.c:885
+#: dnsmasq.c:895
msgid "exiting on receipt of SIGTERM"
msgstr ""
-#: dnsmasq.c:903
+#: dnsmasq.c:913
#, c-format
msgid "failed to access %s: %s"
msgstr ""
-#: dnsmasq.c:925
+#: dnsmasq.c:935
#, c-format
msgid "reading %s"
msgstr ""
-#: dnsmasq.c:936
+#: dnsmasq.c:946
#, c-format
msgid "no servers found in %s, will retry"
msgstr ""
@@ -1100,47 +1100,47 @@
msgid "failed to bind DHCP server socket: %s"
msgstr ""
-#: dhcp.c:90
+#: dhcp.c:103
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr ""
-#: dhcp.c:226
+#: dhcp.c:240
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr ""
-#: dhcp.c:385
+#: dhcp.c:404
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
-#: dhcp.c:772
+#: dhcp.c:791
#, c-format
msgid "bad line at %s line %d"
msgstr ""
-#: dhcp.c:815
+#: dhcp.c:834
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr ""
-#: dhcp.c:897
+#: dhcp.c:916
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
-#: dhcp.c:900
+#: dhcp.c:919
#, c-format
msgid "duplicate IP address %s in %s."
msgstr ""
-#: dhcp.c:943
+#: dhcp.c:962
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:948
+#: dhcp.c:967
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
@@ -1169,172 +1169,177 @@
msgid "failed to write %s: %s (retry in %us)"
msgstr ""
-#: rfc2131.c:336
+#: rfc2131.c:375
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr ""
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "with subnet selector"
msgstr ""
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "via"
msgstr ""
-#: rfc2131.c:352
+#: rfc2131.c:391
#, c-format
msgid "%u Available DHCP subnet: %s/%s"
msgstr ""
-#: rfc2131.c:355
+#: rfc2131.c:394
#, c-format
msgid "%u Available DHCP range: %s -- %s"
msgstr ""
-#: rfc2131.c:384
+#: rfc2131.c:423
msgid "disabled"
msgstr ""
-#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+#: rfc2131.c:457 rfc2131.c:928 rfc2131.c:1277
msgid "ignored"
msgstr ""
-#: rfc2131.c:433 rfc2131.c:1100
+#: rfc2131.c:472 rfc2131.c:1145
msgid "address in use"
msgstr ""
-#: rfc2131.c:447 rfc2131.c:937
+#: rfc2131.c:486 rfc2131.c:982
msgid "no address available"
msgstr ""
-#: rfc2131.c:454 rfc2131.c:1063
+#: rfc2131.c:493 rfc2131.c:1108
msgid "wrong network"
msgstr ""
-#: rfc2131.c:467
+#: rfc2131.c:506
msgid "no address configured"
msgstr ""
-#: rfc2131.c:473 rfc2131.c:1113
+#: rfc2131.c:512 rfc2131.c:1158
msgid "no leases left"
msgstr ""
-#: rfc2131.c:558
+#: rfc2131.c:597
#, c-format
msgid "%u client provides name: %s"
msgstr ""
-#: rfc2131.c:696
+#: rfc2131.c:741
#, c-format
msgid "%u Vendor class: %s"
msgstr ""
-#: rfc2131.c:698
+#: rfc2131.c:743
#, c-format
msgid "%u User class: %s"
msgstr ""
-#: rfc2131.c:737
+#: rfc2131.c:782
msgid "PXE BIS not supported"
msgstr ""
-#: rfc2131.c:853
+#: rfc2131.c:898
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr ""
-#: rfc2131.c:874
+#: rfc2131.c:919
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:906
+#: rfc2131.c:951
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:916
+#: rfc2131.c:961
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:919
+#: rfc2131.c:964
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:935 rfc2131.c:1106
+#: rfc2131.c:980 rfc2131.c:1151
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:1003
+#: rfc2131.c:1048
msgid "wrong server-ID"
msgstr ""
-#: rfc2131.c:1022
+#: rfc2131.c:1067
msgid "wrong address"
msgstr ""
-#: rfc2131.c:1039
+#: rfc2131.c:1084
msgid "lease not found"
msgstr ""
-#: rfc2131.c:1071
+#: rfc2131.c:1116
msgid "address not available"
msgstr ""
-#: rfc2131.c:1082
+#: rfc2131.c:1127
msgid "static lease available"
msgstr ""
-#: rfc2131.c:1086
+#: rfc2131.c:1131
msgid "address reserved"
msgstr ""
-#: rfc2131.c:1094
+#: rfc2131.c:1139
#, c-format
msgid "abandoning lease to %s of %s"
msgstr ""
-#: rfc2131.c:1583
+#: rfc2131.c:1698
#, c-format
msgid "%u tags: %s"
msgstr ""
-#: rfc2131.c:1596
+#: rfc2131.c:1711
#, c-format
msgid "%u bootfile name: %s"
msgstr ""
-#: rfc2131.c:1605
+#: rfc2131.c:1720
#, c-format
msgid "%u server name: %s"
msgstr ""
-#: rfc2131.c:1613
+#: rfc2131.c:1728
#, c-format
msgid "%u next server: %s"
msgstr ""
-#: rfc2131.c:1680
+#: rfc2131.c:1795
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:1919
+#: rfc2131.c:2032
msgid "PXE menu too large"
msgstr ""
-#: rfc2131.c:2034
+#: rfc2131.c:2143
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr ""
-#: rfc2131.c:2052
+#: rfc2131.c:2161
#, c-format
msgid "%u requested options: %s"
msgstr ""
+#: rfc2131.c:2425
+#, c-format
+msgid "cannot send RFC3925 option: too many options for enterprise number %d"
+msgstr ""
+
#: netlink.c:66
#, c-format
msgid "cannot create netlink socket: %s"
@@ -1378,7 +1383,7 @@
#: tftp.c:282
#, c-format
-msgid "TFTP sent %s to %s"
+msgid "sent %s to %s"
msgstr ""
#: tftp.c:305
@@ -1388,12 +1393,12 @@
#: tftp.c:416
#, c-format
-msgid "TFTP error %d %s received from %s"
+msgid "error %d %s received from %s"
msgstr ""
#: tftp.c:447
#, c-format
-msgid "TFTP failed sending %s to %s"
+msgid "failed sending %s to %s"
msgstr ""
#: log.c:169
@@ -1406,6 +1411,6 @@
msgid "log failed: %s"
msgstr ""
-#: log.c:415
+#: log.c:420
msgid "FAILED to start up"
msgstr ""
diff --git a/po/ro.po b/po/ro.po
index f6c2492..700c5b6 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -20,17 +20,17 @@
msgid "failed to load names from %s: %s"
msgstr "încărcarea numelor din %s: %s a eÅŸuat"
-#: cache.c:798 dhcp.c:785
+#: cache.c:798 dhcp.c:804
#, c-format
msgid "bad address at %s line %d"
msgstr "adresă greÅŸită în %s, linia %d"
-#: cache.c:856 dhcp.c:801
+#: cache.c:856 dhcp.c:820
#, c-format
msgid "bad name at %s line %d"
msgstr "nume greÅŸit în %s linia %d"
-#: cache.c:863 dhcp.c:875
+#: cache.c:863 dhcp.c:894
#, c-format
msgid "read %s - %d addresses"
msgstr "citesc %s - %d adrese"
@@ -39,7 +39,7 @@
msgid "cleared cache"
msgstr "memoria temporară a fost ştearsă"
-#: cache.c:933 option.c:1055
+#: cache.c:933 option.c:1069
#, fuzzy, c-format
msgid "cannot access directory %s: %s"
msgstr "nu pot citi %s: %s"
@@ -79,7 +79,7 @@
msgid "failed to allocate memory"
msgstr "nu pot încărca %d bytes"
-#: util.c:229 option.c:548
+#: util.c:229 option.c:549
msgid "could not get memory"
msgstr "nu am putut aloca memorie"
@@ -520,7 +520,7 @@
msgid "Check configuration syntax."
msgstr ""
-#: option.c:613
+#: option.c:614
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -529,223 +529,223 @@
"Utilizare: dnsmasq [opţiuni]\n"
"\n"
-#: option.c:615
+#: option.c:616
#, 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:617
+#: option.c:618
#, fuzzy, c-format
msgid "Valid options are:\n"
msgstr "Opţiunile valide sunt:\n"
-#: option.c:658
+#: option.c:659
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:735
+#: option.c:747
msgid "bad dhcp-option"
msgstr "dhcp-option invalid"
-#: option.c:792
+#: option.c:804
#, fuzzy
msgid "bad IP address"
msgstr "citesc %s - %d adrese"
-#: option.c:891
+#: option.c:903
msgid "bad domain in dhcp-option"
msgstr "domeniu DNS invalid în declaraÅ£ia dhcp-option"
-#: option.c:950
+#: option.c:964
msgid "dhcp-option too long"
msgstr "declararea dhcp-option este prea lungă"
-#: option.c:959
+#: option.c:973
msgid "illegal dhcp-match"
msgstr ""
-#: option.c:995
+#: option.c:1009
msgid "illegal repeated flag"
msgstr ""
-#: option.c:1003
+#: option.c:1017
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:1086 tftp.c:359
+#: option.c:1100 tftp.c:359
#, fuzzy, c-format
msgid "cannot access %s: %s"
msgstr "nu pot citi %s: %s"
-#: option.c:1131
+#: option.c:1145
msgid "only one dhcp-hostsfile allowed"
msgstr ""
-#: option.c:1138
+#: option.c:1152
msgid "only one dhcp-optsfile allowed"
msgstr ""
-#: option.c:1183
+#: option.c:1197
msgid "bad MX preference"
msgstr "preferinţă MX invalidă"
-#: option.c:1188
+#: option.c:1202
msgid "bad MX name"
msgstr "nume MX invalid"
-#: option.c:1202
+#: option.c:1216
msgid "bad MX target"
msgstr "ţintă MX invalidă"
-#: option.c:1212
+#: option.c:1226
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1214
+#: option.c:1228
msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
msgstr ""
-#: option.c:1442 option.c:1446
+#: option.c:1456 option.c:1460
msgid "bad port"
msgstr "port invalid"
-#: option.c:1465 option.c:1490
+#: option.c:1479 option.c:1504
msgid "interface binding not supported"
msgstr ""
-#: option.c:1611
+#: option.c:1625
#, fuzzy
msgid "bad port range"
msgstr "port invalid"
-#: option.c:1628
+#: option.c:1642
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1669
+#: option.c:1683
msgid "bad dhcp-range"
msgstr "dhcp-range invalid"
-#: option.c:1695
+#: option.c:1709
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1740
+#: option.c:1754
msgid "inconsistent DHCP range"
msgstr "domeniu DHCP inconsistent"
-#: option.c:1912
+#: option.c:1926
#, fuzzy
msgid "bad DHCP host name"
msgstr "nume MX invalid"
-#: option.c:2201 option.c:2481
+#: option.c:2221 option.c:2501
msgid "invalid port number"
msgstr "număr de port invalid"
-#: option.c:2284
+#: option.c:2304
#, fuzzy
msgid "invalid alias range"
msgstr "pondere invalidă"
-#: option.c:2297
+#: option.c:2317
#, fuzzy
msgid "bad interface name"
msgstr "nume MX invalid"
-#: option.c:2322
+#: option.c:2342
msgid "bad CNAME"
msgstr ""
-#: option.c:2327
+#: option.c:2347
msgid "duplicate CNAME"
msgstr ""
-#: option.c:2347
+#: option.c:2367
#, fuzzy
msgid "bad PTR record"
msgstr "înregistrare SRV invalidă"
-#: option.c:2378
+#: option.c:2398
#, fuzzy
msgid "bad NAPTR record"
msgstr "înregistrare SRV invalidă"
-#: option.c:2403
+#: option.c:2423
msgid "TXT record string too long"
msgstr "ÅŸirul de caractere pentru înregistrarea TXT este prea lung"
-#: option.c:2451
+#: option.c:2471
msgid "bad TXT record"
msgstr "înregistrare TXT invalidă"
-#: option.c:2467
+#: option.c:2487
msgid "bad SRV record"
msgstr "înregistrare SRV invalidă"
-#: option.c:2474
+#: option.c:2494
msgid "bad SRV target"
msgstr "ţintă SRV invalidă"
-#: option.c:2488
+#: option.c:2508
msgid "invalid priority"
msgstr "prioritate invalidă"
-#: option.c:2495
+#: option.c:2515
msgid "invalid weight"
msgstr "pondere invalidă"
-#: option.c:2514
+#: option.c:2534
msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
msgstr ""
-#: option.c:2557
+#: option.c:2577
#, c-format
msgid "files nested too deep in %s"
msgstr ""
-#: option.c:2565 tftp.c:513
+#: option.c:2585 tftp.c:513
#, c-format
msgid "cannot read %s: %s"
msgstr "nu pot citi %s: %s"
-#: option.c:2626
+#: option.c:2646
msgid "missing \""
msgstr "lipseÅŸte \""
-#: option.c:2673
+#: option.c:2693
msgid "bad option"
msgstr "opţiune invalidă"
-#: option.c:2675
+#: option.c:2695
msgid "extraneous parameter"
msgstr "parametru nerecunoscut"
-#: option.c:2677
+#: option.c:2697
msgid "missing parameter"
msgstr "parametru lipsa"
-#: option.c:2685
+#: option.c:2705
msgid "error"
msgstr "eroare"
-#: option.c:2691
+#: option.c:2711
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s la linia %d din %%s"
-#: option.c:2740 option.c:2771
+#: option.c:2760 option.c:2791
#, fuzzy, c-format
msgid "read %s"
msgstr "citesc %s"
-#: option.c:2843
+#: option.c:2863
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "dnsmasq versiunea %s %s\n"
-#: option.c:2844
+#: option.c:2864
#, c-format
msgid ""
"Compile time options %s\n"
@@ -754,71 +754,71 @@
"Opţiuni cu care a fost compilat %s\n"
"\n"
-#: option.c:2845
+#: option.c:2865
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Acest program vine FÄ‚RÄ‚ NICI O GARANÅ¢IE.\n"
-#: option.c:2846
+#: option.c:2866
#, 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:2847
+#: option.c:2867
#, 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:2858
+#: option.c:2878
msgid "try --help"
msgstr ""
-#: option.c:2860
+#: option.c:2880
msgid "try -w"
msgstr ""
-#: option.c:2863
+#: option.c:2883
#, fuzzy, c-format
msgid "bad command line options: %s"
msgstr "opÅ£iuni în linie de comandă invalide: %s."
-#: option.c:2904
+#: option.c:2924
#, c-format
msgid "cannot get host-name: %s"
msgstr "nu pot citi numele maÅŸinii: %s"
-#: option.c:2932
+#: option.c:2952
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:2942
+#: option.c:2962
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:2945 network.c:754 dhcp.c:734
+#: option.c:2965 network.c:777 dhcp.c:753
#, fuzzy, c-format
msgid "failed to read %s: %s"
msgstr "nu pot citi %s: %s"
-#: option.c:2962
+#: option.c:2982
#, 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:2983
+#: option.c:3003
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr ""
-#: option.c:2987
+#: option.c:3007
msgid "syntax check OK"
msgstr ""
-#: forward.c:409
+#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
msgstr "serverul DNS %s refuză interogările recursive"
-#: forward.c:437
+#: forward.c:433
msgid "possible DNS-rebind attack detected"
msgstr ""
@@ -827,78 +827,78 @@
msgid "unknown interface %s in bridge-interface"
msgstr "interfaţă necunoscută %s"
-#: network.c:417 dnsmasq.c:189
+#: network.c:436 dnsmasq.c:189
#, c-format
msgid "failed to create listening socket: %s"
msgstr "creearea socket-ului de ascultare a eÅŸuat: %s"
-#: network.c:424
+#: network.c:443
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr "configurarea opţiunilor IPv6 a eşuat pe socket-ul de ascultare: %s"
-#: network.c:450
+#: network.c:469
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "activarea socket-ului de ascultare pentru %s a eÅŸuat: %s"
-#: network.c:455
+#: network.c:474
#, c-format
msgid "failed to listen on socket: %s"
msgstr "ascultarea pe socket a eÅŸuat: %s"
-#: network.c:467
+#: network.c:486
#, fuzzy, c-format
msgid "failed to create TFTP socket: %s"
msgstr "creearea socket-ului de ascultare a eÅŸuat: %s"
-#: network.c:661
+#: network.c:680
#, 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:694
+#: network.c:717
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorăm serverul DNS %s - interfaţă locală"
-#: network.c:705
+#: network.c:728
#, 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:720
+#: network.c:743
msgid "unqualified"
msgstr "invalid"
-#: network.c:720
+#: network.c:743
msgid "names"
msgstr ""
-#: network.c:722
+#: network.c:745
msgid "default"
msgstr ""
-#: network.c:724
+#: network.c:747
msgid "domain"
msgstr "domeniu"
-#: network.c:727
+#: network.c:750
#, c-format
msgid "using local addresses only for %s %s"
msgstr "folosim adresele locale doar pentru %S %s"
-#: network.c:729
+#: network.c:752
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "folosim serverul DNS %s#%d pentru %s %s"
-#: network.c:732
+#: network.c:755
#, fuzzy, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "folosim serverul DNS %s#%d"
-#: network.c:734
+#: network.c:757
#, c-format
msgid "using nameserver %s#%d"
msgstr "folosim serverul DNS %s#%d"
@@ -927,7 +927,7 @@
msgid "no interface with address %s"
msgstr "nu exista interfaţă pentru adresa %s"
-#: dnsmasq.c:201 dnsmasq.c:665
+#: dnsmasq.c:201 dnsmasq.c:670
#, c-format
msgid "DBus error: %s"
msgstr "eroare DBus: %s"
@@ -1036,77 +1036,77 @@
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:667
+#: dnsmasq.c:672
msgid "connected to system DBus"
msgstr "magistrala sistem Dbus conectată"
-#: dnsmasq.c:757
+#: dnsmasq.c:767
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
-#: dnsmasq.c:760
+#: dnsmasq.c:770
#, fuzzy, c-format
msgid "failed to create helper: %s"
msgstr "nu pot citi %s: %s"
-#: dnsmasq.c:763
+#: dnsmasq.c:773
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
# for compatibility purposes the letters â, ă, ÅŸ, Å£ and î can be written as their look-alike correspondent.
-#: dnsmasq.c:767
+#: dnsmasq.c:777
#, 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:772
+#: dnsmasq.c:782
#, fuzzy, c-format
msgid "failed to change group-id to %s: %s"
msgstr "încărcarea numelor din %s: %s a eÅŸuat"
-#: dnsmasq.c:775
+#: dnsmasq.c:785
#, fuzzy, c-format
msgid "failed to open pidfile %s: %s"
msgstr "nu pot citi %s: %s"
-#: dnsmasq.c:778
+#: dnsmasq.c:788
#, fuzzy, c-format
msgid "cannot open %s: %s"
msgstr "nu pot deschide %s:%s"
-#: dnsmasq.c:833
+#: dnsmasq.c:843
#, c-format
msgid "child process killed by signal %d"
msgstr ""
-#: dnsmasq.c:837
+#: dnsmasq.c:847
#, c-format
msgid "child process exited with status %d"
msgstr ""
-#: dnsmasq.c:841
+#: dnsmasq.c:851
#, fuzzy, c-format
msgid "failed to execute %s: %s"
msgstr "accesarea serverului %s a eÅŸuat: %s"
-#: dnsmasq.c:885
+#: dnsmasq.c:895
msgid "exiting on receipt of SIGTERM"
msgstr "am primit SIGTERM, am terminat"
-#: dnsmasq.c:903
+#: dnsmasq.c:913
#, fuzzy, c-format
msgid "failed to access %s: %s"
msgstr "accesarea serverului %s a eÅŸuat: %s"
-#: dnsmasq.c:925
+#: dnsmasq.c:935
#, c-format
msgid "reading %s"
msgstr "citesc %s"
-#: dnsmasq.c:936
+#: dnsmasq.c:946
#, 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"
@@ -1131,47 +1131,47 @@
msgid "failed to bind DHCP server socket: %s"
msgstr "activarea socket-ului server-ului DHCP a eÅŸuat: %s"
-#: dhcp.c:90
+#: dhcp.c:103
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "nu pot creea socket ICMP raw: %s."
-#: dhcp.c:226
+#: dhcp.c:240
#, c-format
msgid "DHCP packet received on %s which has no address"
msgstr ""
-#: dhcp.c:385
+#: dhcp.c:404
#, 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:772
+#: dhcp.c:791
#, c-format
msgid "bad line at %s line %d"
msgstr "linie invalidă în %s rândul %d"
-#: dhcp.c:815
+#: dhcp.c:834
#, c-format
msgid "ignoring %s line %d, duplicate name or IP address"
msgstr ""
-#: dhcp.c:897
+#: dhcp.c:916
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "adresă IP duplicat %s în declaraÅ£ia dhcp-config."
-#: dhcp.c:900
+#: dhcp.c:919
#, fuzzy, c-format
msgid "duplicate IP address %s in %s."
msgstr "adresă IP duplicat %s în declaraÅ£ia dhcp-config."
-#: dhcp.c:943
+#: dhcp.c:962
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:948
+#: dhcp.c:967
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "adresă IP duplicat %s (%s) în declaraÅ£ia dhcp-config."
@@ -1200,172 +1200,177 @@
msgid "failed to write %s: %s (retry in %us)"
msgstr "nu pot citi %s: %s"
-#: rfc2131.c:336
+#: rfc2131.c:375
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "nici un domeniu de adrese disponibil pentru cererea DHCP %s %s"
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "with subnet selector"
msgstr "cu selectorul de subreţea"
-#: rfc2131.c:337
+#: rfc2131.c:376
msgid "via"
msgstr "prin"
-#: rfc2131.c:352
+#: rfc2131.c:391
#, c-format
msgid "%u Available DHCP subnet: %s/%s"
msgstr ""
-#: rfc2131.c:355
+#: rfc2131.c:394
#, c-format
msgid "%u Available DHCP range: %s -- %s"
msgstr ""
-#: rfc2131.c:384
+#: rfc2131.c:423
msgid "disabled"
msgstr "dezactivat"
-#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+#: rfc2131.c:457 rfc2131.c:928 rfc2131.c:1277
msgid "ignored"
msgstr "ignorat"
-#: rfc2131.c:433 rfc2131.c:1100
+#: rfc2131.c:472 rfc2131.c:1145
msgid "address in use"
msgstr "adresa este folosită"
-#: rfc2131.c:447 rfc2131.c:937
+#: rfc2131.c:486 rfc2131.c:982
msgid "no address available"
msgstr "nici o adresă disponibilă"
-#: rfc2131.c:454 rfc2131.c:1063
+#: rfc2131.c:493 rfc2131.c:1108
msgid "wrong network"
msgstr "reţea greşită"
-#: rfc2131.c:467
+#: rfc2131.c:506
msgid "no address configured"
msgstr "adresă lipsă"
-#: rfc2131.c:473 rfc2131.c:1113
+#: rfc2131.c:512 rfc2131.c:1158
msgid "no leases left"
msgstr "nu mai am de unde să împrumut"
-#: rfc2131.c:558
+#: rfc2131.c:597
#, c-format
msgid "%u client provides name: %s"
msgstr ""
-#: rfc2131.c:696
+#: rfc2131.c:741
#, c-format
msgid "%u Vendor class: %s"
msgstr ""
-#: rfc2131.c:698
+#: rfc2131.c:743
#, c-format
msgid "%u User class: %s"
msgstr ""
-#: rfc2131.c:737
+#: rfc2131.c:782
msgid "PXE BIS not supported"
msgstr ""
-#: rfc2131.c:853
+#: rfc2131.c:898
#, fuzzy, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "dezactivăm adresele DHCP statice %s"
-#: rfc2131.c:874
+#: rfc2131.c:919
msgid "unknown lease"
msgstr "împrumut necunoscut"
-#: rfc2131.c:906
+#: rfc2131.c:951
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:916
+#: rfc2131.c:961
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:919
+#: rfc2131.c:964
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:935 rfc2131.c:1106
+#: rfc2131.c:980 rfc2131.c:1151
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:1003
+#: rfc2131.c:1048
msgid "wrong server-ID"
msgstr ""
-#: rfc2131.c:1022
+#: rfc2131.c:1067
msgid "wrong address"
msgstr "adresă greşită"
-#: rfc2131.c:1039
+#: rfc2131.c:1084
msgid "lease not found"
msgstr "împrumutul nu a fost găsit"
-#: rfc2131.c:1071
+#: rfc2131.c:1116
msgid "address not available"
msgstr "adresă indisponibilă"
-#: rfc2131.c:1082
+#: rfc2131.c:1127
msgid "static lease available"
msgstr "împrumut static este disponibil"
-#: rfc2131.c:1086
+#: rfc2131.c:1131
msgid "address reserved"
msgstr "adresă rezervată"
-#: rfc2131.c:1094
+#: rfc2131.c:1139
#, c-format
msgid "abandoning lease to %s of %s"
msgstr ""
-#: rfc2131.c:1583
+#: rfc2131.c:1698
#, c-format
msgid "%u tags: %s"
msgstr ""
-#: rfc2131.c:1596
+#: rfc2131.c:1711
#, c-format
msgid "%u bootfile name: %s"
msgstr ""
-#: rfc2131.c:1605
+#: rfc2131.c:1720
#, fuzzy, c-format
msgid "%u server name: %s"
msgstr "eroare DBus: %s"
-#: rfc2131.c:1613
+#: rfc2131.c:1728
#, fuzzy, c-format
msgid "%u next server: %s"
msgstr "eroare DBus: %s"
-#: rfc2131.c:1680
+#: rfc2131.c:1795
#, 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:1919
+#: rfc2131.c:2032
msgid "PXE menu too large"
msgstr ""
-#: rfc2131.c:2034
+#: rfc2131.c:2143
#, c-format
msgid "Ignoring domain %s for DHCP host name %s"
msgstr ""
-#: rfc2131.c:2052
+#: rfc2131.c:2161
#, fuzzy, c-format
msgid "%u requested options: %s"
msgstr "compilat cu opţiunile: %s"
+#: rfc2131.c:2425
+#, c-format
+msgid "cannot send RFC3925 option: too many options for enterprise number %d"
+msgstr ""
+
#: netlink.c:66
#, fuzzy, c-format
msgid "cannot create netlink socket: %s"
@@ -1409,7 +1414,7 @@
#: tftp.c:282
#, c-format
-msgid "TFTP sent %s to %s"
+msgid "sent %s to %s"
msgstr ""
#: tftp.c:305
@@ -1419,12 +1424,12 @@
#: tftp.c:416
#, c-format
-msgid "TFTP error %d %s received from %s"
+msgid "error %d %s received from %s"
msgstr ""
#: tftp.c:447
#, fuzzy, c-format
-msgid "TFTP failed sending %s to %s"
+msgid "failed sending %s to %s"
msgstr "nu pot citi %s: %s"
#: log.c:169
@@ -1437,7 +1442,7 @@
msgid "log failed: %s"
msgstr ""
-#: log.c:415
+#: log.c:420
msgid "FAILED to start up"
msgstr "pornirea A EÅžUAT"
diff --git a/src/bpf.c b/src/bpf.c
index abde78c..3eea7e4 100644
--- a/src/bpf.c
+++ b/src/bpf.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
diff --git a/src/cache.c b/src/cache.c
index d641ae7..c7bcaaf 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
diff --git a/src/config.h b/src/config.h
index d5d3b15..b260ca8 100644
--- a/src/config.h
+++ b/src/config.h
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
@@ -14,19 +14,19 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#define VERSION "2.51"
+#define VERSION "2.52"
#define FTABSIZ 150 /* max number of outstanding requests (default) */
#define MAX_PROCS 20 /* max no children for TCP requests */
#define CHILD_LIFETIME 150 /* secs 'till terminated (RFC1035 suggests > 120s) */
-#define EDNS_PKTSZ 1280 /* default max EDNS.0 UDP packet from RFC2671 */
+#define EDNS_PKTSZ 4096 /* default max EDNS.0 UDP packet from RFC5625 */
#define TIMEOUT 10 /* drop UDP queries after TIMEOUT seconds */
#define FORWARD_TEST 50 /* try all servers every 50 queries */
#define FORWARD_TIME 10 /* or 10 seconds */
#define RANDOM_SOCKS 64 /* max simultaneous random ports */
#define LEASE_RETRY 60 /* on error, retry writing leasefile after LEASE_RETRY seconds */
#define CACHESIZ 150 /* default cache size */
-#define MAXLEASES 150 /* maximum number of DHCP leases */
+#define MAXLEASES 1000 /* maximum number of DHCP leases */
#define PING_WAIT 3 /* wait for ping address-in-use test */
#define PING_CACHE_TIME 30 /* Ping test assumed to be valid this long. */
#define DECLINE_BACKOFF 600 /* disable DECLINEd static addresses for this long */
@@ -66,6 +66,7 @@
#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 */
@@ -242,7 +243,7 @@
#elif defined(__APPLE__)
#define HAVE_BSD_NETWORK
-#undef HAVE_GETOPT_LONG
+#define HAVE_GETOPT_LONG
#define HAVE_ARC4RANDOM
#define HAVE_SOCKADDR_SA_LEN
/* Define before sys/socket.h is included so we get socklen_t */
@@ -259,8 +260,6 @@
#define HAVE_GETOPT_LONG
#undef HAVE_ARC4RANDOM
#undef HAVE_SOCKADDR_SA_LEN
-#define _XPG4_2
-#define __EXTENSIONS__
#define ETHER_ADDR_LEN 6
#endif
diff --git a/src/dbus.c b/src/dbus.c
index 841f924..b0fae8b 100644
--- a/src/dbus.c
+++ b/src/dbus.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
@@ -390,6 +390,7 @@
}
}
+#ifdef HAVE_DHCP
void emit_dbus_signal(int action, struct dhcp_lease *lease, char *hostname)
{
DBusConnection *connection = (DBusConnection *)daemon->dbus;
@@ -432,5 +433,6 @@
dbus_message_unref(message);
}
+#endif
#endif
diff --git a/src/dhcp.c b/src/dhcp.c
index 335fc04..dcc57b1 100644
--- a/src/dhcp.c
+++ b/src/dhcp.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
@@ -27,7 +27,7 @@
static int complete_context(struct in_addr local, int if_index,
struct in_addr netmask, struct in_addr broadcast, void *vparam);
-void dhcp_init(void)
+static int make_fd(int port)
{
int fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
struct sockaddr_in saddr;
@@ -67,7 +67,7 @@
memset(&saddr, 0, sizeof(saddr));
saddr.sin_family = AF_INET;
- saddr.sin_port = htons(daemon->dhcp_server_port);
+ saddr.sin_port = htons(port);
saddr.sin_addr.s_addr = INADDR_ANY;
#ifdef HAVE_SOCKADDR_SA_LEN
saddr.sin_len = sizeof(struct sockaddr_in);
@@ -76,7 +76,20 @@
if (bind(fd, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in)))
die(_("failed to bind DHCP server socket: %s"), NULL, EC_BADNET);
- daemon->dhcpfd = fd;
+ return fd;
+}
+
+void dhcp_init(void)
+{
+#if defined(HAVE_BSD_NETWORK)
+ int oneopt = 1;
+#endif
+
+ daemon->dhcpfd = make_fd(daemon->dhcp_server_port);
+ if (daemon->enable_pxe)
+ daemon->pxefd = make_fd(PXE_PORT);
+ else
+ daemon->pxefd = -1;
#if defined(HAVE_BSD_NETWORK)
/* When we're not using capabilities, we need to do this here before
@@ -99,8 +112,9 @@
daemon->dhcp_packet.iov_base = safe_malloc(daemon->dhcp_packet.iov_len);
}
-void dhcp_packet(time_t now)
+void dhcp_packet(time_t now, int pxe_fd)
{
+ int fd = pxe_fd ? daemon->pxefd : daemon->dhcpfd;
struct dhcp_packet *mess;
struct dhcp_context *context;
struct iname *tmp;
@@ -135,7 +149,7 @@
while (1)
{
msg.msg_flags = 0;
- while ((sz = recvmsg(daemon->dhcpfd, &msg, MSG_PEEK | MSG_TRUNC)) == -1 && errno == EINTR);
+ while ((sz = recvmsg(fd, &msg, MSG_PEEK | MSG_TRUNC)) == -1 && errno == EINTR);
if (sz == -1)
return;
@@ -165,7 +179,7 @@
msg.msg_name = &dest;
msg.msg_namelen = sizeof(dest);
- while ((sz = recvmsg(daemon->dhcpfd, &msg, 0)) == -1 && errno == EINTR);
+ while ((sz = recvmsg(fd, &msg, 0)) == -1 && errno == EINTR);
if ((msg.msg_flags & MSG_TRUNC) || sz < (ssize_t)(sizeof(*mess) - sizeof(mess->options)))
return;
@@ -243,7 +257,7 @@
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);
+ now, unicast_dest, &is_inform, pxe_fd);
lease_update_file(now);
lease_update_dns();
@@ -264,7 +278,12 @@
dest.sin_len = sizeof(struct sockaddr_in);
#endif
- if (mess->giaddr.s_addr)
+ if (pxe_fd)
+ {
+ if (mess->ciaddr.s_addr != 0)
+ dest.sin_addr = mess->ciaddr;
+ }
+ else if (mess->giaddr.s_addr)
{
/* Send to BOOTP relay */
dest.sin_port = htons(daemon->dhcp_server_port);
@@ -348,10 +367,10 @@
#endif
#ifdef HAVE_SOLARIS_NETWORK
- setsockopt(daemon->dhcpfd, IPPROTO_IP, IP_BOUND_IF, &iface_index, sizeof(iface_index));
+ setsockopt(fd, IPPROTO_IP, IP_BOUND_IF, &iface_index, sizeof(iface_index));
#endif
- while(sendmsg(daemon->dhcpfd, &msg, 0) == -1 && retry_send());
+ while(sendmsg(fd, &msg, 0) == -1 && retry_send());
}
/* This is a complex routine: it gets called with each (address,netmask,broadcast) triple
diff --git a/src/dnsmasq.c b/src/dnsmasq.c
index 48e3ecf..6f70768 100644
--- a/src/dnsmasq.c
+++ b/src/dnsmasq.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
@@ -596,6 +596,11 @@
{
FD_SET(daemon->dhcpfd, &rset);
bump_maxfd(daemon->dhcpfd, &maxfd);
+ if (daemon->pxefd != -1)
+ {
+ FD_SET(daemon->pxefd, &rset);
+ bump_maxfd(daemon->pxefd, &maxfd);
+ }
}
#endif
@@ -676,8 +681,13 @@
#endif
#ifdef HAVE_DHCP
- if (daemon->dhcp && FD_ISSET(daemon->dhcpfd, &rset))
- dhcp_packet(now);
+ if (daemon->dhcp)
+ {
+ if (FD_ISSET(daemon->dhcpfd, &rset))
+ dhcp_packet(now, 0);
+ if (daemon->pxefd != -1 && FD_ISSET(daemon->pxefd, &rset))
+ dhcp_packet(now, 1);
+ }
# ifdef HAVE_SCRIPT
if (daemon->helperfd != -1 && FD_ISSET(daemon->helperfd, &wset))
diff --git a/src/dnsmasq.h b/src/dnsmasq.h
index e84ea85..209ae9a 100644
--- a/src/dnsmasq.h
+++ b/src/dnsmasq.h
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
@@ -14,7 +14,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#define COPYRIGHT "Copyright (C) 2000-2009 Simon Kelley"
+#define COPYRIGHT "Copyright (c) 2000-2010 Simon Kelley"
#ifndef NO_LARGEFILE
/* Ensure we can use files >2GB (log files may grow this big) */
@@ -28,6 +28,12 @@
# include <features.h>
#endif
+/* Need these defined early */
+#if defined(__sun) || defined(__sun__)
+# define _XPG4_2
+# define __EXTENSIONS__
+#endif
+
/* get these before config.h for IPv6 stuff... */
#include <sys/types.h>
#include <sys/socket.h>
@@ -58,7 +64,7 @@
#include <sys/stat.h>
#include <sys/ioctl.h>
#if defined(HAVE_SOLARIS_NETWORK)
-#include <sys/sockio.h>
+# include <sys/sockio.h>
#endif
#include <sys/select.h>
#include <sys/wait.h>
@@ -66,6 +72,10 @@
#include <sys/un.h>
#include <limits.h>
#include <net/if.h>
+#if defined(HAVE_SOLARIS_NETWORK) && !defined(ifr_mtu)
+/* Some solaris net/if./h omit this. */
+# define ifr_mtu ifr_ifru.ifru_metric
+#endif
#include <unistd.h>
#include <stdio.h>
#include <string.h>
@@ -411,8 +421,8 @@
int hwaddr_len, hwaddr_type;
unsigned char hwaddr[DHCP_CHADDR_MAX];
struct in_addr addr, override, giaddr;
- unsigned char *vendorclass, *userclass, *supplied_hostname;
- unsigned int vendorclass_len, userclass_len, supplied_hostname_len;
+ unsigned char *extradata;
+ unsigned int extradata_len, extradata_size;
int last_interface;
struct dhcp_lease *next;
};
@@ -482,6 +492,7 @@
#define DHOPT_VENDOR 256
#define DHOPT_HEX 512
#define DHOPT_VENDOR_MATCH 1024
+#define DHOPT_RFC3925 2048
struct dhcp_boot {
char *file, *sname;
@@ -654,9 +665,10 @@
struct randfd *rfd_save; /* " " */
pid_t tcp_pids[MAX_PROCS];
struct randfd randomsocks[RANDOM_SOCKS];
+ int v6pktinfo;
/* DHCP state */
- int dhcpfd, helperfd;
+ int dhcpfd, helperfd, pxefd;
#if defined(HAVE_LINUX_NETWORK)
int netlinkfd;
#elif defined(HAVE_BSD_NETWORK)
@@ -784,7 +796,7 @@
/* dhcp.c */
#ifdef HAVE_DHCP
void dhcp_init(void);
-void dhcp_packet(time_t now);
+void dhcp_packet(time_t now, int pxe_fd);
struct dhcp_context *address_available(struct dhcp_context *context,
struct in_addr addr,
struct dhcp_netid *netids);
@@ -832,7 +844,7 @@
/* rfc2131.c */
#ifdef HAVE_DHCP
size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
- size_t sz, time_t now, int unicast_dest, int *is_inform);
+ size_t sz, time_t now, int unicast_dest, int *is_inform, int pxe_fd);
unsigned char *extended_hwaddr(int hwtype, int hwlen, unsigned char *hwaddr,
int clid_len, unsigned char *clid, int *len_out);
#endif
@@ -866,7 +878,9 @@
char *dbus_init(void);
void check_dbus_listeners(fd_set *rset, fd_set *wset, fd_set *eset);
void set_dbus_listeners(int *maxfdp, fd_set *rset, fd_set *wset, fd_set *eset);
+# ifdef HAVE_DHCP
void emit_dbus_signal(int action, struct dhcp_lease *lease, char *hostname);
+# endif
#endif
/* helper.c */
diff --git a/src/forward.c b/src/forward.c
index 40cda1c..268bfb4 100644
--- a/src/forward.c
+++ b/src/forward.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
@@ -20,7 +20,7 @@
static struct frec *lookup_frec_by_sender(unsigned short id,
union mysockaddr *addr,
unsigned int crc);
-static unsigned short get_id(int force, unsigned short force_id, unsigned int crc);
+static unsigned short get_id(unsigned int crc);
static void free_frec(struct frec *f);
static struct randfd *allocate_rfd(int family);
@@ -86,7 +86,7 @@
pkt->ipi6_ifindex = iface; /* Need iface for IPv6 to handle link-local addrs */
pkt->ipi6_addr = source->addr.addr6;
msg.msg_controllen = cmptr->cmsg_len = CMSG_LEN(sizeof(struct in6_pktinfo));
- cmptr->cmsg_type = IPV6_PKTINFO;
+ cmptr->cmsg_type = daemon->v6pktinfo;
cmptr->cmsg_level = IPV6_LEVEL;
}
#else
@@ -242,15 +242,11 @@
if (forward)
{
- /* force unchanging id for signed packets */
- int is_sign;
- find_pseudoheader(header, plen, NULL, NULL, &is_sign);
-
forward->source = *udpaddr;
forward->dest = *dst_addr;
forward->iface = dst_iface;
forward->orig_id = ntohs(header->id);
- forward->new_id = get_id(is_sign, forward->orig_id, crc);
+ forward->new_id = get_id(crc);
forward->fd = udpfd;
forward->crc = crc;
forward->forwardall = 0;
@@ -661,7 +657,7 @@
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 == IPV6_PKTINFO)
+ if (cmptr->cmsg_level == IPV6_LEVEL && cmptr->cmsg_type == daemon->v6pktinfo)
{
dst_addr.addr.addr6 = ((struct in6_pktinfo *)CMSG_DATA(cmptr))->ipi6_addr;
if_index =((struct in6_pktinfo *)CMSG_DATA(cmptr))->ipi6_ifindex;
@@ -1066,22 +1062,12 @@
daemon->srv_save = NULL;
}
-/* return unique random ids.
- For signed packets we can't change the ID without breaking the
- signing, so we keep the same one. In this case force is set, and this
- routine degenerates into killing any conflicting forward record. */
-static unsigned short get_id(int force, unsigned short force_id, unsigned int crc)
+/* return unique random ids. */
+static unsigned short get_id(unsigned int crc)
{
unsigned short ret = 0;
- if (force)
- {
- struct frec *f = lookup_frec(force_id, crc);
- if (f)
- free_frec(f); /* free */
- ret = force_id;
- }
- else do
+ do
ret = rand16();
while (lookup_frec(ret, crc));
diff --git a/src/helper.c b/src/helper.c
index b992e78..b131501 100644
--- a/src/helper.c
+++ b/src/helper.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
@@ -31,11 +31,12 @@
#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);
struct script_data
{
unsigned char action, hwaddr_len, hwaddr_type;
- unsigned char clid_len, hostname_len, uclass_len, vclass_len, shost_len;
+ unsigned char clid_len, hostname_len, ed_len;
struct in_addr addr, giaddr;
unsigned int remaining_time;
#ifdef HAVE_BROKEN_RTC
@@ -112,6 +113,7 @@
struct script_data data;
char *p, *action_str, *hostname = NULL;
unsigned char *buf = (unsigned char *)daemon->namebuff;
+ unsigned char *end, *alloc_buff = NULL;
int err = 0;
/* we read zero bytes when pipe closed: this is our signal to exit */
@@ -138,8 +140,8 @@
p += sprintf(p, ":");
}
- /* and CLID into packet */
- if (!read_write(pipefd[0], buf, data.clid_len, 1))
+ /* 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))
continue;
for (p = daemon->packet, i = 0; i < data.clid_len; i++)
{
@@ -150,18 +152,25 @@
/* and expiry or length into dhcp_buff2 */
#ifdef HAVE_BROKEN_RTC
- sprintf(daemon->dhcp_buff2, "%u ", data.length);
+ sprintf(daemon->dhcp_buff2, "%u", data.length);
#else
- sprintf(daemon->dhcp_buff2, "%lu ", (unsigned long)data.expires);
+ 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) > 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.uclass_len + data.vclass_len + data.shost_len, 1))
+ data.hostname_len + data.ed_len, 1))
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;
@@ -204,51 +213,6 @@
my_setenv("DNSMASQ_LEASE_EXPIRES", daemon->dhcp_buff2, &err);
#endif
- if (data.vclass_len != 0)
- {
- buf[data.vclass_len - 1] = 0; /* don't trust zero-term */
- /* cannot have = chars in env - truncate if found . */
- if ((p = strchr((char *)buf, '=')))
- *p = 0;
- my_setenv("DNSMASQ_VENDOR_CLASS", (char *)buf, &err);
- buf += data.vclass_len;
- }
-
- if (data.uclass_len != 0)
- {
- unsigned char *end = buf + data.uclass_len;
- buf[data.uclass_len - 1] = 0; /* don't trust zero-term */
-
- for (i = 0; buf < end;)
- {
- size_t len = strlen((char *)buf) + 1;
- if ((p = strchr((char *)buf, '=')))
- *p = 0;
- if (strlen((char *)buf) != 0)
- {
- sprintf(daemon->dhcp_buff2, "DNSMASQ_USER_CLASS%i", i++);
- my_setenv(daemon->dhcp_buff2, (char *)buf, &err);
- }
- buf += len;
- }
- }
-
- if (data.shost_len != 0)
- {
- buf[data.shost_len - 1] = 0; /* don't trust zero-term */
- /* cannot have = chars in env - truncate if found . */
- if ((p = strchr((char *)buf, '=')))
- *p = 0;
- my_setenv("DNSMASQ_SUPPLIED_HOSTNAME", (char *)buf, &err);
- buf += data.shost_len;
- }
-
- if (data.giaddr.s_addr != 0)
- my_setenv("DNSMASQ_RELAY_ADDRESS", inet_ntoa(data.giaddr), &err);
-
- sprintf(daemon->dhcp_buff2, "%u ", data.remaining_time);
- my_setenv("DNSMASQ_TIME_REMAINING", daemon->dhcp_buff2, &err);
-
if (data.hostname_len != 0)
{
char *dot;
@@ -260,8 +224,29 @@
{
my_setenv("DNSMASQ_DOMAIN", dot+1, &err);
*dot = 0;
- }
+ }
+ buf += data.hostname_len;
}
+
+ end = buf + data.ed_len;
+ 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);
+ buf = grab_extradata(buf, end, "DNSMASQ_CPEWAN_SERIAL", &err);
+ buf = grab_extradata(buf, end, "DNSMASQ_CPEWAN_CLASS", &err);
+ buf = grab_extradata(buf, end, "DNSMASQ_TAGS", &err);
+
+ for (i = 0; buf; i++)
+ {
+ sprintf(daemon->dhcp_buff2, "DNSMASQ_USER_CLASS%i", i);
+ buf = grab_extradata(buf, end, daemon->dhcp_buff2, &err);
+ }
+
+ if (data.giaddr.s_addr != 0)
+ my_setenv("DNSMASQ_RELAY_ADDRESS", inet_ntoa(data.giaddr), &err);
+
+ sprintf(daemon->dhcp_buff2, "%u", data.remaining_time);
+ my_setenv("DNSMASQ_TIME_REMAINING", daemon->dhcp_buff2, &err);
if (data.action == ACTION_OLD_HOSTNAME && hostname)
{
@@ -294,30 +279,48 @@
*error = errno;
}
+static unsigned char *grab_extradata(unsigned char *buf, unsigned char *end, char *env, int *err)
+{
+ unsigned char *next;
+
+ if (!buf || (buf == end))
+ return NULL;
+
+ for (next = buf; *next != 0; next++)
+ if (next == end)
+ return NULL;
+
+ if (next != buf)
+ {
+ char *p;
+ /* No "=" in value */
+ if ((p = strchr((char *)buf, '=')))
+ *p = 0;
+ my_setenv(env, (char *)buf, err);
+ }
+
+ return next + 1;
+}
+
/* pack up lease data into a buffer */
void queue_script(int action, struct dhcp_lease *lease, char *hostname, time_t now)
{
unsigned char *p;
size_t size;
- unsigned int hostname_len = 0, clid_len = 0, vclass_len = 0;
- unsigned int uclass_len = 0, shost_len = 0;
+ unsigned int hostname_len = 0, clid_len = 0, ed_len = 0;
/* no script */
if (daemon->helperfd == -1)
return;
- if (lease->vendorclass)
- vclass_len = lease->vendorclass_len;
- if (lease->userclass)
- uclass_len = lease->userclass_len;
- if (lease->supplied_hostname)
- shost_len = lease->supplied_hostname_len;
+ if (lease->extradata)
+ ed_len = lease->extradata_len;
if (lease->clid)
clid_len = lease->clid_len;
if (hostname)
hostname_len = strlen(hostname) + 1;
- size = sizeof(struct script_data) + clid_len + vclass_len + uclass_len + shost_len + hostname_len;
+ size = sizeof(struct script_data) + clid_len + ed_len + hostname_len;
if (size > buf_size)
{
@@ -339,26 +342,13 @@
buf->hwaddr_len = lease->hwaddr_len;
buf->hwaddr_type = lease->hwaddr_type;
buf->clid_len = clid_len;
- buf->vclass_len = vclass_len;
- buf->uclass_len = uclass_len;
- buf->shost_len = shost_len;
+ buf->ed_len = ed_len;
buf->hostname_len = hostname_len;
buf->addr = lease->addr;
buf->giaddr = lease->giaddr;
memcpy(buf->hwaddr, lease->hwaddr, lease->hwaddr_len);
- buf->interface[0] = 0;
-#ifdef HAVE_LINUX_NETWORK
- if (lease->last_interface != 0)
- {
- struct ifreq ifr;
- ifr.ifr_ifindex = lease->last_interface;
- if (ioctl(daemon->dhcpfd, SIOCGIFNAME, &ifr) != -1)
- strncpy(buf->interface, ifr.ifr_name, IF_NAMESIZE);
- }
-#else
- if (lease->last_interface != 0)
- if_indextoname(lease->last_interface, buf->interface);
-#endif
+ if (!indextoname(daemon->dhcpfd, lease->last_interface, buf->interface))
+ buf->interface[0] = 0;
#ifdef HAVE_BROKEN_RTC
buf->length = lease->length;
@@ -373,27 +363,16 @@
memcpy(p, lease->clid, clid_len);
p += clid_len;
}
- if (vclass_len != 0)
- {
- memcpy(p, lease->vendorclass, vclass_len);
- p += vclass_len;
- }
- if (uclass_len != 0)
- {
- memcpy(p, lease->userclass, uclass_len);
- p += uclass_len;
- }
- if (shost_len != 0)
- {
- memcpy(p, lease->supplied_hostname, shost_len);
- p += shost_len;
- }
if (hostname_len != 0)
{
memcpy(p, hostname, hostname_len);
p += hostname_len;
}
-
+ if (ed_len != 0)
+ {
+ memcpy(p, lease->extradata, ed_len);
+ p += ed_len;
+ }
bytes_in_buf = p - (unsigned char *)buf;
}
diff --git a/src/lease.c b/src/lease.c
index c021d15..d312dce 100644
--- a/src/lease.c
+++ b/src/lease.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
@@ -564,9 +564,7 @@
free(lease->old_hostname);
free(lease->clid);
- free(lease->vendorclass);
- free(lease->userclass);
- free(lease->supplied_hostname);
+ free(lease->extradata);
free(lease);
return 1;
@@ -599,16 +597,10 @@
#endif
lease->new = lease->changed = lease->aux_changed = 0;
- /* these are used for the "add" call, then junked, since they're not in the database */
- free(lease->vendorclass);
- lease->vendorclass = NULL;
+ /* this is used for the "add" call, then junked, since they're not in the database */
+ free(lease->extradata);
+ lease->extradata = NULL;
- free(lease->userclass);
- lease->userclass = NULL;
-
- free(lease->supplied_hostname);
- lease->supplied_hostname = NULL;
-
return 1;
}
diff --git a/src/log.c b/src/log.c
index 7ec491d..7f2e2e3 100644
--- a/src/log.c
+++ b/src/log.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
@@ -267,8 +267,13 @@
else if ((LOG_FACMASK & priority) == MS_DHCP)
func = "-dhcp";
+#ifdef LOG_PRI
priority = LOG_PRI(priority);
-
+#else
+ /* Solaris doesn't have LOG_PRI */
+ priority &= LOG_PRIMASK;
+#endif
+
if (log_stderr)
{
fprintf(stderr, "dnsmasq%s: ", func);
diff --git a/src/netlink.c b/src/netlink.c
index 77c4385..1f247d8 100644
--- a/src/netlink.c
+++ b/src/netlink.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
diff --git a/src/network.c b/src/network.c
index 68113fb..6e148de 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
@@ -294,16 +294,35 @@
setsockopt(tcpfd, IPV6_LEVEL, IPV6_V6ONLY, &opt, sizeof(opt)) == -1 ||
!fix_fd(fd) ||
!fix_fd(tcpfd) ||
-#ifdef IPV6_RECVPKTINFO
- setsockopt(fd, IPV6_LEVEL, IPV6_RECVPKTINFO, &opt, sizeof(opt)) == -1 ||
-#else
- setsockopt(fd, IPV6_LEVEL, IPV6_PKTINFO, &opt, sizeof(opt)) == -1 ||
-#endif
bind(tcpfd, (struct sockaddr *)&addr, sa_len(&addr)) == -1 ||
listen(tcpfd, 5) == -1 ||
bind(fd, (struct sockaddr *)&addr, sa_len(&addr)) == -1)
return 0;
-
+
+ /* 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
+ return 0;
+ }
+# else
+ if (setsockopt(fd, IPV6_LEVEL, IPV6_RECVPKTINFO, &opt, sizeof(opt)) == -1)
+ return 0;
+# endif
+#else
+ if (setsockopt(fd, IPV6_LEVEL, IPV6_PKTINFO, &opt, sizeof(opt)) == -1)
+ return 0;
+#endif
+
l = safe_malloc(sizeof(struct listener));
l->fd = fd;
l->tcpfd = tcpfd;
@@ -553,7 +572,7 @@
#if defined(SO_BINDTODEVICE)
if (intname[0] != 0 &&
- setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, intname, strlen(intname)) == -1)
+ setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, intname, IF_NAMESIZE) == -1)
return 0;
#endif
@@ -652,7 +671,7 @@
errno != 0 &&
(daemon->options & OPT_NOWILD))
{
- prettyprint_addr(&srv->addr, daemon->namebuff);
+ prettyprint_addr(&srv->source_addr, daemon->namebuff);
if (srv->interface[0] != 0)
{
strcat(daemon->namebuff, " ");
@@ -670,6 +689,10 @@
struct server *new, *tmp, *ret = NULL;
int port = 0;
+ /* interface may be new since startup */
+ if (!(daemon->options & OPT_NOWILD))
+ enumerate_interfaces();
+
for (new = daemon->servers; new; new = tmp)
{
tmp = new->next;
diff --git a/src/option.c b/src/option.c
index abea37e..ac06b00 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
@@ -406,6 +406,7 @@
{ "domain-search", 119, 0 },
{ "sip-server", 120, 0 },
{ "classless-static-route", 121, 0 },
+ { "vendor-id-encap", 125, 0 },
{ "server-ip-address", 255, OT_ADDR_LIST }, /* special, internal only, sets siaddr */
{ NULL, 0, 0 }
};
@@ -716,6 +717,16 @@
new->u.encap = atoi(arg+6);
new->flags |= DHOPT_ENCAPSULATE;
}
+ else if (strstr(arg, "vi-encap:") == arg)
+ {
+ new->u.encap = atoi(arg+9);
+ new->flags |= DHOPT_RFC3925;
+ if (flags == DHOPT_MATCH)
+ {
+ new->opt = 1; /* avoid error below */
+ break;
+ }
+ }
else
{
new->netid = opt_malloc(sizeof (struct dhcp_netid));
@@ -731,6 +742,7 @@
arg = comma;
}
+ /* option may be missing with rfc3925 match */
if (new->opt == 0)
problem = _("bad dhcp-option");
else if (comma)
@@ -835,7 +847,7 @@
new->val = op = opt_malloc((5 * addrs) + 1);
new->flags |= DHOPT_ADDR;
- if (!(new->flags & DHOPT_ENCAPSULATE) && new->opt == 120)
+ if (!(new->flags & (DHOPT_ENCAPSULATE | DHOPT_VENDOR | DHOPT_RFC3925)) && new->opt == 120)
{
*(op++) = 1; /* RFC 3361 "enc byte" */
new->flags &= ~DHOPT_ADDR;
@@ -872,7 +884,7 @@
else if (is_string)
{
/* text arg */
- if ((new->opt == 119 || new->opt == 120) && !(new->flags & DHOPT_ENCAPSULATE))
+ if ((new->opt == 119 || new->opt == 120) && !(new->flags & (DHOPT_ENCAPSULATE | DHOPT_VENDOR | DHOPT_RFC3925)))
{
/* dns search, RFC 3397, or SIP, RFC 3361 */
unsigned char *q, *r, *tail;
@@ -946,7 +958,9 @@
}
}
- if ((new->len > 255) || (new->len > 253 && (new->flags & (DHOPT_VENDOR | DHOPT_ENCAPSULATE))))
+ if ((new->len > 255) ||
+ (new->len > 253 && (new->flags & (DHOPT_VENDOR | DHOPT_ENCAPSULATE))) ||
+ (new->len > 250 && (new->flags & DHOPT_RFC3925)))
problem = _("dhcp-option too long");
if (!problem)
@@ -1460,7 +1474,7 @@
{
#if defined(SO_BINDTODEVICE)
newlist->source_addr.in.sin_addr.s_addr = INADDR_ANY;
- strncpy(newlist->interface, source, IF_NAMESIZE);
+ strncpy(newlist->interface, source, IF_NAMESIZE - 1);
#else
problem = _("interface binding not supported");
#endif
@@ -1485,7 +1499,7 @@
{
#if defined(SO_BINDTODEVICE)
newlist->source_addr.in6.sin6_addr = in6addr_any;
- strncpy(newlist->interface, source, IF_NAMESIZE);
+ strncpy(newlist->interface, source, IF_NAMESIZE - 1);
#else
problem = _("interface binding not supported");
#endif
@@ -1623,13 +1637,13 @@
case LOPT_BRIDGE: /* --bridge-interface */
{
struct dhcp_bridge *new = opt_malloc(sizeof(struct dhcp_bridge));
- if (!(comma = split(arg)))
+ if (!(comma = split(arg)) || strlen(arg) > IF_NAMESIZE - 1 )
{
problem = _("bad bridge-interface");
break;
}
- strncpy(new->iface, arg, IF_NAMESIZE);
+ strcpy(new->iface, arg);
new->alias = NULL;
new->next = daemon->bridges;
daemon->bridges = new;
@@ -1637,12 +1651,12 @@
do {
arg = comma;
comma = split(arg);
- if (strlen(arg) != 0)
+ if (strlen(arg) != 0 && strlen(arg) <= IF_NAMESIZE - 1)
{
struct dhcp_bridge *b = opt_malloc(sizeof(struct dhcp_bridge));
b->next = new->alias;
new->alias = b;
- strncpy(b->iface, arg, IF_NAMESIZE);
+ strcpy(b->iface, arg);
}
} while (comma);
@@ -2067,7 +2081,12 @@
new->CSA = i;
new->menu = opt_string_alloc(arg);
- if (comma)
+ if (!comma)
+ {
+ new->type = 0; /* local boot */
+ new->basename = NULL;
+ }
+ else
{
arg = comma;
comma = split(arg);
@@ -2084,21 +2103,22 @@
if (comma && (new->server.s_addr = inet_addr(comma)) == (in_addr_t)-1)
option = '?';
-
- /* Order matters */
- new->next = NULL;
- if (!daemon->pxe_services)
- daemon->pxe_services = new;
- else
- {
- struct pxe_service *s;
- for (s = daemon->pxe_services; s->next; s = s->next);
- s->next = new;
- }
-
- daemon->enable_pxe = 1;
- break;
}
+
+ /* Order matters */
+ new->next = NULL;
+ if (!daemon->pxe_services)
+ daemon->pxe_services = new;
+ else
+ {
+ struct pxe_service *s;
+ for (s = daemon->pxe_services; s->next; s = s->next);
+ s->next = new;
+ }
+
+ daemon->enable_pxe = 1;
+ break;
+
}
}
diff --git a/src/rfc1035.c b/src/rfc1035.c
index ca5ceba..ae645a8 100644
--- a/src/rfc1035.c
+++ b/src/rfc1035.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
@@ -1327,18 +1327,41 @@
if (qtype != type && qtype != T_ANY)
continue;
- /* Check for "A for A" queries */
- if (qtype == T_A && (addr.addr.addr4.s_addr = inet_addr(name)) != (in_addr_t) -1)
+ /* Check for "A for A" queries; be rather conservative
+ about what looks like dotted-quad. */
+ if (qtype == T_A)
{
- ans = 1;
- if (!dryrun)
+ char *cp;
+ unsigned int i, a;
+ int x;
+
+ for (cp = name, i = 0, a = 0; *cp; i++)
{
- log_query(F_FORWARD | F_CONFIG | F_IPV4, name, &addr, NULL);
- if (add_resource_record(header, limit, &trunc, nameoffset, &ansp,
- daemon->local_ttl, NULL, type, C_IN, "4", &addr))
- anscount++;
+ if (!isdigit(*cp) || (x = strtol(cp, &cp, 10)) > 255)
+ {
+ i = 5;
+ break;
+ }
+
+ a = (a << 8) + x;
+
+ if (*cp == '.')
+ cp++;
}
- continue;
+
+ if (i == 4)
+ {
+ ans = 1;
+ if (!dryrun)
+ {
+ addr.addr.addr4.s_addr = htonl(a);
+ log_query(F_FORWARD | F_CONFIG | F_IPV4, name, &addr, NULL);
+ if (add_resource_record(header, limit, &trunc, nameoffset, &ansp,
+ daemon->local_ttl, NULL, type, C_IN, "4", &addr))
+ anscount++;
+ }
+ continue;
+ }
}
/* interface name stuff */
diff --git a/src/rfc2131.c b/src/rfc2131.c
index 1ec1bcf..ae7b212 100644
--- a/src/rfc2131.c
+++ b/src/rfc2131.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
@@ -54,6 +54,8 @@
#define OPTION_ARCH 93
#define OPTION_PXE_UUID 97
#define OPTION_SUBNET_SELECT 118
+#define OPTION_VENDOR_IDENT 124
+#define OPTION_VENDOR_IDENT_OPT 125
#define OPTION_END 255
#define SUBOPT_CIRCUIT_ID 1
@@ -77,10 +79,17 @@
#define DHCPRELEASE 7
#define DHCPINFORM 8
+#define BRDBAND_FORUM_IANA 3561 /* Broadband forum IANA enterprise */
+
#define have_config(config, mask) ((config) && ((config)->flags & (mask)))
#define option_len(opt) ((int)(((unsigned char *)(opt))[1]))
#define option_ptr(opt, i) ((void *)&(((unsigned char *)(opt))[2u+(unsigned int)(i)]))
+#ifdef HAVE_SCRIPT
+static void add_extradata_data(struct dhcp_lease *lease, unsigned char *data, size_t len, int delim);
+static void add_extradata_opt(struct dhcp_lease *lease, unsigned char *opt);
+#endif
+static int match_bytes(struct dhcp_opt *o, unsigned char *p, int len);
static int sanitise(unsigned char *opt, char *buf);
static struct in_addr server_id(struct dhcp_context *context, struct in_addr override, struct in_addr fallback);
static unsigned int calc_time(struct dhcp_context *context, struct dhcp_config *config, unsigned char *opt);
@@ -114,12 +123,12 @@
static void do_encap_opts(struct dhcp_opt *opts, int encap, int flag, struct dhcp_packet *mess, unsigned char *end, int null_term);
static void pxe_misc(struct dhcp_packet *mess, unsigned char *end, unsigned char *uuid);
static int prune_vendor_opts(struct dhcp_netid *netid);
-static struct dhcp_opt *pxe_opts(int pxe_arch, struct dhcp_netid *netid);
+static struct dhcp_opt *pxe_opts(int pxe_arch, struct dhcp_netid *netid, struct in_addr local);
struct dhcp_boot *find_boot(struct dhcp_netid *netid);
size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
- size_t sz, time_t now, int unicast_dest, int *is_inform)
+ size_t sz, time_t now, int unicast_dest, int *is_inform, int pxe)
{
unsigned char *opt, *clid = NULL;
struct dhcp_lease *ltmp, *lease = NULL;
@@ -144,9 +153,10 @@
unsigned char *agent_id = NULL, *uuid = NULL;
unsigned char *emac = NULL;
int emac_len = 0;
- struct dhcp_netid known_id, iface_id;
+ struct dhcp_netid known_id, iface_id, cpewan_id;
struct dhcp_opt *o;
unsigned char pxe_uuid[17];
+ unsigned char *oui = NULL, *serial = NULL, *class = NULL;
subnet_addr.s_addr = override.s_addr = 0;
@@ -194,6 +204,35 @@
if ((option_find(mess, sz, OPTION_REQUESTED_IP, INADDRSZ) || mess_type == DHCPDISCOVER))
mess->ciaddr.s_addr = 0;
+ /* search for device identity from CPEWAN devices, we pass this through to the script */
+ if ((opt = option_find(mess, sz, OPTION_VENDOR_IDENT_OPT, 5)))
+ {
+ unsigned int elen, offset, len = option_len(opt);
+
+ for (offset = 0; offset < (len - 5); offset += elen + 5)
+ {
+ elen = option_uint(opt, offset + 4 , 1);
+ if (option_uint(opt, offset, 4) == BRDBAND_FORUM_IANA)
+ {
+ unsigned char *x = option_ptr(opt, offset + 5);
+ unsigned char *y = option_ptr(opt, offset + elen + 5);
+ oui = option_find1(x, y, 1, 1);
+ serial = option_find1(x, y, 2, 1);
+ class = option_find1(x, y, 3, 1);
+
+ /* If TR069-id is present set the tag "cpewan-id" to facilitate echoing
+ the gateway id back. Note that the device class is optional */
+ if (oui && serial)
+ {
+ cpewan_id.net = "cpewan-id";
+ cpewan_id.next = netid;
+ netid = &cpewan_id;
+ }
+ break;
+ }
+ }
+ }
+
if ((opt = option_find(mess, sz, OPTION_AGENT_ID, 1)))
{
/* Any agent-id needs to be copied back out, verbatim, as the last option
@@ -370,7 +409,7 @@
netid = &known_id;
}
- if (mess_type == 0)
+ if (mess_type == 0 && !pxe)
{
/* BOOTP request */
struct dhcp_netid id, bootp_id;
@@ -601,38 +640,44 @@
/* dhcp-match. If we have hex-and-wildcards, look for a left-anchored match.
Otherwise assume the option is an array, and look for a matching element.
- If no data given, existance of the option is enough. */
+ If no data given, existance of the option is enough. This code handles
+ rfc3925 V-I classes too. */
for (o = daemon->dhcp_match; o; o = o->next)
{
- int i, matched = 0;
-
- if (!(opt = option_find(mess, sz, o->opt, 1)) ||
- o->len > option_len(opt))
- continue;
-
- if (o->len == 0)
- matched = 1;
- else if (o->flags & DHOPT_HEX)
- {
- if (memcmp_masked(o->val, option_ptr(opt, 0), o->len, o->u.wildcard_mask))
- matched = 1;
- }
- else
- for (i = 0; i <= (option_len(opt) - o->len); )
- {
- if (memcmp(o->val, option_ptr(opt, i), o->len) == 0)
- {
- matched = 1;
- break;
- }
+ unsigned int len, elen, match = 0;
+ size_t offset, o2;
- if (o->flags & DHOPT_STRING)
- i++;
- else
- i += o->len;
- }
-
- if (matched)
+ if (o->flags & DHOPT_RFC3925)
+ {
+ if (!(opt = option_find(mess, sz, OPTION_VENDOR_IDENT, 5)))
+ continue;
+
+ for (offset = 0; offset < (option_len(opt) - 5u); offset += len + 5)
+ {
+ len = option_uint(opt, offset + 4 , 1);
+ /* Need to take care that bad data can't run us off the end of the packet */
+ if ((offset + len + 5 <= (option_len(opt))) &&
+ (option_uint(opt, offset, 4) == (unsigned int)o->u.encap))
+ for (o2 = offset + 5; o2 < offset + len + 5; o2 += elen + 1)
+ {
+ elen = option_uint(opt, o2, 1);
+ if ((o2 + elen + 1 <= option_len(opt)) &&
+ (match = match_bytes(o, option_ptr(opt, o2 + 1), elen)))
+ break;
+ }
+ if (match)
+ break;
+ }
+ }
+ else
+ {
+ if (!(opt = option_find(mess, sz, o->opt, 1)))
+ continue;
+
+ match = match_bytes(o, option_ptr(opt, 0), option_len(opt));
+ }
+
+ if (match)
{
o->netid->next = netid;
netid = o->netid;
@@ -778,8 +823,8 @@
{
pxearch = option_uint(opt, 0, 2);
- /* proxy DHCP here. The DHCPREQUEST stuff is for gPXE */
- if ((mess_type == DHCPDISCOVER || mess_type == DHCPREQUEST) &&
+ /* proxy DHCP here. */
+ if ((mess_type == DHCPDISCOVER || (pxe && mess_type == DHCPREQUEST)) &&
(context->flags & CONTEXT_PROXY))
{
struct dhcp_boot *boot = find_boot(netid);
@@ -809,16 +854,16 @@
option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ, htonl(context->local.s_addr));
pxe_misc(mess, end, uuid);
prune_vendor_opts(netid);
- do_encap_opts(pxe_opts(pxearch, netid), OPTION_VENDOR_CLASS_OPT, DHOPT_VENDOR_MATCH, mess, end, 0);
+ do_encap_opts(pxe_opts(pxearch, netid, context->local), OPTION_VENDOR_CLASS_OPT, DHOPT_VENDOR_MATCH, mess, end, 0);
- log_packet("PXE", NULL, emac, emac_len, iface_name, ignore ? "proxy" : "proxy-ignored", mess->xid);
+ log_packet("PXE", NULL, emac, emac_len, iface_name, ignore ? "proxy-ignored" : "proxy", mess->xid);
return ignore ? 0 : dhcp_packet_size(mess, netid, agent_id, real_end);
}
}
}
/* if we're just a proxy server, go no further */
- if (context->flags & CONTEXT_PROXY)
+ if ((context->flags & CONTEXT_PROXY) || pxe)
return 0;
if ((opt = option_find(mess, sz, OPTION_REQUESTED_OPTIONS, 0)))
@@ -1135,13 +1180,37 @@
}
else
{
- if (do_classes)
+ if (context->netid.net)
+ {
+ context->netid.next = netid;
+ netid = &context->netid;
+ }
+
+#ifdef HAVE_SCRIPT
+ if (do_classes && daemon->lease_change_command)
{
+ struct dhcp_netid *n;
+
if (mess->giaddr.s_addr)
lease->giaddr = mess->giaddr;
lease->changed = 1;
- /* copy user-class and vendor class into new lease, for the script */
+ free(lease->extradata);
+ lease->extradata_size = lease->extradata_len = 0;
+
+ add_extradata_opt(lease, option_find(mess, sz, OPTION_VENDOR_ID, 1));
+ add_extradata_opt(lease, option_find(mess, sz, OPTION_HOSTNAME, 1));
+ add_extradata_opt(lease, oui);
+ add_extradata_opt(lease, serial);
+ add_extradata_opt(lease, class);
+
+ /* space-concat tag set */
+ if (!netid)
+ add_extradata_opt(lease, NULL);
+ else
+ for (n = netid; n; n = n->next)
+ add_extradata_data(lease, (unsigned char *)n->net, strlen(n->net), n->next ? ' ' : 0);
+
if ((opt = option_find(mess, sz, OPTION_USER_CLASS, 1)))
{
int len = option_len(opt);
@@ -1149,39 +1218,11 @@
/* If the user-class option started as counted strings, the first byte will be zero. */
if (len != 0 && ucp[0] == 0)
ucp++, len--;
- free(lease->userclass);
- if ((lease->userclass = whine_malloc(len+1)))
- {
- memcpy(lease->userclass, ucp, len);
- lease->userclass[len] = 0;
- lease->userclass_len = len+1;
- }
- }
- if ((opt = option_find(mess, sz, OPTION_VENDOR_ID, 1)))
- {
- int len = option_len(opt);
- unsigned char *ucp = option_ptr(opt, 0);
- free(lease->vendorclass);
- if ((lease->vendorclass = whine_malloc(len+1)))
- {
- memcpy(lease->vendorclass, ucp, len);
- lease->vendorclass[len] = 0;
- lease->vendorclass_len = len+1;
- }
- }
- if ((opt = option_find(mess, sz, OPTION_HOSTNAME, 1)))
- {
- int len = option_len(opt);
- unsigned char *ucp = option_ptr(opt, 0);
- free(lease->supplied_hostname);
- if ((lease->supplied_hostname = whine_malloc(len+1)))
- {
- memcpy(lease->supplied_hostname, ucp, len);
- lease->supplied_hostname[len] = 0;
- lease->supplied_hostname_len = len+1;
- }
+ add_extradata_data(lease, ucp, len, 0);
}
}
+#endif
+
if (!hostname_auth && (client_hostname = host_from_dns(mess->yiaddr)))
{
@@ -1189,12 +1230,6 @@
hostname_auth = 1;
}
- if (context->netid.net)
- {
- context->netid.next = netid;
- netid = &context->netid;
- }
-
time = calc_time(context, config, option_find(mess, sz, OPTION_LEASE_TIME, 4));
lease_set_hwaddr(lease, mess->chaddr, clid, mess->hlen, mess->htype, clid_len);
@@ -1299,6 +1334,37 @@
return 0;
}
+static int match_bytes(struct dhcp_opt *o, unsigned char *p, int len)
+{
+ int i;
+
+ if (o->len > len)
+ return 0;
+
+ if (o->len == 0)
+ return 1;
+
+ if (o->flags & DHOPT_HEX)
+ {
+ if (memcmp_masked(o->val, p, o->len, o->u.wildcard_mask))
+ return 1;
+ }
+ else
+ for (i = 0; i <= (len - o->len); )
+ {
+ if (memcmp(o->val, p + i, o->len) == 0)
+ return 1;
+
+ if (o->flags & DHOPT_STRING)
+ i++;
+ else
+ i += o->len;
+ }
+
+ return 0;
+}
+
+
/* find a good value to use as MAC address for logging and address-allocation hashing.
This is normally just the chaddr field from the DHCP packet,
but eg Firewire will have hlen == 0 and use the client-id instead.
@@ -1383,6 +1449,55 @@
return 1;
}
+#ifdef HAVE_SCRIPT
+static void add_extradata_data(struct dhcp_lease *lease, unsigned char *data, size_t len, int delim)
+{
+ if ((lease->extradata_size - lease->extradata_len) < (len + 1))
+ {
+ size_t newsz = lease->extradata_len + len + 100;
+ unsigned char *new = whine_malloc(newsz);
+
+ if (!new)
+ return;
+
+ if (lease->extradata)
+ {
+ memcpy(new, lease->extradata, lease->extradata_len);
+ free(lease->extradata);
+ }
+
+ lease->extradata = new;
+ lease->extradata_size = newsz;
+ }
+
+ if (len != 0)
+ memcpy(lease->extradata + lease->extradata_len, data, len);
+ lease->extradata[lease->extradata_len + len] = delim;
+ lease->extradata_len += len + 1;
+}
+
+static void add_extradata_opt(struct dhcp_lease *lease, unsigned char *opt)
+{
+ if (!opt)
+ add_extradata_data(lease, NULL, 0, 0);
+ else
+ {
+ size_t i, len = option_len(opt);
+ unsigned char *ucp = option_ptr(opt, 0);
+
+ /* check for embeded NULLs */
+ for (i = 0; i < len; i++)
+ if (ucp[i] == 0)
+ {
+ len = i;
+ break;
+ }
+
+ add_extradata_data(lease, ucp, len, 0);
+ }
+}
+#endif
+
static void log_packet(char *type, void *addr, unsigned char *ext_mac,
int mac_len, char *interface, char *string, u32 xid)
{
@@ -1761,7 +1876,7 @@
{
struct dhcp_opt *tmp;
for (tmp = opts; tmp; tmp = tmp->next)
- if (tmp->opt == opt && !(tmp->flags & (DHOPT_ENCAPSULATE | DHOPT_VENDOR)))
+ if (tmp->opt == opt && !(tmp->flags & (DHOPT_ENCAPSULATE | DHOPT_VENDOR | DHOPT_RFC3925)))
if (match_netid(tmp->netid, netid, netid ? 0 : 1))
return tmp;
@@ -1861,7 +1976,7 @@
return force;
}
-static struct dhcp_opt *pxe_opts(int pxe_arch, struct dhcp_netid *netid)
+static struct dhcp_opt *pxe_opts(int pxe_arch, struct dhcp_netid *netid, struct in_addr local)
{
#define NUM_OPTS 4
@@ -1869,18 +1984,16 @@
struct pxe_service *service;
static struct dhcp_opt *o, *ret;
int i, j = NUM_OPTS - 1;
+ struct in_addr boot_server;
/* We pass back references to these, hence they are declared static */
static unsigned char discovery_control;
static unsigned char fake_prompt[] = { 0, 'P', 'X', 'E' };
static struct dhcp_opt *fake_opts = NULL;
- /* We are found by broadcast, so disable multicast. It gets switched on again
- if we point to other servers and don't give a unicast address. Note that
- we don't provide our own address for services we are the boot server for because unicast
- discovery is to port 4011 and we don't listen there. If you are using proxy DHCP
- and DHCP relays, the relay will need to forward to the proxy too. */
- discovery_control = 2;
+ /* Disable multicast, since we don't support it, and broadcast
+ unless we need it */
+ discovery_control = 3;
ret = daemon->dhcp_opts;
@@ -1920,26 +2033,25 @@
return daemon->dhcp_opts;
}
- if (!service->basename)
+ boot_server = service->basename ? local : service->server;
+
+ if (boot_server.s_addr != 0)
{
- if (service->server.s_addr != 0)
- {
- if (q - (unsigned char *)daemon->dhcp_buff2 + 3 + INADDRSZ >= 253)
- goto toobig;
-
- /* Boot service with known address - give it */
- *(q++) = service->type >> 8;
- *(q++) = service->type;
- *(q++) = 1;
- /* dest misaligned */
- memcpy(q, &service->server.s_addr, INADDRSZ);
- q += INADDRSZ;
- }
- else if (service->type != 0)
- /* We're not supplying a server, so let the client multicast.
- type zero is "local boot" so no need for M/C on that. */
- discovery_control = 0;
- }
+ if (q - (unsigned char *)daemon->dhcp_buff2 + 3 + INADDRSZ >= 253)
+ goto toobig;
+
+ /* Boot service with known address - give it */
+ *(q++) = service->type >> 8;
+ *(q++) = service->type;
+ *(q++) = 1;
+ /* dest misaligned */
+ memcpy(q, &boot_server.s_addr, INADDRSZ);
+ q += INADDRSZ;
+ }
+ else if (service->type != 0)
+ /* We don't know the server for a service type, so we'll
+ allow the client to broadcast for it */
+ discovery_control = 2;
}
/* if no prompt, wait forever if there's a choice */
@@ -1975,14 +2087,11 @@
ret->opt = SUBOPT_PXE_MENU_PROMPT;
}
- if (discovery_control != 0)
- {
- ret = &fake_opts[j--];
- ret->len = 1;
- ret->opt = SUBOPT_PXE_DISCOVERY;
- ret->val= &discovery_control;
- }
-
+ ret = &fake_opts[j--];
+ ret->len = 1;
+ ret->opt = SUBOPT_PXE_DISCOVERY;
+ ret->val= &discovery_control;
+
return ret;
}
@@ -2270,45 +2379,78 @@
/* Now send options to be encapsulated in arbitrary options,
eg dhcp-option=encap:172,17,.......
+ Also hand vendor-identifying vendor-encapsulated options,
+ dhcp-option = rfc3925-encap:13,17,.......
The may be more that one "outer" to do, so group
all the options which match each outer in turn. */
for (opt = config_opts; opt; opt = opt->next)
opt->flags &= ~DHOPT_ENCAP_DONE;
for (opt = config_opts; opt; opt = opt->next)
- if ((opt->flags & (DHOPT_ENCAPSULATE | DHOPT_ENCAP_DONE)) == DHOPT_ENCAPSULATE)
- {
- struct dhcp_opt *o;
- int found = 0;
-
- for (o = config_opts; o; o = o->next)
- {
- o->flags &= ~DHOPT_ENCAP_MATCH;
- if ((o->flags & DHOPT_ENCAPSULATE) && opt->u.encap == o->u.encap)
- {
- o->flags |= DHOPT_ENCAP_DONE;
- if (match_netid(o->netid, netid, 1) &&
- (o->flags & DHOPT_FORCE || in_list(req_options, o->u.encap)))
- {
- o->flags |= DHOPT_ENCAP_MATCH;
- found = 1;
- }
- }
- }
-
- if (found)
- do_encap_opts(config_opts, opt->u.encap, DHOPT_ENCAP_MATCH, mess, end, null_term);
- }
+ {
+ int flags;
+
+ if ((flags = (opt->flags & (DHOPT_ENCAPSULATE | DHOPT_RFC3925))))
+ {
+ int found = 0;
+ struct dhcp_opt *o;
+
+ if (opt->flags & DHOPT_ENCAP_DONE)
+ continue;
+
+ for (len = 0, o = config_opts; o; o = o->next)
+ {
+ int outer = flags & DHOPT_ENCAPSULATE ? o->u.encap : OPTION_VENDOR_IDENT_OPT;
+
+ o->flags &= ~DHOPT_ENCAP_MATCH;
+
+ if (!(o->flags & flags) || opt->u.encap != o->u.encap)
+ continue;
+
+ o->flags |= DHOPT_ENCAP_DONE;
+ if (match_netid(o->netid, netid, 1) &&
+ ((o->flags & DHOPT_FORCE) || in_list(req_options, outer)))
+ {
+ o->flags |= DHOPT_ENCAP_MATCH;
+ found = 1;
+ len += do_opt(o, NULL, NULL, 0) + 2;
+ }
+ }
+
+ if (found)
+ {
+ if (flags & DHOPT_ENCAPSULATE)
+ do_encap_opts(config_opts, opt->u.encap, DHOPT_ENCAP_MATCH, mess, end, null_term);
+ else if (len > 250)
+ my_syslog(MS_DHCP | LOG_WARNING, _("cannot send RFC3925 option: too many options for enterprise number %d"), opt->u.encap);
+ else if ((p = free_space(mess, end, OPTION_VENDOR_IDENT_OPT, len + 5)))
+ {
+ int swap_ent = htonl(opt->u.encap);
+ memcpy(p, &swap_ent, 4);
+ p += 4;
+ *(p++) = len;
+ for (o = config_opts; o; o = o->next)
+ if (o->flags & DHOPT_ENCAP_MATCH)
+ {
+ len = do_opt(o, p + 2, NULL, 0);
+ *(p++) = o->opt;
+ *(p++) = len;
+ p += len;
+ }
+ }
+ }
+ }
+ }
/* Must precede pxe_opts, since it overwrites req_options */
force_encap = prune_vendor_opts(netid);
if (in_list(req_options, OPTION_VENDOR_CLASS_OPT))
force_encap = 1;
- if (pxe_arch != -1)
+ if (context && pxe_arch != -1)
{
pxe_misc(mess, end, uuid);
- config_opts = pxe_opts(pxe_arch, netid);
+ config_opts = pxe_opts(pxe_arch, netid, context->local);
}
if (force_encap)
diff --git a/src/tftp.c b/src/tftp.c
index c1ddb19..ae81a0e 100644
--- a/src/tftp.c
+++ b/src/tftp.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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
@@ -130,7 +130,7 @@
if (tmp->name && (strcmp(tmp->name, name) == 0))
return;
- strncpy(name, ifr.ifr_name, IF_NAMESIZE);
+ strncpy(ifr.ifr_name, name, IF_NAMESIZE);
if (ioctl(listen->tftpfd, SIOCGIFMTU, &ifr) != -1)
mtu = ifr.ifr_mtu;
}
@@ -279,7 +279,7 @@
free_transfer(transfer);
else
{
- my_syslog(MS_TFTP | LOG_INFO, _("TFTP sent %s to %s"), daemon->namebuff, inet_ntoa(peer.sin_addr));
+ my_syslog(MS_TFTP | LOG_INFO, _("sent %s to %s"), daemon->namebuff, inet_ntoa(peer.sin_addr));
transfer->next = daemon->tftp_trans;
daemon->tftp_trans = transfer;
}
@@ -413,7 +413,7 @@
*(q++) = *r;
*q = 0;
}
- my_syslog(MS_TFTP | LOG_ERR, _("TFTP error %d %s received from %s"),
+ my_syslog(MS_TFTP | LOG_ERR, _("error %d %s received from %s"),
(int)ntohs(mess->block), err,
inet_ntoa(transfer->peer.sin_addr));
@@ -444,7 +444,7 @@
/* don't complain about timeout when we're awaiting the last
ACK, some clients never send it */
if (len != 0)
- my_syslog(MS_TFTP | LOG_ERR, _("TFTP failed sending %s to %s"),
+ my_syslog(MS_TFTP | LOG_ERR, _("failed sending %s to %s"),
transfer->file->filename, inet_ntoa(transfer->peer.sin_addr));
len = 0;
}
@@ -503,7 +503,7 @@
mess->op = htons(OP_ERR);
mess->err = htons(err);
ret += (snprintf(mess->message, 500, message, file, errstr) + 1);
- my_syslog(MS_TFTP | LOG_ERR, "TFTP %s", mess->message);
+ my_syslog(MS_TFTP | LOG_ERR, "%s", mess->message);
return ret;
}
diff --git a/src/util.c b/src/util.c
index ce77f05..6b193b7 100644
--- a/src/util.c
+++ b/src/util.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2010 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