]> git.ipfire.org Git - people/ms/dnsmasq.git/commitdiff
import of dnsmasq-2.58.tar.gz
authorSimon Kelley <simon@thekelleys.org.uk>
Fri, 26 Aug 2011 16:24:52 +0000 (17:24 +0100)
committerSimon Kelley <simon@thekelleys.org.uk>
Thu, 5 Jan 2012 17:31:15 +0000 (17:31 +0000)
43 files changed:
.new [new file with mode: 0644]
CHANGELOG
FAQ
Makefile
bld/Android.mk
contrib/conntrack/README [new file with mode: 0644]
contrib/systemd/README [new file with mode: 0644]
contrib/systemd/dnsmasq.service [new file with mode: 0644]
contrib/wrt/dhcp_lease_time.1 [new file with mode: 0644]
contrib/wrt/dhcp_release.1 [new file with mode: 0644]
contrib/wrt/dhcp_release.c
dnsmasq.conf.example
man/dnsmasq.8
man/fr/dnsmasq.8
po/de.po
po/es.po
po/fi.po
po/fr.po
po/id.po
po/it.po
po/no.po
po/pl.po
po/pt_BR.po
po/ro.po
setup.html
src/bpf.c
src/cache.c
src/config.h
src/conntrack.c [new file with mode: 0644]
src/dhcp.c
src/dns_protocol.h
src/dnsmasq.c
src/dnsmasq.h
src/forward.c
src/lease.c
src/log.c
src/netlink.c
src/network.c
src/option.c
src/rfc1035.c
src/rfc2131.c
src/tftp.c
src/util.c

diff --git a/.new b/.new
new file mode 100644 (file)
index 0000000..2089e51
--- /dev/null
+++ b/.new
@@ -0,0 +1 @@
+shlibs:Depends=libc6 (>= 2.1)
index fb15e3defc05960fea8d4e3a0ba723f17f3b67fa..abf07eb44535dece4ae5e2dc24e2cb1434aa27ab 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,95 @@
+version 2.58
+           Provide a definition of the SA_SIZE macro where it's 
+           missing. Fixes build failure on openBSD.
+
+           Don't include a zero terminator at the end of messages
+           sent to /dev/log when /dev/log is a datagram socket.
+           Thanks to Didier Rabound for spotting the problem.
+
+           Add --dhcp-sequential-ip flag, to force allocation of IP
+           addresses in ascending order. Note that the default
+           pseudo-random mode is in general better but some
+           server-deployment applications need this.
+
+           Fix problem where a server-id of 0.0.0.0 is sent to a
+           client when a dhcp-relay is in use if a client renews a
+           lease after dnsmasq restart and before any clients on the
+           subnet get a new lease. Thanks to Mike Ruiz for assistance
+           in chasing this one down. 
+
+           Don't return NXDOMAIN to an AAAA query if we have CNAME
+           which points to an A record only: NODATA is the correct
+           reply in this case. Thanks to Tom Fernandes for spotting
+           the problem.
+
+           Relax the need to supply a netmask in --dhcp-range for
+           networks which use a DHCP relay. Whilst this is still
+           desireable, in the absence of a netmask dnsmasq will use
+           a default based on the class (A, B, or C) of the address. 
+           This should at least remove a cause of mysterious failure 
+           for people using RFC1918 addresses and relays.
+
+           Add support for Linux conntrack connection marking. If 
+           enabled with --conntrack, the connection mark for incoming
+           DNS queries will be copied  to the outgoing connections
+           used to answer those queries. This allows clever firewall
+           and accounting stuff. Only available if dnsmasq is
+           compiled with HAVE_CONNTRACK and adds a dependency on 
+           libnetfilter-conntrack. Thanks to Ed Wildgoose for the
+           initial idea, testing and sponsorship of this function.
+
+           Provide a sane error message when someone attempts to 
+           match a tag in --dhcp-host.
+
+           Tweak the behaviour of --domain-needed, to avoid problems
+           with recursive nameservers downstream of dnsmasq. The new
+           behaviour only stops A and AAAA queries, and returns
+           NODATA rather than NXDOMAIN replies. 
+
+           Efficiency fix for very large DHCP configurations, thanks
+           to James Gartrell and Mike Ruiz for help with this. 
+
+           Allow the TFTP-server address in --dhcp-boot to be a
+           domain-name which is looked up in /etc/hosts. This can 
+           give multiple IP addresses which are used round-robin,
+           thus doing TFTP server load-balancing. Thanks to Sushil
+           Agrawal for the patch.
+
+           When two tagged dhcp-options for a particular option
+           number are both valid, use the one which is valid without
+           a tag from the dhcp-range. Allows overriding of the value
+           of a DHCP option for a particular host as well as
+           per-network values.  So 
+           --dhcp-range=set:interface1,......
+           --dhcp-host=set:myhost,.....  
+           --dhcp-option=tag:interface1,option:nis-domain,"domain1" 
+           --dhcp-option=tag:myhost,option:nis-domain,"domain2" 
+           will set the NIS-domain to domain1 for hosts in the range, but
+                   override that to domain2 for a particular host.
+
+           Fix bug which resulted in truncated files and timeouts for
+           some TFTP transfers. The bug only occurs with netascii
+           transfers and needs an unfortunate relationship between
+           file size, blocksize and the number of newlines in the
+           last block before it manifests itself. Many thanks to 
+           Alkis Georgopoulos for spotting the problem and providing
+           a comprehensive test-case. 
+
+           Fix regression in TFTP server on *BSD platforms introduced
+           in version 2.56, due to confusion with sockaddr
+           length. Many thanks to Loïc Pefferkorn for finding this.
+
+           Support scope-ids in IPv6 addresses of nameservers from
+           /etc/resolv.conf and in --server options. Eg
+           nameserver fe80::202:a412:4512:7bbf%eth0 or
+           server=fe80::202:a412:4512:7bbf%eth0. Thanks to 
+           Michael Stapelberg for the suggestion.
+
+           Update Polish translation, thanks to Jan Psota.
+
+           Update French translation. Thanks to Gildas Le Nadan.
+
+
 version 2.57
            Add patches to allow build under Android.
 
diff --git a/FAQ b/FAQ
index a9305166fba8bbb9c9d117cfdd3576ce792e7848..3ab39eea1083b855bc4a72ea38d37a9afcc77ab3 100644 (file)
--- a/FAQ
+++ b/FAQ
@@ -303,7 +303,7 @@ A: Yes, new releases of dnsmasq are always announced through
 
 Q: What does the dhcp-authoritative option do? 
 
-A: See http://www.isc.org/index.pl?/sw/dhcp/authoritative.php - that's
+A: See http://www.isc.org/files/auth.html - that's
    for the ISC daemon, but the same applies to dnsmasq.
 
 Q: Why does my Gentoo box pause for a minute before getting a new
@@ -381,7 +381,7 @@ A: Probably the nameserver is an authoritative nameserver for a
 Q: Does the dnsmasq DHCP server probe addresses before allocating
    them, as recommended in RFC2131?
 
-A: Yes, dynmaically allocated IP addresses are checked by sending an
+A: Yes, dynamically allocated IP addresses are checked by sending an
    ICMP echo request (ping). If a reply is received, then dnsmasq
    assumes that the address is in use, and attempts to allocate an
    different address. The wait for a reply is between two and three
index 16c69e479c7a319ffcfad69866916e243f7414bb..4aa93be522d902d7ece4ee0ed91d957463f9003a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -32,20 +32,22 @@ 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` 
-IDN_CFLAGS=`echo $(COPTS) | ../bld/pkg-wrapper HAVE_IDN $(PKG_CONFIG) --cflags libidn` 
-IDN_LIBS=  `echo $(COPTS) | ../bld/pkg-wrapper HAVE_IDN $(PKG_CONFIG) --libs libidn` 
+DBUS_CFLAGS=`echo $(COPTS) | ../bld/pkg-wrapper HAVE_DBUS $(PKG_CONFIG) --cflags dbus-1` 
+DBUS_LIBS=  `echo $(COPTS) | ../bld/pkg-wrapper HAVE_DBUS $(PKG_CONFIG) --libs dbus-1` 
+IDN_CFLAGS= `echo $(COPTS) | ../bld/pkg-wrapper HAVE_IDN $(PKG_CONFIG) --cflags libidn` 
+IDN_LIBS=   `echo $(COPTS) | ../bld/pkg-wrapper HAVE_IDN $(PKG_CONFIG) --libs libidn` 
+CT_CFLAGS=  `echo $(COPTS) | ../bld/pkg-wrapper HAVE_CONNTRACK $(PKG_CONFIG) --cflags libnetfilter_conntrack`
+CT_LIBS=    `echo $(COPTS) | ../bld/pkg-wrapper HAVE_CONNTRACK $(PKG_CONFIG) --libs libnetfilter_conntrack`
 SUNOS_LIBS= `if uname | grep SunOS 2>&1 >/dev/null; then echo -lsocket -lnsl -lposix4; fi`
 
 OBJS = cache.o rfc1035.o util.o option.o forward.o network.o \
        dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o \
-       helper.o tftp.o log.o
+       helper.o tftp.o log.o conntrack.o
 
 all :
        @cd $(SRC) && $(MAKE) \
- BUILD_CFLAGS="$(DNSMASQ_CFLAGS) $(IDN_CFLAGS)" \
- BUILD_LIBS="$(DNSMASQ_LIBS) $(IDN_LIBS) $(SUNOS_LIBS)" \
+ BUILD_CFLAGS="$(DBUS_CFLAGS) $(IDN_CFLAGS) $(CT_CFLAGS)" \
+ BUILD_LIBS="$(DBUS_LIBS) $(IDN_LIBS) $(CT_LIBS) $(SUNOS_LIBS)" \
  -f ../Makefile dnsmasq 
 
 clean :
@@ -62,8 +64,8 @@ install-common :
 all-i18n :
        @cd $(SRC) && $(MAKE) \
  I18N=-DLOCALEDIR='\"$(LOCALEDIR)\"' \
- BUILD_CFLAGS="$(DNSMASQ_CFLAGS) `$(PKG_CONFIG) --cflags libidn`" \
- BUILD_LIBS="$(DNSMASQ_LIBS) $(SUNOS_LIBS) `$(PKG_CONFIG) --libs libidn`"  \
+ BUILD_CFLAGS="$(DBUS_CFLAGS) $(CT_CFLAGS) `$(PKG_CONFIG) --cflags libidn`" \
+ BUILD_LIBS="$(DBUS_LIBS) $(CT_LIBS) $(SUNOS_LIBS) `$(PKG_CONFIG) --libs libidn`"  \
  -f ../Makefile dnsmasq
        @cd $(PO); for f in *.po; do \
                cd ../$(SRC) && $(MAKE) \
index 373a783e3d827aa91ee8b001ed92e5389a09f5c6..f02657e5145ca723dae75fb75cd6bd4ae496aec8 100644 (file)
@@ -6,7 +6,7 @@ include $(CLEAR_VARS)
 LOCAL_SRC_FILES :=  bpf.c cache.c dbus.c dhcp.c dnsmasq.c \
                     forward.c helper.c lease.c log.c \
                     netlink.c network.c option.c rfc1035.c \
-                   rfc2131.c tftp.c util.c
+                   rfc2131.c tftp.c util.c conntrack.c
 
 LOCAL_MODULE := dnsmasq
 
diff --git a/contrib/conntrack/README b/contrib/conntrack/README
new file mode 100644 (file)
index 0000000..c0d17aa
--- /dev/null
@@ -0,0 +1,54 @@
+Linux iptables includes that ability to mark individual network packets
+with a "firewall mark".  Additionally there is a component called
+"conntrack" which tries to string sequences of related packets together
+into a "connection" (it even relates sequences of UDP and ICMP packets).
+ There is a related mark for a connection called a "connection mark".
+Marks can be copied freely between the firewall and connection marks
+
+Using these two features it become possible to tag all related traffic
+in arbitrary ways, eg authenticated users, traffic from a particular IP,
+port, etc. Unfortunately any kind of "proxy" breaks this relationship
+because network packets go in one side of the proxy and a completely new
+connection comes out of the other side.  However, sometimes, we want to
+maintain that relationship through the proxy and continue the connection
+mark on packets upstream of our proxy
+
+DNSMasq includes such a feature enabled by the --conntrack
+option. This allows, for example, using iptables to mark traffic from
+a particular IP, and that mark to be persisted to requests made *by*
+DNSMasq. Such a feature could be useful for bandwidth accounting,
+captive portals and the like. Note a similar feature has been 
+implemented in Squid 2.2
+
+
+As an example consider the following iptables rules:
+
+
+1) iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
+2) iptables -t mangle -A PREROUTING -m mark --mark 0 -s 192.168.111.137
+-j MARK --set-mark 137
+3) iptables -t mangle -A PREROUTING -j CONNMARK --save-mark
+
+4) iptables -t mangle -A OUTPUT -m mark ! --mark 0 -j CONNMARK --save-mark
+
+1-3) are all applied to the PREROUTING table and affect all packets
+entering the firewall.
+
+1) copies any existing connection mark into the firewall mark. 2) Checks
+the packet not already marked and if not applies an arbitrary mark based
+on IP address. 3) Saves the firewall mark back to the connection mark
+(which will persist it across related packets)
+
+4) is applied to the OUTPUT table, which is where we first see packets
+generated locally. DNSMasq will have already copied the firewall mark
+from the request, across to the new packet, and so all that remains is
+for iptables to copy it to the connection mark so it's persisted across
+packets.
+
+Note: iptables can be quite confusing to the beginner. The following
+diagram is extremely helpful in understanding the flows
+       http://linux-ip.net/nf/nfk-traversal.png
+Additionally the following URL contains a useful "starting guide" on
+linux connection tracking/marking
+       http://home.regit.org/netfilter-en/netfilter-connmark/
+
diff --git a/contrib/systemd/README b/contrib/systemd/README
new file mode 100644 (file)
index 0000000..c8046c2
--- /dev/null
@@ -0,0 +1,16 @@
+Hello,
+
+I created a systemd service file for dnsmasq.
+systemd is a sysvinit replacement (see [1] for more information).
+One of the goals of systemd is to encourage standardization between different
+distributions. This means, while I also submitted a ticket in Debian GNU/Linux,
+I would like to ask you to accept this service file as the upstream
+distributor, so that other distributions can use the same service file and
+don’t have to ship their own.
+
+Please include this file in your next release (just like in init script).
+
+
+[1] http://en.wikipedia.org/wiki/Systemd
+
+
diff --git a/contrib/systemd/dnsmasq.service b/contrib/systemd/dnsmasq.service
new file mode 100644 (file)
index 0000000..a27fe6d
--- /dev/null
@@ -0,0 +1,12 @@
+[Unit]
+Description=A lightweight DHCP and caching DNS server
+
+[Service]
+Type=dbus
+BusName=uk.org.thekelleys.dnsmasq
+ExecStartPre=/usr/sbin/dnsmasq --test
+ExecStart=/usr/sbin/dnsmasq -k
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/contrib/wrt/dhcp_lease_time.1 b/contrib/wrt/dhcp_lease_time.1
new file mode 100644 (file)
index 0000000..2720b71
--- /dev/null
@@ -0,0 +1,23 @@
+.TH DHCP_LEASE_TIME 1
+.SH NAME
+dhcp_lease_time \- Query remaining time of a lease on a the local dnsmasq DHCP server.
+.SH SYNOPSIS
+.B  dhcp_lease_time <address>
+.SH "DESCRIPTION"
+Send a DHCPINFORM message to a dnsmasq server running on the local host
+and print (to stdout) the time remaining in any lease for the given
+address. The time is given as string printed to stdout.
+
+If an error occurs or no lease exists for the given address, 
+nothing is sent to stdout a message is sent to stderr and a
+non-zero error code is returned.
+
+Requires dnsmasq 2.40 or later and may not work with other DHCP servers.
+
+The address argument is a dotted-quad IP addresses and mandatory. 
+.SH SEE ALSO
+.BR dnsmasq (8)
+.SH AUTHOR
+This manual page was written by Simon Kelley <simon@thekelleys.org.uk>.
+
+
diff --git a/contrib/wrt/dhcp_release.1 b/contrib/wrt/dhcp_release.1
new file mode 100644 (file)
index 0000000..eb5307a
--- /dev/null
@@ -0,0 +1,35 @@
+.TH DHCP_RELEASE 1
+.SH NAME
+dhcp_release \- Release a DHCP lease on a the local dnsmasq DHCP server.
+.SH SYNOPSIS
+.B dhcp_release <interface> <address> <MAC address> <client_id>
+.SH "DESCRIPTION"
+A utility which forces the DHCP server running on this machine to release a 
+DHCP lease.
+.PP
+Send a DHCPRELEASE message via the specified interface to tell the
+local DHCP server to delete a particular lease. 
+
+The interface argument is the interface in which a DHCP
+request _would_ be received if it was coming from the client, 
+rather than being faked up here.
+   
+The address argument is a dotted-quad IP addresses and mandatory. 
+   
+The MAC address is colon separated hex, and is mandatory. It may be 
+prefixed by an address-type byte followed by -, eg
+
+10-11:22:33:44:55:66
+
+but if the address-type byte is missing it is assumed to be 1, the type 
+for ethernet. This encoding is the one used in dnsmasq lease files.
+
+The client-id is optional. If it is "*" then it treated as being missing.
+.SH NOTES
+MUST be run as root - will fail otherwise.
+.SH SEE ALSO
+.BR dnsmasq (8)
+.SH AUTHOR
+This manual page was written by Simon Kelley <simon@thekelleys.org.uk>.
+
+
index c66d3a031b921ea22e861679d3bc41d8bcff466a..efa3fff2e7282594f8837a377da843f04f214561 100644 (file)
@@ -178,7 +178,7 @@ static int is_same_net(struct in_addr a, struct in_addr b, struct in_addr mask)
   return (a.s_addr & mask.s_addr) == (b.s_addr & mask.s_addr);
 }
 
-static struct in_addr find_interface(struct in_addr client, int fd, int index)
+static struct in_addr find_interface(struct in_addr client, int fd, unsigned int index)
 {
   struct sockaddr_nl addr;
   struct nlmsghdr *h;
index 719dcffb4e33a4263b62a2cc710e691318e68b44..21f9519a2865410cbbac8d4f71223c0697d513c2 100644 (file)
 # external one. (See below for how to enable the TFTP server.)
 #dhcp-boot=pxelinux.0
 
+# The same as above, but use custom tftp-server instead machine running dnsmasq
+#dhcp-boot=pxelinux,server.name,192.168.1.100
+
 # Boot for Etherboot gPXE. The idea is to send two different
 # filenames, the first loads gPXE, and the second tells gPXE what to
 # load. The dhcp-match sets the gpxe tag for requests from gPXE.
 # Can fail with old PXE ROMS. Overridden by --pxe-service.
 #dhcp-boot=/var/ftpd/pxelinux.0,boothost,192.168.0.3
 
+# If there are multiple external tftp servers having a same name
+# (using /etc/hosts) then that name can be specified as the
+# tftp_servername (the third option to dhcp-boot) and in that
+# case dnsmasq resolves this name and returns the resultant IP
+# addresses in round robin fasion. This facility can be used to
+# load balance the tftp load among a set of servers.
+#dhcp-boot=/var/ftpd/pxelinux.0,boothost,tftp_server_name
+
 # Set the limit on DHCP leases, the default is 150
 #dhcp-lease-max=150
 
index 511f57f40478e3f60c0abf3a42af3a882aae8eb9..f3168bce175fafd4fc2b75fd4547cb4f789a1890 100644 (file)
@@ -249,8 +249,8 @@ requested name has underscores, to catch LDAP requests.
 .B \-r, --resolv-file=<file>
 Read the IP addresses of the upstream nameservers from <file>, instead of
 /etc/resolv.conf. For the format of this file see
-.BR resolv.conf (5) 
-the only lines relevant to dnsmasq are nameserver ones. Dnsmasq can
+.BR resolv.conf (5). 
+The only lines relevant to dnsmasq are nameserver ones. Dnsmasq can
 be told to poll more than one resolv.conf file, the first file name  specified
 overrides the default, subsequent ones add to the list. This is only
 allowed when polling; the file with the currently latest modification
@@ -303,7 +303,7 @@ This is useful when new nameservers may have different
 data than that held in cache.
 .TP
 .B \-D, --domain-needed
-Tells dnsmasq to never forward queries for plain names, without dots
+Tells dnsmasq to never forward A or AAAA queries for plain names, without dots
 or domain parts, to upstream nameservers. If the name is not known
 from /etc/hosts or DHCP then a "not found" answer is returned.
 .TP
@@ -350,6 +350,9 @@ is a synonym for
 .B server
 to make configuration files clearer in this case.
 
+IPv6 addresses may include a %interface scope-id, eg
+fe80::202:a412:4512:7bbf%eth0.
+
 The optional string after the @ character tells
 dnsmasq how to set the source of the queries to this
 nameserver. It should be an ip-address, which should belong to the machine on which
@@ -481,6 +484,16 @@ If you use the first DNSSEC mode, validating resolvers in clients,
 this option is not required. Dnsmasq always returns all the data
 needed for a client to do validation itself. 
 .TP
+.B --conntrack
+Read the Linux connection track mark associated with incoming DNS
+queries and set the same mark value on upstream traffic used to answer
+those queries. This allows traffic generated by dnsmasq to be
+associated with the queries which cause it, useful for bandwidth
+accounting and firewalling. Dnsmasq must have conntrack support
+compiled in and the kernel must have conntrack support
+included and configured. This option cannot be combined with
+--query-port. 
+.TP
 .B \-F, --dhcp-range=[interface:<interface>,][tag:<tag>[,tag:<tag>],][set:<tag],]<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
@@ -494,8 +507,11 @@ minimum lease time is two minutes. This
 option may be repeated, with different addresses, to enable DHCP
 service to more than one network. For directly connected networks (ie,
 networks on which the machine running dnsmasq has an interface) the
-netmask is optional. It is, however, required for networks which
-receive DHCP service via a relay agent. The broadcast address is
+netmask is optional: dnsmasq will determine it from the interface
+configuration. For networks which receive DHCP service via a relay
+agent, dnsmasq cannot determine the netmask itself, so it should be
+specified, otherwise dnsmasq will have to guess, based on the class (A, B or
+C) of the network address. The broadcast address is
 always optional. It is always
 allowed to have more than one dhcp-range in a single subnet. 
 
@@ -845,7 +861,7 @@ to supply no tags, in which case this is unconditional. Most DHCP clients which
 need broadcast replies set a flag in their requests so that this
 happens automatically, some old BOOTP clients do not.
 .TP
-.B \-M, --dhcp-boot=[tag:<tag>,]<filename>,[<servername>[,<server address>]]
+.B \-M, --dhcp-boot=[tag:<tag>,]<filename>,[<servername>[,<server address>|<tftp_servername>]]
 Set BOOTP options to be returned by the DHCP server. Server name and
 address are optional: if not provided, the name is left empty, and the
 address set to the address of the machine running dnsmasq. If dnsmasq
@@ -854,6 +870,23 @@ is providing a TFTP service (see
 ) then only the filename is required here to enable network booting.
 If the optional tag(s) are given,
 they must match for this configuration to be sent. 
+Instead of an IP address, the TFTP server address can be given as a domain
+name which is looked up in /etc/hosts. This name can be associated in
+/etc/hosts with multiple IP addresses, which are used round-robin.
+This facility can be used to load balance the tftp load among a set of servers.
+.TP
+.B --dhcp-sequential-ip
+Dnsmasq is designed to choose IP addresses for DHCP clients using a
+hash of the client's MAC address. This normally allows a client's
+address to remain stable long-term, even if the client  sometimes allows its DHCP
+lease to expire. In this default mode IP addresses are distributed
+pseudo-randomly over the entire available address range. There are
+sometimes circumstances (typically server deployment) where it is more
+convenient to have IP
+addresses allocated sequentially, starting from the lowest available
+address, and setting this flag enables this mode. Note that in the
+sequential mode, clients which allow a lease to expire are much more
+likely to move IP address; for this reason it should not be generally used.
 .TP
 .B --pxe-service=[tag:<tag>,]<CSA>,<menu text>[,<basename>|<bootservicetype>][,<server address>]
 Most uses of PXE boot-ROMS simply allow the PXE
@@ -1324,6 +1357,17 @@ so --dhcp=option=tag:!purple,3,1.2.3.4 sends the option when the
 tag purple is not in the set of valid tags. (If using this in a
 command line rather than a configuration file, be sure to escape !,
 which is a shell metacharacter)
+
+When selecting dhcp-options, a tag from dhcp-range is second class
+relative to other tags, to make it easy to override options for
+individual hosts, so 
+.B dhcp-range=set:interface1,......
+.B dhcp-host=set:myhost,.....
+.B dhcp-option=tag:interface1,option:nis-domain,"domain1"
+.B dhcp-option=tag:myhost,option:nis-domain,"domain2"
+will set the NIS-domain to domain1 for hosts in the range, but
+override that to domain2 for a particular host.
+
 .PP
 Note that for 
 .B dhcp-range 
index 44c301b3f5b759eea9d7a8b31c2024f49bced28e..ca81a6dc844b8b415e8a6a5d7090e85947c572a8 100644 (file)
@@ -347,10 +347,10 @@ Cela est utile si les nouveaux serveurs sont susceptibles d'avoir des données
 différentes de celles stockées dans le cache.
 .TP
 .B \-D, --domain-needed
-Indique à Dnsmasq de ne jamais transmettre en amont de requêtes pour des noms
-simples, ne comprenant donc ni points ni nom de domaine. Si un nom n'est pas
-dans /etc/hosts ou dans la liste des baux DHCP, alors une réponse de type
-"non trouvé" est renvoyée.
+Indique à Dnsmasq de ne jamais transmettre en amont de requêtes A ou AAAA pour
+des noms simples, c'est à dire ne comprenant ni points ni nom de domaine. Si un
+nom n'est pas dans /etc/hosts ou dans la liste des baux DHCP, alors une réponse
+de type "non trouvé" est renvoyée.
 .TP
 .B \-S, --local, --server=[/[<domaine>]/[domaine/]][<Adresse IP>[#<port>][@<Adresse IP source>|<interface>[#<port>]]]
 Spécifie directement l'adresse IP d'un serveur de nom amont. Cette option ne
@@ -402,6 +402,10 @@ est synonyme de
 ("serveur") afin de rendre plus claire l'utilisation de cette option pour cet
 usage particulier.
 
+Les adresses IPv6 peuvent inclure un identifiant de zone sous la forme
+%interface tel que par exemple
+fe80::202:a412:4512:7bbf%eth0.
+
 La chaîne de caractères optionnelle suivant le caractère @ permet de définir
 la source que Dnsmasq doit utiliser pour les réponses à ce
 serveur de nom. Il doit s'agir d'une des adresses IP appartenant à la machine sur
@@ -565,6 +569,16 @@ Si vous utilisez le premier mode DNSSEC, la validation par le resolveur des
 clients, cette option n'est pas requise. Dnsmasq retourne toujours toutes les
 données nécessaires par un client pour effectuer la validation lui-même.
 .TP
+.B --conntrack
+Lis le marquage de suivi de connexion Linux associé aux requêtes DNS entrantes
+et positionne la même marque au trafic amont utilisé pour répondre à ces
+requétes. Cela permet au trafic généré par Dnsmasq d'étre associé aux requêtes
+l'ayant déclenché, ce qui est pratique pour la gestion de la bande passante
+(accounting) et le filtrage (firewall). Dnsmasq doit pour cela être compilé
+avec le support conntrack, le noyau doit également inclure conntrack et être
+configuré pour cela. Cette option ne peut pas être combinée avec
+--query-port. 
+.TP
 .B \-F, --dhcp-range=[interface:<interface>,][tag:<label>[,tag:<label>],][set:<label],]<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
@@ -579,9 +593,14 @@ minutes.
 Cette option peut être répétée, avec différentes adresses,
 pour activer le service DHCP sur plus d'un réseau. Pour des réseaux directement
 connectés (c'est-à-dire des réseaux dans lesquels la machine sur laquelle tourne
-Dnsmasq possède une interface), le masque de réseau est optionnel. Il est par
-contre requis pour les réseaux pour lesquels le service DHCP se fait via un
-relais DHCP ("relay agent"). L'adresse de broadcast est toujours optionnelle.
+Dnsmasq possède une interface), le masque de réseau est optionnel : Dnsmasq la
+déterminera à partir de la configuration des interfaces.
+
+Pour les réseaux pour lesquels le service DHCP se fait via un relais DHCP
+("relay agent"), Dnsmasq est incapable de déterminer le masque par lui-même,
+aussi il doit être spécifié, faute de quoi Dnsmasq essaiera de le deviner en
+fonction de la classe (A, B ou C) de l'adresse réseau. L'adresse de broadcast
+est toujours optionnelle.
 
 Il est toujours possible d'avoir plus d'une plage DHCP pour un même
 sous-réseau.
@@ -969,7 +988,7 @@ option s'applique inconditionnellement. La plupart des clients DHCP nécessitant
 d'un broadcast activent une option dans leur requête, ce qui fait que cela
 se fait automatiquement, mais ce n'est pas la cas de certains vieux clients BOOTP.
 .TP
-.B \-M, --dhcp-boot=[tag:<label>,]<nom de fichier>,[<nom de serveur>[,<adresse de serveur>]]
+.B \-M, --dhcp-boot=[tag:<label>,]<nom de fichier>,[<nom de serveur>[,<adresse de serveur>|<nom du serveur tftp>]]
 Spécifie les options BOOTP devant être retournées par le serveur DHCP. Le nom de
 serveur ainsi que l'adresse sont optionnels : s'ils ne sont pas fournis, le nom
 est laissé vide et l'adresse fournie est celle de la machine sur laquelle
@@ -979,6 +998,25 @@ s'exécute Dnsmasq. Si Dnsmasq founit un service TFTP (voir
 le réseau.
 Si d'éventuels labels sont fournis, ils doivent coïncider avec
 ceux du client pour que cet élement de configuration lui soit envoyé.
+Une adresse de serveur TFTP peut être spécifiée à la place de l'adresse IP,
+sous la forme d'un nom de domaine qui sera cherché dans le fichier /etc/hosts.
+Ce nom peut être associé dans /etc/hosts avec plusieurs adresses IP, auquel cas
+celles-ci seront utilisées tour à tour (algorithme round-robin).
+Cela peut-être utiliser pour équilibrer la charge tftp sur plusieurs serveurs.
+.TP
+.B --dhcp-sequential-ip
+Dnsmasq est conçu pour choisir l'adresse IP des clients DHCP en utilisant
+un hachage de l'adresse MAC du client. Cela permet en général à l'adresse
+IP du client de rester stable au fil du temps, même lorsque le client laisse
+expirer son bail DHCP de temps en temps. Dans ce mode de fonctionnement par
+défaut, les adresses IP sont distribuées de façon pseudo-aléatoire dans la
+totalité de la plage d'adresses utilisable. Il existe des circonstances (par
+exemples pour du déploiement de serveur) où il est plus pratique d'allouer les
+adresses IP de manière séquentielle, en commençant par la plus petite adresse
+disponible, et c'est ce mode de fonctionnement qui est permis par cette option.
+Veuillez noter que dans ce mode séquentiel, les clients qui laissent expirer
+leur bail ont beaucoup plus de chance de voir leur adresse IP changer, aussi
+cette option ne devrait pas être utilisée dans un cas général.
 .TP
 .B --pxe-service=[tag:<label>,]<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
@@ -1417,7 +1455,6 @@ Dans le cas de l'utilisation du logiciel logrotate, les options requises sont
 .B create 
 et
 .B delaycompress.
-
  
 .PP
 Dnsmasq est un logiciel de transmission de requêtes DNS : il n'est pas capable
@@ -1509,6 +1546,21 @@ labels définis pour l'hôte considéré. (dans le cas de l'utilisation dans une
 ligne de commande au lieu d'un fichier de configuration, ne pas oublier
 d'échapper le caractère !, qui est un méta-caractère d'interpréteur de commande
 shell).
+
++When selecting dhcp-options, a tag from dhcp-range is second class
++relative to other tags, to make it easy to override options for
++individual hosts, so 
+
+Lors de la sélection d'une option, une étiquette spécifiée par dhcp-range
+passe après les autres étiquettes, ce qui permet de facilement remplacer des
+option génériques pour des hôtes spécifiques, ainsi :
+.B dhcp-range=set:interface1,......
+.B dhcp-host=set:monhote,.....
+.B dhcp-option=tag:interface1,option:nis-domain,"domaine1"
+.B dhcp-option=tag:monhote,option:nis-domain,"domaine2"
+va positionner l'option NIS-domain à domaine1 pour les hôtes dans la plage
+d'adresse, sauf pour monhote pour lequel cette valeur sera domaine2.
+
 .PP
 Veuillez noter que pour
 .B dhcp-range
index 30ecb0efac1ab4ba7603783871af0a06e5e240aa..b958d8a5fe4f3a4a598fc45ea37d9705958750c3 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -25,17 +25,17 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr "Fehler beim Laden der Namen von %s: %s"
 
-#: cache.c:795 dhcp.c:865
+#: cache.c:795 dhcp.c:874
 #, c-format
 msgid "bad address at %s line %d"
 msgstr "Fehlerhafte Adresse in %s Zeile %d"
 
-#: cache.c:853 dhcp.c:881
+#: cache.c:853 dhcp.c:890
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "Fehlerhafter Name in %s Zeile %d"
 
-#: cache.c:860 dhcp.c:956
+#: cache.c:860 dhcp.c:965
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "%s gelesen - %d Adressen"
@@ -44,32 +44,37 @@ msgstr "%s gelesen - %d Adressen"
 msgid "cleared cache"
 msgstr "Cache geleert"
 
-#: cache.c:960
+#: cache.c:934
+#, c-format
+msgid "No IPv4 address found for %s"
+msgstr ""
+
+#: cache.c:975
 #, c-format
 msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
 msgstr "%s ist ein CNAME, weise es der DHCP-Lease von %s nicht zu"
 
-#: cache.c:966
+#: cache.c:981
 #, c-format
 msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
 msgstr "Name %s wurde dem DHCP-Lease von %s nicht zugewiesen, da der Name in %s bereits mit Adresse %s existiert"
 
-#: cache.c:1039
+#: cache.c:1054
 #, c-format
 msgid "time %lu"
 msgstr "Zeit %lu"
 
-#: cache.c:1040
+#: cache.c:1055
 #, c-format
 msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
 msgstr "Cache Größe %d, %d/%d Cache-Einfügungen verwendeten nicht abgelaufene Cache-Einträge wieder."
 
-#: cache.c:1042
+#: cache.c:1057
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr "%u weitergeleitete Anfragen, %u lokal beantwortete Anfragen"
 
-#: cache.c:1068
+#: cache.c:1083
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr "Server %s#%d: %u Anfragen gesendet, %u erneut versucht oder fehlgeschlagen"
@@ -83,7 +88,7 @@ msgstr "Konnte den Zufallszahlengenerator nicht initialisieren: %s"
 msgid "failed to allocate memory"
 msgstr "Konnte Speicher nicht belegen"
 
-#: util.c:227 option.c:573
+#: util.c:227 option.c:579
 msgid "could not get memory"
 msgstr "Speicher nicht verfügbar"
 
@@ -98,464 +103,472 @@ msgid "failed to allocate %d bytes"
 msgstr "Konnte %d Bytes nicht belegen"
 
 # @Simon: not perfect but I cannot get nearer right now.
-#: util.c:350
+#: util.c:358
 #, c-format
 msgid "infinite"
 msgstr "unendlich"
 
-#: option.c:244
+#: option.c:248
 msgid "Specify local address(es) to listen on."
 msgstr "Lokale abzuhörende Adresse(n) angeben."
 
-#: option.c:245
+#: option.c:249
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr "IP-Adresse für alle Hosts in angebenen Domänen festlegen."
 
 # FIXME: the English test is not to the point. Just use a shortened description
 # from the manpage instead. -- MA
-#: option.c:246
+#: option.c:250
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr "Für private Adressbereiche nach RFC1918 \"keine solche Domain\" liefern."
 
-#: option.c:247
+#: option.c:251
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr "Diese IP-Adresse als NXDOMAIN interpretieren (wehrt \"Suchhilfen\" ab)."
 
-#: option.c:248
+#: option.c:252
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr "Größe des Caches (Zahl der Einträge) festlegen (Voreinstellung: %s)."
 
-#: option.c:249
+#: option.c:253
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr "Konfigurationsdatei festlegen (Voreinstellung: %s)."
 
-#: option.c:250
+#: option.c:254
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr "NICHT in den Hintergrund gehen: Betrieb im Debug-Modus"
 
-#: option.c:251
+#: option.c:255
 msgid "Do NOT forward queries with no domain part."
 msgstr "Anfragen ohne Domänen-Teil NICHT weiterschicken."
 
-#: option.c:252
+#: option.c:256
 msgid "Return self-pointing MX records for local hosts."
 msgstr "Für lokale Einträge MX-Einträge liefern, die auf sich selbst zeigen."
 
-#: option.c:253
+#: option.c:257
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr "Erweitere einfache Namen in /etc/hosts mit der Domänen-Endung."
 
-#: option.c:254
+#: option.c:258
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr "'unechte' DNS-Anfragen von Windows-Rechnern nicht weiterleiten"
 
 # @Simon: I'm a bit unsure about "spurious"
-#: option.c:255
+#: option.c:259
 msgid "Enable DHCP in the range given with lease duration."
 msgstr "DHCP für angegebenen Bereich und Dauer einschalten"
 
-#: option.c:256
+#: option.c:260
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr "Nach dem Start in diese Benutzergruppe wechseln (Voreinstellung %s)."
 
-#: option.c:257
+#: option.c:261
 msgid "Set address or hostname for a specified machine."
 msgstr "Adresse oder Hostnamen für einen angegebenen Computer setzen."
 
-#: option.c:258
+#: option.c:262
 #, fuzzy
 msgid "Read DHCP host specs from file."
 msgstr "DHCP-Host-Angaben aus Datei lesen"
 
-#: option.c:259
+#: option.c:263
 #, fuzzy
 msgid "Read DHCP option specs from file."
 msgstr "DHCP-Optionen aus Datei lesen"
 
-#: option.c:260
+#: option.c:264
 #, fuzzy
 msgid "Evaluate conditional tag expression."
 msgstr "Auswertung eines Ausdrucks bedingter Marken"
 
-#: option.c:261
+#: option.c:265
 #, c-format
 msgid "Do NOT load %s file."
 msgstr "%s-Datei NICHT laden."
 
-#: option.c:262
+#: option.c:266
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr "Hosts-Datei festlegen, die zusätzlich zu %s gelesen wird."
 
-#: option.c:263
+#: option.c:267
 msgid "Specify interface(s) to listen on."
 msgstr "Schnittstelle(n) zum Empfang festlegen."
 
-#: option.c:264
+#: option.c:268
 msgid "Specify interface(s) NOT to listen on."
 msgstr "Schnittstelle(n) festlegen, die NICHT empfangen sollen."
 
-#: option.c:265
+#: option.c:269
 msgid "Map DHCP user class to tag."
 msgstr "DHCP-Benutzerklasse auf Marke abbilden."
 
-#: option.c:266
+#: option.c:270
 msgid "Map RFC3046 circuit-id to tag."
 msgstr "RFC3046 \"circuit-id\" auf Marke abbilden."
 
-#: option.c:267
+#: option.c:271
 msgid "Map RFC3046 remote-id to tag."
 msgstr "RFC3046 \"remote-id\" auf Marke abbilden."
 
-#: option.c:268
+#: option.c:272
 msgid "Map RFC3993 subscriber-id to tag."
 msgstr "RFC3993 \"subscriber-id\" auf Marke abbilden."
 
-#: option.c:269
+#: option.c:273
 msgid "Don't do DHCP for hosts with tag set."
 msgstr "Kein DHCP für Hosts mit gesetzter Marke verwenden."
 
-#: option.c:270
+#: option.c:274
 msgid "Force broadcast replies for hosts with tag set."
 msgstr "Rundsendung für Hosts mit gesetzter Marke erzwingen."
 
-#: option.c:271
+#: option.c:275
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr "NICHT in den Hintergrund wechseln, NICHT im Debug-Modus laufen."
 
-#: option.c:272
+#: option.c:276
 msgid "Assume we are the only DHCP server on the local network."
 msgstr "Voraussetzen, dass wir der einzige DHCP-Server im lokalen Netz sind."
 
-#: option.c:273
+#: option.c:277
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr "Festlegen, wo DHCP-Leases gespeichert werden (Voreinstellung %s)."
 
-#: option.c:274
+#: option.c:278
 msgid "Return MX records for local hosts."
 msgstr "MX-Einträge für lokale Hosts liefern."
 
-#: option.c:275
+#: option.c:279
 msgid "Specify an MX record."
 msgstr "Einen MX-Eintrag festlegen."
 
-#: option.c:276
+#: option.c:280
 msgid "Specify BOOTP options to DHCP server."
 msgstr "BOOTP-Optionen für DHCP-Server festlegen."
 
-#: option.c:277
+#: option.c:281
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr "%s-Datei NICHT abfragen, nur bei SIGHUP neu laden."
 
-#: option.c:278
+#: option.c:282
 msgid "Do NOT cache failed search results."
 msgstr "Fehlerhafte Suchergebnisse NICHT zwischenspeichern."
 
-#: option.c:279
+#: option.c:283
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr "Namensserver streng in der in %s angegebenen Reihenfolge verwenden."
 
-#: option.c:280
+#: option.c:284
 msgid "Specify options to be sent to DHCP clients."
 msgstr "Optionen festlegen, die an DHCP-Klienten gesendet werden."
 
-#: option.c:281
+#: option.c:285
 msgid "DHCP option sent even if the client does not request it."
 msgstr "DHCP-Option, die selbst ohne Klientenanfrage gesendet wird."
 
-#: option.c:282
+#: option.c:286
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr "Port zum Abhören der DNS-Anfragen festlegen (53 voreingestellt)."
 
-#: option.c:283
+#: option.c:287
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr "Maximale unterstützte UDP-Paketgröße für EDNS.0 (Voreinstellung %s)."
 
-#: option.c:284
+#: option.c:288
 msgid "Log DNS queries."
 msgstr "DNS-Anfragen protokollieren."
 
-#: option.c:285
+#: option.c:289
 msgid "Force the originating port for upstream DNS queries."
 msgstr "Ausgehenden Port erzwingen für DNS-Anfragen an vorgelagerte Server."
 
-#: option.c:286
+#: option.c:290
 msgid "Do NOT read resolv.conf."
 msgstr "resolv.conf NICHT lesen."
 
-#: option.c:287
+#: option.c:291
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr "Pfad zu resolv.conf festlegen (%s voreingestellt)."
 
-#: option.c:288
+#: option.c:292
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr "Adresse(n) vorgelagerter Server festlegen, optional mit Domänen."
 
-#: option.c:289
+#: option.c:293
 msgid "Never forward queries to specified domains."
 msgstr "Anfragen für angegebene Domänen niemals weiterleiten."
 
-#: option.c:290
+#: option.c:294
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr "Domäne festlegen, die für DHCP-Leases zugewiesen wird."
 
-#: option.c:291
+#: option.c:295
 msgid "Specify default target in an MX record."
 msgstr "Voreingestelltes Ziel für MX-Einträge festlegen."
 
-#: option.c:292
+#: option.c:296
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr "Gültigkeitsdauer für Antworten aus /etc/hosts festlegen."
 
-#: option.c:293
+#: option.c:297
 msgid "Specify time-to-live in seconds for negative caching."
 msgstr "Gültigkeitsdauer in Sekunden für Caching negativer Ergebnisse festlegen."
 
-#: option.c:294
+#: option.c:298
 #, fuzzy
 msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
 msgstr "Gültigkeitsdauer in Sekunden für Caching negativer Ergebnisse festlegen."
 
-#: option.c:295
+#: option.c:299
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr "Nach dem Start diese Benutzerrechte annehmen (%s voreingestellt)."
 
-#: option.c:296
+#: option.c:300
 msgid "Map DHCP vendor class to tag."
 msgstr "DHCP-\"vendor class\" auf Marke abbilden."
 
-#: option.c:297
+#: option.c:301
 msgid "Display dnsmasq version and copyright information."
 msgstr "dnsmasq-Version und Urheberrecht anzeigen."
 
-#: option.c:298
+#: option.c:302
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr "IPv4-Adressen von vorgelagerten Servern übersetzen."
 
-#: option.c:299
+#: option.c:303
 msgid "Specify a SRV record."
 msgstr "SRV-Eintrag festlegen."
 
-#: option.c:300
+#: option.c:304
 msgid "Display this message. Use --help dhcp for known DHCP options."
 msgstr "Diese Hilfe anzeigen. Benutzen Sie --help dhcp für bekannte DHCP-Optionen."
 
-#: option.c:301
+#: option.c:305
 #, c-format
 msgid "Specify path of PID file (defaults to %s)."
 msgstr "Dateipfad für Prozesskennung (PID) festlegen (Voreinstellung: %s)."
 
-#: option.c:302
+#: option.c:306
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr "Höchstzahl der DHCP-Leases festlegen (%s voreingestellt)."
 
-#: option.c:303
+#: option.c:307
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr "DNS-Anfragen abhängig der Emfpangsschnittstelle beantworten."
 
-#: option.c:304
+#: option.c:308
 msgid "Specify TXT DNS record."
 msgstr "DNS-TXT-Eintrag festlegen."
 
-#: option.c:305
+#: option.c:309
 msgid "Specify PTR DNS record."
 msgstr "DNS-PTR-Eintrag festlegen."
 
-#: option.c:306
+#: option.c:310
 msgid "Give DNS name to IPv4 address of interface."
 msgstr "Schnittstellennamen zur IPv4-Adresse des Interfaces auflösen."
 
-#: option.c:307
+#: option.c:311
 msgid "Bind only to interfaces in use."
 msgstr "Nur an verwendete Schnittstellen binden."
 
-#: option.c:308
+#: option.c:312
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr "Statische DHCP-Host-Information aus %s lesen."
 
-#: option.c:309
+#: option.c:313
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr "DBus-Schnittstelle zum Festlegen vorgelagerter Server usw. festlegen."
 
-#: option.c:310
+#: option.c:314
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr "Auf dieser Schnittstelle kein DHCP anbieten, sondern nur DNS."
 
-#: option.c:311
+#: option.c:315
 msgid "Enable dynamic address allocation for bootp."
 msgstr "Dynamische Adressbelegung für bootp einschalten."
 
-#: option.c:312
+#: option.c:316
 msgid "Map MAC address (with wildcards) to option set."
 msgstr "MAC-Adresse (mit Jokerzeichen) auf Netzmarke abbilden."
 
-#: option.c:313
+#: option.c:317
 msgid "Treat DHCP requests on aliases as arriving from interface."
 msgstr "DHCP-Anfragen von Alias-Schnittstellen für die Hauptschnittstelle beantworten."
 
-#: option.c:314
+#: option.c:318
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr "ICMP-Echo-Adressprüfung im DHCP-Server abschalten."
 
-#: option.c:315
+#: option.c:319
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr "Skript, das bei Erzeugung/Löschung einer DHCP-Lease laufen soll."
 
-#: option.c:316
+#: option.c:320
 msgid "Read configuration from all the files in this directory."
 msgstr "Konfiguration aus allen Dateien in diesem Verzeichnis lesen."
 
-#: option.c:317
+#: option.c:321
 msgid "Log to this syslog facility or file. (defaults to DAEMON)"
 msgstr "Für diese Syslog-Anlage oder in Datei loggen (Voreinstellung DAEMON)."
 
-#: option.c:318
+#: option.c:322
 msgid "Do not use leasefile."
 msgstr "Keine Lease-Datei benützen."
 
-#: option.c:319
+#: option.c:323
 #, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr "Höchstzahl nebenläufiger DNS-Anfragen (%s voreingestellt)."
 
-#: option.c:320
+#: option.c:324
 #, c-format
 msgid "Clear DNS cache when reloading %s."
 msgstr "DNS-Cache beim Neuladen von %s löschen."
 
-#: option.c:321
+#: option.c:325
 msgid "Ignore hostnames provided by DHCP clients."
 msgstr "Von DHCP-Clients gelieferte Hostnamen ignorieren."
 
-#: option.c:322
+#: option.c:326
 msgid "Do NOT reuse filename and server fields for extra DHCP options."
 msgstr "Dateinamen und Server-Datenfehler für zusätzliche DHCP-Optionen NICHT wiederverwenden."
 
-#: option.c:323
+#: option.c:327
 msgid "Enable integrated read-only TFTP server."
 msgstr "Eingebauten Nur-Lese-TFTP-Server einschalten."
 
-#: option.c:324
+#: option.c:328
 msgid "Export files by TFTP only from the specified subtree."
 msgstr "Nur vom festgelegten Unterbaum Dateien per TFTP exportieren."
 
-#: option.c:325
+#: option.c:329
 msgid "Add client IP address to tftp-root."
 msgstr "IP-Adresse des Klienten an tftp-root anhängen."
 
-#: option.c:326
+#: option.c:330
 msgid "Allow access only to files owned by the user running dnsmasq."
 msgstr "Zugriff nur auf Dateien gestatten, die dem dnsmasq aufrufenden Benutzer gehören."
 
-#: option.c:327
+#: option.c:331
 #, c-format
 msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
 msgstr "Höchstzahl nebenläufiger TFTP-Übertragungen (%s voreingestellt)."
 
-#: option.c:328
+#: option.c:332
 msgid "Disable the TFTP blocksize extension."
 msgstr "TFTP-Blockgrößen-Erweiterung abschalten."
 
-#: option.c:329
+#: option.c:333
 msgid "Ephemeral port range for use by TFTP transfers."
 msgstr "Bereich für vorübergehende Ports für TFTP-Übertragungen."
 
-#: option.c:330
+#: option.c:334
 msgid "Extra logging for DHCP."
 msgstr "Erweiterte DHCP-Protokollierung."
 
-#: option.c:331
+#: option.c:335
 msgid "Enable async. logging; optionally set queue length."
 msgstr "Asynchrone Protokollierung einschalten, opt. Warteschlangenlänge festlegen."
 
-#: option.c:332
+#: option.c:336
 msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
 msgstr "DNS-Rebinding unterbinden, private IP-Bereiche bei der Auflösung ausfiltern."
 
-#: option.c:333
+#: option.c:337
 msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
 msgstr "Auflösung zu 127.0.0.0/8 erlauben, für RBL-Server."
 
-#: option.c:334
+#: option.c:338
 #, fuzzy
 msgid "Inhibit DNS-rebind protection on this domain."
 msgstr "DNS-Rebind-Schutz für diese Domäne sperren."
 
-#: option.c:335
+#: option.c:339
 msgid "Always perform DNS queries to all servers."
 msgstr "DNS-Anfragen immer an alle Server weiterleiten."
 
-#: option.c:336
+#: option.c:340
 msgid "Set tag if client includes matching option in request."
 msgstr "Marke setzen, wenn Klient eine entsprechende Option anfragt."
 
-#: option.c:337
+#: option.c:341
 msgid "Use alternative ports for DHCP."
 msgstr "Alternative Ports für DHCP verwenden."
 
-#: option.c:338
+#: option.c:342
 msgid "Run lease-change script as this user."
 msgstr "Lease-Änderungs-Skript mit den Rechten dieses Nutzers ausführen."
 
-#: option.c:339
+#: option.c:343
 msgid "Specify NAPTR DNS record."
 msgstr "DNS-NAPTR-Eintrag festlegen."
 
-#: option.c:340
+#: option.c:344
 msgid "Specify lowest port available for DNS query transmission."
 msgstr "Niedrigsten verfügbaren Port für Übertragung von DNS-Anfragen festlegen."
 
-#: option.c:341
+#: option.c:345
 msgid "Use only fully qualified domain names for DHCP clients."
 msgstr "Für DHCP-Klienten nur vollständig bestimmte Domänennamen benutzen."
 
 # FIXME: probably typo in original message. -- MA
-#: option.c:342
+#: option.c:346
 #, fuzzy
 msgid "Generate hostnames based on MAC address for nameless clients."
 msgstr "Für namenlose Klienten die Hostnamen MAC-basiert erzeugen."
 
-#: option.c:343
+#: option.c:347
 msgid "Use these DHCP relays as full proxies."
 msgstr "Diese DHCP-Relais als vollwertige Proxies verwenden."
 
-#: option.c:344
+#: option.c:348
 msgid "Specify alias name for LOCAL DNS name."
 msgstr "Alias für LOKALEN DNS-Namen festlegen."
 
-#: option.c:345
+#: option.c:349
 msgid "Prompt to send to PXE clients."
 msgstr "Aufforderung, die an PXE-Klienten geschickt wird."
 
-#: option.c:346
+#: option.c:350
 msgid "Boot service for PXE menu."
 msgstr "Boot-Dienst für PXE-Menü."
 
-#: option.c:347
+#: option.c:351
 msgid "Check configuration syntax."
 msgstr "Konfigurationssyntax prüfen."
 
-#: option.c:348
-msgid "Add requestor's MAC address to forwarded DNS queries"
+#: option.c:352
+msgid "Add requestor's MAC address to forwarded DNS queries."
 msgstr ""
 
-#: option.c:349
+#: option.c:353
 #, fuzzy
-msgid "Proxy DNSSEC validation results from upstream nameservers"
+msgid "Proxy DNSSEC validation results from upstream nameservers."
 msgstr "IPv4-Adressen von vorgelagerten Servern übersetzen."
 
-#: option.c:638
+#: option.c:354
+msgid "Attempt to allocate sequential IP addresses to DHCP clients."
+msgstr ""
+
+#: option.c:355
+msgid "Copy connection-track mark from queries to upstream connections."
+msgstr ""
+
+#: option.c:644
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -564,228 +577,232 @@ msgstr ""
 "Verwendung: dnsmasq [Optionen]\n"
 "\n"
 
-#: option.c:640
+#: option.c:646
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr "Auf der Befehlszeile nur kurze Optionen verwenden!\n"
 
-#: option.c:642
+#: option.c:648
 #, c-format
 msgid "Valid options are:\n"
 msgstr "Gültige Optionen sind:\n"
 
-#: option.c:683
+#: option.c:689
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr "Bekannte DHCP-Optionen:\n"
 
-#: option.c:798
+#: option.c:804
 msgid "bad dhcp-option"
 msgstr "Fehlerhafte DHCP-Option"
 
-#: option.c:860
+#: option.c:866
 msgid "bad IP address"
 msgstr "Fehlerhafte IP-Adresse"
 
-#: option.c:968
+#: option.c:974
 msgid "bad domain in dhcp-option"
 msgstr "Fehlerhafte Domäne in DHCP-Option"
 
-#: option.c:1034
+#: option.c:1040
 msgid "dhcp-option too long"
 msgstr "DHCP-Option zu lang"
 
-#: option.c:1043
+#: option.c:1049
 msgid "illegal dhcp-match"
 msgstr "Unzulässige dhcp-match-Option"
 
-#: option.c:1087
+#: option.c:1093
 msgid "illegal repeated flag"
 msgstr "unzulässig wiederholte Markierung"
 
-#: option.c:1095
+#: option.c:1101
 msgid "illegal repeated keyword"
 msgstr "unzulässig wiederholtes Schlüsselwort"
 
-#: option.c:1147 option.c:3030
+#: option.c:1153 option.c:3062
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr "Kann auf Verzeichnis %s nicht zugreifen: %s"
 
-#: option.c:1178 tftp.c:460
+#: option.c:1184 tftp.c:465
 #, c-format
 msgid "cannot access %s: %s"
 msgstr "Kann auf %s nicht zugreifen: %s"
 
-#: option.c:1207
+#: option.c:1213
 msgid "setting log facility is not possible under Android"
 msgstr ""
 
-#: option.c:1216
+#: option.c:1222
 msgid "bad log facility"
 msgstr ""
 
-#: option.c:1265
+#: option.c:1271
 msgid "bad MX preference"
 msgstr "unzulässige MX-Präferenz-Angabe"
 
-#: option.c:1270
+#: option.c:1276
 msgid "bad MX name"
 msgstr "unzulässiger MX-Name"
 
-#: option.c:1284
+#: option.c:1290
 msgid "bad MX target"
 msgstr "unzulässiges MX-Ziel"
 
-#: option.c:1294
+#: option.c:1300
 msgid "cannot run scripts under uClinux"
 msgstr "unter uClinux ist die Skriptausführung nicht möglich"
 
-#: option.c:1296
+#: option.c:1302
 msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
 msgstr "Neuübersetzung mit HAVE_SCRIPT nötig, um Lease-Änderungs-Skripte auszuführen"
 
-#: option.c:1597 option.c:1601
+#: option.c:1607 option.c:1611
 msgid "bad port"
 msgstr "unzulässiger Port"
 
-#: option.c:1620 option.c:1645
+#: option.c:1634 option.c:1665
 msgid "interface binding not supported"
 msgstr "Schnittstellenbindung nicht unterstützt"
 
-#: option.c:1791
+#: option.c:1645 option.c:2614
+msgid "bad interface name"
+msgstr "unzulässiger Schnittestellenname"
+
+#: option.c:1810
 msgid "bad port range"
 msgstr "unzulässiger Portbereich"
 
-#: option.c:1808
+#: option.c:1827
 msgid "bad bridge-interface"
 msgstr "unzulässige Brücken-Schnittstelle"
 
-#: option.c:1850
+#: option.c:1870
 msgid "bad dhcp-range"
 msgstr "unzulässiger DHCP-Bereich"
 
-#: option.c:1878
+#: option.c:1898
 msgid "only one tag allowed"
 msgstr "nur eine Marke zulässig"
 
-#: option.c:1925
+#: option.c:1945
 msgid "inconsistent DHCP range"
 msgstr "inkonsistenter DHCP-Bereich"
 
-#: option.c:2019 option.c:2045
+#: option.c:2039 option.c:2067
 msgid "bad hex constant"
 msgstr ""
 
-#: option.c:2107
+#: option.c:2061
+msgid "cannot match tags in --dhcp-host"
+msgstr ""
+
+#: option.c:2129
 msgid "bad DHCP host name"
 msgstr "unzulässiger DHCP-Hostname"
 
-#: option.c:2188
+#: option.c:2210
 msgid "bad tag-if"
 msgstr "unzulässige bedingte Marke (tag-if)"
 
-#: option.c:2467 option.c:2752
+#: option.c:2499 option.c:2784
 msgid "invalid port number"
 msgstr "unzulässige Portnummer"
 
-#: option.c:2529
+#: option.c:2561
 msgid "bad dhcp-proxy address"
 msgstr "Fehlerhafte DHCP-Proxy-Adresse"
 
-#: option.c:2569
+#: option.c:2601
 msgid "invalid alias range"
 msgstr "unzulässiger Alias-Bereich"
 
-#: option.c:2582
-msgid "bad interface name"
-msgstr "unzulässiger Schnittestellenname"
-
-#: option.c:2607
+#: option.c:2639
 msgid "bad CNAME"
 msgstr "unzulässiger CNAME"
 
-#: option.c:2612
+#: option.c:2644
 msgid "duplicate CNAME"
 msgstr "doppelter CNAME"
 
-#: option.c:2632
+#: option.c:2664
 msgid "bad PTR record"
 msgstr "unzulässiger PTR-Eintrag"
 
-#: option.c:2663
+#: option.c:2695
 msgid "bad NAPTR record"
 msgstr "unzulässiger NAPTR-Eintrag"
 
-#: option.c:2695
+#: option.c:2727
 msgid "bad TXT record"
 msgstr "unzulässiger TXT-Eintrag"
 
-#: option.c:2738
+#: option.c:2770
 msgid "bad SRV record"
 msgstr "unzulässiger SRV-Eintrag"
 
-#: option.c:2745
+#: option.c:2777
 msgid "bad SRV target"
 msgstr "unzulässiges SRV-Ziel"
 
-#: option.c:2759
+#: option.c:2791
 msgid "invalid priority"
 msgstr "unzulässige Priorität"
 
-#: option.c:2766
+#: option.c:2798
 msgid "invalid weight"
 msgstr "unzulässige Wichtung"
 
-#: option.c:2785
+#: option.c:2817
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr "unzulässige Option (prüfen Sie, ob dnsmasq mit DHCP/TFTP/DBus-Unterstützt übersetzt wurde)"
 
-#: option.c:2849
+#: option.c:2881
 msgid "missing \""
 msgstr "fehlende \\\""
 
-#: option.c:2908
+#: option.c:2940
 msgid "bad option"
 msgstr "unzulässige Option"
 
-#: option.c:2910
+#: option.c:2942
 msgid "extraneous parameter"
 msgstr "überschüssiger Parameter"
 
-#: option.c:2912
+#: option.c:2944
 msgid "missing parameter"
 msgstr "fehler Parameter"
 
-#: option.c:2916
+#: option.c:2948
 msgid "error"
 msgstr "Fehler"
 
-#: option.c:2921
+#: option.c:2953
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr "%s in Zeile %d von %%s"
 
-#: option.c:2985 tftp.c:624
+#: option.c:3017 tftp.c:629
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "kann %s nicht lesen: %s"
 
-#: option.c:3151 option.c:3187
+#: option.c:3183 option.c:3219
 #, c-format
 msgid "read %s"
 msgstr "%s gelesen"
 
-#: option.c:3239
+#: option.c:3271
 msgid "junk found in command line"
 msgstr ""
 
-#: option.c:3269
+#: option.c:3301
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Dnsmasq Version %s  %s\n"
 
-#: option.c:3270
+#: option.c:3302
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -794,73 +811,73 @@ msgstr ""
 "Übersetzungs-Optionen %s\n"
 "\n"
 
-#: option.c:3271
+#: option.c:3303
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Für diese Software wird ABSOLUT KEINE GARANTIE gewährt.\n"
 
 # FIXME: this must be one long string! -- MA
-#: option.c:3272
+#: option.c:3304
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr ""
 
-#: option.c:3273
+#: option.c:3305
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
 msgstr ""
 
-#: option.c:3284
+#: option.c:3316
 msgid "try --help"
 msgstr "versuchen Sie --help"
 
-#: option.c:3286
+#: option.c:3318
 msgid "try -w"
 msgstr "versuchen Sie -w"
 
-#: option.c:3289
+#: option.c:3321
 #, c-format
 msgid "bad command line options: %s"
 msgstr "unzulässige Optionen auf der Befehlszeile: %s"
 
-#: option.c:3330
+#: option.c:3362
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "kann Hostnamen nicht ermitteln: %s"
 
-#: option.c:3358
+#: option.c:3390
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr "mit -n/--no-poll ist nur eine resolv.conf-Datei zulässig."
 
-#: option.c:3368
+#: option.c:3400
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr "Um die Domäne zu lesen, muss genau eine resolv.conf-Datei verwendet werden."
 
-#: option.c:3371 network.c:848 dhcp.c:814
+#: option.c:3403 network.c:848 dhcp.c:823
 #, c-format
 msgid "failed to read %s: %s"
 msgstr "konnte %s nicht lesen: %s"
 
-#: option.c:3388
+#: option.c:3420
 #, c-format
 msgid "no search directive found in %s"
 msgstr "keine \"search\"-Anweisung in %s gefunden"
 
-#: option.c:3409
+#: option.c:3441
 #, fuzzy
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr "für --dhcp-fqdn muss eine Domäne vorausgewählt werden"
 
-#: option.c:3413
+#: option.c:3445
 msgid "syntax check OK"
 msgstr "Syntaxprüfung OK"
 
-#: forward.c:461
+#: forward.c:471
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "Namensserver %s hat eine rekursive Anfrage verweigert"
 
-#: forward.c:489
+#: forward.c:499
 #, c-format
 msgid "possible DNS-rebind attack detected: %s"
 msgstr "möglichen DNS-Rebind-Angriff entdeckt: %s"
@@ -932,275 +949,284 @@ msgstr ""
 msgid "using nameserver %s#%d"
 msgstr ""
 
-#: dnsmasq.c:148
+#: dnsmasq.c:152
 msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
 msgstr "TFTP-Server nicht verfügbar, setzen Sie HAVE_TFTP in src/config.h"
 
-#: dnsmasq.c:153
+#: dnsmasq.c:157
+msgid "Cannot use --conntrack AND --query-port"
+msgstr ""
+
+#: dnsmasq.c:160
+#, fuzzy
+msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
+msgstr "TFTP-Server nicht verfügbar, setzen Sie HAVE_TFTP in src/config.h"
+
+#: dnsmasq.c:165
 msgid "asychronous logging is not available under Solaris"
 msgstr "asynchrone Protokollierung unter Solaris nicht verfügbar"
 
-#: dnsmasq.c:158
+#: dnsmasq.c:170
 #, fuzzy
 msgid "asychronous logging is not available under Android"
 msgstr "asynchrone Protokollierung unter Solaris nicht verfügbar"
 
-#: dnsmasq.c:177
+#: dnsmasq.c:189
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "konnte Schnitstellenliste nicht beziehen: %s"
 
-#: dnsmasq.c:185
+#: dnsmasq.c:197
 #, c-format
 msgid "unknown interface %s"
 msgstr "unbekannte Schnittstelle %s"
 
-#: dnsmasq.c:191
+#: dnsmasq.c:203
 #, c-format
 msgid "no interface with address %s"
 msgstr "keine Schnittstelle mit Adresse %s"
 
-#: dnsmasq.c:207 dnsmasq.c:678
+#: dnsmasq.c:219 dnsmasq.c:690
 #, c-format
 msgid "DBus error: %s"
 msgstr "DBus-Fehler: %s"
 
-#: dnsmasq.c:210
+#: dnsmasq.c:222
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr "DBus nicht verfügbar: setzen Sie HAVE_DBUS in src/config.h"
 
-#: dnsmasq.c:236
+#: dnsmasq.c:248
 #, c-format
 msgid "unknown user or group: %s"
 msgstr "Unbekannter Benutzer oder Gruppe: %s"
 
-#: dnsmasq.c:291
+#: dnsmasq.c:303
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr "kann nicht ins Wurzelverzeichnis des Dateisystems wechseln: %s"
 
 # FIXME: this and the next would need commas after the version
-#: dnsmasq.c:455
+#: dnsmasq.c:467
 #, c-format
 msgid "started, version %s DNS disabled"
 msgstr "gestartet, Version %s, DNS abgeschaltet"
 
-#: dnsmasq.c:457
+#: dnsmasq.c:469
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "gestartet, Version %s, Cachegröße %d"
 
-#: dnsmasq.c:459
+#: dnsmasq.c:471
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr ""
 
-#: dnsmasq.c:461
+#: dnsmasq.c:473
 #, c-format
 msgid "compile time options: %s"
 msgstr "Übersetzungsoptionen: %s"
 
-#: dnsmasq.c:467
+#: dnsmasq.c:479
 msgid "DBus support enabled: connected to system bus"
 msgstr "DBus-Unterstützung eingeschaltet: mit Systembus verbunden"
 
-#: dnsmasq.c:469
+#: dnsmasq.c:481
 msgid "DBus support enabled: bus connection pending"
 msgstr "DBus-Unterstützung eingeschaltet: warte auf Systembus-Verbindung"
 
-#: dnsmasq.c:474
+#: dnsmasq.c:486
 #, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr "Warnung: konnte den Besitzer von %s nicht ändern: %s"
 
-#: dnsmasq.c:478
+#: dnsmasq.c:490
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "Aktiviere --bind-interfaces wegen Einschränkungen des Betriebssystems"
 
-#: dnsmasq.c:483
+#: dnsmasq.c:495
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "Warnung: Schnittstelle %s existiert derzeit nicht"
 
-#: dnsmasq.c:488
+#: dnsmasq.c:500
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr "Warnung: Ignoriere \"resolv-file\", weil \"no-resolv\" aktiv ist"
 
-#: dnsmasq.c:491
+#: dnsmasq.c:503
 msgid "warning: no upstream servers configured"
 msgstr "Warnung: keine vorgelagerten (Upstream) Server konfiguriert"
 
-#: dnsmasq.c:495
+#: dnsmasq.c:507
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr "asynchrone Protokollierung eingeschaltet, Warteschlange fasst %d Nachrichten"
 
-#: dnsmasq.c:508
+#: dnsmasq.c:520
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr "DHCP, nur statische Leases auf %.0s%s, Lease-Zeit %s"
 
-#: dnsmasq.c:510
+#: dnsmasq.c:522
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr "DHCP, Proxy im Subnetz %.0s%s%.0s"
 
-#: dnsmasq.c:511
+#: dnsmasq.c:523
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, IP-Bereich %s - %s, Lease-Zeit %s "
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "root is "
 msgstr "FIXME: this and the next few must be full strings to be translatable - do not assemble in code"
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "enabled"
 msgstr ""
 
-#: dnsmasq.c:528
+#: dnsmasq.c:540
 msgid "secure mode"
 msgstr ""
 
-#: dnsmasq.c:554
+#: dnsmasq.c:566
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr "Begrenze gleichzeitige TFTP-Übertragungen auf maximal %d"
 
-#: dnsmasq.c:680
+#: dnsmasq.c:692
 msgid "connected to system DBus"
 msgstr "Mit System-DBus verbunden"
 
-#: dnsmasq.c:775
+#: dnsmasq.c:787
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr "kann nicht in den Hintergrund abspalten: %s"
 
-#: dnsmasq.c:778
+#: dnsmasq.c:790
 #, c-format
 msgid "failed to create helper: %s"
 msgstr "kann Helfer nicht erzeugen: %s"
 
-#: dnsmasq.c:781
+#: dnsmasq.c:793
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr "kann \"capabilities\" nicht setzen: %s"
 
-#: dnsmasq.c:785
+#: dnsmasq.c:797
 #, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr "Kann nicht Benutzerrechte %s annehmen: %s"
 
-#: dnsmasq.c:790
+#: dnsmasq.c:802
 #, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr "Kann nicht Gruppenrechte %s annehmen: %s"
 
-#: dnsmasq.c:793
+#: dnsmasq.c:805
 #, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr "kann die Prozessidentifikations-(PID)-Datei %s nicht öffnen: %s"
 
-#: dnsmasq.c:796
+#: dnsmasq.c:808
 #, c-format
 msgid "cannot open %s: %s"
 msgstr "kann %s nicht öffnen: %s"
 
-#: dnsmasq.c:851
+#: dnsmasq.c:863
 #, c-format
 msgid "child process killed by signal %d"
 msgstr "Tochterprozess durch Signal %d zerstört"
 
-#: dnsmasq.c:855
+#: dnsmasq.c:867
 #, c-format
 msgid "child process exited with status %d"
 msgstr "Tochterprozess beendete sich mit Status %d"
 
-#: dnsmasq.c:859
+#: dnsmasq.c:871
 #, c-format
 msgid "failed to execute %s: %s"
 msgstr "konnte %s nicht ausführen: %s"
 
-#: dnsmasq.c:903
+#: dnsmasq.c:915
 msgid "exiting on receipt of SIGTERM"
 msgstr "beende nach Empfang von SIGTERM"
 
-#: dnsmasq.c:931
+#: dnsmasq.c:943
 #, c-format
 msgid "failed to access %s: %s"
 msgstr "konnte auf %s nicht zugreifen: %s"
 
-#: dnsmasq.c:961
+#: dnsmasq.c:973
 #, c-format
 msgid "reading %s"
 msgstr "lese %s"
 
-#: dnsmasq.c:972
+#: dnsmasq.c:984
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr "keine Server in %s gefunden, werde es später neu versuchen"
 
-#: dhcp.c:40
+#: dhcp.c:39
 #, c-format
 msgid "cannot create DHCP socket: %s"
 msgstr "kann DHCP-Socket nicht erzeugen: %s"
 
-#: dhcp.c:52
+#: dhcp.c:51
 #, c-format
 msgid "failed to set options on DHCP socket: %s"
 msgstr "kann Optionen für DHCP-Socket nicht setzen: %s"
 
-#: dhcp.c:65
+#: dhcp.c:64
 #, c-format
 msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
 msgstr "kann SO_REUSE{ADDR|PORT} für DHCP-Socket nicht aktivieren: %s"
 
-#: dhcp.c:77
+#: dhcp.c:76
 #, c-format
 msgid "failed to bind DHCP server socket: %s"
 msgstr "kann nicht an DHCP-Server-Socket binden: %s"
 
-#: dhcp.c:103
+#: dhcp.c:102
 #, c-format
 msgid "cannot create ICMP raw socket: %s."
 msgstr "kann ICMP-Rohdaten-Socket nicht erzeugen: %s."
 
-#: dhcp.c:281
+#: dhcp.c:278
 #, c-format
 msgid "DHCP packet received on %s which has no address"
 msgstr "DHCP-Paket ohne Adresse an Schnittstelle %s empfangen"
 
-#: dhcp.c:445
+#: dhcp.c:442
 #, c-format
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr "DHCP-Bereich %s - %s passt nicht zur Netzmaske %s"
 
-#: dhcp.c:852
+#: dhcp.c:861
 #, c-format
 msgid "bad line at %s line %d"
 msgstr "ungültige Zeile %2$d in Datei %1$s"
 
-#: dhcp.c:895
+#: dhcp.c:904
 #, c-format
 msgid "ignoring %s line %d, duplicate name or IP address"
 msgstr "ignoriere %s Zeile %d, doppelter Name oder doppelte IP-Adresse"
 
-#: dhcp.c:978
+#: dhcp.c:987
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "doppelte IP-Adresse %s in \"dhcp-config\"-Anweisung"
 
-#: dhcp.c:981
+#: dhcp.c:990
 #, c-format
 msgid "duplicate IP address %s in %s."
 msgstr "doppelte IP-Adresse %s in %s."
 
-#: dhcp.c:1024
+#: dhcp.c:1033
 #, c-format
 msgid "%s has more than one address in hostsfile, using %s for DHCP"
 msgstr "%s hat mehr als eine Adresse in hosts-Datei, benutze %s für DHCP"
 
-#: dhcp.c:1029
+#: dhcp.c:1038
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "doppelte IP-Adresse %s (%s) in \"dhcp-config\"-Anweisung"
@@ -1232,181 +1258,186 @@ msgstr "Konnte %s nicht schreiben: %s (Neuversuch in %u s)"
 
 # FIXME: this and the next few are not translatable. Please provide full
 # strings, do not programmatically assemble them.
-#: rfc2131.c:315
+#: rfc2131.c:342
 #, c-format
 msgid "no address range available for DHCP request %s %s"
 msgstr ""
 
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "with subnet selector"
 msgstr ""
 
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "via"
 msgstr ""
 
-#: rfc2131.c:331
+#: rfc2131.c:355
 #, c-format
 msgid "%u available DHCP subnet: %s/%s"
 msgstr "%u verfügbare(s) DHCP-Subnetz: %s/%s"
 
-#: rfc2131.c:334
+#: rfc2131.c:358
 #, c-format
 msgid "%u available DHCP range: %s -- %s"
 msgstr "%u verfügbare(r) DHCP-Bereich: %s - %s"
 
 # FIXME: do not programmatically assemble strings - untranslatable
-#: rfc2131.c:363
+#: rfc2131.c:387
 msgid "disabled"
 msgstr ""
 
-#: rfc2131.c:404 rfc2131.c:916 rfc2131.c:1288
+#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
 msgid "ignored"
 msgstr ""
 
-#: rfc2131.c:419 rfc2131.c:1135
+#: rfc2131.c:443 rfc2131.c:1183
 msgid "address in use"
 msgstr ""
 
-#: rfc2131.c:433 rfc2131.c:970
+#: rfc2131.c:457 rfc2131.c:999
 msgid "no address available"
 msgstr ""
 
-#: rfc2131.c:440 rfc2131.c:1098
+#: rfc2131.c:464 rfc2131.c:1146
 msgid "wrong network"
 msgstr ""
 
-#: rfc2131.c:454
+#: rfc2131.c:479
 msgid "no address configured"
 msgstr ""
 
-#: rfc2131.c:460 rfc2131.c:1148
+#: rfc2131.c:485 rfc2131.c:1196
 msgid "no leases left"
 msgstr ""
 
-#: rfc2131.c:545
+#: rfc2131.c:570
 #, c-format
 msgid "%u client provides name: %s"
 msgstr "%u Klient stellt Name bereit: %s"
 
-#: rfc2131.c:700
+#: rfc2131.c:725
 #, c-format
 msgid "%u vendor class: %s"
 msgstr "%u \"Vendor class\": %s"
 
-#: rfc2131.c:702
+#: rfc2131.c:727
 #, c-format
 msgid "%u user class: %s"
 msgstr "%u Benutzerklasse: %s"
 
-#: rfc2131.c:761
+#: rfc2131.c:786
 msgid "PXE BIS not supported"
 msgstr "PXE BIS nicht unterstützt"
 
-#: rfc2131.c:886
+#: rfc2131.c:915
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "schalte statische DHCP-Adresse %s für %s ab"
 
 # FIXME: do not assemble
-#: rfc2131.c:907
+#: rfc2131.c:936
 msgid "unknown lease"
 msgstr ""
 
-#: rfc2131.c:939
+#: rfc2131.c:968
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr "benutze konfigurierte Adresse %s nicht, weil sie an %s verleast ist"
 
-#: rfc2131.c:949
+#: rfc2131.c:978
 #, c-format
 msgid "not using configured address %s because it is in use by the server or relay"
 msgstr "benutze konfigurierte Adresse %s nicht, weil sie von Server/Relais verwendet wird"
 
-#: rfc2131.c:952
+#: rfc2131.c:981
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr "benutze konfigurierte Adresse %s nicht, weil sie zuvor abgelehnt wurde"
 
 # FIXME: do not assemble
-#: rfc2131.c:968 rfc2131.c:1141
+#: rfc2131.c:997 rfc2131.c:1189
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:1037
+#: rfc2131.c:1084
 msgid "wrong server-ID"
 msgstr ""
 
-#: rfc2131.c:1055
+#: rfc2131.c:1103
 msgid "wrong address"
 msgstr ""
 
-#: rfc2131.c:1073
+#: rfc2131.c:1121
 msgid "lease not found"
 msgstr ""
 
-#: rfc2131.c:1106
+#: rfc2131.c:1154
 msgid "address not available"
 msgstr ""
 
-#: rfc2131.c:1117
+#: rfc2131.c:1165
 msgid "static lease available"
 msgstr ""
 
-#: rfc2131.c:1121
+#: rfc2131.c:1169
 msgid "address reserved"
 msgstr ""
 
-#: rfc2131.c:1129
+#: rfc2131.c:1177
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr "Gebe Lease von %2$s an %1$s auf"
 
-#: rfc2131.c:1710
+#: rfc2131.c:1746
 #, c-format
 msgid "%u tags: %s"
 msgstr "%u Marken: %s"
 
-#: rfc2131.c:1723
+#: rfc2131.c:1774
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr "%u Name der Bootdatei: %s"
 
-#: rfc2131.c:1732
+#: rfc2131.c:1783
 #, c-format
 msgid "%u server name: %s"
 msgstr "%u Servername: %s"
 
-#: rfc2131.c:1746
+#: rfc2131.c:1791
 #, c-format
 msgid "%u next server: %s"
 msgstr "%u nächster Server: %s"
 
-#: rfc2131.c:1749
+#: rfc2131.c:1794
 #, c-format
 msgid "%u broadcast response"
 msgstr "%u Antwort per Rundsendung"
 
-#: rfc2131.c:1812
+#: rfc2131.c:1857
 #, c-format
 msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
 msgstr "kann DHCP/BOOTP-Opition %d nicht setzen: kein Platz mehr im Paket"
 
-#: rfc2131.c:2058
+#: rfc2131.c:2097
 msgid "PXE menu too large"
 msgstr "PXE-Menüeintrag zu groß"
 
-#: rfc2131.c:2171
+#: rfc2131.c:2253
+#, c-format
+msgid "Ignoring duplicate dhcp-option %d"
+msgstr ""
+
+#: rfc2131.c:2257
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr "Ignoriere Domäne %s für DHCP-Hostnamen %s"
 
-#: rfc2131.c:2189
+#: rfc2131.c:2275
 #, c-format
 msgid "%u requested options: %s"
 msgstr "%u angeforderte Optionen: %s"
 
-#: rfc2131.c:2456
+#: rfc2131.c:2550
 #, c-format
 msgid "cannot send RFC3925 option: too many options for enterprise number %d"
 msgstr "Kann RFC3925-Option nicht senden: zu viele Optionen für Unternehmen Nr. %d"
@@ -1433,59 +1464,64 @@ msgstr "vorgelagerte Server von DBus gesetzt"
 msgid "could not register a DBus message handler"
 msgstr "konnte Steuerungsprogramm für DBus-Nachrichten nicht anmelden"
 
-#: bpf.c:217
+#: bpf.c:224
 #, c-format
 msgid "cannot create DHCP BPF socket: %s"
 msgstr "konnte DHCP-BPF-Socket nicht einrichten: %s"
 
-#: bpf.c:245
+#: bpf.c:252
 #, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "DHCP-Anfrage für nicht unterstützen Hardwaretyp (%d) auf %s empfangen"
 
-#: tftp.c:281
+#: tftp.c:286
 msgid "unable to get free port for TFTP"
 msgstr "konnte keinen freien Port für TFTP bekommen"
 
-#: tftp.c:296
+#: tftp.c:301
 #, c-format
 msgid "unsupported request from %s"
 msgstr "nicht unterstützte Anfrage von %s"
 
-#: tftp.c:406
+#: tftp.c:411
 #, c-format
 msgid "file %s not found"
 msgstr "Datei %s nicht gefunden"
 
-#: tftp.c:522
+#: tftp.c:527
 #, c-format
 msgid "error %d %s received from %s"
 msgstr "Fehler %d %s von %s empfangen"
 
-#: tftp.c:554
+#: tftp.c:559
 #, c-format
 msgid "failed sending %s to %s"
 msgstr "konnte %s nicht an %s senden"
 
-#: tftp.c:568
+#: tftp.c:573
 #, c-format
 msgid "sent %s to %s"
 msgstr "%s an %s verschickt"
 
-#: log.c:177
+#: log.c:190
 #, c-format
 msgid "overflow: %d log entries lost"
 msgstr "Überlauf: %d Protokolleinträge verloren"
 
-#: log.c:254
+#: log.c:267
 #, c-format
 msgid "log failed: %s"
 msgstr "Protokollierung fehlgeschlagen: %s"
 
-#: log.c:462
+#: log.c:471
 msgid "FAILED to start up"
 msgstr "Start fehlgeschlagen"
 
+#: conntrack.c:65
+#, c-format
+msgid "Conntrack connection mark retrieval failed: %s"
+msgstr ""
+
 #~ msgid "only one dhcp-hostsfile allowed"
 #~ msgstr "nur eine DHCP-Hostdatei (dhcp-hostsfile) zulässig"
 
index efdd24ef381b8a12cc572d5f4ffc09df719ba748..9a28ba12f9fb58292a8001d15442edc51dde0d8a 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -20,17 +20,17 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr "no se pudo cargar nombres desde %s: %s"
 
-#: cache.c:795 dhcp.c:865
+#: cache.c:795 dhcp.c:874
 #, fuzzy, c-format
 msgid "bad address at %s line %d"
 msgstr "dirección errónea en %s línea %d"
 
-#: cache.c:853 dhcp.c:881
+#: cache.c:853 dhcp.c:890
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "nombre erróneo en %s línea %d"
 
-#: cache.c:860 dhcp.c:956
+#: cache.c:860 dhcp.c:965
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "direcciónes %s - %d leídas"
@@ -39,32 +39,37 @@ msgstr "direcci
 msgid "cleared cache"
 msgstr "el caché fue liberado"
 
-#: cache.c:960
+#: cache.c:934
+#, c-format
+msgid "No IPv4 address found for %s"
+msgstr ""
+
+#: cache.c:975
 #, c-format
 msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
 msgstr "%s es un CNAME, no se le está dando al arriendo DHCP de %s"
 
-#: cache.c:966
+#: cache.c:981
 #, c-format
 msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
 msgstr "no otorgando nombre %s al arriendo DHCP de %s porque el nombre existe en %s con dirección %s"
 
-#: cache.c:1039
+#: cache.c:1054
 #, c-format
 msgid "time %lu"
 msgstr "tiempo %lu"
 
-#: cache.c:1040
+#: cache.c:1055
 #, fuzzy, c-format
 msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
 msgstr "tamaño de caché %d, %d/%d inserciónes de caché reutilizaron objetos no vencidos."
 
-#: cache.c:1042
+#: cache.c:1057
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr "búsquedas reenviadas %u, búsquedas respondidas localmente %u"
 
-#: cache.c:1068
+#: cache.c:1083
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr "servidor %s#%d: búsquedas enviadas %u, reintentadas o fallidas %u"
@@ -79,7 +84,7 @@ msgstr "no se pudo crear valor semilla para el generador de n
 msgid "failed to allocate memory"
 msgstr "no se pudo asignar memoria"
 
-#: util.c:227 option.c:573
+#: util.c:227 option.c:579
 msgid "could not get memory"
 msgstr "no se pudo adquirir memoria"
 
@@ -93,471 +98,479 @@ msgstr "no se puede crear pipe: %s"
 msgid "failed to allocate %d bytes"
 msgstr "no se pudo asignar %d bytes"
 
-#: util.c:350
+#: util.c:358
 #, c-format
 msgid "infinite"
 msgstr "infinito"
 
-#: option.c:244
+#: option.c:248
 msgid "Specify local address(es) to listen on."
 msgstr "Especificar dirección(es) locales dónde escuchar."
 
-#: option.c:245
+#: option.c:249
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr "Retornar ipaddr (dirección IP) para todos los hosts en los dominios especificados."
 
-#: option.c:246
+#: option.c:250
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr "Falsificar búsquedas reversas para rangos de dirección privados RFC1918."
 
-#: option.c:247
+#: option.c:251
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr "Tratar ipaddr (dirección IP) como NXDOMAIN (derrota comodín Verisign)."
 
-#: option.c:248
+#: option.c:252
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr "Especificar tamaño de caché en cuanto a cantidad de objetos (%s por predeterminado)."
 
-#: option.c:249
+#: option.c:253
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr "Especificar archivo de configuración (%s por predeterminado)."
 
-#: option.c:250
+#: option.c:254
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr "NO hacer un fork hacia el fondo: correr en modo debug."
 
-#: option.c:251
+#: option.c:255
 msgid "Do NOT forward queries with no domain part."
 msgstr "NO reenviar búsquedas sin parte de dominio."
 
-#: option.c:252
+#: option.c:256
 msgid "Return self-pointing MX records for local hosts."
 msgstr "Retornar expedientes MX auto-señaladores para hosts locales."
 
-#: option.c:253
+#: option.c:257
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr "Expandir nombres simples en /etc/hosts con domain-suffix (sufijo de dominio)."
 
-#: option.c:254
+#: option.c:258
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr "No reenviar pedidos DNS falsos desde máquinas Windows."
 
-#: option.c:255
+#: option.c:259
 msgid "Enable DHCP in the range given with lease duration."
 msgstr "Habilitar DHCP dentro del rango brindado con duración del arriendo."
 
-#: option.c:256
+#: option.c:260
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr "Cambiar a este grupo después del inicio (%s por predeterminado)."
 
-#: option.c:257
+#: option.c:261
 msgid "Set address or hostname for a specified machine."
 msgstr "Fijar dirección o nombre de host para una máquina especificada."
 
-#: option.c:258
+#: option.c:262
 #, fuzzy
 msgid "Read DHCP host specs from file."
 msgstr "Leer especificaciones DHCP de host desde archivo"
 
-#: option.c:259
+#: option.c:263
 #, fuzzy
 msgid "Read DHCP option specs from file."
 msgstr "Leer opciones DHCP de host desde archivo"
 
-#: option.c:260
+#: option.c:264
 msgid "Evaluate conditional tag expression."
 msgstr "Evaluar expresión condicional de etiqueta."
 
-#: option.c:261
+#: option.c:265
 #, c-format
 msgid "Do NOT load %s file."
 msgstr "NO cargar archivo %s."
 
-#: option.c:262
+#: option.c:266
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr "Especificar un archivo de hosts para ser leído adicionalmente a %s."
 
-#: option.c:263
+#: option.c:267
 msgid "Specify interface(s) to listen on."
 msgstr "Especificar interface(s) donde escuchar."
 
-#: option.c:264
+#: option.c:268
 msgid "Specify interface(s) NOT to listen on."
 msgstr "Especificar interface(s) donde NO escuchar."
 
-#: option.c:265
+#: option.c:269
 #, fuzzy
 msgid "Map DHCP user class to tag."
 msgstr "Trazar clase de usuario DHCP a etiqueta."
 
-#: option.c:266
+#: option.c:270
 msgid "Map RFC3046 circuit-id to tag."
 msgstr "Trazar circuit-id (identificación de circuito) RFC3046 a etiqueta."
 
-#: option.c:267
+#: option.c:271
 msgid "Map RFC3046 remote-id to tag."
 msgstr "Trazar remote-id (identificación remota) RFC3046 a etiqueta."
 
-#: option.c:268
+#: option.c:272
 msgid "Map RFC3993 subscriber-id to tag."
 msgstr "Trazar subscriber-id (identificación de suscritor) RFC3993 a etiqueta."
 
-#: option.c:269
+#: option.c:273
 #, fuzzy
 msgid "Don't do DHCP for hosts with tag set."
 msgstr "No hacer DHCP para hosts con etiqueta fijada."
 
-#: option.c:270
+#: option.c:274
 #, fuzzy
 msgid "Force broadcast replies for hosts with tag set."
 msgstr "Forzar respuestas broadcast para hosts con etiqueta fijada."
 
-#: option.c:271
+#: option.c:275
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr "NO hacer un fork hacia el fondo, NO correr en modo debug."
 
-#: option.c:272
+#: option.c:276
 msgid "Assume we are the only DHCP server on the local network."
 msgstr "Asumir que somos el único servidor DHCP en la red local."
 
-#: option.c:273
+#: option.c:277
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr "Especificar donde almacenar arriendos DHCP (%s por predeterminado)."
 
-#: option.c:274
+#: option.c:278
 msgid "Return MX records for local hosts."
 msgstr "Retornar expedientes MX para hosts locales."
 
-#: option.c:275
+#: option.c:279
 msgid "Specify an MX record."
 msgstr "Especificar un expediente MX."
 
-#: option.c:276
+#: option.c:280
 msgid "Specify BOOTP options to DHCP server."
 msgstr "Especificar opciones BOOTP a servidor DHCP."
 
-#: option.c:277
+#: option.c:281
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr "NO revisar archivo %s periódicamente, recargar solo con SIGHUP."
 
-#: option.c:278
+#: option.c:282
 msgid "Do NOT cache failed search results."
 msgstr "NO almacenar en caché resultados de búsquedas fallidas."
 
-#: option.c:279
+#: option.c:283
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr "Usar servidores DNS estrictamente en el órden brindado en %s."
 
-#: option.c:280
+#: option.c:284
 #, fuzzy
 msgid "Specify options to be sent to DHCP clients."
 msgstr "Especificar opciones para ser enviadas a clientes DHCP."
 
-#: option.c:281
+#: option.c:285
 msgid "DHCP option sent even if the client does not request it."
 msgstr "Opción DHCP enviada aún si el cliente no la pide."
 
-#: option.c:282
+#: option.c:286
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr "Especificar puerto donde escuchar por búsquedas DNS (53 por predeterminado)."
 
-#: option.c:283
+#: option.c:287
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr "Tamaño máximo de paquetes UDP soportado para EDNS.0 (%s por predeterminado)."
 
-#: option.c:284
+#: option.c:288
 #, fuzzy
 msgid "Log DNS queries."
 msgstr "Bitacorear búsquedas DNS."
 
-#: option.c:285
+#: option.c:289
 #, fuzzy
 msgid "Force the originating port for upstream DNS queries."
 msgstr "Enforzar el puerto original para búsquedas DNS upstream."
 
-#: option.c:286
+#: option.c:290
 msgid "Do NOT read resolv.conf."
 msgstr "NO leer resolv.conf."
 
-#: option.c:287
+#: option.c:291
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr "Especificar el path hacia resolv.conf (%s por predeterminado)."
 
-#: option.c:288
+#: option.c:292
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr "Especificar dirección(es) de servidores upstream con dominios opcionales."
 
-#: option.c:289
+#: option.c:293
 msgid "Never forward queries to specified domains."
 msgstr "Nunca reenviar búsquedas a dominios especificados."
 
-#: option.c:290
+#: option.c:294
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr "Especificar el dominio para ser asignado en arriendos DHCP."
 
-#: option.c:291
+#: option.c:295
 msgid "Specify default target in an MX record."
 msgstr "Especificar destino predeterminado en un expediente MX."
 
-#: option.c:292
+#: option.c:296
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr "Especificar tiempo de vida en segundos para respuestas desde /etc/hosts."
 
-#: option.c:293
+#: option.c:297
 #, fuzzy
 msgid "Specify time-to-live in seconds for negative caching."
 msgstr "Especificar tiempo de vida en segundos para caché negativo."
 
-#: option.c:294
+#: option.c:298
 #, fuzzy
 msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
 msgstr "Especificar tiempo de vida en segundos para respuestas desde /etc/hosts."
 
-#: option.c:295
+#: option.c:299
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr "Cambiar a este usuario despues del inicio (%s por predeterminado)."
 
-#: option.c:296
+#: option.c:300
 #, fuzzy
 msgid "Map DHCP vendor class to tag."
 msgstr "Trazar clase de vendedor DHCP a etiqueta."
 
-#: option.c:297
+#: option.c:301
 msgid "Display dnsmasq version and copyright information."
 msgstr "Mostrar información sobre la versión y copyright de dnsmasq."
 
-#: option.c:298
+#: option.c:302
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr "Traducir direcciones IPv4 desde servidores upstream."
 
-#: option.c:299
+#: option.c:303
 msgid "Specify a SRV record."
 msgstr "Especificar un expediente SRV."
 
-#: option.c:300
+#: option.c:304
 msgid "Display this message. Use --help dhcp for known DHCP options."
 msgstr "Mostrar este mensaje. Usar --help dhcp para opciones DHCP conocidas."
 
-#: option.c:301
+#: option.c:305
 #, fuzzy, c-format
 msgid "Specify path of PID file (defaults to %s)."
 msgstr "Especificar path de archivo PID (%s por predeterminado)."
 
-#: option.c:302
+#: option.c:306
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr "Especificar número máximo de arriendos DHCP (%s por predeterminado)."
 
-#: option.c:303
+#: option.c:307
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr "Responder a búsquedas DNS en base a la interface a la cuál fueron enviadas."
 
-#: option.c:304
+#: option.c:308
 msgid "Specify TXT DNS record."
 msgstr "Especificar expediente DNS TXT."
 
-#: option.c:305
+#: option.c:309
 #, fuzzy
 msgid "Specify PTR DNS record."
 msgstr "Especificar expediente DNS PTR."
 
-#: option.c:306
+#: option.c:310
 msgid "Give DNS name to IPv4 address of interface."
 msgstr "Otorgar nombre DNS a dirección IPv4 de interface."
 
-#: option.c:307
+#: option.c:311
 msgid "Bind only to interfaces in use."
 msgstr "Acoplar solo a interfaces en uso."
 
-#: option.c:308
+#: option.c:312
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr "Leer información sobre hosts DHCP estáticos desde %s."
 
-#: option.c:309
+#: option.c:313
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr "Habilitar la interface DBus para fijar servidores upstream, etc."
 
-#: option.c:310
+#: option.c:314
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr "No proveer DHCP en esta interface, sólo proveer DNS."
 
-#: option.c:311
+#: option.c:315
 msgid "Enable dynamic address allocation for bootp."
 msgstr "Habilitar alocación dinámica de direcciónes para BOOTP."
 
-#: option.c:312
+#: option.c:316
 #, fuzzy
 msgid "Map MAC address (with wildcards) to option set."
 msgstr "Trazar dirección MAC (con comodínes) a opción fijada."
 
-#: option.c:313
+#: option.c:317
 msgid "Treat DHCP requests on aliases as arriving from interface."
 msgstr "Tratar pedidos DHCP en alias como si llegaran de la interface."
 
-#: option.c:314
+#: option.c:318
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr "Deshabilitar verificación de direcciónes para echo ICMP en el servidor DHCP."
 
-#: option.c:315
+#: option.c:319
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr "Archivo guión para ejecutar cuando se crea o destruye un arriendo DHCP."
 
-#: option.c:316
+#: option.c:320
 msgid "Read configuration from all the files in this directory."
 msgstr "Leer configuración desde todos los archivos en este directorio."
 
-#: option.c:317
+#: option.c:321
 #, fuzzy
 msgid "Log to this syslog facility or file. (defaults to DAEMON)"
 msgstr "Bitacorear a esta facilidad syslog o archivo. (DAEMON por predeterminado)"
 
-#: option.c:318
+#: option.c:322
 msgid "Do not use leasefile."
 msgstr "No usar archivo de arriendos."
 
-#: option.c:319
+#: option.c:323
 #, fuzzy, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr "Número máximo de búsquedas DNS simultáneas. (%s por predeterminado)"
 
-#: option.c:320
+#: option.c:324
 #, c-format
 msgid "Clear DNS cache when reloading %s."
 msgstr "Liberar caché DNS al recargar %s."
 
-#: option.c:321
+#: option.c:325
 msgid "Ignore hostnames provided by DHCP clients."
 msgstr "Ignorar nombres de host brindados por clientes DHCP."
 
-#: option.c:322
+#: option.c:326
 msgid "Do NOT reuse filename and server fields for extra DHCP options."
 msgstr "NO reutilizar campos de nombre de archivo y servidor para opciones DHCP extra."
 
-#: option.c:323
+#: option.c:327
 msgid "Enable integrated read-only TFTP server."
 msgstr "Habilitar servidor integrado TFTP solo-lectura."
 
-#: option.c:324
+#: option.c:328
 msgid "Export files by TFTP only from the specified subtree."
 msgstr "Exportar archivos vía TFTP solo del sub-árbol especificado."
 
-#: option.c:325
+#: option.c:329
 msgid "Add client IP address to tftp-root."
 msgstr "Agregar IP de cliente a tftp-root."
 
-#: option.c:326
+#: option.c:330
 msgid "Allow access only to files owned by the user running dnsmasq."
 msgstr "Permitir acceso solo a archivos pertenecientes al usuario que corre dnsmasq."
 
-#: option.c:327
+#: option.c:331
 #, fuzzy, c-format
 msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
 msgstr "Número máximo de transferencias TFTP simultáneas (%s por predeterminado)."
 
-#: option.c:328
+#: option.c:332
 msgid "Disable the TFTP blocksize extension."
 msgstr "Deshabilitar la extensión TFTP blocksize (tamaño de bloque)."
 
-#: option.c:329
+#: option.c:333
 msgid "Ephemeral port range for use by TFTP transfers."
 msgstr "Rango de puertos efímeros para ser usados por transferencias TFTP."
 
-#: option.c:330
+#: option.c:334
 msgid "Extra logging for DHCP."
 msgstr "Bitacoreo extra para DHCP."
 
-#: option.c:331
+#: option.c:335
 msgid "Enable async. logging; optionally set queue length."
 msgstr "Habilitar bitacoreo asincrónico; opcionalmente fijar tamaño de cola."
 
-#: option.c:332
+#: option.c:336
 msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
 msgstr "Detener revinculación DNS. Filtrar rangos de IP privados al resolver."
 
-#: option.c:333
+#: option.c:337
 msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
 msgstr "Permitir revinculación de 127.0.0.0/8, para servidores RBL."
 
-#: option.c:334
+#: option.c:338
 msgid "Inhibit DNS-rebind protection on this domain."
 msgstr "Inhibir protección de revinculación DNS en este dominio."
 
-#: option.c:335
+#: option.c:339
 msgid "Always perform DNS queries to all servers."
 msgstr "Siempre realizar búsquedas DNS a todos los servidores."
 
-#: option.c:336
+#: option.c:340
 #, fuzzy
 msgid "Set tag if client includes matching option in request."
 msgstr "Fijar etiqueta si cliente incluye opción coincidente en pedido."
 
-#: option.c:337
+#: option.c:341
 msgid "Use alternative ports for DHCP."
 msgstr "Usar puertos alternativos para DHCP."
 
-#: option.c:338
+#: option.c:342
 msgid "Run lease-change script as this user."
 msgstr "Correr archivo guión de cambio de arriendos como este usuario."
 
-#: option.c:339
+#: option.c:343
 #, fuzzy
 msgid "Specify NAPTR DNS record."
 msgstr "Especificar expediente DNS NAPTR."
 
-#: option.c:340
+#: option.c:344
 msgid "Specify lowest port available for DNS query transmission."
 msgstr "Especificar puerto más bajo disponible para transmisión de búsquedas DNS."
 
-#: option.c:341
+#: option.c:345
 msgid "Use only fully qualified domain names for DHCP clients."
 msgstr "Usar solo nombres de dominio completamente calificados para clientes DHCP."
 
-#: option.c:342
+#: option.c:346
 msgid "Generate hostnames based on MAC address for nameless clients."
 msgstr "Generar hostnames basados en direcciones MAC para clientes sin nombre."
 
-#: option.c:343
+#: option.c:347
 msgid "Use these DHCP relays as full proxies."
 msgstr "Usar estos relays DHCP como proxies completos."
 
-#: option.c:344
+#: option.c:348
 msgid "Specify alias name for LOCAL DNS name."
 msgstr "Especificar nombre alias para nombre DNS LOCAL."
 
-#: option.c:345
+#: option.c:349
 #, fuzzy
 msgid "Prompt to send to PXE clients."
 msgstr "Aviso a ser enviado a clientes PXE."
 
-#: option.c:346
+#: option.c:350
 msgid "Boot service for PXE menu."
 msgstr "Servico boot para menú PXE."
 
-#: option.c:347
+#: option.c:351
 msgid "Check configuration syntax."
 msgstr "Revisar sintaxis de configuración."
 
-#: option.c:348
-msgid "Add requestor's MAC address to forwarded DNS queries"
+#: option.c:352
+msgid "Add requestor's MAC address to forwarded DNS queries."
 msgstr ""
 
-#: option.c:349
+#: option.c:353
 #, fuzzy
-msgid "Proxy DNSSEC validation results from upstream nameservers"
+msgid "Proxy DNSSEC validation results from upstream nameservers."
 msgstr "Traducir direcciones IPv4 desde servidores upstream."
 
-#: option.c:638
+#: option.c:354
+msgid "Attempt to allocate sequential IP addresses to DHCP clients."
+msgstr ""
+
+#: option.c:355
+msgid "Copy connection-track mark from queries to upstream connections."
+msgstr ""
+
+#: option.c:644
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -566,238 +579,242 @@ msgstr ""
 "Modo de uso: dnsmasq [opciones]\n"
 "\n"
 
-#: option.c:640
+#: option.c:646
 #, 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:642
+#: option.c:648
 #, fuzzy, c-format
 msgid "Valid options are:\n"
 msgstr "Opciones válidas son :\n"
 
-#: option.c:683
+#: option.c:689
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr "Opciones DHCP conocidas:\n"
 
-#: option.c:798
+#: option.c:804
 msgid "bad dhcp-option"
 msgstr "opción dhcp-option errónea"
 
-#: option.c:860
+#: option.c:866
 #, fuzzy
 msgid "bad IP address"
 msgstr "dirección IP errónea"
 
-#: option.c:968
+#: option.c:974
 msgid "bad domain in dhcp-option"
 msgstr "dominio erróneo en dhcp-option"
 
-#: option.c:1034
+#: option.c:1040
 msgid "dhcp-option too long"
 msgstr "opción dhcp-option demasiado larga"
 
-#: option.c:1043
+#: option.c:1049
 msgid "illegal dhcp-match"
 msgstr "dhcp-match ilegal"
 
-#: option.c:1087
+#: option.c:1093
 msgid "illegal repeated flag"
 msgstr "opción repetida ilegal"
 
-#: option.c:1095
+#: option.c:1101
 msgid "illegal repeated keyword"
 msgstr "palabra clave repetida ilegal"
 
-#: option.c:1147 option.c:3030
+#: option.c:1153 option.c:3062
 #, fuzzy, c-format
 msgid "cannot access directory %s: %s"
 msgstr "no se puede accesar directorio %s: %s"
 
-#: option.c:1178 tftp.c:460
+#: option.c:1184 tftp.c:465
 #, fuzzy, c-format
 msgid "cannot access %s: %s"
 msgstr "no se puede accesar %s: %s"
 
-#: option.c:1207
+#: option.c:1213
 msgid "setting log facility is not possible under Android"
 msgstr ""
 
-#: option.c:1216
+#: option.c:1222
 msgid "bad log facility"
 msgstr ""
 
-#: option.c:1265
+#: option.c:1271
 msgid "bad MX preference"
 msgstr "preferencia MX errónea"
 
-#: option.c:1270
+#: option.c:1276
 msgid "bad MX name"
 msgstr "nombre MX erróneo"
 
-#: option.c:1284
+#: option.c:1290
 msgid "bad MX target"
 msgstr "destino MX erróneo"
 
-#: option.c:1294
+#: option.c:1300
 msgid "cannot run scripts under uClinux"
 msgstr "no se pueden correr archivos guiónes bajo uClinux"
 
-#: option.c:1296
+#: option.c:1302
 msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
 msgstr "recompilar con HAVE_SCRIPT definido para habilitar guiónes de cambio de arriendo"
 
-#: option.c:1597 option.c:1601
+#: option.c:1607 option.c:1611
 msgid "bad port"
 msgstr "puerto erróneo"
 
-#: option.c:1620 option.c:1645
+#: option.c:1634 option.c:1665
 msgid "interface binding not supported"
 msgstr "vinculación de interface no está soportado"
 
-#: option.c:1791
+#: option.c:1645 option.c:2614
+#, fuzzy
+msgid "bad interface name"
+msgstr "nombre de interface erróneo"
+
+#: option.c:1810
 #, fuzzy
 msgid "bad port range"
 msgstr "rango de puertos erróneo"
 
-#: option.c:1808
+#: option.c:1827
 msgid "bad bridge-interface"
 msgstr "opción bridge-interface (interface puente) errónea"
 
-#: option.c:1850
+#: option.c:1870
 msgid "bad dhcp-range"
 msgstr "opción dhcp-range (rango DHCP) errónea"
 
-#: option.c:1878
+#: option.c:1898
 msgid "only one tag allowed"
 msgstr "solo una etiqueta permitida"
 
-#: option.c:1925
+#: option.c:1945
 msgid "inconsistent DHCP range"
 msgstr "rango DHCP inconsistente"
 
-#: option.c:2019 option.c:2045
+#: option.c:2039 option.c:2067
 #, fuzzy
 msgid "bad hex constant"
 msgstr "opción dhcp-host errónea"
 
-#: option.c:2107
+#: option.c:2061
+msgid "cannot match tags in --dhcp-host"
+msgstr ""
+
+#: option.c:2129
 #, fuzzy
 msgid "bad DHCP host name"
 msgstr "nombre de host DHCP erróneo"
 
-#: option.c:2188
+#: option.c:2210
 #, fuzzy
 msgid "bad tag-if"
 msgstr "destino MX erróneo"
 
-#: option.c:2467 option.c:2752
+#: option.c:2499 option.c:2784
 msgid "invalid port number"
 msgstr "número de puerto inválido"
 
-#: option.c:2529
+#: option.c:2561
 #, fuzzy
 msgid "bad dhcp-proxy address"
 msgstr "dirección IP errónea"
 
-#: option.c:2569
+#: option.c:2601
 #, fuzzy
 msgid "invalid alias range"
 msgstr "rango alias inválido"
 
-#: option.c:2582
-#, fuzzy
-msgid "bad interface name"
-msgstr "nombre de interface erróneo"
-
-#: option.c:2607
+#: option.c:2639
 msgid "bad CNAME"
 msgstr "CNAME erróneo"
 
-#: option.c:2612
+#: option.c:2644
 msgid "duplicate CNAME"
 msgstr "CNAME duplicado"
 
-#: option.c:2632
+#: option.c:2664
 #, fuzzy
 msgid "bad PTR record"
 msgstr "expediente PTR erróneo"
 
-#: option.c:2663
+#: option.c:2695
 #, fuzzy
 msgid "bad NAPTR record"
 msgstr "expediente NAPTR erróneo"
 
-#: option.c:2695
+#: option.c:2727
 msgid "bad TXT record"
 msgstr "expediente TXT erróneo"
 
-#: option.c:2738
+#: option.c:2770
 msgid "bad SRV record"
 msgstr "expediente SRV erróneo"
 
-#: option.c:2745
+#: option.c:2777
 msgid "bad SRV target"
 msgstr "destino SRV erróneo"
 
-#: option.c:2759
+#: option.c:2791
 msgid "invalid priority"
 msgstr "prioridad inválida"
 
-#: option.c:2766
+#: option.c:2798
 msgid "invalid weight"
 msgstr "peso inválido"
 
-#: option.c:2785
+#: option.c:2817
 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:2849
+#: option.c:2881
 msgid "missing \""
 msgstr "falta \""
 
-#: option.c:2908
+#: option.c:2940
 msgid "bad option"
 msgstr "opción errónea"
 
-#: option.c:2910
+#: option.c:2942
 msgid "extraneous parameter"
 msgstr "parámetro extraño"
 
-#: option.c:2912
+#: option.c:2944
 msgid "missing parameter"
 msgstr "parámetro ausente"
 
-#: option.c:2916
+#: option.c:2948
 msgid "error"
 msgstr "error"
 
-#: option.c:2921
+#: option.c:2953
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr "%s en línea %d de %%s"
 
-#: option.c:2985 tftp.c:624
+#: option.c:3017 tftp.c:629
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "no se puede leer %s: %s"
 
-#: option.c:3151 option.c:3187
+#: option.c:3183 option.c:3219
 #, fuzzy, c-format
 msgid "read %s"
 msgstr "leyendo %s"
 
-#: option.c:3239
+#: option.c:3271
 msgid "junk found in command line"
 msgstr ""
 
-#: option.c:3269
+#: option.c:3301
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Dnsmasq versión %s  %s\n"
 
-#: option.c:3270
+#: option.c:3302
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -806,72 +823,72 @@ msgstr ""
 "Opciones de compilación %s\n"
 "\n"
 
-#: option.c:3271
+#: option.c:3303
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Este software viene SIN NINGUNA GARANTIA.\n"
 
-#: option.c:3272
+#: option.c:3304
 #, 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:3273
+#: option.c:3305
 #, 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:3284
+#: option.c:3316
 msgid "try --help"
 msgstr "pruebe --help"
 
-#: option.c:3286
+#: option.c:3318
 msgid "try -w"
 msgstr "pruebe -w"
 
-#: option.c:3289
+#: option.c:3321
 #, fuzzy, c-format
 msgid "bad command line options: %s"
 msgstr "opciones de línea de comandos erróneas: %s"
 
-#: option.c:3330
+#: option.c:3362
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "no se puede obtener host-name (nombre de host): %s"
 
-#: option.c:3358
+#: option.c:3390
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr "solo un archivo resolv.conf permitido en modo no-poll."
 
-#: option.c:3368
+#: option.c:3400
 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:3371 network.c:848 dhcp.c:814
+#: option.c:3403 network.c:848 dhcp.c:823
 #, fuzzy, c-format
 msgid "failed to read %s: %s"
 msgstr "no se pudo leer %s: %s"
 
-#: option.c:3388
+#: option.c:3420
 #, c-format
 msgid "no search directive found in %s"
 msgstr "ninguna directiva de búsqueda encontrada en %s"
 
-#: option.c:3409
+#: option.c:3441
 #, fuzzy
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr "debe haber un dominio predeterminado cuando --dhcp-fqdn está fijado"
 
-#: option.c:3413
+#: option.c:3445
 msgid "syntax check OK"
 msgstr "revisión de sintaxis OK"
 
-#: forward.c:461
+#: forward.c:471
 #, 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:489
+#: forward.c:499
 #, fuzzy, c-format
 msgid "possible DNS-rebind attack detected: %s"
 msgstr "posible ataque de revinculación DNS detectado"
@@ -942,278 +959,287 @@ msgstr "usando servidor DNS %s#%d(v
 msgid "using nameserver %s#%d"
 msgstr "usando servidor DNS %s#%d"
 
-#: dnsmasq.c:148
+#: dnsmasq.c:152
 #, fuzzy
 msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
 msgstr "servidor TFTP no disponible: fijar HAVE_TFTP en src/config.h"
 
-#: dnsmasq.c:153
+#: dnsmasq.c:157
+msgid "Cannot use --conntrack AND --query-port"
+msgstr ""
+
+#: dnsmasq.c:160
+#, fuzzy
+msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
+msgstr "servidor TFTP no disponible: fijar HAVE_TFTP en src/config.h"
+
+#: dnsmasq.c:165
 #, fuzzy
 msgid "asychronous logging is not available under Solaris"
 msgstr "bitacoreo asincrónico no está disponible bajo Solaris"
 
-#: dnsmasq.c:158
+#: dnsmasq.c:170
 #, fuzzy
 msgid "asychronous logging is not available under Android"
 msgstr "bitacoreo asincrónico no está disponible bajo Solaris"
 
-#: dnsmasq.c:177
+#: dnsmasq.c:189
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "no se pudo encontrar lista de interfaces: %s"
 
-#: dnsmasq.c:185
+#: dnsmasq.c:197
 #, c-format
 msgid "unknown interface %s"
 msgstr "interface desconocida %s"
 
-#: dnsmasq.c:191
+#: dnsmasq.c:203
 #, c-format
 msgid "no interface with address %s"
 msgstr "ninguna interface con dirección %s"
 
-#: dnsmasq.c:207 dnsmasq.c:678
+#: dnsmasq.c:219 dnsmasq.c:690
 #, c-format
 msgid "DBus error: %s"
 msgstr "error DBus: %s"
 
-#: dnsmasq.c:210
+#: dnsmasq.c:222
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr "DBus no disponible: fijar HAVE_DBUS en src/config.h"
 
-#: dnsmasq.c:236
+#: dnsmasq.c:248
 #, c-format
 msgid "unknown user or group: %s"
 msgstr "usuario o grupo desconocido: %s"
 
-#: dnsmasq.c:291
+#: dnsmasq.c:303
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr "no se puede cambiar directorio a raíz de sistema de archivos: %s"
 
-#: dnsmasq.c:455
+#: dnsmasq.c:467
 #, fuzzy, c-format
 msgid "started, version %s DNS disabled"
 msgstr "iniciado, versión %s DNS deshabilitado"
 
-#: dnsmasq.c:457
+#: dnsmasq.c:469
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "iniciado, versión %s tamaño de caché %d"
 
-#: dnsmasq.c:459
+#: dnsmasq.c:471
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "iniciado, versión %s caché deshabilitado"
 
-#: dnsmasq.c:461
+#: dnsmasq.c:473
 #, c-format
 msgid "compile time options: %s"
 msgstr "opciones de compilación: %s"
 
-#: dnsmasq.c:467
+#: dnsmasq.c:479
 msgid "DBus support enabled: connected to system bus"
 msgstr "soporte DBus habilitado: conectado a bus de sistema"
 
-#: dnsmasq.c:469
+#: dnsmasq.c:481
 msgid "DBus support enabled: bus connection pending"
 msgstr "soporte DBus habilitado: conección a bus pendiente"
 
-#: dnsmasq.c:474
+#: dnsmasq.c:486
 #, fuzzy, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr "advertencia: no se pudo cambiar dueño de %s: %s"
 
-#: dnsmasq.c:478
+#: dnsmasq.c:490
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "fijando opción --bind-interfaces debido a limitaciones de sistema operativo"
 
-#: dnsmasq.c:483
+#: dnsmasq.c:495
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "advertencia: interface %s no existe actuálmente"
 
-#: dnsmasq.c:488
+#: dnsmasq.c:500
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr "advertencia: ignorando opción resolv-file porque no-resolv está fijado"
 
-#: dnsmasq.c:491
+#: dnsmasq.c:503
 #, fuzzy
 msgid "warning: no upstream servers configured"
 msgstr "advertencia: ningún servidor upstream configurado"
 
-#: dnsmasq.c:495
+#: dnsmasq.c:507
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr "bitacoreo asincrónico habilitado, límite de cola es %d mensajes"
 
-#: dnsmasq.c:508
+#: dnsmasq.c:520
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr "DHCP, arriendos estáticos solo en %.0s%s, tiempo de arriendo %s"
 
-#: dnsmasq.c:510
+#: dnsmasq.c:522
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr "DHCP, proxy en subred %.0s%s%.0s"
 
-#: dnsmasq.c:511
+#: dnsmasq.c:523
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, rango de IPs %s -- %s, tiempo de arriendo %s"
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "root is "
 msgstr "root es "
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 #, fuzzy
 msgid "enabled"
 msgstr "habilitado"
 
-#: dnsmasq.c:528
+#: dnsmasq.c:540
 msgid "secure mode"
 msgstr "modo seguro"
 
-#: dnsmasq.c:554
+#: dnsmasq.c:566
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr "limitando número máximo de transferencias TFTP simultáneas a %d"
 
-#: dnsmasq.c:680
+#: dnsmasq.c:692
 msgid "connected to system DBus"
 msgstr "conectado a DBus de sistema"
 
-#: dnsmasq.c:775
+#: dnsmasq.c:787
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr "no se puede hacer fork hacia el fondo: %s"
 
-#: dnsmasq.c:778
+#: dnsmasq.c:790
 #, fuzzy, c-format
 msgid "failed to create helper: %s"
 msgstr "no se pudo crear ayudante: %s"
 
-#: dnsmasq.c:781
+#: dnsmasq.c:793
 #, fuzzy, c-format
 msgid "setting capabilities failed: %s"
 msgstr "configuración de capacidades ha fallado: %s"
 
-#: dnsmasq.c:785
+#: dnsmasq.c:797
 #, fuzzy, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr "no se pudo cambiar user-id a %s: %s"
 
-#: dnsmasq.c:790
+#: dnsmasq.c:802
 #, fuzzy, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr "no se pudo cambiar group-id a %s: %s"
 
-#: dnsmasq.c:793
+#: dnsmasq.c:805
 #, fuzzy, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr "no se pudo abrir archivo PID %s: %s"
 
-#: dnsmasq.c:796
+#: dnsmasq.c:808
 #, fuzzy, c-format
 msgid "cannot open %s: %s"
 msgstr "no se puede abrir %s: %s"
 
-#: dnsmasq.c:851
+#: dnsmasq.c:863
 #, c-format
 msgid "child process killed by signal %d"
 msgstr "proceso hijo eliminado por señal %d"
 
-#: dnsmasq.c:855
+#: dnsmasq.c:867
 #, c-format
 msgid "child process exited with status %d"
 msgstr "proceso hijo hizo exit con estado %d"
 
-#: dnsmasq.c:859
+#: dnsmasq.c:871
 #, fuzzy, c-format
 msgid "failed to execute %s: %s"
 msgstr "no se pudo ejecutar %s: %s"
 
-#: dnsmasq.c:903
+#: dnsmasq.c:915
 msgid "exiting on receipt of SIGTERM"
 msgstr "saliendo al recibir SIGTERM"
 
-#: dnsmasq.c:931
+#: dnsmasq.c:943
 #, fuzzy, c-format
 msgid "failed to access %s: %s"
 msgstr "no se pudo accesar %s: %s"
 
-#: dnsmasq.c:961
+#: dnsmasq.c:973
 #, c-format
 msgid "reading %s"
 msgstr "leyendo %s"
 
-#: dnsmasq.c:972
+#: dnsmasq.c:984
 #, fuzzy, c-format
 msgid "no servers found in %s, will retry"
 msgstr "ningún servidor encontrado en %s, se reintentará"
 
-#: dhcp.c:40
+#: dhcp.c:39
 #, c-format
 msgid "cannot create DHCP socket: %s"
 msgstr "no se puede crear socket DHCP: %s"
 
-#: dhcp.c:52
+#: dhcp.c:51
 #, c-format
 msgid "failed to set options on DHCP socket: %s"
 msgstr "no se pudo fijar opciones en socket DHCP: %s"
 
-#: dhcp.c:65
+#: dhcp.c:64
 #, fuzzy, c-format
 msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
 msgstr "no se pudo fijar SO_REUSE{ADDR|PORT} en socket DHCP: %s"
 
-#: dhcp.c:77
+#: dhcp.c:76
 #, c-format
 msgid "failed to bind DHCP server socket: %s"
 msgstr "no se pudo acoplar socket de servidor DHCP: %s"
 
-#: dhcp.c:103
+#: dhcp.c:102
 #, c-format
 msgid "cannot create ICMP raw socket: %s."
 msgstr "no se puede crear socket crudo ICMP: %s."
 
-#: dhcp.c:281
+#: dhcp.c:278
 #, 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:445
+#: dhcp.c:442
 #, 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:852
+#: dhcp.c:861
 #, fuzzy, c-format
 msgid "bad line at %s line %d"
 msgstr "línea errónea en %s línea %d"
 
-#: dhcp.c:895
+#: dhcp.c:904
 #, c-format
 msgid "ignoring %s line %d, duplicate name or IP address"
 msgstr "ignorando %s línea %d, nombre o dirección IP duplicada"
 
-#: dhcp.c:978
+#: dhcp.c:987
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "dirección IP duplicada %s en directiva dhcp-config."
 
-#: dhcp.c:981
+#: dhcp.c:990
 #, fuzzy, c-format
 msgid "duplicate IP address %s in %s."
 msgstr "dirección IP duplicada %s en %s."
 
-#: dhcp.c:1024
+#: dhcp.c:1033
 #, 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:1029
+#: dhcp.c:1038
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "dirección IP duplicada %s (%s) en directiva dhcp-config"
@@ -1242,178 +1268,183 @@ msgstr "archivo gui
 msgid "failed to write %s: %s (retry in %us)"
 msgstr "error al escribir %s: %s (reintentar en %us)"
 
-#: rfc2131.c:315
+#: rfc2131.c:342
 #, 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:316
+#: rfc2131.c:343
 msgid "with subnet selector"
 msgstr "con selector de subred"
 
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "via"
 msgstr "vía"
 
-#: rfc2131.c:331
+#: rfc2131.c:355
 #, fuzzy, c-format
 msgid "%u available DHCP subnet: %s/%s"
 msgstr "%u Subred DHCP disponible: %s/%s"
 
-#: rfc2131.c:334
+#: rfc2131.c:358
 #, fuzzy, c-format
 msgid "%u available DHCP range: %s -- %s"
 msgstr "%u Rango DHCP disponible: %s -- %s"
 
-#: rfc2131.c:363
+#: rfc2131.c:387
 msgid "disabled"
 msgstr "deshabilitado"
 
-#: rfc2131.c:404 rfc2131.c:916 rfc2131.c:1288
+#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
 msgid "ignored"
 msgstr "ignorado"
 
-#: rfc2131.c:419 rfc2131.c:1135
+#: rfc2131.c:443 rfc2131.c:1183
 msgid "address in use"
 msgstr "dirección en uso"
 
-#: rfc2131.c:433 rfc2131.c:970
+#: rfc2131.c:457 rfc2131.c:999
 msgid "no address available"
 msgstr "ninguna dirección disponible"
 
-#: rfc2131.c:440 rfc2131.c:1098
+#: rfc2131.c:464 rfc2131.c:1146
 msgid "wrong network"
 msgstr "red equivocada"
 
-#: rfc2131.c:454
+#: rfc2131.c:479
 msgid "no address configured"
 msgstr "ninguna dirección configurada"
 
-#: rfc2131.c:460 rfc2131.c:1148
+#: rfc2131.c:485 rfc2131.c:1196
 msgid "no leases left"
 msgstr "no sobra ningún arriendo"
 
-#: rfc2131.c:545
+#: rfc2131.c:570
 #, fuzzy, c-format
 msgid "%u client provides name: %s"
 msgstr "%u cliente provee nombre: %s"
 
-#: rfc2131.c:700
+#: rfc2131.c:725
 #, fuzzy, c-format
 msgid "%u vendor class: %s"
 msgstr "%u Clase de vendedor: %s"
 
-#: rfc2131.c:702
+#: rfc2131.c:727
 #, fuzzy, c-format
 msgid "%u user class: %s"
 msgstr "%u Clase de usuario: %s"
 
-#: rfc2131.c:761
+#: rfc2131.c:786
 msgid "PXE BIS not supported"
 msgstr "no hay soporte para BIS PXE"
 
-#: rfc2131.c:886
+#: rfc2131.c:915
 #, fuzzy, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "deshabilitando dirección DHCP estática %s para %s"
 
-#: rfc2131.c:907
+#: rfc2131.c:936
 msgid "unknown lease"
 msgstr "arriendo desconocido"
 
-#: rfc2131.c:939
+#: rfc2131.c:968
 #, 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:949
+#: rfc2131.c:978
 #, 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:952
+#: rfc2131.c:981
 #, 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:968 rfc2131.c:1141
+#: rfc2131.c:997 rfc2131.c:1189
 msgid "no unique-id"
 msgstr "ningún unique-id (identificación única)"
 
-#: rfc2131.c:1037
+#: rfc2131.c:1084
 msgid "wrong server-ID"
 msgstr "ID de servidor equivocada"
 
-#: rfc2131.c:1055
+#: rfc2131.c:1103
 msgid "wrong address"
 msgstr "dirección equivocada"
 
-#: rfc2131.c:1073
+#: rfc2131.c:1121
 msgid "lease not found"
 msgstr "arriendo no encontrado"
 
-#: rfc2131.c:1106
+#: rfc2131.c:1154
 msgid "address not available"
 msgstr "dirección no disponible"
 
-#: rfc2131.c:1117
+#: rfc2131.c:1165
 msgid "static lease available"
 msgstr "arriendo estático disponible"
 
-#: rfc2131.c:1121
+#: rfc2131.c:1169
 msgid "address reserved"
 msgstr "dirección reservada"
 
-#: rfc2131.c:1129
+#: rfc2131.c:1177
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr "abandonando arriendo a %s de %s"
 
-#: rfc2131.c:1710
+#: rfc2131.c:1746
 #, c-format
 msgid "%u tags: %s"
 msgstr "%u etiquetas: %s"
 
-#: rfc2131.c:1723
+#: rfc2131.c:1774
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr "%u nombre de bootfile: %s"
 
-#: rfc2131.c:1732
+#: rfc2131.c:1783
 #, c-format
 msgid "%u server name: %s"
 msgstr "%u nombre de servidor: %s"
 
-#: rfc2131.c:1746
+#: rfc2131.c:1791
 #, fuzzy, c-format
 msgid "%u next server: %s"
 msgstr "%u siguiente servidor: %s"
 
-#: rfc2131.c:1749
+#: rfc2131.c:1794
 #, c-format
 msgid "%u broadcast response"
 msgstr ""
 
-#: rfc2131.c:1812
+#: rfc2131.c:1857
 #, 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:2058
+#: rfc2131.c:2097
 msgid "PXE menu too large"
 msgstr "menú PXE demasiado grande"
 
-#: rfc2131.c:2171
+#: rfc2131.c:2253
+#, c-format
+msgid "Ignoring duplicate dhcp-option %d"
+msgstr ""
+
+#: rfc2131.c:2257
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr "Ignorando dominio %s para nombre de host DHCP %s"
 
-#: rfc2131.c:2189
+#: rfc2131.c:2275
 #, fuzzy, c-format
 msgid "%u requested options: %s"
 msgstr "%u opciones solicitadas: %s"
 
-#: rfc2131.c:2456
+#: rfc2131.c:2550
 #, 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"
@@ -1440,59 +1471,64 @@ msgstr "fijando servidores upstream desde DBus"
 msgid "could not register a DBus message handler"
 msgstr "no se pudo registrar un manejador de mensajes DBus"
 
-#: bpf.c:217
+#: bpf.c:224
 #, c-format
 msgid "cannot create DHCP BPF socket: %s"
 msgstr "no se puede crear socket BPF DHCP: %s"
 
-#: bpf.c:245
+#: bpf.c:252
 #, fuzzy, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "pedido DHCP por tipo de hardware no-soportado (%d) recibido en %s"
 
-#: tftp.c:281
+#: tftp.c:286
 msgid "unable to get free port for TFTP"
 msgstr "incapaz de conseguir puerto libre para TFTP"
 
-#: tftp.c:296
+#: tftp.c:301
 #, c-format
 msgid "unsupported request from %s"
 msgstr "pedido no-soportado desde %s"
 
-#: tftp.c:406
+#: tftp.c:411
 #, fuzzy, c-format
 msgid "file %s not found"
 msgstr "archivo %s no encontrado"
 
-#: tftp.c:522
+#: tftp.c:527
 #, fuzzy, c-format
 msgid "error %d %s received from %s"
 msgstr "error TFTP %d %s recibido de %s"
 
-#: tftp.c:554
+#: tftp.c:559
 #, fuzzy, c-format
 msgid "failed sending %s to %s"
 msgstr "TFTP no pudo enviar %s a %s"
 
-#: tftp.c:568
+#: tftp.c:573
 #, fuzzy, c-format
 msgid "sent %s to %s"
 msgstr "TFTP envió %s a %s"
 
-#: log.c:177
+#: log.c:190
 #, c-format
 msgid "overflow: %d log entries lost"
 msgstr "desbordamiento: %d entradas de bitácora perdidas"
 
-#: log.c:254
+#: log.c:267
 #, c-format
 msgid "log failed: %s"
 msgstr "bitácora falló: %s"
 
-#: log.c:462
+#: log.c:471
 msgid "FAILED to start up"
 msgstr "el inicio ha FALLADO"
 
+#: conntrack.c:65
+#, c-format
+msgid "Conntrack connection mark retrieval failed: %s"
+msgstr ""
+
 #, fuzzy
 #~ msgid "only one dhcp-hostsfile allowed"
 #~ msgstr "solo un dhcp-hostsfile permitido"
index ccd0338100d8d127bc31f7919841eeff67dfa3ef..fb07a74b8f426507c2c614f10c3e078638bea593 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -20,17 +20,17 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr ""
 
-#: cache.c:795 dhcp.c:865
+#: cache.c:795 dhcp.c:874
 #, c-format
 msgid "bad address at %s line %d"
 msgstr ""
 
-#: cache.c:853 dhcp.c:881
+#: cache.c:853 dhcp.c:890
 #, c-format
 msgid "bad name at %s line %d"
 msgstr ""
 
-#: cache.c:860 dhcp.c:956
+#: cache.c:860 dhcp.c:965
 #, c-format
 msgid "read %s - %d addresses"
 msgstr ""
@@ -39,32 +39,37 @@ msgstr ""
 msgid "cleared cache"
 msgstr ""
 
-#: cache.c:960
+#: cache.c:934
+#, c-format
+msgid "No IPv4 address found for %s"
+msgstr ""
+
+#: cache.c:975
 #, c-format
 msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
 msgstr ""
 
-#: cache.c:966
+#: cache.c:981
 #, c-format
 msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
 msgstr ""
 
-#: cache.c:1039
+#: cache.c:1054
 #, c-format
 msgid "time %lu"
 msgstr ""
 
-#: cache.c:1040
+#: cache.c:1055
 #, c-format
 msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
 msgstr ""
 
-#: cache.c:1042
+#: cache.c:1057
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr ""
 
-#: cache.c:1068
+#: cache.c:1083
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr ""
@@ -78,7 +83,7 @@ msgstr ""
 msgid "failed to allocate memory"
 msgstr ""
 
-#: util.c:227 option.c:573
+#: util.c:227 option.c:579
 msgid "could not get memory"
 msgstr ""
 
@@ -92,752 +97,764 @@ msgstr ""
 msgid "failed to allocate %d bytes"
 msgstr ""
 
-#: util.c:350
+#: util.c:358
 #, c-format
 msgid "infinite"
 msgstr ""
 
-#: option.c:244
+#: option.c:248
 msgid "Specify local address(es) to listen on."
 msgstr ""
 
-#: option.c:245
+#: option.c:249
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr ""
 
-#: option.c:246
+#: option.c:250
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr ""
 
-#: option.c:247
+#: option.c:251
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr ""
 
-#: option.c:248
+#: option.c:252
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr ""
 
-#: option.c:249
+#: option.c:253
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr ""
 
-#: option.c:250
+#: option.c:254
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr ""
 
-#: option.c:251
+#: option.c:255
 msgid "Do NOT forward queries with no domain part."
 msgstr ""
 
-#: option.c:252
+#: option.c:256
 msgid "Return self-pointing MX records for local hosts."
 msgstr ""
 
-#: option.c:253
+#: option.c:257
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr ""
 
-#: option.c:254
+#: option.c:258
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr ""
 
-#: option.c:255
+#: option.c:259
 msgid "Enable DHCP in the range given with lease duration."
 msgstr ""
 
-#: option.c:256
+#: option.c:260
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr ""
 
-#: option.c:257
+#: option.c:261
 msgid "Set address or hostname for a specified machine."
 msgstr ""
 
-#: option.c:258
+#: option.c:262
 msgid "Read DHCP host specs from file."
 msgstr ""
 
-#: option.c:259
+#: option.c:263
 msgid "Read DHCP option specs from file."
 msgstr ""
 
-#: option.c:260
+#: option.c:264
 msgid "Evaluate conditional tag expression."
 msgstr ""
 
-#: option.c:261
+#: option.c:265
 #, c-format
 msgid "Do NOT load %s file."
 msgstr ""
 
-#: option.c:262
+#: option.c:266
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr ""
 
-#: option.c:263
+#: option.c:267
 msgid "Specify interface(s) to listen on."
 msgstr ""
 
-#: option.c:264
+#: option.c:268
 msgid "Specify interface(s) NOT to listen on."
 msgstr ""
 
-#: option.c:265
+#: option.c:269
 msgid "Map DHCP user class to tag."
 msgstr ""
 
-#: option.c:266
+#: option.c:270
 msgid "Map RFC3046 circuit-id to tag."
 msgstr ""
 
-#: option.c:267
+#: option.c:271
 msgid "Map RFC3046 remote-id to tag."
 msgstr ""
 
-#: option.c:268
+#: option.c:272
 msgid "Map RFC3993 subscriber-id to tag."
 msgstr ""
 
-#: option.c:269
+#: option.c:273
 msgid "Don't do DHCP for hosts with tag set."
 msgstr ""
 
-#: option.c:270
+#: option.c:274
 msgid "Force broadcast replies for hosts with tag set."
 msgstr ""
 
-#: option.c:271
+#: option.c:275
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr ""
 
-#: option.c:272
+#: option.c:276
 msgid "Assume we are the only DHCP server on the local network."
 msgstr ""
 
-#: option.c:273
+#: option.c:277
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr ""
 
-#: option.c:274
+#: option.c:278
 msgid "Return MX records for local hosts."
 msgstr ""
 
-#: option.c:275
+#: option.c:279
 msgid "Specify an MX record."
 msgstr ""
 
-#: option.c:276
+#: option.c:280
 msgid "Specify BOOTP options to DHCP server."
 msgstr ""
 
-#: option.c:277
+#: option.c:281
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr ""
 
-#: option.c:278
+#: option.c:282
 msgid "Do NOT cache failed search results."
 msgstr ""
 
-#: option.c:279
+#: option.c:283
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr ""
 
-#: option.c:280
+#: option.c:284
 msgid "Specify options to be sent to DHCP clients."
 msgstr ""
 
-#: option.c:281
+#: option.c:285
 msgid "DHCP option sent even if the client does not request it."
 msgstr ""
 
-#: option.c:282
+#: option.c:286
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr ""
 
-#: option.c:283
+#: option.c:287
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr ""
 
-#: option.c:284
+#: option.c:288
 msgid "Log DNS queries."
 msgstr ""
 
-#: option.c:285
+#: option.c:289
 msgid "Force the originating port for upstream DNS queries."
 msgstr ""
 
-#: option.c:286
+#: option.c:290
 msgid "Do NOT read resolv.conf."
 msgstr ""
 
-#: option.c:287
+#: option.c:291
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr ""
 
-#: option.c:288
+#: option.c:292
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr ""
 
-#: option.c:289
+#: option.c:293
 msgid "Never forward queries to specified domains."
 msgstr ""
 
-#: option.c:290
+#: option.c:294
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr ""
 
-#: option.c:291
+#: option.c:295
 msgid "Specify default target in an MX record."
 msgstr ""
 
-#: option.c:292
+#: option.c:296
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr ""
 
-#: option.c:293
+#: option.c:297
 msgid "Specify time-to-live in seconds for negative caching."
 msgstr ""
 
-#: option.c:294
+#: option.c:298
 msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
 msgstr ""
 
-#: option.c:295
+#: option.c:299
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr ""
 
-#: option.c:296
+#: option.c:300
 msgid "Map DHCP vendor class to tag."
 msgstr ""
 
-#: option.c:297
+#: option.c:301
 msgid "Display dnsmasq version and copyright information."
 msgstr ""
 
-#: option.c:298
+#: option.c:302
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr ""
 
-#: option.c:299
+#: option.c:303
 msgid "Specify a SRV record."
 msgstr ""
 
-#: option.c:300
+#: option.c:304
 msgid "Display this message. Use --help dhcp for known DHCP options."
 msgstr ""
 
-#: option.c:301
+#: option.c:305
 #, c-format
 msgid "Specify path of PID file (defaults to %s)."
 msgstr ""
 
-#: option.c:302
+#: option.c:306
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr ""
 
-#: option.c:303
+#: option.c:307
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr ""
 
-#: option.c:304
+#: option.c:308
 msgid "Specify TXT DNS record."
 msgstr ""
 
-#: option.c:305
+#: option.c:309
 msgid "Specify PTR DNS record."
 msgstr ""
 
-#: option.c:306
+#: option.c:310
 msgid "Give DNS name to IPv4 address of interface."
 msgstr ""
 
-#: option.c:307
+#: option.c:311
 msgid "Bind only to interfaces in use."
 msgstr ""
 
-#: option.c:308
+#: option.c:312
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr ""
 
-#: option.c:309
+#: option.c:313
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr ""
 
-#: option.c:310
+#: option.c:314
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr ""
 
-#: option.c:311
+#: option.c:315
 msgid "Enable dynamic address allocation for bootp."
 msgstr ""
 
-#: option.c:312
+#: option.c:316
 msgid "Map MAC address (with wildcards) to option set."
 msgstr ""
 
-#: option.c:313
+#: option.c:317
 msgid "Treat DHCP requests on aliases as arriving from interface."
 msgstr ""
 
-#: option.c:314
+#: option.c:318
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 
-#: option.c:315
+#: option.c:319
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 
-#: option.c:316
+#: option.c:320
 msgid "Read configuration from all the files in this directory."
 msgstr ""
 
-#: option.c:317
+#: option.c:321
 msgid "Log to this syslog facility or file. (defaults to DAEMON)"
 msgstr ""
 
-#: option.c:318
+#: option.c:322
 msgid "Do not use leasefile."
 msgstr ""
 
-#: option.c:319
+#: option.c:323
 #, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr ""
 
-#: option.c:320
+#: option.c:324
 #, c-format
 msgid "Clear DNS cache when reloading %s."
 msgstr ""
 
-#: option.c:321
+#: option.c:325
 msgid "Ignore hostnames provided by DHCP clients."
 msgstr ""
 
-#: option.c:322
+#: option.c:326
 msgid "Do NOT reuse filename and server fields for extra DHCP options."
 msgstr ""
 
-#: option.c:323
+#: option.c:327
 msgid "Enable integrated read-only TFTP server."
 msgstr ""
 
-#: option.c:324
+#: option.c:328
 msgid "Export files by TFTP only from the specified subtree."
 msgstr ""
 
-#: option.c:325
+#: option.c:329
 msgid "Add client IP address to tftp-root."
 msgstr ""
 
-#: option.c:326
+#: option.c:330
 msgid "Allow access only to files owned by the user running dnsmasq."
 msgstr ""
 
-#: option.c:327
+#: option.c:331
 #, c-format
 msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
 msgstr ""
 
-#: option.c:328
+#: option.c:332
 msgid "Disable the TFTP blocksize extension."
 msgstr ""
 
-#: option.c:329
+#: option.c:333
 msgid "Ephemeral port range for use by TFTP transfers."
 msgstr ""
 
-#: option.c:330
+#: option.c:334
 msgid "Extra logging for DHCP."
 msgstr ""
 
-#: option.c:331
+#: option.c:335
 msgid "Enable async. logging; optionally set queue length."
 msgstr ""
 
-#: option.c:332
+#: option.c:336
 msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
 msgstr ""
 
-#: option.c:333
+#: option.c:337
 msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
 msgstr ""
 
-#: option.c:334
+#: option.c:338
 msgid "Inhibit DNS-rebind protection on this domain."
 msgstr ""
 
-#: option.c:335
+#: option.c:339
 msgid "Always perform DNS queries to all servers."
 msgstr ""
 
-#: option.c:336
+#: option.c:340
 msgid "Set tag if client includes matching option in request."
 msgstr ""
 
-#: option.c:337
+#: option.c:341
 msgid "Use alternative ports for DHCP."
 msgstr ""
 
-#: option.c:338
+#: option.c:342
 msgid "Run lease-change script as this user."
 msgstr ""
 
-#: option.c:339
+#: option.c:343
 msgid "Specify NAPTR DNS record."
 msgstr ""
 
-#: option.c:340
+#: option.c:344
 msgid "Specify lowest port available for DNS query transmission."
 msgstr ""
 
-#: option.c:341
+#: option.c:345
 msgid "Use only fully qualified domain names for DHCP clients."
 msgstr ""
 
-#: option.c:342
+#: option.c:346
 msgid "Generate hostnames based on MAC address for nameless clients."
 msgstr ""
 
-#: option.c:343
+#: option.c:347
 msgid "Use these DHCP relays as full proxies."
 msgstr ""
 
-#: option.c:344
+#: option.c:348
 msgid "Specify alias name for LOCAL DNS name."
 msgstr ""
 
-#: option.c:345
+#: option.c:349
 msgid "Prompt to send to PXE clients."
 msgstr ""
 
-#: option.c:346
+#: option.c:350
 msgid "Boot service for PXE menu."
 msgstr ""
 
-#: option.c:347
+#: option.c:351
 msgid "Check configuration syntax."
 msgstr ""
 
-#: option.c:348
-msgid "Add requestor's MAC address to forwarded DNS queries"
+#: option.c:352
+msgid "Add requestor's MAC address to forwarded DNS queries."
 msgstr ""
 
-#: option.c:349
-msgid "Proxy DNSSEC validation results from upstream nameservers"
+#: option.c:353
+msgid "Proxy DNSSEC validation results from upstream nameservers."
+msgstr ""
+
+#: option.c:354
+msgid "Attempt to allocate sequential IP addresses to DHCP clients."
 msgstr ""
 
-#: option.c:638
+#: option.c:355
+msgid "Copy connection-track mark from queries to upstream connections."
+msgstr ""
+
+#: option.c:644
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
 "\n"
 msgstr ""
 
-#: option.c:640
+#: option.c:646
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr ""
 
-#: option.c:642
+#: option.c:648
 #, c-format
 msgid "Valid options are:\n"
 msgstr ""
 
-#: option.c:683
+#: option.c:689
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr ""
 
-#: option.c:798
+#: option.c:804
 msgid "bad dhcp-option"
 msgstr ""
 
-#: option.c:860
+#: option.c:866
 msgid "bad IP address"
 msgstr ""
 
-#: option.c:968
+#: option.c:974
 msgid "bad domain in dhcp-option"
 msgstr ""
 
-#: option.c:1034
+#: option.c:1040
 msgid "dhcp-option too long"
 msgstr ""
 
-#: option.c:1043
+#: option.c:1049
 msgid "illegal dhcp-match"
 msgstr ""
 
-#: option.c:1087
+#: option.c:1093
 msgid "illegal repeated flag"
 msgstr ""
 
-#: option.c:1095
+#: option.c:1101
 msgid "illegal repeated keyword"
 msgstr ""
 
-#: option.c:1147 option.c:3030
+#: option.c:1153 option.c:3062
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr ""
 
-#: option.c:1178 tftp.c:460
+#: option.c:1184 tftp.c:465
 #, c-format
 msgid "cannot access %s: %s"
 msgstr ""
 
-#: option.c:1207
+#: option.c:1213
 msgid "setting log facility is not possible under Android"
 msgstr ""
 
-#: option.c:1216
+#: option.c:1222
 msgid "bad log facility"
 msgstr ""
 
-#: option.c:1265
+#: option.c:1271
 msgid "bad MX preference"
 msgstr ""
 
-#: option.c:1270
+#: option.c:1276
 msgid "bad MX name"
 msgstr ""
 
-#: option.c:1284
+#: option.c:1290
 msgid "bad MX target"
 msgstr ""
 
-#: option.c:1294
+#: option.c:1300
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:1296
+#: option.c:1302
 msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
 msgstr ""
 
-#: option.c:1597 option.c:1601
+#: option.c:1607 option.c:1611
 msgid "bad port"
 msgstr ""
 
-#: option.c:1620 option.c:1645
+#: option.c:1634 option.c:1665
 msgid "interface binding not supported"
 msgstr ""
 
-#: option.c:1791
+#: option.c:1645 option.c:2614
+msgid "bad interface name"
+msgstr ""
+
+#: option.c:1810
 msgid "bad port range"
 msgstr ""
 
-#: option.c:1808
+#: option.c:1827
 msgid "bad bridge-interface"
 msgstr ""
 
-#: option.c:1850
+#: option.c:1870
 msgid "bad dhcp-range"
 msgstr ""
 
-#: option.c:1878
+#: option.c:1898
 msgid "only one tag allowed"
 msgstr ""
 
-#: option.c:1925
+#: option.c:1945
 msgid "inconsistent DHCP range"
 msgstr ""
 
-#: option.c:2019 option.c:2045
+#: option.c:2039 option.c:2067
 msgid "bad hex constant"
 msgstr ""
 
-#: option.c:2107
+#: option.c:2061
+msgid "cannot match tags in --dhcp-host"
+msgstr ""
+
+#: option.c:2129
 msgid "bad DHCP host name"
 msgstr ""
 
-#: option.c:2188
+#: option.c:2210
 msgid "bad tag-if"
 msgstr ""
 
-#: option.c:2467 option.c:2752
+#: option.c:2499 option.c:2784
 msgid "invalid port number"
 msgstr ""
 
-#: option.c:2529
+#: option.c:2561
 msgid "bad dhcp-proxy address"
 msgstr ""
 
-#: option.c:2569
+#: option.c:2601
 msgid "invalid alias range"
 msgstr ""
 
-#: option.c:2582
-msgid "bad interface name"
-msgstr ""
-
-#: option.c:2607
+#: option.c:2639
 msgid "bad CNAME"
 msgstr ""
 
-#: option.c:2612
+#: option.c:2644
 msgid "duplicate CNAME"
 msgstr ""
 
-#: option.c:2632
+#: option.c:2664
 msgid "bad PTR record"
 msgstr ""
 
-#: option.c:2663
+#: option.c:2695
 msgid "bad NAPTR record"
 msgstr ""
 
-#: option.c:2695
+#: option.c:2727
 msgid "bad TXT record"
 msgstr ""
 
-#: option.c:2738
+#: option.c:2770
 msgid "bad SRV record"
 msgstr ""
 
-#: option.c:2745
+#: option.c:2777
 msgid "bad SRV target"
 msgstr ""
 
-#: option.c:2759
+#: option.c:2791
 msgid "invalid priority"
 msgstr ""
 
-#: option.c:2766
+#: option.c:2798
 msgid "invalid weight"
 msgstr ""
 
-#: option.c:2785
+#: option.c:2817
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr ""
 
-#: option.c:2849
+#: option.c:2881
 msgid "missing \""
 msgstr ""
 
-#: option.c:2908
+#: option.c:2940
 msgid "bad option"
 msgstr ""
 
-#: option.c:2910
+#: option.c:2942
 msgid "extraneous parameter"
 msgstr ""
 
-#: option.c:2912
+#: option.c:2944
 msgid "missing parameter"
 msgstr ""
 
-#: option.c:2916
+#: option.c:2948
 msgid "error"
 msgstr ""
 
-#: option.c:2921
+#: option.c:2953
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr ""
 
-#: option.c:2985 tftp.c:624
+#: option.c:3017 tftp.c:629
 #, c-format
 msgid "cannot read %s: %s"
 msgstr ""
 
-#: option.c:3151 option.c:3187
+#: option.c:3183 option.c:3219
 #, c-format
 msgid "read %s"
 msgstr ""
 
-#: option.c:3239
+#: option.c:3271
 msgid "junk found in command line"
 msgstr ""
 
-#: option.c:3269
+#: option.c:3301
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr ""
 
-#: option.c:3270
+#: option.c:3302
 #, c-format
 msgid ""
 "Compile time options %s\n"
 "\n"
 msgstr ""
 
-#: option.c:3271
+#: option.c:3303
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr ""
 
-#: option.c:3272
+#: option.c:3304
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr ""
 
-#: option.c:3273
+#: option.c:3305
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
 msgstr ""
 
-#: option.c:3284
+#: option.c:3316
 msgid "try --help"
 msgstr ""
 
-#: option.c:3286
+#: option.c:3318
 msgid "try -w"
 msgstr ""
 
-#: option.c:3289
+#: option.c:3321
 #, c-format
 msgid "bad command line options: %s"
 msgstr ""
 
-#: option.c:3330
+#: option.c:3362
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr ""
 
-#: option.c:3358
+#: option.c:3390
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr ""
 
-#: option.c:3368
+#: option.c:3400
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr ""
 
-#: option.c:3371 network.c:848 dhcp.c:814
+#: option.c:3403 network.c:848 dhcp.c:823
 #, c-format
 msgid "failed to read %s: %s"
 msgstr ""
 
-#: option.c:3388
+#: option.c:3420
 #, c-format
 msgid "no search directive found in %s"
 msgstr ""
 
-#: option.c:3409
+#: option.c:3441
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr ""
 
-#: option.c:3413
+#: option.c:3445
 msgid "syntax check OK"
 msgstr ""
 
-#: forward.c:461
+#: forward.c:471
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr ""
 
-#: forward.c:489
+#: forward.c:499
 #, c-format
 msgid "possible DNS-rebind attack detected: %s"
 msgstr ""
@@ -908,273 +925,281 @@ msgstr ""
 msgid "using nameserver %s#%d"
 msgstr ""
 
-#: dnsmasq.c:148
+#: dnsmasq.c:152
 msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:153
+#: dnsmasq.c:157
+msgid "Cannot use --conntrack AND --query-port"
+msgstr ""
+
+#: dnsmasq.c:160
+msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
+msgstr ""
+
+#: dnsmasq.c:165
 msgid "asychronous logging is not available under Solaris"
 msgstr ""
 
-#: dnsmasq.c:158
+#: dnsmasq.c:170
 msgid "asychronous logging is not available under Android"
 msgstr ""
 
-#: dnsmasq.c:177
+#: dnsmasq.c:189
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr ""
 
-#: dnsmasq.c:185
+#: dnsmasq.c:197
 #, c-format
 msgid "unknown interface %s"
 msgstr ""
 
-#: dnsmasq.c:191
+#: dnsmasq.c:203
 #, c-format
 msgid "no interface with address %s"
 msgstr ""
 
-#: dnsmasq.c:207 dnsmasq.c:678
+#: dnsmasq.c:219 dnsmasq.c:690
 #, c-format
 msgid "DBus error: %s"
 msgstr ""
 
-#: dnsmasq.c:210
+#: dnsmasq.c:222
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:236
+#: dnsmasq.c:248
 #, c-format
 msgid "unknown user or group: %s"
 msgstr ""
 
-#: dnsmasq.c:291
+#: dnsmasq.c:303
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr ""
 
-#: dnsmasq.c:455
+#: dnsmasq.c:467
 #, c-format
 msgid "started, version %s DNS disabled"
 msgstr ""
 
-#: dnsmasq.c:457
+#: dnsmasq.c:469
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr ""
 
-#: dnsmasq.c:459
+#: dnsmasq.c:471
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr ""
 
-#: dnsmasq.c:461
+#: dnsmasq.c:473
 #, c-format
 msgid "compile time options: %s"
 msgstr ""
 
-#: dnsmasq.c:467
+#: dnsmasq.c:479
 msgid "DBus support enabled: connected to system bus"
 msgstr ""
 
-#: dnsmasq.c:469
+#: dnsmasq.c:481
 msgid "DBus support enabled: bus connection pending"
 msgstr ""
 
-#: dnsmasq.c:474
+#: dnsmasq.c:486
 #, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr ""
 
-#: dnsmasq.c:478
+#: dnsmasq.c:490
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr ""
 
-#: dnsmasq.c:483
+#: dnsmasq.c:495
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr ""
 
-#: dnsmasq.c:488
+#: dnsmasq.c:500
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:491
+#: dnsmasq.c:503
 msgid "warning: no upstream servers configured"
 msgstr ""
 
-#: dnsmasq.c:495
+#: dnsmasq.c:507
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr ""
 
-#: dnsmasq.c:508
+#: dnsmasq.c:520
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:510
+#: dnsmasq.c:522
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr ""
 
-#: dnsmasq.c:511
+#: dnsmasq.c:523
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "root is "
 msgstr ""
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "enabled"
 msgstr ""
 
-#: dnsmasq.c:528
+#: dnsmasq.c:540
 msgid "secure mode"
 msgstr ""
 
-#: dnsmasq.c:554
+#: dnsmasq.c:566
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr ""
 
-#: dnsmasq.c:680
+#: dnsmasq.c:692
 msgid "connected to system DBus"
 msgstr ""
 
-#: dnsmasq.c:775
+#: dnsmasq.c:787
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr ""
 
-#: dnsmasq.c:778
+#: dnsmasq.c:790
 #, c-format
 msgid "failed to create helper: %s"
 msgstr ""
 
-#: dnsmasq.c:781
+#: dnsmasq.c:793
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr ""
 
-#: dnsmasq.c:785
+#: dnsmasq.c:797
 #, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr ""
 
-#: dnsmasq.c:790
+#: dnsmasq.c:802
 #, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr ""
 
-#: dnsmasq.c:793
+#: dnsmasq.c:805
 #, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr ""
 
-#: dnsmasq.c:796
+#: dnsmasq.c:808
 #, c-format
 msgid "cannot open %s: %s"
 msgstr ""
 
-#: dnsmasq.c:851
+#: dnsmasq.c:863
 #, c-format
 msgid "child process killed by signal %d"
 msgstr ""
 
-#: dnsmasq.c:855
+#: dnsmasq.c:867
 #, c-format
 msgid "child process exited with status %d"
 msgstr ""
 
-#: dnsmasq.c:859
+#: dnsmasq.c:871
 #, c-format
 msgid "failed to execute %s: %s"
 msgstr ""
 
-#: dnsmasq.c:903
+#: dnsmasq.c:915
 msgid "exiting on receipt of SIGTERM"
 msgstr ""
 
-#: dnsmasq.c:931
+#: dnsmasq.c:943
 #, c-format
 msgid "failed to access %s: %s"
 msgstr ""
 
-#: dnsmasq.c:961
+#: dnsmasq.c:973
 #, c-format
 msgid "reading %s"
 msgstr ""
 
-#: dnsmasq.c:972
+#: dnsmasq.c:984
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr ""
 
-#: dhcp.c:40
+#: dhcp.c:39
 #, c-format
 msgid "cannot create DHCP socket: %s"
 msgstr ""
 
-#: dhcp.c:52
+#: dhcp.c:51
 #, c-format
 msgid "failed to set options on DHCP socket: %s"
 msgstr ""
 
-#: dhcp.c:65
+#: dhcp.c:64
 #, c-format
 msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
 msgstr ""
 
-#: dhcp.c:77
+#: dhcp.c:76
 #, c-format
 msgid "failed to bind DHCP server socket: %s"
 msgstr ""
 
-#: dhcp.c:103
+#: dhcp.c:102
 #, c-format
 msgid "cannot create ICMP raw socket: %s."
 msgstr ""
 
-#: dhcp.c:281
+#: dhcp.c:278
 #, c-format
 msgid "DHCP packet received on %s which has no address"
 msgstr ""
 
-#: dhcp.c:445
+#: dhcp.c:442
 #, c-format
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr ""
 
-#: dhcp.c:852
+#: dhcp.c:861
 #, c-format
 msgid "bad line at %s line %d"
 msgstr ""
 
-#: dhcp.c:895
+#: dhcp.c:904
 #, c-format
 msgid "ignoring %s line %d, duplicate name or IP address"
 msgstr ""
 
-#: dhcp.c:978
+#: dhcp.c:987
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr ""
 
-#: dhcp.c:981
+#: dhcp.c:990
 #, c-format
 msgid "duplicate IP address %s in %s."
 msgstr ""
 
-#: dhcp.c:1024
+#: dhcp.c:1033
 #, c-format
 msgid "%s has more than one address in hostsfile, using %s for DHCP"
 msgstr ""
 
-#: dhcp.c:1029
+#: dhcp.c:1038
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr ""
@@ -1203,178 +1228,183 @@ msgstr ""
 msgid "failed to write %s: %s (retry in %us)"
 msgstr ""
 
-#: rfc2131.c:315
+#: rfc2131.c:342
 #, c-format
 msgid "no address range available for DHCP request %s %s"
 msgstr ""
 
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "with subnet selector"
 msgstr ""
 
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "via"
 msgstr ""
 
-#: rfc2131.c:331
+#: rfc2131.c:355
 #, c-format
 msgid "%u available DHCP subnet: %s/%s"
 msgstr ""
 
-#: rfc2131.c:334
+#: rfc2131.c:358
 #, c-format
 msgid "%u available DHCP range: %s -- %s"
 msgstr ""
 
-#: rfc2131.c:363
+#: rfc2131.c:387
 msgid "disabled"
 msgstr ""
 
-#: rfc2131.c:404 rfc2131.c:916 rfc2131.c:1288
+#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
 msgid "ignored"
 msgstr ""
 
-#: rfc2131.c:419 rfc2131.c:1135
+#: rfc2131.c:443 rfc2131.c:1183
 msgid "address in use"
 msgstr ""
 
-#: rfc2131.c:433 rfc2131.c:970
+#: rfc2131.c:457 rfc2131.c:999
 msgid "no address available"
 msgstr ""
 
-#: rfc2131.c:440 rfc2131.c:1098
+#: rfc2131.c:464 rfc2131.c:1146
 msgid "wrong network"
 msgstr ""
 
-#: rfc2131.c:454
+#: rfc2131.c:479
 msgid "no address configured"
 msgstr ""
 
-#: rfc2131.c:460 rfc2131.c:1148
+#: rfc2131.c:485 rfc2131.c:1196
 msgid "no leases left"
 msgstr ""
 
-#: rfc2131.c:545
+#: rfc2131.c:570
 #, c-format
 msgid "%u client provides name: %s"
 msgstr ""
 
-#: rfc2131.c:700
+#: rfc2131.c:725
 #, c-format
 msgid "%u vendor class: %s"
 msgstr ""
 
-#: rfc2131.c:702
+#: rfc2131.c:727
 #, c-format
 msgid "%u user class: %s"
 msgstr ""
 
-#: rfc2131.c:761
+#: rfc2131.c:786
 msgid "PXE BIS not supported"
 msgstr ""
 
-#: rfc2131.c:886
+#: rfc2131.c:915
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr ""
 
-#: rfc2131.c:907
+#: rfc2131.c:936
 msgid "unknown lease"
 msgstr ""
 
-#: rfc2131.c:939
+#: rfc2131.c:968
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:949
+#: rfc2131.c:978
 #, c-format
 msgid "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:952
+#: rfc2131.c:981
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:968 rfc2131.c:1141
+#: rfc2131.c:997 rfc2131.c:1189
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:1037
+#: rfc2131.c:1084
 msgid "wrong server-ID"
 msgstr ""
 
-#: rfc2131.c:1055
+#: rfc2131.c:1103
 msgid "wrong address"
 msgstr ""
 
-#: rfc2131.c:1073
+#: rfc2131.c:1121
 msgid "lease not found"
 msgstr ""
 
-#: rfc2131.c:1106
+#: rfc2131.c:1154
 msgid "address not available"
 msgstr ""
 
-#: rfc2131.c:1117
+#: rfc2131.c:1165
 msgid "static lease available"
 msgstr ""
 
-#: rfc2131.c:1121
+#: rfc2131.c:1169
 msgid "address reserved"
 msgstr ""
 
-#: rfc2131.c:1129
+#: rfc2131.c:1177
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr ""
 
-#: rfc2131.c:1710
+#: rfc2131.c:1746
 #, c-format
 msgid "%u tags: %s"
 msgstr ""
 
-#: rfc2131.c:1723
+#: rfc2131.c:1774
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr ""
 
-#: rfc2131.c:1732
+#: rfc2131.c:1783
 #, c-format
 msgid "%u server name: %s"
 msgstr ""
 
-#: rfc2131.c:1746
+#: rfc2131.c:1791
 #, c-format
 msgid "%u next server: %s"
 msgstr ""
 
-#: rfc2131.c:1749
+#: rfc2131.c:1794
 #, c-format
 msgid "%u broadcast response"
 msgstr ""
 
-#: rfc2131.c:1812
+#: rfc2131.c:1857
 #, c-format
 msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
 msgstr ""
 
-#: rfc2131.c:2058
+#: rfc2131.c:2097
 msgid "PXE menu too large"
 msgstr ""
 
-#: rfc2131.c:2171
+#: rfc2131.c:2253
+#, c-format
+msgid "Ignoring duplicate dhcp-option %d"
+msgstr ""
+
+#: rfc2131.c:2257
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr ""
 
-#: rfc2131.c:2189
+#: rfc2131.c:2275
 #, c-format
 msgid "%u requested options: %s"
 msgstr ""
 
-#: rfc2131.c:2456
+#: rfc2131.c:2550
 #, c-format
 msgid "cannot send RFC3925 option: too many options for enterprise number %d"
 msgstr ""
@@ -1401,55 +1431,60 @@ msgstr ""
 msgid "could not register a DBus message handler"
 msgstr ""
 
-#: bpf.c:217
+#: bpf.c:224
 #, c-format
 msgid "cannot create DHCP BPF socket: %s"
 msgstr ""
 
-#: bpf.c:245
+#: bpf.c:252
 #, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr ""
 
-#: tftp.c:281
+#: tftp.c:286
 msgid "unable to get free port for TFTP"
 msgstr ""
 
-#: tftp.c:296
+#: tftp.c:301
 #, c-format
 msgid "unsupported request from %s"
 msgstr ""
 
-#: tftp.c:406
+#: tftp.c:411
 #, c-format
 msgid "file %s not found"
 msgstr ""
 
-#: tftp.c:522
+#: tftp.c:527
 #, c-format
 msgid "error %d %s received from %s"
 msgstr ""
 
-#: tftp.c:554
+#: tftp.c:559
 #, c-format
 msgid "failed sending %s to %s"
 msgstr ""
 
-#: tftp.c:568
+#: tftp.c:573
 #, c-format
 msgid "sent %s to %s"
 msgstr ""
 
-#: log.c:177
+#: log.c:190
 #, c-format
 msgid "overflow: %d log entries lost"
 msgstr ""
 
-#: log.c:254
+#: log.c:267
 #, c-format
 msgid "log failed: %s"
 msgstr ""
 
-#: log.c:462
+#: log.c:471
 msgid "FAILED to start up"
 msgstr ""
+
+#: conntrack.c:65
+#, c-format
+msgid "Conntrack connection mark retrieval failed: %s"
+msgstr ""
index 686378514b86c16fabbbd75a33d14527ad1acdf1..ee60ce5f6659b0720422c94a27b5048ebad63680 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgstr ""
 "Project-Id-Version: dnsmasq 2.56\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-06-18 12:24+0100\n"
-"PO-Revision-Date: 2011-02-10 20:40+0100\n"
+"PO-Revision-Date: 2011-08-16 14:17+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 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr "Impossible de charger les noms à partir de %s : %s"
 
-#: cache.c:795 dhcp.c:865
+#: cache.c:795 dhcp.c:874
 #, c-format
 msgid "bad address at %s line %d"
 msgstr "mauvaise adresse dans %s ligne %d"
 
-#: cache.c:853 dhcp.c:881
+#: cache.c:853 dhcp.c:890
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "mauvais nom dans %s ligne %d"
 
-#: cache.c:860 dhcp.c:956
+#: cache.c:860 dhcp.c:965
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "lecture %s - %d adresses"
@@ -38,32 +38,37 @@ msgstr "lecture %s - %d adresses"
 msgid "cleared cache"
 msgstr "cache vidé"
 
-#: cache.c:960
+#: cache.c:934
+#, c-format
+msgid "No IPv4 address found for %s"
+msgstr "Aucune adresse IPv4 trouvée pour %s"
+
+#: cache.c:975
 #, c-format
 msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
 msgstr "%s est un CNAME, il ne sera pas donné au bail DHCP de %s"
 
-#: cache.c:966
+#: cache.c:981
 #, c-format
 msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
 msgstr "ne donne pas de nom %s au bail DHCP de %s parce-que le nom existe dans %s avec l'adresse %s"
 
-#: cache.c:1039
+#: cache.c:1054
 #, c-format
 msgid "time %lu"
 msgstr "horodatage %lu"
 
-#: cache.c:1040
+#: cache.c:1055
 #, c-format
 msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
 msgstr "taille de cache %d, %d/%d insertions dans le cache entrées non-expirées réutilisées"
 
-#: cache.c:1042
+#: cache.c:1057
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr "requêtes transmises %u, requêtes résolues localement %u"
 
-#: cache.c:1068
+#: cache.c:1083
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr "serveur %s#%d: requêtes envoyées %u, requêtes réessayées ou échouées %u"
@@ -77,7 +82,7 @@ msgstr "impossible d'initialiser le g
 msgid "failed to allocate memory"
 msgstr "impossible d'allouer la mémoire"
 
-#: util.c:227 option.c:573
+#: util.c:227 option.c:579
 msgid "could not get memory"
 msgstr "impossible d'allouer de la mémoire"
 
@@ -91,467 +96,475 @@ msgstr "Ne peut pas cr
 msgid "failed to allocate %d bytes"
 msgstr "impossible d'allouer %d octets"
 
-#: util.c:350
+#: util.c:358
 #, c-format
 msgid "infinite"
 msgstr "illimité(e)"
 
-#: option.c:244
+#: option.c:248
 msgid "Specify local address(es) to listen on."
 msgstr "Spécifie la ou les adresse(s) locales où le démon doit se mettre à l'écoute."
 
-#: option.c:245
+#: option.c:249
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr "Retourne les adresses IP pour toutes les machines présentes dans les domaines spécifiés"
 
-#: option.c:246
+#: option.c:250
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr "Traduction inverse truquée pour la plage d'adresse privée RFC1918"
 
-#: option.c:247
+#: option.c:251
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr "Traite l'adresse IP comme un domaine inexistant NXDOMAIN (contourne le systeme de redirection de Verisign)"
 
-#: option.c:248
+#: option.c:252
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr "Spécifie le nombre d'entrées que contiendra le cache (par défaut : %s)."
 
-#: option.c:249
+#: option.c:253
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr "Spécifie le nom du fichier de configuration (par défaut : %s)"
 
-#: option.c:250
+#: option.c:254
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr "Ne passe pas en tâche de fond : démarre en mode debug"
 
-#: option.c:251
+#: option.c:255
 msgid "Do NOT forward queries with no domain part."
 msgstr "Ne retransmet pas les requêtes qui n'ont pas de domaine."
 
-#: option.c:252
+#: option.c:256
 msgid "Return self-pointing MX records for local hosts."
 msgstr "Retourne les champs MX pour les machines locales."
 
-#: option.c:253
+#: option.c:257
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr "Etend les noms uniques des machines dans /etc/hosts avec le suffixe du domaine."
 
-#: option.c:254
+#: option.c:258
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr "Ne retransmet pas les fausses requêtes DNS en provenance des machines Windows."
 
-#: option.c:255
+#: option.c:259
 msgid "Enable DHCP in the range given with lease duration."
 msgstr "Autorise DHCP dans la plage d'adresses donnée sur la durée de validité du bail."
 
-#: option.c:256
+#: option.c:260
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr "On change pour ce groupe après le démarrage (par défaut : %s)."
 
-#: option.c:257
+#: option.c:261
 msgid "Set address or hostname for a specified machine."
 msgstr "On assigne une adresse ou un nom pour une machine spécifiée."
 
-#: option.c:258
+#: option.c:262
 msgid "Read DHCP host specs from file."
 msgstr "Lecture des spécifications d'hôtes DHCP à partir du fichier"
 
-#: option.c:259
+#: option.c:263
 msgid "Read DHCP option specs from file."
 msgstr "Lecture des options DHCP à partir du fichier"
 
-#: option.c:260
+#: option.c:264
 msgid "Evaluate conditional tag expression."
 msgstr "Expression d'évaluation conditionnelle d'étiquette"
 
-#: option.c:261
+#: option.c:265
 #, c-format
 msgid "Do NOT load %s file."
 msgstr "Ne charge PAS le fichier %s."
 
-#: option.c:262
+#: option.c:266
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr "Spécifie un nom de fichier hosts à lire en complément de %s"
 
-#: option.c:263
+#: option.c:267
 msgid "Specify interface(s) to listen on."
 msgstr "Spécifie la ou les interface(s) où le démon doit se mettre à l'écoute."
 
-#: option.c:264
+#: option.c:268
 msgid "Specify interface(s) NOT to listen on."
 msgstr "Spécifie la ou les interface(s) que le démon ne doit PAS traiter."
 
 #
-#: option.c:265
+#: option.c:269
 msgid "Map DHCP user class to tag."
 msgstr "Associe les classes d'utilisateurs ('user class') DHCP aux options."
 
-#: option.c:266
+#: option.c:270
 msgid "Map RFC3046 circuit-id to tag."
 msgstr "Associe les identifiants de circuits RFC3046 ('circuit-id') aux options"
 
-#: option.c:267
+#: option.c:271
 msgid "Map RFC3046 remote-id to tag."
 msgstr "Associe les identifiants distants RFC3046 ('remote-id') aux options"
 
-#: option.c:268
+#: option.c:272
 msgid "Map RFC3993 subscriber-id to tag."
 msgstr "Associe les identifiants de souscripteurs RFC3993 ('subscriber-id') aux options"
 
 #
-#: option.c:269
+#: option.c:273
 msgid "Don't do DHCP for hosts with tag set."
 msgstr "Ne pas autoriser DHCP pour les machines énumerées dans les options."
 
 #
-#: option.c:270
+#: option.c:274
 msgid "Force broadcast replies for hosts with tag set."
 msgstr "Forcer les réponses par 'broadcast' pour les machines énumerées dans les options."
 
-#: option.c:271
+#: option.c:275
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr "Ne passe pas en tâche de fond, ne pas s'exécuter en mode debug."
 
-#: option.c:272
+#: option.c:276
 msgid "Assume we are the only DHCP server on the local network."
 msgstr "On considère que l'on est le seul serveur DHCP sur le réseau local."
 
-#: option.c:273
+#: option.c:277
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr "Spécifie où il faut sauvegarder les baux DHCP (par défaut : %s)."
 
-#: option.c:274
+#: option.c:278
 msgid "Return MX records for local hosts."
 msgstr "Retourne les champs MX pour les machines locales."
 
-#: option.c:275
+#: option.c:279
 msgid "Specify an MX record."
 msgstr "Spécifie un champ MX."
 
-#: option.c:276
+#: option.c:280
 msgid "Specify BOOTP options to DHCP server."
 msgstr "Spécifie les options BOOTP pour le serveur DHCP."
 
-#: option.c:277
+#: option.c:281
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr "Ne pas scruter le fichier %s, ne recharger les modifications que sur réception du signal SIGHUP."
 
-#: option.c:278
+#: option.c:282
 msgid "Do NOT cache failed search results."
 msgstr "Ne place pas en cache le résultat des requêtes qui ont échouées."
 
-#: option.c:279
+#: option.c:283
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr "Utilise les serveurs de noms dans l'ordre donné dans %s."
 
 #
-#: option.c:280
+#: option.c:284
 msgid "Specify options to be sent to DHCP clients."
 msgstr "Options supplémentaires à associer aux clients DHCP."
 
-#: option.c:281
+#: option.c:285
 msgid "DHCP option sent even if the client does not request it."
 msgstr "Option DHCP envoyée même si le client de la demande pas."
 
-#: option.c:282
+#: option.c:286
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr "Spécifie le port où il faut écouter les requêtes DNS (par défaut : 53)."
 
-#: option.c:283
+#: option.c:287
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr "Taille maximale des paquets UDP supportés pour EDNS.0 (par défaut : %s)."
 
 #
-#: option.c:284
+#: option.c:288
 msgid "Log DNS queries."
 msgstr "Enregistre les requêtes DNS dans un journal d'activité."
 
 #
-#: option.c:285
+#: option.c:289
 msgid "Force the originating port for upstream DNS queries."
 msgstr "Force le port d'origine pour les requêtes vers les serveurs amonts."
 
-#: option.c:286
+#: option.c:290
 msgid "Do NOT read resolv.conf."
 msgstr "Ne pas lire le fichier resolv.conf."
 
-#: option.c:287
+#: option.c:291
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr "Spécifie le chemin pour le fichier resolv.conf (par défaut : %s)."
 
-#: option.c:288
+#: option.c:292
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr "Spécifie la ou les adresses des serveurs amonts avec des domaines optionels."
 
-#: option.c:289
+#: option.c:293
 msgid "Never forward queries to specified domains."
 msgstr "Ne jamais retransmettre les requêtes pour les domaines spécifiés."
 
-#: option.c:290
+#: option.c:294
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr "Spécifie le domaine qui doit etre assigné aux baux DHCP."
 
-#: option.c:291
+#: option.c:295
 msgid "Specify default target in an MX record."
 msgstr "Spécifie la cible par défaut dans un champ MX."
 
-#: option.c:292
+#: option.c:296
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr "Spécifie le TTL en secondes pour les réponses qui utilisent /etc/hosts."
 
 #
-#: option.c:293
+#: option.c:297
 msgid "Specify time-to-live in seconds for negative caching."
 msgstr "Spécifie le TTL en secondes pour les réponses qui utilisent /etc/hosts."
 
-#: option.c:294
+#: option.c:298
 msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
 msgstr "Spécifie, en secondes, la valeur maximum de TTL à renvoyer aux clients."
 
-#: option.c:295
+#: option.c:299
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr "Change pour cet utilisateur après le démarrage (par défaut : %s)."
 
 #
-#: option.c:296
+#: option.c:300
 msgid "Map DHCP vendor class to tag."
 msgstr "Associe les classes de fournisseurs ('vendor class') DHCP aux options."
 
-#: option.c:297
+#: option.c:301
 msgid "Display dnsmasq version and copyright information."
 msgstr "Affiche la version de Dnsmasq et les informations liées au copyright."
 
-#: option.c:298
+#: option.c:302
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr "Traduit les adresses IPV4 des serveurs amonts."
 
-#: option.c:299
+#: option.c:303
 msgid "Specify a SRV record."
 msgstr "Spécifie un champ SRV."
 
-#: option.c:300
+#: option.c:304
 msgid "Display this message. Use --help dhcp for known DHCP options."
 msgstr "Afficher ce message. Utiliser --help dhcp pour obtenir la liste des options DHCP connues."
 
-#: option.c:301
+#: option.c:305
 #, c-format
 msgid "Specify path of PID file (defaults to %s)."
 msgstr "Spécifie un chemin pour le fichier PID (par défaut : %s)."
 
-#: option.c:302
+#: option.c:306
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr "Spécifie le nombre maximum de baux DHCP (par défaut : %s)."
 
-#: option.c:303
+#: option.c:307
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr "Repond aux requêtes DNS en se basant sur l'interface ou a été envoyée la requête."
 
-#: option.c:304
+#: option.c:308
 msgid "Specify TXT DNS record."
 msgstr "Spécifie un champ DNS TXT"
 
 #
-#: option.c:305
+#: option.c:309
 msgid "Specify PTR DNS record."
 msgstr "Spécifie un champ DNS PTR"
 
-#: option.c:306
+#: option.c:310
 msgid "Give DNS name to IPv4 address of interface."
 msgstr "Donne le nom DNS pour l'adresse IPv4 de l'interface."
 
-#: option.c:307
+#: option.c:311
 msgid "Bind only to interfaces in use."
 msgstr "Association uniquement aux interfaces réseau actuellement actives."
 
-#: option.c:308
+#: option.c:312
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr "Lecture des informations de DHCP statique à partir de %s."
 
-#: option.c:309
+#: option.c:313
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr "Autorise l'interface DBus pour la configuration des serveurs amonts, etc."
 
-#: option.c:310
+#: option.c:314
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr "Ne pas assurer de fonction DHCP sur cette interface, mais seulement la fonction DNS."
 
-#: option.c:311
+#: option.c:315
 msgid "Enable dynamic address allocation for bootp."
 msgstr "Autorise l'allocation dynamique d'adresse pour bootp."
 
 #
-#: option.c:312
+#: option.c:316
 msgid "Map MAC address (with wildcards) to option set."
 msgstr "Associe l'adresse MAC (avec les jokers) aux options."
 
-#: option.c:313
+#: option.c:317
 msgid "Treat DHCP requests on aliases as arriving from interface."
 msgstr "Traiter les requêtes DHCP sur les alias comme arrivant de l'interface."
 
-#: option.c:314
+#: option.c:318
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr "Supprime la vérification d'adresse sur le serveur au moyen de paquets ICMP echo"
 
-#: option.c:315
+#: option.c:319
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr "Script à exécuter lors de la création ou destruction de bail DHCP."
 
-#: option.c:316
+#: option.c:320
 msgid "Read configuration from all the files in this directory."
 msgstr "Lecture de la configuration dans tous les fichiers de ce répertoire."
 
 #
-#: option.c:317
+#: option.c:321
 msgid "Log to this syslog facility or file. (defaults to DAEMON)"
 msgstr "Enregistrer les journaux d'activité dans cette facilité syslog. (défaut : DAEMON)"
 
-#: option.c:318
+#: option.c:322
 msgid "Do not use leasefile."
 msgstr "Ne pas utiliser de fichier de baux."
 
-#: option.c:319
+#: option.c:323
 #, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr "Spécifie le nombre maximum de requêtes DHCP concurrentes (par défaut : %s)."
 
-#: option.c:320
+#: option.c:324
 #, c-format
 msgid "Clear DNS cache when reloading %s."
 msgstr "Vider le cache DNS lors du rechargement de %s."
 
-#: option.c:321
+#: option.c:325
 msgid "Ignore hostnames provided by DHCP clients."
 msgstr "Ignorer les noms d'hôtes fournis par les clients DHCP"
 
-#: option.c:322
+#: option.c:326
 msgid "Do NOT reuse filename and server fields for extra DHCP options."
 msgstr "Ne pas réutiliser les champs nom de fichier et serveur dans les options DHCP supplémentaires."
 
-#: option.c:323
+#: option.c:327
 msgid "Enable integrated read-only TFTP server."
 msgstr "Activer le server TFTP intégré (fonctionnant en lecture seulement)"
 
-#: option.c:324
+#: option.c:328
 msgid "Export files by TFTP only from the specified subtree."
 msgstr "N'exporter par TFTP que les fichiers de l'arborescence de fichier spécifiée"
 
-#: option.c:325
+#: option.c:329
 msgid "Add client IP address to tftp-root."
 msgstr "Ajouter les adresses IP clientes à la racine tftp ('tftp-root')."
 
-#: option.c:326
+#: option.c:330
 msgid "Allow access only to files owned by the user running dnsmasq."
 msgstr "Accès aux seuls fichiers appartenants à l'utilisateur sous lequel tourne dnsmasq"
 
-#: option.c:327
+#: option.c:331
 #, c-format
 msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
 msgstr "Spécifie le nombre maximum de transfert TFTP concurrents (défaut : %s)."
 
-#: option.c:328
+#: option.c:332
 msgid "Disable the TFTP blocksize extension."
 msgstr "Désactivation de l'extension TFTP « taille de bloc »"
 
-#: option.c:329
+#: option.c:333
 msgid "Ephemeral port range for use by TFTP transfers."
 msgstr "Gamme de ports dans laquelle seront choisis les ports temporaires utilisés dans les transferts TFTP."
 
-#: option.c:330
+#: option.c:334
 msgid "Extra logging for DHCP."
 msgstr "Traces supplémentaires pour le DHCP."
 
-#: option.c:331
+#: option.c:335
 msgid "Enable async. logging; optionally set queue length."
 msgstr "Active l'écriture de traces en mode asynchrone. Peut prendre en option la valeur de la longueur de la queue."
 
-#: option.c:332
+#: option.c:336
 msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
 msgstr "Stopper la réassociation DNS ('DNS rebinding'). Filtre les gammes d'adresses IP privées lors de la résolution."
 
-#: option.c:333
+#: option.c:337
 msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
 msgstr "Autorise la réassociation de 127.0.0/8, pour les serveurs RBL (Realtime Blackhole List)"
 
-#: option.c:334
+#: option.c:338
 msgid "Inhibit DNS-rebind protection on this domain."
 msgstr "Désactive la protection contre les réassociation DNS pour ce domaine"
 
-#: option.c:335
+#: option.c:339
 msgid "Always perform DNS queries to all servers."
 msgstr "Toujours effectuer les requêtes DNS à tous les serveurs."
 
 #
-#: option.c:336
+#: option.c:340
 msgid "Set tag if client includes matching option in request."
 msgstr "Spécifie le label si le client inclus l'option dans la requête."
 
-#: option.c:337
+#: option.c:341
 msgid "Use alternative ports for DHCP."
 msgstr "Utiliser des ports alternatifs pour le DHCP."
 
-#: option.c:338
+#: option.c:342
 msgid "Run lease-change script as this user."
 msgstr "Lancer le script 'lease-change' avec cet utilisateur."
 
 #
-#: option.c:339
+#: option.c:343
 msgid "Specify NAPTR DNS record."
 msgstr "Spécifie un champ DNS NAPTR."
 
-#: option.c:340
+#: option.c:344
 msgid "Specify lowest port available for DNS query transmission."
 msgstr "Définie le plus petit port utilisé pour la transmission d'une requête DNS."
 
-#: option.c:341
+#: option.c:345
 msgid "Use only fully qualified domain names for DHCP clients."
 msgstr "Utilise seulement les noms de domaine pleinement qualifiés pour les clients DHCP."
 
-#: option.c:342
+#: option.c:346
 msgid "Generate hostnames based on MAC address for nameless clients."
 msgstr "Génère les noms d'hôtes à partir de l'adresse MAC pour les clients sans nom."
 
-#: option.c:343
+#: option.c:347
 msgid "Use these DHCP relays as full proxies."
 msgstr "Utilise ces relais DHCP en temps que proxy complets."
 
-#: option.c:344
+#: option.c:348
 msgid "Specify alias name for LOCAL DNS name."
 msgstr "Spécifie un alias pour un nom DNS local."
 
 #
-#: option.c:345
+#: option.c:349
 msgid "Prompt to send to PXE clients."
 msgstr "Invite à envoyer aux clients PXE."
 
-#: option.c:346
+#: option.c:350
 msgid "Boot service for PXE menu."
 msgstr "Service de démarrage pour menu PXE."
 
-#: option.c:347
+#: option.c:351
 msgid "Check configuration syntax."
 msgstr "vérification de la syntaxe de la configuration."
 
-#: option.c:348
-msgid "Add requestor's MAC address to forwarded DNS queries"
+#: option.c:352
+msgid "Add requestor's MAC address to forwarded DNS queries."
 msgstr "Ajoute l'adresse MAC du requêteur aux requêtes DNS transmises"
 
-#: option.c:349
-msgid "Proxy DNSSEC validation results from upstream nameservers"
-msgstr "Transmet les résultats de validation DNSSEC des serveurs amonts"
+#: option.c:353
+msgid "Proxy DNSSEC validation results from upstream nameservers."
+msgstr "Copie dans la réponse DNS le résultat de la validation DNSSEC effectuée par les serveurs DNS amonts."
+
+#: option.c:354
+msgid "Attempt to allocate sequential IP addresses to DHCP clients."
+msgstr "Essaie d'allouer des adresses IP séquentielles aux clients DHCP."
+
+#: option.c:355
+msgid "Copy connection-track mark from queries to upstream connections."
+msgstr "Copie les marques de suivi de connexion pour les requêtes amont."
 
-#: option.c:638
+#: option.c:644
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -560,236 +573,240 @@ msgstr ""
 "Usage : dnsmasq [options]\n"
 "\n"
 
-#: option.c:640
+#: option.c:646
 #, 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:642
+#: option.c:648
 #, c-format
 msgid "Valid options are:\n"
 msgstr "Les options valides sont :\n"
 
-#: option.c:683
+#: option.c:689
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr "Options DHCP connues :\n"
 
-#: option.c:798
+#: option.c:804
 msgid "bad dhcp-option"
 msgstr "mauvaise valeur de 'dhcp-option'"
 
 #
-#: option.c:860
+#: option.c:866
 msgid "bad IP address"
 msgstr "mauvaise adresse IP"
 
-#: option.c:968
+#: option.c:974
 msgid "bad domain in dhcp-option"
 msgstr "mauvais domaine dans dhcp-option"
 
-#: option.c:1034
+#: option.c:1040
 msgid "dhcp-option too long"
 msgstr "dhcp-option trop long"
 
-#: option.c:1043
+#: option.c:1049
 msgid "illegal dhcp-match"
 msgstr "valeur illégale pour 'dhcp-match'"
 
-#: option.c:1087
+#: option.c:1093
 msgid "illegal repeated flag"
 msgstr "Une option ne pouvant être spécifié qu'une seule fois à été donnée plusieurs fois"
 
-#: option.c:1095
+#: option.c:1101
 msgid "illegal repeated keyword"
 msgstr "Mot-clef ne pouvant être répété"
 
-#: option.c:1147 option.c:3030
+#: option.c:1153 option.c:3062
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr "Ne peut pas lire le répertoire %s : %s"
 
-#: option.c:1178 tftp.c:460
+#: option.c:1184 tftp.c:465
 #, c-format
 msgid "cannot access %s: %s"
 msgstr "Ne peut pas lire %s : %s"
 
-#: option.c:1207
+#: option.c:1213
 msgid "setting log facility is not possible under Android"
-msgstr ""
+msgstr "Sous android, impossible de positionner la cible (facility) pour les traces (logs)."
 
-#: option.c:1216
+#: option.c:1222
 msgid "bad log facility"
-msgstr ""
+msgstr "Mauvaise cible (facility) pour les traces."
 
-#: option.c:1265
+#: option.c:1271
 msgid "bad MX preference"
 msgstr "préference MX incorrecte"
 
-#: option.c:1270
+#: option.c:1276
 msgid "bad MX name"
 msgstr "nom MX incorrect"
 
-#: option.c:1284
+#: option.c:1290
 msgid "bad MX target"
 msgstr "valeur MX cible incorrecte"
 
-#: option.c:1294
+#: option.c:1300
 msgid "cannot run scripts under uClinux"
 msgstr "ne peut exécuter de script sous uClinux"
 
-#: option.c:1296
+#: option.c:1302
 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:1597 option.c:1601
+#: option.c:1607 option.c:1611
 msgid "bad port"
 msgstr "numéro de port incorrect"
 
-#: option.c:1620 option.c:1645
+#: option.c:1634 option.c:1665
 msgid "interface binding not supported"
 msgstr "association d'interface non supportée"
 
 #
-#: option.c:1791
+#: option.c:1645 option.c:2614
+msgid "bad interface name"
+msgstr "nom d'interface invalide"
+
+#
+#: option.c:1810
 msgid "bad port range"
 msgstr "gamme de ports incorrecte"
 
-#: option.c:1808
+#: option.c:1827
 msgid "bad bridge-interface"
 msgstr "interface-pont incorrecte"
 
-#: option.c:1850
+#: option.c:1870
 msgid "bad dhcp-range"
 msgstr "plage d'adresses DHCP (dhcp-range) incorrecte"
 
-#: option.c:1878
+#: option.c:1898
 msgid "only one tag allowed"
 msgstr "une seule étiquette est autorisée"
 
-#: option.c:1925
+#: option.c:1945
 msgid "inconsistent DHCP range"
 msgstr "plage d'adresses DHCP incohérente"
 
-#: option.c:2019 option.c:2045
+#: option.c:2039 option.c:2067
 msgid "bad hex constant"
 msgstr "mauvaise constante hexadecimale"
 
+#: option.c:2061
+msgid "cannot match tags in --dhcp-host"
+msgstr "L'utilisation de labels est prohibée dans --dhcp-host"
+
 #
-#: option.c:2107
+#: option.c:2129
 msgid "bad DHCP host name"
 msgstr "nom d'hôte DHCP incorrect"
 
-#: option.c:2188
+#: option.c:2210
 msgid "bad tag-if"
 msgstr "mauvaise étiquette tag-if"
 
-#: option.c:2467 option.c:2752
+#: option.c:2499 option.c:2784
 msgid "invalid port number"
 msgstr "numéro de port invalide"
 
 #
-#: option.c:2529
+#: option.c:2561
 msgid "bad dhcp-proxy address"
 msgstr "adresse dhcp-proxy incorrecte"
 
 #
-#: option.c:2569
+#: option.c:2601
 msgid "invalid alias range"
 msgstr "poids invalide"
 
-#
-#: option.c:2582
-msgid "bad interface name"
-msgstr "nom d'interface invalide"
-
-#: option.c:2607
+#: option.c:2639
 msgid "bad CNAME"
 msgstr "mauvais CNAME"
 
-#: option.c:2612
+#: option.c:2644
 msgid "duplicate CNAME"
 msgstr "ce CNAME existe déja"
 
 #
-#: option.c:2632
+#: option.c:2664
 msgid "bad PTR record"
 msgstr "mauvais champ PTR"
 
 #
-#: option.c:2663
+#: option.c:2695
 msgid "bad NAPTR record"
 msgstr "mauvais champ NAPTR"
 
-#: option.c:2695
+#: option.c:2727
 msgid "bad TXT record"
 msgstr "champ TXT invalide"
 
-#: option.c:2738
+#: option.c:2770
 msgid "bad SRV record"
 msgstr "champ SRV invalide"
 
-#: option.c:2745
+#: option.c:2777
 msgid "bad SRV target"
 msgstr "cible SRV invalide"
 
-#: option.c:2759
+#: option.c:2791
 msgid "invalid priority"
 msgstr "priorité invalide"
 
-#: option.c:2766
+#: option.c:2798
 msgid "invalid weight"
 msgstr "poids invalide"
 
-#: option.c:2785
+#: option.c:2817
 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:2849
+#: option.c:2881
 msgid "missing \""
 msgstr "il manque \""
 
-#: option.c:2908
+#: option.c:2940
 msgid "bad option"
 msgstr "mauvaise option"
 
-#: option.c:2910
+#: option.c:2942
 msgid "extraneous parameter"
 msgstr "paramètre en trop"
 
-#: option.c:2912
+#: option.c:2944
 msgid "missing parameter"
 msgstr "paramètre manquant"
 
-#: option.c:2916
+#: option.c:2948
 msgid "error"
 msgstr "erreur"
 
-#: option.c:2921
+#: option.c:2953
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr "%s à la ligne %d de %%s"
 
-#: option.c:2985 tftp.c:624
+#: option.c:3017 tftp.c:629
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "Ne peut pas lire %s : %s"
 
-#: option.c:3151 option.c:3187
+#: option.c:3183 option.c:3219
 #, c-format
 msgid "read %s"
 msgstr "Lecture de %s"
 
-#: option.c:3239
+#: option.c:3271
 msgid "junk found in command line"
 msgstr "la ligne de commande contient des éléments indésirables ou incompréhensibles"
 
-#: option.c:3269
+#: option.c:3301
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Version de Dnsmasq %s  %s\n"
 
-#: option.c:3270
+#: option.c:3302
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -798,71 +815,71 @@ msgstr ""
 "Options à la compilation %s\n"
 "\n"
 
-#: option.c:3271
+#: option.c:3303
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Ce logiciel est fourni sans AUCUNE GARANTIE.\n"
 
-#: option.c:3272
+#: option.c:3304
 #, 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:3273
+#: option.c:3305
 #, 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:3284
+#: option.c:3316
 msgid "try --help"
 msgstr "essayez avec --help"
 
-#: option.c:3286
+#: option.c:3318
 msgid "try -w"
 msgstr "essayez avec -w"
 
-#: option.c:3289
+#: option.c:3321
 #, c-format
 msgid "bad command line options: %s"
 msgstr "mauvaises options en ligne de commande : %s."
 
-#: option.c:3330
+#: option.c:3362
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "ne peut pas obtenir le nom de la machine : %s"
 
-#: option.c:3358
+#: option.c:3390
 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:3368
+#: option.c:3400
 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:3371 network.c:848 dhcp.c:814
+#: option.c:3403 network.c:848 dhcp.c:823
 #, c-format
 msgid "failed to read %s: %s"
 msgstr "impossible de lire %s : %s"
 
-#: option.c:3388
+#: option.c:3420
 #, c-format
 msgid "no search directive found in %s"
 msgstr "pas de directive de recherche trouvée dans %s"
 
-#: option.c:3409
+#: option.c:3441
 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:3413
+#: option.c:3445
 msgid "syntax check OK"
 msgstr "vérification de syntaxe OK"
 
-#: forward.c:461
+#: forward.c:471
 #, 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:489
+#: forward.c:499
 #, c-format
 msgid "possible DNS-rebind attack detected: %s"
 msgstr "détection d'une possible attaque de type DNS-rebind: %s"
@@ -934,276 +951,284 @@ msgid "using nameserver %s#%d"
 msgstr "utilise le serveur de nom %s#%d"
 
 #
-#: dnsmasq.c:148
+#: dnsmasq.c:152
 msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
 msgstr "TFTP n'est pas disponible : activez HAVE_TFTP dans src/config.h"
 
-#: dnsmasq.c:153
+#: dnsmasq.c:157
+msgid "Cannot use --conntrack AND --query-port"
+msgstr "impossible d'utiliser conjointement --conntrack et --query-port"
+
+#
+#: dnsmasq.c:160
+msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
+msgstr "Support de suivi de connexion non disponible : activez HAVE_CONNTRACK dans src/config.h"
+
+#: dnsmasq.c:165
 msgid "asychronous logging is not available under Solaris"
 msgstr "l'écriture de traces en mode asynchrone n'est pas disponible sous Solaris."
 
-#: dnsmasq.c:158
-#, fuzzy
+#: dnsmasq.c:170
 msgid "asychronous logging is not available under Android"
-msgstr "l'écriture de traces en mode asynchrone n'est pas disponible sous Solaris."
+msgstr "l'écriture de traces en mode asynchrone n'est pas disponible sous Android."
 
-#: dnsmasq.c:177
+#: dnsmasq.c:189
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "impossible de trouver la liste des interfaces : %s"
 
-#: dnsmasq.c:185
+#: dnsmasq.c:197
 #, c-format
 msgid "unknown interface %s"
 msgstr "interface %s inconnue"
 
-#: dnsmasq.c:191
+#: dnsmasq.c:203
 #, c-format
 msgid "no interface with address %s"
 msgstr "pas d'interface avec l'adresse %s"
 
-#: dnsmasq.c:207 dnsmasq.c:678
+#: dnsmasq.c:219 dnsmasq.c:690
 #, c-format
 msgid "DBus error: %s"
 msgstr "Erreur DBus : %s"
 
-#: dnsmasq.c:210
+#: dnsmasq.c:222
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr "DBus n'est pas disponible : activez HAVE_DBUS dans src/config.h"
 
-#: dnsmasq.c:236
+#: dnsmasq.c:248
 #, c-format
 msgid "unknown user or group: %s"
 msgstr "utilisateur ou groupe inconnu : %s"
 
-#: dnsmasq.c:291
+#: dnsmasq.c:303
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr "Ne peut effectuer un 'chdir' à la racine du système de fichier : %s"
 
-#: dnsmasq.c:455
+#: dnsmasq.c:467
 #, c-format
 msgid "started, version %s DNS disabled"
 msgstr "démarrage avec le DNS désactivé (version %s)"
 
-#: dnsmasq.c:457
+#: dnsmasq.c:469
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "demarré, version %s (taille de cache %d)"
 
-#: dnsmasq.c:459
+#: dnsmasq.c:471
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "démarrage avec le cache désactivé (version %s)"
 
-#: dnsmasq.c:461
+#: dnsmasq.c:473
 #, c-format
 msgid "compile time options: %s"
 msgstr "options à la compilation : %s"
 
-#: dnsmasq.c:467
+#: dnsmasq.c:479
 msgid "DBus support enabled: connected to system bus"
 msgstr "Support DBus autorisé : connecté au bus système"
 
-#: dnsmasq.c:469
+#: dnsmasq.c:481
 msgid "DBus support enabled: bus connection pending"
 msgstr "Support DBus autorisé : connexion au bus en attente"
 
-#: dnsmasq.c:474
+#: dnsmasq.c:486
 #, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr "Impossible de changer pour l'utilisateur %s : %s"
 
-#: dnsmasq.c:478
+#: dnsmasq.c:490
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "active l'option --bind-interfaces à cause de limitations dans le système d'exploitation"
 
-#: dnsmasq.c:483
+#: dnsmasq.c:495
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "attention : l'interface %s n'existe pas actuellement"
 
-#: dnsmasq.c:488
+#: dnsmasq.c:500
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr "attention : l'option « resolv-file » sera ignorée car « no-resolv » a été spécifié"
 
 #
-#: dnsmasq.c:491
+#: dnsmasq.c:503
 msgid "warning: no upstream servers configured"
 msgstr "attention : aucun serveur amont n'est configuré"
 
-#: dnsmasq.c:495
+#: dnsmasq.c:507
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr "mode asynchrone d'écriture de traces, la taille maximum de la queue est de %d messages."
 
-#: dnsmasq.c:508
+#: dnsmasq.c:520
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr "baux statiques DHCP seulement sur %.0s%s, durée de validité de bail %s"
 
-#: dnsmasq.c:510
+#: dnsmasq.c:522
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr "DHCP, proxy sur le sous-réseau %.0s%s%.0s"
 
-#: dnsmasq.c:511
+#: dnsmasq.c:523
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, plage d'adresses %s -- %s, durée de bail %s"
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "root is "
 msgstr "root est"
 
 #
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "enabled"
 msgstr "activé"
 
-#: dnsmasq.c:528
+#: dnsmasq.c:540
 msgid "secure mode"
 msgstr "mode sécurisé"
 
-#: dnsmasq.c:554
+#: dnsmasq.c:566
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr "le nombre maximum de transferts TFTP simultanés sera restreint à %d"
 
-#: dnsmasq.c:680
+#: dnsmasq.c:692
 msgid "connected to system DBus"
 msgstr "connecté au systeme DBus"
 
-#: dnsmasq.c:775
+#: dnsmasq.c:787
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr "Ne peut se lancer en tâche de fond : %s"
 
-#: dnsmasq.c:778
+#: dnsmasq.c:790
 #, c-format
 msgid "failed to create helper: %s"
 msgstr "impossible de créer le 'helper' : %s"
 
-#: dnsmasq.c:781
+#: dnsmasq.c:793
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr "impossible de configurer la capacité %s"
 
-#: dnsmasq.c:785
+#: dnsmasq.c:797
 #, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr "Impossible de changer l'identifiant utilisateur pour %s : %s"
 
-#: dnsmasq.c:790
+#: dnsmasq.c:802
 #, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr "Impossible de changer l'identifiant de groupe pour %s : %s"
 
-#: dnsmasq.c:793
+#: dnsmasq.c:805
 #, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr "impossible de lire le fichier de PID %s : %s"
 
-#: dnsmasq.c:796
+#: dnsmasq.c:808
 #, c-format
 msgid "cannot open %s: %s"
 msgstr "Ne peut pas lire %s : %s"
 
-#: dnsmasq.c:851
+#: dnsmasq.c:863
 #, c-format
 msgid "child process killed by signal %d"
 msgstr "Le processus fils a été terminé par le signal %d"
 
-#: dnsmasq.c:855
+#: dnsmasq.c:867
 #, c-format
 msgid "child process exited with status %d"
 msgstr "Le processus fils s'est terminé avec le statut %d"
 
-#: dnsmasq.c:859
+#: dnsmasq.c:871
 #, c-format
 msgid "failed to execute %s: %s"
 msgstr "impossible d'exécuter à %s : %s"
 
-#: dnsmasq.c:903
+#: dnsmasq.c:915
 msgid "exiting on receipt of SIGTERM"
 msgstr "sortie sur réception du signal SIGTERM"
 
-#: dnsmasq.c:931
+#: dnsmasq.c:943
 #, c-format
 msgid "failed to access %s: %s"
 msgstr "impossible d'accéder à %s : %s"
 
-#: dnsmasq.c:961
+#: dnsmasq.c:973
 #, c-format
 msgid "reading %s"
 msgstr "Lecture de %s"
 
-#: dnsmasq.c:972
+#: dnsmasq.c:984
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr "aucun serveur trouvé dans %s, va réessayer"
 
-#: dhcp.c:40
+#: dhcp.c:39
 #, c-format
 msgid "cannot create DHCP socket: %s"
 msgstr "ne peut créer la socket DHCP: %s"
 
-#: dhcp.c:52
+#: dhcp.c:51
 #, c-format
 msgid "failed to set options on DHCP socket: %s"
 msgstr "impossible d'appliquer les options sur la socket DHCP : %s"
 
-#: dhcp.c:65
+#: dhcp.c:64
 #, c-format
 msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
 msgstr "impossible de déclarer SO_REUSE{ADDR|PORT} sur la socket DHCP : %s"
 
-#: dhcp.c:77
+#: dhcp.c:76
 #, c-format
 msgid "failed to bind DHCP server socket: %s"
 msgstr "impossible de lier la socket serveur DHCP : %s"
 
-#: dhcp.c:103
+#: dhcp.c:102
 #, c-format
 msgid "cannot create ICMP raw socket: %s."
 msgstr "ne peut créer de socket en mode raw pour ICMP : %s."
 
-#: dhcp.c:281
+#: dhcp.c:278
 #, 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:445
+#: dhcp.c:442
 #, 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:852
+#: dhcp.c:861
 #, c-format
 msgid "bad line at %s line %d"
 msgstr "mauvaise ligne dans %s ligne %d"
 
-#: dhcp.c:895
+#: dhcp.c:904
 #, 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:978
+#: dhcp.c:987
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "adresse IP %s dupliquée dans la directive dhcp-config."
 
-#: dhcp.c:981
+#: dhcp.c:990
 #, c-format
 msgid "duplicate IP address %s in %s."
 msgstr "adresse IP %s dupliquée dans %s."
 
-#: dhcp.c:1024
+#: dhcp.c:1033
 #, 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:1029
+#: dhcp.c:1038
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "adresse IP %s (%s) dupliquée dans la directive dhcp-config."
@@ -1232,178 +1257,183 @@ msgstr "le script lease-init a retourn
 msgid "failed to write %s: %s (retry in %us)"
 msgstr "impossible de lire %s : %s (prochain essai dans %us)"
 
-#: rfc2131.c:315
+#: rfc2131.c:342
 #, 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:316
+#: rfc2131.c:343
 msgid "with subnet selector"
 msgstr "avec sélecteur de sous-reseau"
 
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "via"
 msgstr "par l'intermédiaire de"
 
-#: rfc2131.c:331
+#: rfc2131.c:355
 #, c-format
 msgid "%u available DHCP subnet: %s/%s"
 msgstr "%u sous-réseaux DHCP disponibles : %s/%s"
 
-#: rfc2131.c:334
+#: rfc2131.c:358
 #, c-format
 msgid "%u available DHCP range: %s -- %s"
 msgstr "%u la gamme DHCP disponible est : %s -- %s"
 
-#: rfc2131.c:363
+#: rfc2131.c:387
 msgid "disabled"
 msgstr "désactivé"
 
-#: rfc2131.c:404 rfc2131.c:916 rfc2131.c:1288
+#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
 msgid "ignored"
 msgstr "ignoré"
 
-#: rfc2131.c:419 rfc2131.c:1135
+#: rfc2131.c:443 rfc2131.c:1183
 msgid "address in use"
 msgstr "adresse déjà utilisée"
 
-#: rfc2131.c:433 rfc2131.c:970
+#: rfc2131.c:457 rfc2131.c:999
 msgid "no address available"
 msgstr "pas d'adresse disponible"
 
-#: rfc2131.c:440 rfc2131.c:1098
+#: rfc2131.c:464 rfc2131.c:1146
 msgid "wrong network"
 msgstr "mauvais réseau"
 
-#: rfc2131.c:454
+#: rfc2131.c:479
 msgid "no address configured"
 msgstr "pas d'adresse configurée"
 
-#: rfc2131.c:460 rfc2131.c:1148
+#: rfc2131.c:485 rfc2131.c:1196
 msgid "no leases left"
 msgstr "plus aucun bail disponible"
 
-#: rfc2131.c:545
+#: rfc2131.c:570
 #, c-format
 msgid "%u client provides name: %s"
 msgstr "le client %u fourni le nom : %s"
 
-#: rfc2131.c:700
+#: rfc2131.c:725
 #, c-format
 msgid "%u vendor class: %s"
 msgstr "%u Classe de vendeur ('Vendor Class') : %s"
 
-#: rfc2131.c:702
+#: rfc2131.c:727
 #, c-format
 msgid "%u user class: %s"
 msgstr "%u Classe d'utilisateur : %s"
 
-#: rfc2131.c:761
+#: rfc2131.c:786
 msgid "PXE BIS not supported"
 msgstr "Service PXE BIS (Boot Integrity Services) non supporté"
 
-#: rfc2131.c:886
+#: rfc2131.c:915
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "désactive l'adresse statique DHCP %s pour %s"
 
-#: rfc2131.c:907
+#: rfc2131.c:936
 msgid "unknown lease"
 msgstr "bail inconnu"
 
-#: rfc2131.c:939
+#: rfc2131.c:968
 #, 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:949
+#: rfc2131.c:978
 #, 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:952
+#: rfc2131.c:981
 #, 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:968 rfc2131.c:1141
+#: rfc2131.c:997 rfc2131.c:1189
 msgid "no unique-id"
 msgstr "pas d'identifiant unique"
 
-#: rfc2131.c:1037
+#: rfc2131.c:1084
 msgid "wrong server-ID"
 msgstr "mauvais identifiant de serveur"
 
-#: rfc2131.c:1055
+#: rfc2131.c:1103
 msgid "wrong address"
 msgstr "mauvaise adresse"
 
-#: rfc2131.c:1073
+#: rfc2131.c:1121
 msgid "lease not found"
 msgstr "bail non trouvé"
 
-#: rfc2131.c:1106
+#: rfc2131.c:1154
 msgid "address not available"
 msgstr "adresse non disponible"
 
-#: rfc2131.c:1117
+#: rfc2131.c:1165
 msgid "static lease available"
 msgstr "bail statique disponible"
 
-#: rfc2131.c:1121
+#: rfc2131.c:1169
 msgid "address reserved"
 msgstr "adresse reservée"
 
-#: rfc2131.c:1129
+#: rfc2131.c:1177
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr "abandon du bail de %s pour %s"
 
-#: rfc2131.c:1710
+#: rfc2131.c:1746
 #, c-format
 msgid "%u tags: %s"
 msgstr "%u options: %s"
 
-#: rfc2131.c:1723
+#: rfc2131.c:1774
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr "%u nom de fichier 'bootfile' : %s"
 
-#: rfc2131.c:1732
+#: rfc2131.c:1783
 #, c-format
 msgid "%u server name: %s"
 msgstr "%u nom du serveur : %s"
 
-#: rfc2131.c:1746
+#: rfc2131.c:1791
 #, c-format
 msgid "%u next server: %s"
 msgstr "%u serveur suivant : %s"
 
-#: rfc2131.c:1749
+#: rfc2131.c:1794
 #, c-format
 msgid "%u broadcast response"
 msgstr "%u réponse broadcast"
 
-#: rfc2131.c:1812
+#: rfc2131.c:1857
 #, 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:2058
+#: rfc2131.c:2097
 msgid "PXE menu too large"
 msgstr "menu PXE trop grand"
 
-#: rfc2131.c:2171
+#: rfc2131.c:2253
+#, c-format
+msgid "Ignoring duplicate dhcp-option %d"
+msgstr "L'option dhcp-option redondante %d sera ignorée"
+
+#: rfc2131.c:2257
 #, 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:2189
+#: rfc2131.c:2275
 #, c-format
 msgid "%u requested options: %s"
 msgstr "%u options demandées : %s"
 
-#: rfc2131.c:2456
+#: rfc2131.c:2550
 #, 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"
@@ -1430,59 +1460,64 @@ msgstr "configuration des serveurs amonts 
 msgid "could not register a DBus message handler"
 msgstr "ne peut enregistrer une routine de traitement des messages DBus"
 
-#: bpf.c:217
+#: bpf.c:224
 #, c-format
 msgid "cannot create DHCP BPF socket: %s"
 msgstr "impossible de créer une socket BPF pour DHCP : %s"
 
-#: bpf.c:245
+#: bpf.c:252
 #, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "requête DHCP pour un type de matériel non supporté (%d) reçue sur %s"
 
-#: tftp.c:281
+#: tftp.c:286
 msgid "unable to get free port for TFTP"
 msgstr "impossible d'obtenir un port libre pour TFTP"
 
-#: tftp.c:296
+#: tftp.c:301
 #, c-format
 msgid "unsupported request from %s"
 msgstr "requête de %s non supportée"
 
-#: tftp.c:406
+#: tftp.c:411
 #, c-format
 msgid "file %s not found"
 msgstr "fichier %s non trouvé"
 
-#: tftp.c:522
+#: tftp.c:527
 #, c-format
 msgid "error %d %s received from %s"
 msgstr "erreur %d %s reçu de %s"
 
-#: tftp.c:554
+#: tftp.c:559
 #, c-format
 msgid "failed sending %s to %s"
 msgstr "impossible d'envoyer %s à %s"
 
-#: tftp.c:568
+#: tftp.c:573
 #, c-format
 msgid "sent %s to %s"
 msgstr "envoyé %s à %s"
 
-#: log.c:177
+#: log.c:190
 #, c-format
 msgid "overflow: %d log entries lost"
 msgstr "débordement : %d traces perdues"
 
-#: log.c:254
+#: log.c:267
 #, c-format
 msgid "log failed: %s"
 msgstr "trace perdue : %s"
 
-#: log.c:462
+#: log.c:471
 msgid "FAILED to start up"
 msgstr "IMPOSSIBLE de démarrer"
 
+#: conntrack.c:65
+#, c-format
+msgid "Conntrack connection mark retrieval failed: %s"
+msgstr "La récupération de la marque de suivi de connexion a échoué : %s"
+
 #
 #~ msgid "only one dhcp-hostsfile allowed"
 #~ msgstr "une seule valeur est autorisée pour 'dhcp-hostsfile'"
index 749da19438b0cd7558d66e5c84f06de058909360..9622f06ad34e9163cc8ffad87242e901ce1e2df6 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -21,19 +21,19 @@ msgid "failed to load names from %s: %s"
 msgstr "gagal memuat nama-nama dari %s: %s"
 
 # OK
-#: cache.c:795 dhcp.c:865
+#: cache.c:795 dhcp.c:874
 #, fuzzy, c-format
 msgid "bad address at %s line %d"
 msgstr "kesalahan nama pada %s baris %d"
 
 # OK
-#: cache.c:853 dhcp.c:881
+#: cache.c:853 dhcp.c:890
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "kesalahan nama pada %s baris %d"
 
 # OK
-#: cache.c:860 dhcp.c:956
+#: cache.c:860 dhcp.c:965
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "membaca %s - %d alamat"
@@ -43,34 +43,39 @@ msgstr "membaca %s - %d alamat"
 msgid "cleared cache"
 msgstr "cache telah dihapus"
 
-#: cache.c:960
+#: cache.c:934
+#, c-format
+msgid "No IPv4 address found for %s"
+msgstr ""
+
+#: cache.c:975
 #, c-format
 msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
 msgstr ""
 
 # OK
-#: cache.c:966
+#: cache.c:981
 #, c-format
 msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
 msgstr "tidak memberikan nama %s kepada lease DHCP %s karena nama telah ada dalam %sdengan alamat %s"
 
-#: cache.c:1039
+#: cache.c:1054
 #, c-format
 msgid "time %lu"
 msgstr ""
 
 # OK
-#: cache.c:1040
+#: cache.c:1055
 #, fuzzy, c-format
 msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
 msgstr "ukuran cache %d, %d/%d penyisipan cache menimpa cache yang belum kadaluwarsa"
 
-#: cache.c:1042
+#: cache.c:1057
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr ""
 
-#: cache.c:1068
+#: cache.c:1083
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr ""
@@ -88,7 +93,7 @@ msgid "failed to allocate memory"
 msgstr "gagal memuat %S: %m"
 
 # OK
-#: util.c:227 option.c:573
+#: util.c:227 option.c:579
 msgid "could not get memory"
 msgstr "tidak bisa mendapatkan memory"
 
@@ -105,536 +110,544 @@ msgid "failed to allocate %d bytes"
 msgstr "gagal memuat %S: %m"
 
 # OK
-#: util.c:350
+#: util.c:358
 #, c-format
 msgid "infinite"
 msgstr "tak terbatas"
 
 # OK
-#: option.c:244
+#: option.c:248
 msgid "Specify local address(es) to listen on."
 msgstr "Tentukan alamat lokal untuk mendengarkan."
 
 # OK
-#: option.c:245
+#: option.c:249
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr "Menghasilkan ipaddr untuk semua host dalam domain yang dipilih."
 
 # OK
-#: option.c:246
+#: option.c:250
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr "Fake pencarian balik untuk alamat private sesuai dengan RFC1918."
 
 # OK
-#: option.c:247
+#: option.c:251
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr "Perlakukan ipaddr sebagai NXDOMAIN (mengalahkan wildcard Verisign)."
 
 # OK
-#: option.c:248
+#: option.c:252
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr "Tentukan ukuran cache, dalam jumlah isian (default %s)."
 
 # OK
-#: option.c:249
+#: option.c:253
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr "Tentukan file konfigurasi (default %s)."
 
 # OK
-#: option.c:250
+#: option.c:254
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr "JANGAN berjalan di background: berjalan dalam modus debug."
 
 # OK
-#: option.c:251
+#: option.c:255
 msgid "Do NOT forward queries with no domain part."
 msgstr "JANGAN teruskan permintaan tanpa bagian domain."
 
 # OK
-#: option.c:252
+#: option.c:256
 msgid "Return self-pointing MX records for local hosts."
 msgstr "Mengembalikan record MX untuk diri sendiri host-host lokal."
 
 # OK
-#: option.c:253
+#: option.c:257
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr "Melengkapi nama-nama di /etc/hosts dengan akhiran domain."
 
 # OK
-#: option.c:254
+#: option.c:258
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr "Jangan meneruskan permintaan DNS spurious dari host-host Windows."
 
 # OK
-#: option.c:255
+#: option.c:259
 msgid "Enable DHCP in the range given with lease duration."
 msgstr "Bolehkan DHCP dalam jangkauan yang diberikan dengan durasi lease."
 
 # OK
-#: option.c:256
+#: option.c:260
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr "Ubah ke group ini setelah mulai (default %s)."
 
 # OK
-#: option.c:257
+#: option.c:261
 msgid "Set address or hostname for a specified machine."
 msgstr "Setel alamat atau nama host untuk mesin yang disebutkan."
 
 # OK
-#: option.c:258
+#: option.c:262
 #, fuzzy
 msgid "Read DHCP host specs from file."
 msgstr "nama MX salah"
 
-#: option.c:259
+#: option.c:263
 msgid "Read DHCP option specs from file."
 msgstr ""
 
-#: option.c:260
+#: option.c:264
 msgid "Evaluate conditional tag expression."
 msgstr ""
 
 # OK
-#: option.c:261
+#: option.c:265
 #, c-format
 msgid "Do NOT load %s file."
 msgstr "JANGAN muat file %s."
 
 # OK
-#: option.c:262
+#: option.c:266
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr "Sebutkan sebuah file hosts yang harus dibaca sebagai tambahan untuk %s."
 
 # OK
-#: option.c:263
+#: option.c:267
 msgid "Specify interface(s) to listen on."
 msgstr "Sebutkan antarmuka untuk mendengarkan."
 
 # OK
-#: option.c:264
+#: option.c:268
 msgid "Specify interface(s) NOT to listen on."
 msgstr "Sebutkan antarmuka untuk TIDAK mendengarkan."
 
 # OK
-#: option.c:265
+#: option.c:269
 #, fuzzy
 msgid "Map DHCP user class to tag."
 msgstr "Petakan kelas user DHCP ke setelan yang dipilih."
 
-#: option.c:266
+#: option.c:270
 msgid "Map RFC3046 circuit-id to tag."
 msgstr ""
 
-#: option.c:267
+#: option.c:271
 msgid "Map RFC3046 remote-id to tag."
 msgstr ""
 
-#: option.c:268
+#: option.c:272
 msgid "Map RFC3993 subscriber-id to tag."
 msgstr ""
 
 # OK
-#: option.c:269
+#: option.c:273
 #, fuzzy
 msgid "Don't do DHCP for hosts with tag set."
 msgstr "Jangan menggunakan DHCP untuk host-host yang dipilih."
 
 # OK
-#: option.c:270
+#: option.c:274
 #, fuzzy
 msgid "Force broadcast replies for hosts with tag set."
 msgstr "Jangan menggunakan DHCP untuk host-host yang dipilih."
 
 # OK
-#: option.c:271
+#: option.c:275
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr "JANGAN berjalan di background, jangan berjalan dalam modus debug."
 
 # OK
-#: option.c:272
+#: option.c:276
 msgid "Assume we are the only DHCP server on the local network."
 msgstr "Berpikir bahwa kita satu-satunya DHCP server dalam jaringan."
 
 # OK
-#: option.c:273
+#: option.c:277
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr "Sebutkan lokasi untuk menyimpan lease DHCP (default %s)."
 
 # OK
-#: option.c:274
+#: option.c:278
 msgid "Return MX records for local hosts."
 msgstr "Kembalikan rekord MX untuk host-host lokal."
 
 # OK
-#: option.c:275
+#: option.c:279
 msgid "Specify an MX record."
 msgstr "Sebutkan sebuah rekord MX."
 
 # OK
-#: option.c:276
+#: option.c:280
 msgid "Specify BOOTP options to DHCP server."
 msgstr "Sebutkan pilihan-pilihan BOOTP untuk DHCP server."
 
-#: option.c:277
+#: option.c:281
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr "Jangan kumpulkan file %s, muat kembali saat SIGHUP."
 
 # OK
-#: option.c:278
+#: option.c:282
 msgid "Do NOT cache failed search results."
 msgstr "JANGAN menyimpan hasil pencarian yang gagal."
 
 # OK
-#: option.c:279
+#: option.c:283
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr "Gunakan secara ketat namaserver yang disebutkan sesuai urutan di %s."
 
 # OK
-#: option.c:280
+#: option.c:284
 #, fuzzy
 msgid "Specify options to be sent to DHCP clients."
 msgstr "Setel pilihan-pilihan tambahan yang akan disetel untuk klien-klien DHCP."
 
-#: option.c:281
+#: option.c:285
 msgid "DHCP option sent even if the client does not request it."
 msgstr ""
 
 # OK
-#: option.c:282
+#: option.c:286
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr "Sebutkan port untuk mendengarkan permintaan DNS (default port 53)."
 
 # OK
-#: option.c:283
+#: option.c:287
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr "Ukuran maksimum paket UDP yang didukung untuk EDNS.0 (default %s)."
 
 # OK
-#: option.c:284
+#: option.c:288
 #, fuzzy
 msgid "Log DNS queries."
 msgstr "Permintaan log."
 
 # OK
-#: option.c:285
+#: option.c:289
 #, fuzzy
 msgid "Force the originating port for upstream DNS queries."
 msgstr "Paksa port asal untuk permintaan ke atas."
 
 # OK
-#: option.c:286
+#: option.c:290
 msgid "Do NOT read resolv.conf."
 msgstr "JANGAN baca resolv.conf."
 
 # OK
-#: option.c:287
+#: option.c:291
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr "Sebutkan path ke resolv.conf (default %s)."
 
 # OK
-#: option.c:288
+#: option.c:292
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr "Sebutkan alamat-alamat server di atas, boleh dilengkapi dengan nama domain."
 
 # OK
-#: option.c:289
+#: option.c:293
 msgid "Never forward queries to specified domains."
 msgstr "JANGAN pernah meneruskan permintaan ke domain yang disebutkan."
 
 # OK
-#: option.c:290
+#: option.c:294
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr "Sebutkan domain yang digunakan dalam lease DHCP."
 
 # OK
-#: option.c:291
+#: option.c:295
 msgid "Specify default target in an MX record."
 msgstr "Sebutkan tujuan default dalam rekord MX."
 
 # OK
-#: option.c:292
+#: option.c:296
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr "Sebutkan time-to-live dalam detik untuk jawaban dari /etc/hosts."
 
 # OK
-#: option.c:293
+#: option.c:297
 #, fuzzy
 msgid "Specify time-to-live in seconds for negative caching."
 msgstr "Sebutkan time-to-live dalam detik untuk jawaban dari /etc/hosts."
 
 # OK
-#: option.c:294
+#: option.c:298
 #, fuzzy
 msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
 msgstr "Sebutkan time-to-live dalam detik untuk jawaban dari /etc/hosts."
 
 # OK
-#: option.c:295
+#: option.c:299
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr "Ubah ke user ini setelah mulai. (default %s)."
 
 # OK
-#: option.c:296
+#: option.c:300
 #, fuzzy
 msgid "Map DHCP vendor class to tag."
 msgstr "Memetakan kelas vendor DHCP ke daftar pilihan."
 
 # OK
-#: option.c:297
+#: option.c:301
 msgid "Display dnsmasq version and copyright information."
 msgstr "Menampilkan versi dan informasi hak cipta dnsmasq."
 
 # OK
-#: option.c:298
+#: option.c:302
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr "Terjemahkan alamat-alamat IPv4 dari server-server di atas."
 
 # OK
-#: option.c:299
+#: option.c:303
 msgid "Specify a SRV record."
 msgstr "Sebutkan rekord SRV."
 
-#: option.c:300
+#: option.c:304
 msgid "Display this message. Use --help dhcp for known DHCP options."
 msgstr ""
 
 # OK
-#: option.c:301
+#: option.c:305
 #, fuzzy, c-format
 msgid "Specify path of PID file (defaults to %s)."
 msgstr "Sebutkan path file PID. (default %s)."
 
 # OK
-#: option.c:302
+#: option.c:306
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)."
 
 # OK
-#: option.c:303
+#: option.c:307
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr "Jawab permintaan DNS berdasarkan antarmuka dimana permintaan dikirimkan."
 
 # OK
-#: option.c:304
+#: option.c:308
 msgid "Specify TXT DNS record."
 msgstr "Sebutkan rekord TXT DNS."
 
 # OK
-#: option.c:305
+#: option.c:309
 #, fuzzy
 msgid "Specify PTR DNS record."
 msgstr "Sebutkan rekord TXT DNS."
 
-#: option.c:306
+#: option.c:310
 msgid "Give DNS name to IPv4 address of interface."
 msgstr ""
 
 # OK
-#: option.c:307
+#: option.c:311
 msgid "Bind only to interfaces in use."
 msgstr "Hanya kaitkan ke antarmuka yang sedang digunakan saja."
 
 # OK
-#: option.c:308
+#: option.c:312
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr "Baca informasi statik host DHCP dari %s."
 
 # OK
-#: option.c:309
+#: option.c:313
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr "Mungkinkan antar muka DBus untuk menyetel server-server di atas, dsb."
 
 # OK
-#: option.c:310
+#: option.c:314
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr "JANGAN menyediakan DHCP pada antarmuka ini, hanya menyediakan DNS."
 
 # OK
-#: option.c:311
+#: option.c:315
 msgid "Enable dynamic address allocation for bootp."
 msgstr "Mungkinkan alokasi alamat dinamis untuk bootp."
 
 # OK
-#: option.c:312
+#: option.c:316
 #, fuzzy
 msgid "Map MAC address (with wildcards) to option set."
 msgstr "Memetakan kelas vendor DHCP ke daftar pilihan."
 
-#: option.c:313
+#: option.c:317
 msgid "Treat DHCP requests on aliases as arriving from interface."
 msgstr ""
 
-#: option.c:314
+#: option.c:318
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 
-#: option.c:315
+#: option.c:319
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 
-#: option.c:316
+#: option.c:320
 msgid "Read configuration from all the files in this directory."
 msgstr ""
 
 # OK
-#: option.c:317
+#: option.c:321
 #, fuzzy
 msgid "Log to this syslog facility or file. (defaults to DAEMON)"
 msgstr "Ubah ke user ini setelah mulai. (default %s)."
 
-#: option.c:318
+#: option.c:322
 msgid "Do not use leasefile."
 msgstr ""
 
 # OK
-#: option.c:319
+#: option.c:323
 #, fuzzy, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)."
 
-#: option.c:320
+#: option.c:324
 #, c-format
 msgid "Clear DNS cache when reloading %s."
 msgstr ""
 
-#: option.c:321
+#: option.c:325
 msgid "Ignore hostnames provided by DHCP clients."
 msgstr ""
 
-#: option.c:322
+#: option.c:326
 msgid "Do NOT reuse filename and server fields for extra DHCP options."
 msgstr ""
 
-#: option.c:323
+#: option.c:327
 msgid "Enable integrated read-only TFTP server."
 msgstr ""
 
-#: option.c:324
+#: option.c:328
 msgid "Export files by TFTP only from the specified subtree."
 msgstr ""
 
-#: option.c:325
+#: option.c:329
 msgid "Add client IP address to tftp-root."
 msgstr ""
 
-#: option.c:326
+#: option.c:330
 msgid "Allow access only to files owned by the user running dnsmasq."
 msgstr ""
 
 # OK
-#: option.c:327
+#: option.c:331
 #, fuzzy, c-format
 msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
 msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)."
 
-#: option.c:328
+#: option.c:332
 msgid "Disable the TFTP blocksize extension."
 msgstr ""
 
-#: option.c:329
+#: option.c:333
 msgid "Ephemeral port range for use by TFTP transfers."
 msgstr ""
 
-#: option.c:330
+#: option.c:334
 msgid "Extra logging for DHCP."
 msgstr ""
 
-#: option.c:331
+#: option.c:335
 msgid "Enable async. logging; optionally set queue length."
 msgstr ""
 
-#: option.c:332
+#: option.c:336
 msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
 msgstr ""
 
-#: option.c:333
+#: option.c:337
 msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
 msgstr ""
 
-#: option.c:334
+#: option.c:338
 msgid "Inhibit DNS-rebind protection on this domain."
 msgstr ""
 
-#: option.c:335
+#: option.c:339
 msgid "Always perform DNS queries to all servers."
 msgstr ""
 
-#: option.c:336
+#: option.c:340
 msgid "Set tag if client includes matching option in request."
 msgstr ""
 
-#: option.c:337
+#: option.c:341
 msgid "Use alternative ports for DHCP."
 msgstr ""
 
-#: option.c:338
+#: option.c:342
 msgid "Run lease-change script as this user."
 msgstr ""
 
 # OK
-#: option.c:339
+#: option.c:343
 #, fuzzy
 msgid "Specify NAPTR DNS record."
 msgstr "Sebutkan rekord TXT DNS."
 
-#: option.c:340
+#: option.c:344
 msgid "Specify lowest port available for DNS query transmission."
 msgstr ""
 
-#: option.c:341
+#: option.c:345
 msgid "Use only fully qualified domain names for DHCP clients."
 msgstr ""
 
-#: option.c:342
+#: option.c:346
 msgid "Generate hostnames based on MAC address for nameless clients."
 msgstr ""
 
-#: option.c:343
+#: option.c:347
 msgid "Use these DHCP relays as full proxies."
 msgstr ""
 
-#: option.c:344
+#: option.c:348
 msgid "Specify alias name for LOCAL DNS name."
 msgstr ""
 
 # OK
-#: option.c:345
+#: option.c:349
 #, fuzzy
 msgid "Prompt to send to PXE clients."
 msgstr "Setel pilihan-pilihan tambahan yang akan disetel untuk klien-klien DHCP."
 
-#: option.c:346
+#: option.c:350
 msgid "Boot service for PXE menu."
 msgstr ""
 
-#: option.c:347
+#: option.c:351
 msgid "Check configuration syntax."
 msgstr ""
 
-#: option.c:348
-msgid "Add requestor's MAC address to forwarded DNS queries"
+#: option.c:352
+msgid "Add requestor's MAC address to forwarded DNS queries."
 msgstr ""
 
 # OK
-#: option.c:349
+#: option.c:353
 #, fuzzy
-msgid "Proxy DNSSEC validation results from upstream nameservers"
+msgid "Proxy DNSSEC validation results from upstream nameservers."
 msgstr "Terjemahkan alamat-alamat IPv4 dari server-server di atas."
 
+#: option.c:354
+msgid "Attempt to allocate sequential IP addresses to DHCP clients."
+msgstr ""
+
+#: option.c:355
+msgid "Copy connection-track mark from queries to upstream connections."
+msgstr ""
+
 # OK
-#: option.c:638
+#: option.c:644
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -644,276 +657,280 @@ msgstr ""
 "\n"
 
 # OK
-#: option.c:640
+#: option.c:646
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr "Gunakan pilihan pendek saja pada perintah baris.\n"
 
 # OK
-#: option.c:642
+#: option.c:648
 #, fuzzy, c-format
 msgid "Valid options are:\n"
 msgstr "Pilihan yang boleh adalah:\n"
 
-#: option.c:683
+#: option.c:689
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr ""
 
 # OK
-#: option.c:798
+#: option.c:804
 msgid "bad dhcp-option"
 msgstr "dhcp-option salah"
 
 # OK
-#: option.c:860
+#: option.c:866
 #, fuzzy
 msgid "bad IP address"
 msgstr "membaca %s - %d alamat"
 
 # OK
-#: option.c:968
+#: option.c:974
 msgid "bad domain in dhcp-option"
 msgstr "domain dalam dhcp-option salah"
 
 # OK
-#: option.c:1034
+#: option.c:1040
 msgid "dhcp-option too long"
 msgstr "dhcp-option terlalu panjang"
 
-#: option.c:1043
+#: option.c:1049
 msgid "illegal dhcp-match"
 msgstr ""
 
-#: option.c:1087
+#: option.c:1093
 msgid "illegal repeated flag"
 msgstr ""
 
-#: option.c:1095
+#: option.c:1101
 msgid "illegal repeated keyword"
 msgstr ""
 
 # OK
-#: option.c:1147 option.c:3030
+#: option.c:1153 option.c:3062
 #, fuzzy, c-format
 msgid "cannot access directory %s: %s"
 msgstr "tidak bisa membaca %s: %s"
 
 # OK
-#: option.c:1178 tftp.c:460
+#: option.c:1184 tftp.c:465
 #, fuzzy, c-format
 msgid "cannot access %s: %s"
 msgstr "tidak bisa membaca %s: %s"
 
-#: option.c:1207
+#: option.c:1213
 msgid "setting log facility is not possible under Android"
 msgstr ""
 
-#: option.c:1216
+#: option.c:1222
 msgid "bad log facility"
 msgstr ""
 
 # OK
-#: option.c:1265
+#: option.c:1271
 msgid "bad MX preference"
 msgstr "kesukaan MX salah"
 
 # OK
-#: option.c:1270
+#: option.c:1276
 msgid "bad MX name"
 msgstr "nama MX salah"
 
 # OK
-#: option.c:1284
+#: option.c:1290
 msgid "bad MX target"
 msgstr "target MX salah"
 
-#: option.c:1294
+#: option.c:1300
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:1296
+#: option.c:1302
 msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
 msgstr ""
 
 # OK
-#: option.c:1597 option.c:1601
+#: option.c:1607 option.c:1611
 msgid "bad port"
 msgstr "port salah"
 
-#: option.c:1620 option.c:1645
+#: option.c:1634 option.c:1665
 msgid "interface binding not supported"
 msgstr ""
 
 # OK
-#: option.c:1791
+#: option.c:1645 option.c:2614
+#, fuzzy
+msgid "bad interface name"
+msgstr "nama MX salah"
+
+# OK
+#: option.c:1810
 #, fuzzy
 msgid "bad port range"
 msgstr "port salah"
 
-#: option.c:1808
+#: option.c:1827
 msgid "bad bridge-interface"
 msgstr ""
 
 # OK
-#: option.c:1850
+#: option.c:1870
 msgid "bad dhcp-range"
 msgstr "dhcp-range salah"
 
-#: option.c:1878
+#: option.c:1898
 msgid "only one tag allowed"
 msgstr ""
 
 # OK
-#: option.c:1925
+#: option.c:1945
 msgid "inconsistent DHCP range"
 msgstr "jangkauan DHCP tidak konsisten"
 
 # OK
-#: option.c:2019 option.c:2045
+#: option.c:2039 option.c:2067
 #, fuzzy
 msgid "bad hex constant"
 msgstr "dhcp-host salah"
 
+#: option.c:2061
+msgid "cannot match tags in --dhcp-host"
+msgstr ""
+
 # OK
-#: option.c:2107
+#: option.c:2129
 #, fuzzy
 msgid "bad DHCP host name"
 msgstr "nama MX salah"
 
 # OK
-#: option.c:2188
+#: option.c:2210
 #, fuzzy
 msgid "bad tag-if"
 msgstr "target MX salah"
 
 # OK
-#: option.c:2467 option.c:2752
+#: option.c:2499 option.c:2784
 msgid "invalid port number"
 msgstr "nomor port tidak benar"
 
 # OK
-#: option.c:2529
+#: option.c:2561
 #, fuzzy
 msgid "bad dhcp-proxy address"
 msgstr "membaca %s - %d alamat"
 
 # OK
-#: option.c:2569
+#: option.c:2601
 #, fuzzy
 msgid "invalid alias range"
 msgstr "weight tidak benar"
 
-# OK
-#: option.c:2582
-#, fuzzy
-msgid "bad interface name"
-msgstr "nama MX salah"
-
-#: option.c:2607
+#: option.c:2639
 msgid "bad CNAME"
 msgstr ""
 
-#: option.c:2612
+#: option.c:2644
 msgid "duplicate CNAME"
 msgstr ""
 
 # OK
-#: option.c:2632
+#: option.c:2664
 #, fuzzy
 msgid "bad PTR record"
 msgstr "rekord SRV salah"
 
 # OK
-#: option.c:2663
+#: option.c:2695
 #, fuzzy
 msgid "bad NAPTR record"
 msgstr "rekord SRV salah"
 
 # OK
-#: option.c:2695
+#: option.c:2727
 msgid "bad TXT record"
 msgstr "rekord TXT salah"
 
 # OK
-#: option.c:2738
+#: option.c:2770
 msgid "bad SRV record"
 msgstr "rekord SRV salah"
 
 # OK
-#: option.c:2745
+#: option.c:2777
 msgid "bad SRV target"
 msgstr "target SRV salah"
 
 # OK
-#: option.c:2759
+#: option.c:2791
 msgid "invalid priority"
 msgstr "prioritas tidak benar"
 
 # OK
-#: option.c:2766
+#: option.c:2798
 msgid "invalid weight"
 msgstr "weight tidak benar"
 
-#: option.c:2785
+#: option.c:2817
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr ""
 
 # OK
-#: option.c:2849
+#: option.c:2881
 msgid "missing \""
 msgstr "kurang \""
 
 # OK
-#: option.c:2908
+#: option.c:2940
 msgid "bad option"
 msgstr "pilihan salah"
 
 # OK
-#: option.c:2910
+#: option.c:2942
 msgid "extraneous parameter"
 msgstr "parameter berlebihan"
 
 # OK
-#: option.c:2912
+#: option.c:2944
 msgid "missing parameter"
 msgstr "parameter kurang"
 
 # OK
-#: option.c:2916
+#: option.c:2948
 msgid "error"
 msgstr "kesalahan"
 
 # OK
-#: option.c:2921
+#: option.c:2953
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr "%s pada baris %d dari %%s"
 
 # OK
-#: option.c:2985 tftp.c:624
+#: option.c:3017 tftp.c:629
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "tidak bisa membaca %s: %s"
 
 # OK
-#: option.c:3151 option.c:3187
+#: option.c:3183 option.c:3219
 #, fuzzy, c-format
 msgid "read %s"
 msgstr "membaca %s"
 
-#: option.c:3239
+#: option.c:3271
 msgid "junk found in command line"
 msgstr ""
 
 # OK
-#: option.c:3269
+#: option.c:3301
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Dnsmasq versi %s  %s\n"
 
 # OK
-#: option.c:3270
+#: option.c:3302
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -923,80 +940,80 @@ msgstr ""
 "\n"
 
 # OK
-#: option.c:3271
+#: option.c:3303
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Perangkat lunak ini tersedia TANPA JAMINAN SEDIKITPUN.\n"
 
 # OK
-#: option.c:3272
+#: option.c:3304
 #, 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:3273
+#: option.c:3305
 #, 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:3284
+#: option.c:3316
 msgid "try --help"
 msgstr ""
 
-#: option.c:3286
+#: option.c:3318
 msgid "try -w"
 msgstr ""
 
 # OK
-#: option.c:3289
+#: option.c:3321
 #, fuzzy, c-format
 msgid "bad command line options: %s"
 msgstr "pilihan baris perintah salah: %s."
 
 # OK
-#: option.c:3330
+#: option.c:3362
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "tidak bisa mendapatkan host-name: %s"
 
 # OK
-#: option.c:3358
+#: option.c:3390
 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:3368
+#: option.c:3400
 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:3371 network.c:848 dhcp.c:814
+#: option.c:3403 network.c:848 dhcp.c:823
 #, fuzzy, c-format
 msgid "failed to read %s: %s"
 msgstr "gagal membaca %s: %s"
 
 # OK
-#: option.c:3388
+#: option.c:3420
 #, c-format
 msgid "no search directive found in %s"
 msgstr "tidak ditemukan direktif search di %s"
 
-#: option.c:3409
+#: option.c:3441
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr ""
 
-#: option.c:3413
+#: option.c:3445
 msgid "syntax check OK"
 msgstr ""
 
 # OK
-#: forward.c:461
+#: forward.c:471
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "nameserver %s menolak melakukan resolusi rekursif"
 
-#: forward.c:489
+#: forward.c:499
 #, c-format
 msgid "possible DNS-rebind attack detected: %s"
 msgstr ""
@@ -1079,314 +1096,324 @@ msgid "using nameserver %s#%d"
 msgstr "menggunakan nameserver %s#%d"
 
 # OK
-#: dnsmasq.c:148
+#: dnsmasq.c:152
 #, fuzzy
 msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
 msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h"
 
-#: dnsmasq.c:153
+#: dnsmasq.c:157
+msgid "Cannot use --conntrack AND --query-port"
+msgstr ""
+
+# OK
+#: dnsmasq.c:160
+#, fuzzy
+msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
+msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h"
+
+#: dnsmasq.c:165
 msgid "asychronous logging is not available under Solaris"
 msgstr ""
 
-#: dnsmasq.c:158
+#: dnsmasq.c:170
 msgid "asychronous logging is not available under Android"
 msgstr ""
 
 # OK
-#: dnsmasq.c:177
+#: dnsmasq.c:189
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "gagal mendapatkan daftar antarmuka: %s"
 
 # OK
-#: dnsmasq.c:185
+#: dnsmasq.c:197
 #, c-format
 msgid "unknown interface %s"
 msgstr "antarmuka tidak dikenal %s"
 
 # OK
-#: dnsmasq.c:191
+#: dnsmasq.c:203
 #, c-format
 msgid "no interface with address %s"
 msgstr "tidak ada antarmuka dengan alamat %s"
 
 # OK
-#: dnsmasq.c:207 dnsmasq.c:678
+#: dnsmasq.c:219 dnsmasq.c:690
 #, c-format
 msgid "DBus error: %s"
 msgstr "DBus error: %s"
 
 # OK
-#: dnsmasq.c:210
+#: dnsmasq.c:222
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h"
 
-#: dnsmasq.c:236
+#: dnsmasq.c:248
 #, c-format
 msgid "unknown user or group: %s"
 msgstr ""
 
-#: dnsmasq.c:291
+#: dnsmasq.c:303
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr ""
 
 # OK
-#: dnsmasq.c:455
+#: dnsmasq.c:467
 #, fuzzy, c-format
 msgid "started, version %s DNS disabled"
 msgstr "dimulai, cache versi %s di disable"
 
 # OK
-#: dnsmasq.c:457
+#: dnsmasq.c:469
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "dimulai, versi %s ukuran cache %d"
 
 # OK
-#: dnsmasq.c:459
+#: dnsmasq.c:471
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "dimulai, cache versi %s di disable"
 
 # OK
-#: dnsmasq.c:461
+#: dnsmasq.c:473
 #, c-format
 msgid "compile time options: %s"
 msgstr "pilihan-pilihan saat kompilasi: %s"
 
 # OK
-#: dnsmasq.c:467
+#: dnsmasq.c:479
 msgid "DBus support enabled: connected to system bus"
 msgstr "dukungan DBus dimungkinkan: terkoneksi pada bus sistem"
 
 # OK
-#: dnsmasq.c:469
+#: dnsmasq.c:481
 msgid "DBus support enabled: bus connection pending"
 msgstr "dukungan DBus dimungkinkan: koneksi bus ditunda"
 
 # OK
-#: dnsmasq.c:474
+#: dnsmasq.c:486
 #, fuzzy, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr "gagal memuat nama-nama dari %s: %s"
 
 # OK
-#: dnsmasq.c:478
+#: dnsmasq.c:490
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "setelan opsi --bind-interfaces disebabkan keterbatasan OS"
 
 # OK
-#: dnsmasq.c:483
+#: dnsmasq.c:495
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "peringatan: antarmuka %s tidak ada"
 
-#: dnsmasq.c:488
+#: dnsmasq.c:500
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
 # OK
-#: dnsmasq.c:491
+#: dnsmasq.c:503
 #, fuzzy
 msgid "warning: no upstream servers configured"
 msgstr "menyetel server-server di atas dengan DBus"
 
-#: dnsmasq.c:495
+#: dnsmasq.c:507
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr ""
 
 # OK
-#: dnsmasq.c:508
+#: dnsmasq.c:520
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr "DHCP, lease static pada %.0s%s, waktu lease %s"
 
-#: dnsmasq.c:510
+#: dnsmasq.c:522
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr ""
 
 # OK
-#: dnsmasq.c:511
+#: dnsmasq.c:523
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, jangkaun IP %s -- %s, waktu lease %s"
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "root is "
 msgstr ""
 
 # OK
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 #, fuzzy
 msgid "enabled"
 msgstr "di disable"
 
-#: dnsmasq.c:528
+#: dnsmasq.c:540
 msgid "secure mode"
 msgstr ""
 
-#: dnsmasq.c:554
+#: dnsmasq.c:566
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr ""
 
 # OK
-#: dnsmasq.c:680
+#: dnsmasq.c:692
 msgid "connected to system DBus"
 msgstr "terhubung ke sistem DBus"
 
-#: dnsmasq.c:775
+#: dnsmasq.c:787
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr ""
 
 # OK
-#: dnsmasq.c:778
+#: dnsmasq.c:790
 #, fuzzy, c-format
 msgid "failed to create helper: %s"
 msgstr "gagal membaca %s: %s"
 
-#: dnsmasq.c:781
+#: dnsmasq.c:793
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr ""
 
 # OK
-#: dnsmasq.c:785
+#: dnsmasq.c:797
 #, fuzzy, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr "gagal memuat nama-nama dari %s: %s"
 
 # OK
-#: dnsmasq.c:790
+#: dnsmasq.c:802
 #, fuzzy, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr "gagal memuat nama-nama dari %s: %s"
 
 # OK
-#: dnsmasq.c:793
+#: dnsmasq.c:805
 #, fuzzy, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr "gagal membaca %s: %s"
 
 # OK
-#: dnsmasq.c:796
+#: dnsmasq.c:808
 #, fuzzy, c-format
 msgid "cannot open %s: %s"
 msgstr "tidak bisa membuka %s:%s"
 
-#: dnsmasq.c:851
+#: dnsmasq.c:863
 #, c-format
 msgid "child process killed by signal %d"
 msgstr ""
 
-#: dnsmasq.c:855
+#: dnsmasq.c:867
 #, c-format
 msgid "child process exited with status %d"
 msgstr ""
 
 # OK
-#: dnsmasq.c:859
+#: dnsmasq.c:871
 #, fuzzy, c-format
 msgid "failed to execute %s: %s"
 msgstr "gagal mengakses %s: %s"
 
-#: dnsmasq.c:903
+#: dnsmasq.c:915
 msgid "exiting on receipt of SIGTERM"
 msgstr "keluar karena menerima SIGTERM"
 
 # OK
-#: dnsmasq.c:931
+#: dnsmasq.c:943
 #, fuzzy, c-format
 msgid "failed to access %s: %s"
 msgstr "gagal mengakses %s: %s"
 
 # OK
-#: dnsmasq.c:961
+#: dnsmasq.c:973
 #, c-format
 msgid "reading %s"
 msgstr "membaca %s"
 
 # OK
-#: dnsmasq.c:972
+#: dnsmasq.c:984
 #, fuzzy, c-format
 msgid "no servers found in %s, will retry"
 msgstr "tidak ditemukan direktif search di %s"
 
 # OK
-#: dhcp.c:40
+#: dhcp.c:39
 #, c-format
 msgid "cannot create DHCP socket: %s"
 msgstr "tidak bisa membuat socket DHCP: %s"
 
 # OK
-#: dhcp.c:52
+#: dhcp.c:51
 #, c-format
 msgid "failed to set options on DHCP socket: %s"
 msgstr "gagal menyetel opsi pada socket DHCP: %s"
 
 # OK
-#: dhcp.c:65
+#: dhcp.c:64
 #, fuzzy, c-format
 msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
 msgstr "gagal menyetel SO_REUSEADDR pada socket DHCP: %s"
 
 # OK
-#: dhcp.c:77
+#: dhcp.c:76
 #, c-format
 msgid "failed to bind DHCP server socket: %s"
 msgstr "gagal mem-bind socket server DHCP: %s"
 
 # OK
-#: dhcp.c:103
+#: dhcp.c:102
 #, c-format
 msgid "cannot create ICMP raw socket: %s."
 msgstr "tidak dapat membuat socket ICMP raw: %s"
 
-#: dhcp.c:281
+#: dhcp.c:278
 #, c-format
 msgid "DHCP packet received on %s which has no address"
 msgstr ""
 
 # OK
-#: dhcp.c:445
+#: dhcp.c:442
 #, 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:852
+#: dhcp.c:861
 #, fuzzy, c-format
 msgid "bad line at %s line %d"
 msgstr "kesalahan nama pada %s baris %d"
 
-#: dhcp.c:895
+#: dhcp.c:904
 #, c-format
 msgid "ignoring %s line %d, duplicate name or IP address"
 msgstr ""
 
 # OK
-#: dhcp.c:978
+#: dhcp.c:987
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "alamat IP kembar %s dalam direktif dhcp-config"
 
 # OK
-#: dhcp.c:981
+#: dhcp.c:990
 #, fuzzy, c-format
 msgid "duplicate IP address %s in %s."
 msgstr "alamat IP kembar %s dalam direktif dhcp-config"
 
-#: dhcp.c:1024
+#: dhcp.c:1033
 #, c-format
 msgid "%s has more than one address in hostsfile, using %s for DHCP"
 msgstr ""
 
 # OK
-#: dhcp.c:1029
+#: dhcp.c:1038
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "alamat IP kembar %s (%s) dalam direktif dhcp-config"
@@ -1420,200 +1447,205 @@ msgid "failed to write %s: %s (retry in %us)"
 msgstr "gagal membaca %s: %s"
 
 # OK
-#: rfc2131.c:315
+#: rfc2131.c:342
 #, 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:316
+#: rfc2131.c:343
 msgid "with subnet selector"
 msgstr "dengan pemilih subnet"
 
 # OK
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "via"
 msgstr "lewat"
 
 # OK
-#: rfc2131.c:331
+#: rfc2131.c:355
 #, fuzzy, c-format
 msgid "%u available DHCP subnet: %s/%s"
 msgstr "tidak ada alamat yang bisa dipakai untuk permintaan DHCP %s %s"
 
-#: rfc2131.c:334
+#: rfc2131.c:358
 #, c-format
 msgid "%u available DHCP range: %s -- %s"
 msgstr ""
 
 # OK
-#: rfc2131.c:363
+#: rfc2131.c:387
 msgid "disabled"
 msgstr "di disable"
 
 # OK
-#: rfc2131.c:404 rfc2131.c:916 rfc2131.c:1288
+#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
 msgid "ignored"
 msgstr "diabaikan"
 
 # OK
-#: rfc2131.c:419 rfc2131.c:1135
+#: rfc2131.c:443 rfc2131.c:1183
 msgid "address in use"
 msgstr "alamat telah digunakan"
 
 # OK
-#: rfc2131.c:433 rfc2131.c:970
+#: rfc2131.c:457 rfc2131.c:999
 msgid "no address available"
 msgstr "tak ada alamat yang tersedia"
 
 # OK
-#: rfc2131.c:440 rfc2131.c:1098
+#: rfc2131.c:464 rfc2131.c:1146
 msgid "wrong network"
 msgstr "jaringan yang salah"
 
 # OK
-#: rfc2131.c:454
+#: rfc2131.c:479
 msgid "no address configured"
 msgstr "tak ada alamat yang disetel"
 
 # OK
-#: rfc2131.c:460 rfc2131.c:1148
+#: rfc2131.c:485 rfc2131.c:1196
 msgid "no leases left"
 msgstr "tak ada lease yang tersisa"
 
-#: rfc2131.c:545
+#: rfc2131.c:570
 #, c-format
 msgid "%u client provides name: %s"
 msgstr ""
 
 # OK
-#: rfc2131.c:700
+#: rfc2131.c:725
 #, fuzzy, c-format
 msgid "%u vendor class: %s"
 msgstr "DBus error: %s"
 
 # OK
-#: rfc2131.c:702
+#: rfc2131.c:727
 #, fuzzy, c-format
 msgid "%u user class: %s"
 msgstr "DBus error: %s"
 
-#: rfc2131.c:761
+#: rfc2131.c:786
 msgid "PXE BIS not supported"
 msgstr ""
 
 # OK
-#: rfc2131.c:886
+#: rfc2131.c:915
 #, fuzzy, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "men-disable alamat statik DHCP %s"
 
 # OK
-#: rfc2131.c:907
+#: rfc2131.c:936
 msgid "unknown lease"
 msgstr "lease tidak diketahui"
 
-#: rfc2131.c:939
+#: rfc2131.c:968
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:949
+#: rfc2131.c:978
 #, c-format
 msgid "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:952
+#: rfc2131.c:981
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:968 rfc2131.c:1141
+#: rfc2131.c:997 rfc2131.c:1189
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:1037
+#: rfc2131.c:1084
 msgid "wrong server-ID"
 msgstr ""
 
 # OK
-#: rfc2131.c:1055
+#: rfc2131.c:1103
 msgid "wrong address"
 msgstr "alamat salah"
 
 # OK
-#: rfc2131.c:1073
+#: rfc2131.c:1121
 msgid "lease not found"
 msgstr "lease tak ditemukan"
 
 # OK
-#: rfc2131.c:1106
+#: rfc2131.c:1154
 msgid "address not available"
 msgstr "alamat tak tersedia"
 
 # OK
-#: rfc2131.c:1117
+#: rfc2131.c:1165
 msgid "static lease available"
 msgstr "lease statik tak tersedia"
 
 # OK
-#: rfc2131.c:1121
+#: rfc2131.c:1169
 msgid "address reserved"
 msgstr "alamat telah dipesan"
 
-#: rfc2131.c:1129
+#: rfc2131.c:1177
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr ""
 
-#: rfc2131.c:1710
+#: rfc2131.c:1746
 #, c-format
 msgid "%u tags: %s"
 msgstr ""
 
-#: rfc2131.c:1723
+#: rfc2131.c:1774
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr ""
 
 # OK
-#: rfc2131.c:1732
+#: rfc2131.c:1783
 #, fuzzy, c-format
 msgid "%u server name: %s"
 msgstr "DBus error: %s"
 
 # OK
-#: rfc2131.c:1746
+#: rfc2131.c:1791
 #, fuzzy, c-format
 msgid "%u next server: %s"
 msgstr "DBus error: %s"
 
-#: rfc2131.c:1749
+#: rfc2131.c:1794
 #, c-format
 msgid "%u broadcast response"
 msgstr ""
 
-#: rfc2131.c:1812
+#: rfc2131.c:1857
 #, c-format
 msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
 msgstr ""
 
-#: rfc2131.c:2058
+#: rfc2131.c:2097
 msgid "PXE menu too large"
 msgstr ""
 
-#: rfc2131.c:2171
+#: rfc2131.c:2253
+#, c-format
+msgid "Ignoring duplicate dhcp-option %d"
+msgstr ""
+
+#: rfc2131.c:2257
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr ""
 
 # OK
-#: rfc2131.c:2189
+#: rfc2131.c:2275
 #, fuzzy, c-format
 msgid "%u requested options: %s"
 msgstr "pilihan-pilihan saat kompilasi: %s"
 
-#: rfc2131.c:2456
+#: rfc2131.c:2550
 #, c-format
 msgid "cannot send RFC3925 option: too many options for enterprise number %d"
 msgstr ""
@@ -1646,63 +1678,68 @@ msgid "could not register a DBus message handler"
 msgstr "tidak bisa mendaftar sebuah DBus message handler"
 
 # OK
-#: bpf.c:217
+#: bpf.c:224
 #, c-format
 msgid "cannot create DHCP BPF socket: %s"
 msgstr "tidak dapat membuat socket DHCP BPF: %s"
 
 # OK
-#: bpf.c:245
+#: bpf.c:252
 #, fuzzy, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "permintaan DHCP untuk tipe hardware yang tidak didukung (%d) diterima pada %s"
 
-#: tftp.c:281
+#: tftp.c:286
 msgid "unable to get free port for TFTP"
 msgstr ""
 
-#: tftp.c:296
+#: tftp.c:301
 #, c-format
 msgid "unsupported request from %s"
 msgstr ""
 
 # OK
-#: tftp.c:406
+#: tftp.c:411
 #, fuzzy, c-format
 msgid "file %s not found"
 msgstr "lease tak ditemukan"
 
-#: tftp.c:522
+#: tftp.c:527
 #, c-format
 msgid "error %d %s received from %s"
 msgstr ""
 
 # OK
-#: tftp.c:554
+#: tftp.c:559
 #, fuzzy, c-format
 msgid "failed sending %s to %s"
 msgstr "gagal membaca %s: %s"
 
-#: tftp.c:568
+#: tftp.c:573
 #, c-format
 msgid "sent %s to %s"
 msgstr ""
 
-#: log.c:177
+#: log.c:190
 #, c-format
 msgid "overflow: %d log entries lost"
 msgstr ""
 
-#: log.c:254
+#: log.c:267
 #, c-format
 msgid "log failed: %s"
 msgstr ""
 
 # OK
-#: log.c:462
+#: log.c:471
 msgid "FAILED to start up"
 msgstr "GAGAL untuk memulai"
 
+#: conntrack.c:65
+#, c-format
+msgid "Conntrack connection mark retrieval failed: %s"
+msgstr ""
+
 # OK
 #~ msgid "TXT record string too long"
 #~ msgstr "string rekord TXT terlalu panjang"
index 0b42ef1348f439aef18b792a81be4ade93796bd3..f516ff614e113a9eeae7938786fcdb1bbf26f279 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -20,17 +20,17 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr ""
 
-#: cache.c:795 dhcp.c:865
+#: cache.c:795 dhcp.c:874
 #, c-format
 msgid "bad address at %s line %d"
 msgstr ""
 
-#: cache.c:853 dhcp.c:881
+#: cache.c:853 dhcp.c:890
 #, c-format
 msgid "bad name at %s line %d"
 msgstr ""
 
-#: cache.c:860 dhcp.c:956
+#: cache.c:860 dhcp.c:965
 #, c-format
 msgid "read %s - %d addresses"
 msgstr ""
@@ -39,32 +39,37 @@ msgstr ""
 msgid "cleared cache"
 msgstr ""
 
-#: cache.c:960
+#: cache.c:934
+#, c-format
+msgid "No IPv4 address found for %s"
+msgstr ""
+
+#: cache.c:975
 #, c-format
 msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
 msgstr ""
 
-#: cache.c:966
+#: cache.c:981
 #, c-format
 msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
 msgstr ""
 
-#: cache.c:1039
+#: cache.c:1054
 #, c-format
 msgid "time %lu"
 msgstr ""
 
-#: cache.c:1040
+#: cache.c:1055
 #, c-format
 msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
 msgstr ""
 
-#: cache.c:1042
+#: cache.c:1057
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr ""
 
-#: cache.c:1068
+#: cache.c:1083
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr ""
@@ -78,7 +83,7 @@ msgstr ""
 msgid "failed to allocate memory"
 msgstr ""
 
-#: util.c:227 option.c:573
+#: util.c:227 option.c:579
 msgid "could not get memory"
 msgstr ""
 
@@ -92,752 +97,764 @@ msgstr ""
 msgid "failed to allocate %d bytes"
 msgstr ""
 
-#: util.c:350
+#: util.c:358
 #, c-format
 msgid "infinite"
 msgstr ""
 
-#: option.c:244
+#: option.c:248
 msgid "Specify local address(es) to listen on."
 msgstr ""
 
-#: option.c:245
+#: option.c:249
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr ""
 
-#: option.c:246
+#: option.c:250
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr ""
 
-#: option.c:247
+#: option.c:251
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr ""
 
-#: option.c:248
+#: option.c:252
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr ""
 
-#: option.c:249
+#: option.c:253
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr ""
 
-#: option.c:250
+#: option.c:254
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr ""
 
-#: option.c:251
+#: option.c:255
 msgid "Do NOT forward queries with no domain part."
 msgstr ""
 
-#: option.c:252
+#: option.c:256
 msgid "Return self-pointing MX records for local hosts."
 msgstr ""
 
-#: option.c:253
+#: option.c:257
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr ""
 
-#: option.c:254
+#: option.c:258
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr ""
 
-#: option.c:255
+#: option.c:259
 msgid "Enable DHCP in the range given with lease duration."
 msgstr ""
 
-#: option.c:256
+#: option.c:260
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr ""
 
-#: option.c:257
+#: option.c:261
 msgid "Set address or hostname for a specified machine."
 msgstr ""
 
-#: option.c:258
+#: option.c:262
 msgid "Read DHCP host specs from file."
 msgstr ""
 
-#: option.c:259
+#: option.c:263
 msgid "Read DHCP option specs from file."
 msgstr ""
 
-#: option.c:260
+#: option.c:264
 msgid "Evaluate conditional tag expression."
 msgstr ""
 
-#: option.c:261
+#: option.c:265
 #, c-format
 msgid "Do NOT load %s file."
 msgstr ""
 
-#: option.c:262
+#: option.c:266
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr ""
 
-#: option.c:263
+#: option.c:267
 msgid "Specify interface(s) to listen on."
 msgstr ""
 
-#: option.c:264
+#: option.c:268
 msgid "Specify interface(s) NOT to listen on."
 msgstr ""
 
-#: option.c:265
+#: option.c:269
 msgid "Map DHCP user class to tag."
 msgstr ""
 
-#: option.c:266
+#: option.c:270
 msgid "Map RFC3046 circuit-id to tag."
 msgstr ""
 
-#: option.c:267
+#: option.c:271
 msgid "Map RFC3046 remote-id to tag."
 msgstr ""
 
-#: option.c:268
+#: option.c:272
 msgid "Map RFC3993 subscriber-id to tag."
 msgstr ""
 
-#: option.c:269
+#: option.c:273
 msgid "Don't do DHCP for hosts with tag set."
 msgstr ""
 
-#: option.c:270
+#: option.c:274
 msgid "Force broadcast replies for hosts with tag set."
 msgstr ""
 
-#: option.c:271
+#: option.c:275
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr ""
 
-#: option.c:272
+#: option.c:276
 msgid "Assume we are the only DHCP server on the local network."
 msgstr ""
 
-#: option.c:273
+#: option.c:277
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr ""
 
-#: option.c:274
+#: option.c:278
 msgid "Return MX records for local hosts."
 msgstr ""
 
-#: option.c:275
+#: option.c:279
 msgid "Specify an MX record."
 msgstr ""
 
-#: option.c:276
+#: option.c:280
 msgid "Specify BOOTP options to DHCP server."
 msgstr ""
 
-#: option.c:277
+#: option.c:281
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr ""
 
-#: option.c:278
+#: option.c:282
 msgid "Do NOT cache failed search results."
 msgstr ""
 
-#: option.c:279
+#: option.c:283
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr ""
 
-#: option.c:280
+#: option.c:284
 msgid "Specify options to be sent to DHCP clients."
 msgstr ""
 
-#: option.c:281
+#: option.c:285
 msgid "DHCP option sent even if the client does not request it."
 msgstr ""
 
-#: option.c:282
+#: option.c:286
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr ""
 
-#: option.c:283
+#: option.c:287
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr ""
 
-#: option.c:284
+#: option.c:288
 msgid "Log DNS queries."
 msgstr ""
 
-#: option.c:285
+#: option.c:289
 msgid "Force the originating port for upstream DNS queries."
 msgstr ""
 
-#: option.c:286
+#: option.c:290
 msgid "Do NOT read resolv.conf."
 msgstr ""
 
-#: option.c:287
+#: option.c:291
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr ""
 
-#: option.c:288
+#: option.c:292
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr ""
 
-#: option.c:289
+#: option.c:293
 msgid "Never forward queries to specified domains."
 msgstr ""
 
-#: option.c:290
+#: option.c:294
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr ""
 
-#: option.c:291
+#: option.c:295
 msgid "Specify default target in an MX record."
 msgstr ""
 
-#: option.c:292
+#: option.c:296
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr ""
 
-#: option.c:293
+#: option.c:297
 msgid "Specify time-to-live in seconds for negative caching."
 msgstr ""
 
-#: option.c:294
+#: option.c:298
 msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
 msgstr ""
 
-#: option.c:295
+#: option.c:299
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr ""
 
-#: option.c:296
+#: option.c:300
 msgid "Map DHCP vendor class to tag."
 msgstr ""
 
-#: option.c:297
+#: option.c:301
 msgid "Display dnsmasq version and copyright information."
 msgstr ""
 
-#: option.c:298
+#: option.c:302
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr ""
 
-#: option.c:299
+#: option.c:303
 msgid "Specify a SRV record."
 msgstr ""
 
-#: option.c:300
+#: option.c:304
 msgid "Display this message. Use --help dhcp for known DHCP options."
 msgstr ""
 
-#: option.c:301
+#: option.c:305
 #, c-format
 msgid "Specify path of PID file (defaults to %s)."
 msgstr ""
 
-#: option.c:302
+#: option.c:306
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr ""
 
-#: option.c:303
+#: option.c:307
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr ""
 
-#: option.c:304
+#: option.c:308
 msgid "Specify TXT DNS record."
 msgstr ""
 
-#: option.c:305
+#: option.c:309
 msgid "Specify PTR DNS record."
 msgstr ""
 
-#: option.c:306
+#: option.c:310
 msgid "Give DNS name to IPv4 address of interface."
 msgstr ""
 
-#: option.c:307
+#: option.c:311
 msgid "Bind only to interfaces in use."
 msgstr ""
 
-#: option.c:308
+#: option.c:312
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr ""
 
-#: option.c:309
+#: option.c:313
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr ""
 
-#: option.c:310
+#: option.c:314
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr ""
 
-#: option.c:311
+#: option.c:315
 msgid "Enable dynamic address allocation for bootp."
 msgstr ""
 
-#: option.c:312
+#: option.c:316
 msgid "Map MAC address (with wildcards) to option set."
 msgstr ""
 
-#: option.c:313
+#: option.c:317
 msgid "Treat DHCP requests on aliases as arriving from interface."
 msgstr ""
 
-#: option.c:314
+#: option.c:318
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 
-#: option.c:315
+#: option.c:319
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 
-#: option.c:316
+#: option.c:320
 msgid "Read configuration from all the files in this directory."
 msgstr ""
 
-#: option.c:317
+#: option.c:321
 msgid "Log to this syslog facility or file. (defaults to DAEMON)"
 msgstr ""
 
-#: option.c:318
+#: option.c:322
 msgid "Do not use leasefile."
 msgstr ""
 
-#: option.c:319
+#: option.c:323
 #, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr ""
 
-#: option.c:320
+#: option.c:324
 #, c-format
 msgid "Clear DNS cache when reloading %s."
 msgstr ""
 
-#: option.c:321
+#: option.c:325
 msgid "Ignore hostnames provided by DHCP clients."
 msgstr ""
 
-#: option.c:322
+#: option.c:326
 msgid "Do NOT reuse filename and server fields for extra DHCP options."
 msgstr ""
 
-#: option.c:323
+#: option.c:327
 msgid "Enable integrated read-only TFTP server."
 msgstr ""
 
-#: option.c:324
+#: option.c:328
 msgid "Export files by TFTP only from the specified subtree."
 msgstr ""
 
-#: option.c:325
+#: option.c:329
 msgid "Add client IP address to tftp-root."
 msgstr ""
 
-#: option.c:326
+#: option.c:330
 msgid "Allow access only to files owned by the user running dnsmasq."
 msgstr ""
 
-#: option.c:327
+#: option.c:331
 #, c-format
 msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
 msgstr ""
 
-#: option.c:328
+#: option.c:332
 msgid "Disable the TFTP blocksize extension."
 msgstr ""
 
-#: option.c:329
+#: option.c:333
 msgid "Ephemeral port range for use by TFTP transfers."
 msgstr ""
 
-#: option.c:330
+#: option.c:334
 msgid "Extra logging for DHCP."
 msgstr ""
 
-#: option.c:331
+#: option.c:335
 msgid "Enable async. logging; optionally set queue length."
 msgstr ""
 
-#: option.c:332
+#: option.c:336
 msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
 msgstr ""
 
-#: option.c:333
+#: option.c:337
 msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
 msgstr ""
 
-#: option.c:334
+#: option.c:338
 msgid "Inhibit DNS-rebind protection on this domain."
 msgstr ""
 
-#: option.c:335
+#: option.c:339
 msgid "Always perform DNS queries to all servers."
 msgstr ""
 
-#: option.c:336
+#: option.c:340
 msgid "Set tag if client includes matching option in request."
 msgstr ""
 
-#: option.c:337
+#: option.c:341
 msgid "Use alternative ports for DHCP."
 msgstr ""
 
-#: option.c:338
+#: option.c:342
 msgid "Run lease-change script as this user."
 msgstr ""
 
-#: option.c:339
+#: option.c:343
 msgid "Specify NAPTR DNS record."
 msgstr ""
 
-#: option.c:340
+#: option.c:344
 msgid "Specify lowest port available for DNS query transmission."
 msgstr ""
 
-#: option.c:341
+#: option.c:345
 msgid "Use only fully qualified domain names for DHCP clients."
 msgstr ""
 
-#: option.c:342
+#: option.c:346
 msgid "Generate hostnames based on MAC address for nameless clients."
 msgstr ""
 
-#: option.c:343
+#: option.c:347
 msgid "Use these DHCP relays as full proxies."
 msgstr ""
 
-#: option.c:344
+#: option.c:348
 msgid "Specify alias name for LOCAL DNS name."
 msgstr ""
 
-#: option.c:345
+#: option.c:349
 msgid "Prompt to send to PXE clients."
 msgstr ""
 
-#: option.c:346
+#: option.c:350
 msgid "Boot service for PXE menu."
 msgstr ""
 
-#: option.c:347
+#: option.c:351
 msgid "Check configuration syntax."
 msgstr ""
 
-#: option.c:348
-msgid "Add requestor's MAC address to forwarded DNS queries"
+#: option.c:352
+msgid "Add requestor's MAC address to forwarded DNS queries."
 msgstr ""
 
-#: option.c:349
-msgid "Proxy DNSSEC validation results from upstream nameservers"
+#: option.c:353
+msgid "Proxy DNSSEC validation results from upstream nameservers."
+msgstr ""
+
+#: option.c:354
+msgid "Attempt to allocate sequential IP addresses to DHCP clients."
 msgstr ""
 
-#: option.c:638
+#: option.c:355
+msgid "Copy connection-track mark from queries to upstream connections."
+msgstr ""
+
+#: option.c:644
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
 "\n"
 msgstr ""
 
-#: option.c:640
+#: option.c:646
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr ""
 
-#: option.c:642
+#: option.c:648
 #, c-format
 msgid "Valid options are:\n"
 msgstr ""
 
-#: option.c:683
+#: option.c:689
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr ""
 
-#: option.c:798
+#: option.c:804
 msgid "bad dhcp-option"
 msgstr ""
 
-#: option.c:860
+#: option.c:866
 msgid "bad IP address"
 msgstr ""
 
-#: option.c:968
+#: option.c:974
 msgid "bad domain in dhcp-option"
 msgstr ""
 
-#: option.c:1034
+#: option.c:1040
 msgid "dhcp-option too long"
 msgstr ""
 
-#: option.c:1043
+#: option.c:1049
 msgid "illegal dhcp-match"
 msgstr ""
 
-#: option.c:1087
+#: option.c:1093
 msgid "illegal repeated flag"
 msgstr ""
 
-#: option.c:1095
+#: option.c:1101
 msgid "illegal repeated keyword"
 msgstr ""
 
-#: option.c:1147 option.c:3030
+#: option.c:1153 option.c:3062
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr ""
 
-#: option.c:1178 tftp.c:460
+#: option.c:1184 tftp.c:465
 #, c-format
 msgid "cannot access %s: %s"
 msgstr ""
 
-#: option.c:1207
+#: option.c:1213
 msgid "setting log facility is not possible under Android"
 msgstr ""
 
-#: option.c:1216
+#: option.c:1222
 msgid "bad log facility"
 msgstr ""
 
-#: option.c:1265
+#: option.c:1271
 msgid "bad MX preference"
 msgstr ""
 
-#: option.c:1270
+#: option.c:1276
 msgid "bad MX name"
 msgstr ""
 
-#: option.c:1284
+#: option.c:1290
 msgid "bad MX target"
 msgstr ""
 
-#: option.c:1294
+#: option.c:1300
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:1296
+#: option.c:1302
 msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
 msgstr ""
 
-#: option.c:1597 option.c:1601
+#: option.c:1607 option.c:1611
 msgid "bad port"
 msgstr ""
 
-#: option.c:1620 option.c:1645
+#: option.c:1634 option.c:1665
 msgid "interface binding not supported"
 msgstr ""
 
-#: option.c:1791
+#: option.c:1645 option.c:2614
+msgid "bad interface name"
+msgstr ""
+
+#: option.c:1810
 msgid "bad port range"
 msgstr ""
 
-#: option.c:1808
+#: option.c:1827
 msgid "bad bridge-interface"
 msgstr ""
 
-#: option.c:1850
+#: option.c:1870
 msgid "bad dhcp-range"
 msgstr ""
 
-#: option.c:1878
+#: option.c:1898
 msgid "only one tag allowed"
 msgstr ""
 
-#: option.c:1925
+#: option.c:1945
 msgid "inconsistent DHCP range"
 msgstr ""
 
-#: option.c:2019 option.c:2045
+#: option.c:2039 option.c:2067
 msgid "bad hex constant"
 msgstr ""
 
-#: option.c:2107
+#: option.c:2061
+msgid "cannot match tags in --dhcp-host"
+msgstr ""
+
+#: option.c:2129
 msgid "bad DHCP host name"
 msgstr ""
 
-#: option.c:2188
+#: option.c:2210
 msgid "bad tag-if"
 msgstr ""
 
-#: option.c:2467 option.c:2752
+#: option.c:2499 option.c:2784
 msgid "invalid port number"
 msgstr ""
 
-#: option.c:2529
+#: option.c:2561
 msgid "bad dhcp-proxy address"
 msgstr ""
 
-#: option.c:2569
+#: option.c:2601
 msgid "invalid alias range"
 msgstr ""
 
-#: option.c:2582
-msgid "bad interface name"
-msgstr ""
-
-#: option.c:2607
+#: option.c:2639
 msgid "bad CNAME"
 msgstr ""
 
-#: option.c:2612
+#: option.c:2644
 msgid "duplicate CNAME"
 msgstr ""
 
-#: option.c:2632
+#: option.c:2664
 msgid "bad PTR record"
 msgstr ""
 
-#: option.c:2663
+#: option.c:2695
 msgid "bad NAPTR record"
 msgstr ""
 
-#: option.c:2695
+#: option.c:2727
 msgid "bad TXT record"
 msgstr ""
 
-#: option.c:2738
+#: option.c:2770
 msgid "bad SRV record"
 msgstr ""
 
-#: option.c:2745
+#: option.c:2777
 msgid "bad SRV target"
 msgstr ""
 
-#: option.c:2759
+#: option.c:2791
 msgid "invalid priority"
 msgstr ""
 
-#: option.c:2766
+#: option.c:2798
 msgid "invalid weight"
 msgstr ""
 
-#: option.c:2785
+#: option.c:2817
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr ""
 
-#: option.c:2849
+#: option.c:2881
 msgid "missing \""
 msgstr ""
 
-#: option.c:2908
+#: option.c:2940
 msgid "bad option"
 msgstr ""
 
-#: option.c:2910
+#: option.c:2942
 msgid "extraneous parameter"
 msgstr ""
 
-#: option.c:2912
+#: option.c:2944
 msgid "missing parameter"
 msgstr ""
 
-#: option.c:2916
+#: option.c:2948
 msgid "error"
 msgstr ""
 
-#: option.c:2921
+#: option.c:2953
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr ""
 
-#: option.c:2985 tftp.c:624
+#: option.c:3017 tftp.c:629
 #, c-format
 msgid "cannot read %s: %s"
 msgstr ""
 
-#: option.c:3151 option.c:3187
+#: option.c:3183 option.c:3219
 #, c-format
 msgid "read %s"
 msgstr ""
 
-#: option.c:3239
+#: option.c:3271
 msgid "junk found in command line"
 msgstr ""
 
-#: option.c:3269
+#: option.c:3301
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr ""
 
-#: option.c:3270
+#: option.c:3302
 #, c-format
 msgid ""
 "Compile time options %s\n"
 "\n"
 msgstr ""
 
-#: option.c:3271
+#: option.c:3303
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr ""
 
-#: option.c:3272
+#: option.c:3304
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr ""
 
-#: option.c:3273
+#: option.c:3305
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
 msgstr ""
 
-#: option.c:3284
+#: option.c:3316
 msgid "try --help"
 msgstr ""
 
-#: option.c:3286
+#: option.c:3318
 msgid "try -w"
 msgstr ""
 
-#: option.c:3289
+#: option.c:3321
 #, c-format
 msgid "bad command line options: %s"
 msgstr ""
 
-#: option.c:3330
+#: option.c:3362
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr ""
 
-#: option.c:3358
+#: option.c:3390
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr ""
 
-#: option.c:3368
+#: option.c:3400
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr ""
 
-#: option.c:3371 network.c:848 dhcp.c:814
+#: option.c:3403 network.c:848 dhcp.c:823
 #, c-format
 msgid "failed to read %s: %s"
 msgstr ""
 
-#: option.c:3388
+#: option.c:3420
 #, c-format
 msgid "no search directive found in %s"
 msgstr ""
 
-#: option.c:3409
+#: option.c:3441
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr ""
 
-#: option.c:3413
+#: option.c:3445
 msgid "syntax check OK"
 msgstr ""
 
-#: forward.c:461
+#: forward.c:471
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr ""
 
-#: forward.c:489
+#: forward.c:499
 #, c-format
 msgid "possible DNS-rebind attack detected: %s"
 msgstr ""
@@ -908,273 +925,281 @@ msgstr ""
 msgid "using nameserver %s#%d"
 msgstr ""
 
-#: dnsmasq.c:148
+#: dnsmasq.c:152
 msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:153
+#: dnsmasq.c:157
+msgid "Cannot use --conntrack AND --query-port"
+msgstr ""
+
+#: dnsmasq.c:160
+msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
+msgstr ""
+
+#: dnsmasq.c:165
 msgid "asychronous logging is not available under Solaris"
 msgstr ""
 
-#: dnsmasq.c:158
+#: dnsmasq.c:170
 msgid "asychronous logging is not available under Android"
 msgstr ""
 
-#: dnsmasq.c:177
+#: dnsmasq.c:189
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr ""
 
-#: dnsmasq.c:185
+#: dnsmasq.c:197
 #, c-format
 msgid "unknown interface %s"
 msgstr ""
 
-#: dnsmasq.c:191
+#: dnsmasq.c:203
 #, c-format
 msgid "no interface with address %s"
 msgstr ""
 
-#: dnsmasq.c:207 dnsmasq.c:678
+#: dnsmasq.c:219 dnsmasq.c:690
 #, c-format
 msgid "DBus error: %s"
 msgstr ""
 
-#: dnsmasq.c:210
+#: dnsmasq.c:222
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:236
+#: dnsmasq.c:248
 #, c-format
 msgid "unknown user or group: %s"
 msgstr ""
 
-#: dnsmasq.c:291
+#: dnsmasq.c:303
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr ""
 
-#: dnsmasq.c:455
+#: dnsmasq.c:467
 #, c-format
 msgid "started, version %s DNS disabled"
 msgstr ""
 
-#: dnsmasq.c:457
+#: dnsmasq.c:469
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr ""
 
-#: dnsmasq.c:459
+#: dnsmasq.c:471
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr ""
 
-#: dnsmasq.c:461
+#: dnsmasq.c:473
 #, c-format
 msgid "compile time options: %s"
 msgstr ""
 
-#: dnsmasq.c:467
+#: dnsmasq.c:479
 msgid "DBus support enabled: connected to system bus"
 msgstr ""
 
-#: dnsmasq.c:469
+#: dnsmasq.c:481
 msgid "DBus support enabled: bus connection pending"
 msgstr ""
 
-#: dnsmasq.c:474
+#: dnsmasq.c:486
 #, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr ""
 
-#: dnsmasq.c:478
+#: dnsmasq.c:490
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr ""
 
-#: dnsmasq.c:483
+#: dnsmasq.c:495
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr ""
 
-#: dnsmasq.c:488
+#: dnsmasq.c:500
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:491
+#: dnsmasq.c:503
 msgid "warning: no upstream servers configured"
 msgstr ""
 
-#: dnsmasq.c:495
+#: dnsmasq.c:507
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr ""
 
-#: dnsmasq.c:508
+#: dnsmasq.c:520
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:510
+#: dnsmasq.c:522
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr ""
 
-#: dnsmasq.c:511
+#: dnsmasq.c:523
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "root is "
 msgstr ""
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "enabled"
 msgstr ""
 
-#: dnsmasq.c:528
+#: dnsmasq.c:540
 msgid "secure mode"
 msgstr ""
 
-#: dnsmasq.c:554
+#: dnsmasq.c:566
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr ""
 
-#: dnsmasq.c:680
+#: dnsmasq.c:692
 msgid "connected to system DBus"
 msgstr ""
 
-#: dnsmasq.c:775
+#: dnsmasq.c:787
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr ""
 
-#: dnsmasq.c:778
+#: dnsmasq.c:790
 #, c-format
 msgid "failed to create helper: %s"
 msgstr ""
 
-#: dnsmasq.c:781
+#: dnsmasq.c:793
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr ""
 
-#: dnsmasq.c:785
+#: dnsmasq.c:797
 #, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr ""
 
-#: dnsmasq.c:790
+#: dnsmasq.c:802
 #, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr ""
 
-#: dnsmasq.c:793
+#: dnsmasq.c:805
 #, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr ""
 
-#: dnsmasq.c:796
+#: dnsmasq.c:808
 #, c-format
 msgid "cannot open %s: %s"
 msgstr ""
 
-#: dnsmasq.c:851
+#: dnsmasq.c:863
 #, c-format
 msgid "child process killed by signal %d"
 msgstr ""
 
-#: dnsmasq.c:855
+#: dnsmasq.c:867
 #, c-format
 msgid "child process exited with status %d"
 msgstr ""
 
-#: dnsmasq.c:859
+#: dnsmasq.c:871
 #, c-format
 msgid "failed to execute %s: %s"
 msgstr ""
 
-#: dnsmasq.c:903
+#: dnsmasq.c:915
 msgid "exiting on receipt of SIGTERM"
 msgstr ""
 
-#: dnsmasq.c:931
+#: dnsmasq.c:943
 #, c-format
 msgid "failed to access %s: %s"
 msgstr ""
 
-#: dnsmasq.c:961
+#: dnsmasq.c:973
 #, c-format
 msgid "reading %s"
 msgstr ""
 
-#: dnsmasq.c:972
+#: dnsmasq.c:984
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr ""
 
-#: dhcp.c:40
+#: dhcp.c:39
 #, c-format
 msgid "cannot create DHCP socket: %s"
 msgstr ""
 
-#: dhcp.c:52
+#: dhcp.c:51
 #, c-format
 msgid "failed to set options on DHCP socket: %s"
 msgstr ""
 
-#: dhcp.c:65
+#: dhcp.c:64
 #, c-format
 msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
 msgstr ""
 
-#: dhcp.c:77
+#: dhcp.c:76
 #, c-format
 msgid "failed to bind DHCP server socket: %s"
 msgstr ""
 
-#: dhcp.c:103
+#: dhcp.c:102
 #, c-format
 msgid "cannot create ICMP raw socket: %s."
 msgstr ""
 
-#: dhcp.c:281
+#: dhcp.c:278
 #, c-format
 msgid "DHCP packet received on %s which has no address"
 msgstr ""
 
-#: dhcp.c:445
+#: dhcp.c:442
 #, c-format
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr ""
 
-#: dhcp.c:852
+#: dhcp.c:861
 #, c-format
 msgid "bad line at %s line %d"
 msgstr ""
 
-#: dhcp.c:895
+#: dhcp.c:904
 #, c-format
 msgid "ignoring %s line %d, duplicate name or IP address"
 msgstr ""
 
-#: dhcp.c:978
+#: dhcp.c:987
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr ""
 
-#: dhcp.c:981
+#: dhcp.c:990
 #, c-format
 msgid "duplicate IP address %s in %s."
 msgstr ""
 
-#: dhcp.c:1024
+#: dhcp.c:1033
 #, c-format
 msgid "%s has more than one address in hostsfile, using %s for DHCP"
 msgstr ""
 
-#: dhcp.c:1029
+#: dhcp.c:1038
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr ""
@@ -1203,178 +1228,183 @@ msgstr ""
 msgid "failed to write %s: %s (retry in %us)"
 msgstr ""
 
-#: rfc2131.c:315
+#: rfc2131.c:342
 #, c-format
 msgid "no address range available for DHCP request %s %s"
 msgstr ""
 
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "with subnet selector"
 msgstr ""
 
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "via"
 msgstr ""
 
-#: rfc2131.c:331
+#: rfc2131.c:355
 #, c-format
 msgid "%u available DHCP subnet: %s/%s"
 msgstr ""
 
-#: rfc2131.c:334
+#: rfc2131.c:358
 #, c-format
 msgid "%u available DHCP range: %s -- %s"
 msgstr ""
 
-#: rfc2131.c:363
+#: rfc2131.c:387
 msgid "disabled"
 msgstr ""
 
-#: rfc2131.c:404 rfc2131.c:916 rfc2131.c:1288
+#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
 msgid "ignored"
 msgstr ""
 
-#: rfc2131.c:419 rfc2131.c:1135
+#: rfc2131.c:443 rfc2131.c:1183
 msgid "address in use"
 msgstr ""
 
-#: rfc2131.c:433 rfc2131.c:970
+#: rfc2131.c:457 rfc2131.c:999
 msgid "no address available"
 msgstr ""
 
-#: rfc2131.c:440 rfc2131.c:1098
+#: rfc2131.c:464 rfc2131.c:1146
 msgid "wrong network"
 msgstr ""
 
-#: rfc2131.c:454
+#: rfc2131.c:479
 msgid "no address configured"
 msgstr ""
 
-#: rfc2131.c:460 rfc2131.c:1148
+#: rfc2131.c:485 rfc2131.c:1196
 msgid "no leases left"
 msgstr ""
 
-#: rfc2131.c:545
+#: rfc2131.c:570
 #, c-format
 msgid "%u client provides name: %s"
 msgstr ""
 
-#: rfc2131.c:700
+#: rfc2131.c:725
 #, c-format
 msgid "%u vendor class: %s"
 msgstr ""
 
-#: rfc2131.c:702
+#: rfc2131.c:727
 #, c-format
 msgid "%u user class: %s"
 msgstr ""
 
-#: rfc2131.c:761
+#: rfc2131.c:786
 msgid "PXE BIS not supported"
 msgstr ""
 
-#: rfc2131.c:886
+#: rfc2131.c:915
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr ""
 
-#: rfc2131.c:907
+#: rfc2131.c:936
 msgid "unknown lease"
 msgstr ""
 
-#: rfc2131.c:939
+#: rfc2131.c:968
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:949
+#: rfc2131.c:978
 #, c-format
 msgid "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:952
+#: rfc2131.c:981
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:968 rfc2131.c:1141
+#: rfc2131.c:997 rfc2131.c:1189
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:1037
+#: rfc2131.c:1084
 msgid "wrong server-ID"
 msgstr ""
 
-#: rfc2131.c:1055
+#: rfc2131.c:1103
 msgid "wrong address"
 msgstr ""
 
-#: rfc2131.c:1073
+#: rfc2131.c:1121
 msgid "lease not found"
 msgstr ""
 
-#: rfc2131.c:1106
+#: rfc2131.c:1154
 msgid "address not available"
 msgstr ""
 
-#: rfc2131.c:1117
+#: rfc2131.c:1165
 msgid "static lease available"
 msgstr ""
 
-#: rfc2131.c:1121
+#: rfc2131.c:1169
 msgid "address reserved"
 msgstr ""
 
-#: rfc2131.c:1129
+#: rfc2131.c:1177
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr ""
 
-#: rfc2131.c:1710
+#: rfc2131.c:1746
 #, c-format
 msgid "%u tags: %s"
 msgstr ""
 
-#: rfc2131.c:1723
+#: rfc2131.c:1774
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr ""
 
-#: rfc2131.c:1732
+#: rfc2131.c:1783
 #, c-format
 msgid "%u server name: %s"
 msgstr ""
 
-#: rfc2131.c:1746
+#: rfc2131.c:1791
 #, c-format
 msgid "%u next server: %s"
 msgstr ""
 
-#: rfc2131.c:1749
+#: rfc2131.c:1794
 #, c-format
 msgid "%u broadcast response"
 msgstr ""
 
-#: rfc2131.c:1812
+#: rfc2131.c:1857
 #, c-format
 msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
 msgstr ""
 
-#: rfc2131.c:2058
+#: rfc2131.c:2097
 msgid "PXE menu too large"
 msgstr ""
 
-#: rfc2131.c:2171
+#: rfc2131.c:2253
+#, c-format
+msgid "Ignoring duplicate dhcp-option %d"
+msgstr ""
+
+#: rfc2131.c:2257
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr ""
 
-#: rfc2131.c:2189
+#: rfc2131.c:2275
 #, c-format
 msgid "%u requested options: %s"
 msgstr ""
 
-#: rfc2131.c:2456
+#: rfc2131.c:2550
 #, c-format
 msgid "cannot send RFC3925 option: too many options for enterprise number %d"
 msgstr ""
@@ -1401,55 +1431,60 @@ msgstr ""
 msgid "could not register a DBus message handler"
 msgstr ""
 
-#: bpf.c:217
+#: bpf.c:224
 #, c-format
 msgid "cannot create DHCP BPF socket: %s"
 msgstr ""
 
-#: bpf.c:245
+#: bpf.c:252
 #, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr ""
 
-#: tftp.c:281
+#: tftp.c:286
 msgid "unable to get free port for TFTP"
 msgstr ""
 
-#: tftp.c:296
+#: tftp.c:301
 #, c-format
 msgid "unsupported request from %s"
 msgstr ""
 
-#: tftp.c:406
+#: tftp.c:411
 #, c-format
 msgid "file %s not found"
 msgstr ""
 
-#: tftp.c:522
+#: tftp.c:527
 #, c-format
 msgid "error %d %s received from %s"
 msgstr ""
 
-#: tftp.c:554
+#: tftp.c:559
 #, c-format
 msgid "failed sending %s to %s"
 msgstr ""
 
-#: tftp.c:568
+#: tftp.c:573
 #, c-format
 msgid "sent %s to %s"
 msgstr ""
 
-#: log.c:177
+#: log.c:190
 #, c-format
 msgid "overflow: %d log entries lost"
 msgstr ""
 
-#: log.c:254
+#: log.c:267
 #, c-format
 msgid "log failed: %s"
 msgstr ""
 
-#: log.c:462
+#: log.c:471
 msgid "FAILED to start up"
 msgstr ""
+
+#: conntrack.c:65
+#, c-format
+msgid "Conntrack connection mark retrieval failed: %s"
+msgstr ""
index 78382cf444cf94052039a2d48b91c6ef81fa7c49..df61719436c18711e4ef6dc646ab15f6b307cfcf 100644 (file)
--- a/po/no.po
+++ b/po/no.po
@@ -22,17 +22,17 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr "feilet å laste navn fra %s: %s"
 
-#: cache.c:795 dhcp.c:865
+#: cache.c:795 dhcp.c:874
 #, c-format
 msgid "bad address at %s line %d"
 msgstr "dårlig adresse ved %s linje %d"
 
-#: cache.c:853 dhcp.c:881
+#: cache.c:853 dhcp.c:890
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "dårlig navn ved %s linje %d"
 
-#: cache.c:860 dhcp.c:956
+#: cache.c:860 dhcp.c:965
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "les %s - %d adresser"
@@ -41,32 +41,37 @@ msgstr "les %s - %d adresser"
 msgid "cleared cache"
 msgstr "mellomlager tømt"
 
-#: cache.c:960
+#: cache.c:934
+#, c-format
+msgid "No IPv4 address found for %s"
+msgstr ""
+
+#: cache.c:975
 #, c-format
 msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
 msgstr ""
 
-#: cache.c:966
+#: cache.c:981
 #, c-format
 msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
 msgstr "gir ikke navnet %s til DHCP leien for %s fordi navnet eksisterer i %s med adressen %s"
 
-#: cache.c:1039
+#: cache.c:1054
 #, c-format
 msgid "time %lu"
 msgstr ""
 
-#: cache.c:1040
+#: cache.c:1055
 #, fuzzy, c-format
 msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
 msgstr "mellomlager størrelse %d, %d/%d mellomlager innsettinger re-bruker mellomlager plasser som ikke er utløpt"
 
-#: cache.c:1042
+#: cache.c:1057
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr ""
 
-#: cache.c:1068
+#: cache.c:1083
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr ""
@@ -81,7 +86,7 @@ msgstr "feilet 
 msgid "failed to allocate memory"
 msgstr "feilet å laste %d bytes"
 
-#: util.c:227 option.c:573
+#: util.c:227 option.c:579
 msgid "could not get memory"
 msgstr "kunne ikke få minne"
 
@@ -95,469 +100,477 @@ msgstr "kan ikke lese %s: %s"
 msgid "failed to allocate %d bytes"
 msgstr "feilet å laste %d bytes"
 
-#: util.c:350
+#: util.c:358
 #, c-format
 msgid "infinite"
 msgstr "uendelig"
 
-#: option.c:244
+#: option.c:248
 msgid "Specify local address(es) to listen on."
 msgstr "Spesifiser lokal(e) adresse(r) å lytte på."
 
-#: option.c:245
+#: option.c:249
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr "Returner ipaddr for alle verter i det spesifiserte domenet."
 
-#: option.c:246
+#: option.c:250
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr "Forfalsk revers oppslag for RFC1918 private adresse områder."
 
-#: option.c:247
+#: option.c:251
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr "Behandle ipaddr som NXDOMAIN (omgår Verisign wildcard)."
 
-#: option.c:248
+#: option.c:252
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr "Spesifiser størrelsen på mellomlager plassene (standard er %s)."
 
-#: option.c:249
+#: option.c:253
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr "Spesifiser konfigurasjonsfil (standard er %s)."
 
-#: option.c:250
+#: option.c:254
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr "IKKE legg (fork) som bakgrunnsprosess: kjør i debug modus."
 
-#: option.c:251
+#: option.c:255
 msgid "Do NOT forward queries with no domain part."
 msgstr "IKKE videresend oppslag som mangler domene del."
 
-#: option.c:252
+#: option.c:256
 msgid "Return self-pointing MX records for local hosts."
 msgstr "Returner selv-pekende MX post for lokale verter."
 
-#: option.c:253
+#: option.c:257
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr "Utvid enkle navn i /etc/hosts med domene-suffiks."
 
-#: option.c:254
+#: option.c:258
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr "Ikke videresend falske/uekte DNS forespørsler fra Windows verter."
 
-#: option.c:255
+#: option.c:259
 msgid "Enable DHCP in the range given with lease duration."
 msgstr "Aktiver DHCP i det gitte området med leie varighet"
 
-#: option.c:256
+#: option.c:260
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr "Skift til denne gruppen etter oppstart (standard er %s)."
 
-#: option.c:257
+#: option.c:261
 msgid "Set address or hostname for a specified machine."
 msgstr "Sett adresse eller vertsnavn for en spesifikk maskin."
 
-#: option.c:258
+#: option.c:262
 #, fuzzy
 msgid "Read DHCP host specs from file."
 msgstr "dårlig MX navn"
 
-#: option.c:259
+#: option.c:263
 msgid "Read DHCP option specs from file."
 msgstr ""
 
-#: option.c:260
+#: option.c:264
 msgid "Evaluate conditional tag expression."
 msgstr ""
 
-#: option.c:261
+#: option.c:265
 #, c-format
 msgid "Do NOT load %s file."
 msgstr "IKKE last %s filen."
 
-#: option.c:262
+#: option.c:266
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr "Spesifiser en verts (hosts) fil som skal leses i tilleg til %s."
 
-#: option.c:263
+#: option.c:267
 msgid "Specify interface(s) to listen on."
 msgstr "Spesifiser nettverkskort det skal lyttes på."
 
-#: option.c:264
+#: option.c:268
 msgid "Specify interface(s) NOT to listen on."
 msgstr "Spesifiser nettverkskort det IKKE skal lyttes på."
 
-#: option.c:265
+#: option.c:269
 #, fuzzy
 msgid "Map DHCP user class to tag."
 msgstr "Map DHCP bruker klasse til opsjon sett."
 
-#: option.c:266
+#: option.c:270
 msgid "Map RFC3046 circuit-id to tag."
 msgstr ""
 
-#: option.c:267
+#: option.c:271
 msgid "Map RFC3046 remote-id to tag."
 msgstr ""
 
-#: option.c:268
+#: option.c:272
 msgid "Map RFC3993 subscriber-id to tag."
 msgstr ""
 
-#: option.c:269
+#: option.c:273
 #, fuzzy
 msgid "Don't do DHCP for hosts with tag set."
 msgstr "Ikke utfør DHCP for klienter i opsjon sett."
 
-#: option.c:270
+#: option.c:274
 #, fuzzy
 msgid "Force broadcast replies for hosts with tag set."
 msgstr "Ikke utfør DHCP for klienter i opsjon sett."
 
-#: option.c:271
+#: option.c:275
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr "IKKE last (fork) som bakgrunnsprosess, IKKE kjør i debug modus."
 
-#: option.c:272
+#: option.c:276
 msgid "Assume we are the only DHCP server on the local network."
 msgstr "Anta at vi er den eneste DHCP tjeneren på det lokale nettverket."
 
-#: option.c:273
+#: option.c:277
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr "Spesifiser hvor DHCP leiene skal lagres (standard er %s)."
 
-#: option.c:274
+#: option.c:278
 msgid "Return MX records for local hosts."
 msgstr "Returner MX records for lokale verter."
 
-#: option.c:275
+#: option.c:279
 msgid "Specify an MX record."
 msgstr "Spesifiser en MX post."
 
-#: option.c:276
+#: option.c:280
 msgid "Specify BOOTP options to DHCP server."
 msgstr "Spesifiser BOOTP opsjoner til DHCP tjener."
 
-#: option.c:277
+#: option.c:281
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr "IKKE spør (poll) %s fil, les på nytt kun ved SIGHUP"
 
-#: option.c:278
+#: option.c:282
 msgid "Do NOT cache failed search results."
 msgstr "IKKE mellomlagre søkeresultater som feiler."
 
-#: option.c:279
+#: option.c:283
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr "Bruk navnetjenere kun som bestemt i rekkefølgen gitt i %s."
 
-#: option.c:280
+#: option.c:284
 #, fuzzy
 msgid "Specify options to be sent to DHCP clients."
 msgstr "Sett ekstra opsjoner som skal fordeles til DHCP klientene."
 
-#: option.c:281
+#: option.c:285
 msgid "DHCP option sent even if the client does not request it."
 msgstr ""
 
-#: option.c:282
+#: option.c:286
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr "Spesifiser lytteport for DNS oppslag (standard er 53)."
 
-#: option.c:283
+#: option.c:287
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr "Maksimal støttet UDP pakkestørrelse for EDNS.0 (standard er %s)."
 
-#: option.c:284
+#: option.c:288
 #, fuzzy
 msgid "Log DNS queries."
 msgstr "Logg oppslag."
 
-#: option.c:285
+#: option.c:289
 #, fuzzy
 msgid "Force the originating port for upstream DNS queries."
 msgstr "Tving bruk av opprinnelig port for oppstrøms oppslag."
 
-#: option.c:286
+#: option.c:290
 msgid "Do NOT read resolv.conf."
 msgstr "IKKE les resolv.conf."
 
-#: option.c:287
+#: option.c:291
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr "Spesifiser stien til resolv.conf (standard er %s)."
 
-#: option.c:288
+#: option.c:292
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr "Spesifiser adressen(e) til oppstrøms tjenere med valgfrie domener."
 
-#: option.c:289
+#: option.c:293
 msgid "Never forward queries to specified domains."
 msgstr "Aldri videresend oppslag til spesifiserte domener."
 
-#: option.c:290
+#: option.c:294
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr "Spesifiser domenet som skal tildeles i DHCP leien."
 
-#: option.c:291
+#: option.c:295
 msgid "Specify default target in an MX record."
 msgstr "Spesifiser default mål i en MX post."
 
-#: option.c:292
+#: option.c:296
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr "Spesifiser time-to-live i sekunder for svar fra /etc/hosts."
 
-#: option.c:293
+#: option.c:297
 #, fuzzy
 msgid "Specify time-to-live in seconds for negative caching."
 msgstr "Spesifiser time-to-live i sekunder for svar fra /etc/hosts."
 
-#: option.c:294
+#: option.c:298
 #, fuzzy
 msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
 msgstr "Spesifiser time-to-live i sekunder for svar fra /etc/hosts."
 
-#: option.c:295
+#: option.c:299
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr "Skift til denne bruker etter oppstart (standard er %s)."
 
-#: option.c:296
+#: option.c:300
 #, fuzzy
 msgid "Map DHCP vendor class to tag."
 msgstr "Map DHCP produsent klasse til opsjon sett."
 
-#: option.c:297
+#: option.c:301
 msgid "Display dnsmasq version and copyright information."
 msgstr "Vis dnsmasq versjon og copyright informasjon."
 
-#: option.c:298
+#: option.c:302
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr "Oversett IPv4 adresser fra oppstrøms tjenere."
 
-#: option.c:299
+#: option.c:303
 msgid "Specify a SRV record."
 msgstr "Spesifiser en SRV post."
 
-#: option.c:300
+#: option.c:304
 msgid "Display this message. Use --help dhcp for known DHCP options."
 msgstr ""
 
-#: option.c:301
+#: option.c:305
 #, fuzzy, c-format
 msgid "Specify path of PID file (defaults to %s)."
 msgstr "Spesifiser stien til PID fil. (standard er %s)."
 
-#: option.c:302
+#: option.c:306
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
 
-#: option.c:303
+#: option.c:307
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr "Svar DNS oppslag basert på nettverkskortet oppslaget ble sendt til."
 
-#: option.c:304
+#: option.c:308
 msgid "Specify TXT DNS record."
 msgstr "Spesifiser TXT DNS post."
 
-#: option.c:305
+#: option.c:309
 #, fuzzy
 msgid "Specify PTR DNS record."
 msgstr "Spesifiser TXT DNS post."
 
-#: option.c:306
+#: option.c:310
 msgid "Give DNS name to IPv4 address of interface."
 msgstr ""
 
-#: option.c:307
+#: option.c:311
 msgid "Bind only to interfaces in use."
 msgstr "Bind kun til nettverkskort som er i bruk."
 
-#: option.c:308
+#: option.c:312
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr "Les DHCP statisk vert informasjon fra %s."
 
-#: option.c:309
+#: option.c:313
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr "Aktiver DBus interface for å sette oppstrøms tjenere, osv."
 
-#: option.c:310
+#: option.c:314
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr "Ikke lever DHCP på dette nettverkskortet, kun lever DNS."
 
-#: option.c:311
+#: option.c:315
 msgid "Enable dynamic address allocation for bootp."
 msgstr "Aktiver dynamisk adresse allokering for bootp."
 
-#: option.c:312
+#: option.c:316
 #, fuzzy
 msgid "Map MAC address (with wildcards) to option set."
 msgstr "Map DHCP produsent klasse til opsjon sett."
 
-#: option.c:313
+#: option.c:317
 msgid "Treat DHCP requests on aliases as arriving from interface."
 msgstr ""
 
-#: option.c:314
+#: option.c:318
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 
-#: option.c:315
+#: option.c:319
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 
-#: option.c:316
+#: option.c:320
 msgid "Read configuration from all the files in this directory."
 msgstr ""
 
-#: option.c:317
+#: option.c:321
 #, fuzzy
 msgid "Log to this syslog facility or file. (defaults to DAEMON)"
 msgstr "Skift til denne bruker etter oppstart (standard er %s)."
 
-#: option.c:318
+#: option.c:322
 msgid "Do not use leasefile."
 msgstr ""
 
-#: option.c:319
+#: option.c:323
 #, fuzzy, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
 
-#: option.c:320
+#: option.c:324
 #, c-format
 msgid "Clear DNS cache when reloading %s."
 msgstr ""
 
-#: option.c:321
+#: option.c:325
 msgid "Ignore hostnames provided by DHCP clients."
 msgstr ""
 
-#: option.c:322
+#: option.c:326
 msgid "Do NOT reuse filename and server fields for extra DHCP options."
 msgstr ""
 
-#: option.c:323
+#: option.c:327
 msgid "Enable integrated read-only TFTP server."
 msgstr ""
 
-#: option.c:324
+#: option.c:328
 msgid "Export files by TFTP only from the specified subtree."
 msgstr ""
 
-#: option.c:325
+#: option.c:329
 msgid "Add client IP address to tftp-root."
 msgstr ""
 
-#: option.c:326
+#: option.c:330
 msgid "Allow access only to files owned by the user running dnsmasq."
 msgstr ""
 
-#: option.c:327
+#: option.c:331
 #, fuzzy, c-format
 msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
 msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
 
-#: option.c:328
+#: option.c:332
 msgid "Disable the TFTP blocksize extension."
 msgstr ""
 
-#: option.c:329
+#: option.c:333
 msgid "Ephemeral port range for use by TFTP transfers."
 msgstr ""
 
-#: option.c:330
+#: option.c:334
 msgid "Extra logging for DHCP."
 msgstr ""
 
-#: option.c:331
+#: option.c:335
 msgid "Enable async. logging; optionally set queue length."
 msgstr ""
 
-#: option.c:332
+#: option.c:336
 msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
 msgstr ""
 
-#: option.c:333
+#: option.c:337
 msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
 msgstr ""
 
-#: option.c:334
+#: option.c:338
 msgid "Inhibit DNS-rebind protection on this domain."
 msgstr ""
 
-#: option.c:335
+#: option.c:339
 msgid "Always perform DNS queries to all servers."
 msgstr ""
 
-#: option.c:336
+#: option.c:340
 msgid "Set tag if client includes matching option in request."
 msgstr ""
 
-#: option.c:337
+#: option.c:341
 msgid "Use alternative ports for DHCP."
 msgstr ""
 
-#: option.c:338
+#: option.c:342
 msgid "Run lease-change script as this user."
 msgstr ""
 
-#: option.c:339
+#: option.c:343
 #, fuzzy
 msgid "Specify NAPTR DNS record."
 msgstr "Spesifiser TXT DNS post."
 
-#: option.c:340
+#: option.c:344
 msgid "Specify lowest port available for DNS query transmission."
 msgstr ""
 
-#: option.c:341
+#: option.c:345
 msgid "Use only fully qualified domain names for DHCP clients."
 msgstr ""
 
-#: option.c:342
+#: option.c:346
 msgid "Generate hostnames based on MAC address for nameless clients."
 msgstr ""
 
-#: option.c:343
+#: option.c:347
 msgid "Use these DHCP relays as full proxies."
 msgstr ""
 
-#: option.c:344
+#: option.c:348
 msgid "Specify alias name for LOCAL DNS name."
 msgstr ""
 
-#: option.c:345
+#: option.c:349
 #, fuzzy
 msgid "Prompt to send to PXE clients."
 msgstr "Sett ekstra opsjoner som skal fordeles til DHCP klientene."
 
-#: option.c:346
+#: option.c:350
 msgid "Boot service for PXE menu."
 msgstr ""
 
-#: option.c:347
+#: option.c:351
 msgid "Check configuration syntax."
 msgstr ""
 
-#: option.c:348
-msgid "Add requestor's MAC address to forwarded DNS queries"
+#: option.c:352
+msgid "Add requestor's MAC address to forwarded DNS queries."
 msgstr ""
 
-#: option.c:349
+#: option.c:353
 #, fuzzy
-msgid "Proxy DNSSEC validation results from upstream nameservers"
+msgid "Proxy DNSSEC validation results from upstream nameservers."
 msgstr "Oversett IPv4 adresser fra oppstrøms tjenere."
 
-#: option.c:638
+#: option.c:354
+msgid "Attempt to allocate sequential IP addresses to DHCP clients."
+msgstr ""
+
+#: option.c:355
+msgid "Copy connection-track mark from queries to upstream connections."
+msgstr ""
+
+#: option.c:644
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -566,238 +579,242 @@ msgstr ""
 "Bruk: dnsmasq [opsjoner]\n"
 "\n"
 
-#: option.c:640
+#: option.c:646
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr "Bruk korte opsjoner kun på kommandolinjen.\n"
 
-#: option.c:642
+#: option.c:648
 #, fuzzy, c-format
 msgid "Valid options are:\n"
 msgstr "Gyldige opsjoner er :\n"
 
-#: option.c:683
+#: option.c:689
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr ""
 
-#: option.c:798
+#: option.c:804
 msgid "bad dhcp-option"
 msgstr "dårlig dhcp-opsjon"
 
-#: option.c:860
+#: option.c:866
 #, fuzzy
 msgid "bad IP address"
 msgstr "les %s - %d adresser"
 
-#: option.c:968
+#: option.c:974
 msgid "bad domain in dhcp-option"
 msgstr "dårlig domene i dhcp-opsjon"
 
-#: option.c:1034
+#: option.c:1040
 msgid "dhcp-option too long"
 msgstr "dhcp-opsjon for lang"
 
-#: option.c:1043
+#: option.c:1049
 msgid "illegal dhcp-match"
 msgstr ""
 
-#: option.c:1087
+#: option.c:1093
 msgid "illegal repeated flag"
 msgstr ""
 
-#: option.c:1095
+#: option.c:1101
 msgid "illegal repeated keyword"
 msgstr ""
 
-#: option.c:1147 option.c:3030
+#: option.c:1153 option.c:3062
 #, fuzzy, c-format
 msgid "cannot access directory %s: %s"
 msgstr "kan ikke lese %s: %s"
 
-#: option.c:1178 tftp.c:460
+#: option.c:1184 tftp.c:465
 #, fuzzy, c-format
 msgid "cannot access %s: %s"
 msgstr "kan ikke lese %s: %s"
 
-#: option.c:1207
+#: option.c:1213
 msgid "setting log facility is not possible under Android"
 msgstr ""
 
-#: option.c:1216
+#: option.c:1222
 msgid "bad log facility"
 msgstr ""
 
-#: option.c:1265
+#: option.c:1271
 msgid "bad MX preference"
 msgstr "dårlig MX preferanse"
 
-#: option.c:1270
+#: option.c:1276
 msgid "bad MX name"
 msgstr "dårlig MX navn"
 
-#: option.c:1284
+#: option.c:1290
 msgid "bad MX target"
 msgstr "dårlig MX mål"
 
-#: option.c:1294
+#: option.c:1300
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:1296
+#: option.c:1302
 msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
 msgstr ""
 
-#: option.c:1597 option.c:1601
+#: option.c:1607 option.c:1611
 msgid "bad port"
 msgstr "dårlig port"
 
-#: option.c:1620 option.c:1645
+#: option.c:1634 option.c:1665
 msgid "interface binding not supported"
 msgstr ""
 
-#: option.c:1791
+#: option.c:1645 option.c:2614
+#, fuzzy
+msgid "bad interface name"
+msgstr "dårlig MX navn"
+
+#: option.c:1810
 #, fuzzy
 msgid "bad port range"
 msgstr "dårlig port"
 
-#: option.c:1808
+#: option.c:1827
 msgid "bad bridge-interface"
 msgstr ""
 
-#: option.c:1850
+#: option.c:1870
 msgid "bad dhcp-range"
 msgstr "dårlig dhcp-område"
 
-#: option.c:1878
+#: option.c:1898
 msgid "only one tag allowed"
 msgstr ""
 
-#: option.c:1925
+#: option.c:1945
 msgid "inconsistent DHCP range"
 msgstr "ikke konsistent DHCP område"
 
-#: option.c:2019 option.c:2045
+#: option.c:2039 option.c:2067
 #, fuzzy
 msgid "bad hex constant"
 msgstr "dårlig dhcp-vert"
 
-#: option.c:2107
+#: option.c:2061
+msgid "cannot match tags in --dhcp-host"
+msgstr ""
+
+#: option.c:2129
 #, fuzzy
 msgid "bad DHCP host name"
 msgstr "dårlig MX navn"
 
-#: option.c:2188
+#: option.c:2210
 #, fuzzy
 msgid "bad tag-if"
 msgstr "dårlig MX mål"
 
-#: option.c:2467 option.c:2752
+#: option.c:2499 option.c:2784
 msgid "invalid port number"
 msgstr "ugyldig portnummer"
 
-#: option.c:2529
+#: option.c:2561
 #, fuzzy
 msgid "bad dhcp-proxy address"
 msgstr "les %s - %d adresser"
 
-#: option.c:2569
+#: option.c:2601
 #, fuzzy
 msgid "invalid alias range"
 msgstr "ugyldig vekt"
 
-#: option.c:2582
-#, fuzzy
-msgid "bad interface name"
-msgstr "dårlig MX navn"
-
-#: option.c:2607
+#: option.c:2639
 msgid "bad CNAME"
 msgstr ""
 
-#: option.c:2612
+#: option.c:2644
 msgid "duplicate CNAME"
 msgstr ""
 
-#: option.c:2632
+#: option.c:2664
 #, fuzzy
 msgid "bad PTR record"
 msgstr "dårlig SRV post"
 
-#: option.c:2663
+#: option.c:2695
 #, fuzzy
 msgid "bad NAPTR record"
 msgstr "dårlig SRV post"
 
-#: option.c:2695
+#: option.c:2727
 msgid "bad TXT record"
 msgstr "dårlig TXT post"
 
-#: option.c:2738
+#: option.c:2770
 msgid "bad SRV record"
 msgstr "dårlig SRV post"
 
-#: option.c:2745
+#: option.c:2777
 msgid "bad SRV target"
 msgstr "dårlig SRV mål"
 
-#: option.c:2759
+#: option.c:2791
 msgid "invalid priority"
 msgstr "ugyldig prioritet"
 
-#: option.c:2766
+#: option.c:2798
 msgid "invalid weight"
 msgstr "ugyldig vekt"
 
-#: option.c:2785
+#: option.c:2817
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr ""
 
-#: option.c:2849
+#: option.c:2881
 msgid "missing \""
 msgstr "mangler \""
 
-#: option.c:2908
+#: option.c:2940
 msgid "bad option"
 msgstr "dårlig opsjon"
 
-#: option.c:2910
+#: option.c:2942
 msgid "extraneous parameter"
 msgstr "overflødig parameter"
 
-#: option.c:2912
+#: option.c:2944
 msgid "missing parameter"
 msgstr "mangler parameter"
 
-#: option.c:2916
+#: option.c:2948
 msgid "error"
 msgstr "feil"
 
-#: option.c:2921
+#: option.c:2953
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr "%s på linje %d av %%s"
 
-#: option.c:2985 tftp.c:624
+#: option.c:3017 tftp.c:629
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "kan ikke lese %s: %s"
 
-#: option.c:3151 option.c:3187
+#: option.c:3183 option.c:3219
 #, fuzzy, c-format
 msgid "read %s"
 msgstr "leser %s"
 
-#: option.c:3239
+#: option.c:3271
 msgid "junk found in command line"
 msgstr ""
 
-#: option.c:3269
+#: option.c:3301
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Dnsmasq versjon %s %s\n"
 
-#: option.c:3270
+#: option.c:3302
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -806,71 +823,71 @@ msgstr ""
 "Kompileringsopsjoner %s\n"
 "\n"
 
-#: option.c:3271
+#: option.c:3303
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Denne programvaren kommer med ABSOLUTT INGEN GARANTI.\n"
 
-#: option.c:3272
+#: option.c:3304
 #, 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:3273
+#: option.c:3305
 #, 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:3284
+#: option.c:3316
 msgid "try --help"
 msgstr ""
 
-#: option.c:3286
+#: option.c:3318
 msgid "try -w"
 msgstr ""
 
-#: option.c:3289
+#: option.c:3321
 #, fuzzy, c-format
 msgid "bad command line options: %s"
 msgstr "dårlige kommandlinje opsjoner: %s."
 
-#: option.c:3330
+#: option.c:3362
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "klarer ikke å få vertsnavn: %s"
 
-#: option.c:3358
+#: option.c:3390
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr "kun en resolv.conf fil tillat i no-poll modus."
 
-#: option.c:3368
+#: option.c:3400
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr "må ha nøyaktig en resolv.conf å lese domene fra."
 
-#: option.c:3371 network.c:848 dhcp.c:814
+#: option.c:3403 network.c:848 dhcp.c:823
 #, fuzzy, c-format
 msgid "failed to read %s: %s"
 msgstr "feilet å lese %s: %s"
 
-#: option.c:3388
+#: option.c:3420
 #, c-format
 msgid "no search directive found in %s"
 msgstr "intet søke direktiv funnet i %s"
 
-#: option.c:3409
+#: option.c:3441
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr ""
 
-#: option.c:3413
+#: option.c:3445
 msgid "syntax check OK"
 msgstr ""
 
-#: forward.c:461
+#: forward.c:471
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "navnetjener %s nektet å gjøre et rekursivt oppslag"
 
-#: forward.c:489
+#: forward.c:499
 #, c-format
 msgid "possible DNS-rebind attack detected: %s"
 msgstr ""
@@ -941,276 +958,285 @@ msgstr "benytter navnetjener %s#%d"
 msgid "using nameserver %s#%d"
 msgstr "benytter navnetjener %s#%d"
 
-#: dnsmasq.c:148
+#: dnsmasq.c:152
 #, fuzzy
 msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
 msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h"
 
-#: dnsmasq.c:153
+#: dnsmasq.c:157
+msgid "Cannot use --conntrack AND --query-port"
+msgstr ""
+
+#: dnsmasq.c:160
+#, fuzzy
+msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
+msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h"
+
+#: dnsmasq.c:165
 msgid "asychronous logging is not available under Solaris"
 msgstr ""
 
-#: dnsmasq.c:158
+#: dnsmasq.c:170
 msgid "asychronous logging is not available under Android"
 msgstr ""
 
-#: dnsmasq.c:177
+#: dnsmasq.c:189
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "feilet å finne liste av tilknytninger (interfaces): %s"
 
-#: dnsmasq.c:185
+#: dnsmasq.c:197
 #, c-format
 msgid "unknown interface %s"
 msgstr "ukjent tilknytning (interface) %s"
 
-#: dnsmasq.c:191
+#: dnsmasq.c:203
 #, c-format
 msgid "no interface with address %s"
 msgstr "ingen tilknytning (interface) med adresse %s"
 
-#: dnsmasq.c:207 dnsmasq.c:678
+#: dnsmasq.c:219 dnsmasq.c:690
 #, c-format
 msgid "DBus error: %s"
 msgstr "DBus feil: %s"
 
-#: dnsmasq.c:210
+#: dnsmasq.c:222
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h"
 
-#: dnsmasq.c:236
+#: dnsmasq.c:248
 #, c-format
 msgid "unknown user or group: %s"
 msgstr ""
 
-#: dnsmasq.c:291
+#: dnsmasq.c:303
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr ""
 
-#: dnsmasq.c:455
+#: dnsmasq.c:467
 #, fuzzy, c-format
 msgid "started, version %s DNS disabled"
 msgstr "startet, versjon %s mellomlager deaktivert"
 
-#: dnsmasq.c:457
+#: dnsmasq.c:469
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "startet, versjon %s mellomlager størrelse %d"
 
-#: dnsmasq.c:459
+#: dnsmasq.c:471
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "startet, versjon %s mellomlager deaktivert"
 
-#: dnsmasq.c:461
+#: dnsmasq.c:473
 #, c-format
 msgid "compile time options: %s"
 msgstr "kompilerings opsjoner: %s"
 
-#: dnsmasq.c:467
+#: dnsmasq.c:479
 msgid "DBus support enabled: connected to system bus"
 msgstr "DBus støtte aktivert: koblet til system buss"
 
-#: dnsmasq.c:469
+#: dnsmasq.c:481
 msgid "DBus support enabled: bus connection pending"
 msgstr "DBus støtte aktivert: avventer buss tilkobling"
 
-#: dnsmasq.c:474
+#: dnsmasq.c:486
 #, fuzzy, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr "feilet å laste navn fra %s: %s"
 
-#: dnsmasq.c:478
+#: dnsmasq.c:490
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "setter --bind-interfaces opsjon på grunn av OS begrensninger"
 
-#: dnsmasq.c:483
+#: dnsmasq.c:495
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "advarsel: nettverkskort %s eksisterer ikke for tiden"
 
-#: dnsmasq.c:488
+#: dnsmasq.c:500
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:491
+#: dnsmasq.c:503
 #, fuzzy
 msgid "warning: no upstream servers configured"
 msgstr "setter oppstrøms tjener fra DBus"
 
-#: dnsmasq.c:495
+#: dnsmasq.c:507
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr ""
 
-#: dnsmasq.c:508
+#: dnsmasq.c:520
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr "DHCP, statisk leie kun på %.0s%s, leie tid %s"
 
-#: dnsmasq.c:510
+#: dnsmasq.c:522
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr ""
 
-#: dnsmasq.c:511
+#: dnsmasq.c:523
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, IP område %s -- %s, leie tid %s"
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "root is "
 msgstr ""
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 #, fuzzy
 msgid "enabled"
 msgstr "deaktivert"
 
-#: dnsmasq.c:528
+#: dnsmasq.c:540
 msgid "secure mode"
 msgstr ""
 
-#: dnsmasq.c:554
+#: dnsmasq.c:566
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr ""
 
-#: dnsmasq.c:680
+#: dnsmasq.c:692
 msgid "connected to system DBus"
 msgstr "tilkoblet til system DBus"
 
-#: dnsmasq.c:775
+#: dnsmasq.c:787
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr ""
 
-#: dnsmasq.c:778
+#: dnsmasq.c:790
 #, fuzzy, c-format
 msgid "failed to create helper: %s"
 msgstr "feilet å lese %s: %s"
 
-#: dnsmasq.c:781
+#: dnsmasq.c:793
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr ""
 
-#: dnsmasq.c:785
+#: dnsmasq.c:797
 #, fuzzy, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr "feilet å laste navn fra %s: %s"
 
-#: dnsmasq.c:790
+#: dnsmasq.c:802
 #, fuzzy, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr "feilet å laste navn fra %s: %s"
 
-#: dnsmasq.c:793
+#: dnsmasq.c:805
 #, fuzzy, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr "feilet å lese %s: %s"
 
-#: dnsmasq.c:796
+#: dnsmasq.c:808
 #, fuzzy, c-format
 msgid "cannot open %s: %s"
 msgstr "kan ikke åpne %s:%s"
 
-#: dnsmasq.c:851
+#: dnsmasq.c:863
 #, c-format
 msgid "child process killed by signal %d"
 msgstr ""
 
-#: dnsmasq.c:855
+#: dnsmasq.c:867
 #, c-format
 msgid "child process exited with status %d"
 msgstr ""
 
-#: dnsmasq.c:859
+#: dnsmasq.c:871
 #, fuzzy, c-format
 msgid "failed to execute %s: %s"
 msgstr "feilet å få tilgang til %s: %s"
 
-#: dnsmasq.c:903
+#: dnsmasq.c:915
 msgid "exiting on receipt of SIGTERM"
 msgstr "avslutter etter mottak av SIGTERM"
 
-#: dnsmasq.c:931
+#: dnsmasq.c:943
 #, fuzzy, c-format
 msgid "failed to access %s: %s"
 msgstr "feilet å få tilgang til %s: %s"
 
-#: dnsmasq.c:961
+#: dnsmasq.c:973
 #, c-format
 msgid "reading %s"
 msgstr "leser %s"
 
-#: dnsmasq.c:972
+#: dnsmasq.c:984
 #, fuzzy, c-format
 msgid "no servers found in %s, will retry"
 msgstr "intet søke direktiv funnet i %s"
 
-#: dhcp.c:40
+#: dhcp.c:39
 #, c-format
 msgid "cannot create DHCP socket: %s"
 msgstr "kan ikke lage DHCP socket: %s"
 
-#: dhcp.c:52
+#: dhcp.c:51
 #, c-format
 msgid "failed to set options on DHCP socket: %s"
 msgstr "feilet å sette opsjoner på DHCP socket: %s"
 
-#: dhcp.c:65
+#: dhcp.c:64
 #, fuzzy, c-format
 msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
 msgstr "feilet å sette SO_REUSEADDR på DHCP socket: %s"
 
-#: dhcp.c:77
+#: dhcp.c:76
 #, c-format
 msgid "failed to bind DHCP server socket: %s"
 msgstr "feilet å binde DHCP tjener socket: %s"
 
-#: dhcp.c:103
+#: dhcp.c:102
 #, c-format
 msgid "cannot create ICMP raw socket: %s."
 msgstr "kan ikke lage ICMP raw socket: %s"
 
-#: dhcp.c:281
+#: dhcp.c:278
 #, c-format
 msgid "DHCP packet received on %s which has no address"
 msgstr ""
 
-#: dhcp.c:445
+#: dhcp.c:442
 #, 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:852
+#: dhcp.c:861
 #, c-format
 msgid "bad line at %s line %d"
 msgstr "dårlig linje ved %s linje %d"
 
-#: dhcp.c:895
+#: dhcp.c:904
 #, c-format
 msgid "ignoring %s line %d, duplicate name or IP address"
 msgstr ""
 
-#: dhcp.c:978
+#: dhcp.c:987
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
 
-#: dhcp.c:981
+#: dhcp.c:990
 #, fuzzy, c-format
 msgid "duplicate IP address %s in %s."
 msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
 
-#: dhcp.c:1024
+#: dhcp.c:1033
 #, c-format
 msgid "%s has more than one address in hostsfile, using %s for DHCP"
 msgstr ""
 
-#: dhcp.c:1029
+#: dhcp.c:1038
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "dubliserte IP adresser i %s (%s) i dhcp-config direktiv"
@@ -1239,178 +1265,183 @@ msgstr ""
 msgid "failed to write %s: %s (retry in %us)"
 msgstr "feilet å lese %s: %s"
 
-#: rfc2131.c:315
+#: rfc2131.c:342
 #, 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:316
+#: rfc2131.c:343
 msgid "with subnet selector"
 msgstr "med subnet velger"
 
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "via"
 msgstr "via"
 
-#: rfc2131.c:331
+#: rfc2131.c:355
 #, fuzzy, c-format
 msgid "%u available DHCP subnet: %s/%s"
 msgstr "ingen adresse område tilgjengelig for DHCP krav %s %s"
 
-#: rfc2131.c:334
+#: rfc2131.c:358
 #, c-format
 msgid "%u available DHCP range: %s -- %s"
 msgstr ""
 
-#: rfc2131.c:363
+#: rfc2131.c:387
 msgid "disabled"
 msgstr "deaktivert"
 
-#: rfc2131.c:404 rfc2131.c:916 rfc2131.c:1288
+#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
 msgid "ignored"
 msgstr "oversett"
 
-#: rfc2131.c:419 rfc2131.c:1135
+#: rfc2131.c:443 rfc2131.c:1183
 msgid "address in use"
 msgstr "adresse i bruk"
 
-#: rfc2131.c:433 rfc2131.c:970
+#: rfc2131.c:457 rfc2131.c:999
 msgid "no address available"
 msgstr "ingen adresse tilgjengelig"
 
-#: rfc2131.c:440 rfc2131.c:1098
+#: rfc2131.c:464 rfc2131.c:1146
 msgid "wrong network"
 msgstr "galt nettverk"
 
-#: rfc2131.c:454
+#: rfc2131.c:479
 msgid "no address configured"
 msgstr "ingen adresse konfigurert"
 
-#: rfc2131.c:460 rfc2131.c:1148
+#: rfc2131.c:485 rfc2131.c:1196
 msgid "no leases left"
 msgstr "ingen leier igjen"
 
-#: rfc2131.c:545
+#: rfc2131.c:570
 #, c-format
 msgid "%u client provides name: %s"
 msgstr ""
 
-#: rfc2131.c:700
+#: rfc2131.c:725
 #, fuzzy, c-format
 msgid "%u vendor class: %s"
 msgstr "DBus feil: %s"
 
-#: rfc2131.c:702
+#: rfc2131.c:727
 #, fuzzy, c-format
 msgid "%u user class: %s"
 msgstr "DBus feil: %s"
 
-#: rfc2131.c:761
+#: rfc2131.c:786
 msgid "PXE BIS not supported"
 msgstr ""
 
-#: rfc2131.c:886
+#: rfc2131.c:915
 #, fuzzy, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "deaktiverer DHCP statisk adresse %s"
 
-#: rfc2131.c:907
+#: rfc2131.c:936
 msgid "unknown lease"
 msgstr "ukjent leie"
 
-#: rfc2131.c:939
+#: rfc2131.c:968
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:949
+#: rfc2131.c:978
 #, c-format
 msgid "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:952
+#: rfc2131.c:981
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:968 rfc2131.c:1141
+#: rfc2131.c:997 rfc2131.c:1189
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:1037
+#: rfc2131.c:1084
 msgid "wrong server-ID"
 msgstr ""
 
-#: rfc2131.c:1055
+#: rfc2131.c:1103
 msgid "wrong address"
 msgstr "gal adresse"
 
-#: rfc2131.c:1073
+#: rfc2131.c:1121
 msgid "lease not found"
 msgstr "leie ikke funnet"
 
-#: rfc2131.c:1106
+#: rfc2131.c:1154
 msgid "address not available"
 msgstr "adresse ikke tilgjengelig"
 
-#: rfc2131.c:1117
+#: rfc2131.c:1165
 msgid "static lease available"
 msgstr "statisk leie tilgjengelig"
 
-#: rfc2131.c:1121
+#: rfc2131.c:1169
 msgid "address reserved"
 msgstr "adresse reservert"
 
-#: rfc2131.c:1129
+#: rfc2131.c:1177
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr ""
 
-#: rfc2131.c:1710
+#: rfc2131.c:1746
 #, c-format
 msgid "%u tags: %s"
 msgstr ""
 
-#: rfc2131.c:1723
+#: rfc2131.c:1774
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr ""
 
-#: rfc2131.c:1732
+#: rfc2131.c:1783
 #, fuzzy, c-format
 msgid "%u server name: %s"
 msgstr "DBus feil: %s"
 
-#: rfc2131.c:1746
+#: rfc2131.c:1791
 #, fuzzy, c-format
 msgid "%u next server: %s"
 msgstr "DBus feil: %s"
 
-#: rfc2131.c:1749
+#: rfc2131.c:1794
 #, c-format
 msgid "%u broadcast response"
 msgstr ""
 
-#: rfc2131.c:1812
+#: rfc2131.c:1857
 #, 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:2058
+#: rfc2131.c:2097
 msgid "PXE menu too large"
 msgstr ""
 
-#: rfc2131.c:2171
+#: rfc2131.c:2253
+#, c-format
+msgid "Ignoring duplicate dhcp-option %d"
+msgstr ""
+
+#: rfc2131.c:2257
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr ""
 
-#: rfc2131.c:2189
+#: rfc2131.c:2275
 #, fuzzy, c-format
 msgid "%u requested options: %s"
 msgstr "kompilerings opsjoner: %s"
 
-#: rfc2131.c:2456
+#: rfc2131.c:2550
 #, c-format
 msgid "cannot send RFC3925 option: too many options for enterprise number %d"
 msgstr ""
@@ -1437,59 +1468,64 @@ msgstr "setter oppstr
 msgid "could not register a DBus message handler"
 msgstr "kunne ikke registrere en DBus meldingshåndterer"
 
-#: bpf.c:217
+#: bpf.c:224
 #, c-format
 msgid "cannot create DHCP BPF socket: %s"
 msgstr "kan ikke lage DHCP BPF socket: %s"
 
-#: bpf.c:245
+#: bpf.c:252
 #, fuzzy, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "DHCP krav for ikke støttet maskinvare type (%d) mottatt på %s"
 
-#: tftp.c:281
+#: tftp.c:286
 msgid "unable to get free port for TFTP"
 msgstr ""
 
-#: tftp.c:296
+#: tftp.c:301
 #, c-format
 msgid "unsupported request from %s"
 msgstr ""
 
-#: tftp.c:406
+#: tftp.c:411
 #, fuzzy, c-format
 msgid "file %s not found"
 msgstr "leie ikke funnet"
 
-#: tftp.c:522
+#: tftp.c:527
 #, c-format
 msgid "error %d %s received from %s"
 msgstr ""
 
-#: tftp.c:554
+#: tftp.c:559
 #, fuzzy, c-format
 msgid "failed sending %s to %s"
 msgstr "feilet å lese %s: %s"
 
-#: tftp.c:568
+#: tftp.c:573
 #, c-format
 msgid "sent %s to %s"
 msgstr ""
 
-#: log.c:177
+#: log.c:190
 #, c-format
 msgid "overflow: %d log entries lost"
 msgstr ""
 
-#: log.c:254
+#: log.c:267
 #, c-format
 msgid "log failed: %s"
 msgstr ""
 
-#: log.c:462
+#: log.c:471
 msgid "FAILED to start up"
 msgstr "FEILET å starte opp"
 
+#: conntrack.c:65
+#, c-format
+msgid "Conntrack connection mark retrieval failed: %s"
+msgstr ""
+
 #~ msgid "TXT record string too long"
 #~ msgstr "TXT post streng for lang"
 
index 945df015fe42953088de891eca1d3b4dad7f0352..3b8ac92906e9d2351437ad22b95c8add8d917fd2 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -2,19 +2,19 @@
 # Polish translations for dnsmasq package.
 # This file is put in the public domain.
 #
-# Tomasz Sochañski <nerdhero@gmail.com>, 2005.
-# Jan Psota <jasiu@belsznica.pl>, 2008, 2009, 2010.
-# Jan Psota <jasiupsota@gmail.com>, 2010, 2011.
+# Tomasz Sochański <nerdhero@gmail.com>, 2005.
+# Jan Psota <jasiupsota@gmail.com>, 2008, 2009, 2010, 2011.
+#
 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: 2011-01-16 23:56+0100\n"
+"PO-Revision-Date: 2011-08-25 09:50+0200\n"
 "Last-Translator: Jan Psota <jasiupsota@gmail.com>\n"
-"Language-Team: Polish <>\n"
+"Language-Team: polski <>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Generator: Lokalize 1.1\n"
@@ -23,757 +23,787 @@ msgstr ""
 #: cache.c:761
 #, c-format
 msgid "failed to load names from %s: %s"
-msgstr "nie potrafiê wczytaæ nazw z %s: %s"
+msgstr "nie potrafię wczytać nazw z %s: %s"
 
-#: cache.c:795 dhcp.c:865
+#: cache.c:795
+#: dhcp.c:874
 #, c-format
 msgid "bad address at %s line %d"
-msgstr "b³êdny adres w pliku %s, w linii %d"
+msgstr "błędny adres w pliku %s, w linii %d"
 
-#: cache.c:853 dhcp.c:881
+#: cache.c:853
+#: dhcp.c:890
 #, c-format
 msgid "bad name at %s line %d"
-msgstr "b³êdna nazwa w pliku %s, w linii %d"
+msgstr "błędna nazwa w pliku %s, w linii %d"
 
-#: cache.c:860 dhcp.c:956
+#: cache.c:860
+#: dhcp.c:965
 #, c-format
 msgid "read %s - %d addresses"
-msgstr "wczyta³em %s - %d adresów"
+msgstr "wczytałem %s - %d adresów"
 
 #: cache.c:899
 msgid "cleared cache"
-msgstr "wyczyszczono pamiêæ podrêczn±"
+msgstr "wyczyszczono pamięć podręczną"
+
+#: cache.c:934
+#, c-format
+msgid "No IPv4 address found for %s"
+msgstr "Nie znalazłem adresu IPv4 komputera %s"
 
-#: cache.c:960
+#: cache.c:975
 #, c-format
 msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
-msgstr "%s to nazwa CNAME, nie przypisujê jej dzier¿awie DHCP %s"
+msgstr "%s to nazwa CNAME, nie przypisuję jej dzierżawie DHCP %s"
 
-#: cache.c:966
+#: cache.c:981
 #, c-format
 msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
-msgstr "nazwa %s nie zosta³a nadana dzier¿awie DHCP %s,poniewa¿ nazwa istnieje w %s i ma ju¿ adres %s"
+msgstr "nazwa %s nie została nadana dzierżawie DHCP %s, ponieważ nazwa istnieje w %s i ma już adres %s"
 
-#: cache.c:1039
+#: cache.c:1054
 #, c-format
 msgid "time %lu"
 msgstr "czas %lu"
 
-#: cache.c:1040
+#: cache.c:1055
 #, c-format
 msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
-msgstr "wielko¶æ pamiêci podrêcznej: %d; %d z %d miejsc aktualnych wpisów u¿yto ponownie."
+msgstr "wielkość pamięci podręcznej: %d; %d z %d miejsc aktualnych wpisów użyto ponownie."
 
-#: cache.c:1042
+#: cache.c:1057
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
-msgstr "%u zapytañ przes³anych dalej, %u odpowiedzi udzielonych samodzielnie"
+msgstr "%u zapytań przesłanych dalej, %u odpowiedzi udzielonych samodzielnie"
 
-#: cache.c:1068
+#: cache.c:1083
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
-msgstr "serwer %s#%d: %u zapytañ wys³anych, %u ponowionych lub nieudanych"
+msgstr "serwer %s#%d: %u zapytań wysłanych, %u ponowionych lub nieudanych"
 
 #: util.c:57
 #, c-format
 msgid "failed to seed the random number generator: %s"
-msgstr "brak mo¿liwo¶ci u¿ycia generatora liczb losowych: %s"
+msgstr "brak możliwości użycia generatora liczb losowych: %s"
 
 #: util.c:189
 msgid "failed to allocate memory"
-msgstr "nie uda³o siê przydzieliæ pamiêci"
+msgstr "nie udało się przydzielić pamięci"
 
-#: util.c:227 option.c:573
+#: util.c:227
+#: option.c:579
 msgid "could not get memory"
-msgstr "nie mo¿na dostaæ pamiêci"
+msgstr "nie można dostać pamięci"
 
 #: util.c:237
 #, c-format
 msgid "cannot create pipe: %s"
-msgstr "b³±d podczas próby utworzenia potoku: %s"
+msgstr "błąd podczas próby utworzenia potoku: %s"
 
 #: util.c:245
 #, c-format
 msgid "failed to allocate %d bytes"
-msgstr "niemo¿liwo¶æ przydzielenia %d bajtów pamiêci"
+msgstr "niemożliwość przydzielenia %d bajtów pamięci"
 
-#: util.c:350
+#: util.c:358
 #, c-format
 msgid "infinite"
-msgstr "nieskoñczona"
+msgstr "nieskończona"
 
-#: option.c:244
+#: option.c:248
 msgid "Specify local address(es) to listen on."
-msgstr "Wskazanie adresów, na których nale¿y nas³uchiwaæ."
+msgstr "Wskazanie adresów, na których należy nasłuchiwać."
 
-#: option.c:245
+#: option.c:249
 msgid "Return ipaddr for all hosts in specified domains."
-msgstr "Zwracanie adresu IP dla wszystkich hostów we wskazanych domenach."
+msgstr "Zwracanie adresu IP dla wszystkich hostów we wskazanych domenach."
 
-#: option.c:246
+#: option.c:250
 msgid "Fake reverse lookups for RFC1918 private address ranges."
-msgstr "Wy³±czenie przekazywania zapytañ odwrotnych dla prywatnych zakresów IP."
+msgstr "Wyłączenie przekazywania zapytań odwrotnych dla prywatnych zakresów IP."
 
-#: option.c:247
+#: option.c:251
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
-msgstr "Traktowanie adresu IP jako NXDOMAIN (uniewa¿nia ,,Verisign wildcard'')."
+msgstr "Traktowanie adresu IP jako NXDOMAIN (unieważnia ,,Verisign wildcard'')."
 
-#: option.c:248
+#: option.c:252
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
-msgstr "Wskazanie wielko¶ci pamiêci podrêcznej (domy¶lnie: %s miejsc)."
+msgstr "Wskazanie wielkości pamięci podręcznej (domyślnie: %s miejsc)."
 
-#: option.c:249
+#: option.c:253
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
-msgstr "Wskazanie pliku konfiguracyjnego (domylnie: %s)."
+msgstr "Wskazanie pliku konfiguracyjnego (domyślnie: %s)."
 
-#: option.c:250
+#: option.c:254
 msgid "Do NOT fork into the background: run in debug mode."
-msgstr "NIE twórz procesu potomnego w tle: dzia³anie w trybie debugowania."
+msgstr "NIE twórz procesu potomnego w tle: działanie w trybie debugowania."
 
-#: option.c:251
+#: option.c:255
 msgid "Do NOT forward queries with no domain part."
-msgstr "Wy³±czenie przekazywania zapytañ bez podanej czê¶ci domenowej."
+msgstr "Wyłączenie przekazywania zapytań bez podanej części domenowej."
 
-#: option.c:252
+#: option.c:256
 msgid "Return self-pointing MX records for local hosts."
-msgstr "Zwracanie samowskazuj±cego rekordu MX dla lokalnych hostów."
+msgstr "Zwracanie samowskazującego rekordu MX dla lokalnych hostów."
 
-#: option.c:253
+#: option.c:257
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr "Rozwijanie prostych nazw z /etc/hosts przyrostkiem domenowym."
 
-#: option.c:254
+#: option.c:258
 msgid "Don't forward spurious DNS requests from Windows hosts."
-msgstr "Wy³±czenie przekazywania pozornych zapytañ DNS z komputerów dzia³aj±cych pod Windows."
+msgstr "Wyłączenie przekazywania pozornych zapytań DNS z komputerów działających pod Windows."
 
-#: option.c:255
+#: option.c:259
 msgid "Enable DHCP in the range given with lease duration."
-msgstr "W³±czenie serwera DHCP dla wskazanego zakresu adresów."
+msgstr "Włączenie serwera DHCP dla wskazanego zakresu adresów."
 
-#: option.c:256
+#: option.c:260
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
-msgstr "Po uruchomieniu zmiana grupy procesu na podan± (domy¶lnie: %s)."
+msgstr "Po uruchomieniu zmiana grupy procesu na podaną (domyślnie: %s)."
 
-#: option.c:257
+#: option.c:261
 msgid "Set address or hostname for a specified machine."
 msgstr "Ustawienie adresu lub nazwy dla wskazanego komputera."
 
-#: option.c:258
+#: option.c:262
 msgid "Read DHCP host specs from file."
-msgstr "Wskazanie pliku z wartociami 'dhcp-host='."
+msgstr "Wskazanie pliku z wartościami 'dhcp-host='."
 
-#: option.c:259
+#: option.c:263
 msgid "Read DHCP option specs from file."
-msgstr "Wskazanie pliku z wartociami 'dhcp-option='."
+msgstr "Wskazanie pliku z wartościami 'dhcp-option='."
 
-#: option.c:260
+#: option.c:264
 msgid "Evaluate conditional tag expression."
-msgstr "Warunkowe ustawianie znaczników."
+msgstr "Warunkowe ustawianie znaczników."
 
-#: option.c:261
+#: option.c:265
 #, c-format
 msgid "Do NOT load %s file."
 msgstr "NIE wczytywanie pliku %s."
 
-#: option.c:262
+#: option.c:266
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
-msgstr "Wskazanie dodatkowego pliku 'hosts' oprócz %s."
+msgstr "Wskazanie dodatkowego pliku 'hosts' oprócz %s."
 
-#: option.c:263
+#: option.c:267
 msgid "Specify interface(s) to listen on."
-msgstr "Interfejsy, na których nas³uchiwaæ."
+msgstr "Interfejsy, na których nasłuchiwać."
 
-#: option.c:264
+#: option.c:268
 msgid "Specify interface(s) NOT to listen on."
-msgstr "Interfejsy, na których NIE nas³uchiwaæ."
+msgstr "Interfejsy, na których NIE nasłuchiwać."
 
-#: option.c:265
+#: option.c:269
 msgid "Map DHCP user class to tag."
-msgstr "Przyporz±dkowanie znacznika w zale¿no¶ci od klasy u¿ytkownika DHCP."
+msgstr "Przyporządkowanie znacznika w zależności od klasy użytkownika DHCP."
 
-#: option.c:266
+#: option.c:270
 msgid "Map RFC3046 circuit-id to tag."
-msgstr "Przyporz±dkowanie znacznika w zale¿no¶ci od numeru obwodu (w rozumieniu RFC3046)."
+msgstr "Przyporządkowanie znacznika w zależności od numeru obwodu (w rozumieniu RFC3046)."
 
-#: option.c:267
+#: option.c:271
 msgid "Map RFC3046 remote-id to tag."
-msgstr "Przyporz±dkowanie znacznika w zale¿no¶ci od numeru agenta (w rozumieniu RFC3046)."
+msgstr "Przyporządkowanie znacznika w zależności od numeru agenta (w rozumieniu RFC3046)."
 
-#: option.c:268
+#: option.c:272
 msgid "Map RFC3993 subscriber-id to tag."
-msgstr "Przyporz±dkowanie znacznika w zale¿no¶ci od numeru subskrybenta (w rozumieniu RFC3993)."
+msgstr "Przyporządkowanie znacznika w zależności od numeru subskrybenta (w rozumieniu RFC3993)."
 
-#: option.c:269
+#: option.c:273
 msgid "Don't do DHCP for hosts with tag set."
-msgstr "Wy³±czenie DHCP dla hostów z okre¶lonym znacznikiem."
+msgstr "Wyłączenie DHCP dla hostów z określonym znacznikiem."
 
-#: option.c:270
+#: option.c:274
 msgid "Force broadcast replies for hosts with tag set."
-msgstr "Wymuszenie odpowiedzi w trybie rozg³oszeniowym dla hostów z okre¶lonym znacznikiem."
+msgstr "Wymuszenie odpowiedzi w trybie rozgłoszeniowym dla hostów z określonym znacznikiem."
 
-#: option.c:271
+#: option.c:275
 msgid "Do NOT fork into the background, do NOT run in debug mode."
-msgstr "NIE twórz procesu potomnego w tle i NIE w³±czaj trybu debugowania."
+msgstr "NIE twórz procesu potomnego w tle i NIE włączaj trybu debugowania."
 
-#: option.c:272
+#: option.c:276
 msgid "Assume we are the only DHCP server on the local network."
-msgstr "Zak³adanie, ¿e jeste¶my jedynym serwerem DHCP w sieci lokalnej."
+msgstr "Zakładanie, że jesteśmy jedynym serwerem DHCP w sieci lokalnej."
 
-#: option.c:273
+#: option.c:277
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
-msgstr "¦cie¿ka przechowywania pliku dzier¿aw DHCP (domy¶lnie: %s)."
+msgstr "Ścieżka przechowywania pliku dzierżaw DHCP (domyślnie: %s)."
 
-#: option.c:274
+#: option.c:278
 msgid "Return MX records for local hosts."
-msgstr "W³±czenie zwracania rekordu MX dla hostów lokalnych."
+msgstr "Włączenie zwracania rekordu MX dla hostów lokalnych."
 
-#: option.c:275
+#: option.c:279
 msgid "Specify an MX record."
 msgstr "Specyfikacja rekordu MX."
 
-#: option.c:276
+#: option.c:280
 msgid "Specify BOOTP options to DHCP server."
-msgstr "Okrelenie opcji BOOTP serwera DHCP."
+msgstr "Określenie opcji BOOTP serwera DHCP."
 
-#: option.c:277
+#: option.c:281
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
-msgstr "Wy³±czenie obserwowania pliku %s; ponowne odczytywanie tylko po odebraniu sygna³u SIGHUP."
+msgstr "Wyłączenie obserwowania pliku %s; ponowne odczytywanie tylko po odebraniu sygnału SIGHUP."
 
-#: option.c:278
+#: option.c:282
 msgid "Do NOT cache failed search results."
-msgstr "Wy³±czenie przechowywania w pamiêci podrêcznej wyników nieudanych wyszukiwañ."
+msgstr "Wyłączenie przechowywania w pamięci podręcznej wyników nieudanych wyszukiwań."
 
-#: option.c:279
+#: option.c:283
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
-msgstr "Odpytywanie serwerów nazw w kolejno¶ci ich wyst±pienia w %s."
+msgstr "Odpytywanie serwerów nazw w kolejności ich wystąpienia w %s."
 
-#: option.c:280
+#: option.c:284
 msgid "Specify options to be sent to DHCP clients."
-msgstr "Specyfikacja opcji wysy³anej do klientów DHCP."
+msgstr "Specyfikacja opcji wysyłanej do klientów DHCP."
 
-#: option.c:281
+#: option.c:285
 msgid "DHCP option sent even if the client does not request it."
-msgstr "Opcja DHCP wysy³ana nawet je¿eli klient o ni± nie prosi."
+msgstr "Opcja DHCP wysyłana nawet jeżeli klient o nią nie prosi."
 
-#: option.c:282
+#: option.c:286
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
-msgstr "Wskazanie portu do nas³uchiwania zapytañ DNS (domy¶lnie: 53)."
+msgstr "Wskazanie portu do nasłuchiwania zapytań DNS (domyślnie: 53)."
 
-#: option.c:283
+#: option.c:287
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
-msgstr "Maksymalna obs³ugiwana wielko¶æ pakietu EDNS.0 (domy¶lnie: %s)."
+msgstr "Maksymalna obsługiwana wielkość pakietu EDNS.0 (domyślnie: %s)."
 
-#: option.c:284
+#: option.c:288
 msgid "Log DNS queries."
-msgstr "W³±czenie spisywania zapytañ DNS do logu."
+msgstr "Włączenie spisywania zapytań DNS do logu."
 
-#: option.c:285
+#: option.c:289
 msgid "Force the originating port for upstream DNS queries."
-msgstr "Wymuszenie u¿ycia wskazanego portu UDP do odpytywania nadrzêdnych serwerów DNS i odbierania od nich odpowiedzi."
+msgstr "Wymuszenie użycia wskazanego portu UDP do odpytywania nadrzędnych serwerów DNS i odbierania od nich odpowiedzi."
 
-#: option.c:286
+#: option.c:290
 msgid "Do NOT read resolv.conf."
-msgstr "Wy³±czenie czytania pliku resolv.conf."
+msgstr "Wyłączenie czytania pliku resolv.conf."
 
-#: option.c:287
+#: option.c:291
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
-msgstr "Wskazanie po³o¿enia pliku resolv.conf (domy¶lnie: %s)."
+msgstr "Wskazanie położenia pliku resolv.conf (domyślnie: %s)."
 
-#: option.c:288
+#: option.c:292
 msgid "Specify address(es) of upstream servers with optional domains."
-msgstr "Wskazywanie adresów serwerów nazw, opcjonalnie z przypisaniem do domeny."
+msgstr "Wskazywanie adresów serwerów nazw, opcjonalnie z przypisaniem do domeny."
 
-#: option.c:289
+#: option.c:293
 msgid "Never forward queries to specified domains."
-msgstr "Wy³±czenie przekazywania zapytañ do wskazanych domen."
+msgstr "Wyłączenie przekazywania zapytań do wskazanych domen."
 
-#: option.c:290
+#: option.c:294
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr "Wskazanie domeny dla serwera DHCP."
 
-#: option.c:291
+#: option.c:295
 msgid "Specify default target in an MX record."
-msgstr "Okre¶lenie domy¶lnego celu w rekordzie MX."
+msgstr "Określenie domyślnego celu w rekordzie MX."
 
-#: option.c:292
+#: option.c:296
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
-msgstr "Okre¶lenie (w sekundach) czasu wa¿no¶ci odpowiedzi udzielonych na podstawie /etc/hosts (domy¶lnie 0)."
+msgstr "Określenie (w sekundach) czasu ważności odpowiedzi udzielonych na podstawie /etc/hosts (domyślnie 0)."
 
-#: option.c:293
+#: option.c:297
 msgid "Specify time-to-live in seconds for negative caching."
-msgstr "Okre¶lenie (w sekundach) czasu wa¿no¶ci negatywnych odpowiedzi."
+msgstr "Określenie (w sekundach) czasu ważności negatywnych odpowiedzi."
 
-#: option.c:294
+#: option.c:298
 msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
-msgstr "Ograniczenie maksymalnego czasu wa¿no¶ci odpowiedzi (TTL) podawanego klientom [w sekundach]."
+msgstr "Ograniczenie maksymalnego czasu ważności odpowiedzi (TTL) podawanego klientom [w sekundach]."
 
-#: option.c:295
+#: option.c:299
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
-msgstr "Zmiana u¿ytkownika procesu na wskazanego (po uruchomieniu, domy¶lnie: %s)."
+msgstr "Zmiana użytkownika procesu na wskazanego (po uruchomieniu, domyślnie: %s)."
 
-#: option.c:296
+#: option.c:300
 msgid "Map DHCP vendor class to tag."
-msgstr "Przyporz±dkowanie znacznika w zale¿no¶ci od typu klienta DHCP."
+msgstr "Przyporządkowanie znacznika w zależności od typu klienta DHCP."
 
-#: option.c:297
+#: option.c:301
 msgid "Display dnsmasq version and copyright information."
 msgstr "Wydrukowanie informacji o programie i ochronie praw autorskich."
 
-#: option.c:298
+#: option.c:302
 msgid "Translate IPv4 addresses from upstream servers."
-msgstr "T³umaczenie adresów IPv4 z serwerów nadrzêdnych."
+msgstr "Tłumaczenie adresów IPv4 z serwerów nadrzędnych."
 
-#: option.c:299
+#: option.c:303
 msgid "Specify a SRV record."
-msgstr "Okrelenie rekordu SRV."
+msgstr "Określenie rekordu SRV."
 
-#: option.c:300
+#: option.c:304
 msgid "Display this message. Use --help dhcp for known DHCP options."
-msgstr "Wy¶wietla ten komunikat. U¿yj '--help dhcp' chc±c przejrzeæ listê opcji DHCP (dhcp-option=xxx,...)."
+msgstr "Wyświetla ten komunikat. Użyj '--help dhcp' chcąc przejrzeć listę opcji DHCP (dhcp-option=xxx,...)."
 
-#: option.c:301
+#: option.c:305
 #, c-format
 msgid "Specify path of PID file (defaults to %s)."
-msgstr "Okre¶lenie ¶cie¿ki do pliku PID (domy¶lnie: %s)."
+msgstr "Określenie ścieżki do pliku PID (domyślnie: %s)."
 
-#: option.c:302
+#: option.c:306
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
-msgstr "Maksymalna liczba dzier¿aw DHCP (domy¶lnie: %s)."
+msgstr "Maksymalna liczba dzierżaw DHCP (domyślnie: %s)."
 
-#: option.c:303
+#: option.c:307
 msgid "Answer DNS queries based on the interface a query was sent to."
-msgstr "Uzale¿nienie odpowiedzi DNS od interfejsu, na którym odebrano zapytanie (wygodne dla serwerów kilku podsieci z ró¿nymi adresami w /etc/hosts)."
+msgstr "Uzależnienie odpowiedzi DNS od interfejsu, na którym odebrano zapytanie (wygodne dla serwerów kilku podsieci z różnymi adresami w /etc/hosts)."
 
-#: option.c:304
+#: option.c:308
 msgid "Specify TXT DNS record."
 msgstr "Specyfikacja rekordu DNS TXT."
 
-#: option.c:305
+#: option.c:309
 msgid "Specify PTR DNS record."
 msgstr "Specyfikacja rekordu DNS PTR."
 
-#: option.c:306
+#: option.c:310
 msgid "Give DNS name to IPv4 address of interface."
-msgstr "Zwraca nazwê domenow± powi±zan± z adresem interfejsu sieciowego."
+msgstr "Zwraca nazwę domenową powiązaną z adresem interfejsu sieciowego."
 
-#: option.c:307
+#: option.c:311
 msgid "Bind only to interfaces in use."
-msgstr "Nas³uchiwanie tylko na wykorzystywanych interfejsach (umo¿liwia uruchomienie osobnych serwerów dla ró¿nych kart)."
+msgstr "Nasłuchiwanie tylko na wykorzystywanych interfejsach (umożliwia uruchomienie osobnych serwerów dla różnych kart)."
 
-#: option.c:308
+#: option.c:312
 #, c-format
 msgid "Read DHCP static host information from %s."
-msgstr "Wczytanie przyporz±dkowañ adresów z %s."
+msgstr "Wczytanie przyporządkowań adresów z %s."
 
-#: option.c:309
+#: option.c:313
 msgid "Enable the DBus interface for setting upstream servers, etc."
-msgstr "W³±czenie u¿ywania interfejsu DBus do informowania o zmianach konfiguracji."
+msgstr "Włączenie używania interfejsu DBus do informowania o zmianach konfiguracji."
 
-#: option.c:310
+#: option.c:314
 msgid "Do not provide DHCP on this interface, only provide DNS."
-msgstr "Uruchomienie na wskazanym interfejsie tylko DNS-a, bez us³ug DHCP i TFTP."
+msgstr "Uruchomienie na wskazanym interfejsie tylko DNS-a, bez usług DHCP i TFTP."
 
-#: option.c:311
+#: option.c:315
 msgid "Enable dynamic address allocation for bootp."
-msgstr "W³±czenie dynamicznego przydzielania adresów dla klientów BOOTP."
+msgstr "Włączenie dynamicznego przydzielania adresów dla klientów BOOTP."
 
-#: option.c:312
+#: option.c:316
 msgid "Map MAC address (with wildcards) to option set."
-msgstr "Przyporz±dkowanie znacznika w zale¿no¶ci od adresu MAC (mo¿na u¿ywaæ uogólnieñ: *)."
+msgstr "Przyporządkowanie znacznika w zależności od adresu MAC (można używać uogólnień: *)."
 
-#: option.c:313
+#: option.c:317
 msgid "Treat DHCP requests on aliases as arriving from interface."
-msgstr "Traktowanie ¿±dañ DHCP odebranych na interfejsach alias, ..., jako odebranych na iface."
+msgstr "Traktowanie żądań DHCP odebranych na interfejsach alias, ..., jako odebranych na iface."
 
-#: option.c:314
+#: option.c:318
 msgid "Disable ICMP echo address checking in the DHCP server."
-msgstr "Pominiêcie sprawdzania za pomoc± ICMP niezajêto¶ci adresu przed jego wydzier¿awieniem."
+msgstr "Pominięcie sprawdzania za pomocą ICMP niezajętości adresu przed jego wydzierżawieniem."
 
-#: option.c:315
+#: option.c:319
 msgid "Script to run on DHCP lease creation and destruction."
-msgstr "Wskazanie skryptu uruchamianego w przypadku wydzier¿awienia adresu lub wyga¶niêcia dzier¿awy."
+msgstr "Wskazanie skryptu uruchamianego w przypadku wydzierżawienia adresu lub wygaśnięcia dzierżawy."
 
-#: option.c:316
+#: option.c:320
 msgid "Read configuration from all the files in this directory."
-msgstr "Wczytanie wszystkich plików ze wskazanego katalogu jako konfiguracyjnych."
+msgstr "Wczytanie wszystkich plików ze wskazanego katalogu jako konfiguracyjnych."
 
-#: option.c:317
+#: option.c:321
 msgid "Log to this syslog facility or file. (defaults to DAEMON)"
-msgstr "Wskazanie kana³u syslog-a do którego maj± trafiaæ komunikaty (domy¶lnie: DAEMON)"
+msgstr "Wskazanie kanału syslog-a do którego mają trafiać komunikaty (domyślnie: DAEMON)"
 
-#: option.c:318
+#: option.c:322
 msgid "Do not use leasefile."
-msgstr "Nieu¿ywanie bazy dzier¿aw."
+msgstr "Nieużywanie bazy dzierżaw."
 
-#: option.c:319
+#: option.c:323
 #, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
-msgstr "Maksymalna liczba jednocze¶nie obs³ugiwanych zapytañ DNS (domy¶lnie: %s)"
+msgstr "Maksymalna liczba jednocześnie obsługiwanych zapytań DNS (domyślnie: %s)"
 
-#: option.c:320
+#: option.c:324
 #, c-format
 msgid "Clear DNS cache when reloading %s."
-msgstr "Czyszczenie pamiêci podrêcznej serwera nazw w przypadku ponownego odczytu %s."
+msgstr "Czyszczenie pamięci podręcznej serwera nazw w przypadku ponownego odczytu %s."
 
-#: option.c:321
+#: option.c:325
 msgid "Ignore hostnames provided by DHCP clients."
-msgstr "Nie zwracanie uwagi na nazwê podawan± przez klienta w przypadku dopasowania wszystkich wymienionych znaczników."
+msgstr "Nie zwracanie uwagi na nazwę podawaną przez klienta w przypadku dopasowania wszystkich wymienionych znaczników."
 
-#: option.c:322
+#: option.c:326
 msgid "Do NOT reuse filename and server fields for extra DHCP options."
-msgstr "Wy³±czenie oszczêdzania miejsca w pakiecie DHCP przez przesuwanie pól servername i filename do opcji DHCP. Wymusza prostszy tryb budowy pakietu rozwi±zuj±c problemy z nieprzystosowanymi klientami DHCP."
+msgstr "Wyłączenie oszczędzania miejsca w pakiecie DHCP przez przesuwanie pól servername i filename do opcji DHCP. Wymusza prostszy tryb budowy pakietu rozwiązując problemy z nieprzystosowanymi klientami DHCP."
 
-#: option.c:323
+#: option.c:327
 msgid "Enable integrated read-only TFTP server."
-msgstr "W³±czenie wbudowanego serwera TFTP (tylko do wysy³ania)."
+msgstr "Włączenie wbudowanego serwera TFTP (tylko do wysyłania)."
 
-#: option.c:324
+#: option.c:328
 msgid "Export files by TFTP only from the specified subtree."
-msgstr "Ograniczenie dzia³ania serwera TFTP do wskazanego katalogu i podkatalogów. Nazwy z .. s± odrzucane, / odnosi siê do wskazanego katalogu."
+msgstr "Ograniczenie działania serwera TFTP do wskazanego katalogu i podkatalogów. Nazwy z .. są odrzucane, / odnosi się do wskazanego katalogu."
 
-#: option.c:325
+#: option.c:329
 msgid "Add client IP address to tftp-root."
-msgstr "Doklejanie adresu IP klienta do g³ównego katalogu TFTP. Je¿eli wynikowy katalog nie istnieje, nadal wykorzystuje siê tftp-root."
+msgstr "Doklejanie adresu IP klienta do głównego katalogu TFTP. Jeżeli wynikowy katalog nie istnieje, nadal wykorzystuje się tftp-root."
 
-#: option.c:326
+#: option.c:330
 msgid "Allow access only to files owned by the user running dnsmasq."
-msgstr "Ograniczenie dostêpu do plików przez TFTP do tych, których w³a¶cicielem jest u¿ytkownik uruchamiaj±cy dnsmasq-a."
+msgstr "Ograniczenie dostępu do plików przez TFTP do tych, których właścicielem jest użytkownik uruchamiający dnsmasq-a."
 
-#: option.c:327
+#: option.c:331
 #, c-format
 msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
-msgstr "Maksymalna liczba jednocze¶nie obs³ugiwanych po³±czeñ TFTP (domy¶lnie %s)."
+msgstr "Maksymalna liczba jednocześnie obsługiwanych połączeń TFTP (domyślnie %s)."
 
-#: option.c:328
+#: option.c:332
 msgid "Disable the TFTP blocksize extension."
-msgstr "Wy³±czenie mo¿liwo¶ci negocjowania wielko¶ci bloku dla przesy³ów przez TFTP."
+msgstr "Wyłączenie możliwości negocjowania wielkości bloku dla przesyłów przez TFTP."
 
-#: option.c:329
+#: option.c:333
 msgid "Ephemeral port range for use by TFTP transfers."
-msgstr "Wskazanie zakresu portów do u¿ytku TFTP."
+msgstr "Wskazanie zakresu portów do użytku TFTP."
 
-#: option.c:330
+#: option.c:334
 msgid "Extra logging for DHCP."
-msgstr "W³±czenie spisywania w logu operacji DHCP."
+msgstr "Włączenie spisywania w logu operacji DHCP."
 
-#: option.c:331
+#: option.c:335
 msgid "Enable async. logging; optionally set queue length."
-msgstr "W³±czenie asynchronicznego zapisywania do logu z ewentualnym wskazaniem d³ugo¶ci kolejki."
+msgstr "Włączenie asynchronicznego zapisywania do logu z ewentualnym wskazaniem długości kolejki."
 
-#: option.c:332
+#: option.c:336
 msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
-msgstr "Odfiltrowywanie adresów wskazuj±cych na komputery w sieciach wewnêtrznych spo¶ród odpowiedzi od zewnêtrznych serwerów DNS."
+msgstr "Odfiltrowywanie adresów wskazujących na komputery w sieciach wewnętrznych spośród odpowiedzi od zewnętrznych serwerów DNS."
 
-#: option.c:333
+#: option.c:337
 msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
-msgstr "Zezwolenie na przekazywanie odpowiedzi w klasie 127.0.0.0/8. Dla serwerów RBL."
+msgstr "Zezwolenie na przekazywanie odpowiedzi w klasie 127.0.0.0/8. Dla serwerów RBL."
 
-#: option.c:334
+#: option.c:338
 msgid "Inhibit DNS-rebind protection on this domain."
 msgstr "Dezaktywacja zabezpieczenia przed atakami DNS-rebind dla wskazanych domen."
 
-#: option.c:335
+#: option.c:339
 msgid "Always perform DNS queries to all servers."
-msgstr "Jednoczesne odpytywanie wszystkich serwerów nadrzêdnych; klientowi przekazywana jest pierwsza odpowied¼."
+msgstr "Jednoczesne odpytywanie wszystkich serwerów nadrzędnych; klientowi przekazywana jest pierwsza odpowiedź."
 
-#: option.c:336
+#: option.c:340
 msgid "Set tag if client includes matching option in request."
-msgstr "Ustawienie znacznika je¿eli w ¿±daniu DHCP pojawi siê wskazana opcja, ewentualnie o konkretnej warto¶ci."
+msgstr "Ustawienie znacznika jeżeli w żądaniu DHCP pojawi się wskazana opcja, ewentualnie o konkretnej wartości."
 
-#: option.c:337
+#: option.c:341
 msgid "Use alternative ports for DHCP."
-msgstr "U¿ycie alternatywnych portów dla us³ugi DHCP."
+msgstr "Użycie alternatywnych portów dla usługi DHCP."
 
-#: option.c:338
+#: option.c:342
 msgid "Run lease-change script as this user."
-msgstr "Uruchamianie skryptu dhcp-script jako wskazany u¿ytkownik."
+msgstr "Uruchamianie skryptu dhcp-script jako wskazany użytkownik."
 
-#: option.c:339
+#: option.c:343
 msgid "Specify NAPTR DNS record."
 msgstr "Specyfikacja rekordu DNS NAPTR."
 
-#: option.c:340
+#: option.c:344
 msgid "Specify lowest port available for DNS query transmission."
-msgstr "Ustawienie dolnej granicy numerów portów do przesy³ania zapytañ DNS."
+msgstr "Ustawienie dolnej granicy numerów portów do przesyłania zapytań DNS."
 
-#: option.c:341
+#: option.c:345
 msgid "Use only fully qualified domain names for DHCP clients."
-msgstr "Przechowywanie w serwerze DNS dnsmasq-a tylko w pe³ni kwalifikowanych nazw zg³aszanych przez klientów DHCP."
+msgstr "Przechowywanie w serwerze DNS dnsmasq-a tylko w pełni kwalifikowanych nazw zgłaszanych przez klientów DHCP."
 
-#: option.c:342
+#: option.c:346
 msgid "Generate hostnames based on MAC address for nameless clients."
-msgstr "Generowanie nazw na podstawie MAC-adresów dla klientów bez nazwy."
+msgstr "Generowanie nazw na podstawie MAC-adresów dla klientów bez nazwy."
 
-#: option.c:343
+#: option.c:347
 msgid "Use these DHCP relays as full proxies."
-msgstr "Traktowanie wskazanych serwerów po¶rednicz±cych DHCP jako dzia³aj±cych w trybie \"pe³nomocnika\" (full-proxy)."
+msgstr "Traktowanie wskazanych serwerów pośredniczących DHCP jako działających w trybie \"pełnomocnika\" (full-proxy)."
 
-#: option.c:344
+#: option.c:348
 msgid "Specify alias name for LOCAL DNS name."
 msgstr "Wskazanie synonimu nazwy komputera lokalnego - znanego z /etc/hosts albo z DHCP."
 
-#: option.c:345
+#: option.c:349
 msgid "Prompt to send to PXE clients."
-msgstr "Zg³oszenie wysy³ane klientom PXE."
+msgstr "Zgłoszenie wysyłane klientom PXE."
 
-#: option.c:346
+#: option.c:350
 msgid "Boot service for PXE menu."
-msgstr "Sk³adnik menu PXE (--> man)."
+msgstr "Składnik menu PXE (--> man)."
 
-#: option.c:347
+#: option.c:351
 msgid "Check configuration syntax."
-msgstr "Sprawdzenie sk³adni."
+msgstr "Sprawdzenie składni."
 
-#: option.c:348
-msgid "Add requestor's MAC address to forwarded DNS queries"
-msgstr "Za³±czanie MAC-adresu komputera pytaj±cego w przekazywanych dalej zapytaniach DNS."
+#: option.c:352
+msgid "Add requestor's MAC address to forwarded DNS queries."
+msgstr "Przekazywanie MAC-adresu komputera pytającego w ruchu wychodzącym DNS."
 
-#: option.c:349
-msgid "Proxy DNSSEC validation results from upstream nameservers"
-msgstr "Przekazywanie wyników weryfikacji DNSSEC z serwerów nadrzêdnych."
+#: option.c:353
+msgid "Proxy DNSSEC validation results from upstream nameservers."
+msgstr "Przekazywanie wyników weryfikacji DNSSEC z serwerów nadrzędnych."
 
-#: option.c:638
+#: option.c:354
+msgid "Attempt to allocate sequential IP addresses to DHCP clients."
+msgstr "Zmiana sposobu przydzielania adresów IP na sekwencyjny."
+
+#: option.c:355
+msgid "Copy connection-track mark from queries to upstream connections."
+msgstr "Zachowanie znacznika połączenia z odebranego zapytania DNS w ruchu zewnętrznym."
+
+#: option.c:644
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
 "\n"
 msgstr ""
-"U¿ycie: dnsmasq [opcje]\n"
+"Użycie: dnsmasq [opcje]\n"
 "\n"
 
-#: option.c:640
+#: option.c:646
 #, 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"
+msgstr "W tym systemie w linii poleceń można używać wyłącznie jednoliterowych opcji.\n"
 
-#: option.c:642
+#: option.c:648
 #, c-format
 msgid "Valid options are:\n"
-msgstr "Dostêpne opcje:\n"
+msgstr "Dostępne opcje:\n"
 
-#: option.c:683
+#: option.c:689
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr "Znane opcje DHCP:\n"
 
-#: option.c:798
+#: option.c:804
 msgid "bad dhcp-option"
-msgstr "b³±d w dhcp-option"
+msgstr "błąd w dhcp-option"
 
-#: option.c:860
+#: option.c:866
 msgid "bad IP address"
-msgstr "z³y adres IP"
+msgstr "zły adres IP"
 
-#: option.c:968
+#: option.c:974
 msgid "bad domain in dhcp-option"
-msgstr "nieprawid³owa nazwa domeny w dhcp-option"
+msgstr "nieprawidłowa nazwa domeny w dhcp-option"
 
-#: option.c:1034
+#: option.c:1040
 msgid "dhcp-option too long"
-msgstr "zbyt d³uga dhcp-option (>255 znaków)"
+msgstr "zbyt długa dhcp-option (>255 znaków)"
 
-#: option.c:1043
+#: option.c:1049
 msgid "illegal dhcp-match"
 msgstr "niedopuszczalne dhcp-match"
 
-#: option.c:1087
+#: option.c:1093
 msgid "illegal repeated flag"
-msgstr "wielokrotne u¿ycie opcji niedozwolone (pojawi³a siê wcze¶niej w linii poleceñ)"
+msgstr "wielokrotne użycie opcji niedozwolone (pojawiła się wcześniej w linii poleceń)"
 
-#: option.c:1095
+#: option.c:1101
 msgid "illegal repeated keyword"
-msgstr "wielokrotne u¿ycie opcji niedozwolone (pojawi³a siê wsze¶niej w pliku konfiguracyjnym)"
+msgstr "wielokrotne użycie opcji niedozwolone (pojawiła się wsześniej w pliku konfiguracyjnym)"
 
-#: option.c:1147 option.c:3030
+#: option.c:1153
+#: option.c:3062
 #, c-format
 msgid "cannot access directory %s: %s"
-msgstr "brak dostêpu do katalogu %s: %s"
+msgstr "brak dostępu do katalogu %s: %s"
 
-#: option.c:1178 tftp.c:460
+#: option.c:1184
+#: tftp.c:465
 #, c-format
 msgid "cannot access %s: %s"
-msgstr "brak dostêpu do %s: %s"
+msgstr "brak dostępu do %s: %s"
 
-#: option.c:1207
+#: option.c:1213
 msgid "setting log facility is not possible under Android"
-msgstr ""
+msgstr "zmiana log-facility w systemie Android nie jest możliwa"
 
-#: option.c:1216
+#: option.c:1222
 msgid "bad log facility"
-msgstr ""
+msgstr "nierozpoznany znacznik logów"
 
-#: option.c:1265
+#: option.c:1271
 msgid "bad MX preference"
-msgstr "nieprawid³owa warto¶æ preferencji MX"
+msgstr "nieprawidłowa wartość preferencji MX"
 
-#: option.c:1270
+#: option.c:1276
 msgid "bad MX name"
-msgstr "nieprawid³owa nazwa MX"
+msgstr "nieprawidłowa nazwa MX"
 
-#: option.c:1284
+#: option.c:1290
 msgid "bad MX target"
-msgstr "nieprawid³owa warto¶æ celu MX"
+msgstr "nieprawidłowa wartość celu MX"
 
-#: option.c:1294
+#: option.c:1300
 msgid "cannot run scripts under uClinux"
-msgstr "w uClinuksie nie ma mo¿liwo¶ci uruchamiania skryptów"
+msgstr "w uClinuksie nie ma możliwości uruchamiania skryptów"
 
-#: option.c:1296
+#: option.c:1302
 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"
+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:1597 option.c:1601
+#: option.c:1607
+#: option.c:1611
 msgid "bad port"
-msgstr "nieprawid³owy numer portu"
+msgstr "nieprawidłowy numer portu"
 
-#: option.c:1620 option.c:1645
+#: option.c:1634
+#: option.c:1665
 msgid "interface binding not supported"
-msgstr "nie ma mo¿liwo¶ci dowi±zywania do interfejsu"
+msgstr "nie ma możliwości dowiązywania do interfejsu"
+
+#: option.c:1645
+#: option.c:2614
+msgid "bad interface name"
+msgstr "nieprawidłowa nazwa interfejsu"
 
-#: option.c:1791
+#: option.c:1810
 msgid "bad port range"
-msgstr "nieprawid³owy zakres numerów portów"
+msgstr "nieprawidłowy zakres numerów portów"
 
-#: option.c:1808
+#: option.c:1827
 msgid "bad bridge-interface"
-msgstr "nieprawid³owa nazwa urz±dzenia w bridge-interface"
+msgstr "nieprawidłowa nazwa urządzenia w bridge-interface"
 
-#: option.c:1850
+#: option.c:1870
 msgid "bad dhcp-range"
-msgstr "nieprawid³owy zakres dhcp-range"
+msgstr "nieprawidłowy zakres dhcp-range"
 
-#: option.c:1878
+#: option.c:1898
 msgid "only one tag allowed"
-msgstr "mo¿na wskazaæ tylko jeden znacznik sieci"
+msgstr "można wskazać tylko jeden znacznik sieci"
 
-#: option.c:1925
+#: option.c:1945
 msgid "inconsistent DHCP range"
-msgstr "niespójny zakres adresów DHCP"
+msgstr "niespójny zakres adresów DHCP"
 
-#: option.c:2019 option.c:2045
+#: option.c:2039
+#: option.c:2067
 msgid "bad hex constant"
 msgstr "zapis niezgodny z formatem szesnastkowym"
 
-#: option.c:2107
+#: option.c:2061
+msgid "cannot match tags in --dhcp-host"
+msgstr "--dhcp-host nie dopuszcza dopasowywania na podstawie znaczników"
+
+#: option.c:2129
 msgid "bad DHCP host name"
 msgstr "niedopuszczalna nazwa komputera w dhcp-host"
 
-#: option.c:2188
+#: option.c:2210
 msgid "bad tag-if"
-msgstr "nieprawid³owa sk³adnia 'tag-if'"
+msgstr "nieprawidłowa składnia 'tag-if'"
 
-#: option.c:2467 option.c:2752
+#: option.c:2499
+#: option.c:2784
 msgid "invalid port number"
-msgstr "nieprawid³owy numer portu"
+msgstr "nieprawidłowy numer portu"
 
-#: option.c:2529
+#: option.c:2561
 msgid "bad dhcp-proxy address"
-msgstr "z³y adres dhcp-proxy"
+msgstr "zły adres dhcp-proxy"
 
-#: option.c:2569
+#: option.c:2601
 msgid "invalid alias range"
-msgstr "nieprawid³owy zakres adresów w --alias"
+msgstr "nieprawidłowy zakres adresów w --alias"
 
-#: option.c:2582
-msgid "bad interface name"
-msgstr "nieprawid³owa nazwa interfejsu"
-
-#: option.c:2607
+#: option.c:2639
 msgid "bad CNAME"
-msgstr "z³a CNAME"
+msgstr "zła CNAME"
 
-#: option.c:2612
+#: option.c:2644
 msgid "duplicate CNAME"
-msgstr "powtórzona CNAME"
+msgstr "powtórzona CNAME"
 
-#: option.c:2632
+#: option.c:2664
 msgid "bad PTR record"
-msgstr "nieprawid³owy zapis rekordu PTR"
+msgstr "nieprawidłowy zapis rekordu PTR"
 
-#: option.c:2663
+#: option.c:2695
 msgid "bad NAPTR record"
-msgstr "nieprawid³owy zapis rekordu NAPTR"
+msgstr "nieprawidłowy zapis rekordu NAPTR"
 
-#: option.c:2695
+#: option.c:2727
 msgid "bad TXT record"
-msgstr "nieprawid³owy zapis rekordu TXT"
+msgstr "nieprawidłowy zapis rekordu TXT"
 
-#: option.c:2738
+#: option.c:2770
 msgid "bad SRV record"
-msgstr "nieprawid³owy zapis rekordu SRV"
+msgstr "nieprawidłowy zapis rekordu SRV"
 
-#: option.c:2745
+#: option.c:2777
 msgid "bad SRV target"
-msgstr "nieprawid³owa warto¶æ celu SRV"
+msgstr "nieprawidłowa wartość celu SRV"
 
-#: option.c:2759
+#: option.c:2791
 msgid "invalid priority"
-msgstr "nieprawid³owy priorytet"
+msgstr "nieprawidłowy priorytet"
 
-#: option.c:2766
+#: option.c:2798
 msgid "invalid weight"
-msgstr "nieprawid³owa waga"
+msgstr "nieprawidłowa waga"
 
-#: option.c:2785
+#: option.c:2817
 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)"
+msgstr "nieobsługiwana opcja (sprawdź, czy obsługa DHCP/TFTP/DBus została wkompilowana)"
 
-#: option.c:2849
+#: option.c:2881
 msgid "missing \""
 msgstr "brakuje \""
 
-#: option.c:2908
+#: option.c:2940
 msgid "bad option"
-msgstr "nieprawid³owa opcja"
+msgstr "nieprawidłowa opcja"
 
-#: option.c:2910
+#: option.c:2942
 msgid "extraneous parameter"
-msgstr "nadwy¿kowy parametr"
+msgstr "nadwyżkowy parametr"
 
-#: option.c:2912
+#: option.c:2944
 msgid "missing parameter"
 msgstr "brak parametru"
 
-#: option.c:2916
+#: option.c:2948
 msgid "error"
-msgstr "b³±d"
+msgstr "błąd"
 
-#: option.c:2921
+#: option.c:2953
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr "%s w linii %d pliku %%s"
 
-#: option.c:2985 tftp.c:624
+#: option.c:3017
+#: tftp.c:629
 #, c-format
 msgid "cannot read %s: %s"
-msgstr "b³±d odczytu z pliku %s: %s"
+msgstr "błąd odczytu z pliku %s: %s"
 
-#: option.c:3151 option.c:3187
+#: option.c:3183
+#: option.c:3219
 #, c-format
 msgid "read %s"
-msgstr "przeczyta³em %s"
+msgstr "przeczytałem %s"
 
-#: option.c:3239
+#: option.c:3271
 msgid "junk found in command line"
-msgstr "jakie¶ ¶mieci w linii poleceñ"
+msgstr "jakieś śmieci w linii poleceń"
 
-#: option.c:3269
+#: option.c:3301
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Dnsmasq, wersja %s  %s\n"
 
-#: option.c:3270
+#: option.c:3302
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -782,72 +812,73 @@ msgstr ""
 "Wkompilowane opcje %s\n"
 "\n"
 
-#: option.c:3271
+#: option.c:3303
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
-msgstr "Autor nie daje ¯ADNYCH GWARANCJI egzekwowalnych prawnie.\n"
+msgstr "Autor nie daje ŻADNYCH GWARANCJI egzekwowalnych prawnie.\n"
 
-#: option.c:3272
+#: option.c:3304
 #, 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"
+msgstr "Dnsmasq jest wolnym oprogramowaniem, możesz go rozprowadzać\n"
 
-#: option.c:3273
+#: option.c:3305
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
-msgstr "na warunkach okrelonych w GNU General Public Licence, w wersji 2 lub 3.\n"
+msgstr "na warunkach określonych w GNU General Public Licence, w wersji 2 lub 3.\n"
 
-#: option.c:3284
+#: option.c:3316
 msgid "try --help"
-msgstr "spróbuj: --help"
+msgstr "spróbuj: --help"
 
-#: option.c:3286
+#: option.c:3318
 msgid "try -w"
-msgstr "spróbuj: -w"
+msgstr "spróbuj: -w"
 
-#: option.c:3289
+#: option.c:3321
 #, c-format
 msgid "bad command line options: %s"
-msgstr "nieprawid³owa opcja w linii poleceñ %s"
+msgstr "nieprawidłowa opcja w linii poleceń %s"
 
-#: option.c:3330
+#: option.c:3362
 #, c-format
 msgid "cannot get host-name: %s"
-msgstr "nie mo¿na pobraæ nazwy hosta: %s"
+msgstr "nie można pobrać nazwy hosta: %s"
 
-#: option.c:3358
+#: option.c:3390
 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."
+msgstr "w trybie no-poll można wskazać najwyżej jeden plik resolv.conf."
 
-#: option.c:3368
+#: option.c:3400
 msgid "must have exactly one resolv.conf to read domain from."
-msgstr "musisz mieæ dok³adnie jeden plik resolv.conf do odczytu domen."
+msgstr "musisz mieć dokładnie jeden plik resolv.conf do odczytu domen."
 
-#: option.c:3371 network.c:848 dhcp.c:814
+#: option.c:3403
+#: network.c:848
+#: dhcp.c:823
 #, c-format
 msgid "failed to read %s: %s"
-msgstr "nie uda³o siê odczytaæ %s: %s"
+msgstr "nie udało się odczytać %s: %s"
 
-#: option.c:3388
+#: option.c:3420
 #, c-format
 msgid "no search directive found in %s"
 msgstr "brak wytycznych wyszukiwania w %s"
 
-#: option.c:3409
-#, fuzzy
+#: option.c:3441
 msgid "there must be a default domain when --dhcp-fqdn is set"
-msgstr "w przypadku u¿ywania --dhcp-fqdn trzeba wskazaæ domy¶ln± domenê"
+msgstr "w przypadku używania --dhcp-fqdn trzeba wskazać domyślną domenę"
 
-#: option.c:3413
+#: option.c:3445
 msgid "syntax check OK"
-msgstr "sk³adnia sprawdzona, jest prawid³owa"
+msgstr "składnia sprawdzona, jest prawidłowa"
 
-#: forward.c:461
+#: forward.c:471
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "serwer nazw %s odmawia wykonania zapytania rekurencyjnego"
 
-#: forward.c:489
+#: forward.c:499
 #, c-format
 msgid "possible DNS-rebind attack detected: %s"
 msgstr "prawdopodobnie wykryto atak DNS-rebind: %s"
@@ -860,12 +891,12 @@ msgstr "nieznany interfejs %s w bridge-u"
 #: network.c:380
 #, c-format
 msgid "failed to create listening socket for %s: %s"
-msgstr "nie uda³o siê otworzyæ gniazda %s: %s"
+msgstr "nie udało się otworzyć gniazda %s: %s"
 
 #: network.c:746
 #, c-format
 msgid "failed to bind server socket for %s: %s"
-msgstr "b³±d przy przyznawaniu nazwy gniazdu serwera %s: %s"
+msgstr "błąd przy przyznawaniu nazwy gniazdu serwera %s: %s"
 
 #: network.c:783
 #, c-format
@@ -875,7 +906,7 @@ msgstr "ignorowanie serwera nazw %s - interfejs lokalny"
 #: network.c:794
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %s"
-msgstr "ignorowanie serwera nazw %s - nie mo¿na utworzyæ/dowi±zaæ gniazda: %s"
+msgstr "ignorowanie serwera nazw %s - nie można utworzyć/dowiązać gniazda: %s"
 
 #: network.c:811
 msgid "unqualified"
@@ -887,7 +918,7 @@ msgstr "nazwy"
 
 #: network.c:813
 msgid "default"
-msgstr "domylne"
+msgstr "domyślne"
 
 #: network.c:815
 msgid "domain"
@@ -896,595 +927,620 @@ msgstr "domeny"
 #: network.c:818
 #, c-format
 msgid "using local addresses only for %s %s"
-msgstr "u¿ywam adresów lokalnych tylko dla %s %s"
+msgstr "używam adresów lokalnych tylko dla %s %s"
 
 #: network.c:820
 #, c-format
 msgid "using standard nameservers for %s %s"
-msgstr "u¿ywam standardowych serwerów nazw dla %s %s"
+msgstr "używam standardowych serwerów nazw dla %s %s"
 
 #: network.c:822
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
-msgstr "u¿ywam serwera nazw %s#%d dla %s %s"
+msgstr "używam serwera nazw %s#%d dla %s %s"
 
 #: network.c:825
 #, c-format
 msgid "using nameserver %s#%d(via %s)"
-msgstr "u¿ywam serwera nazw %s#%d (przez %s)"
+msgstr "używam serwera nazw %s#%d (przez %s)"
 
 #: network.c:827
 #, c-format
 msgid "using nameserver %s#%d"
-msgstr "u¿ywam serwera nazw %s#%d"
+msgstr "używam serwera nazw %s#%d"
 
-#: dnsmasq.c:148
+#: dnsmasq.c:152
 msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
-msgstr "Serwer TFTP nie zosta³ wkompilowany -- ustaw HAVE_TFTP w src/config.h"
+msgstr "Serwer TFTP nie został wkompilowany -- ustaw HAVE_TFTP w src/config.h"
+
+#: dnsmasq.c:157
+msgid "Cannot use --conntrack AND --query-port"
+msgstr "--conntrack i --query-port wykluczają się wzajemnie"
+
+#: dnsmasq.c:160
+msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
+msgstr "Wsparcie dla przekazywania znaczników połączeń (conntrack) nie zostało wkompilowane - ustaw HAVE_CONNTRACK w src/config.h"
 
-#: dnsmasq.c:153
+#: dnsmasq.c:165
 msgid "asychronous logging is not available under Solaris"
-msgstr "zapis do logów w trybie asynchronicznym nie jest dostêpny w Solarisie"
+msgstr "zapis do logów w trybie asynchronicznym nie jest dostępny w Solarisie"
 
-#: dnsmasq.c:158
-#, fuzzy
+#: dnsmasq.c:170
 msgid "asychronous logging is not available under Android"
-msgstr "zapis do logów w trybie asynchronicznym nie jest dostêpny w Solarisie"
+msgstr "zapis do logów w trybie asynchronicznym nie jest dostępny w Androidzie"
 
-#: dnsmasq.c:177
+#: dnsmasq.c:189
 #, c-format
 msgid "failed to find list of interfaces: %s"
-msgstr "b³±d podczas tworzenia listy interfejsów sieciowych: %s"
+msgstr "błąd podczas tworzenia listy interfejsów sieciowych: %s"
 
-#: dnsmasq.c:185
+#: dnsmasq.c:197
 #, c-format
 msgid "unknown interface %s"
 msgstr "nieznany interfejs %s"
 
-#: dnsmasq.c:191
+#: dnsmasq.c:203
 #, c-format
 msgid "no interface with address %s"
 msgstr "brak interfejsu z adresem %s"
 
-#: dnsmasq.c:207 dnsmasq.c:678
+#: dnsmasq.c:219
+#: dnsmasq.c:690
 #, c-format
 msgid "DBus error: %s"
-msgstr "b³±d DBus: %s"
+msgstr "błąd DBus: %s"
 
-#: dnsmasq.c:210
+#: dnsmasq.c:222
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
-msgstr "Obs³uga DBus nie zosta³a wkompilowana -- ustaw HAVE_DBUS w src/config.h"
+msgstr "Obsługa DBus nie została wkompilowana -- ustaw HAVE_DBUS w src/config.h"
 
-#: dnsmasq.c:236
+#: dnsmasq.c:248
 #, c-format
 msgid "unknown user or group: %s"
-msgstr "nieznany u¿ytkownik lub grupa: %s"
+msgstr "nieznany użytkownik lub grupa: %s"
 
-#: dnsmasq.c:291
+#: dnsmasq.c:303
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
-msgstr "nie potrafiê wej¶æ do g³ównego katalogu: %s"
+msgstr "nie potrafię wejść do głównego katalogu: %s"
 
-#: dnsmasq.c:455
+#: dnsmasq.c:467
 #, c-format
 msgid "started, version %s DNS disabled"
-msgstr "uruchomiony, wersja %s, DNS wy³±czony"
+msgstr "uruchomiony, wersja %s, DNS wyłączony"
 
-#: dnsmasq.c:457
+#: dnsmasq.c:469
 #, c-format
 msgid "started, version %s cachesize %d"
-msgstr "uruchomiony, wersja %s, %d miejsc w pamiêci podrêcznej"
+msgstr "uruchomiony, wersja %s, %d miejsc w pamięci podręcznej"
 
-#: dnsmasq.c:459
+#: dnsmasq.c:471
 #, c-format
 msgid "started, version %s cache disabled"
-msgstr "uruchomiony, wersja %s, pamiêæ podrêczna wy³±czona"
+msgstr "uruchomiony, wersja %s, pamięć podręczna wyłączona"
 
-#: dnsmasq.c:461
+#: dnsmasq.c:473
 #, c-format
 msgid "compile time options: %s"
 msgstr "opcje kompilacji: %s"
 
-#: dnsmasq.c:467
+#: dnsmasq.c:479
 msgid "DBus support enabled: connected to system bus"
-msgstr "obs³uga DBus w³±czona, pod³±czono do serwera DBus"
+msgstr "obsługa DBus włączona, podłączono do serwera DBus"
 
-#: dnsmasq.c:469
+#: dnsmasq.c:481
 msgid "DBus support enabled: bus connection pending"
-msgstr "obs³uga DBus w³±czona, trwa pod³±czanie do serwera DBus"
+msgstr "obsługa DBus włączona, trwa podłączanie do serwera DBus"
 
-#: dnsmasq.c:474
+#: dnsmasq.c:486
 #, c-format
 msgid "warning: failed to change owner of %s: %s"
-msgstr "UWAGA! Nie uda³o siê zmieniæ u¿ytkownika pliku %s: %s"
+msgstr "UWAGA! Nie udało się zmienić użytkownika pliku %s: %s"
 
-#: dnsmasq.c:478
+#: dnsmasq.c:490
 msgid "setting --bind-interfaces option because of OS limitations"
-msgstr "ustawiam --bind-interfaces z powodu ograniczeñ systemu operacyjnego"
+msgstr "ustawiam --bind-interfaces z powodu ograniczeń systemu operacyjnego"
 
-#: dnsmasq.c:483
+#: dnsmasq.c:495
 #, c-format
 msgid "warning: interface %s does not currently exist"
-msgstr "uwaga: interfejs %s nie jest w³±czony"
+msgstr "uwaga: interfejs %s nie jest włączony"
 
-#: dnsmasq.c:488
+#: dnsmasq.c:500
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
-msgstr "uwaga: ignorujê opcjê resolv-file, poniewa¿ wybrano tryb no-resolv"
+msgstr "uwaga: ignoruję opcję resolv-file, ponieważ wybrano tryb no-resolv"
 
-#: dnsmasq.c:491
+#: dnsmasq.c:503
 msgid "warning: no upstream servers configured"
-msgstr "uwaga: nie wskazano nadrzêdnych serwerów DNS"
+msgstr "uwaga: nie wskazano nadrzędnych serwerów DNS"
 
-#: dnsmasq.c:495
+#: dnsmasq.c:507
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
-msgstr "w³±czono asynchroniczny tryb zapisu do logów z kolejk± na %d komunikatów"
+msgstr "włączono asynchroniczny tryb zapisu do logów z kolejką na %d komunikatów"
 
-#: dnsmasq.c:508
+#: dnsmasq.c:520
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
-msgstr "DHCP: tylko statyczne dzier¿awy na %.0s%s, czas dzier¿awy %s"
+msgstr "DHCP: tylko statyczne dzierżawy na %.0s%s, czas dzierżawy %s"
 
-#: dnsmasq.c:510
+#: dnsmasq.c:522
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
-msgstr "DHCP: porednik na podsieci %.0s%s%.0s"
+msgstr "DHCP: pośrednik na podsieci %.0s%s%.0s"
 
-#: dnsmasq.c:511
+#: dnsmasq.c:523
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
-msgstr "DHCP: zakres IP %s -- %s, czas dzier¿awy %s"
+msgstr "DHCP: zakres IP %s -- %s, czas dzierżawy %s"
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "root is "
-msgstr "z g³ównym katalogiem w "
+msgstr "z głównym katalogiem w "
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "enabled"
-msgstr "w³±czony"
+msgstr "włączony"
 
-#: dnsmasq.c:528
+#: dnsmasq.c:540
 msgid "secure mode"
 msgstr "w trybie bezpiecznym"
 
-#: dnsmasq.c:554
+#: dnsmasq.c:566
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
-msgstr "ograniczam ilo¶æ jednoczesnych przes³añ TFTP do %d"
+msgstr "ograniczam ilość jednoczesnych przesłań TFTP do %d"
 
-#: dnsmasq.c:680
+#: dnsmasq.c:692
 msgid "connected to system DBus"
-msgstr "pod³±czono do DBus-a"
+msgstr "podłączono do DBus-a"
 
-#: dnsmasq.c:775
+#: dnsmasq.c:787
 #, c-format
 msgid "cannot fork into background: %s"
-msgstr "nie potrafiê prze³±czyæ siê do pracy w tle: %s"
+msgstr "nie potrafię przełączyć się do pracy w tle: %s"
 
-#: dnsmasq.c:778
+#: dnsmasq.c:790
 #, c-format
 msgid "failed to create helper: %s"
-msgstr "nie uda³o siê utworzyæ procesu pomocniczego: %s"
+msgstr "nie udało się utworzyć procesu pomocniczego: %s"
 
-#: dnsmasq.c:781
+#: dnsmasq.c:793
 #, c-format
 msgid "setting capabilities failed: %s"
-msgstr "nie powiod³o siê ustawianie ograniczeñ (capabilities): %s"
+msgstr "nie powiodło się ustawianie ograniczeń (capabilities): %s"
 
-#: dnsmasq.c:785
+#: dnsmasq.c:797
 #, c-format
 msgid "failed to change user-id to %s: %s"
-msgstr "nie uda³o siê zmieniæ u¿ytkownika procesu na %s: %s"
+msgstr "nie udało się zmienić użytkownika procesu na %s: %s"
 
-#: dnsmasq.c:790
+#: dnsmasq.c:802
 #, c-format
 msgid "failed to change group-id to %s: %s"
-msgstr "nie uda³o siê zmieniæ grupy procesu na %s: %s"
+msgstr "nie udało się zmienić grupy procesu na %s: %s"
 
-#: dnsmasq.c:793
+#: dnsmasq.c:805
 #, c-format
 msgid "failed to open pidfile %s: %s"
-msgstr "nie uda³o siê otworzyæ pliku z PID-em %s: %s"
+msgstr "nie udało się otworzyć pliku z PID-em %s: %s"
 
-#: dnsmasq.c:796
+#: dnsmasq.c:808
 #, c-format
 msgid "cannot open %s: %s"
-msgstr "nie mo¿na otworzyæ %s: %s"
+msgstr "nie można otworzyć %s: %s"
 
-#: dnsmasq.c:851
+#: dnsmasq.c:863
 #, c-format
 msgid "child process killed by signal %d"
-msgstr "proces potomny zabity sygna³em %d"
+msgstr "proces potomny zabity sygnałem %d"
 
-#: dnsmasq.c:855
+#: dnsmasq.c:867
 #, c-format
 msgid "child process exited with status %d"
-msgstr "proces potomny zakoñczy³ siê z kodem powrotu %d"
+msgstr "proces potomny zakończył się z kodem powrotu %d"
 
-#: dnsmasq.c:859
+#: dnsmasq.c:871
 #, c-format
 msgid "failed to execute %s: %s"
-msgstr "nie uda³o siê uruchomiæ %s: %s"
+msgstr "nie udało się uruchomić %s: %s"
 
-#: dnsmasq.c:903
+#: dnsmasq.c:915
 msgid "exiting on receipt of SIGTERM"
-msgstr "zakoñczy³em dzia³anie z powodu odebrania SIGTERM"
+msgstr "zakończyłem działanie z powodu odebrania SIGTERM"
 
-#: dnsmasq.c:931
+#: dnsmasq.c:943
 #, c-format
 msgid "failed to access %s: %s"
-msgstr "brak dostêpu do %s: %s"
+msgstr "brak dostępu do %s: %s"
 
-#: dnsmasq.c:961
+#: dnsmasq.c:973
 #, c-format
 msgid "reading %s"
 msgstr "czytanie %s"
 
-#: dnsmasq.c:972
+#: dnsmasq.c:984
 #, c-format
 msgid "no servers found in %s, will retry"
-msgstr "w %s nie znalaz³em serwerów, spróbujê ponownie pó¼niej"
+msgstr "w %s nie znalazłem serwerów, spróbuję ponownie później"
 
-#: dhcp.c:40
+#: dhcp.c:39
 #, c-format
 msgid "cannot create DHCP socket: %s"
-msgstr "nie uda³o siê utworzyæ gniazda dla DHCP: %s"
+msgstr "nie udało się utworzyć gniazda dla DHCP: %s"
 
-#: dhcp.c:52
+#: dhcp.c:51
 #, c-format
 msgid "failed to set options on DHCP socket: %s"
-msgstr "b³±d podczas ustawiania opcji gniazda DHCP: %s"
+msgstr "błąd podczas ustawiania opcji gniazda DHCP: %s"
 
-#: dhcp.c:65
+#: dhcp.c:64
 #, c-format
 msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
-msgstr "nie uda³o siê ustawiæ SO_REUSE{ADDR|PORT} gniazda DHCP: %s"
+msgstr "nie udało się ustawić SO_REUSE{ADDR|PORT} gniazda DHCP: %s"
 
-#: dhcp.c:77
+#: dhcp.c:76
 #, c-format
 msgid "failed to bind DHCP server socket: %s"
-msgstr "b³±d przy przyznawaniu nazwy gniazdu serwera DHCP: %s"
+msgstr "błąd przy przyznawaniu nazwy gniazdu serwera DHCP: %s"
 
-#: dhcp.c:103
+#: dhcp.c:102
 #, c-format
 msgid "cannot create ICMP raw socket: %s."
-msgstr "nie uda³o siê utworzyæ surowego gniazda ICMP: %s."
+msgstr "nie udało się utworzyć surowego gniazda ICMP: %s."
 
-#: dhcp.c:281
+#: dhcp.c:278
 #, c-format
 msgid "DHCP packet received on %s which has no address"
-msgstr "¿±danie DHCP odebrano na interfejsie %s, który nie ma adresu"
+msgstr "żądanie DHCP odebrano na interfejsie %s, który nie ma adresu"
 
-#: dhcp.c:445
+#: dhcp.c:442
 #, 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"
+msgstr "zakres adresów DHCP %s -- %s jest niespójny z maską sieci %s"
 
-#: dhcp.c:852
+#: dhcp.c:861
 #, c-format
 msgid "bad line at %s line %d"
-msgstr "z³a zawarto¶æ pliku %s, w linii %d"
+msgstr "zła zawartość pliku %s, w linii %d"
 
-#: dhcp.c:895
+#: dhcp.c:904
 #, c-format
 msgid "ignoring %s line %d, duplicate name or IP address"
-msgstr "w %s pomijam liniê %d -- powtórzona nazwa lub adres IP"
+msgstr "w %s pomijam linię %d -- powtórzona nazwa lub adres IP"
 
-#: dhcp.c:978
+#: dhcp.c:987
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
-msgstr "powtórzony adres IP (%s) w parametrze dhcp-config"
+msgstr "powtórzony adres IP (%s) w parametrze dhcp-config"
 
-#: dhcp.c:981
+#: dhcp.c:990
 #, c-format
 msgid "duplicate IP address %s in %s."
-msgstr "powtórzony adres IP (%s) w pliku %s"
+msgstr "powtórzony adres IP (%s) w pliku %s"
 
-#: dhcp.c:1024
+#: dhcp.c:1033
 #, 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"
+msgstr "do komputera o nazwie %s pasuje więcej niż jeden adres, w odpowiedzi DHCP wysyłam %s"
 
-#: dhcp.c:1029
+#: dhcp.c:1038
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
-msgstr "powtórzenie adresu IP %s (%s) w opcji dhcp-config"
+msgstr "powtórzenie adresu IP %s (%s) w opcji dhcp-config"
 
 #: lease.c:67
 #, c-format
 msgid "cannot open or create lease file %s: %s"
-msgstr "nie potrafiê otworzyæ albo utworzyæ pliku dzier¿aw %s: %s"
+msgstr "nie potrafię otworzyć albo utworzyć pliku dzierżaw %s: %s"
 
 #: lease.c:93
 msgid "too many stored leases"
-msgstr "zbyt du¿a ilo¶æ zapisanych dzier¿aw"
+msgstr "zbyt duża ilość zapisanych dzierżaw"
 
 #: lease.c:129
 #, c-format
 msgid "cannot run lease-init script %s: %s"
-msgstr "nie potrafiê uruchomiæ skryptu %s: %s"
+msgstr "nie potrafię uruchomić skryptu %s: %s"
 
 #: lease.c:135
 #, c-format
 msgid "lease-init script returned exit code %s"
-msgstr "skrypt zakoñczy³ siê z kodem powrotu %s"
+msgstr "skrypt zakończył się z kodem powrotu %s"
 
 #: lease.c:235
 #, c-format
 msgid "failed to write %s: %s (retry in %us)"
-msgstr "b³±d zapisu do %s: %s (spróbujê ponownie za %us)"
+msgstr "błąd zapisu do %s: %s (spróbuję ponownie za %us)"
 
-#: rfc2131.c:315
+#: rfc2131.c:342
 #, c-format
 msgid "no address range available for DHCP request %s %s"
-msgstr "nie zdefiniowano zakresu adresów odpowiedniego dla ¿±dania %s %s"
+msgstr "nie zdefiniowano zakresu adresów odpowiedniego dla żądania %s %s"
 
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "with subnet selector"
 msgstr "z wyborem podsieci"
 
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "via"
 msgstr "przez"
 
-#: rfc2131.c:331
+#: rfc2131.c:355
 #, c-format
 msgid "%u available DHCP subnet: %s/%s"
-msgstr "%u dostêpna podsieæ DHCP: %s/%s"
+msgstr "%u dostępna podsieć DHCP: %s/%s"
 
-#: rfc2131.c:334
+#: rfc2131.c:358
 #, c-format
 msgid "%u available DHCP range: %s -- %s"
-msgstr "%u dostêpny zakres adresów DHCP: %s -- %s"
+msgstr "%u dostępny zakres adresów DHCP: %s -- %s"
 
-#: rfc2131.c:363
+#: rfc2131.c:387
 msgid "disabled"
-msgstr "wy³±czony(a)"
+msgstr "wyłączony(a)"
 
-#: rfc2131.c:404 rfc2131.c:916 rfc2131.c:1288
+#: rfc2131.c:428
+#: rfc2131.c:945
+#: rfc2131.c:1337
 msgid "ignored"
-msgstr "ignorujê"
+msgstr "ignoruję"
 
-#: rfc2131.c:419 rfc2131.c:1135
+#: rfc2131.c:443
+#: rfc2131.c:1183
 msgid "address in use"
-msgstr "adres jest w u¿yciu"
+msgstr "adres jest w użyciu"
 
-#: rfc2131.c:433 rfc2131.c:970
+#: rfc2131.c:457
+#: rfc2131.c:999
 msgid "no address available"
-msgstr "brak dostêpnego adresu"
+msgstr "brak dostępnego adresu"
 
-#: rfc2131.c:440 rfc2131.c:1098
+#: rfc2131.c:464
+#: rfc2131.c:1146
 msgid "wrong network"
-msgstr "nieprawid³owa sieæ"
+msgstr "nieprawidłowa sieć"
 
-#: rfc2131.c:454
+#: rfc2131.c:479
 msgid "no address configured"
 msgstr "brak skonfigurowanego adresu"
 
-#: rfc2131.c:460 rfc2131.c:1148
+#: rfc2131.c:485
+#: rfc2131.c:1196
 msgid "no leases left"
-msgstr "brak wolnych dzier¿aw"
+msgstr "brak wolnych dzierżaw"
 
-#: rfc2131.c:545
+#: rfc2131.c:570
 #, c-format
 msgid "%u client provides name: %s"
-msgstr "klient %u przedstawia siê jako %s"
+msgstr "klient %u przedstawia się jako %s"
 
-#: rfc2131.c:700
+#: rfc2131.c:725
 #, c-format
 msgid "%u vendor class: %s"
 msgstr "%u klasa dostawcy: %s"
 
-#: rfc2131.c:702
+#: rfc2131.c:727
 #, c-format
 msgid "%u user class: %s"
-msgstr "%u klasa u¿ytkownika: %s"
+msgstr "%u klasa użytkownika: %s"
 
-#: rfc2131.c:761
+#: rfc2131.c:786
 msgid "PXE BIS not supported"
-msgstr "PXE BIS nie jest obs³ugiwane"
+msgstr "PXE BIS nie jest obsługiwane"
 
-#: rfc2131.c:886
+#: rfc2131.c:915
 #, c-format
 msgid "disabling DHCP static address %s for %s"
-msgstr "wy³±czam statyczne przypisanie adresu %s dla %s"
+msgstr "wyłączam statyczne przypisanie adresu %s dla %s"
 
-#: rfc2131.c:907
+#: rfc2131.c:936
 msgid "unknown lease"
-msgstr "nieznana dzier¿awa"
+msgstr "nieznana dzierżawa"
 
-#: rfc2131.c:939
+#: rfc2131.c:968
 #, 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"
+msgstr "nie proponuję zakładanego w konfiguracji adresu %s, bo jest on już wydzierżawiony komputerowi %s"
 
-#: rfc2131.c:949
+#: rfc2131.c:978
 #, 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"
+msgstr "nie proponuję zakładanego w konfiguracji adresu %s, bo używa go któryś z serwerów"
 
-#: rfc2131.c:952
+#: rfc2131.c:981
 #, 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"
+msgstr "nie proponuję zakładanego w konfiguracji adresu %s, bo już poprzednio został odrzucony"
 
-#: rfc2131.c:968 rfc2131.c:1141
+#: rfc2131.c:997
+#: rfc2131.c:1189
 msgid "no unique-id"
 msgstr "brak unikalnego id"
 
-#: rfc2131.c:1037
+#: rfc2131.c:1084
 msgid "wrong server-ID"
-msgstr "nieprawid³owy identyfikator serwera (server-ID)"
+msgstr "nieprawidłowy identyfikator serwera (server-ID)"
 
-#: rfc2131.c:1055
+#: rfc2131.c:1103
 msgid "wrong address"
-msgstr "b³êdny adres"
+msgstr "błędny adres"
 
-#: rfc2131.c:1073
+#: rfc2131.c:1121
 msgid "lease not found"
-msgstr "dzier¿awa nieznaleziona"
+msgstr "dzierżawa nieznaleziona"
 
-#: rfc2131.c:1106
+#: rfc2131.c:1154
 msgid "address not available"
-msgstr "adres niedostêpny"
+msgstr "adres niedostępny"
 
-#: rfc2131.c:1117
+#: rfc2131.c:1165
 msgid "static lease available"
-msgstr "dostêpna statyczna dzier¿awa"
+msgstr "dostępna statyczna dzierżawa"
 
-#: rfc2131.c:1121
+#: rfc2131.c:1169
 msgid "address reserved"
 msgstr "adres zarezerwowany"
 
-#: rfc2131.c:1129
+#: rfc2131.c:1177
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr "porzucam przypisanie do %s nazwy %s"
 
-#: rfc2131.c:1710
+#: rfc2131.c:1746
 #, c-format
 msgid "%u tags: %s"
 msgstr "%u cechy: %s"
 
-#: rfc2131.c:1723
+#: rfc2131.c:1774
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr "%u nazwa pliku bootowania: %s"
 
-#: rfc2131.c:1732
+#: rfc2131.c:1783
 #, c-format
 msgid "%u server name: %s"
 msgstr "%u nazwa serwera: %s"
 
-#: rfc2131.c:1746
+#: rfc2131.c:1791
 #, c-format
 msgid "%u next server: %s"
-msgstr "%u nastêpny serwer: %s"
+msgstr "%u następny serwer: %s"
 
-#: rfc2131.c:1749
+#: rfc2131.c:1794
 #, c-format
 msgid "%u broadcast response"
-msgstr "%u odpowied¼ rozg³oszeniowa"
+msgstr "%u odpowiedź rozgłoszeniowa"
 
-#: rfc2131.c:1812
+#: rfc2131.c:1857
 #, 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"
+msgstr "nie mam możliwości wysłania opcji %d DHCP/BOOTP: niedostateczna ilość miejsca w pakiecie"
 
-#: rfc2131.c:2058
+#: rfc2131.c:2097
 msgid "PXE menu too large"
-msgstr "menu PXE zbyt du¿e"
+msgstr "menu PXE zbyt duże"
 
-#: rfc2131.c:2171
+#: rfc2131.c:2253
+#, c-format
+msgid "Ignoring duplicate dhcp-option %d"
+msgstr "Pomijam powtórzoną dhcp-option %d"
+
+#: rfc2131.c:2257
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
-msgstr "Nie uwzglêdniam czê¶ci domenowej (%s) dla komputera %s"
+msgstr "Nie uwzględniam części domenowej (%s) dla komputera %s"
 
-#: rfc2131.c:2189
+#: rfc2131.c:2275
 #, c-format
 msgid "%u requested options: %s"
-msgstr "%u za¿±dano: %s"
+msgstr "%u zażądano: %s"
 
-#: rfc2131.c:2456
+#: rfc2131.c:2550
 #, 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"
+msgstr "nie mogę wysłać opcji RFC3925: za długi łańcuch opcji przy numerze %d"
 
 #: netlink.c:70
 #, c-format
 msgid "cannot create netlink socket: %s"
-msgstr "nie potrafiê utworzyæ po³±czenia netlink %s"
+msgstr "nie potrafię utworzyć połączenia netlink %s"
 
 #: netlink.c:288
 #, c-format
 msgid "netlink returns error: %s"
-msgstr "wyst±pi³ b³±d w po³±czeniu netlink %s"
+msgstr "wystąpił błąd w połączeniu netlink %s"
 
 #: dbus.c:150
 msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
-msgstr "próba ustawienia adresu IPv6 serwera przez DBus, ale brak obs³ugi IPv6"
+msgstr "próba ustawienia adresu IPv6 serwera przez DBus, ale brak obsługi IPv6"
 
 #: dbus.c:286
 msgid "setting upstream servers from DBus"
-msgstr "ustawiam adresy serwerów nadrzêdnych na podstawie informacji odebranych z DBus"
+msgstr "ustawiam adresy serwerów nadrzędnych na podstawie informacji odebranych z DBus"
 
 #: dbus.c:324
 msgid "could not register a DBus message handler"
-msgstr "nie mo¿na zarejestrowaæ uchwytu DBus"
+msgstr "nie można zarejestrować uchwytu DBus"
 
-#: bpf.c:217
+#: bpf.c:224
 #, c-format
 msgid "cannot create DHCP BPF socket: %s"
-msgstr "nie potrafiê utworzyæ gniazda DHCP BPF: %s"
+msgstr "nie potrafię utworzyć gniazda DHCP BPF: %s"
 
-#: bpf.c:245
+#: bpf.c:252
 #, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
-msgstr "¿±danie DHCP od urz±dzenia nieobs³ugiwanego typu (%d) odebrano na %s"
+msgstr "żądanie DHCP od urządzenia nieobsługiwanego typu (%d) odebrano na %s"
 
-#: tftp.c:281
+#: tftp.c:286
 msgid "unable to get free port for TFTP"
-msgstr "brak wolnego portu dla us³ugi TFTP"
+msgstr "brak wolnego portu dla usługi TFTP"
 
-#: tftp.c:296
+#: tftp.c:301
 #, c-format
 msgid "unsupported request from %s"
-msgstr "nieobs³ugiwane ¿±danie od komputera %s"
+msgstr "nieobsługiwane żądanie od komputera %s"
 
-#: tftp.c:406
+#: tftp.c:411
 #, c-format
 msgid "file %s not found"
-msgstr "plik %s nie zosta³ znaleziony"
+msgstr "plik %s nie został znaleziony"
 
-#: tftp.c:522
+#: tftp.c:527
 #, c-format
 msgid "error %d %s received from %s"
-msgstr "b³±d %d %s odebrano od %s"
+msgstr "błąd %d %s odebrano od %s"
 
-#: tftp.c:554
+#: tftp.c:559
 #, c-format
 msgid "failed sending %s to %s"
-msgstr "b³±d wysy³ania pliku %s do komputera %s"
+msgstr "błąd wysyłania pliku %s do komputera %s"
 
-#: tftp.c:568
+#: tftp.c:573
 #, c-format
 msgid "sent %s to %s"
-msgstr "plik %s przes³ano do %s"
+msgstr "plik %s przesłano do %s"
 
-#: log.c:177
+#: log.c:190
 #, c-format
 msgid "overflow: %d log entries lost"
-msgstr "przepe³nienie: stracono %d wpisów do logów"
+msgstr "przepełnienie: stracono %d wpisów do logów"
 
-#: log.c:254
+#: log.c:267
 #, c-format
 msgid "log failed: %s"
-msgstr "nie uda³o siê zapisaæ komunikatów do %s"
+msgstr "nie udało się zapisać komunikatów do %s"
 
-#: log.c:462
+#: log.c:471
 msgid "FAILED to start up"
-msgstr "B£¡D: nie uda³o siê uruchomiæ dnsmasq-a"
+msgstr "BŁĄD: nie udało się uruchomić dnsmasq-a"
+
+#: conntrack.c:65
+#, c-format
+msgid "Conntrack connection mark retrieval failed: %s"
+msgstr "Nie udało się odcztać znacznika połączenia (conntrack): %s"
 
 #~ msgid "only one dhcp-hostsfile allowed"
-#~ msgstr "mo¿na wskazaæ tylko jeden plik dhcp-hostsfile"
+#~ msgstr "można wskazać tylko jeden plik dhcp-hostsfile"
 
 #~ msgid "only one dhcp-optsfile allowed"
-#~ msgstr "mo¿na wskazaæ tylko jeden plik dhcp-optsfile"
+#~ msgstr "można wskazać tylko jeden plik dhcp-optsfile"
 
 #~ msgid "files nested too deep in %s"
-#~ msgstr "zbyt du¿e zag³êbienie plików w %s"
+#~ msgstr "zbyt duże zagłębienie plików w %s"
 
 #~ msgid "TXT record string too long"
-#~ msgstr "zbyt d³ugi rekord TXT"
+#~ msgstr "zbyt długi rekord TXT"
 
 #~ msgid "failed to set IPV6 options on listening socket: %s"
-#~ msgstr "b³±d ustawiania opcji IPV6 na nas³uchuj±cym gnie¼dzie: %s"
+#~ msgstr "błąd ustawiania opcji IPV6 na nasłuchującym gnieździe: %s"
 
 #~ msgid "failed to bind listening socket for %s: %s"
-#~ msgstr "b³±d przy przyznawaniu nazwy gniazdu %s: %s"
+#~ msgstr "błąd przy przyznawaniu nazwy gniazdu %s: %s"
 
 #~ msgid "failed to listen on socket: %s"
-#~ msgstr "b³±d przy w³±czaniu nas³uchu na gnie¼dzie: %s"
+#~ msgstr "błąd przy włączaniu nasłuchu na gnieździe: %s"
 
 #~ msgid "failed to create TFTP socket: %s"
-#~ msgstr "nie powiod³o siê otwieranie gniazda dla us³ugi TFTP: %s"
+#~ msgstr "nie powiodło się otwieranie gniazda dla usługi TFTP: %s"
index 5fe209e6b4de527c1cb1ed19d250286fd4826581..d34102504f580bac64605a45d0212c13e39fb933 100644 (file)
@@ -20,17 +20,17 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr ""
 
-#: cache.c:795 dhcp.c:865
+#: cache.c:795 dhcp.c:874
 #, c-format
 msgid "bad address at %s line %d"
 msgstr ""
 
-#: cache.c:853 dhcp.c:881
+#: cache.c:853 dhcp.c:890
 #, c-format
 msgid "bad name at %s line %d"
 msgstr ""
 
-#: cache.c:860 dhcp.c:956
+#: cache.c:860 dhcp.c:965
 #, c-format
 msgid "read %s - %d addresses"
 msgstr ""
@@ -39,32 +39,37 @@ msgstr ""
 msgid "cleared cache"
 msgstr ""
 
-#: cache.c:960
+#: cache.c:934
+#, c-format
+msgid "No IPv4 address found for %s"
+msgstr ""
+
+#: cache.c:975
 #, c-format
 msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
 msgstr ""
 
-#: cache.c:966
+#: cache.c:981
 #, c-format
 msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
 msgstr ""
 
-#: cache.c:1039
+#: cache.c:1054
 #, c-format
 msgid "time %lu"
 msgstr ""
 
-#: cache.c:1040
+#: cache.c:1055
 #, c-format
 msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
 msgstr ""
 
-#: cache.c:1042
+#: cache.c:1057
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr ""
 
-#: cache.c:1068
+#: cache.c:1083
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr ""
@@ -78,7 +83,7 @@ msgstr ""
 msgid "failed to allocate memory"
 msgstr ""
 
-#: util.c:227 option.c:573
+#: util.c:227 option.c:579
 msgid "could not get memory"
 msgstr ""
 
@@ -92,752 +97,764 @@ msgstr ""
 msgid "failed to allocate %d bytes"
 msgstr ""
 
-#: util.c:350
+#: util.c:358
 #, c-format
 msgid "infinite"
 msgstr ""
 
-#: option.c:244
+#: option.c:248
 msgid "Specify local address(es) to listen on."
 msgstr ""
 
-#: option.c:245
+#: option.c:249
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr ""
 
-#: option.c:246
+#: option.c:250
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr ""
 
-#: option.c:247
+#: option.c:251
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr ""
 
-#: option.c:248
+#: option.c:252
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr ""
 
-#: option.c:249
+#: option.c:253
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr ""
 
-#: option.c:250
+#: option.c:254
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr ""
 
-#: option.c:251
+#: option.c:255
 msgid "Do NOT forward queries with no domain part."
 msgstr ""
 
-#: option.c:252
+#: option.c:256
 msgid "Return self-pointing MX records for local hosts."
 msgstr ""
 
-#: option.c:253
+#: option.c:257
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr ""
 
-#: option.c:254
+#: option.c:258
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr ""
 
-#: option.c:255
+#: option.c:259
 msgid "Enable DHCP in the range given with lease duration."
 msgstr ""
 
-#: option.c:256
+#: option.c:260
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr ""
 
-#: option.c:257
+#: option.c:261
 msgid "Set address or hostname for a specified machine."
 msgstr ""
 
-#: option.c:258
+#: option.c:262
 msgid "Read DHCP host specs from file."
 msgstr ""
 
-#: option.c:259
+#: option.c:263
 msgid "Read DHCP option specs from file."
 msgstr ""
 
-#: option.c:260
+#: option.c:264
 msgid "Evaluate conditional tag expression."
 msgstr ""
 
-#: option.c:261
+#: option.c:265
 #, c-format
 msgid "Do NOT load %s file."
 msgstr ""
 
-#: option.c:262
+#: option.c:266
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr ""
 
-#: option.c:263
+#: option.c:267
 msgid "Specify interface(s) to listen on."
 msgstr ""
 
-#: option.c:264
+#: option.c:268
 msgid "Specify interface(s) NOT to listen on."
 msgstr ""
 
-#: option.c:265
+#: option.c:269
 msgid "Map DHCP user class to tag."
 msgstr ""
 
-#: option.c:266
+#: option.c:270
 msgid "Map RFC3046 circuit-id to tag."
 msgstr ""
 
-#: option.c:267
+#: option.c:271
 msgid "Map RFC3046 remote-id to tag."
 msgstr ""
 
-#: option.c:268
+#: option.c:272
 msgid "Map RFC3993 subscriber-id to tag."
 msgstr ""
 
-#: option.c:269
+#: option.c:273
 msgid "Don't do DHCP for hosts with tag set."
 msgstr ""
 
-#: option.c:270
+#: option.c:274
 msgid "Force broadcast replies for hosts with tag set."
 msgstr ""
 
-#: option.c:271
+#: option.c:275
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr ""
 
-#: option.c:272
+#: option.c:276
 msgid "Assume we are the only DHCP server on the local network."
 msgstr ""
 
-#: option.c:273
+#: option.c:277
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr ""
 
-#: option.c:274
+#: option.c:278
 msgid "Return MX records for local hosts."
 msgstr ""
 
-#: option.c:275
+#: option.c:279
 msgid "Specify an MX record."
 msgstr ""
 
-#: option.c:276
+#: option.c:280
 msgid "Specify BOOTP options to DHCP server."
 msgstr ""
 
-#: option.c:277
+#: option.c:281
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr ""
 
-#: option.c:278
+#: option.c:282
 msgid "Do NOT cache failed search results."
 msgstr ""
 
-#: option.c:279
+#: option.c:283
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr ""
 
-#: option.c:280
+#: option.c:284
 msgid "Specify options to be sent to DHCP clients."
 msgstr ""
 
-#: option.c:281
+#: option.c:285
 msgid "DHCP option sent even if the client does not request it."
 msgstr ""
 
-#: option.c:282
+#: option.c:286
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr ""
 
-#: option.c:283
+#: option.c:287
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr ""
 
-#: option.c:284
+#: option.c:288
 msgid "Log DNS queries."
 msgstr ""
 
-#: option.c:285
+#: option.c:289
 msgid "Force the originating port for upstream DNS queries."
 msgstr ""
 
-#: option.c:286
+#: option.c:290
 msgid "Do NOT read resolv.conf."
 msgstr ""
 
-#: option.c:287
+#: option.c:291
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr ""
 
-#: option.c:288
+#: option.c:292
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr ""
 
-#: option.c:289
+#: option.c:293
 msgid "Never forward queries to specified domains."
 msgstr ""
 
-#: option.c:290
+#: option.c:294
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr ""
 
-#: option.c:291
+#: option.c:295
 msgid "Specify default target in an MX record."
 msgstr ""
 
-#: option.c:292
+#: option.c:296
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr ""
 
-#: option.c:293
+#: option.c:297
 msgid "Specify time-to-live in seconds for negative caching."
 msgstr ""
 
-#: option.c:294
+#: option.c:298
 msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
 msgstr ""
 
-#: option.c:295
+#: option.c:299
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr ""
 
-#: option.c:296
+#: option.c:300
 msgid "Map DHCP vendor class to tag."
 msgstr ""
 
-#: option.c:297
+#: option.c:301
 msgid "Display dnsmasq version and copyright information."
 msgstr ""
 
-#: option.c:298
+#: option.c:302
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr ""
 
-#: option.c:299
+#: option.c:303
 msgid "Specify a SRV record."
 msgstr ""
 
-#: option.c:300
+#: option.c:304
 msgid "Display this message. Use --help dhcp for known DHCP options."
 msgstr ""
 
-#: option.c:301
+#: option.c:305
 #, c-format
 msgid "Specify path of PID file (defaults to %s)."
 msgstr ""
 
-#: option.c:302
+#: option.c:306
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr ""
 
-#: option.c:303
+#: option.c:307
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr ""
 
-#: option.c:304
+#: option.c:308
 msgid "Specify TXT DNS record."
 msgstr ""
 
-#: option.c:305
+#: option.c:309
 msgid "Specify PTR DNS record."
 msgstr ""
 
-#: option.c:306
+#: option.c:310
 msgid "Give DNS name to IPv4 address of interface."
 msgstr ""
 
-#: option.c:307
+#: option.c:311
 msgid "Bind only to interfaces in use."
 msgstr ""
 
-#: option.c:308
+#: option.c:312
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr ""
 
-#: option.c:309
+#: option.c:313
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr ""
 
-#: option.c:310
+#: option.c:314
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr ""
 
-#: option.c:311
+#: option.c:315
 msgid "Enable dynamic address allocation for bootp."
 msgstr ""
 
-#: option.c:312
+#: option.c:316
 msgid "Map MAC address (with wildcards) to option set."
 msgstr ""
 
-#: option.c:313
+#: option.c:317
 msgid "Treat DHCP requests on aliases as arriving from interface."
 msgstr ""
 
-#: option.c:314
+#: option.c:318
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 
-#: option.c:315
+#: option.c:319
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 
-#: option.c:316
+#: option.c:320
 msgid "Read configuration from all the files in this directory."
 msgstr ""
 
-#: option.c:317
+#: option.c:321
 msgid "Log to this syslog facility or file. (defaults to DAEMON)"
 msgstr ""
 
-#: option.c:318
+#: option.c:322
 msgid "Do not use leasefile."
 msgstr ""
 
-#: option.c:319
+#: option.c:323
 #, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr ""
 
-#: option.c:320
+#: option.c:324
 #, c-format
 msgid "Clear DNS cache when reloading %s."
 msgstr ""
 
-#: option.c:321
+#: option.c:325
 msgid "Ignore hostnames provided by DHCP clients."
 msgstr ""
 
-#: option.c:322
+#: option.c:326
 msgid "Do NOT reuse filename and server fields for extra DHCP options."
 msgstr ""
 
-#: option.c:323
+#: option.c:327
 msgid "Enable integrated read-only TFTP server."
 msgstr ""
 
-#: option.c:324
+#: option.c:328
 msgid "Export files by TFTP only from the specified subtree."
 msgstr ""
 
-#: option.c:325
+#: option.c:329
 msgid "Add client IP address to tftp-root."
 msgstr ""
 
-#: option.c:326
+#: option.c:330
 msgid "Allow access only to files owned by the user running dnsmasq."
 msgstr ""
 
-#: option.c:327
+#: option.c:331
 #, c-format
 msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
 msgstr ""
 
-#: option.c:328
+#: option.c:332
 msgid "Disable the TFTP blocksize extension."
 msgstr ""
 
-#: option.c:329
+#: option.c:333
 msgid "Ephemeral port range for use by TFTP transfers."
 msgstr ""
 
-#: option.c:330
+#: option.c:334
 msgid "Extra logging for DHCP."
 msgstr ""
 
-#: option.c:331
+#: option.c:335
 msgid "Enable async. logging; optionally set queue length."
 msgstr ""
 
-#: option.c:332
+#: option.c:336
 msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
 msgstr ""
 
-#: option.c:333
+#: option.c:337
 msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
 msgstr ""
 
-#: option.c:334
+#: option.c:338
 msgid "Inhibit DNS-rebind protection on this domain."
 msgstr ""
 
-#: option.c:335
+#: option.c:339
 msgid "Always perform DNS queries to all servers."
 msgstr ""
 
-#: option.c:336
+#: option.c:340
 msgid "Set tag if client includes matching option in request."
 msgstr ""
 
-#: option.c:337
+#: option.c:341
 msgid "Use alternative ports for DHCP."
 msgstr ""
 
-#: option.c:338
+#: option.c:342
 msgid "Run lease-change script as this user."
 msgstr ""
 
-#: option.c:339
+#: option.c:343
 msgid "Specify NAPTR DNS record."
 msgstr ""
 
-#: option.c:340
+#: option.c:344
 msgid "Specify lowest port available for DNS query transmission."
 msgstr ""
 
-#: option.c:341
+#: option.c:345
 msgid "Use only fully qualified domain names for DHCP clients."
 msgstr ""
 
-#: option.c:342
+#: option.c:346
 msgid "Generate hostnames based on MAC address for nameless clients."
 msgstr ""
 
-#: option.c:343
+#: option.c:347
 msgid "Use these DHCP relays as full proxies."
 msgstr ""
 
-#: option.c:344
+#: option.c:348
 msgid "Specify alias name for LOCAL DNS name."
 msgstr ""
 
-#: option.c:345
+#: option.c:349
 msgid "Prompt to send to PXE clients."
 msgstr ""
 
-#: option.c:346
+#: option.c:350
 msgid "Boot service for PXE menu."
 msgstr ""
 
-#: option.c:347
+#: option.c:351
 msgid "Check configuration syntax."
 msgstr ""
 
-#: option.c:348
-msgid "Add requestor's MAC address to forwarded DNS queries"
+#: option.c:352
+msgid "Add requestor's MAC address to forwarded DNS queries."
 msgstr ""
 
-#: option.c:349
-msgid "Proxy DNSSEC validation results from upstream nameservers"
+#: option.c:353
+msgid "Proxy DNSSEC validation results from upstream nameservers."
+msgstr ""
+
+#: option.c:354
+msgid "Attempt to allocate sequential IP addresses to DHCP clients."
 msgstr ""
 
-#: option.c:638
+#: option.c:355
+msgid "Copy connection-track mark from queries to upstream connections."
+msgstr ""
+
+#: option.c:644
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
 "\n"
 msgstr ""
 
-#: option.c:640
+#: option.c:646
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr ""
 
-#: option.c:642
+#: option.c:648
 #, c-format
 msgid "Valid options are:\n"
 msgstr ""
 
-#: option.c:683
+#: option.c:689
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr ""
 
-#: option.c:798
+#: option.c:804
 msgid "bad dhcp-option"
 msgstr ""
 
-#: option.c:860
+#: option.c:866
 msgid "bad IP address"
 msgstr ""
 
-#: option.c:968
+#: option.c:974
 msgid "bad domain in dhcp-option"
 msgstr ""
 
-#: option.c:1034
+#: option.c:1040
 msgid "dhcp-option too long"
 msgstr ""
 
-#: option.c:1043
+#: option.c:1049
 msgid "illegal dhcp-match"
 msgstr ""
 
-#: option.c:1087
+#: option.c:1093
 msgid "illegal repeated flag"
 msgstr ""
 
-#: option.c:1095
+#: option.c:1101
 msgid "illegal repeated keyword"
 msgstr ""
 
-#: option.c:1147 option.c:3030
+#: option.c:1153 option.c:3062
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr ""
 
-#: option.c:1178 tftp.c:460
+#: option.c:1184 tftp.c:465
 #, c-format
 msgid "cannot access %s: %s"
 msgstr ""
 
-#: option.c:1207
+#: option.c:1213
 msgid "setting log facility is not possible under Android"
 msgstr ""
 
-#: option.c:1216
+#: option.c:1222
 msgid "bad log facility"
 msgstr ""
 
-#: option.c:1265
+#: option.c:1271
 msgid "bad MX preference"
 msgstr ""
 
-#: option.c:1270
+#: option.c:1276
 msgid "bad MX name"
 msgstr ""
 
-#: option.c:1284
+#: option.c:1290
 msgid "bad MX target"
 msgstr ""
 
-#: option.c:1294
+#: option.c:1300
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:1296
+#: option.c:1302
 msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
 msgstr ""
 
-#: option.c:1597 option.c:1601
+#: option.c:1607 option.c:1611
 msgid "bad port"
 msgstr ""
 
-#: option.c:1620 option.c:1645
+#: option.c:1634 option.c:1665
 msgid "interface binding not supported"
 msgstr ""
 
-#: option.c:1791
+#: option.c:1645 option.c:2614
+msgid "bad interface name"
+msgstr ""
+
+#: option.c:1810
 msgid "bad port range"
 msgstr ""
 
-#: option.c:1808
+#: option.c:1827
 msgid "bad bridge-interface"
 msgstr ""
 
-#: option.c:1850
+#: option.c:1870
 msgid "bad dhcp-range"
 msgstr ""
 
-#: option.c:1878
+#: option.c:1898
 msgid "only one tag allowed"
 msgstr ""
 
-#: option.c:1925
+#: option.c:1945
 msgid "inconsistent DHCP range"
 msgstr ""
 
-#: option.c:2019 option.c:2045
+#: option.c:2039 option.c:2067
 msgid "bad hex constant"
 msgstr ""
 
-#: option.c:2107
+#: option.c:2061
+msgid "cannot match tags in --dhcp-host"
+msgstr ""
+
+#: option.c:2129
 msgid "bad DHCP host name"
 msgstr ""
 
-#: option.c:2188
+#: option.c:2210
 msgid "bad tag-if"
 msgstr ""
 
-#: option.c:2467 option.c:2752
+#: option.c:2499 option.c:2784
 msgid "invalid port number"
 msgstr ""
 
-#: option.c:2529
+#: option.c:2561
 msgid "bad dhcp-proxy address"
 msgstr ""
 
-#: option.c:2569
+#: option.c:2601
 msgid "invalid alias range"
 msgstr ""
 
-#: option.c:2582
-msgid "bad interface name"
-msgstr ""
-
-#: option.c:2607
+#: option.c:2639
 msgid "bad CNAME"
 msgstr ""
 
-#: option.c:2612
+#: option.c:2644
 msgid "duplicate CNAME"
 msgstr ""
 
-#: option.c:2632
+#: option.c:2664
 msgid "bad PTR record"
 msgstr ""
 
-#: option.c:2663
+#: option.c:2695
 msgid "bad NAPTR record"
 msgstr ""
 
-#: option.c:2695
+#: option.c:2727
 msgid "bad TXT record"
 msgstr ""
 
-#: option.c:2738
+#: option.c:2770
 msgid "bad SRV record"
 msgstr ""
 
-#: option.c:2745
+#: option.c:2777
 msgid "bad SRV target"
 msgstr ""
 
-#: option.c:2759
+#: option.c:2791
 msgid "invalid priority"
 msgstr ""
 
-#: option.c:2766
+#: option.c:2798
 msgid "invalid weight"
 msgstr ""
 
-#: option.c:2785
+#: option.c:2817
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr ""
 
-#: option.c:2849
+#: option.c:2881
 msgid "missing \""
 msgstr ""
 
-#: option.c:2908
+#: option.c:2940
 msgid "bad option"
 msgstr ""
 
-#: option.c:2910
+#: option.c:2942
 msgid "extraneous parameter"
 msgstr ""
 
-#: option.c:2912
+#: option.c:2944
 msgid "missing parameter"
 msgstr ""
 
-#: option.c:2916
+#: option.c:2948
 msgid "error"
 msgstr ""
 
-#: option.c:2921
+#: option.c:2953
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr ""
 
-#: option.c:2985 tftp.c:624
+#: option.c:3017 tftp.c:629
 #, c-format
 msgid "cannot read %s: %s"
 msgstr ""
 
-#: option.c:3151 option.c:3187
+#: option.c:3183 option.c:3219
 #, c-format
 msgid "read %s"
 msgstr ""
 
-#: option.c:3239
+#: option.c:3271
 msgid "junk found in command line"
 msgstr ""
 
-#: option.c:3269
+#: option.c:3301
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr ""
 
-#: option.c:3270
+#: option.c:3302
 #, c-format
 msgid ""
 "Compile time options %s\n"
 "\n"
 msgstr ""
 
-#: option.c:3271
+#: option.c:3303
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr ""
 
-#: option.c:3272
+#: option.c:3304
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr ""
 
-#: option.c:3273
+#: option.c:3305
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
 msgstr ""
 
-#: option.c:3284
+#: option.c:3316
 msgid "try --help"
 msgstr ""
 
-#: option.c:3286
+#: option.c:3318
 msgid "try -w"
 msgstr ""
 
-#: option.c:3289
+#: option.c:3321
 #, c-format
 msgid "bad command line options: %s"
 msgstr ""
 
-#: option.c:3330
+#: option.c:3362
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr ""
 
-#: option.c:3358
+#: option.c:3390
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr ""
 
-#: option.c:3368
+#: option.c:3400
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr ""
 
-#: option.c:3371 network.c:848 dhcp.c:814
+#: option.c:3403 network.c:848 dhcp.c:823
 #, c-format
 msgid "failed to read %s: %s"
 msgstr ""
 
-#: option.c:3388
+#: option.c:3420
 #, c-format
 msgid "no search directive found in %s"
 msgstr ""
 
-#: option.c:3409
+#: option.c:3441
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr ""
 
-#: option.c:3413
+#: option.c:3445
 msgid "syntax check OK"
 msgstr ""
 
-#: forward.c:461
+#: forward.c:471
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr ""
 
-#: forward.c:489
+#: forward.c:499
 #, c-format
 msgid "possible DNS-rebind attack detected: %s"
 msgstr ""
@@ -908,273 +925,281 @@ msgstr ""
 msgid "using nameserver %s#%d"
 msgstr ""
 
-#: dnsmasq.c:148
+#: dnsmasq.c:152
 msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:153
+#: dnsmasq.c:157
+msgid "Cannot use --conntrack AND --query-port"
+msgstr ""
+
+#: dnsmasq.c:160
+msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
+msgstr ""
+
+#: dnsmasq.c:165
 msgid "asychronous logging is not available under Solaris"
 msgstr ""
 
-#: dnsmasq.c:158
+#: dnsmasq.c:170
 msgid "asychronous logging is not available under Android"
 msgstr ""
 
-#: dnsmasq.c:177
+#: dnsmasq.c:189
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr ""
 
-#: dnsmasq.c:185
+#: dnsmasq.c:197
 #, c-format
 msgid "unknown interface %s"
 msgstr ""
 
-#: dnsmasq.c:191
+#: dnsmasq.c:203
 #, c-format
 msgid "no interface with address %s"
 msgstr ""
 
-#: dnsmasq.c:207 dnsmasq.c:678
+#: dnsmasq.c:219 dnsmasq.c:690
 #, c-format
 msgid "DBus error: %s"
 msgstr ""
 
-#: dnsmasq.c:210
+#: dnsmasq.c:222
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:236
+#: dnsmasq.c:248
 #, c-format
 msgid "unknown user or group: %s"
 msgstr ""
 
-#: dnsmasq.c:291
+#: dnsmasq.c:303
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr ""
 
-#: dnsmasq.c:455
+#: dnsmasq.c:467
 #, c-format
 msgid "started, version %s DNS disabled"
 msgstr ""
 
-#: dnsmasq.c:457
+#: dnsmasq.c:469
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr ""
 
-#: dnsmasq.c:459
+#: dnsmasq.c:471
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr ""
 
-#: dnsmasq.c:461
+#: dnsmasq.c:473
 #, c-format
 msgid "compile time options: %s"
 msgstr ""
 
-#: dnsmasq.c:467
+#: dnsmasq.c:479
 msgid "DBus support enabled: connected to system bus"
 msgstr ""
 
-#: dnsmasq.c:469
+#: dnsmasq.c:481
 msgid "DBus support enabled: bus connection pending"
 msgstr ""
 
-#: dnsmasq.c:474
+#: dnsmasq.c:486
 #, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr ""
 
-#: dnsmasq.c:478
+#: dnsmasq.c:490
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr ""
 
-#: dnsmasq.c:483
+#: dnsmasq.c:495
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr ""
 
-#: dnsmasq.c:488
+#: dnsmasq.c:500
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:491
+#: dnsmasq.c:503
 msgid "warning: no upstream servers configured"
 msgstr ""
 
-#: dnsmasq.c:495
+#: dnsmasq.c:507
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr ""
 
-#: dnsmasq.c:508
+#: dnsmasq.c:520
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:510
+#: dnsmasq.c:522
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr ""
 
-#: dnsmasq.c:511
+#: dnsmasq.c:523
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "root is "
 msgstr ""
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "enabled"
 msgstr ""
 
-#: dnsmasq.c:528
+#: dnsmasq.c:540
 msgid "secure mode"
 msgstr ""
 
-#: dnsmasq.c:554
+#: dnsmasq.c:566
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr ""
 
-#: dnsmasq.c:680
+#: dnsmasq.c:692
 msgid "connected to system DBus"
 msgstr ""
 
-#: dnsmasq.c:775
+#: dnsmasq.c:787
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr ""
 
-#: dnsmasq.c:778
+#: dnsmasq.c:790
 #, c-format
 msgid "failed to create helper: %s"
 msgstr ""
 
-#: dnsmasq.c:781
+#: dnsmasq.c:793
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr ""
 
-#: dnsmasq.c:785
+#: dnsmasq.c:797
 #, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr ""
 
-#: dnsmasq.c:790
+#: dnsmasq.c:802
 #, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr ""
 
-#: dnsmasq.c:793
+#: dnsmasq.c:805
 #, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr ""
 
-#: dnsmasq.c:796
+#: dnsmasq.c:808
 #, c-format
 msgid "cannot open %s: %s"
 msgstr ""
 
-#: dnsmasq.c:851
+#: dnsmasq.c:863
 #, c-format
 msgid "child process killed by signal %d"
 msgstr ""
 
-#: dnsmasq.c:855
+#: dnsmasq.c:867
 #, c-format
 msgid "child process exited with status %d"
 msgstr ""
 
-#: dnsmasq.c:859
+#: dnsmasq.c:871
 #, c-format
 msgid "failed to execute %s: %s"
 msgstr ""
 
-#: dnsmasq.c:903
+#: dnsmasq.c:915
 msgid "exiting on receipt of SIGTERM"
 msgstr ""
 
-#: dnsmasq.c:931
+#: dnsmasq.c:943
 #, c-format
 msgid "failed to access %s: %s"
 msgstr ""
 
-#: dnsmasq.c:961
+#: dnsmasq.c:973
 #, c-format
 msgid "reading %s"
 msgstr ""
 
-#: dnsmasq.c:972
+#: dnsmasq.c:984
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr ""
 
-#: dhcp.c:40
+#: dhcp.c:39
 #, c-format
 msgid "cannot create DHCP socket: %s"
 msgstr ""
 
-#: dhcp.c:52
+#: dhcp.c:51
 #, c-format
 msgid "failed to set options on DHCP socket: %s"
 msgstr ""
 
-#: dhcp.c:65
+#: dhcp.c:64
 #, c-format
 msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
 msgstr ""
 
-#: dhcp.c:77
+#: dhcp.c:76
 #, c-format
 msgid "failed to bind DHCP server socket: %s"
 msgstr ""
 
-#: dhcp.c:103
+#: dhcp.c:102
 #, c-format
 msgid "cannot create ICMP raw socket: %s."
 msgstr ""
 
-#: dhcp.c:281
+#: dhcp.c:278
 #, c-format
 msgid "DHCP packet received on %s which has no address"
 msgstr ""
 
-#: dhcp.c:445
+#: dhcp.c:442
 #, c-format
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr ""
 
-#: dhcp.c:852
+#: dhcp.c:861
 #, c-format
 msgid "bad line at %s line %d"
 msgstr ""
 
-#: dhcp.c:895
+#: dhcp.c:904
 #, c-format
 msgid "ignoring %s line %d, duplicate name or IP address"
 msgstr ""
 
-#: dhcp.c:978
+#: dhcp.c:987
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr ""
 
-#: dhcp.c:981
+#: dhcp.c:990
 #, c-format
 msgid "duplicate IP address %s in %s."
 msgstr ""
 
-#: dhcp.c:1024
+#: dhcp.c:1033
 #, c-format
 msgid "%s has more than one address in hostsfile, using %s for DHCP"
 msgstr ""
 
-#: dhcp.c:1029
+#: dhcp.c:1038
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr ""
@@ -1203,178 +1228,183 @@ msgstr ""
 msgid "failed to write %s: %s (retry in %us)"
 msgstr ""
 
-#: rfc2131.c:315
+#: rfc2131.c:342
 #, c-format
 msgid "no address range available for DHCP request %s %s"
 msgstr ""
 
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "with subnet selector"
 msgstr ""
 
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "via"
 msgstr ""
 
-#: rfc2131.c:331
+#: rfc2131.c:355
 #, c-format
 msgid "%u available DHCP subnet: %s/%s"
 msgstr ""
 
-#: rfc2131.c:334
+#: rfc2131.c:358
 #, c-format
 msgid "%u available DHCP range: %s -- %s"
 msgstr ""
 
-#: rfc2131.c:363
+#: rfc2131.c:387
 msgid "disabled"
 msgstr ""
 
-#: rfc2131.c:404 rfc2131.c:916 rfc2131.c:1288
+#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
 msgid "ignored"
 msgstr ""
 
-#: rfc2131.c:419 rfc2131.c:1135
+#: rfc2131.c:443 rfc2131.c:1183
 msgid "address in use"
 msgstr ""
 
-#: rfc2131.c:433 rfc2131.c:970
+#: rfc2131.c:457 rfc2131.c:999
 msgid "no address available"
 msgstr ""
 
-#: rfc2131.c:440 rfc2131.c:1098
+#: rfc2131.c:464 rfc2131.c:1146
 msgid "wrong network"
 msgstr ""
 
-#: rfc2131.c:454
+#: rfc2131.c:479
 msgid "no address configured"
 msgstr ""
 
-#: rfc2131.c:460 rfc2131.c:1148
+#: rfc2131.c:485 rfc2131.c:1196
 msgid "no leases left"
 msgstr ""
 
-#: rfc2131.c:545
+#: rfc2131.c:570
 #, c-format
 msgid "%u client provides name: %s"
 msgstr ""
 
-#: rfc2131.c:700
+#: rfc2131.c:725
 #, c-format
 msgid "%u vendor class: %s"
 msgstr ""
 
-#: rfc2131.c:702
+#: rfc2131.c:727
 #, c-format
 msgid "%u user class: %s"
 msgstr ""
 
-#: rfc2131.c:761
+#: rfc2131.c:786
 msgid "PXE BIS not supported"
 msgstr ""
 
-#: rfc2131.c:886
+#: rfc2131.c:915
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr ""
 
-#: rfc2131.c:907
+#: rfc2131.c:936
 msgid "unknown lease"
 msgstr ""
 
-#: rfc2131.c:939
+#: rfc2131.c:968
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:949
+#: rfc2131.c:978
 #, c-format
 msgid "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:952
+#: rfc2131.c:981
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:968 rfc2131.c:1141
+#: rfc2131.c:997 rfc2131.c:1189
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:1037
+#: rfc2131.c:1084
 msgid "wrong server-ID"
 msgstr ""
 
-#: rfc2131.c:1055
+#: rfc2131.c:1103
 msgid "wrong address"
 msgstr ""
 
-#: rfc2131.c:1073
+#: rfc2131.c:1121
 msgid "lease not found"
 msgstr ""
 
-#: rfc2131.c:1106
+#: rfc2131.c:1154
 msgid "address not available"
 msgstr ""
 
-#: rfc2131.c:1117
+#: rfc2131.c:1165
 msgid "static lease available"
 msgstr ""
 
-#: rfc2131.c:1121
+#: rfc2131.c:1169
 msgid "address reserved"
 msgstr ""
 
-#: rfc2131.c:1129
+#: rfc2131.c:1177
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr ""
 
-#: rfc2131.c:1710
+#: rfc2131.c:1746
 #, c-format
 msgid "%u tags: %s"
 msgstr ""
 
-#: rfc2131.c:1723
+#: rfc2131.c:1774
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr ""
 
-#: rfc2131.c:1732
+#: rfc2131.c:1783
 #, c-format
 msgid "%u server name: %s"
 msgstr ""
 
-#: rfc2131.c:1746
+#: rfc2131.c:1791
 #, c-format
 msgid "%u next server: %s"
 msgstr ""
 
-#: rfc2131.c:1749
+#: rfc2131.c:1794
 #, c-format
 msgid "%u broadcast response"
 msgstr ""
 
-#: rfc2131.c:1812
+#: rfc2131.c:1857
 #, c-format
 msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
 msgstr ""
 
-#: rfc2131.c:2058
+#: rfc2131.c:2097
 msgid "PXE menu too large"
 msgstr ""
 
-#: rfc2131.c:2171
+#: rfc2131.c:2253
+#, c-format
+msgid "Ignoring duplicate dhcp-option %d"
+msgstr ""
+
+#: rfc2131.c:2257
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr ""
 
-#: rfc2131.c:2189
+#: rfc2131.c:2275
 #, c-format
 msgid "%u requested options: %s"
 msgstr ""
 
-#: rfc2131.c:2456
+#: rfc2131.c:2550
 #, c-format
 msgid "cannot send RFC3925 option: too many options for enterprise number %d"
 msgstr ""
@@ -1401,55 +1431,60 @@ msgstr ""
 msgid "could not register a DBus message handler"
 msgstr ""
 
-#: bpf.c:217
+#: bpf.c:224
 #, c-format
 msgid "cannot create DHCP BPF socket: %s"
 msgstr ""
 
-#: bpf.c:245
+#: bpf.c:252
 #, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr ""
 
-#: tftp.c:281
+#: tftp.c:286
 msgid "unable to get free port for TFTP"
 msgstr ""
 
-#: tftp.c:296
+#: tftp.c:301
 #, c-format
 msgid "unsupported request from %s"
 msgstr ""
 
-#: tftp.c:406
+#: tftp.c:411
 #, c-format
 msgid "file %s not found"
 msgstr ""
 
-#: tftp.c:522
+#: tftp.c:527
 #, c-format
 msgid "error %d %s received from %s"
 msgstr ""
 
-#: tftp.c:554
+#: tftp.c:559
 #, c-format
 msgid "failed sending %s to %s"
 msgstr ""
 
-#: tftp.c:568
+#: tftp.c:573
 #, c-format
 msgid "sent %s to %s"
 msgstr ""
 
-#: log.c:177
+#: log.c:190
 #, c-format
 msgid "overflow: %d log entries lost"
 msgstr ""
 
-#: log.c:254
+#: log.c:267
 #, c-format
 msgid "log failed: %s"
 msgstr ""
 
-#: log.c:462
+#: log.c:471
 msgid "FAILED to start up"
 msgstr ""
+
+#: conntrack.c:65
+#, c-format
+msgid "Conntrack connection mark retrieval failed: %s"
+msgstr ""
index 094da7941aafe8efaf4a4fe8cd62dd28d3aaa49a..a3b6ba48f8e019d57ccd286ba47e66ee49fdf7fb 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -20,17 +20,17 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr "încărcarea numelor din %s: %s a eşuat"
 
-#: cache.c:795 dhcp.c:865
+#: cache.c:795 dhcp.c:874
 #, c-format
 msgid "bad address at %s line %d"
 msgstr "adresă greşită în %s, linia %d"
 
-#: cache.c:853 dhcp.c:881
+#: cache.c:853 dhcp.c:890
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "nume greşit în %s linia %d"
 
-#: cache.c:860 dhcp.c:956
+#: cache.c:860 dhcp.c:965
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "citesc %s - %d adrese"
@@ -39,32 +39,37 @@ msgstr "citesc %s - %d adrese"
 msgid "cleared cache"
 msgstr "memoria temporară a fost ştearsă"
 
-#: cache.c:960
+#: cache.c:934
+#, c-format
+msgid "No IPv4 address found for %s"
+msgstr ""
+
+#: cache.c:975
 #, c-format
 msgid "%s is a CNAME, not giving it to the DHCP lease of %s"
 msgstr ""
 
-#: cache.c:966
+#: cache.c:981
 #, c-format
 msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
 msgstr "nu pot da numele %s împrumutului de adresă DHCP a lui %s deoarece numeleexistă în %s cu adresa %s"
 
-#: cache.c:1039
+#: cache.c:1054
 #, c-format
 msgid "time %lu"
 msgstr ""
 
-#: cache.c:1040
+#: cache.c:1055
 #, fuzzy, c-format
 msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
 msgstr "cantitate de memorie temporară %d, %d/%d stocări temporare aureutilizat locaţii neexpirate."
 
-#: cache.c:1042
+#: cache.c:1057
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr ""
 
-#: cache.c:1068
+#: cache.c:1083
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr ""
@@ -79,7 +84,7 @@ msgstr "ascultarea pe socket a eşuat: %s"
 msgid "failed to allocate memory"
 msgstr "nu pot încărca %d bytes"
 
-#: util.c:227 option.c:573
+#: util.c:227 option.c:579
 msgid "could not get memory"
 msgstr "nu am putut aloca memorie"
 
@@ -93,469 +98,477 @@ msgstr "nu pot citi %s: %s"
 msgid "failed to allocate %d bytes"
 msgstr "nu pot încărca %d bytes"
 
-#: util.c:350
+#: util.c:358
 #, c-format
 msgid "infinite"
 msgstr "infinit"
 
-#: option.c:244
+#: option.c:248
 msgid "Specify local address(es) to listen on."
 msgstr "Specificaţi adresele locale deservite."
 
-#: option.c:245
+#: option.c:249
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr "Afişează adresele IP ale maşinilor în domeniul dat."
 
-#: option.c:246
+#: option.c:250
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr "Simulează căutări după adresă pentru domenii de adresă private (RFC1918)."
 
-#: option.c:247
+#: option.c:251
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr "Interpretează adresa IP ca NXDOMAIN (împotriva manipulărilor Verisign)"
 
-#: option.c:248
+#: option.c:252
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr "Specifică mărimea înregistrărilor temporare (implicit e %s)."
 
-#: option.c:249
+#: option.c:253
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr "Specifică fişier de configurare (implicit e %s)."
 
-#: option.c:250
+#: option.c:254
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr "NU porneşte în fundal: rulează în modul depanare."
 
-#: option.c:251
+#: option.c:255
 msgid "Do NOT forward queries with no domain part."
 msgstr "NU înainta cererile ce nu conţin domeniu DNS."
 
-#: option.c:252
+#: option.c:256
 msgid "Return self-pointing MX records for local hosts."
 msgstr "Răspunde cu înregistrări MX spre el însuşi pentru maşini locale."
 
-#: option.c:253
+#: option.c:257
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr "Adaugă numelor simple din /etc/hosts numele domeniului ca sufix."
 
-#: option.c:254
+#: option.c:258
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr "Nu inainta cereri DNS defecte provenite de la maşini Windows."
 
-#: option.c:255
+#: option.c:259
 msgid "Enable DHCP in the range given with lease duration."
 msgstr "Activează DHCP în domeniul dat cu durată limitată de împrumut."
 
-#: option.c:256
+#: option.c:260
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr "Rulează sub acest grup după pornire (implicit e %s)."
 
-#: option.c:257
+#: option.c:261
 msgid "Set address or hostname for a specified machine."
 msgstr "Schimbă adresa sau numele maşinii specificate."
 
-#: option.c:258
+#: option.c:262
 #, fuzzy
 msgid "Read DHCP host specs from file."
 msgstr "nume MX invalid"
 
-#: option.c:259
+#: option.c:263
 msgid "Read DHCP option specs from file."
 msgstr ""
 
-#: option.c:260
+#: option.c:264
 msgid "Evaluate conditional tag expression."
 msgstr ""
 
-#: option.c:261
+#: option.c:265
 #, c-format
 msgid "Do NOT load %s file."
 msgstr "Nu încarcă fişierul %s."
 
-#: option.c:262
+#: option.c:266
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr "Specifică spre citire un fişier hosts adiţional la %s."
 
-#: option.c:263
+#: option.c:267
 msgid "Specify interface(s) to listen on."
 msgstr "Specifică interfeţele deservite."
 
-#: option.c:264
+#: option.c:268
 msgid "Specify interface(s) NOT to listen on."
 msgstr "Specifică interfeţele NE-deservite."
 
-#: option.c:265
+#: option.c:269
 #, fuzzy
 msgid "Map DHCP user class to tag."
 msgstr "Leagă clasa de utilizator DHCP cu grup de opţiuni."
 
-#: option.c:266
+#: option.c:270
 msgid "Map RFC3046 circuit-id to tag."
 msgstr ""
 
-#: option.c:267
+#: option.c:271
 msgid "Map RFC3046 remote-id to tag."
 msgstr ""
 
-#: option.c:268
+#: option.c:272
 msgid "Map RFC3993 subscriber-id to tag."
 msgstr ""
 
-#: option.c:269
+#: option.c:273
 #, fuzzy
 msgid "Don't do DHCP for hosts with tag set."
 msgstr "Nu furniza DHCP maşinilor din grupul de opţiuni."
 
-#: option.c:270
+#: option.c:274
 #, fuzzy
 msgid "Force broadcast replies for hosts with tag set."
 msgstr "Nu furniza DHCP maşinilor din grupul de opţiuni."
 
-#: option.c:271
+#: option.c:275
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr "NU porneşte în fundal, NU rulează în modul depanare."
 
-#: option.c:272
+#: option.c:276
 msgid "Assume we are the only DHCP server on the local network."
 msgstr "Presupune că suntem singurul server DHCP din reţeaua locală."
 
-#: option.c:273
+#: option.c:277
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr "Specifică fişierul de stocare a împrumuturilor DHCP (implicit e %s)."
 
-#: option.c:274
+#: option.c:278
 msgid "Return MX records for local hosts."
 msgstr "Răspunde cu întregistrări MX pentru maşini locale."
 
-#: option.c:275
+#: option.c:279
 msgid "Specify an MX record."
 msgstr "Specifică o înregistrare MX."
 
-#: option.c:276
+#: option.c:280
 msgid "Specify BOOTP options to DHCP server."
 msgstr "Specifică opţiuni BOOTP serverului DHCP."
 
-#: option.c:277
+#: option.c:281
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr "Nu încărca fişierul %s, citeşte-l doar la SIGHUP."
 
-#: option.c:278
+#: option.c:282
 msgid "Do NOT cache failed search results."
 msgstr "NU memora rezultatele de căutare DNS eşuatată."
 
-#: option.c:279
+#: option.c:283
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr "Foloseşte servere DNS strict în ordinea dată în %s."
 
-#: option.c:280
+#: option.c:284
 #, fuzzy
 msgid "Specify options to be sent to DHCP clients."
 msgstr "Configurează opţiuni în plusce trebuie trimise clienţilor DHCP."
 
-#: option.c:281
+#: option.c:285
 msgid "DHCP option sent even if the client does not request it."
 msgstr ""
 
-#: option.c:282
+#: option.c:286
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr "Specifică numărul portului pentru cereri DNS (implicit e 53)."
 
-#: option.c:283
+#: option.c:287
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr "Marimea maximă a pachetului UDP pentru EDNS.0 (implicit e %s)."
 
-#: option.c:284
+#: option.c:288
 #, fuzzy
 msgid "Log DNS queries."
 msgstr "Înregistrează tranzacţiile."
 
-#: option.c:285
+#: option.c:289
 #, fuzzy
 msgid "Force the originating port for upstream DNS queries."
 msgstr "Forţează acest port pentru datele ce pleacă."
 
-#: option.c:286
+#: option.c:290
 msgid "Do NOT read resolv.conf."
 msgstr "NU citi fişierul resolv.conf"
 
-#: option.c:287
+#: option.c:291
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr "Specifică calea către resolv.conf (implicit e %s)."
 
-#: option.c:288
+#: option.c:292
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr "Specifică adresele server(elor) superioare cu domenii opţionale."
 
-#: option.c:289
+#: option.c:293
 msgid "Never forward queries to specified domains."
 msgstr "Nu înaintează cererile spre domeniile specificate."
 
-#: option.c:290
+#: option.c:294
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr "Specifică domeniul de transmis prin DHCP."
 
-#: option.c:291
+#: option.c:295
 msgid "Specify default target in an MX record."
 msgstr "Specifică o ţintă într-o înregistrare MX."
 
-#: option.c:292
+#: option.c:296
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr "Specifică TTL în secunde pentru răspunsurile din /etc/hosts."
 
-#: option.c:293
+#: option.c:297
 #, fuzzy
 msgid "Specify time-to-live in seconds for negative caching."
 msgstr "Specifică TTL în secunde pentru răspunsurile din /etc/hosts."
 
-#: option.c:294
+#: option.c:298
 #, fuzzy
 msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
 msgstr "Specifică TTL în secunde pentru răspunsurile din /etc/hosts."
 
-#: option.c:295
+#: option.c:299
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr "Rulează sub acest utilizator după pornire. (implicit e %s)."
 
-#: option.c:296
+#: option.c:300
 #, fuzzy
 msgid "Map DHCP vendor class to tag."
 msgstr "Trimite opţiuni DHCP în funcţie de marca plăcii de reţea."
 
-#: option.c:297
+#: option.c:301
 msgid "Display dnsmasq version and copyright information."
 msgstr "Afişează versiunea dnsmasq şi drepturile de autor."
 
-#: option.c:298
+#: option.c:302
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr "Traduce adresele IPv4 de la serverele DNS superioare."
 
-#: option.c:299
+#: option.c:303
 msgid "Specify a SRV record."
 msgstr "Specifică o înregistrare SRV."
 
-#: option.c:300
+#: option.c:304
 msgid "Display this message. Use --help dhcp for known DHCP options."
 msgstr ""
 
-#: option.c:301
+#: option.c:305
 #, fuzzy, c-format
 msgid "Specify path of PID file (defaults to %s)."
 msgstr "Specifică o cale pentru fişierul PID. (implicit %s)."
 
-#: option.c:302
+#: option.c:306
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)."
 
-#: option.c:303
+#: option.c:307
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr "Răspunde cererilor DNS în funcţie de interfaţa pe care a venit cererea."
 
-#: option.c:304
+#: option.c:308
 msgid "Specify TXT DNS record."
 msgstr "Specifică o înregistrare TXT."
 
-#: option.c:305
+#: option.c:309
 #, fuzzy
 msgid "Specify PTR DNS record."
 msgstr "Specifică o înregistrare TXT."
 
-#: option.c:306
+#: option.c:310
 msgid "Give DNS name to IPv4 address of interface."
 msgstr ""
 
-#: option.c:307
+#: option.c:311
 msgid "Bind only to interfaces in use."
 msgstr "Ascultă doar pe interfeţele active."
 
-#: option.c:308
+#: option.c:312
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr "Citeşte informaţii DHCP statice despre maşină din %s."
 
-#: option.c:309
+#: option.c:313
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr "Activeaza interfaţa DBus pentru configurarea serverelor superioare."
 
-#: option.c:310
+#: option.c:314
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr "Nu activează DHCP ci doar DNS pe această interfaţă."
 
-#: option.c:311
+#: option.c:315
 msgid "Enable dynamic address allocation for bootp."
 msgstr "Activează alocarea dinamică a adreselor pentru BOOTP."
 
-#: option.c:312
+#: option.c:316
 #, fuzzy
 msgid "Map MAC address (with wildcards) to option set."
 msgstr "Trimite opţiuni DHCP în funcţie de marca plăcii de reţea."
 
-#: option.c:313
+#: option.c:317
 msgid "Treat DHCP requests on aliases as arriving from interface."
 msgstr ""
 
-#: option.c:314
+#: option.c:318
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 
-#: option.c:315
+#: option.c:319
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 
-#: option.c:316
+#: option.c:320
 msgid "Read configuration from all the files in this directory."
 msgstr ""
 
-#: option.c:317
+#: option.c:321
 #, fuzzy
 msgid "Log to this syslog facility or file. (defaults to DAEMON)"
 msgstr "Rulează sub acest utilizator după pornire. (implicit e %s)."
 
-#: option.c:318
+#: option.c:322
 msgid "Do not use leasefile."
 msgstr ""
 
-#: option.c:319
+#: option.c:323
 #, fuzzy, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)."
 
-#: option.c:320
+#: option.c:324
 #, c-format
 msgid "Clear DNS cache when reloading %s."
 msgstr ""
 
-#: option.c:321
+#: option.c:325
 msgid "Ignore hostnames provided by DHCP clients."
 msgstr ""
 
-#: option.c:322
+#: option.c:326
 msgid "Do NOT reuse filename and server fields for extra DHCP options."
 msgstr ""
 
-#: option.c:323
+#: option.c:327
 msgid "Enable integrated read-only TFTP server."
 msgstr ""
 
-#: option.c:324
+#: option.c:328
 msgid "Export files by TFTP only from the specified subtree."
 msgstr ""
 
-#: option.c:325
+#: option.c:329
 msgid "Add client IP address to tftp-root."
 msgstr ""
 
-#: option.c:326
+#: option.c:330
 msgid "Allow access only to files owned by the user running dnsmasq."
 msgstr ""
 
-#: option.c:327
+#: option.c:331
 #, fuzzy, c-format
 msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
 msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)."
 
-#: option.c:328
+#: option.c:332
 msgid "Disable the TFTP blocksize extension."
 msgstr ""
 
-#: option.c:329
+#: option.c:333
 msgid "Ephemeral port range for use by TFTP transfers."
 msgstr ""
 
-#: option.c:330
+#: option.c:334
 msgid "Extra logging for DHCP."
 msgstr ""
 
-#: option.c:331
+#: option.c:335
 msgid "Enable async. logging; optionally set queue length."
 msgstr ""
 
-#: option.c:332
+#: option.c:336
 msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
 msgstr ""
 
-#: option.c:333
+#: option.c:337
 msgid "Allow rebinding of 127.0.0.0/8, for RBL servers."
 msgstr ""
 
-#: option.c:334
+#: option.c:338
 msgid "Inhibit DNS-rebind protection on this domain."
 msgstr ""
 
-#: option.c:335
+#: option.c:339
 msgid "Always perform DNS queries to all servers."
 msgstr ""
 
-#: option.c:336
+#: option.c:340
 msgid "Set tag if client includes matching option in request."
 msgstr ""
 
-#: option.c:337
+#: option.c:341
 msgid "Use alternative ports for DHCP."
 msgstr ""
 
-#: option.c:338
+#: option.c:342
 msgid "Run lease-change script as this user."
 msgstr ""
 
-#: option.c:339
+#: option.c:343
 #, fuzzy
 msgid "Specify NAPTR DNS record."
 msgstr "Specifică o înregistrare TXT."
 
-#: option.c:340
+#: option.c:344
 msgid "Specify lowest port available for DNS query transmission."
 msgstr ""
 
-#: option.c:341
+#: option.c:345
 msgid "Use only fully qualified domain names for DHCP clients."
 msgstr ""
 
-#: option.c:342
+#: option.c:346
 msgid "Generate hostnames based on MAC address for nameless clients."
 msgstr ""
 
-#: option.c:343
+#: option.c:347
 msgid "Use these DHCP relays as full proxies."
 msgstr ""
 
-#: option.c:344
+#: option.c:348
 msgid "Specify alias name for LOCAL DNS name."
 msgstr ""
 
-#: option.c:345
+#: option.c:349
 #, fuzzy
 msgid "Prompt to send to PXE clients."
 msgstr "Configurează opţiuni în plusce trebuie trimise clienţilor DHCP."
 
-#: option.c:346
+#: option.c:350
 msgid "Boot service for PXE menu."
 msgstr ""
 
-#: option.c:347
+#: option.c:351
 msgid "Check configuration syntax."
 msgstr ""
 
-#: option.c:348
-msgid "Add requestor's MAC address to forwarded DNS queries"
+#: option.c:352
+msgid "Add requestor's MAC address to forwarded DNS queries."
 msgstr ""
 
-#: option.c:349
+#: option.c:353
 #, fuzzy
-msgid "Proxy DNSSEC validation results from upstream nameservers"
+msgid "Proxy DNSSEC validation results from upstream nameservers."
 msgstr "Traduce adresele IPv4 de la serverele DNS superioare."
 
-#: option.c:638
+#: option.c:354
+msgid "Attempt to allocate sequential IP addresses to DHCP clients."
+msgstr ""
+
+#: option.c:355
+msgid "Copy connection-track mark from queries to upstream connections."
+msgstr ""
+
+#: option.c:644
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -564,238 +577,242 @@ msgstr ""
 "Utilizare: dnsmasq [opţiuni]\n"
 "\n"
 
-#: option.c:640
+#: option.c:646
 #, 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:642
+#: option.c:648
 #, fuzzy, c-format
 msgid "Valid options are:\n"
 msgstr "Opţiunile valide sunt:\n"
 
-#: option.c:683
+#: option.c:689
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr ""
 
-#: option.c:798
+#: option.c:804
 msgid "bad dhcp-option"
 msgstr "dhcp-option invalid"
 
-#: option.c:860
+#: option.c:866
 #, fuzzy
 msgid "bad IP address"
 msgstr "citesc %s - %d adrese"
 
-#: option.c:968
+#: option.c:974
 msgid "bad domain in dhcp-option"
 msgstr "domeniu DNS invalid în declaraţia dhcp-option"
 
-#: option.c:1034
+#: option.c:1040
 msgid "dhcp-option too long"
 msgstr "declararea dhcp-option este prea lungă"
 
-#: option.c:1043
+#: option.c:1049
 msgid "illegal dhcp-match"
 msgstr ""
 
-#: option.c:1087
+#: option.c:1093
 msgid "illegal repeated flag"
 msgstr ""
 
-#: option.c:1095
+#: option.c:1101
 msgid "illegal repeated keyword"
 msgstr ""
 
-#: option.c:1147 option.c:3030
+#: option.c:1153 option.c:3062
 #, fuzzy, c-format
 msgid "cannot access directory %s: %s"
 msgstr "nu pot citi %s: %s"
 
-#: option.c:1178 tftp.c:460
+#: option.c:1184 tftp.c:465
 #, fuzzy, c-format
 msgid "cannot access %s: %s"
 msgstr "nu pot citi %s: %s"
 
-#: option.c:1207
+#: option.c:1213
 msgid "setting log facility is not possible under Android"
 msgstr ""
 
-#: option.c:1216
+#: option.c:1222
 msgid "bad log facility"
 msgstr ""
 
-#: option.c:1265
+#: option.c:1271
 msgid "bad MX preference"
 msgstr "preferinţă MX invalidă"
 
-#: option.c:1270
+#: option.c:1276
 msgid "bad MX name"
 msgstr "nume MX invalid"
 
-#: option.c:1284
+#: option.c:1290
 msgid "bad MX target"
 msgstr "ţintă MX invalidă"
 
-#: option.c:1294
+#: option.c:1300
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:1296
+#: option.c:1302
 msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
 msgstr ""
 
-#: option.c:1597 option.c:1601
+#: option.c:1607 option.c:1611
 msgid "bad port"
 msgstr "port invalid"
 
-#: option.c:1620 option.c:1645
+#: option.c:1634 option.c:1665
 msgid "interface binding not supported"
 msgstr ""
 
-#: option.c:1791
+#: option.c:1645 option.c:2614
+#, fuzzy
+msgid "bad interface name"
+msgstr "nume MX invalid"
+
+#: option.c:1810
 #, fuzzy
 msgid "bad port range"
 msgstr "port invalid"
 
-#: option.c:1808
+#: option.c:1827
 msgid "bad bridge-interface"
 msgstr ""
 
-#: option.c:1850
+#: option.c:1870
 msgid "bad dhcp-range"
 msgstr "dhcp-range invalid"
 
-#: option.c:1878
+#: option.c:1898
 msgid "only one tag allowed"
 msgstr ""
 
-#: option.c:1925
+#: option.c:1945
 msgid "inconsistent DHCP range"
 msgstr "domeniu DHCP inconsistent"
 
-#: option.c:2019 option.c:2045
+#: option.c:2039 option.c:2067
 #, fuzzy
 msgid "bad hex constant"
 msgstr "dhcp-host invalid"
 
-#: option.c:2107
+#: option.c:2061
+msgid "cannot match tags in --dhcp-host"
+msgstr ""
+
+#: option.c:2129
 #, fuzzy
 msgid "bad DHCP host name"
 msgstr "nume MX invalid"
 
-#: option.c:2188
+#: option.c:2210
 #, fuzzy
 msgid "bad tag-if"
 msgstr "ţintă MX invalidă"
 
-#: option.c:2467 option.c:2752
+#: option.c:2499 option.c:2784
 msgid "invalid port number"
 msgstr "număr de port invalid"
 
-#: option.c:2529
+#: option.c:2561
 #, fuzzy
 msgid "bad dhcp-proxy address"
 msgstr "citesc %s - %d adrese"
 
-#: option.c:2569
+#: option.c:2601
 #, fuzzy
 msgid "invalid alias range"
 msgstr "pondere invalidă"
 
-#: option.c:2582
-#, fuzzy
-msgid "bad interface name"
-msgstr "nume MX invalid"
-
-#: option.c:2607
+#: option.c:2639
 msgid "bad CNAME"
 msgstr ""
 
-#: option.c:2612
+#: option.c:2644
 msgid "duplicate CNAME"
 msgstr ""
 
-#: option.c:2632
+#: option.c:2664
 #, fuzzy
 msgid "bad PTR record"
 msgstr "înregistrare SRV invalidă"
 
-#: option.c:2663
+#: option.c:2695
 #, fuzzy
 msgid "bad NAPTR record"
 msgstr "înregistrare SRV invalidă"
 
-#: option.c:2695
+#: option.c:2727
 msgid "bad TXT record"
 msgstr "înregistrare TXT invalidă"
 
-#: option.c:2738
+#: option.c:2770
 msgid "bad SRV record"
 msgstr "înregistrare SRV invalidă"
 
-#: option.c:2745
+#: option.c:2777
 msgid "bad SRV target"
 msgstr "ţintă SRV invalidă"
 
-#: option.c:2759
+#: option.c:2791
 msgid "invalid priority"
 msgstr "prioritate invalidă"
 
-#: option.c:2766
+#: option.c:2798
 msgid "invalid weight"
 msgstr "pondere invalidă"
 
-#: option.c:2785
+#: option.c:2817
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr ""
 
-#: option.c:2849
+#: option.c:2881
 msgid "missing \""
 msgstr "lipseşte \""
 
-#: option.c:2908
+#: option.c:2940
 msgid "bad option"
 msgstr "opţiune invalidă"
 
-#: option.c:2910
+#: option.c:2942
 msgid "extraneous parameter"
 msgstr "parametru nerecunoscut"
 
-#: option.c:2912
+#: option.c:2944
 msgid "missing parameter"
 msgstr "parametru lipsa"
 
-#: option.c:2916
+#: option.c:2948
 msgid "error"
 msgstr "eroare"
 
-#: option.c:2921
+#: option.c:2953
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr "%s la linia %d din %%s"
 
-#: option.c:2985 tftp.c:624
+#: option.c:3017 tftp.c:629
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "nu pot citi %s: %s"
 
-#: option.c:3151 option.c:3187
+#: option.c:3183 option.c:3219
 #, fuzzy, c-format
 msgid "read %s"
 msgstr "citesc %s"
 
-#: option.c:3239
+#: option.c:3271
 msgid "junk found in command line"
 msgstr ""
 
-#: option.c:3269
+#: option.c:3301
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "dnsmasq versiunea %s  %s\n"
 
-#: option.c:3270
+#: option.c:3302
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -804,71 +821,71 @@ msgstr ""
 "Opţiuni cu care a fost compilat %s\n"
 "\n"
 
-#: option.c:3271
+#: option.c:3303
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Acest program vine FĂRĂ NICI O GARANŢIE.\n"
 
-#: option.c:3272
+#: option.c:3304
 #, 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:3273
+#: option.c:3305
 #, 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:3284
+#: option.c:3316
 msgid "try --help"
 msgstr ""
 
-#: option.c:3286
+#: option.c:3318
 msgid "try -w"
 msgstr ""
 
-#: option.c:3289
+#: option.c:3321
 #, fuzzy, c-format
 msgid "bad command line options: %s"
 msgstr "opţiuni în linie de comandă invalide: %s."
 
-#: option.c:3330
+#: option.c:3362
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "nu pot citi numele maşinii: %s"
 
-#: option.c:3358
+#: option.c:3390
 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:3368
+#: option.c:3400
 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:3371 network.c:848 dhcp.c:814
+#: option.c:3403 network.c:848 dhcp.c:823
 #, fuzzy, c-format
 msgid "failed to read %s: %s"
 msgstr "nu pot citi %s: %s"
 
-#: option.c:3388
+#: option.c:3420
 #, 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:3409
+#: option.c:3441
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr ""
 
-#: option.c:3413
+#: option.c:3445
 msgid "syntax check OK"
 msgstr ""
 
-#: forward.c:461
+#: forward.c:471
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "serverul DNS %s refuză interogările recursive"
 
-#: forward.c:489
+#: forward.c:499
 #, c-format
 msgid "possible DNS-rebind attack detected: %s"
 msgstr ""
@@ -939,279 +956,288 @@ msgstr "folosim serverul DNS %s#%d"
 msgid "using nameserver %s#%d"
 msgstr "folosim serverul DNS %s#%d"
 
-#: dnsmasq.c:148
+#: dnsmasq.c:152
 #, fuzzy
 msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
 msgstr "DBus nu este disponibil: puneţi HAVE_DBUS in src/config.h"
 
-#: dnsmasq.c:153
+#: dnsmasq.c:157
+msgid "Cannot use --conntrack AND --query-port"
+msgstr ""
+
+#: dnsmasq.c:160
+#, fuzzy
+msgid "Conntrack support not available: set HAVE_CONNTRACK in src/config.h"
+msgstr "DBus nu este disponibil: puneţi HAVE_DBUS in src/config.h"
+
+#: dnsmasq.c:165
 msgid "asychronous logging is not available under Solaris"
 msgstr ""
 
-#: dnsmasq.c:158
+#: dnsmasq.c:170
 msgid "asychronous logging is not available under Android"
 msgstr ""
 
-#: dnsmasq.c:177
+#: dnsmasq.c:189
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "enumerarea interfeţelor a eşuat: %s"
 
-#: dnsmasq.c:185
+#: dnsmasq.c:197
 #, c-format
 msgid "unknown interface %s"
 msgstr "interfaţă necunoscută %s"
 
-#: dnsmasq.c:191
+#: dnsmasq.c:203
 #, c-format
 msgid "no interface with address %s"
 msgstr "nu exista interfaţă pentru adresa %s"
 
-#: dnsmasq.c:207 dnsmasq.c:678
+#: dnsmasq.c:219 dnsmasq.c:690
 #, c-format
 msgid "DBus error: %s"
 msgstr "eroare DBus: %s"
 
-#: dnsmasq.c:210
+#: dnsmasq.c:222
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr "DBus nu este disponibil: puneţi HAVE_DBUS in src/config.h"
 
-#: dnsmasq.c:236
+#: dnsmasq.c:248
 #, c-format
 msgid "unknown user or group: %s"
 msgstr ""
 
-#: dnsmasq.c:291
+#: dnsmasq.c:303
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr ""
 
-#: dnsmasq.c:455
+#: dnsmasq.c:467
 #, fuzzy, c-format
 msgid "started, version %s DNS disabled"
 msgstr "am pornit, versiunea %s memorie temporară dezactivată"
 
-#: dnsmasq.c:457
+#: dnsmasq.c:469
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "am ponit, versiunea %s memorie temporară %d"
 
-#: dnsmasq.c:459
+#: dnsmasq.c:471
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "am pornit, versiunea %s memorie temporară dezactivată"
 
-#: dnsmasq.c:461
+#: dnsmasq.c:473
 #, c-format
 msgid "compile time options: %s"
 msgstr "compilat cu opţiunile: %s"
 
-#: dnsmasq.c:467
+#: dnsmasq.c:479
 msgid "DBus support enabled: connected to system bus"
 msgstr "suportul DBus activ: sunt conectat la magistrala sistem"
 
-#: dnsmasq.c:469
+#: dnsmasq.c:481
 msgid "DBus support enabled: bus connection pending"
 msgstr "suportul DBus activ: aştept conexiunea la magistrală"
 
 # for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
-#: dnsmasq.c:474
+#: dnsmasq.c:486
 #, fuzzy, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr "încărcarea numelor din %s: %s a eşuat"
 
-#: dnsmasq.c:478
+#: dnsmasq.c:490
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "specific opţiunea --bind-interfaces din cauza limitărilor SO"
 
-#: dnsmasq.c:483
+#: dnsmasq.c:495
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "atenţie: interfaţa %s nu există momentan"
 
-#: dnsmasq.c:488
+#: dnsmasq.c:500
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:491
+#: dnsmasq.c:503
 #, fuzzy
 msgid "warning: no upstream servers configured"
 msgstr "configurăm serverele superioare prin Dbus"
 
-#: dnsmasq.c:495
+#: dnsmasq.c:507
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr ""
 
-#: dnsmasq.c:508
+#: dnsmasq.c:520
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr "DHCP, împrumuturi statice doar către  %.0s%s, timpul reînoirii %s"
 
-#: dnsmasq.c:510
+#: dnsmasq.c:522
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr ""
 
-#: dnsmasq.c:511
+#: dnsmasq.c:523
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, domeniu IP %s -- %s, timpul reînoirii %s"
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 msgid "root is "
 msgstr ""
 
-#: dnsmasq.c:526
+#: dnsmasq.c:538
 #, fuzzy
 msgid "enabled"
 msgstr "dezactivat"
 
-#: dnsmasq.c:528
+#: dnsmasq.c:540
 msgid "secure mode"
 msgstr ""
 
-#: dnsmasq.c:554
+#: dnsmasq.c:566
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr ""
 
-#: dnsmasq.c:680
+#: dnsmasq.c:692
 msgid "connected to system DBus"
 msgstr "magistrala sistem Dbus conectată"
 
-#: dnsmasq.c:775
+#: dnsmasq.c:787
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr ""
 
-#: dnsmasq.c:778
+#: dnsmasq.c:790
 #, fuzzy, c-format
 msgid "failed to create helper: %s"
 msgstr "nu pot citi %s: %s"
 
-#: dnsmasq.c:781
+#: dnsmasq.c:793
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr ""
 
 # for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
-#: dnsmasq.c:785
+#: dnsmasq.c:797
 #, 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:790
+#: dnsmasq.c:802
 #, fuzzy, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr "încărcarea numelor din %s: %s a eşuat"
 
-#: dnsmasq.c:793
+#: dnsmasq.c:805
 #, fuzzy, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr "nu pot citi %s: %s"
 
-#: dnsmasq.c:796
+#: dnsmasq.c:808
 #, fuzzy, c-format
 msgid "cannot open %s: %s"
 msgstr "nu pot deschide %s:%s"
 
-#: dnsmasq.c:851
+#: dnsmasq.c:863
 #, c-format
 msgid "child process killed by signal %d"
 msgstr ""
 
-#: dnsmasq.c:855
+#: dnsmasq.c:867
 #, c-format
 msgid "child process exited with status %d"
 msgstr ""
 
-#: dnsmasq.c:859
+#: dnsmasq.c:871
 #, fuzzy, c-format
 msgid "failed to execute %s: %s"
 msgstr "accesarea serverului %s a eşuat: %s"
 
-#: dnsmasq.c:903
+#: dnsmasq.c:915
 msgid "exiting on receipt of SIGTERM"
 msgstr "am primit SIGTERM, am terminat"
 
-#: dnsmasq.c:931
+#: dnsmasq.c:943
 #, fuzzy, c-format
 msgid "failed to access %s: %s"
 msgstr "accesarea serverului %s a eşuat: %s"
 
-#: dnsmasq.c:961
+#: dnsmasq.c:973
 #, c-format
 msgid "reading %s"
 msgstr "citesc %s"
 
-#: dnsmasq.c:972
+#: dnsmasq.c:984
 #, fuzzy, c-format
 msgid "no servers found in %s, will retry"
 msgstr "nu s-a găsit nici un criteriu de căutare în %s"
 
-#: dhcp.c:40
+#: dhcp.c:39
 #, c-format
 msgid "cannot create DHCP socket: %s"
 msgstr "nu pot creea socket DHCP: %s"
 
-#: dhcp.c:52
+#: dhcp.c:51
 #, c-format
 msgid "failed to set options on DHCP socket: %s"
 msgstr "configurarea opţiunilor socketului DHCP a eşuat: %s"
 
-#: dhcp.c:65
+#: dhcp.c:64
 #, fuzzy, c-format
 msgid "failed to set SO_REUSE{ADDR|PORT} on DHCP socket: %s"
 msgstr "configurarea SO_REUSEADDR pe socket-ul DHCP a eşuat: %s"
 
-#: dhcp.c:77
+#: dhcp.c:76
 #, c-format
 msgid "failed to bind DHCP server socket: %s"
 msgstr "activarea socket-ului server-ului DHCP a eşuat: %s"
 
-#: dhcp.c:103
+#: dhcp.c:102
 #, c-format
 msgid "cannot create ICMP raw socket: %s."
 msgstr "nu pot creea socket ICMP raw: %s."
 
-#: dhcp.c:281
+#: dhcp.c:278
 #, c-format
 msgid "DHCP packet received on %s which has no address"
 msgstr ""
 
-#: dhcp.c:445
+#: dhcp.c:442
 #, 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:852
+#: dhcp.c:861
 #, c-format
 msgid "bad line at %s line %d"
 msgstr "linie invalidă în %s rândul %d"
 
-#: dhcp.c:895
+#: dhcp.c:904
 #, c-format
 msgid "ignoring %s line %d, duplicate name or IP address"
 msgstr ""
 
-#: dhcp.c:978
+#: dhcp.c:987
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
 
-#: dhcp.c:981
+#: dhcp.c:990
 #, fuzzy, c-format
 msgid "duplicate IP address %s in %s."
 msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
 
-#: dhcp.c:1024
+#: dhcp.c:1033
 #, c-format
 msgid "%s has more than one address in hostsfile, using %s for DHCP"
 msgstr ""
 
-#: dhcp.c:1029
+#: dhcp.c:1038
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "adresă IP duplicat %s (%s) în declaraţia dhcp-config."
@@ -1240,178 +1266,183 @@ msgstr ""
 msgid "failed to write %s: %s (retry in %us)"
 msgstr "nu pot citi %s: %s"
 
-#: rfc2131.c:315
+#: rfc2131.c:342
 #, 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:316
+#: rfc2131.c:343
 msgid "with subnet selector"
 msgstr "cu selectorul de subreţea"
 
-#: rfc2131.c:316
+#: rfc2131.c:343
 msgid "via"
 msgstr "prin"
 
-#: rfc2131.c:331
+#: rfc2131.c:355
 #, fuzzy, c-format
 msgid "%u available DHCP subnet: %s/%s"
 msgstr "nici un domeniu de adrese disponibil pentru cererea DHCP %s %s"
 
-#: rfc2131.c:334
+#: rfc2131.c:358
 #, c-format
 msgid "%u available DHCP range: %s -- %s"
 msgstr ""
 
-#: rfc2131.c:363
+#: rfc2131.c:387
 msgid "disabled"
 msgstr "dezactivat"
 
-#: rfc2131.c:404 rfc2131.c:916 rfc2131.c:1288
+#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337
 msgid "ignored"
 msgstr "ignorat"
 
-#: rfc2131.c:419 rfc2131.c:1135
+#: rfc2131.c:443 rfc2131.c:1183
 msgid "address in use"
 msgstr "adresa este folosită"
 
-#: rfc2131.c:433 rfc2131.c:970
+#: rfc2131.c:457 rfc2131.c:999
 msgid "no address available"
 msgstr "nici o adresă disponibilă"
 
-#: rfc2131.c:440 rfc2131.c:1098
+#: rfc2131.c:464 rfc2131.c:1146
 msgid "wrong network"
 msgstr "reţea greşită"
 
-#: rfc2131.c:454
+#: rfc2131.c:479
 msgid "no address configured"
 msgstr "adresă lipsă"
 
-#: rfc2131.c:460 rfc2131.c:1148
+#: rfc2131.c:485 rfc2131.c:1196
 msgid "no leases left"
 msgstr "nu mai am de unde să împrumut"
 
-#: rfc2131.c:545
+#: rfc2131.c:570
 #, c-format
 msgid "%u client provides name: %s"
 msgstr ""
 
-#: rfc2131.c:700
+#: rfc2131.c:725
 #, fuzzy, c-format
 msgid "%u vendor class: %s"
 msgstr "eroare DBus: %s"
 
-#: rfc2131.c:702
+#: rfc2131.c:727
 #, fuzzy, c-format
 msgid "%u user class: %s"
 msgstr "eroare DBus: %s"
 
-#: rfc2131.c:761
+#: rfc2131.c:786
 msgid "PXE BIS not supported"
 msgstr ""
 
-#: rfc2131.c:886
+#: rfc2131.c:915
 #, fuzzy, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "dezactivăm adresele DHCP statice %s"
 
-#: rfc2131.c:907
+#: rfc2131.c:936
 msgid "unknown lease"
 msgstr "împrumut necunoscut"
 
-#: rfc2131.c:939
+#: rfc2131.c:968
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:949
+#: rfc2131.c:978
 #, c-format
 msgid "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:952
+#: rfc2131.c:981
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:968 rfc2131.c:1141
+#: rfc2131.c:997 rfc2131.c:1189
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:1037
+#: rfc2131.c:1084
 msgid "wrong server-ID"
 msgstr ""
 
-#: rfc2131.c:1055
+#: rfc2131.c:1103
 msgid "wrong address"
 msgstr "adresă greşită"
 
-#: rfc2131.c:1073
+#: rfc2131.c:1121
 msgid "lease not found"
 msgstr "împrumutul nu a fost găsit"
 
-#: rfc2131.c:1106
+#: rfc2131.c:1154
 msgid "address not available"
 msgstr "adresă indisponibilă"
 
-#: rfc2131.c:1117
+#: rfc2131.c:1165
 msgid "static lease available"
 msgstr "împrumut static este disponibil"
 
-#: rfc2131.c:1121
+#: rfc2131.c:1169
 msgid "address reserved"
 msgstr "adresă rezervată"
 
-#: rfc2131.c:1129
+#: rfc2131.c:1177
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr ""
 
-#: rfc2131.c:1710
+#: rfc2131.c:1746
 #, c-format
 msgid "%u tags: %s"
 msgstr ""
 
-#: rfc2131.c:1723
+#: rfc2131.c:1774
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr ""
 
-#: rfc2131.c:1732
+#: rfc2131.c:1783
 #, fuzzy, c-format
 msgid "%u server name: %s"
 msgstr "eroare DBus: %s"
 
-#: rfc2131.c:1746
+#: rfc2131.c:1791
 #, fuzzy, c-format
 msgid "%u next server: %s"
 msgstr "eroare DBus: %s"
 
-#: rfc2131.c:1749
+#: rfc2131.c:1794
 #, c-format
 msgid "%u broadcast response"
 msgstr ""
 
-#: rfc2131.c:1812
+#: rfc2131.c:1857
 #, 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:2058
+#: rfc2131.c:2097
 msgid "PXE menu too large"
 msgstr ""
 
-#: rfc2131.c:2171
+#: rfc2131.c:2253
+#, c-format
+msgid "Ignoring duplicate dhcp-option %d"
+msgstr ""
+
+#: rfc2131.c:2257
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr ""
 
-#: rfc2131.c:2189
+#: rfc2131.c:2275
 #, fuzzy, c-format
 msgid "%u requested options: %s"
 msgstr "compilat cu opţiunile: %s"
 
-#: rfc2131.c:2456
+#: rfc2131.c:2550
 #, c-format
 msgid "cannot send RFC3925 option: too many options for enterprise number %d"
 msgstr ""
@@ -1438,59 +1469,64 @@ msgstr "configurăm serverele superioare prin Dbus"
 msgid "could not register a DBus message handler"
 msgstr "nu pot activa o interfaţă de mesaje DBus"
 
-#: bpf.c:217
+#: bpf.c:224
 #, c-format
 msgid "cannot create DHCP BPF socket: %s"
 msgstr "nu pot creea socket DHCP BPF: %s"
 
-#: bpf.c:245
+#: bpf.c:252
 #, fuzzy, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "cerere DHCP pentru dispozitiv nesuportat (%d) recepţionată prin %s"
 
-#: tftp.c:281
+#: tftp.c:286
 msgid "unable to get free port for TFTP"
 msgstr ""
 
-#: tftp.c:296
+#: tftp.c:301
 #, c-format
 msgid "unsupported request from %s"
 msgstr ""
 
-#: tftp.c:406
+#: tftp.c:411
 #, fuzzy, c-format
 msgid "file %s not found"
 msgstr "împrumutul nu a fost găsit"
 
-#: tftp.c:522
+#: tftp.c:527
 #, c-format
 msgid "error %d %s received from %s"
 msgstr ""
 
-#: tftp.c:554
+#: tftp.c:559
 #, fuzzy, c-format
 msgid "failed sending %s to %s"
 msgstr "nu pot citi %s: %s"
 
-#: tftp.c:568
+#: tftp.c:573
 #, c-format
 msgid "sent %s to %s"
 msgstr ""
 
-#: log.c:177
+#: log.c:190
 #, c-format
 msgid "overflow: %d log entries lost"
 msgstr ""
 
-#: log.c:254
+#: log.c:267
 #, c-format
 msgid "log failed: %s"
 msgstr ""
 
-#: log.c:462
+#: log.c:471
 msgid "FAILED to start up"
 msgstr "pornirea A EŞUAT"
 
+#: conntrack.c:65
+#, c-format
+msgid "Conntrack connection mark retrieval failed: %s"
+msgstr ""
+
 #~ msgid "TXT record string too long"
 #~ msgstr "şirul de caractere pentru înregistrarea TXT este prea lung"
 
index 1183f3bdfd55dfb8c88be45d8af865d234e1ea4b..482ff5d40d8ba1f2561942f9ebfa20e10d2d51ac 100644 (file)
@@ -221,7 +221,7 @@ triggering dial-on-demand internet links.
 Sending SIGHUP to the dnsmasq process will cause it to empty its cache and 
 then re-load <TT>/etc/hosts</TT> and <TT>/etc/resolv.conf</TT>.
 <P> Sending SIGUSR1 (killall -10 dnsmasq) to the dnsmasq process will
-cause to to write cache usage statisticss to the log, typically
+cause to write cache usage statisticss to the log, typically
 <TT>/var/log/syslog</TT> or <TT>/var/log/messages</TT>.
 <P> The <TT>log-queries</TT> option tells dnsmasq to verbosely log the queries
 it is handling and causes SIGUSR1 to trigger a complete dump of the
index 9a77426743a1586069003c1df64e598505bc682d..cffcf6740402a36a28f6b65e9aa98f825446ba08 100644 (file)
--- a/src/bpf.c
+++ b/src/bpf.c
@@ -35,6 +35,13 @@ static struct iovec ifreq = {
 #include <net/if_dl.h>
 #include <netinet/if_ether.h>
 
+#ifndef SA_SIZE
+#define SA_SIZE(sa)                                             \
+    (  (!(sa) || ((struct sockaddr *)(sa))->sa_len == 0) ?      \
+        sizeof(long)            :                               \
+        1 + ( (((struct sockaddr *)(sa))->sa_len - 1) | (sizeof(long) - 1) ) )
+#endif
+
 int arp_enumerate(void *parm, int (*callback)())
 {
   int mib[6];
index 77c1972c8859879d5842c5721d722b29f9bc6c53..11ccc0d2df5d76deb55d7bab01a9ef209c496e72 100644 (file)
@@ -922,6 +922,21 @@ char *get_domain(struct in_addr addr)
 }
 
 #ifdef HAVE_DHCP
+struct in_addr a_record_from_hosts(char *name, time_t now)
+{
+  struct crec *crecp = NULL;
+  struct in_addr ret;
+  
+  while ((crecp = cache_find_by_name(crecp, name, now, F_IPV4)))
+    if (crecp->flags & F_HOSTS)
+      return *(struct in_addr *)&crecp->addr;
+
+  my_syslog(MS_DHCP | LOG_WARNING, _("No IPv4 address found for %s"), name);
+  
+  ret.s_addr = 0;
+  return ret;
+}
+
 void cache_unhash_dhcp(void)
 {
   struct crec *cache, **up;
index 7394253b1bfc8fd85962c0ebfb1a3c4c5e5990fa..a988770d77e5aea55e16459751c891fa1604dd77 100644 (file)
@@ -14,7 +14,7 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#define VERSION "2.57"
+#define VERSION "2.58"
 
 #define FTABSIZ 150 /* max number of outstanding requests (default) */
 #define MAX_PROCS 20 /* max no children for TCP requests */
@@ -134,6 +134,12 @@ HAVE_IDN
          included when internationalisation support is built, using the 
         *-i18n makefile targets, even if HAVE_IDN is not explicitly set.
 
+HAVE_CONNTRACK
+   define this to include code which propogates conntrack marks from
+   incoming DNS queries to the corresponding upstream queries. This adds
+   a build-dependency on libnetfilter_conntrack, but the resulting binary will
+   still run happily on a kernel without conntrack support.
+
 NOTES:
    For Linux you should define 
       HAVE_LINUX_NETWORK
@@ -159,6 +165,7 @@ NOTES:
 /* #define HAVE_BROKEN_RTC */
 /* #define HAVE_DBUS */
 /* #define HAVE_IDN */
+/* #define HAVE_CONNTRACK */
 
 /* Allow TFTP to be disabled with COPTS=-DNO_TFTP */
 #ifdef NO_TFTP
diff --git a/src/conntrack.c b/src/conntrack.c
new file mode 100644 (file)
index 0000000..4142c51
--- /dev/null
@@ -0,0 +1,90 @@
+/* dnsmasq is Copyright (c) 2000-2011 Simon Kelley
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 dated June, 1991, or
+   (at your option) version 3 dated 29 June, 2007.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+     
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "dnsmasq.h"
+
+#ifdef HAVE_CONNTRACK
+
+#include <libnetfilter_conntrack/libnetfilter_conntrack.h>
+
+static int gotit = 0; /* yuck */
+
+static int callback(enum nf_conntrack_msg_type type, struct nf_conntrack *ct, void *data);
+
+int get_incoming_mark(union mysockaddr *peer_addr, struct all_addr *local_addr, int istcp, unsigned int *markp)
+{
+  struct nf_conntrack *ct;
+  struct nfct_handle *h;
+  
+  gotit = 0;
+  
+  if ((ct = nfct_new())) 
+    {
+      nfct_set_attr_u8(ct, ATTR_L4PROTO, istcp ? IPPROTO_TCP : IPPROTO_UDP);
+      nfct_set_attr_u16(ct, ATTR_PORT_DST, htons(daemon->port));
+      
+#ifdef HAVE_IPV6
+      if (peer_addr->sa.sa_family == AF_INET6)
+       {
+         nfct_set_attr_u8(ct, ATTR_L3PROTO, AF_INET6);
+         nfct_set_attr(ct, ATTR_IPV6_SRC, peer_addr->in6.sin6_addr.s6_addr);
+         nfct_set_attr_u16(ct, ATTR_PORT_SRC, peer_addr->in6.sin6_port);
+         nfct_set_attr(ct, ATTR_IPV6_DST, local_addr->addr.addr6.s6_addr);
+       }
+      else
+#endif
+       {
+         nfct_set_attr_u8(ct, ATTR_L3PROTO, AF_INET);
+         nfct_set_attr_u32(ct, ATTR_IPV4_SRC, peer_addr->in.sin_addr.s_addr);
+         nfct_set_attr_u16(ct, ATTR_PORT_SRC, peer_addr->in.sin_port);
+         nfct_set_attr_u32(ct, ATTR_IPV4_DST, local_addr->addr.addr4.s_addr);
+       }
+      
+      
+      if ((h = nfct_open(CONNTRACK, 0))) 
+       {
+         nfct_callback_register(h, NFCT_T_ALL, callback, (void *)markp);  
+         if (nfct_query(h, NFCT_Q_GET, ct) == -1)
+           {
+             static int warned = 0;
+             if (!warned)
+               {
+                 my_syslog(LOG_ERR, _("Conntrack connection mark retrieval failed: %s"), strerror(errno));
+                 warned = 1;
+               }
+           }
+         nfct_close(h);  
+       }
+      nfct_destroy(ct);
+    }
+
+  return gotit;
+}
+
+static int callback(enum nf_conntrack_msg_type type, struct nf_conntrack *ct, void *data)
+{
+  unsigned int *ret = (unsigned int *)data;
+  *ret = nfct_get_attr_u32(ct, ATTR_MARK);
+  (void)type; /* eliminate warning */
+  gotit = 1;
+
+  return NFCT_CB_CONTINUE;
+}
+
+#endif
+  
+
+
index 29ddf24495731b6800abcce1f784195571cf03f2..28a3dac7cf43c7d245a930f8d1fc6b0688c37f53 100644 (file)
@@ -19,7 +19,6 @@
 #ifdef HAVE_DHCP
 
 struct iface_param {
-  struct in_addr relay, primary;
   struct dhcp_context *current;
   int ind;
 };
@@ -269,8 +268,6 @@ void dhcp_packet(time_t now, int pxe_fd)
   for (context = daemon->dhcp; context; context = context->next)
     context->current = context;
   
-  parm.relay = mess->giaddr;
-  parm.primary = iface_addr;
   parm.current = NULL;
   parm.ind = iface_index;
 
@@ -299,7 +296,7 @@ void dhcp_packet(time_t now, int pxe_fd)
     return;
   lease_prune(NULL, now); /* lose any expired leases */
   iov.iov_len = dhcp_reply(parm.current, ifr.ifr_name, iface_index, (size_t)sz, 
-                          now, unicast_dest, &is_inform, pxe_fd);
+                          now, unicast_dest, &is_inform, pxe_fd, iface_addr);
   lease_update_file(now);
   lease_update_dns();
     
@@ -448,38 +445,27 @@ static int complete_context(struct in_addr local, int if_index,
        context->netmask = netmask;
       }
       
-      if (context->netmask.s_addr)
+      if (context->netmask.s_addr != 0 &&
+         is_same_net(local, context->start, context->netmask) &&
+         is_same_net(local, context->end, context->netmask))
        {
-         if (is_same_net(local, context->start, context->netmask) &&
-             is_same_net(local, context->end, context->netmask))
+         /* link it onto the current chain if we've not seen it before */
+         if (if_index == param->ind && context->current == context)
            {
-             /* link it onto the current chain if we've not seen it before */
-             if (if_index == param->ind && context->current == context)
-               {
-                 context->router = local;
-                 context->local = local;
-                 context->current = param->current;
-                 param->current = context;
-               }
-             
-             if (!(context->flags & CONTEXT_BRDCAST))
-               {
-                 if (is_same_net(broadcast, context->start, context->netmask))
-                   context->broadcast = broadcast;
-                 else 
-                   context->broadcast.s_addr  = context->start.s_addr | ~context->netmask.s_addr;
-               }
-           }   
-         else if (param->relay.s_addr && is_same_net(param->relay, context->start, context->netmask))
+             context->router = local;
+             context->local = local;
+             context->current = param->current;
+             param->current = context;
+           }
+         
+         if (!(context->flags & CONTEXT_BRDCAST))
            {
-             context->router = param->relay;
-             context->local = param->primary;
-             /* fill in missing broadcast addresses for relayed ranges */
-             if (!(context->flags & CONTEXT_BRDCAST))
+             if (is_same_net(broadcast, context->start, context->netmask))
+               context->broadcast = broadcast;
+             else 
                context->broadcast.s_addr  = context->start.s_addr | ~context->netmask.s_addr;
            }
-
-       }
+       }               
     }
 
   return 1;
@@ -505,7 +491,7 @@ struct dhcp_context *address_available(struct dhcp_context *context,
       start = ntohl(tmp->start.s_addr);
       end = ntohl(tmp->end.s_addr);
 
-      if (!(tmp->flags & CONTEXT_STATIC) &&
+      if (!(tmp->flags & (CONTEXT_STATIC | CONTEXT_PROXY)) &&
          addr >= start &&
          addr <= end &&
          match_netid(tmp->filter, netids, 1))
@@ -540,7 +526,8 @@ struct dhcp_context *narrow_context(struct dhcp_context *context,
       if (!tmp)
        for (tmp = context; tmp; tmp = tmp->current)
          if (match_netid(tmp->filter, netids, 1) &&
-             is_same_net(taddr, tmp->start, tmp->netmask))
+             is_same_net(taddr, tmp->start, tmp->netmask) &&
+             !(tmp->flags & CONTEXT_PROXY))
            break;
     }
   
@@ -626,16 +613,22 @@ int address_allocate(struct dhcp_context *context,
   
   for (pass = 0; pass <= 1; pass++)
     for (c = context; c; c = c->current)
-      if (c->flags & CONTEXT_STATIC)
+      if (c->flags & (CONTEXT_STATIC | CONTEXT_PROXY))
        continue;
       else if (!match_netid(c->filter, netids, pass))
        continue;
       else
        {
-         /* pick a seed based on hwaddr then iterate until we find a free address. */
-         start.s_addr = addr.s_addr = 
-           htonl(ntohl(c->start.s_addr) + 
-                 ((j + c->addr_epoch) % (1 + ntohl(c->end.s_addr) - ntohl(c->start.s_addr))));
+         if (option_bool(OPT_CONSEC_ADDR))
+           /* seed is largest extant lease addr in this context */
+           start = lease_find_max_addr(c);
+         else
+           /* pick a seed based on hwaddr */
+           start.s_addr = htonl(ntohl(c->start.s_addr) + 
+                                ((j + c->addr_epoch) % (1 + ntohl(c->end.s_addr) - ntohl(c->start.s_addr))));
+
+         /* iterate until we find a free address. */
+         addr = start;
          
          do {
            /* eliminate addresses in use by the server. */
@@ -660,9 +653,6 @@ int address_allocate(struct dhcp_context *context,
                
                *addrp = addr;
 
-               if (option_bool(OPT_NO_PING))
-                 return 1;
-               
                /* check if we failed to ping addr sometime in the last
                   PING_CACHE_TIME seconds. If so, assume the same situation still exists.
                   This avoids problems when a stupid client bangs
@@ -672,33 +662,51 @@ int address_allocate(struct dhcp_context *context,
                for (count = 0, r = daemon->ping_results; r; r = r->next)
                  if (difftime(now, r->time) >  (float)PING_CACHE_TIME)
                    victim = r; /* old record */
-                 else if (++count == max || r->addr.s_addr == addr.s_addr)
-                   return 1;
-                   
-               if (icmp_ping(addr))
-                 /* address in use: perturb address selection so that we are
-                    less likely to try this address again. */
-                 c->addr_epoch++;
-               else
+                 else 
+                   {
+                     count++;
+                     if (r->addr.s_addr == addr.s_addr)
+                       {
+                         /* consec-ip mode: we offered this address for another client
+                            (different hash) recently, don't offer it to this one. */
+                         if (option_bool(OPT_CONSEC_ADDR) && r->hash != j)
+                           break;
+                         
+                         return 1;
+                       }
+                   }
+
+               if (!r) 
                  {
-                   /* at this point victim may hold an expired record */
-                   if (!victim)
+                   if ((count < max) && !option_bool(OPT_NO_PING) && icmp_ping(addr))
                      {
-                       if ((victim = whine_malloc(sizeof(struct ping_result))))
-                         {
-                           victim->next = daemon->ping_results;
-                           daemon->ping_results = victim;
-                         }
+                       /* address in use: perturb address selection so that we are
+                          less likely to try this address again. */
+                       if (!option_bool(OPT_CONSEC_ADDR))
+                         c->addr_epoch++;
                      }
-                   
-                   /* record that this address is OK for 30s 
-                      without more ping checks */
-                   if (victim)
+                   else
                      {
-                       victim->addr = addr;
-                       victim->time = now;
+                       /* at this point victim may hold an expired record */
+                       if (!victim)
+                         {
+                           if ((victim = whine_malloc(sizeof(struct ping_result))))
+                             {
+                               victim->next = daemon->ping_results;
+                               daemon->ping_results = victim;
+                             }
+                         }
+                       
+                       /* record that this address is OK for 30s 
+                          without more ping checks */
+                       if (victim)
+                         {
+                           victim->addr = addr;
+                           victim->time = now;
+                           victim->hash = j;
+                         }
+                       return 1;
                      }
-                   return 1;
                  }
              }
 
@@ -709,6 +717,7 @@ int address_allocate(struct dhcp_context *context,
            
          } while (addr.s_addr != start.s_addr);
        }
+
   return 0;
 }
 
index bc18e798746869d5b55030da665757e57c4d1ac0..456a997d01f3d5b38e6ae523db3d40c2dc7a45dd 100644 (file)
@@ -56,7 +56,7 @@ struct dns_header {
   u16 id;
   u8  hb3,hb4;
   u16 qdcount,ancount,nscount,arcount;
-} ;
+};
 
 #define HB3_QR       0x80
 #define HB3_OPCODE   0x78
index 827b0dcdbca9d8f09bc529d3d5b2733449dcdb29..821b7f0ab2889d61a6fbe7a44de12b7e54849a5d 100644 (file)
@@ -40,7 +40,7 @@ static char *compile_opts =
 #ifndef LOCALEDIR
 "no-"
 #endif
-"I18N "
+"i18n "
 #ifndef HAVE_DHCP
 "no-"
 #endif
@@ -52,6 +52,10 @@ static char *compile_opts =
 "no-"
 #endif
 "TFTP "
+#ifndef HAVE_CONNTRACK
+"no-"
+#endif
+"conntrack "
 #if !defined(LOCALEDIR) && !defined(HAVE_IDN)
 "no-"
 #endif 
@@ -148,6 +152,14 @@ int main (int argc, char **argv)
     die(_("TFTP server not available: set HAVE_TFTP in src/config.h"), NULL, EC_BADCONF);
 #endif
 
+#ifdef HAVE_CONNTRACK
+  if (option_bool(OPT_CONNTRACK) && (daemon->query_port != 0 || daemon->osport))
+    die (_("Cannot use --conntrack AND --query-port"), NULL, EC_BADCONF); 
+#else
+  if (option_bool(OPT_CONNTRACK))
+    die(_("Conntrack support not available: set HAVE_CONNTRACK in src/config.h"), NULL, EC_BADCONF);
+#endif
+
 #ifdef HAVE_SOLARIS_NETWORK
   if (daemon->max_logs != 0)
     die(_("asychronous logging is not available under Solaris"), NULL, EC_BADCONF);
@@ -1147,9 +1159,6 @@ static void check_dns_listeners(fd_set *set, time_t now)
              unsigned char *buff;
              struct server *s; 
              int flags;
-             struct in_addr dst_addr_4;
-             
-             dst_addr_4.s_addr = 0;
              
 #ifndef NO_FORK
              /* Arrange for SIGALARM after CHILD_LIFETIME seconds to
@@ -1168,10 +1177,7 @@ static void check_dns_listeners(fd_set *set, time_t now)
              if ((flags = fcntl(confd, F_GETFL, 0)) != -1)
                fcntl(confd, F_SETFL, flags & ~O_NONBLOCK);
              
-             if (listener->family == AF_INET)
-               dst_addr_4 = iface->addr.in.sin_addr;
-             
-             buff = tcp_request(confd, now, dst_addr_4, iface->netmask);
+             buff = tcp_request(confd, now, &iface->addr, iface->netmask);
               
              shutdown(confd, SHUT_RDWR);
              close(confd);
index a386a3108a05f03bb58d3784c89c073c3e2c82ec..3bf7a44a100f561b86e0b239acfebc7e709fc4f1 100644 (file)
@@ -202,7 +202,9 @@ struct event_desc {
 #define OPT_NO_REBIND      31
 #define OPT_ADD_MAC        32
 #define OPT_DNSSEC         33
-#define OPT_LAST           34
+#define OPT_CONSEC_ADDR    34
+#define OPT_CONNTRACK      35
+#define OPT_LAST           36
 
 /* extra flags for my_syslog, we use a couple of facilities since they are known 
    not to occupy the same bits as priorities, no matter how syslog.h is set up. */
@@ -309,7 +311,6 @@ struct crec {
 #define F_RRNAME    (1u<<17)
 #define F_SERVER    (1u<<18)
 #define F_QUERY     (1u<<19)
-#define F_NSRR      (1u<<20)
 
 
 /* struct sockaddr is not large enough to hold any address,
@@ -517,9 +518,10 @@ struct dhcp_opt {
 #define DHOPT_HEX              512
 #define DHOPT_VENDOR_MATCH    1024
 #define DHOPT_RFC3925         2048
+#define DHOPT_TAGOK           4096
 
 struct dhcp_boot {
-  char *file, *sname;
+  char *file, *sname, *tftp_sname;
   struct in_addr next_server;
   struct dhcp_netid *netid;
   struct dhcp_boot *next;
@@ -585,6 +587,7 @@ struct dhcp_context {
 struct ping_result {
   struct in_addr addr;
   time_t time;
+  unsigned int hash;
   struct ping_result *next;
 };
 
@@ -742,6 +745,7 @@ struct crec *cache_insert(char *name, struct all_addr *addr,
                          time_t now, unsigned long ttl, unsigned short flags);
 void cache_reload(void);
 void cache_add_dhcp_entry(char *host_name, struct in_addr *host_address, time_t ttd);
+struct in_addr a_record_from_hosts(char *name, time_t now);
 void cache_unhash_dhcp(void);
 void dump_cache(time_t now);
 char *cache_get_name(struct crec *crecp);
@@ -813,7 +817,7 @@ struct hostsfile *expand_filelist(struct hostsfile *list);
 void reply_query(int fd, int family, time_t now);
 void receive_query(struct listener *listen, time_t now);
 unsigned char *tcp_request(int confd, time_t now,
-                          struct in_addr local_addr, struct in_addr netmask);
+                          union mysockaddr *local_addr, struct in_addr netmask);
 void server_gone(struct server *server);
 struct frec *get_new_frec(time_t now, int *wait);
 
@@ -875,6 +879,7 @@ void lease_set_interface(struct dhcp_lease *lease, int interface);
 struct dhcp_lease *lease_find_by_client(unsigned char *hwaddr, int hw_len, int hw_type,  
                                        unsigned char *clid, int clid_len);
 struct dhcp_lease *lease_find_by_addr(struct in_addr addr);
+struct in_addr lease_find_max_addr(struct dhcp_context *context);
 void lease_prune(struct dhcp_lease *target, time_t now);
 void lease_update_from_configs(void);
 int do_script_run(time_t now);
@@ -884,7 +889,7 @@ void rerun_scripts(void);
 /* 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, int pxe_fd);
+                 size_t sz, time_t now, int unicast_dest, int *is_inform, int pxe_fd, struct in_addr fallback);
 unsigned char *extended_hwaddr(int hwtype, int hwlen, unsigned char *hwaddr, 
                               int clid_len, unsigned char *clid, int *len_out);
 #endif
@@ -938,3 +943,9 @@ int helper_buf_empty(void);
 void tftp_request(struct listener *listen, time_t now);
 void check_tftp_listeners(fd_set *rset, time_t now);
 #endif
+
+/* conntrack.c */
+#ifdef HAVE_CONNTRACK
+int get_incoming_mark(union mysockaddr *peer_addr, struct all_addr *local_addr,
+                     int istcp, unsigned int *markp);
+#endif
index 92bc6b0e7f72d61f47e06b14e3229af1352f757c..bdf6bfb3840d8b3709cb94092138f4d8aa56886b 100644 (file)
@@ -207,10 +207,10 @@ static unsigned int search_servers(time_t now, struct all_addr **addrpp,
          }
       }
   
-  if (flags == 0 && !(qtype & F_NSRR) && 
+  if (flags == 0 && !(qtype & F_QUERY) && 
       option_bool(OPT_NODOTS_LOCAL) && !strchr(qdomain, '.') && namelen != 0)
-    /* don't forward simple names, make exception for NS queries and empty name. */
-    flags = F_NXDOMAIN;
+    /* don't forward A or AAAA queries for simple names, except the empty name */
+    flags = F_NOERR;
   
   if (flags == F_NXDOMAIN && check_for_local_domain(qdomain, now))
     flags = F_NOERR;
@@ -243,7 +243,7 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr,
   unsigned int flags = 0;
   unsigned int gotname = extract_request(header, plen, daemon->namebuff, NULL);
   struct server *start = NULL;
-    
+  
   /* RFC 4035: sect 4.6 para 2 */
   header->hb4 &= ~HB4_AD;
   
@@ -366,6 +366,16 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr,
                      daemon->rfd_save = forward->rfd4;
                      fd = forward->rfd4->fd;
                    }
+
+#ifdef HAVE_CONNTRACK
+                 /* Copy connection mark of incoming query to outgoing connection. */
+                 if (option_bool(OPT_CONNTRACK))
+                   {
+                     unsigned int mark;
+                     if (get_incoming_mark(udpaddr, dst_addr, 0, &mark))
+                       setsockopt(fd, SOL_SOCKET, SO_MARK, &mark, sizeof(unsigned int));
+                   }
+#endif
                }
              
              if (sendto(fd, (char *)header, plen, 0,
@@ -797,7 +807,7 @@ void receive_query(struct listener *listen, time_t now)
    about resources for debug mode, when the fork is suppressed: that's
    done by the caller. */
 unsigned char *tcp_request(int confd, time_t now,
-                          struct in_addr local_addr, struct in_addr netmask)
+                          union mysockaddr *local_addr, struct in_addr netmask)
 {
   size_t size = 0;
   int norebind = 0;
@@ -809,7 +819,13 @@ unsigned char *tcp_request(int confd, time_t now,
   unsigned char *packet = whine_malloc(65536 + MAXDNAME + RRFIXEDSZ);
   struct dns_header *header;
   struct server *last_server;
+  struct in_addr dst_addr_4;
+  union mysockaddr peer_addr;
+  socklen_t peer_len = sizeof(union mysockaddr);
   
+  if (getpeername(confd, (struct sockaddr *)&peer_addr, &peer_len) == -1)
+    return packet;
+
   while (1)
     {
       if (!packet ||
@@ -831,29 +847,28 @@ unsigned char *tcp_request(int confd, time_t now,
       
       if ((gotname = extract_request(header, (unsigned int)size, daemon->namebuff, &qtype)))
        {
-         union mysockaddr peer_addr;
-         socklen_t peer_len = sizeof(union mysockaddr);
+         char types[20];
          
-         if (getpeername(confd, (struct sockaddr *)&peer_addr, &peer_len) != -1)
-           {
-             char types[20];
-
-             querystr(types, qtype);
-
-             if (peer_addr.sa.sa_family == AF_INET) 
-               log_query(F_QUERY | F_IPV4 | F_FORWARD, daemon->namebuff, 
-                         (struct all_addr *)&peer_addr.in.sin_addr, types);
+         querystr(types, qtype);
+         
+         if (peer_addr.sa.sa_family == AF_INET) 
+           log_query(F_QUERY | F_IPV4 | F_FORWARD, daemon->namebuff, 
+                     (struct all_addr *)&peer_addr.in.sin_addr, types);
 #ifdef HAVE_IPV6
-             else
-               log_query(F_QUERY | F_IPV6 | F_FORWARD, daemon->namebuff, 
-                         (struct all_addr *)&peer_addr.in6.sin6_addr, types);
+         else
+           log_query(F_QUERY | F_IPV6 | F_FORWARD, daemon->namebuff, 
+                     (struct all_addr *)&peer_addr.in6.sin6_addr, types);
 #endif
-           }
        }
       
+      if (local_addr->sa.sa_family == AF_INET)
+       dst_addr_4 = local_addr->in.sin_addr;
+      else
+       dst_addr_4.s_addr = 0;
+      
       /* m > 0 if answered from cache */
       m = answer_request(header, ((char *) header) + 65536, (unsigned int)size, 
-                        local_addr, netmask, now);
+                        dst_addr_4, netmask, now);
 
       /* Do this by steam now we're not in the select() loop */
       check_log_writer(NULL); 
@@ -866,14 +881,8 @@ unsigned char *tcp_request(int confd, time_t now,
          char *domain = NULL;
           
          if (option_bool(OPT_ADD_MAC))
-           {
-             union mysockaddr peer_addr;
-             socklen_t peer_len = sizeof(union mysockaddr);
-             
-             if (getpeername(confd, (struct sockaddr *)&peer_addr, &peer_len) != -1)
-               size = add_mac(header, size, ((char *) header) + 65536, &peer_addr);
-           }
-      
+           size = add_mac(header, size, ((char *) header) + 65536, &peer_addr);
+                 
          if (gotname)
            flags = search_servers(now, &addrp, gotname, daemon->namebuff, &type, &domain, &norebind);
          
@@ -907,18 +916,38 @@ unsigned char *tcp_request(int confd, time_t now,
                  if (type != (last_server->flags & SERV_TYPE) ||
                      (type == SERV_HAS_DOMAIN && !hostname_isequal(domain, last_server->domain)))
                    continue;
-                 
-                 if ((last_server->tcpfd == -1) &&
-                     (last_server->tcpfd = socket(last_server->addr.sa.sa_family, SOCK_STREAM, 0)) != -1 &&
-                     (!local_bind(last_server->tcpfd,  &last_server->source_addr, last_server->interface, 1) ||
-                      connect(last_server->tcpfd, &last_server->addr.sa, sa_len(&last_server->addr)) == -1))
+
+                 if (last_server->tcpfd == -1)
                    {
-                     close(last_server->tcpfd);
-                     last_server->tcpfd = -1;
+                     if ((last_server->tcpfd = socket(last_server->addr.sa.sa_family, SOCK_STREAM, 0)) == -1)
+                       continue;
+                     
+                     if ((!local_bind(last_server->tcpfd,  &last_server->source_addr, last_server->interface, 1) ||
+                          connect(last_server->tcpfd, &last_server->addr.sa, sa_len(&last_server->addr)) == -1))
+                       {
+                         close(last_server->tcpfd);
+                         last_server->tcpfd = -1;
+                         continue;
+                       }
+
+#ifdef HAVE_CONNTRACK
+                     /* Copy connection mark of incoming query to outgoing connection. */
+                     if (option_bool(OPT_CONNTRACK))
+                       {
+                         unsigned int mark;
+                         struct all_addr local;
+#ifdef HAVE_IPV6                     
+                         if (local_addr->sa.sa_family == AF_INET6)
+                           local.addr.addr6 = local_addr->in6.sin6_addr;
+                         else
+#endif
+                           local.addr.addr4 = local_addr->in.sin_addr;
+                         
+                         if (get_incoming_mark(&peer_addr, &local, 1, &mark))
+                           setsockopt(last_server->tcpfd, SOL_SOCKET, SO_MARK, &mark, sizeof(unsigned int));
+                       }
+#endif 
                    }
-                 
-                 if (last_server->tcpfd == -1) 
-                   continue;
 
                  c1 = size >> 8;
                  c2 = size;
index cfa7543fbb264675cd2a685746e0d0882ed2bdc2..09454959cbdb785890178b22f32241e51b8eac38 100644 (file)
@@ -323,6 +323,21 @@ struct dhcp_lease *lease_find_by_addr(struct in_addr addr)
   return NULL;
 }
 
+/* Find largest assigned address in context */
+struct in_addr lease_find_max_addr(struct dhcp_context *context)
+{
+  struct dhcp_lease *lease;
+  struct in_addr addr = context->start;
+  
+  if (!(context->flags & (CONTEXT_STATIC | CONTEXT_PROXY)))
+    for (lease = leases; lease; lease = lease->next)
+      if (((unsigned)ntohl(lease->addr.s_addr)) > ((unsigned)ntohl(context->start.s_addr)) &&
+         ((unsigned)ntohl(lease->addr.s_addr)) <= ((unsigned)ntohl(context->end.s_addr)) &&
+         ((unsigned)ntohl(lease->addr.s_addr)) > ((unsigned)ntohl(addr.s_addr)))
+       addr = lease->addr;
+  
+  return addr;
+}
 
 struct dhcp_lease *lease_allocate(struct in_addr addr)
 {
index baaae7c69b3b42e4f1c4714c38478cdcca28804e..08ce62b4bef0c64fba8e43227fdef948568fefd8 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -154,6 +154,19 @@ static void log_write(void)
    
   while (entries)
     {
+      /* The data in the payoad is written with a terminating zero character 
+        and the length reflects this. For a stream connection we need to 
+        send the zero as a record terminator, but this isn't done for a 
+        datagram connection, so treat the length as one less than reality 
+        to elide the zero. If we're logging to a file, turn the zero into 
+        a newline, and leave the length alone. */
+      int len_adjust = 0;
+
+      if (log_to_file)
+       entries->payload[entries->offset + entries->length - 1] = '\n';
+      else if (connection_type == SOCK_DGRAM)
+       len_adjust = 1;
+
       /* Avoid duplicates over a fork() */
       if (entries->pid != getpid())
        {
@@ -163,11 +176,11 @@ static void log_write(void)
 
       connection_good = 1;
 
-      if ((rc = write(log_fd, entries->payload + entries->offset, entries->length)) != -1)
+      if ((rc = write(log_fd, entries->payload + entries->offset, entries->length - len_adjust)) != -1)
        {
          entries->length -= rc;
          entries->offset += rc;
-         if (entries->length == 0)
+         if (entries->length == len_adjust)
            {
              free_entry();
              if (entries_lost != 0)
@@ -366,10 +379,6 @@ void my_syslog(int priority, const char *format, ...)
       entry->length = len > MAX_MESSAGE ? MAX_MESSAGE : len;
       entry->offset = 0;
       entry->pid = pid;
-
-      /* replace terminator with \n */
-      if (log_to_file)
-       entry->payload[entry->length - 1] = '\n';
     }
   
   /* almost always, logging won't block, so try and write this now,
index f6da7db82179df7c216521858f4c22df938e5ee2..df3585f576c520b1698b34e8d2f5431f454a1663 100644 (file)
@@ -222,7 +222,7 @@ int iface_enumerate(int family, void *parm, int (*callback)())
                      }
                    
                    if (addrp)
-                     if (!((*callback)(addrp, ifa->ifa_index, ifa->ifa_index, parm)))
+                     if (!((*callback)(addrp, ifa->ifa_scope, ifa->ifa_index, parm)))
                        return 0;
                  }
 #endif
index 7b2e905e4cf46cc1c30d4706b591b117dc758364..fe5557afbc937190107b71f8eaae41536c136937 100644 (file)
@@ -896,20 +896,38 @@ int reload_servers(char *fname)
          source_addr.in.sin_port = htons(daemon->query_port);
        }
 #ifdef HAVE_IPV6
-      else if (inet_pton(AF_INET6, token, &addr.in6.sin6_addr) > 0)
-       {
+      else 
+       {       
+         int scope_index = 0;
+         char *scope_id = strchr(token, '%');
+         
+         if (scope_id)
+           {
+             *(scope_id++) = 0;
+             scope_index = if_nametoindex(scope_id);
+           }
+         
+         if (inet_pton(AF_INET6, token, &addr.in6.sin6_addr) > 0)
+           {
 #ifdef HAVE_SOCKADDR_SA_LEN
-         source_addr.in6.sin6_len = addr.in6.sin6_len = sizeof(source_addr.in6);
-#endif
-         source_addr.in6.sin6_family = addr.in6.sin6_family = AF_INET6;
-         addr.in6.sin6_port = htons(NAMESERVER_PORT);
-         source_addr.in6.sin6_addr = in6addr_any;
-         source_addr.in6.sin6_port = htons(daemon->query_port);
+             source_addr.in6.sin6_len = addr.in6.sin6_len = sizeof(source_addr.in6);
+#endif
+             source_addr.in6.sin6_family = addr.in6.sin6_family = AF_INET6;
+             source_addr.in6.sin6_flowinfo = addr.in6.sin6_flowinfo = 0;
+             addr.in6.sin6_port = htons(NAMESERVER_PORT);
+             addr.in6.sin6_scope_id = scope_index;
+             source_addr.in6.sin6_addr = in6addr_any;
+             source_addr.in6.sin6_port = htons(daemon->query_port);
+             source_addr.in6.sin6_scope_id = 0;
+           }
+         else
+           continue;
        }
-#endif /* IPV6 */
+#else /* IPV6 */
       else
        continue;
-      
+#endif 
+
       if (old_servers)
        {
          serv = old_servers;
index 4cee0a21c8cf88d5f9c18cf52bd048daa3c0c78c..7e8f47ae9efb2117fde6bed360c4aaf46e7f9738 100644 (file)
@@ -110,6 +110,8 @@ struct myoption {
 #define LOPT_LOC_REBND 299
 #define LOPT_ADD_MAC   300
 #define LOPT_DNSSEC    301
+#define LOPT_INCR_ADDR 302
+#define LOPT_CONNTRACK 303
 
 #ifdef HAVE_GETOPT_LONG
 static const struct option opts[] =  
@@ -225,6 +227,8 @@ static const struct myoption opts[] =
     { "rebind-localhost-ok", 0, 0,  LOPT_LOC_REBND },
     { "add-mac", 0, 0, LOPT_ADD_MAC },
     { "proxy-dnssec", 0, 0, LOPT_DNSSEC },
+    { "dhcp-sequential-ip", 0, 0,  LOPT_INCR_ADDR },
+    { "conntrack", 0, 0, LOPT_CONNTRACK },
     { NULL, 0, 0, 0 }
   };
 
@@ -345,8 +349,10 @@ static struct {
   { LOPT_PXE_PROMT, ARG_DUP, "<prompt>,[<timeout>]", gettext_noop("Prompt to send to PXE clients."), NULL },
   { LOPT_PXE_SERV, ARG_DUP, "<service>", gettext_noop("Boot service for PXE menu."), NULL },
   { LOPT_TEST, 0, NULL, gettext_noop("Check configuration syntax."), NULL },
-  { LOPT_ADD_MAC, OPT_ADD_MAC, NULL, gettext_noop("Add requestor's MAC address to forwarded DNS queries"), NULL },
-  { LOPT_DNSSEC, OPT_DNSSEC, NULL, gettext_noop("Proxy DNSSEC validation results from upstream nameservers"), NULL },
+  { LOPT_ADD_MAC, OPT_ADD_MAC, NULL, gettext_noop("Add requestor's MAC address to forwarded DNS queries."), NULL },
+  { LOPT_DNSSEC, OPT_DNSSEC, NULL, gettext_noop("Proxy DNSSEC validation results from upstream nameservers."), NULL },
+  { LOPT_INCR_ADDR, OPT_CONSEC_ADDR, NULL, gettext_noop("Attempt to allocate sequential IP addresses to DHCP clients."), NULL },
+  { LOPT_CONNTRACK, OPT_CONNTRACK, NULL, gettext_noop("Copy connection-track mark from queries to upstream connections."), NULL },
   { 0, 0, NULL, NULL, NULL }
 }; 
 
@@ -1590,6 +1596,10 @@ static char *one_opt(int option, char *arg, char *gen_prob, int command_line)
          {
            int source_port = 0, serv_port = NAMESERVER_PORT;
            char *portno, *source;
+#ifdef HAVE_IPV6
+           int scope_index = 0;
+           char *scope_id;
+#endif
            
            if ((source = split_chr(arg, '@')) && /* is there a source. */
                (portno = split_chr(source, '#')) &&
@@ -1600,6 +1610,10 @@ static char *one_opt(int option, char *arg, char *gen_prob, int command_line)
                !atoi_check16(portno, &serv_port))
              problem = _("bad port");
            
+#ifdef HAVE_IPV6
+           scope_id = split_chr(arg, '%');
+#endif
+
            if ((newlist->addr.in.sin_addr.s_addr = inet_addr(arg)) != (in_addr_t) -1)
              {
                newlist->addr.in.sin_port = htons(serv_port);   
@@ -1627,16 +1641,22 @@ static char *one_opt(int option, char *arg, char *gen_prob, int command_line)
 #ifdef HAVE_IPV6
            else if (inet_pton(AF_INET6, arg, &newlist->addr.in6.sin6_addr) > 0)
              {
+               if (scope_id && (scope_index = if_nametoindex(scope_id)) == 0)
+                 problem = _("bad interface name");
+               
                newlist->addr.in6.sin6_port = htons(serv_port);
+               newlist->addr.in6.sin6_scope_id = scope_index;
                newlist->source_addr.in6.sin6_port = htons(source_port);
+               newlist->source_addr.in6.sin6_scope_id = 0;
                newlist->addr.sa.sa_family = newlist->source_addr.sa.sa_family = AF_INET6;
+               newlist->addr.in6.sin6_flowinfo = newlist->source_addr.in6.sin6_flowinfo = 0;
 #ifdef HAVE_SOCKADDR_SA_LEN
                newlist->addr.in6.sin6_len = newlist->source_addr.in6.sin6_len = sizeof(newlist->addr.in6);
 #endif
                if (source)
                  {
-                    newlist->flags |= SERV_HAS_SOURCE;
-                    if (inet_pton(AF_INET6, source, &newlist->source_addr.in6.sin6_addr) == 0)
+                   newlist->flags |= SERV_HAS_SOURCE;
+                   if (inet_pton(AF_INET6, source, &newlist->source_addr.in6.sin6_addr) == 0)
                      {
 #if defined(SO_BINDTODEVICE)
                        newlist->source_addr.in6.sin6_addr = in6addr_any; 
@@ -1652,7 +1672,6 @@ static char *one_opt(int option, char *arg, char *gen_prob, int command_line)
 #endif
            else
              option = '?'; /* error */
-           
          }
        
        serv = newlist;
@@ -1842,6 +1861,7 @@ static char *one_opt(int option, char *arg, char *gen_prob, int command_line)
        new->netmask.s_addr = 0;
        new->broadcast.s_addr = 0;
        new->router.s_addr = 0;
+       new->local.s_addr = 0;
        new->netid.net = NULL;
        new->filter = NULL;
        new->flags = 0;
@@ -2037,7 +2057,9 @@ static char *one_opt(int option, char *arg, char *gen_prob, int command_line)
                  strcpy(newtag->net, arg+4);
                  unhide_metas(newtag->net);
                }
-             else 
+             else if (strstr(arg, "tag:") == arg)
+               problem = _("cannot match tags in --dhcp-host");
+             else
                {
                  struct hwaddr_config *newhw = opt_malloc(sizeof(struct hwaddr_config));
                  if ((newhw->hwaddr_len = parse_hex(a[j], newhw->hwaddr, DHCP_CHADDR_MAX, 
@@ -2218,7 +2240,7 @@ static char *one_opt(int option, char *arg, char *gen_prob, int command_line)
          option = '?';
        else 
          {
-           char *dhcp_file, *dhcp_sname = NULL;
+           char *dhcp_file, *dhcp_sname = NULL, *tftp_sname = NULL;
            struct in_addr dhcp_next_server;
            comma = split(arg);
            dhcp_file = opt_string_alloc(arg);
@@ -2231,8 +2253,17 @@ static char *one_opt(int option, char *arg, char *gen_prob, int command_line)
                if (comma)
                  {
                    unhide_metas(comma);
-                   if ((dhcp_next_server.s_addr = inet_addr(comma)) == (in_addr_t)-1)
-                     option = '?';
+                   if ((dhcp_next_server.s_addr = inet_addr(comma)) == (in_addr_t)-1) {
+
+                     /*
+                      * The user may have specified the tftp hostname here.
+                      * save it so that it can be resolved/looked up during
+                      * actual dhcp_reply().
+                      */       
+
+                     tftp_sname = opt_string_alloc(comma);
+                     dhcp_next_server.s_addr = 0;
+                   }
                  }
              }
            if (option != '?')
@@ -2240,6 +2271,7 @@ static char *one_opt(int option, char *arg, char *gen_prob, int command_line)
                struct dhcp_boot *new = opt_malloc(sizeof(struct dhcp_boot));
                new->file = dhcp_file;
                new->sname = dhcp_sname;
+               new->tftp_sname = tftp_sname;
                new->next_server = dhcp_next_server;
                new->netid = id;
                new->next = daemon->boot_config;
index 889c1f0c770b0769de1d02e4e2b78c242d90deb8..25cbeec3cf5708a0ca8110e71bcbd1c76f898aa1 100644 (file)
@@ -642,7 +642,6 @@ static int private_net(struct in_addr addr, int ban_localhost)
 static unsigned char *do_doctor(unsigned char *p, int count, struct dns_header *header, size_t qlen, char *name)
 {
   int i, qtype, qclass, rdlen;
-  unsigned long ttl;
 
   for (i = count; i != 0; i--)
     {
@@ -656,7 +655,7 @@ static unsigned char *do_doctor(unsigned char *p, int count, struct dns_header *
       
       GETSHORT(qtype, p); 
       GETSHORT(qclass, p);
-      GETLONG(ttl, p);
+      p += 4; /* ttl */
       GETSHORT(rdlen, p);
       
       if (qclass == C_IN && qtype == T_A)
@@ -1044,8 +1043,6 @@ unsigned int extract_request(struct dns_header *header, size_t qlen, char *name,
        return F_IPV6;
       if (qtype == T_ANY)
        return  F_IPV4 | F_IPV6;
-      if (qtype == T_NS || qtype == T_SOA)
-       return F_QUERY | F_NSRR;
     }
   
   return F_QUERY;
@@ -1101,12 +1098,17 @@ int check_for_local_domain(char *name, time_t now)
   struct txt_record *txt;
   struct interface_name *intr;
   struct ptr_record *ptr;
-  
-  if ((crecp = cache_find_by_name(NULL, name, now, F_IPV4 | F_IPV6)) &&
+  struct naptr *naptr;
+
+  if ((crecp = cache_find_by_name(NULL, name, now, F_IPV4 | F_IPV6 | F_CNAME)) &&
       (crecp->flags & (F_HOSTS | F_DHCP)))
     return 1;
   
-  for (mx = daemon->mxnames; mx; mx = mx->next)
+  for (naptr = daemon->naptr; naptr; naptr = naptr->next)
+     if (hostname_isequal(name, naptr->name))
+      return 1;
+
+   for (mx = daemon->mxnames; mx; mx = mx->next)
     if (hostname_isequal(name, mx->name))
       return 1;
 
@@ -1309,11 +1311,11 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
 
   if (find_pseudoheader(header, qlen, NULL, &pheader, &is_sign))
     { 
-      unsigned short udpsz, ext_rcode, flags;
+      unsigned short udpsz, flags;
       unsigned char *psave = pheader;
 
       GETSHORT(udpsz, pheader);
-      GETSHORT(ext_rcode, pheader);
+      pheader += 2; /* ext_rcode */
       GETSHORT(flags, pheader);
       
       sec_reqd = flags & 0x8000; /* do bit */ 
index ed9af7f2a8004389daa504f37138bbbd6f1f4843..b96b1974515537e99b34ce749dac914f95c2a867 100644 (file)
@@ -41,8 +41,8 @@ static void log_packet(char *type, void *addr, unsigned char *ext_mac,
                       int mac_len, char *interface, char *string, u32 xid);
 static unsigned char *option_find(struct dhcp_packet *mess, size_t size, int opt_type, int minsize);
 static unsigned char *option_find1(unsigned char *p, unsigned char *end, int opt, int minsize);
-static size_t dhcp_packet_size(struct dhcp_packet *mess, struct dhcp_netid *netid,
-                              unsigned char *agent_id, unsigned char *real_end);
+static void log_tags(struct dhcp_netid *netid, struct dhcp_packet *mess);
+static size_t dhcp_packet_size(struct dhcp_packet *mess, unsigned char *agent_id, unsigned char *real_end);
 static void clear_packet(struct dhcp_packet *mess, unsigned char *end);
 static void do_options(struct dhcp_context *context,
                       struct dhcp_packet *mess,
@@ -51,11 +51,12 @@ static void do_options(struct dhcp_context *context,
                       char *hostname, 
                       char *domain, char *config_domain,
                       struct dhcp_netid *netid,
-                      struct in_addr subnet_addr,
+                      struct in_addr subnet_addr, 
                       unsigned char fqdn_flags,
                       int null_term, int pxearch,
                       unsigned char *uuid,
-                      int vendor_class_len);
+                      int vendor_class_len,
+                      time_t now);
 
 
 static void match_vendor_opts(unsigned char *opt, struct dhcp_opt *dopt); 
@@ -67,7 +68,7 @@ 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, int pxe)
+                 size_t sz, time_t now, int unicast_dest, int *is_inform, int pxe, struct in_addr fallback)
 {
   unsigned char *opt, *clid = NULL;
   struct dhcp_lease *ltmp, *lease = NULL;
@@ -85,7 +86,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
   unsigned int time;
   struct dhcp_config *config;
   struct dhcp_netid *netid, *tagif_netid;
-  struct in_addr subnet_addr, fallback, override;
+  struct in_addr subnet_addr, override;
   unsigned short fuzz = 0;
   unsigned int mess_type = 0;
   unsigned char fqdn_flags = 0;
@@ -297,17 +298,43 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
                
       if (!context_new)
        for (context_tmp = daemon->dhcp; context_tmp; context_tmp = context_tmp->next)
-         if (context_tmp->netmask.s_addr  && 
-             is_same_net(addr, context_tmp->start, context_tmp->netmask) &&
-             is_same_net(addr, context_tmp->end, context_tmp->netmask))
-           {
-             context_tmp->current = context_new;
-             context_new = context_tmp;
-           }
+         {
+           struct in_addr netmask = context_tmp->netmask;
+
+           /* guess the netmask for relayed networks */
+           if (!(context_tmp->flags & CONTEXT_NETMASK) && context_tmp->netmask.s_addr == 0)
+             {
+               if (IN_CLASSA(ntohl(context_tmp->start.s_addr)) && IN_CLASSA(ntohl(context_tmp->end.s_addr)))
+                 netmask.s_addr = htonl(0xff000000);
+               else if (IN_CLASSB(ntohl(context_tmp->start.s_addr)) && IN_CLASSB(ntohl(context_tmp->end.s_addr)))
+                 netmask.s_addr = htonl(0xffff0000);
+               else if (IN_CLASSC(ntohl(context_tmp->start.s_addr)) && IN_CLASSC(ntohl(context_tmp->end.s_addr)))
+                 netmask.s_addr = htonl(0xffffff00); 
+             }
+           
+           /* This section fills in context mainly when a client which is on a remote (relayed)
+              network renews a lease without using the relay, after dnsmasq has restarted. */
+           if (netmask.s_addr != 0  && 
+               is_same_net(addr, context_tmp->start, netmask) &&
+               is_same_net(addr, context_tmp->end, netmask))
+             {
+               context_tmp->netmask = netmask;
+               if (context_tmp->local.s_addr == 0)
+                 context_tmp->local = fallback;
+               if (context_tmp->router.s_addr == 0)
+                 context_tmp->router = mess->giaddr;
+          
+               /* fill in missing broadcast addresses for relayed ranges */
+               if (!(context_tmp->flags & CONTEXT_BRDCAST) && context_tmp->broadcast.s_addr == 0 )
+                 context_tmp->broadcast.s_addr = context_tmp->start.s_addr | ~context_tmp->netmask.s_addr;
+               
+               context_tmp->current = context_new;
+               context_new = context_tmp;
+             }
+         }
       
       if (context_new || force)
-       context = context_new;
-      
+       context = context_new; 
     }
   
   if (!context)
@@ -318,9 +345,6 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
       return 0;
     }
 
-  /* keep _a_ local address available. */
-  fallback = context->local;
-  
   if (option_bool(OPT_LOG_OPTS))
     {
       struct dhcp_context *context_tmp;
@@ -441,9 +465,10 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
          else if (context->netid.net)
            {
              context->netid.next = netid;
-             netid = &context->netid; 
-             tagif_netid = run_tag_if(netid);
+             tagif_netid = run_tag_if(&context->netid);
            }
+
+         log_tags(tagif_netid, mess);
            
          if (!message && !nailed)
            {
@@ -474,13 +499,13 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
              
              clear_packet(mess, end);
              do_options(context, mess, end, NULL, hostname, get_domain(mess->yiaddr), 
-                        domain, tagif_netid, subnet_addr, 0, 0, 0, NULL, 0);
+                        domain, netid, subnet_addr, 0, 0, 0, NULL, 0, now);
            }
        }
       
       log_packet("BOOTP", logaddr, mess->chaddr, mess->hlen, iface_name, message, mess->xid);
       
-      return message ? 0 : dhcp_packet_size(mess, tagif_netid, agent_id, real_end);
+      return message ? 0 : dhcp_packet_size(mess, agent_id, real_end);
     }
       
   if ((opt = option_find(mess, sz, OPTION_CLIENT_FQDN, 4)))
@@ -795,7 +820,8 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
          do_encap_opts(&opt71, OPTION_VENDOR_CLASS_OPT, DHOPT_VENDOR_MATCH, mess, end, 0);
          
          log_packet("PXE", &mess->yiaddr, emac, emac_len, iface_name, (char *)mess->file, mess->xid);
-         return dhcp_packet_size(mess, tagif_netid, agent_id, real_end);         
+         log_tags(tagif_netid, mess);
+         return dhcp_packet_size(mess, agent_id, real_end);      
        }
       
       if ((opt = option_find(mess, sz, OPTION_ARCH, 2)))
@@ -829,8 +855,10 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
                     and set discovery_control = 8 */
                  if (boot)
                    {
-                     if (boot->next_server.s_addr)
+                     if (boot->next_server.s_addr) 
                        mess->siaddr = boot->next_server;
+                     else if (boot->tftp_sname) 
+                       mess->siaddr = a_record_from_hosts(boot->tftp_sname, now);
                      
                      if (boot->file)
                        strncpy((char *)mess->file, boot->file, sizeof(mess->file)-1);
@@ -844,7 +872,8 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
                  do_encap_opts(pxe_opts(pxearch, tagif_netid, context->local), OPTION_VENDOR_CLASS_OPT, DHOPT_VENDOR_MATCH, mess, end, 0);
                  
                  log_packet("PXE", NULL, emac, emac_len, iface_name, ignore ? "proxy-ignored" : "proxy", mess->xid);
-                 return ignore ? 0 : dhcp_packet_size(mess, tagif_netid, agent_id, real_end);    
+                 log_tags(tagif_netid, mess);
+                 return ignore ? 0 : dhcp_packet_size(mess, agent_id, real_end);         
                }
            }
        }
@@ -975,15 +1004,16 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
       if (message || !(context = narrow_context(context, mess->yiaddr, tagif_netid)))
        return 0;
 
-      log_packet("DHCPOFFER" , &mess->yiaddr, emac, emac_len, iface_name, NULL, mess->xid);
-
       if (context->netid.net)
        {
          context->netid.next = netid;
-         netid = &context->netid;
-         tagif_netid = run_tag_if(netid);
+         tagif_netid = run_tag_if(&context->netid);
        }
-       
+
+      log_tags(tagif_netid, mess);
+      
+      log_packet("DHCPOFFER" , &mess->yiaddr, emac, emac_len, iface_name, NULL, mess->xid);
+      
       time = calc_time(context, config, option_find(mess, sz, OPTION_LEASE_TIME, 4));
       clear_packet(mess, end);
       option_put(mess, end, OPTION_MESSAGE_TYPE, 1, DHCPOFFER);
@@ -996,9 +1026,9 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
          option_put(mess, end, OPTION_T2, 4, (time*7)/8);
        }
       do_options(context, mess, end, req_options, offer_hostname, get_domain(mess->yiaddr), 
-                domain, tagif_netid, subnet_addr, fqdn_flags, borken_opt, pxearch, uuid, vendor_class_len);
+                domain, netid, subnet_addr, fqdn_flags, borken_opt, pxearch, uuid, vendor_class_len, now);
       
-      return dhcp_packet_size(mess, tagif_netid, agent_id, real_end);
+      return dhcp_packet_size(mess, agent_id, real_end);
       
     case DHCPREQUEST:
       if (ignore || have_config(config, CONFIG_DISABLE))
@@ -1029,12 +1059,30 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
                  
                  if (!context)
                    {
-                     /* In auth mode, a REQUEST sent to the wrong server
-                        should be faulted, so that the client establishes 
-                        communication with us, otherwise, silently ignore. */
-                     if (!option_bool(OPT_AUTHORITATIVE))
-                       return 0;
-                     message = _("wrong server-ID");
+                     /* Handle very strange configs where clients have more than one route to the server.
+                        If a clients idea of its server-id matches any of our DHCP interfaces, we let it pass.
+                        Have to set override to make sure we echo back the correct server-id */
+                     struct irec *intr;
+                     
+                     enumerate_interfaces();
+
+                     for (intr = daemon->interfaces; intr; intr = intr->next)
+                       if (intr->addr.sa.sa_family == AF_INET &&
+                           intr->addr.in.sin_addr.s_addr == option_addr(opt).s_addr &&
+                           intr->tftp_ok)
+                         break;
+
+                     if (intr)
+                       override = intr->addr.in.sin_addr;
+                     else
+                       {
+                         /* In auth mode, a REQUEST sent to the wrong server
+                            should be faulted, so that the client establishes 
+                            communication with us, otherwise, silently ignore. */
+                         if (!option_bool(OPT_AUTHORITATIVE))
+                           return 0;
+                         message = _("wrong server-ID");
+                       }
                    }
                }
 
@@ -1173,9 +1221,10 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
          if (context->netid.net)
            {
              context->netid.next = netid;
-             netid = &context->netid;
-             tagif_netid = run_tag_if(netid);
+             tagif_netid = run_tag_if( &context->netid);
            }
+
+         log_tags(tagif_netid, mess);
          
 #ifdef HAVE_SCRIPT
          if (do_classes && daemon->lease_change_command)
@@ -1278,10 +1327,10 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
              option_put(mess, end, OPTION_T2, 4, ((time/8)*7) - fuzz);
            }
          do_options(context, mess, end, req_options, hostname, get_domain(mess->yiaddr), 
-                    domain, tagif_netid, subnet_addr, fqdn_flags, borken_opt, pxearch, uuid, vendor_class_len);
+                    domain, netid, subnet_addr, fqdn_flags, borken_opt, pxearch, uuid, vendor_class_len, now);
        }
 
-      return dhcp_packet_size(mess, tagif_netid, agent_id, real_end); 
+      return dhcp_packet_size(mess, agent_id, real_end); 
       
     case DHCPINFORM:
       if (ignore || have_config(config, CONFIG_DISABLE))
@@ -1304,15 +1353,16 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
       
       if (!hostname && (hostname = host_from_dns(mess->ciaddr)))
        domain = get_domain(mess->ciaddr);
-
-      log_packet("DHCPACK", &mess->ciaddr, emac, emac_len, iface_name, hostname, mess->xid);
       
       if (context && context->netid.net)
        {
          context->netid.next = netid;
-         netid = &context->netid;
-         tagif_netid = run_tag_if(netid);
+         tagif_netid = run_tag_if( &context->netid);
        }
+
+      log_tags(tagif_netid, mess);
+      
+      log_packet("DHCPACK", &mess->ciaddr, emac, emac_len, iface_name, hostname, mess->xid);
       
       if (lease)
        {
@@ -1337,10 +1387,10 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
        }
 
       do_options(context, mess, end, req_options, hostname, get_domain(mess->ciaddr),
-                domain, tagif_netid, subnet_addr, fqdn_flags, borken_opt, pxearch, uuid, vendor_class_len);
+                domain, netid, subnet_addr, fqdn_flags, borken_opt, pxearch, uuid, vendor_class_len, now);
       
       *is_inform = 1; /* handle reply differently */
-      return dhcp_packet_size(mess, tagif_netid, agent_id, real_end); 
+      return dhcp_packet_size(mess, agent_id, real_end); 
     }
   
   return 0;
@@ -1432,7 +1482,7 @@ static struct in_addr server_id(struct dhcp_context *context, struct in_addr ove
 {
   if (override.s_addr != 0)
     return override;
-  else if (context)
+  else if (context && context->local.s_addr != 0)
     return context->local;
   else
     return fallback;
@@ -1672,30 +1722,16 @@ static unsigned char *find_overload(struct dhcp_packet *mess)
   return NULL;
 }
 
-static size_t dhcp_packet_size(struct dhcp_packet *mess, struct dhcp_netid *netid,
-                              unsigned char *agent_id, unsigned char *real_end)
+static void log_tags(struct dhcp_netid *netid, struct dhcp_packet *mess)
 {
-  unsigned char *p = dhcp_skip_opts(&mess->options[0] + sizeof(u32));
-  unsigned char *overload;
-  size_t ret;
-  struct dhcp_netid_list *id_list;
-  struct dhcp_netid *n;
-
-  /* move agent_id back down to the end of the packet */
-  if (agent_id)
-    {
-      memmove(p, agent_id, real_end - agent_id);
-      p += real_end - agent_id;
-      memset(p, 0, real_end - p); /* in case of overlap */
-    }
-  
-  /* We do logging too */
   if (netid && option_bool(OPT_LOG_OPTS))
     {
       char *s = daemon->namebuff;
       for (*s = 0; netid; netid = netid->next)
        {
          /* kill dupes. */
+         struct dhcp_netid *n;
+         
          for (n = netid->next; n; n = n->next)
            if (strcmp(netid->net, n->net) == 0)
              break;
@@ -1709,7 +1745,22 @@ static size_t dhcp_packet_size(struct dhcp_packet *mess, struct dhcp_netid *neti
        }
       my_syslog(MS_DHCP | LOG_INFO, _("%u tags: %s"), ntohl(mess->xid), s);
     } 
-   
+} 
+
+static size_t dhcp_packet_size(struct dhcp_packet *mess, unsigned char *agent_id, unsigned char *real_end)
+{
+  unsigned char *p = dhcp_skip_opts(&mess->options[0] + sizeof(u32));
+  unsigned char *overload;
+  size_t ret;
+  
+  /* move agent_id back down to the end of the packet */
+  if (agent_id)
+    {
+      memmove(p, agent_id, real_end - agent_id);
+      p += real_end - agent_id;
+      memset(p, 0, real_end - p); /* in case of overlap */
+    }
+  
   /* add END options to the regions. */
   overload = find_overload(mess);
   
@@ -1734,12 +1785,6 @@ static size_t dhcp_packet_size(struct dhcp_packet *mess, struct dhcp_netid *neti
 
   *p++ = OPTION_END;
   
-  for (id_list = daemon->force_broadcast; id_list; id_list = id_list->next)
-    if ((!id_list->list) || match_netid(id_list->list, netid, 0))
-      break;
-  if (id_list)
-    mess->flags |= htons(0x8000); /* force broadcast */
-  
   if (option_bool(OPT_LOG_OPTS))
     {
       if (mess->siaddr.s_addr != 0)
@@ -1889,20 +1934,14 @@ static int in_list(unsigned char *list, int opt)
   return 0;
 }
 
-static struct dhcp_opt *option_find2(struct dhcp_netid *netid, struct dhcp_opt *opts, int opt)
+static struct dhcp_opt *option_find2(int opt)
 {
-  struct dhcp_opt *tmp;  
-  for (tmp = opts; tmp; tmp = tmp->next)
-    if (tmp->opt == opt && !(tmp->flags & (DHOPT_ENCAPSULATE | DHOPT_VENDOR | DHOPT_RFC3925)))
-      if (match_netid(tmp->netid, netid, 0))
-       return tmp;
-
-  /* No match, look for one without a netid */
-  for (tmp = opts; tmp; tmp = tmp->next)
-    if (tmp->opt == opt && !(tmp->flags & (DHOPT_ENCAPSULATE | DHOPT_VENDOR | DHOPT_RFC3925)))
-      if (match_netid(tmp->netid, netid, 1))
-       return tmp;
-                     
+  struct dhcp_opt *opts;
+  
+  for (opts = daemon->dhcp_opts; opts; opts = opts->next)
+    if (opts->opt == opt && (opts->flags & DHOPT_TAGOK))
+      return opts;
+  
   return NULL;
 }
 
@@ -2157,7 +2196,8 @@ static void do_options(struct dhcp_context *context,
                       unsigned char fqdn_flags,
                       int null_term, int pxe_arch,
                       unsigned char *uuid,
-                      int vendor_class_len)
+                      int vendor_class_len,
+                      time_t now)
 {
   struct dhcp_opt *opt, *config_opts = daemon->dhcp_opts;
   struct dhcp_boot *boot;
@@ -2166,7 +2206,53 @@ static void do_options(struct dhcp_context *context,
   unsigned char f0 = 0, s0 = 0;
   int done_file = 0, done_server = 0;
   int done_vendor_class = 0;
+  struct dhcp_netid *tagif;
+  struct dhcp_netid_list *id_list;
+
+  /* flag options which are valid with the current tag set (sans context tags) */
+  tagif = run_tag_if(netid);
+  for (opt = config_opts; opt; opt = opt->next)
+    {
+      opt->flags &= ~DHOPT_TAGOK;
+      if (!(opt->flags & (DHOPT_ENCAPSULATE | DHOPT_VENDOR | DHOPT_RFC3925)) &&
+         match_netid(opt->netid, tagif, 0))
+       opt->flags |= DHOPT_TAGOK;
+    }
 
+  /* now flag options which are valid, including the context tags,
+     otherwise valid options are inhibited if we found a higher priotity one above */
+  if (context && context->netid.net)
+    {
+      context->netid.next = netid;
+      tagif = run_tag_if(&context->netid);
+      
+      for (opt = config_opts; opt; opt = opt->next)
+       if (!(opt->flags & (DHOPT_ENCAPSULATE | DHOPT_VENDOR | DHOPT_RFC3925 | DHOPT_TAGOK)) &&
+           match_netid(opt->netid, tagif, 0))
+         {
+           struct dhcp_opt *tmp;  
+           for (tmp = config_opts; tmp; tmp = tmp->next) 
+             if (tmp->opt == opt->opt && opt->netid && (tmp->flags & DHOPT_TAGOK))
+               break;
+           if (!tmp)
+             opt->flags |= DHOPT_TAGOK;
+         }      
+    }
+  
+  /* now flag untagged options which are not overridden by tagged ones */
+  for (opt = config_opts; opt; opt = opt->next)
+    if (!(opt->flags & (DHOPT_ENCAPSULATE | DHOPT_VENDOR | DHOPT_RFC3925 | DHOPT_TAGOK)) && !opt->netid)
+      {
+       struct dhcp_opt *tmp;  
+       for (tmp = config_opts; tmp; tmp = tmp->next) 
+         if (tmp->opt == opt->opt && (tmp->flags & DHOPT_TAGOK))
+           break;
+       if (!tmp)
+         opt->flags |= DHOPT_TAGOK;
+       else if (!tmp->netid)
+         my_syslog(MS_DHCP | LOG_WARNING, _("Ignoring duplicate dhcp-option %d"), tmp->opt); 
+      }
+       
   if (config_domain && (!domain || !hostname_isequal(domain, config_domain)))
     my_syslog(MS_DHCP | LOG_WARNING, _("Ignoring domain %s for DHCP host name %s"), config_domain, hostname);
   
@@ -2191,6 +2277,12 @@ static void do_options(struct dhcp_context *context,
        }
     }
       
+  for (id_list = daemon->force_broadcast; id_list; id_list = id_list->next)
+    if ((!id_list->list) || match_netid(id_list->list, netid, 0))
+      break;
+  if (id_list)
+    mess->flags |= htons(0x8000); /* force broadcast */
+  
   if (context)
     mess->siaddr = context->local;
   
@@ -2200,7 +2292,7 @@ static void do_options(struct dhcp_context *context,
      provide an manual option to disable it.
      Some PXE ROMs have bugs (surprise!) and need zero-terminated 
      names, so we always send those.  */
-  if ((boot = find_boot(netid)))
+  if ((boot = find_boot(tagif)))
     {
       if (boot->sname)
        {         
@@ -2222,8 +2314,10 @@ static void do_options(struct dhcp_context *context,
            strncpy((char *)mess->file, boot->file, sizeof(mess->file)-1);
        }
       
-      if (boot->next_server.s_addr)
+      if (boot->next_server.s_addr) 
        mess->siaddr = boot->next_server;
+      else if (boot->tftp_sname)
+       mess->siaddr = a_record_from_hosts(boot->tftp_sname, now);
     }
   else
     /* Use the values of the relevant options if no dhcp-boot given and
@@ -2232,20 +2326,20 @@ static void do_options(struct dhcp_context *context,
        dhcp-optsfile. */
     {
       if ((!req_options || !in_list(req_options, OPTION_FILENAME)) &&
-         (opt = option_find2(netid, config_opts, OPTION_FILENAME)) && !(opt->flags & DHOPT_FORCE))
+         (opt = option_find2(OPTION_FILENAME)) && !(opt->flags & DHOPT_FORCE))
        {
          strncpy((char *)mess->file, (char *)opt->val, sizeof(mess->file)-1);
          done_file = 1;
        }
       
       if ((!req_options || !in_list(req_options, OPTION_SNAME)) &&
-         (opt = option_find2(netid, config_opts, OPTION_SNAME)) && !(opt->flags & DHOPT_FORCE))
+         (opt = option_find2(OPTION_SNAME)) && !(opt->flags & DHOPT_FORCE))
        {
          strncpy((char *)mess->sname, (char *)opt->val, sizeof(mess->sname)-1);
          done_server = 1;
        }
       
-      if ((opt = option_find2(netid, config_opts, OPTION_END)))
+      if ((opt = option_find2(OPTION_END)))
        mess->siaddr.s_addr = ((struct in_addr *)opt->val)->s_addr;     
     }
         
@@ -2273,36 +2367,36 @@ static void do_options(struct dhcp_context *context,
   /* replies to DHCPINFORM may not have a valid context */
   if (context)
     {
-      if (!option_find2(netid, config_opts, OPTION_NETMASK))
+      if (!option_find2(OPTION_NETMASK))
        option_put(mess, end, OPTION_NETMASK, INADDRSZ, ntohl(context->netmask.s_addr));
   
       /* May not have a "guessed" broadcast address if we got no packets via a relay
         from this net yet (ie just unicast renewals after a restart */
       if (context->broadcast.s_addr &&
-         !option_find2(netid, config_opts, OPTION_BROADCAST))
+         !option_find2(OPTION_BROADCAST))
        option_put(mess, end, OPTION_BROADCAST, INADDRSZ, ntohl(context->broadcast.s_addr));
       
       /* Same comments as broadcast apply, and also may not be able to get a sensible
         default when using subnet select.  User must configure by steam in that case. */
       if (context->router.s_addr &&
          in_list(req_options, OPTION_ROUTER) &&
-         !option_find2(netid, config_opts, OPTION_ROUTER))
+         !option_find2(OPTION_ROUTER))
        option_put(mess, end, OPTION_ROUTER, INADDRSZ, ntohl(context->router.s_addr));
       
       if (in_list(req_options, OPTION_DNSSERVER) &&
-         !option_find2(netid, config_opts, OPTION_DNSSERVER))
+         !option_find2(OPTION_DNSSERVER))
        option_put(mess, end, OPTION_DNSSERVER, INADDRSZ, ntohl(context->local.s_addr));
     }
 
   if (domain && in_list(req_options, OPTION_DOMAINNAME) && 
-      !option_find2(netid, config_opts, OPTION_DOMAINNAME))
+      !option_find2(OPTION_DOMAINNAME))
     option_put_string(mess, end, OPTION_DOMAINNAME, domain, null_term);
  
   /* Note that we ignore attempts to set the fqdn using --dhc-option=81,<name> */
   if (hostname)
     {
       if (in_list(req_options, OPTION_HOSTNAME) &&
-         !option_find2(netid, config_opts, OPTION_HOSTNAME))
+         !option_find2(OPTION_HOSTNAME))
        option_put_string(mess, end, OPTION_HOSTNAME, hostname, null_term);
       
       if (fqdn_flags != 0)
@@ -2351,6 +2445,10 @@ static void do_options(struct dhcp_context *context,
     {
       int optno = opt->opt;
 
+      /* netids match and not encapsulated? */
+      if (!(opt->flags & DHOPT_TAGOK))
+       continue;
+      
       /* was it asked for, or are we sending it anyway? */
       if (!(opt->flags & DHOPT_FORCE) && !in_list(req_options, optno))
        continue;
@@ -2369,10 +2467,6 @@ static void do_options(struct dhcp_context *context,
       if (optno == OPTION_FILENAME && done_file)
        continue;
       
-      /* netids match and not encapsulated? */
-      if (opt != option_find2(netid, config_opts, optno))
-       continue;
-      
       /* For the options we have default values on
         dhc-option=<optionno> means "don't include this option"
         not "include a zero-length option" */
@@ -2439,7 +2533,7 @@ static void do_options(struct dhcp_context *context,
                continue;
              
              o->flags |= DHOPT_ENCAP_DONE;
-             if (match_netid(o->netid, netid, 1) &&
+             if (match_netid(o->netid, tagif, 1) &&
                  ((o->flags & DHOPT_FORCE) || in_list(req_options, outer)))
                {
                  o->flags |= DHOPT_ENCAP_MATCH;
@@ -2473,12 +2567,12 @@ static void do_options(struct dhcp_context *context,
        }
     }      
 
-  force_encap = prune_vendor_opts(netid);
+  force_encap = prune_vendor_opts(tagif);
   
   if (context && pxe_arch != -1)
     {
       pxe_misc(mess, end, uuid);
-      config_opts = pxe_opts(pxe_arch, netid, context->local);
+      config_opts = pxe_opts(pxe_arch, tagif, context->local);
     }
 
   if ((force_encap || in_list(req_options, OPTION_VENDOR_CLASS_OPT)) &&
index 789c444506f52ce4cb80c94fd9fd4541f0cf491f..9cecdd9453295e242b35d5d9c9b54b7b6014c4fb 100644 (file)
@@ -222,17 +222,22 @@ void tftp_request(struct listener *listen, time_t now)
     if (strcmp(ir->interface, name) == 0)
       special = 1;
 
+  if (listen->family == AF_INET)
+    {
+      addr.in.sin_port = htons(port);
 #ifdef HAVE_SOCKADDR_SA_LEN
-  addr.sa.sa_len = sa_len(&addr);
+      addr.in.sin_len = sizeof(addr.in);
 #endif
-
-  if (listen->family == AF_INET)
-    addr.in.sin_port = htons(port);
+    }
 #ifdef HAVE_IPV6
   else
     {
       addr.in6.sin6_port = htons(port);
       addr.in6.sin6_flowinfo = 0;
+      addr.in6.sin6_scope_id = 0;
+#ifdef HAVE_SOCKADDR_SA_LEN
+      addr.in6.sin6_len = sizeof(addr.in6);
+#endif
     }
 #endif
 
@@ -260,7 +265,7 @@ void tftp_request(struct listener *listen, time_t now)
   /* if we have a nailed-down range, iterate until we find a free one. */
   while (1)
     {
-      if (bind(transfer->sockfd, &addr.sa, sizeof(addr)) == -1 ||
+      if (bind(transfer->sockfd, &addr.sa, sa_len(&addr)) == -1 ||
 #if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT)
          setsockopt(transfer->sockfd, SOL_IP, IP_MTU_DISCOVER, &mtuflag, sizeof(mtuflag)) == -1 ||
 #endif
@@ -685,15 +690,13 @@ static ssize_t get_block(char *packet, struct tftp_transfer *transfer)
          for (i = 0, newcarrylf = 0; i < size; i++)
            if (mess->data[i] == '\n' && ( i != 0 || !transfer->carrylf))
              {
-               if (size == transfer->blocksize)
-                 {
-                   transfer->expansion++;
-                   if (i == size - 1)
-                     newcarrylf = 1; /* don't expand LF again if it moves to the next block */
-                 }
-               else
+               transfer->expansion++;
+
+               if (size != transfer->blocksize)
                  size++; /* room in this block */
-             
+               else  if (i == size - 1)
+                 newcarrylf = 1; /* don't expand LF again if it moves to the next block */
+                 
                /* make space and insert CR */
                memmove(&mess->data[i+1], &mess->data[i], size - (i + 1));
                mess->data[i] = '\r';
index e64f1a6db1eaa722ceec7e237132c56f59228554..e11360b866257c5f11c4f9d9a671dfad76812bbd 100644 (file)
@@ -333,7 +333,15 @@ int prettyprint_addr(union mysockaddr *addr, char *buf)
     }
   else if (addr->sa.sa_family == AF_INET6)
     {
+      char name[IF_NAMESIZE];
       inet_ntop(AF_INET6, &addr->in6.sin6_addr, buf, ADDRSTRLEN);
+      if (addr->in6.sin6_scope_id != 0 &&
+         if_indextoname(addr->in6.sin6_scope_id, name) &&
+         strlen(buf) + strlen(name) + 2 <= ADDRSTRLEN)
+       {
+         strcat(buf, "%");
+         strcat(buf, name);
+       }
       port = ntohs(addr->in6.sin6_port);
     }
 #else