summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Kelley <simon@thekelleys.org.uk>2008-11-14 20:04:27 +0000
committerSimon Kelley <simon@thekelleys.org.uk>2012-01-05 17:31:14 +0000
commit9009d74652283dbc47e7701664165170615f25b9 (patch)
tree582413134bc55994feb174b57390e1e26fd8afbb
parent1ad24ae15c799bff2d644cc02bc272ab91cf6f79 (diff)
downloaddnsmasq-9009d74652283dbc47e7701664165170615f25b9.tar.gz
import of dnsmasq-2.46.tar.gzv2.46
-rw-r--r--CHANGELOG89
-rw-r--r--FAQ19
-rw-r--r--Makefile2
-rw-r--r--bld/Makefile2
-rw-r--r--contrib/webmin/dnsmasq.wbmbin163840 -> 174080 bytes
-rw-r--r--dbus/DBus-interface37
-rw-r--r--dnsmasq.conf.example22
-rw-r--r--man/dnsmasq.881
-rw-r--r--man/es/dnsmasq.8107
-rw-r--r--po/de.po596
-rw-r--r--po/es.po620
-rw-r--r--po/fi.po596
-rw-r--r--po/fr.po620
-rw-r--r--po/id.po635
-rw-r--r--po/it.po596
-rw-r--r--po/no.po617
-rw-r--r--po/pl.po606
-rw-r--r--po/pt_BR.po596
-rw-r--r--po/ro.po617
-rw-r--r--src/bpf.c2
-rw-r--r--src/cache.c314
-rw-r--r--src/config.h16
-rw-r--r--src/dbus.c39
-rw-r--r--src/dhcp.c109
-rw-r--r--src/dnsmasq.c27
-rw-r--r--src/dnsmasq.h53
-rw-r--r--src/forward.c18
-rw-r--r--src/helper.c39
-rw-r--r--src/isc.c252
-rw-r--r--src/lease.c122
-rw-r--r--src/log.c2
-rw-r--r--src/netlink.c27
-rw-r--r--src/network.c11
-rw-r--r--src/option.c141
-rw-r--r--src/rfc1035.c245
-rw-r--r--src/rfc2131.c179
-rw-r--r--src/tftp.c2
-rw-r--r--src/util.c2
38 files changed, 4257 insertions, 3801 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 52c0080..55e71c9 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2595,7 +2595,7 @@ version 2.44
Jean Wolter for finding this.
Change implementation of min_port to work even if min-port
- as large.
+ is large.
Patch to enable compilation of latest Mac OS X. Thanks to
David Gilman.
@@ -2603,9 +2603,92 @@ version 2.44
Update Spanish translation. Thanks to Christopher Chatham.
version 2.45
- Fix total DNS failure in release 2.43 unless --min-port
+ Fix total DNS failure in release 2.44 unless --min-port
specified. Thanks to Steven Barth and Grant Coady for
bugreport. Also reject out-of-range port spec, which could
break things too: suggestion from Gilles Espinasse.
-
+version 2.46
+ Allow --bootp-dynamic to take a netid tag, so that it may
+ be selectively enabled. Thanks to Olaf Westrik for the
+ suggestion.
+
+ Remove ISC-leasefile reading code. This has been
+ deprecated for a long time, and last time I removed it, it
+ ended up going back by request of one user. This time,
+ it's gone for good; otherwise it would need to be
+ re-worked to support multiple domains (see below).
+
+ Support DHCP clients in multiple DNS domains. This is a
+ long-standing request. Clients are assigned to a domain
+ based in their IP address.
+
+ Add --dhcp-fqdn flag, which changes behaviour if DNS names
+ assigned to DHCP clients. When this is set, there must be
+ a domain associated with each client, and only
+ fully-qualified domain names are added to the DNS. The
+ advantage is that the only the FQDN needs to be unique,
+ so that two or more DHCP clients can share a hostname, as
+ long as they are in different domains.
+
+ Set environment variable DNSMASQ_DOMAIN when invoking
+ lease-change script. This may be useful information to
+ have now that it's variable.
+
+ Tighten up data-checking code for DNS packet
+ handling. Thanks to Steve Dodd who found certain illegal
+ packets which could crash dnsmasq. No memory overwrite was
+ possible, so this is not a security issue beond the DoS
+ potential.
+
+ Update example config dhcp option 47, the previous
+ suggestion generated and illegal, zero-length,
+ option. Thanks to Matthias Andree for finding this.
+
+ Rewrite hosts-file reading code to remove the limit of
+ 1024 characters per line. John C Meuser found this.
+
+ Create a net-id tag with the name of the interface on
+ which the DHCP request was received.
+
+ Fixed minor memory leak in DBus code, thanks to Jeremy
+ Laine for the patch.
+
+ Emit DBus signals as the DHCP lease database
+ changes. Thanks to Jeremy Laine for the patch.
+
+ Allow for more that one MAC address in a dhcp-host
+ line. This configuration tells dnsmasq that it's OK to
+ abandon a DHCP lease of the fixed address to one MAC
+ address, if another MAC address in the dhcp-host statement
+ asks for an address. This is useful to give a fixed
+ address to a host which has two network interfaces
+ (say, a laptop with wired and wireless interfaces.)
+ It's very important to ensure that only one interface
+ at a time is up, since dnsmasq abandons the first lease
+ and re-uses the address before the leased time has
+ elapsed. John Gray suggested this.
+
+ Tweak the response to a DHCP request packet with a wrong
+ server-id when --dhcp-authoritative is set; dnsmasq now
+ returns a DHCPNAK, rather than silently ignoring the
+ packet. Thanks to Chris Marget for spotting this
+ improvement.
+
+ Add --cname option. This provides a limited alias
+ function, usable for DHCP names. Thanks to AJ Weber for
+ suggestions on this.
+
+ Updated contrib/webmin with latest version from Neil
+ Fisher.
+
+ Updated Polish translation. Thanks to Jan Psota.
+
+ Correct the text names for DHCP options 64 and 65 to be
+ "nis+-domain" and "nis+-servers".
+
+ Updated Spanish translation. Thanks to Chris Chatham.
+
+ Force re-reading of /etc/resolv.conf when an "interface
+ up" event occurs.
+
diff --git a/FAQ b/FAQ
index 94bff49..b51c31e 100644
--- a/FAQ
+++ b/FAQ
@@ -16,6 +16,14 @@ A: The high ports that dnsmasq opens are for replies from the upstream
you to specify the UDP port to be used for this purpose. If not
specified, the operating system will select an available port number
just as it did before.
+
+ Second addendum: following the discovery of a security flaw in the
+ DNS protocol, dnsmasq from version 2.43 has changed behavior. It
+ now uses a new, randomly selected, port for each query. The old
+ default behaviour (use one port allocated by the OS) is available by
+ setting --query-port=0, and setting the query port to a positive
+ value is still works. You should think hard and know what you are
+ doing before using either of these options.
Q: Why doesn't dnsmasq support DNS queries over TCP? Don't the RFC's specify
that?
@@ -324,6 +332,17 @@ A: By default, the identity of a machine is determined by using the
method for setting the client-id varies with DHCP client software,
dhcpcd uses the "-I" flag. Windows uses a registry setting,
see http://www.jsiinc.com/SUBF/TIP2800/rh2845.htm
+Addendum:
+ From version 2.46, dnsmasq has a solution to this which doesn't
+ involve setting client-IDs. It's possible to put more than one MAC
+ address in a --dhcp-host configuration. This tells dnsmasq that it
+ should use the specified IP for any of the specified MAC addresses,
+ and furthermore it gives dnsmasq permission to sumarily abandon a
+ lease to one of the MAC addresses if another one comes along. Note
+ that this will work fine only as longer as only one interface is
+ up at any time. There is no way for dnsmasq to enforce this
+ constraint: if you configure multiple MAC addresses and violate
+ this rule, bad things will happen.
Q: Can dnsmasq do DHCP on IP-alias interfaces?
diff --git a/Makefile b/Makefile
index 54b097b..6490efb 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+# dnsmasq is Copyright (c) 2000-2008 Simon Kelley
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/bld/Makefile b/bld/Makefile
index e622296..c6c91cb 100644
--- a/bld/Makefile
+++ b/bld/Makefile
@@ -1,6 +1,6 @@
CFLAGS = -Wall -W -O2
-OBJS = cache.o rfc1035.o util.o option.o forward.o isc.o network.o \
+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
diff --git a/contrib/webmin/dnsmasq.wbm b/contrib/webmin/dnsmasq.wbm
index e37447a..7307e23 100644
--- a/contrib/webmin/dnsmasq.wbm
+++ b/contrib/webmin/dnsmasq.wbm
Binary files differ
diff --git a/dbus/DBus-interface b/dbus/DBus-interface
index 07bffd4..8d578ca 100644
--- a/dbus/DBus-interface
+++ b/dbus/DBus-interface
@@ -21,6 +21,9 @@ and avoids startup races with the provider of nameserver information.
Dnsmasq provides one service on the DBus: uk.org.thekelleys.dnsmasq
and a single object: /uk/org/thekelleys/dnsmasq
+1. METHODS
+----------
+
Methods are of the form
uk.org.thekelleys.<method>
@@ -91,4 +94,38 @@ Each call to SetServers completely replaces the set of servers
specified by via the DBus, but it leaves any servers specified via the
command line or /etc/dnsmasq.conf or /etc/resolv.conf alone.
+2. SIGNALS
+----------
+
+If dnsmasq's DHCP server is active, it will send signals over DBUS whenever
+the DHCP lease database changes. Think of these signals as transactions on
+a database with the IP address acting as the primary key.
+
+Signals are of the form:
+
+uk.org.thekelleys.<signal>
+
+and their parameters are:
+
+STRING "192.168.1.115"
+STRING "01:23:45:67:89:ab"
+STRING "hostname.or.fqdn"
+
+
+Available signals are:
+
+DhcpLeaseAdded
+---------------
+
+This signal is emitted when a DHCP lease for a given IP address is created.
+
+DhcpLeaseDeleted
+----------------
+
+This signal is emitted when a DHCP lease for a given IP address is deleted.
+
+DhcpLeaseUpdated
+----------------
+This signal is emitted when a DHCP lease for a given IP address is updated.
+
diff --git a/dnsmasq.conf.example b/dnsmasq.conf.example
index c6fed05..1708742 100644
--- a/dnsmasq.conf.example
+++ b/dnsmasq.conf.example
@@ -122,6 +122,12 @@
# 3) Provides the domain part for "expand-hosts"
#domain=thekelleys.org.uk
+# Set a different domain for a particular subnet
+#domain=wireless.thekelleys.org.uk,192.168.2.0/24
+
+# Same idea, but range rather then subnet
+#domain=reserved.thekelleys.org.uk,192.68.3.100,192.168.3.200
+
# Uncomment this to enable the integrated DHCP server, you need
# to supply the range of addresses available for lease and optionally
# a lease time. If you have more than one network, you will need to
@@ -157,6 +163,14 @@
# the name fred and IP address 192.168.0.60 and lease time 45 minutes
#dhcp-host=11:22:33:44:55:66,fred,192.168.0.60,45m
+# Give a host with ethernet address 11:22:33:44:55:66 or
+# 12:34:56:78:90:12 the IP address 192.168.0.60. Dnsmasq will assume
+# that these two ethernet interfaces will never be in use at the same
+# time, and give the IP address to the second, even if it is already
+# in use by the first. Useful for laptops with wired and wireless
+# addresses.
+#dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.60
+
# Give the machine which says its name is "bert" IP address
# 192.168.0.70 and an infinite lease
#dhcp-host=bert,192.168.0.70,infinite
@@ -270,12 +284,12 @@
# http://www.samba.org/samba/ftp/docs/textdocs/DHCP-Server-Configuration.txt
# adapted for a typical dnsmasq installation where the host running
# dnsmasq is also the host running samba.
-# you may want to uncomment them if you use Windows clients and Samba.
+# you may want to uncomment some or all of them if you use
+# Windows clients and Samba.
#dhcp-option=19,0 # option ip-forwarding off
#dhcp-option=44,0.0.0.0 # set netbios-over-TCP/IP nameserver(s) aka WINS server(s)
#dhcp-option=45,0.0.0.0 # netbios datagram distribution server
#dhcp-option=46,8 # netbios node type
-#dhcp-option=47 # empty netbios scope.
# Send RFC-3397 DNS domain search DHCP option. WARNING: Your DHCP client
# probably doesn't support this......
@@ -458,6 +472,10 @@
#Example zeroconf
#txt-record=_http._tcp.example.com,name=value,paper=A4
+# Provide an alias for a "local" DNS name. Note that this _only_ works
+# for targets which are names from DHCP or /etc/hosts. Give host
+# "bert" another name, bertrand
+#cname=bertand,bert
# For debugging purposes, log each DNS query as it passes through
# dnsmasq.
diff --git a/man/dnsmasq.8 b/man/dnsmasq.8
index 5520e03..a2f90a7 100644
--- a/man/dnsmasq.8
+++ b/man/dnsmasq.8
@@ -385,6 +385,14 @@ Return a PTR DNS record.
.B --naptr-record=<name>,<order>,<preference>,<flags>,<service>,<regexp>[,<replacement>]
Return an NAPTR DNS record, as specified in RFC3403.
.TP
+.B --cname=<cname>,<target>
+Return a CNAME record which indicates that <cname> is really
+<target>. There are significant limitations on the target; it must be a
+DNS name which is known to dnsmasq from /etc/hosts (or additional
+hosts files) or from DHCP. If the target does not satisfy this
+criteria, the whole cname is ignored. The cname must be unique, but it
+is permissable to have more than one cname pointing to the same target.
+.TP
.B --interface-name=<name>,<interface>
Return a DNS record associating the name with the primary address on
the given interface. This flag specifies an A record for the given
@@ -465,9 +473,11 @@ hardware addresses to identify hosts by prefixing with 'id:'. Thus:
refers to the host with client identifier 01:02:03:04. It is also
allowed to specify the client ID as text, like this:
.B --dhcp-host=id:clientidastext,.....
+
The special option id:* means "ignore any client-id
and use MAC addresses only." This is useful when a client presents a client-id sometimes
but not others.
+
If a name appears in /etc/hosts, the associated address can be
allocated to a DHCP lease, but only if a
.B --dhcp-host
@@ -478,8 +488,10 @@ instance
.B --dhcp-host=00:20:e0:3b:13:af,ignore
This is
useful when there is another DHCP server on the network which should
-be used by some machines. The net:<network-id> sets the network-id tag
-whenever this dhcp-host directive is in use.This can be used to
+be used by some machines.
+
+The net:<network-id> sets the network-id tag
+whenever this dhcp-host directive is in use. This can be used to
selectively send DHCP options just for this host. When a host matches any
dhcp-host directive (or one implied by /etc/ethers) then the special
network-id tag "known" is set. This allows dnsmasq to be configured to
@@ -490,13 +502,25 @@ wildcard bytes, so for example
.B --dhcp-host=00:20:e0:3b:13:*,ignore
will cause dnsmasq to ignore a range of hardware addresses. Note that
the "*" will need to be escaped or quoted on a command line, but not
-in the configuration file. Hardware addresses normally match any
+in the configuration file.
+
+Hardware addresses normally match any
network (ARP) type, but it is possible to restrict them to a single
ARP type by preceding them with the ARP-type (in HEX) and "-". so
.B --dhcp-host=06-00:20:e0:3b:13:af,1.2.3.4
will only match a
Token-Ring hardware address, since the ARP-address type for token ring
-is 6.
+is 6.
+
+As a special case, it is possible to include more than one
+hardware address. This allows an IP address to be associated with
+multiple hardware addresses, and gives dnsmasq permission to abandon a
+DHCP lease to one of the hardware addresses when another one asks for
+a lease. Beware that this is a dangerous thing to do, it will only
+work reliably if only one of the hardware addresses is active at any
+time and there is no way for dnsmasq to enforce this. It is, however
+useful, for instance to allocate a stable IP address to a laptop which
+has both wired and wireless interfaces.
.TP
.B --dhcp-hostsfile=<file>
Read DHCP host information from the specified file. The file contains
@@ -693,11 +717,13 @@ port number is used for the server and the port number plus one used
for the client. Finally, two port numbers allows arbitrary
specification of both server and client ports for DHCP.
.TP
-.B \-3, --bootp-dynamic
+.B \-3, --bootp-dynamic[=<network-id>[,<network-id>]]
Enable dynamic allocation of IP addresses to BOOTP clients. Use this
with care, since each address allocated to a BOOTP client is leased
forever, and therefore becomes permanently unavailable for re-use by
-other hosts.
+other hosts. if this is given without tags, then it unconditionally
+enables dynamic allocation. With tags, only when the tags are all
+set. It may be repeated with different tag sets.
.TP
.B \-5, --no-ping
By default, the DHCP server will attempt to ensure that an address in
@@ -723,18 +749,22 @@ removed in a future release.
.TP
.B \-6 --dhcp-script=<path>
Whenever a new DHCP lease is created, or an old one destroyed, the
-binary specified by this option is run. The arguments to the process
+executable specified by this option is run. The arguments to the process
are "add", "old" or "del", the MAC
-address of the host (or "<null>"), the IP address, and the hostname,
+address of the host, the IP address, and the hostname,
if known. "add" means a lease has been created, "del" means it has
been destroyed, "old" is a notification of an existing lease when
dnsmasq starts or a change to MAC address or hostname of an existing
lease (also, lease length or expiry and client-id, if leasefile-ro is set).
-The process is run as root (assuming that dnsmasq was originally run as
+If the MAC address is from a network type other than ethernet,
+it will have the network type prepended, eg "06-01:23:45:67:89:ab" for
+token ring. The process is run as root (assuming that dnsmasq was originally run as
root) even if dnsmasq is configured to change UID to an unprivileged user.
The environment is inherited from the invoker of dnsmasq, and if the
host provided a client-id, this is stored in the environment variable
-DNSMASQ_CLIENT_ID. If the client provides vendor-class or user-class
+DNSMASQ_CLIENT_ID. If the fully-qualified domain name of the host is
+known, the domain part is stored in DNSMASQ_DOMAIN.
+If the client provides vendor-class or user-class
information, these are provided in DNSMASQ_VENDOR_CLASS and
DNSMASQ_USER_CLASS0..DNSMASQ_USER_CLASSn variables, but only for
"add" actions or "old" actions when a host resumes an existing lease,
@@ -785,8 +815,9 @@ as if they had arrived at <interface>. This option is only available
on BSD platforms, and is necessary when using "old style" bridging, since
packets arrive at tap interfaces which don't have an IP address.
.TP
-.B \-s, --domain=<domain>
-Specifies the domain for the DHCP server. This has two effects;
+.B \-s, --domain=<domain>[,<address range>]
+Specifies DNS domains for the DHCP server. Domains may be be given
+unconditionally (without the IP range) or for limited IP ranges. This has two effects;
firstly it causes the DHCP server to return the domain to any hosts
which request it, and secondly it sets the domain which it is legal
for DHCP-configured hosts to claim. The intention is to constrain
@@ -803,7 +834,28 @@ and have a machine whose DHCP hostname is "laptop". The IP address for that mach
.B dnsmasq
both as "laptop" and "laptop.thekelleys.org.uk". If the domain is
given as "#" then the domain is read from the first "search" directive
-in /etc/resolv.conf (or equivalent).
+in /etc/resolv.conf (or equivalent). The address range can be of the form
+<ip address>,<ip address> or <ip address>/<netmask> or just a single
+<ip address>. See
+.B --dhcp-fqdn
+which can change the behaviour of dnsmasq with domains.
+.TP
+.B --dhcp-fqdn
+In the default mode, dnsmasq inserts the unqualified names of
+DHCP clients into the DNS. For this reason, the names must be unique,
+even if two clients which have the same name are in different
+domains. If a second DHCP client appears which has the same name as an
+existing client, the name is transfered to the new client. If
+.B --dhcp-fqdn
+is set, this behaviour changes: the unqualified name is no longer
+put in the DNS, only the qualified name. Two DHCP clients with the
+same name may both keep the name, provided that the domain part is
+different (ie the fully qualified names differ.) To ensure that all
+names have a domain part, there must be at least
+.B --domain
+without an address specified when
+.B --dhcp-fqdn
+is set.
.TP
.B --enable-tftp
Enable the TFTP server function. This is deliberately limited to that
@@ -1006,6 +1058,9 @@ collects a set of valid network-id tags, one from the
.B dhcp-range
used to allocate the address, one from any matching
.B dhcp-host
+(and "known" if a dhcp-host matches)
+the tag "bootp" for BOOTP requests, a tag whose name is the
+name if the interface on which the request arrived,
and possibly many from matching vendor classes and user
classes sent by the DHCP client. Any
.B dhcp-option
diff --git a/man/es/dnsmasq.8 b/man/es/dnsmasq.8
index 47b472d..547349a 100644
--- a/man/es/dnsmasq.8
+++ b/man/es/dnsmasq.8
@@ -414,8 +414,15 @@ Retornar un récord DNS PTR.
.B --naptr-record=<nombre>,<orden>,<preferencia>,<opciones>,<servicio>,<regexp>[,<remplazo>]
Retornar un récord DNS NAPTR, como especificado en RFC3403.
.TP
+.B --cname=<cname>,<target>
+Retornar un expediente CNAME que indica que <cname> es realmente <target>. Hay
+limitaciones significativas en el target. Debe ser un nombre DNS que le es conocido
+a dnsmasq desde /etc/hosts (o archivos hosts adicionales) o de DHCP. Si el target
+no satisface este criterio, el cname entero es ignorado. El cname debe ser único,
+pero es permisible tener más de un cname indicando el mismo target.
+.TP
.B --interface-name=<nombre>,<interface>
-Retornar un récord DNS, asociando el nombre con la dirección primaria
+Retornar un expediente DNS, asociando el nombre con la dirección primaria
en la interface brindada. Esta opción especifica un expediente tipo A
para el nombre brindado de la misma forma que una línea de /etc/hosts,
excepto que la dirección no es constante y es en vez tomada de la
@@ -500,9 +507,11 @@ hardware para identificar hosts prefijando 'id:'. O sea que:
se refiere al host con identificador de cliente 01:02:03:04.
También se permite especificar el ID de cliente como texto, así:
.B --dhcp-host=id:iddeclientecomotexto,.....
+
La opción especial id:* significa "ignorar cualquier ID de cliente
y usar solamente direcciones MAC." Esto es útil cuando un cliente
presenta un ID de cliente algunas veces pero otras no.
+
Si un nombre aparece en /etc/hosts, la dirección asociada puede
ser alocada a un arriendo DHCP, pero solo si existe una opción
.B --dhcp-host
@@ -511,14 +520,16 @@ le dice a dnsmasq que no debe ofrecer jamás un arriendo DHCP a
una máquina. La máquina puede ser especificada por dirección de
hardware, ID de cliente, o nombre de host, por ejemplo:
.B --dhcp-host=00:20:e0:3b:13:af,ignore
-Esto es útil cuando hay otro servidor DHCP en la red para ser
-usado por algúnas máquinas. El net:<network-id> fija la etiqueta
-network-id cuando sea que esta directiva dhcp-host está en uso.
-Esto puede ser usado para enviar selectivamente opciones DHCP
-a este host. Cuando un host coincide con cualquier directiva
-dhcp-host (o una implicada por /etc/ethers) entonces la etiqueta
-network-id especial "known" es fijada. Esto permite que dnsmasq sea
-configurado para ignorar pedidos desde máquinas desconocidas usando
+Esto es útil cuando hay otro servidor DHCP en la red que debe ser
+usado por algúnas máquinas.
+
+El net:<network-id> fija la etiqueta network-id cuando sea que
+esta directiva dhcp-host está en uso. Esto puede ser usado para
+enviar selectivamente opciones DHCP a este host. Cuando un host
+coincide con cualquier directiva dhcp-host (o una implicada por
+/etc/ethers) entonces la etiqueta network-id especial "known" es
+fijada. Esto permite que dnsmasq sea configurado para ignorar
+pedidos desde máquinas desconocidas usando
.B --dhcp-ignore=#known
Direcciones ethernet (pero no client-ids) pueden tener bytes
comodínes, así que por ejemplo
@@ -526,12 +537,23 @@ comodínes, así que por ejemplo
causará que dnsmasq ignore un rango de direcciones ethernet. Nótese
que el "*" necesitará ser escapado o escrito entre comillas en la
línea de comandos, pero no en el archivo de configuración.
+
Direcciones de hardware normalmente coinciden con cualquier
tipo de red (ARP), pero es posible restringirlas a un tipo ARP
singular precediendolo con el tipo ARP (en HEX) y "-". Así que
.B --dhcp-host=06-00:20:e0:3b:13:af,1.2.3.4
solo coincidiría con una dirección de hardware Token-Ring, dado que
el tipo ARP para Token-Ring es 6.
+
+Como caso especial, es posible incluir más de una dirección de
+hardware. Esto permite que una dirección IP sea asociada con
+direcciones de hardware múltiples, y le brinda a dnsmasq permiso
+para abandonar un arriendo DHCP a una de las direcciones de hardware
+cuando otra pide un arriendo. Nótese que esto es algo peligroso,
+sólo funcionará dependiblemente si una de las direcciones de hardware
+está activa en cualquier momento y dnsmasq no tiene forma de enforzar
+esto. Pero es útil, por ejemplo, para alocar una dirección IP estable
+a una laptop que tiene interfaces alámbricas e inalámbricas.
.TP
.B --dhcp-hostsfile=<archivo>
Leer información host DHCP desde el archivo especificado. El archivo contiene información de un host por línea. El formato de una línea es igual que texto hacia la derecha de '=' en --dhcp-host. La ventaja de almacenar información host DHCP en este archivo es que puede ser cambiada sin tener que reiniciar dnsmasq. El archivo será re-leído cuando dnsmasq recibe un SIGHUP.
@@ -731,11 +753,14 @@ es usado para el servidor y el número de puerto mas uno es usado
para el cliente. Finalmente, dos números permiten que se especifiquen
ambos los puertos de servidor y cliente para DHCP.
.TP
-.B \-3, --bootp-dynamic
+.B \-3, --bootp-dynamic[=<network-id>[,<network-id>]]
Habilitar alocación dinámica de direcciones IP a clientes BOOTP. Usar
esto con cuidado, ya que cada dirección alocada a un cliente BOOTP
es arrendada para siempre, y consecuentemente queda no-disponible
-para re-uso por otros hosts.
+para re-uso por otros hosts. Si esto es brindado sin etiquetas,
+entonces incondicionalmente habilita alocación dinámica. Con
+etiquetas, solo cuando todas las etiquetas están fijadas. Puede
+ser repetido con diferentes juegos de etiquetas.
.TP
.B \-5, --no-ping
Por predetermindado, el servidor DHCP tratará de asegurarse que una
@@ -763,20 +788,24 @@ en instalaciones nuevas, y será eliminada en una versión futura.
.TP
.B \-6 --dhcp-script=<path>
Cuando un arriendo DHCP nuevo es creado, o uno viejo es
-destruido, el binario especificado por esta opción es ejecutado.
+destruido, el ejecutable especificado por esta opción es ejecutado.
Los argumentos para el binario son "add", "old", o "del", la dirección
-MAC del host (o "<null>"), la dirección IP, y el hostname, si es
+MAC del host, la dirección IP, y el hostname, si es
conocido. "add" significa que un arriendo ha sido creado, "del" que
ha sido destruido, y "old" es una notificación de un arriendo existente
cuando dnsmasq inicia o un cambio a una MAC o nombre host de un arriendo
existente (también, tiempo de arriendo o vencimiento y client-id, si
-leasefile-ro está fijado). El proceso es ejecutado como root (asumiendo
-que dnsmasq fue originalmente ejecutado como root) aún si dnsmasq está
-configurado para cambiar su UID a un usuario sin privilegios.
+leasefile-ro está fijado). Si la dirección MAC es de un tipo de red
+que no es ethernet, tendrá el tipo de red precolocado, por ejemplo
+"06-01:23:45:67:89:ab" para token ring. El proceso es ejecutado como root
+(asumiendo que dnsmasq fue originalmente ejecutado como root) aún si dnsmasq
+está configurado para cambiar su UID a un usuario sin privilegios.
El ambiente es heredado del usuario que ha invocado a dnsmasq, y si el
host brindó un client-id, es almacenado en la variable de ambiente
-DNSMASQ_CLIENT_ID. Si el cliente brinda información de clase de vendedor
-o usuario, estos son brindados en las variables DNSMASQ_VENDOR_CLASS y
+DNSMASQ_CLIENT_ID. Si el dominio completamente calificado del host
+es conocido, la parte de dominio es almacenada en DNSMASQ_DOMAIN. Si
+el cliente brinda información de clase de vendedoro usuario,
+estos son brindados en las variables DNSMASQ_VENDOR_CLASS y
DNSMASQ_USER_CLASS0..DNSMASQ_USER_CLASSn, pero solo para acciones "add"
y "old" cuando un host resume un arriendo existente, dado a que estos
datos no son almacenados en la base de datos de arriendos de dnsmasq.
@@ -829,11 +858,12 @@ está disponible en plataformas BSD, y es necesaria cuando se usan
puentes "estilo viejo", ya que los paquetes llegan a interfaces tap que no
tienen una dirección IP.
.TP
-.B \-s, --domain=<dominio>
-Especifica el dominio para el servidor DHCP. Esto tiene dos efectos:
-Primeramente, causa que el servidor DHCP le devuelva el dominio a
-cualquier host que lo pida. Segundamente, fija el dominio para el cual
-es legal para hosts configurados mediante DHCP reclamar. La intención es
+.B \-s, --domain=<dominio>[,<rango de IPs>]
+Especifica los dominios DNS para el servidor DHCP. Dominios pueden ser
+brindados incondicionalmente (sin el rango de IPs) o para rangos limitados. Esto
+tiene dos efectos: Primeramente, causa que el servidor DHCP le devuelva el
+dominio a cualquier host que lo pida. Segundamente, fija el dominio para el
+cual es legal para hosts configurados mediante DHCP reclamar. La intención es
restringir nombres de host para que un host no-confiado en la LAN no
pueda proclamar su nombre vía DHCP, como por ejemplo "microsoft.com" y
capturar tráfico no destinado a ella. Si ningún sufijo de dominio es
@@ -850,7 +880,28 @@ de esa máquina es disponible desde
.B dnsmasq
como "laptop" y "laptop.thekelleys.org.uk". Si el dominio es brindado
como "#" entonces el dominio es leido desde la primera directiva search
-en /etc/resolv.conf (o equivalente).
+en /etc/resolv.conf (o equivalente). El rango de direcciones puede ser
+<dirección IP>,<dirección IP> or <dirección IP>/<máscara de subred>. Ver
+.B --dhcp-fqdn el cual puede cambiar el comportamiento de dnsmasq con
+dominios.
+.TP
+.B --dhcp-fqdn
+En el modo predeterminado, dnsmasq pone los nombres no-calificados
+de clientes DHCP en el DNS. Por esta razón, los nombres deben ser únicos,
+aún si dos clientes que tienen el mismo nombre están en dominios
+diferentes. Si un segundo cliente DHCP aparece el cual tiene el mismo
+nombre que un cliente existente, el nombre es transferido al cliente nuevo. Si
+.B --dhcp-fqdn
+está fijado, este comportamiento cambia: El nombre no-calificado
+no es puesto en el DNS, solo el nombre calificado. Dos clientes DHCP con
+el mismo nombre pueden ambos quedarse con el nombre, con tal que la parte
+de dominio sea diferente (o sea que los nombres completamente calificados
+difieran). Para asegurar que todos los nombres tengan una parte de dominio,
+debe haber al menos
+.B --domain
+sin una dirección especificada cuando
+.B --dhcp-fqdn
+está fijado.
.TP
.B --enable-tftp
Habilitar la función de servidor TFTP. Esto está deliberadamente limitado
@@ -1056,9 +1107,11 @@ una del
.B dhcp-range
usado para alocar la dirección, una de cualquier
.B dhcp-host
-que coincida, y posiblemente muchas de clases de vendedor y usuario
-que coinicdan que hayan sido enviadas por el cliente DHCP.
-Cualquier opción
+que coincida (y "known" si un dhcp-host coincide), la etiqueta "bootp"
+para pedidos BOOTP, una etiqueta cuyo nombre es el nombre de la
+interface donde llegó el pedido, y posiblemente muchas de clases
+de vendedor y usuario que coincidan que hayan sido enviadas por
+el cliente DHCP. Cualquier opción
.B dhcp-option
que tenga etiquetas network-id será usada en preferencia de una opción
.B dhcp-option,
diff --git a/po/de.po b/po/de.po
index fc91815..bbc1f77 100644
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-07-20 20:03+0100\n"
+"POT-Creation-Date: 2008-11-13 20:23+0000\n"
"PO-Revision-Date: 2005-09-27 09:37+0100\n"
"Last-Translator: Simon Kelley <simon@thekelleys.org.uk>\n"
"Language-Team: German <de@li.org>\n"
@@ -15,59 +15,59 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: cache.c:695
+#: cache.c:761
#, c-format
msgid "failed to load names from %s: %s"
msgstr ""
-#: cache.c:729 dhcp.c:757
+#: cache.c:795 dhcp.c:768
#, c-format
msgid "bad address at %s line %d"
msgstr ""
# @Simon: Here I need an example to understand it :)
-#: cache.c:776 dhcp.c:771
+#: cache.c:850 dhcp.c:782
#, c-format
msgid "bad name at %s line %d"
msgstr ""
# @Simon: Here I need an example to understand it :)
-#: cache.c:783 dhcp.c:825
+#: cache.c:857 dhcp.c:848
#, c-format
msgid "read %s - %d addresses"
msgstr "lese %s - %d Adressen"
# @Simon: 'lese' is present, is that ok? If it should be past, it would be
# @Simon: "gelesen: %s - %d Adressen" - note the colon, it's a must, then.
-#: cache.c:821
+#: cache.c:895
msgid "cleared cache"
msgstr "Cache geleert"
# @Simon: "Cache geleert" is literally "Cache emptied" but I think other translations could be misleading
# @Simon: (I don't know a good german replacement for "Cache" but AFAIK "Cache" is common in german)
-#: cache.c:870
+#: cache.c:942
#, 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 nicht dem DHCP 'Mieter' von %s zugewiesen, da der Name in %smit der Adresse %s bereits existiert"
-#: cache.c:922
+#: cache.c:1018
#, c-format
msgid "time %lu"
msgstr ""
# @Simon: "Mieter" is rather 'logder, renter, tenant, lessee' but I couldn't find anything that fits better.
# @Simon: So I thought I put it in ''-marks :)
-#: cache.c:923
+#: cache.c:1019
#, fuzzy, 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:925
+#: cache.c:1021
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr ""
-#: cache.c:948
+#: cache.c:1044
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr ""
@@ -102,25 +102,25 @@ msgstr ""
msgid "infinite"
msgstr "unendlich"
-#: option.c:219
+#: option.c:223
msgid "Specify local address(es) to listen on."
msgstr "Lokale abzuhörende Adresse(n) angeben."
# @Simon: Quite literal translation, sounds not too polite in german.
# @Simon: How about: "Bitte die lokalen abzuhörende Adresse(n) angeben."
# @Simon: = "Please specify the local address(es) to listen on."
-#: option.c:220
+#: option.c:224
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Rückkehr-IP-Adresse für alle Geräte in angebenen Domänen"
# @Simon: I hope "Return ipaddr" is similar to "Return-ipaddr" and not "Return the ipaddr ... !"
-#: option.c:221
+#: option.c:225
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "'Gefälschte' Rückwärts-Ergebnisse für private Adressbereiche nach RFC1918"
# @Simon: I'm a bit unsure about the meaning of "Fake" here, and the best word for "lookup" is "Nachsehen"
# @Simon: (that is "looking-for") but I think that cannot be used. "Ergebnisse" = "results", is that near enough?
-#: option.c:222
+#: option.c:226
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Behandle IP-Adr als NXDOMAIN (wehrt Verisign-Platzhalter ab)."
@@ -131,17 +131,17 @@ msgstr "Behandle IP-Adr als NXDOMAIN (wehrt Verisign-Platzhalter ab)."
# @Simon: "Behandle IP-Adr als NXDOMAIN (gegen Verisigns Platzhalter-Gebrauch)."
# @Simon: = "Treat ipaddr as NXDOMAIN (defeats Verisigns wildcard usage)." ?
# @Simon: But the explanatory(?) effect is only a very tiny bit better, I believe - what do U think?
-#: option.c:223
+#: option.c:227
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Angabe der Größe des Caches in Einträgen (Voreinstellung: %s)."
-#: option.c:224
+#: option.c:228
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Angabe der Konfigurationsdatei (Voreinstellung: %s)."
-#: option.c:225
+#: option.c:229
msgid "Do NOT fork into the background: run in debug mode."
msgstr "NICHT in den Hintergrund gehen: Betrieb im Debug-Modus"
@@ -149,551 +149,563 @@ msgstr "NICHT in den Hintergrund gehen: Betrieb im Debug-Modus"
# @Simon: I know it sounds a bit clumsy in english, but "fork" would be hard to understand
# @Simon: and then I get a problem between "go" and "run" - so...
# @Simon: "Debug-mode" = "Fehlersuch-Modus", literally, but I think "Debug-Modus" is better :)
-#: option.c:226
+#: option.c:230
msgid "Do NOT forward queries with no domain part."
msgstr "Anfragen ohne Domänen-Teil NICHT weiterschicken"
# @Simon: "weiterschicken" is rather "pass on" (I hope) but that's the best I found.
-#: option.c:227
+#: option.c:231
msgid "Return self-pointing MX records for local hosts."
msgstr "Rückgabe auf sich selbst zeigender MX-Einträge für lokale Geräte"
# @Simon: "self-pointing" is a bit difficult, the meaning is clear but takes 3-4 words to express it in german.
# @Simon: "Geräte" is about "hard-devices". There is a word for "host" (it is "Wirt") but it would be misleading.
# @Simon: My online dict suggest "Rechner" (= Computer), but I think "hard-devices" is better because it's more general.
-#: option.c:228
+#: option.c:232
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Erweitere einfache Namen in /etc/hosts mit der Domänen-Endung"
-#: option.c:229
+#: option.c:233
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:230
+#: option.c:234
msgid "Enable DHCP in the range given with lease duration."
msgstr ""
-#: option.c:231
+#: option.c:235
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr ""
-#: option.c:232
+#: option.c:236
msgid "Set address or hostname for a specified machine."
msgstr ""
-#: option.c:233
+#: option.c:237
msgid "Read DHCP host specs from file"
msgstr ""
-#: option.c:234
+#: option.c:238
msgid "Read DHCP option specs from file"
msgstr ""
-#: option.c:235
+#: option.c:239
#, c-format
msgid "Do NOT load %s file."
msgstr ""
-#: option.c:236
+#: option.c:240
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr ""
-#: option.c:237
+#: option.c:241
msgid "Specify interface(s) to listen on."
msgstr ""
-#: option.c:238
+#: option.c:242
msgid "Specify interface(s) NOT to listen on."
msgstr ""
-#: option.c:239
+#: option.c:243
msgid "Map DHCP user class to tag."
msgstr ""
-#: option.c:240
+#: option.c:244
msgid "Map RFC3046 circuit-id to tag."
msgstr ""
-#: option.c:241
+#: option.c:245
msgid "Map RFC3046 remote-id to tag."
msgstr ""
-#: option.c:242
+#: option.c:246
msgid "Map RFC3993 subscriber-id to tag."
msgstr ""
-#: option.c:243
+#: option.c:247
msgid "Don't do DHCP for hosts with tag set."
msgstr ""
-#: option.c:244
+#: option.c:248
msgid "Force broadcast replies for hosts with tag set."
msgstr ""
-#: option.c:245
+#: option.c:249
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr ""
-#: option.c:246
+#: option.c:250
msgid "Assume we are the only DHCP server on the local network."
msgstr ""
-#: option.c:247
+#: option.c:251
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:248
+#: option.c:252
msgid "Return MX records for local hosts."
msgstr ""
-#: option.c:249
+#: option.c:253
msgid "Specify an MX record."
msgstr ""
-#: option.c:250
+#: option.c:254
msgid "Specify BOOTP options to DHCP server."
msgstr ""
-#: option.c:251
+#: option.c:255
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
-#: option.c:252
+#: option.c:256
msgid "Do NOT cache failed search results."
msgstr ""
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr ""
-#: option.c:254
+#: option.c:258
msgid "Specify options to be sent to DHCP clients."
msgstr ""
-#: option.c:255
+#: option.c:259
msgid "DHCP option sent even if the client does not request it."
msgstr ""
-#: option.c:256
+#: option.c:260
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
-#: option.c:257
+#: option.c:261
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
-#: option.c:258
+#: option.c:262
msgid "Log DNS queries."
msgstr ""
-#: option.c:259
+#: option.c:263
msgid "Force the originating port for upstream DNS queries."
msgstr ""
-#: option.c:260
+#: option.c:264
msgid "Do NOT read resolv.conf."
msgstr ""
-#: option.c:261
+#: option.c:265
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr ""
-#: option.c:262
+#: option.c:266
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
-#: option.c:263
+#: option.c:267
msgid "Never forward queries to specified domains."
msgstr ""
-#: option.c:264
+#: option.c:268
msgid "Specify the domain to be assigned in DHCP leases."
msgstr ""
-#: option.c:265
+#: option.c:269
msgid "Specify default target in an MX record."
msgstr ""
-#: option.c:266
+#: option.c:270
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
-#: option.c:267
+#: option.c:271
msgid "Specify time-to-live in seconds for negative caching."
msgstr ""
-#: option.c:268
+#: option.c:272
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr ""
-#: option.c:269
+#: option.c:273
msgid "Map DHCP vendor class to tag."
msgstr ""
-#: option.c:270
+#: option.c:274
msgid "Display dnsmasq version and copyright information."
msgstr ""
-#: option.c:271
+#: option.c:275
msgid "Translate IPv4 addresses from upstream servers."
msgstr ""
-#: option.c:272
+#: option.c:276
msgid "Specify a SRV record."
msgstr ""
-#: option.c:273
+#: option.c:277
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr ""
-#: option.c:274
+#: option.c:278
#, fuzzy, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr "Angabe der Konfigurationsdatei (Voreinstellung: %s)."
-#: option.c:275
+#: option.c:279
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:276
+#: option.c:280
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
-#: option.c:277
+#: option.c:281
msgid "Specify TXT DNS record."
msgstr ""
-#: option.c:278
+#: option.c:282
msgid "Specify PTR DNS record."
msgstr ""
-#: option.c:279
+#: option.c:283
msgid "Give DNS name to IPv4 address of interface."
msgstr ""
-#: option.c:280
+#: option.c:284
msgid "Bind only to interfaces in use."
msgstr ""
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Read DHCP static host information from %s."
msgstr ""
-#: option.c:282
+#: option.c:286
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr ""
-#: option.c:283
+#: option.c:287
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr ""
-#: option.c:284
+#: option.c:288
msgid "Enable dynamic address allocation for bootp."
msgstr ""
-#: option.c:285
+#: option.c:289
msgid "Map MAC address (with wildcards) to option set."
msgstr ""
-#: option.c:287
+#: option.c:291
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr ""
-#: option.c:289
+#: option.c:293
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:290
+#: option.c:294
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
-#: option.c:291
+#: option.c:295
msgid "Read configuration from all the files in this directory."
msgstr ""
-#: option.c:292
+#: option.c:296
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr ""
-#: option.c:293
+#: option.c:297
msgid "Do not use leasefile."
msgstr ""
-#: option.c:294
+#: option.c:298
#, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr ""
-#: option.c:295
+#: option.c:299
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr ""
-#: option.c:296
+#: option.c:300
msgid "Ignore hostnames provided by DHCP clients."
msgstr ""
-#: option.c:297
+#: option.c:301
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr ""
-#: option.c:298
+#: option.c:302
msgid "Enable integrated read-only TFTP server."
msgstr ""
-#: option.c:299
+#: option.c:303
msgid "Export files by TFTP only from the specified subtree."
msgstr ""
-#: option.c:300
+#: option.c:304
msgid "Add client IP address to tftp-root."
msgstr ""
-#: option.c:301
+#: option.c:305
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr ""
-#: option.c:302
+#: option.c:306
#, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr ""
-#: option.c:303
+#: option.c:307
msgid "Disable the TFTP blocksize extension."
msgstr ""
-#: option.c:304
+#: option.c:308
msgid "Ephemeral port range for use by TFTP transfers."
msgstr ""
-#: option.c:305
+#: option.c:309
msgid "Extra logging for DHCP."
msgstr ""
-#: option.c:306
+#: option.c:310
msgid "Enable async. logging; optionally set queue length."
msgstr ""
-#: option.c:307
+#: option.c:311
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr ""
-#: option.c:308
+#: option.c:312
msgid "Always perform DNS queries to all servers."
msgstr ""
-#: option.c:309
+#: option.c:313
msgid "Set tag if client includes option in request."
msgstr ""
-#: option.c:310
+#: option.c:314
msgid "Use alternative ports for DHCP."
msgstr ""
-#: option.c:311
+#: option.c:315
msgid "Run lease-change script as this user."
msgstr ""
-#: option.c:312
+#: option.c:316
msgid "Specify NAPTR DNS record."
msgstr ""
-#: option.c:313
+#: option.c:317
msgid "Specify lowest port available for DNS query transmission."
msgstr ""
-#: option.c:574
+#: option.c:318
+msgid "Use only fully qualified domain names for DHCP clients."
+msgstr ""
+
+#: option.c:319
+msgid "Specify alias name for LOCAL DNS name."
+msgstr ""
+
+#: option.c:580
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
-#: option.c:576
+#: option.c:582
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
-#: option.c:578
+#: option.c:584
#, c-format
msgid "Valid options are:\n"
msgstr ""
-#: option.c:618
+#: option.c:624
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:691
+#: option.c:697
msgid "bad dhcp-option"
msgstr ""
# @Simon: Here I need an example to understand it :)
-#: option.c:747
+#: option.c:753
#, fuzzy
msgid "bad IP address"
msgstr "lese %s - %d Adressen"
-#: option.c:845
+#: option.c:851
msgid "bad domain in dhcp-option"
msgstr ""
-#: option.c:903
+#: option.c:909
msgid "dhcp-option too long"
msgstr ""
-#: option.c:932
+#: option.c:938
msgid "illegal repeated flag"
msgstr ""
-#: option.c:940
+#: option.c:946
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:974
+#: option.c:983
#, c-format
msgid "cannot access directory %s: %s"
msgstr ""
-#: option.c:993 tftp.c:348
+#: option.c:1002 tftp.c:348
#, c-format
msgid "cannot access %s: %s"
msgstr ""
-#: option.c:1030
+#: option.c:1040
msgid "only one dhcp-hostsfile allowed"
msgstr ""
-#: option.c:1037
+#: option.c:1047
msgid "only one dhcp-optsfile allowed"
msgstr ""
-#: option.c:1081
+#: option.c:1091
msgid "bad MX preference"
msgstr ""
-#: option.c:1085
+#: option.c:1095
msgid "bad MX name"
msgstr ""
-#: option.c:1099
+#: option.c:1109
msgid "bad MX target"
msgstr ""
-#: option.c:1110
+#: option.c:1120
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1303 option.c:1311
+#: option.c:1352 option.c:1360
msgid "bad port"
msgstr ""
-#: option.c:1331 option.c:1356
+#: option.c:1380 option.c:1405
msgid "interface binding not supported"
msgstr ""
-#: option.c:1474
+#: option.c:1523
msgid "bad port range"
msgstr ""
-#: option.c:1491
+#: option.c:1540
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1532
+#: option.c:1581
msgid "bad dhcp-range"
msgstr ""
-#: option.c:1558
+#: option.c:1607
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1598
+#: option.c:1647
msgid "inconsistent DHCP range"
msgstr ""
-#: option.c:1766
+#: option.c:1819
msgid "bad DHCP host name"
msgstr ""
-#: option.c:1938 option.c:2181
+#: option.c:1998 option.c:2270
msgid "invalid port number"
msgstr ""
-#: option.c:2024
+#: option.c:2093
msgid "bad interface name"
msgstr ""
-#: option.c:2044
+#: option.c:2116
+msgid "duplicate CNAME"
+msgstr ""
+
+#: option.c:2133
msgid "bad PTR record"
msgstr ""
-#: option.c:2074
+#: option.c:2163
msgid "bad NAPTR record"
msgstr ""
-#: option.c:2100
+#: option.c:2189
msgid "TXT record string too long"
msgstr ""
-#: option.c:2104
+#: option.c:2193
msgid "bad TXT record"
msgstr ""
-#: option.c:2164
+#: option.c:2253
msgid "bad SRV record"
msgstr ""
-#: option.c:2173
+#: option.c:2262
msgid "bad SRV target"
msgstr ""
-#: option.c:2188
+#: option.c:2277
msgid "invalid priority"
msgstr ""
-#: option.c:2195
+#: option.c:2284
msgid "invalid weight"
msgstr ""
-#: option.c:2231
+#: option.c:2320
#, c-format
msgid "files nested too deep in %s"
msgstr ""
-#: option.c:2239 tftp.c:503
+#: option.c:2328 tftp.c:503
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: option.c:2300
+#: option.c:2389
msgid "missing \""
msgstr ""
-#: option.c:2347
+#: option.c:2436
msgid "bad option"
msgstr ""
-#: option.c:2349
+#: option.c:2438
msgid "extraneous parameter"
msgstr ""
-#: option.c:2351
+#: option.c:2440
msgid "missing parameter"
msgstr ""
-#: option.c:2359
+#: option.c:2448
msgid "error"
msgstr ""
@@ -702,79 +714,83 @@ msgstr ""
# @Simon: ("keinen Speicher" = "no memory", "... nicht bekommen" = "... not get")
# @Simon: both would be correct - but would sound rather clumsy in german
# @Simon: how about "Nicht genügend Speicher verfügbar" = "Not enough memory available" ?
-#: option.c:2365
+#: option.c:2454
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s in Zeile %d von %%s"
-#: option.c:2405 option.c:2435
+#: option.c:2502 option.c:2532
#, c-format
msgid "read %s"
msgstr ""
-#: option.c:2502
+#: option.c:2599
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
-#: option.c:2503
+#: option.c:2600
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
-#: option.c:2504
+#: option.c:2601
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
-#: option.c:2505
+#: option.c:2602
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:2506
+#: option.c:2603
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr ""
-#: option.c:2517
+#: option.c:2614
msgid "try --help"
msgstr ""
-#: option.c:2519
+#: option.c:2616
msgid "try -w"
msgstr ""
-#: option.c:2522
+#: option.c:2619
#, c-format
msgid "bad command line options: %s"
msgstr ""
-#: option.c:2563
+#: option.c:2660
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
-#: option.c:2591
+#: option.c:2688
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
-#: option.c:2601
+#: option.c:2698
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
-#: option.c:2604 network.c:724
+#: option.c:2701 network.c:721
#, c-format
msgid "failed to read %s: %s"
msgstr ""
-#: option.c:2622
+#: option.c:2719
#, c-format
msgid "no search directive found in %s"
msgstr ""
+#: option.c:2740
+msgid "there must be a default domain when --dhcp-fqdn is set"
+msgstr ""
+
#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
@@ -784,37 +800,12 @@ msgstr ""
msgid "possible DNS-rebind attack detected"
msgstr ""
-#: isc.c:77 dnsmasq.c:889
-#, c-format
-msgid "failed to access %s: %s"
-msgstr ""
-
-#: isc.c:93
-#, c-format
-msgid "failed to load %s: %s"
-msgstr ""
-
-#: isc.c:97 dnsmasq.c:911
-#, c-format
-msgid "reading %s"
-msgstr ""
-
-#: isc.c:119
-#, c-format
-msgid "bad name in %s"
-msgstr ""
-
-#: isc.c:181
-#, c-format
-msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
-msgstr ""
-
#: network.c:45
#, c-format
msgid "unknown interface %s in bridge-interface"
msgstr ""
-#: network.c:389 dnsmasq.c:194
+#: network.c:389 dnsmasq.c:186
#, c-format
msgid "failed to create listening socket: %s"
msgstr ""
@@ -839,248 +830,254 @@ msgstr ""
msgid "failed to create TFTP socket: %s"
msgstr ""
-#: network.c:631
+#: network.c:628
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr ""
-#: network.c:664
+#: network.c:661
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
-#: network.c:675
+#: network.c:672
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr ""
-#: network.c:690
+#: network.c:687
msgid "unqualified"
msgstr ""
-#: network.c:690
+#: network.c:687
msgid "names"
msgstr ""
-#: network.c:692
+#: network.c:689
msgid "default"
msgstr ""
-#: network.c:694
+#: network.c:691
msgid "domain"
msgstr ""
-#: network.c:697
+#: network.c:694
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:699
+#: network.c:696
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:702
+#: network.c:699
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr ""
-#: network.c:704
+#: network.c:701
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
-#: dnsmasq.c:122
-msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
-msgstr ""
-
-#: dnsmasq.c:144
+#: dnsmasq.c:136
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr ""
-#: dnsmasq.c:149
+#: dnsmasq.c:141
msgid "asychronous logging is not available under Solaris"
msgstr ""
-#: dnsmasq.c:165
+#: dnsmasq.c:157
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr ""
-#: dnsmasq.c:175
+#: dnsmasq.c:167
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr ""
-#: dnsmasq.c:183
+#: dnsmasq.c:175
#, c-format
msgid "unknown interface %s"
msgstr ""
-#: dnsmasq.c:189
+#: dnsmasq.c:181
#, c-format
msgid "no interface with address %s"
msgstr ""
-#: dnsmasq.c:206 dnsmasq.c:663
+#: dnsmasq.c:198 dnsmasq.c:652
#, c-format
msgid "DBus error: %s"
msgstr ""
-#: dnsmasq.c:209
+#: dnsmasq.c:201
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr ""
-#: dnsmasq.c:233
+#: dnsmasq.c:225
#, c-format
msgid "unknown user or group: %s"
msgstr ""
-#: dnsmasq.c:290
+#: dnsmasq.c:282
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr ""
-#: dnsmasq.c:302
+#: dnsmasq.c:294
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
-#: dnsmasq.c:451
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s DNS disabled"
msgstr ""
-#: dnsmasq.c:453
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cachesize %d"
msgstr ""
-#: dnsmasq.c:455
+#: dnsmasq.c:447
#, c-format
msgid "started, version %s cache disabled"
msgstr ""
-#: dnsmasq.c:457
+#: dnsmasq.c:449
#, c-format
msgid "compile time options: %s"
msgstr ""
-#: dnsmasq.c:463
+#: dnsmasq.c:455
msgid "DBus support enabled: connected to system bus"
msgstr ""
-#: dnsmasq.c:465
+#: dnsmasq.c:457
msgid "DBus support enabled: bus connection pending"
msgstr ""
-#: dnsmasq.c:470
+#: dnsmasq.c:462
#, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr ""
-#: dnsmasq.c:474
+#: dnsmasq.c:466
msgid "setting --bind-interfaces option because of OS limitations"
msgstr ""
-#: dnsmasq.c:479
+#: dnsmasq.c:471
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr ""
-#: dnsmasq.c:484
+#: dnsmasq.c:476
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr ""
-#: dnsmasq.c:487
+#: dnsmasq.c:479
msgid "warning: no upstream servers configured"
msgstr ""
-#: dnsmasq.c:491
+#: dnsmasq.c:483
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr ""
-#: dnsmasq.c:503
+#: dnsmasq.c:495
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr ""
-#: dnsmasq.c:504
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr ""
-#: dnsmasq.c:518
+#: dnsmasq.c:510
msgid "root is "
msgstr ""
-#: dnsmasq.c:518
+#: dnsmasq.c:510
msgid "enabled"
msgstr ""
-#: dnsmasq.c:520
+#: dnsmasq.c:512
msgid "secure mode"
msgstr ""
-#: dnsmasq.c:546
+#: dnsmasq.c:538
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:665
+#: dnsmasq.c:654
msgid "connected to system DBus"
msgstr ""
-#: dnsmasq.c:753
+#: dnsmasq.c:742
#, c-format
msgid "failed to create helper: %s"
msgstr ""
-#: dnsmasq.c:756
+#: dnsmasq.c:745
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
-#: dnsmasq.c:760
+#: dnsmasq.c:749
#, c-format
msgid "failed to change user-id to %s: %s"
msgstr ""
-#: dnsmasq.c:765
+#: dnsmasq.c:754
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr ""
-#: dnsmasq.c:768
+#: dnsmasq.c:757
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr ""
-#: dnsmasq.c:771
+#: dnsmasq.c:760
#, c-format
msgid "cannot open %s: %s"
msgstr ""
-#: dnsmasq.c:822
+#: dnsmasq.c:811
#, c-format
msgid "child process killed by signal %d"
msgstr ""
-#: dnsmasq.c:826
+#: dnsmasq.c:815
#, c-format
msgid "child process exited with status %d"
msgstr ""
-#: dnsmasq.c:830
+#: dnsmasq.c:819
#, c-format
msgid "failed to execute %s: %s"
msgstr ""
-#: dnsmasq.c:871
+#: dnsmasq.c:860
msgid "exiting on receipt of SIGTERM"
msgstr ""
-#: dnsmasq.c:922
+#: dnsmasq.c:878
+#, c-format
+msgid "failed to access %s: %s"
+msgstr ""
+
+#: dnsmasq.c:900
+#, c-format
+msgid "reading %s"
+msgstr ""
+
+#: dnsmasq.c:911
#, c-format
msgid "no servers found in %s, will retry"
msgstr ""
@@ -1120,42 +1117,32 @@ msgstr ""
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
-#: dhcp.c:709
+#: dhcp.c:719
#, c-format
msgid "failed to read %s:%s"
msgstr ""
-#: dhcp.c:744
+#: dhcp.c:755
#, c-format
msgid "bad line at %s line %d"
msgstr ""
-#: dhcp.c:847
+#: dhcp.c:870
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
-#: dhcp.c:850
+#: dhcp.c:873
#, c-format
msgid "duplicate IP address %s in %s."
msgstr ""
-#: dhcp.c:858
-#, c-format
-msgid "illegal domain %s in dhcp-config directive."
-msgstr ""
-
-#: dhcp.c:860
-#, c-format
-msgid "illegal domain %s in %s."
-msgstr ""
-
-#: dhcp.c:899
+#: dhcp.c:916
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:904
+#: dhcp.c:921
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
@@ -1184,151 +1171,160 @@ msgstr ""
msgid "failed to write %s: %s (retry in %us)"
msgstr ""
-#: rfc2131.c:310
+#: rfc2131.c:315
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr ""
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "with subnet selector"
msgstr ""
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "via"
msgstr ""
-#: rfc2131.c:322
+#: rfc2131.c:327
#, c-format
msgid "DHCP packet: transaction-id is %u"
msgstr ""
-#: rfc2131.c:327
+#: rfc2131.c:332
#, c-format
msgid "Available DHCP subnet: %s/%s"
msgstr ""
-#: rfc2131.c:329
+#: rfc2131.c:334
#, c-format
msgid "Available DHCP range: %s -- %s"
msgstr ""
-#: rfc2131.c:357 rfc2131.c:388
+#: rfc2131.c:362 rfc2131.c:396
msgid "disabled"
msgstr ""
-#: rfc2131.c:400 rfc2131.c:892
+#: rfc2131.c:411 rfc2131.c:928
msgid "address in use"
msgstr ""
-#: rfc2131.c:403
-msgid "no address configured"
-msgstr ""
-
-#: rfc2131.c:416 rfc2131.c:747
+#: rfc2131.c:425 rfc2131.c:765
msgid "no address available"
msgstr ""
-#: rfc2131.c:425 rfc2131.c:902
-msgid "no leases left"
+#: rfc2131.c:432 rfc2131.c:891
+msgid "wrong network"
msgstr ""
-#: rfc2131.c:428 rfc2131.c:866
-msgid "wrong network"
+#: rfc2131.c:445
+msgid "no address configured"
msgstr ""
-#: rfc2131.c:530
-#, c-format
-msgid "Ignoring domain %s for DHCP host name %s"
+#: rfc2131.c:451 rfc2131.c:941
+msgid "no leases left"
msgstr ""
-#: rfc2131.c:624
+#: rfc2131.c:640
#, c-format
msgid "Vendor class: %s"
msgstr ""
-#: rfc2131.c:626
+#: rfc2131.c:642
#, c-format
msgid "User class: %s"
msgstr ""
-#: rfc2131.c:667
+#: rfc2131.c:683
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr ""
-#: rfc2131.c:688
+#: rfc2131.c:704
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:697 rfc2131.c:1018
+#: rfc2131.c:713 rfc2131.c:1058
msgid "ignored"
msgstr ""
-#: rfc2131.c:718
+#: rfc2131.c:736
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:728
+#: rfc2131.c:746
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:731
+#: rfc2131.c:749
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:745 rfc2131.c:895
+#: rfc2131.c:763 rfc2131.c:934
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:825
+#: rfc2131.c:831
+msgid "wrong server-ID"
+msgstr ""
+
+#: rfc2131.c:850
msgid "wrong address"
msgstr ""
-#: rfc2131.c:842
+#: rfc2131.c:867
msgid "lease not found"
msgstr ""
-#: rfc2131.c:874
+#: rfc2131.c:899
msgid "address not available"
msgstr ""
-#: rfc2131.c:885
+#: rfc2131.c:910
msgid "static lease available"
msgstr ""
-#: rfc2131.c:889
+#: rfc2131.c:914
msgid "address reserved"
msgstr ""
-#: rfc2131.c:1307
+#: rfc2131.c:922
+#, c-format
+msgid "abandoning lease to %s of %s"
+msgstr ""
+
+#: rfc2131.c:1356
#, c-format
msgid "tags: %s"
msgstr ""
-#: rfc2131.c:1394
+#: rfc2131.c:1443
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:1564
+#: rfc2131.c:1599
+#, c-format
+msgid "Ignoring domain %s for DHCP host name %s"
+msgstr ""
+
+#: rfc2131.c:1617
#, c-format
msgid "requested options: %s"
msgstr ""
-#: rfc2131.c:1613
+#: rfc2131.c:1666
#, c-format
msgid "next server: %s"
msgstr ""
-#: rfc2131.c:1637
+#: rfc2131.c:1690
#, c-format
msgid "bootfile name: %s"
msgstr ""
-#: rfc2131.c:1640
+#: rfc2131.c:1693
#, c-format
msgid "server name: %s"
msgstr ""
diff --git a/po/es.po b/po/es.po
index dfb74b4..b4b2021 100644
--- a/po/es.po
+++ b/po/es.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-07-20 20:03+0100\n"
+"POT-Creation-Date: 2008-11-13 20:23+0000\n"
"PO-Revision-Date: 2005-10-07 11:04+0100\n"
"Last-Translator: Christopher Chatham <chrislinux@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
@@ -15,51 +15,51 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: cache.c:695
+#: cache.c:761
#, fuzzy, c-format
msgid "failed to load names from %s: %s"
msgstr "no se pudo cargar nombres desde %s: %s"
-#: cache.c:729 dhcp.c:757
+#: cache.c:795 dhcp.c:768
#, fuzzy, c-format
msgid "bad address at %s line %d"
msgstr "dirección errónea en %s línea %d"
-#: cache.c:776 dhcp.c:771
+#: cache.c:850 dhcp.c:782
#, c-format
msgid "bad name at %s line %d"
msgstr "nombre erróneo en %s línea %d"
-#: cache.c:783 dhcp.c:825
+#: cache.c:857 dhcp.c:848
#, c-format
msgid "read %s - %d addresses"
msgstr "direcciónes %s - %d leídas"
-#: cache.c:821
+#: cache.c:895
msgid "cleared cache"
msgstr "el caché fue liberado"
-#: cache.c:870
+#: cache.c:942
#, 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:922
+#: cache.c:1018
#, c-format
msgid "time %lu"
msgstr "tiempo %lu"
-#: cache.c:923
+#: cache.c:1019
#, 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:925
+#: cache.c:1021
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr "búsquedas reenviadas %u, búsquedas respondidas localmente %u"
-#: cache.c:948
+#: cache.c:1044
#, 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"
@@ -88,408 +88,416 @@ msgstr "no se pudo alocar %d bytes"
msgid "infinite"
msgstr "infinito"
-#: option.c:219
+#: option.c:223
msgid "Specify local address(es) to listen on."
msgstr "Especificar dirección(es) locales dónde escuchar."
-#: option.c:220
+#: option.c:224
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:221
+#: option.c:225
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Falsificar búsquedas reversas para rangos de dirección privados RFC1918."
-#: option.c:222
+#: option.c:226
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Tratar ipaddr (dirección IP) como NXDOMAIN (derrota comodín Verisign)."
-#: option.c:223
+#: option.c:227
#, 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:224
+#: option.c:228
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Especificar archivo de configuración (%s por predeterminado)."
-#: option.c:225
+#: option.c:229
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:226
+#: option.c:230
msgid "Do NOT forward queries with no domain part."
msgstr "NO reenviar búsquedas sin parte de dominio."
-#: option.c:227
+#: option.c:231
msgid "Return self-pointing MX records for local hosts."
msgstr "Retornar expedientes MX auto-señaladores para hosts locales."
-#: option.c:228
+#: option.c:232
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:229
+#: option.c:233
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "No reenviar pedidos DNS falsos desde máquinas Windows."
-#: option.c:230
+#: option.c:234
msgid "Enable DHCP in the range given with lease duration."
msgstr "Habilitar DHCP dentro del rango brindado con duración del arriendo."
-#: option.c:231
+#: option.c:235
#, 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:232
+#: option.c:236
msgid "Set address or hostname for a specified machine."
msgstr "Fijar dirección o nombre de host para una máquina especificada."
-#: option.c:233
+#: option.c:237
msgid "Read DHCP host specs from file"
msgstr "Leer especificaciones DHCP de host desde archivo"
-#: option.c:234
+#: option.c:238
msgid "Read DHCP option specs from file"
msgstr "Leer opciones DHCP de host desde archivo"
-#: option.c:235
+#: option.c:239
#, c-format
msgid "Do NOT load %s file."
msgstr "NO cargar archivo %s."
-#: option.c:236
+#: option.c:240
#, 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:237
+#: option.c:241
msgid "Specify interface(s) to listen on."
msgstr "Especificar interface(s) donde escuchar."
-#: option.c:238
+#: option.c:242
msgid "Specify interface(s) NOT to listen on."
msgstr "Especificar interface(s) donde NO escuchar."
-#: option.c:239
+#: option.c:243
#, fuzzy
msgid "Map DHCP user class to tag."
msgstr "Trazar clase de usuario DHCP a etiqueta."
-#: option.c:240
+#: option.c:244
msgid "Map RFC3046 circuit-id to tag."
msgstr "Trazar circuit-id (identificación de circuito) RFC3046 a etiqueta."
-#: option.c:241
+#: option.c:245
msgid "Map RFC3046 remote-id to tag."
msgstr "Trazar remote-id (identificación remota) RFC3046 a etiqueta."
-#: option.c:242
+#: option.c:246
msgid "Map RFC3993 subscriber-id to tag."
msgstr "Trazar subscriber-id (identificación de suscritor) RFC3993 a etiqueta."
-#: option.c:243
+#: option.c:247
#, fuzzy
msgid "Don't do DHCP for hosts with tag set."
msgstr "No hacer DHCP para hosts con etiqueta fijada."
-#: option.c:244
+#: option.c:248
#, fuzzy
msgid "Force broadcast replies for hosts with tag set."
msgstr "Forzar respuestas broadcast para hosts con etiqueta fijada."
-#: option.c:245
+#: option.c:249
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:246
+#: option.c:250
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:247
+#: option.c:251
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Especificar donde almacenar arriendos DHCP (%s por predeterminado)."
-#: option.c:248
+#: option.c:252
msgid "Return MX records for local hosts."
msgstr "Retornar expedientes MX para hosts locales."
-#: option.c:249
+#: option.c:253
msgid "Specify an MX record."
msgstr "Especificar un expediente MX."
-#: option.c:250
+#: option.c:254
msgid "Specify BOOTP options to DHCP server."
msgstr "Especificar opciones BOOTP a servidor DHCP."
-#: option.c:251
+#: option.c:255
#, 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:252
+#: option.c:256
msgid "Do NOT cache failed search results."
msgstr "NO almacenar en caché resultados de búsquedas fallidas."
-#: option.c:253
+#: option.c:257
#, 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:254
+#: option.c:258
#, fuzzy
msgid "Specify options to be sent to DHCP clients."
msgstr "Especificar opciones para ser enviadas a clientes DHCP."
-#: option.c:255
+#: option.c:259
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:256
+#: option.c:260
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:257
+#: option.c:261
#, 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:258
+#: option.c:262
#, fuzzy
msgid "Log DNS queries."
msgstr "Bitacorear búsquedas DNS."
-#: option.c:259
+#: option.c:263
#, fuzzy
msgid "Force the originating port for upstream DNS queries."
msgstr "Enforzar el puerto original para búsquedas DNS upstream."
-#: option.c:260
+#: option.c:264
msgid "Do NOT read resolv.conf."
msgstr "NO leer resolv.conf."
-#: option.c:261
+#: option.c:265
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Especificar el path hacia resolv.conf (%s por predeterminado)."
-#: option.c:262
+#: option.c:266
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Especificar dirección(es) de servidores upstream con dominios opcionales."
-#: option.c:263
+#: option.c:267
msgid "Never forward queries to specified domains."
msgstr "Nunca reenviar búsquedas a dominios especificados."
-#: option.c:264
+#: option.c:268
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Especificar el dominio para ser asignado en arriendos DHCP."
-#: option.c:265
+#: option.c:269
msgid "Specify default target in an MX record."
msgstr "Especificar destino predeterminado en un expediente MX."
-#: option.c:266
+#: option.c:270
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:267
+#: option.c:271
#, fuzzy
msgid "Specify time-to-live in seconds for negative caching."
msgstr "Especificar tiempo de vida en segundos para caché negativo."
-#: option.c:268
+#: option.c:272
#, 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:269
+#: option.c:273
#, fuzzy
msgid "Map DHCP vendor class to tag."
msgstr "Trazar clase de vendedor DHCP a etiqueta."
-#: option.c:270
+#: option.c:274
msgid "Display dnsmasq version and copyright information."
msgstr "Mostrar información sobre la versión y copyright de dnsmasq."
-#: option.c:271
+#: option.c:275
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Traducir direcciones IPv4 desde servidores upstream."
-#: option.c:272
+#: option.c:276
msgid "Specify a SRV record."
msgstr "Especificar un expediente SRV."
-#: option.c:273
+#: option.c:277
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr "Mostrar este mensaje. Usar --help dhcp para opciones DHCP conocidas."
-#: option.c:274
+#: option.c:278
#, fuzzy, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr "Especificar path de archivo PID (%s por predeterminado)."
-#: option.c:275
+#: option.c:279
#, 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:276
+#: option.c:280
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:277
+#: option.c:281
msgid "Specify TXT DNS record."
msgstr "Especificar expediente DNS TXT."
-#: option.c:278
+#: option.c:282
#, fuzzy
msgid "Specify PTR DNS record."
msgstr "Especificar expediente DNS PTR."
-#: option.c:279
+#: option.c:283
msgid "Give DNS name to IPv4 address of interface."
msgstr "Otorgar nombre DNS a dirección IPv4 de interface."
-#: option.c:280
+#: option.c:284
msgid "Bind only to interfaces in use."
msgstr "Acoplar solo a interfaces en uso."
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Leer información sobre hosts DHCP estáticos desde %s."
-#: option.c:282
+#: option.c:286
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Habilitar la interface DBus para fijar servidores upstream, etc."
-#: option.c:283
+#: option.c:287
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "No proveer DHCP en esta interface, sólo proveer DNS."
-#: option.c:284
+#: option.c:288
msgid "Enable dynamic address allocation for bootp."
msgstr "Habilitar alocación dinámica de direcciónes para BOOTP."
-#: option.c:285
+#: option.c:289
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Trazar dirección MAC (con comodínes) a opción fijada."
-#: option.c:287
+#: option.c:291
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr "Tratar pedidos DHCP en alias como si llegaran de la interface."
-#: option.c:289
+#: option.c:293
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr "Deshabilitar verificación de direcciónes echo ICMP en el servidor DHCP."
-#: option.c:290
+#: option.c:294
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:291
+#: option.c:295
msgid "Read configuration from all the files in this directory."
msgstr "Leer configuración desde todos los archivos en este directorio."
-#: option.c:292
+#: option.c:296
#, 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:293
+#: option.c:297
msgid "Do not use leasefile."
msgstr "No usar archivo de arriendos."
-#: option.c:294
+#: option.c:298
#, 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:295
+#: option.c:299
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr "Liberar caché DNS al recargar %s."
-#: option.c:296
+#: option.c:300
msgid "Ignore hostnames provided by DHCP clients."
msgstr "Ignorar nombres de host brindados por clientes DHCP."
-#: option.c:297
+#: option.c:301
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:298
+#: option.c:302
msgid "Enable integrated read-only TFTP server."
msgstr "Habilitar servidor integrado TFTP solo-lectura."
-#: option.c:299
+#: option.c:303
msgid "Export files by TFTP only from the specified subtree."
msgstr "Exportar archivos vía TFTP solo del sub-árbol especificado."
-#: option.c:300
+#: option.c:304
msgid "Add client IP address to tftp-root."
msgstr "Agregar IP de cliente a tftp-root."
-#: option.c:301
+#: option.c:305
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:302
+#: option.c:306
#, 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:303
+#: option.c:307
msgid "Disable the TFTP blocksize extension."
msgstr "Deshabilitar la extensión TFTP blocksize (tamaño de bloque)."
-#: option.c:304
+#: option.c:308
msgid "Ephemeral port range for use by TFTP transfers."
msgstr "Rango de puertos efímeros para ser usados por transferencias TFTP."
-#: option.c:305
+#: option.c:309
msgid "Extra logging for DHCP."
msgstr "Bitacoreo extra para DHCP."
-#: option.c:306
+#: option.c:310
msgid "Enable async. logging; optionally set queue length."
msgstr "Habilitar bitacoreo asincrónico; opcionalmente fijar tamaño de cola."
-#: option.c:307
+#: option.c:311
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr "Detener revinculación DNS. Filtrar rangos de IP privados al resolver."
-#: option.c:308
+#: option.c:312
msgid "Always perform DNS queries to all servers."
msgstr "Siempre realizar búsquedas DNS a todos los servidores."
-#: option.c:309
+#: option.c:313
msgid "Set tag if client includes option in request."
msgstr "Fijar etiqueta si cliente incluye opción en pedido."
-#: option.c:310
+#: option.c:314
msgid "Use alternative ports for DHCP."
msgstr "Usar puertos alternativos para DHCP."
-#: option.c:311
+#: option.c:315
msgid "Run lease-change script as this user."
msgstr "Correr archivo guión de cambio de arriendos como este usuario."
-#: option.c:312
+#: option.c:316
#, fuzzy
msgid "Specify NAPTR DNS record."
msgstr "Especificar expediente DNS NAPTR."
-#: option.c:313
+#: option.c:317
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:574
+#: option.c:318
+msgid "Use only fully qualified domain names for DHCP clients."
+msgstr "Usar solo nombres de dominio completamente calificados para clientes DHCP."
+
+#: option.c:319
+msgid "Specify alias name for LOCAL DNS name."
+msgstr "Especificar nombre alias para nombre DNS LOCAL."
+
+#: option.c:580
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -498,205 +506,209 @@ msgstr ""
"Modo de uso: dnsmasq [opciones]\n"
"\n"
-#: option.c:576
+#: option.c:582
#, 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:578
+#: option.c:584
#, fuzzy, c-format
msgid "Valid options are:\n"
msgstr "Opciones válidas son :\n"
-#: option.c:618
+#: option.c:624
#, c-format
msgid "Known DHCP options:\n"
msgstr "Opciones DHCP conocidas:\n"
-#: option.c:691
+#: option.c:697
msgid "bad dhcp-option"
msgstr "opción dhcp-option errónea"
-#: option.c:747
+#: option.c:753
#, fuzzy
msgid "bad IP address"
msgstr "dirección IP errónea"
-#: option.c:845
+#: option.c:851
msgid "bad domain in dhcp-option"
msgstr "dominio erróneo en dhcp-option"
-#: option.c:903
+#: option.c:909
msgid "dhcp-option too long"
msgstr "opción dhcp-option demasiado larga"
-#: option.c:932
+#: option.c:938
msgid "illegal repeated flag"
msgstr "opción repetida ilegal"
-#: option.c:940
+#: option.c:946
msgid "illegal repeated keyword"
msgstr "palabra clave repetida ilegal"
-#: option.c:974
+#: option.c:983
#, fuzzy, c-format
msgid "cannot access directory %s: %s"
msgstr "no se puede accesar directorio %s: %s"
-#: option.c:993 tftp.c:348
+#: option.c:1002 tftp.c:348
#, fuzzy, c-format
msgid "cannot access %s: %s"
msgstr "no se puede accesar %s: %s"
-#: option.c:1030
+#: option.c:1040
#, fuzzy
msgid "only one dhcp-hostsfile allowed"
msgstr "solo un dhcp-hostsfile permitido"
-#: option.c:1037
+#: option.c:1047
#, fuzzy
msgid "only one dhcp-optsfile allowed"
msgstr "solo un dhcp-optsfile permitido"
-#: option.c:1081
+#: option.c:1091
msgid "bad MX preference"
msgstr "preferencia MX errónea"
-#: option.c:1085
+#: option.c:1095
msgid "bad MX name"
msgstr "nombre MX erróneo"
-#: option.c:1099
+#: option.c:1109
msgid "bad MX target"
msgstr "destino MX erróneo"
-#: option.c:1110
+#: option.c:1120
msgid "cannot run scripts under uClinux"
msgstr "no se pueden correr archivos guiónes bajo uClinux"
-#: option.c:1303 option.c:1311
+#: option.c:1352 option.c:1360
msgid "bad port"
msgstr "puerto erróneo"
-#: option.c:1331 option.c:1356
+#: option.c:1380 option.c:1405
msgid "interface binding not supported"
msgstr "vinculación de interface no está soportado"
-#: option.c:1474
+#: option.c:1523
#, fuzzy
msgid "bad port range"
msgstr "rango de puertos erróneo"
-#: option.c:1491
+#: option.c:1540
msgid "bad bridge-interface"
msgstr "opción bridge-interface (interface puente) errónea"
-#: option.c:1532
+#: option.c:1581
msgid "bad dhcp-range"
msgstr "opción dhcp-range (rango DHCP) errónea"
-#: option.c:1558
+#: option.c:1607
msgid "only one netid tag allowed"
msgstr "solo una etiqueta netid permitida"
-#: option.c:1598
+#: option.c:1647
msgid "inconsistent DHCP range"
msgstr "rango DHCP inconsistente"
-#: option.c:1766
+#: option.c:1819
#, fuzzy
msgid "bad DHCP host name"
msgstr "nombre de host DHCP erróneo"
-#: option.c:1938 option.c:2181
+#: option.c:1998 option.c:2270
msgid "invalid port number"
msgstr "número de puerto inválido"
-#: option.c:2024
+#: option.c:2093
#, fuzzy
msgid "bad interface name"
msgstr "nombre de interface erróneo"
-#: option.c:2044
+#: option.c:2116
+msgid "duplicate CNAME"
+msgstr "CNAME duplicado"
+
+#: option.c:2133
#, fuzzy
msgid "bad PTR record"
msgstr "expediente PTR erróneo"
-#: option.c:2074
+#: option.c:2163
#, fuzzy
msgid "bad NAPTR record"
msgstr "expediente NAPTR erróneo"
-#: option.c:2100
+#: option.c:2189
msgid "TXT record string too long"
msgstr "expediente TXT demasiado largo"
-#: option.c:2104
+#: option.c:2193
msgid "bad TXT record"
msgstr "expediente TXT erróneo"
-#: option.c:2164
+#: option.c:2253
msgid "bad SRV record"
msgstr "expediente SRV erróneo"
-#: option.c:2173
+#: option.c:2262
msgid "bad SRV target"
msgstr "destino SRV erróneo"
-#: option.c:2188
+#: option.c:2277
msgid "invalid priority"
msgstr "prioridad inválida"
-#: option.c:2195
+#: option.c:2284
msgid "invalid weight"
msgstr "peso inválido"
-#: option.c:2231
+#: option.c:2320
#, c-format
msgid "files nested too deep in %s"
msgstr "archivos jerarquizados demasiado profundo en %s"
-#: option.c:2239 tftp.c:503
+#: option.c:2328 tftp.c:503
#, c-format
msgid "cannot read %s: %s"
msgstr "no se puede leer %s: %s"
-#: option.c:2300
+#: option.c:2389
msgid "missing \""
msgstr "falta \""
-#: option.c:2347
+#: option.c:2436
msgid "bad option"
msgstr "opción errónea"
-#: option.c:2349
+#: option.c:2438
msgid "extraneous parameter"
msgstr "parámetro extraño"
-#: option.c:2351
+#: option.c:2440
msgid "missing parameter"
msgstr "parámetro ausente"
-#: option.c:2359
+#: option.c:2448
msgid "error"
msgstr "error"
-#: option.c:2365
+#: option.c:2454
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s en línea %d de %%s"
-#: option.c:2405 option.c:2435
+#: option.c:2502 option.c:2532
#, fuzzy, c-format
msgid "read %s"
msgstr "leyendo %s"
-#: option.c:2502
+#: option.c:2599
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq versión %s %s\n"
-#: option.c:2503
+#: option.c:2600
#, c-format
msgid ""
"Compile time options %s\n"
@@ -705,57 +717,61 @@ msgstr ""
"Opciones de compilación %s\n"
"\n"
-#: option.c:2504
+#: option.c:2601
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Este software viene SIN NINGUNA GARANTIA.\n"
-#: option.c:2505
+#: option.c:2602
#, 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:2506
+#: option.c:2603
#, 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:2517
+#: option.c:2614
msgid "try --help"
msgstr "pruebe --help"
-#: option.c:2519
+#: option.c:2616
msgid "try -w"
msgstr "pruebe -w"
-#: option.c:2522
+#: option.c:2619
#, fuzzy, c-format
msgid "bad command line options: %s"
msgstr "opciones de línea de comandos erróneas: %s"
-#: option.c:2563
+#: option.c:2660
#, c-format
msgid "cannot get host-name: %s"
msgstr "no se puede obtener host-name (nombre de host): %s"
-#: option.c:2591
+#: option.c:2688
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "solo un archivo resolv.conf permitido en modo no-poll."
-#: option.c:2601
+#: option.c:2698
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:2604 network.c:724
+#: option.c:2701 network.c:721
#, fuzzy, c-format
msgid "failed to read %s: %s"
msgstr "no se pudo leer %s: %s"
-#: option.c:2622
+#: option.c:2719
#, c-format
msgid "no search directive found in %s"
msgstr "ninguna directiva de búsqueda encontrada en %s"
+#: option.c:2740
+msgid "there must be a default domain when --dhcp-fqdn is set"
+msgstr "debe haber un dominio predeterminado cuando --dhcp-fqdn está fijado"
+
#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
@@ -765,37 +781,12 @@ msgstr "servidor DNS %s se reusó a hacer una búsqueda recursiva"
msgid "possible DNS-rebind attack detected"
msgstr "posible ataque de revinculación DNS detectado"
-#: isc.c:77 dnsmasq.c:889
-#, fuzzy, c-format
-msgid "failed to access %s: %s"
-msgstr "no se pudo accesar %s: %s"
-
-#: isc.c:93
-#, fuzzy, c-format
-msgid "failed to load %s: %s"
-msgstr "no se pudo cargar %s: %s"
-
-#: isc.c:97 dnsmasq.c:911
-#, c-format
-msgid "reading %s"
-msgstr "leyendo %s"
-
-#: isc.c:119
-#, c-format
-msgid "bad name in %s"
-msgstr "nombre erróneo en %s"
-
-#: isc.c:181
-#, c-format
-msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
-msgstr "Ignorando arriendo DHCP para %s porque tiene una parte ilegal de dominio"
-
#: network.c:45
#, fuzzy, c-format
msgid "unknown interface %s in bridge-interface"
msgstr "interface desconocida %s en bridge-interface"
-#: network.c:389 dnsmasq.c:194
+#: network.c:389 dnsmasq.c:186
#, c-format
msgid "failed to create listening socket: %s"
msgstr "no se pudo crear un socket escuchador: %s"
@@ -820,252 +811,258 @@ msgstr "no se pudo escuchar en socket: %s"
msgid "failed to create TFTP socket: %s"
msgstr "no se pudo crear socket TFTP: %s"
-#: network.c:631
+#: network.c:628
#, fuzzy, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "no se pudo acoplar socket escuchador para %s: %s"
-#: network.c:664
+#: network.c:661
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorando servidor DNS %s - interface local"
-#: network.c:675
+#: network.c:672
#, fuzzy, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr "ignorando servidor DNS %s - no se puede crear/acoplar socket: %s"
-#: network.c:690
+#: network.c:687
msgid "unqualified"
msgstr "no calificado"
-#: network.c:690
+#: network.c:687
msgid "names"
msgstr "nombres"
-#: network.c:692
+#: network.c:689
msgid "default"
msgstr "predeterminado"
-#: network.c:694
+#: network.c:691
msgid "domain"
msgstr "dominio"
-#: network.c:697
+#: network.c:694
#, c-format
msgid "using local addresses only for %s %s"
msgstr "usando direcciones locales solo para %s %s"
-#: network.c:699
+#: network.c:696
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "usando servidor DNS %s#%d para %s %s"
-#: network.c:702
+#: network.c:699
#, fuzzy, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "usando servidor DNS %s#%d(vía %s)"
-#: network.c:704
+#: network.c:701
#, c-format
msgid "using nameserver %s#%d"
msgstr "usando servidor DNS %s#%d"
-#: dnsmasq.c:122
-msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
-msgstr "integración dhcpd ISC no disponible: fijar HAVE_ISC_READER en src/config.h"
-
-#: dnsmasq.c:144
+#: dnsmasq.c:136
#, 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:149
+#: dnsmasq.c:141
#, fuzzy
msgid "asychronous logging is not available under Solaris"
msgstr "bitacoreo asincrónico no está disponible bajo Solaris"
-#: dnsmasq.c:165
+#: dnsmasq.c:157
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr "debe fijarse exáctamente una interface en sistemas rotos sin IP_RECVIF"
-#: dnsmasq.c:175
+#: dnsmasq.c:167
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr "no se pudo encontrar lista de interfaces: %s"
-#: dnsmasq.c:183
+#: dnsmasq.c:175
#, c-format
msgid "unknown interface %s"
msgstr "interface desconocida %s"
-#: dnsmasq.c:189
+#: dnsmasq.c:181
#, c-format
msgid "no interface with address %s"
msgstr "ninguna interface con dirección %s"
-#: dnsmasq.c:206 dnsmasq.c:663
+#: dnsmasq.c:198 dnsmasq.c:652
#, c-format
msgid "DBus error: %s"
msgstr "error DBus: %s"
-#: dnsmasq.c:209
+#: dnsmasq.c:201
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus no disponible: fijar HAVE_DBUS en src/config.h"
-#: dnsmasq.c:233
+#: dnsmasq.c:225
#, c-format
msgid "unknown user or group: %s"
msgstr "usuario o grupo desconocido: %s"
-#: dnsmasq.c:290
+#: dnsmasq.c:282
#, 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:302
+#: dnsmasq.c:294
#, c-format
msgid "cannot fork into background: %s"
msgstr "no se puede hacer fork hacia el fondo: %s"
-#: dnsmasq.c:451
+#: dnsmasq.c:443
#, fuzzy, c-format
msgid "started, version %s DNS disabled"
msgstr "iniciado, versión %s DNS deshabilitado"
-#: dnsmasq.c:453
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cachesize %d"
msgstr "iniciado, versión %s tamaño de caché %d"
-#: dnsmasq.c:455
+#: dnsmasq.c:447
#, c-format
msgid "started, version %s cache disabled"
msgstr "iniciado, versión %s caché deshabilitado"
-#: dnsmasq.c:457
+#: dnsmasq.c:449
#, c-format
msgid "compile time options: %s"
msgstr "opciones de compilación: %s"
-#: dnsmasq.c:463
+#: dnsmasq.c:455
msgid "DBus support enabled: connected to system bus"
msgstr "soporte DBus habilitado: conectado a bus de sistema"
-#: dnsmasq.c:465
+#: dnsmasq.c:457
msgid "DBus support enabled: bus connection pending"
msgstr "soporte DBus habilitado: conección a bus pendiente"
-#: dnsmasq.c:470
+#: dnsmasq.c:462
#, 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:474
+#: dnsmasq.c:466
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "fijando opción --bind-interfaces debido a limitaciones de sistema operativo"
-#: dnsmasq.c:479
+#: dnsmasq.c:471
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "advertencia: interface %s no existe actuálmente"
-#: dnsmasq.c:484
+#: dnsmasq.c:476
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:487
+#: dnsmasq.c:479
#, fuzzy
msgid "warning: no upstream servers configured"
msgstr "advertencia: ningún servidor upstream configurado"
-#: dnsmasq.c:491
+#: dnsmasq.c:483
#, 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:503
+#: dnsmasq.c:495
#, 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:504
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, rango de IPs %s -- %s, tiempo de arriendo %s"
-#: dnsmasq.c:518
+#: dnsmasq.c:510
msgid "root is "
msgstr "root es "
-#: dnsmasq.c:518
+#: dnsmasq.c:510
#, fuzzy
msgid "enabled"
msgstr "habilitado"
-#: dnsmasq.c:520
+#: dnsmasq.c:512
msgid "secure mode"
msgstr "modo seguro"
-#: dnsmasq.c:546
+#: dnsmasq.c:538
#, 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:665
+#: dnsmasq.c:654
msgid "connected to system DBus"
msgstr "conectado a DBus de sistema"
-#: dnsmasq.c:753
+#: dnsmasq.c:742
#, fuzzy, c-format
msgid "failed to create helper: %s"
msgstr "no se pudo crear ayudante: %s"
-#: dnsmasq.c:756
+#: dnsmasq.c:745
#, fuzzy, c-format
msgid "setting capabilities failed: %s"
msgstr "configuración de capacidades ha fallado: %s"
-#: dnsmasq.c:760
+#: dnsmasq.c:749
#, fuzzy, c-format
msgid "failed to change user-id to %s: %s"
msgstr "no se pudo cambiar user-id a %s: %s"
-#: dnsmasq.c:765
+#: dnsmasq.c:754
#, fuzzy, c-format
msgid "failed to change group-id to %s: %s"
msgstr "no se pudo cambiar group-id a %s: %s"
-#: dnsmasq.c:768
+#: dnsmasq.c:757
#, fuzzy, c-format
msgid "failed to open pidfile %s: %s"
msgstr "no se pudo abrir archivo PID %s: %s"
-#: dnsmasq.c:771
+#: dnsmasq.c:760
#, fuzzy, c-format
msgid "cannot open %s: %s"
msgstr "no se puede abrir %s: %s"
-#: dnsmasq.c:822
+#: dnsmasq.c:811
#, c-format
msgid "child process killed by signal %d"
msgstr "proceso hijo eliminado por señal %d"
-#: dnsmasq.c:826
+#: dnsmasq.c:815
#, c-format
msgid "child process exited with status %d"
msgstr "proceso hijo hizo exit con estado %d"
-#: dnsmasq.c:830
+#: dnsmasq.c:819
#, fuzzy, c-format
msgid "failed to execute %s: %s"
msgstr "no se pudo ejecutar %s: %s"
-#: dnsmasq.c:871
+#: dnsmasq.c:860
msgid "exiting on receipt of SIGTERM"
msgstr "saliendo al recibir SIGTERM"
-#: dnsmasq.c:922
+#: dnsmasq.c:878
+#, fuzzy, c-format
+msgid "failed to access %s: %s"
+msgstr "no se pudo accesar %s: %s"
+
+#: dnsmasq.c:900
+#, c-format
+msgid "reading %s"
+msgstr "leyendo %s"
+
+#: dnsmasq.c:911
#, fuzzy, c-format
msgid "no servers found in %s, will retry"
msgstr "ningún servidor encontrado en %s, se reintentará"
@@ -1105,42 +1102,32 @@ msgstr "Paquete DHCP recibido en %s sin dirección"
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:709
+#: dhcp.c:719
#, fuzzy, c-format
msgid "failed to read %s:%s"
msgstr "no se pudo leer %s:%s"
-#: dhcp.c:744
+#: dhcp.c:755
#, fuzzy, c-format
msgid "bad line at %s line %d"
msgstr "línea errónea en %s línea %d"
-#: dhcp.c:847
+#: dhcp.c:870
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "dirección IP duplicada %s en directiva dhcp-config."
-#: dhcp.c:850
+#: dhcp.c:873
#, fuzzy, c-format
msgid "duplicate IP address %s in %s."
msgstr "dirección IP duplicada %s en %s."
-#: dhcp.c:858
-#, fuzzy, c-format
-msgid "illegal domain %s in dhcp-config directive."
-msgstr "dominio ilegal %s en directiva dhcp-config."
-
-#: dhcp.c:860
-#, c-format
-msgid "illegal domain %s in %s."
-msgstr "dominio ilegal %s en %s."
-
-#: dhcp.c:899
+#: dhcp.c:916
#, 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:904
+#: dhcp.c:921
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "dirección IP duplicada %s (%s) en directiva dhcp-config"
@@ -1169,151 +1156,160 @@ msgstr "archivo guión lease-init retornó exit code %s"
msgid "failed to write %s: %s (retry in %us)"
msgstr "error al escribir %s: %s (reintentar en %us)"
-#: rfc2131.c:310
+#: rfc2131.c:315
#, 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:311
+#: rfc2131.c:316
msgid "with subnet selector"
msgstr "con selector de subred"
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "via"
msgstr "vía"
-#: rfc2131.c:322
+#: rfc2131.c:327
#, c-format
msgid "DHCP packet: transaction-id is %u"
msgstr "paquete DHCP: transaction-id (identificación de transacción) es %u"
-#: rfc2131.c:327
+#: rfc2131.c:332
#, c-format
msgid "Available DHCP subnet: %s/%s"
msgstr "Subred DHCP disponible: %s/%s"
-#: rfc2131.c:329
+#: rfc2131.c:334
#, c-format
msgid "Available DHCP range: %s -- %s"
msgstr "Rango DHCP disponible: %s -- %s"
-#: rfc2131.c:357 rfc2131.c:388
+#: rfc2131.c:362 rfc2131.c:396
msgid "disabled"
msgstr "deshabilitado"
-#: rfc2131.c:400 rfc2131.c:892
+#: rfc2131.c:411 rfc2131.c:928
msgid "address in use"
msgstr "dirección en uso"
-#: rfc2131.c:403
-msgid "no address configured"
-msgstr "ninguna dirección configurada"
-
-#: rfc2131.c:416 rfc2131.c:747
+#: rfc2131.c:425 rfc2131.c:765
msgid "no address available"
msgstr "ninguna dirección disponible"
-#: rfc2131.c:425 rfc2131.c:902
-msgid "no leases left"
-msgstr "no sobra ningún arriendo"
-
-#: rfc2131.c:428 rfc2131.c:866
+#: rfc2131.c:432 rfc2131.c:891
msgid "wrong network"
msgstr "red equivocada"
-#: rfc2131.c:530
-#, c-format
-msgid "Ignoring domain %s for DHCP host name %s"
-msgstr "Ignorando dominio %s para nombre de host DHCP %s"
+#: rfc2131.c:445
+msgid "no address configured"
+msgstr "ninguna dirección configurada"
+
+#: rfc2131.c:451 rfc2131.c:941
+msgid "no leases left"
+msgstr "no sobra ningún arriendo"
-#: rfc2131.c:624
+#: rfc2131.c:640
#, c-format
msgid "Vendor class: %s"
msgstr "Clase de vendedor: %s"
-#: rfc2131.c:626
+#: rfc2131.c:642
#, c-format
msgid "User class: %s"
msgstr "Clase de usuario: %s"
-#: rfc2131.c:667
+#: rfc2131.c:683
#, fuzzy, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "deshabilitando dirección DHCP estática %s para %s"
-#: rfc2131.c:688
+#: rfc2131.c:704
msgid "unknown lease"
msgstr "arriendo desconocido"
-#: rfc2131.c:697 rfc2131.c:1018
+#: rfc2131.c:713 rfc2131.c:1058
msgid "ignored"
msgstr "ignorado"
-#: rfc2131.c:718
+#: rfc2131.c:736
#, 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:728
+#: rfc2131.c:746
#, 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:731
+#: rfc2131.c:749
#, 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:745 rfc2131.c:895
+#: rfc2131.c:763 rfc2131.c:934
msgid "no unique-id"
msgstr "ningún unique-id (identificación única)"
-#: rfc2131.c:825
+#: rfc2131.c:831
+msgid "wrong server-ID"
+msgstr "ID de servidor equivocada"
+
+#: rfc2131.c:850
msgid "wrong address"
msgstr "dirección equivocada"
-#: rfc2131.c:842
+#: rfc2131.c:867
msgid "lease not found"
msgstr "arriendo no encontrado"
-#: rfc2131.c:874
+#: rfc2131.c:899
msgid "address not available"
msgstr "dirección no disponible"
-#: rfc2131.c:885
+#: rfc2131.c:910
msgid "static lease available"
msgstr "arriendo estático disponible"
-#: rfc2131.c:889
+#: rfc2131.c:914
msgid "address reserved"
msgstr "dirección reservada"
-#: rfc2131.c:1307
+#: rfc2131.c:922
+#, c-format
+msgid "abandoning lease to %s of %s"
+msgstr "abandonando arriendo a %s de %s"
+
+#: rfc2131.c:1356
#, c-format
msgid "tags: %s"
msgstr "etiquetas: %s"
-#: rfc2131.c:1394
+#: rfc2131.c:1443
#, 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:1564
+#: rfc2131.c:1599
+#, c-format
+msgid "Ignoring domain %s for DHCP host name %s"
+msgstr "Ignorando dominio %s para nombre de host DHCP %s"
+
+#: rfc2131.c:1617
#, fuzzy, c-format
msgid "requested options: %s"
msgstr "opciones solicitadas: %s"
-#: rfc2131.c:1613
+#: rfc2131.c:1666
#, fuzzy, c-format
msgid "next server: %s"
msgstr "siguiente servidor: %s"
-#: rfc2131.c:1637
+#: rfc2131.c:1690
#, c-format
msgid "bootfile name: %s"
msgstr "nombre de bootfile: %s"
-#: rfc2131.c:1640
+#: rfc2131.c:1693
#, c-format
msgid "server name: %s"
msgstr "nombre de servidor: %s"
@@ -1393,6 +1389,26 @@ msgstr "bitácora falló: %s"
msgid "FAILED to start up"
msgstr "el inicio ha FALLADO"
+#, fuzzy
+#~ msgid "failed to load %s: %s"
+#~ msgstr "no se pudo cargar %s: %s"
+
+#~ msgid "bad name in %s"
+#~ msgstr "nombre erróneo en %s"
+
+#~ msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
+#~ msgstr "Ignorando arriendo DHCP para %s porque tiene una parte ilegal de dominio"
+
+#~ msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
+#~ msgstr "integración dhcpd ISC no disponible: fijar HAVE_ISC_READER en src/config.h"
+
+#, fuzzy
+#~ msgid "illegal domain %s in dhcp-config directive."
+#~ msgstr "dominio ilegal %s en directiva dhcp-config."
+
+#~ msgid "illegal domain %s in %s."
+#~ msgstr "dominio ilegal %s en %s."
+
#~ msgid "running as root"
#~ msgstr "corriendo como root"
diff --git a/po/fi.po b/po/fi.po
index 1764b11..d214628 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-07-20 20:03+0100\n"
+"POT-Creation-Date: 2008-11-13 20:23+0000\n"
"PO-Revision-Date: 2005-11-28 22:05+0000\n"
"Last-Translator: Simon Kelley <simon@thekelleys.org.uk>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -15,51 +15,51 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: cache.c:695
+#: cache.c:761
#, c-format
msgid "failed to load names from %s: %s"
msgstr ""
-#: cache.c:729 dhcp.c:757
+#: cache.c:795 dhcp.c:768
#, c-format
msgid "bad address at %s line %d"
msgstr ""
-#: cache.c:776 dhcp.c:771
+#: cache.c:850 dhcp.c:782
#, c-format
msgid "bad name at %s line %d"
msgstr ""
-#: cache.c:783 dhcp.c:825
+#: cache.c:857 dhcp.c:848
#, c-format
msgid "read %s - %d addresses"
msgstr ""
-#: cache.c:821
+#: cache.c:895
msgid "cleared cache"
msgstr ""
-#: cache.c:870
+#: cache.c:942
#, 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:922
+#: cache.c:1018
#, c-format
msgid "time %lu"
msgstr ""
-#: cache.c:923
+#: cache.c:1019
#, c-format
msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
msgstr ""
-#: cache.c:925
+#: cache.c:1021
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr ""
-#: cache.c:948
+#: cache.c:1044
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr ""
@@ -88,650 +88,666 @@ msgstr ""
msgid "infinite"
msgstr ""
-#: option.c:219
+#: option.c:223
msgid "Specify local address(es) to listen on."
msgstr ""
-#: option.c:220
+#: option.c:224
msgid "Return ipaddr for all hosts in specified domains."
msgstr ""
-#: option.c:221
+#: option.c:225
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
-#: option.c:222
+#: option.c:226
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr ""
-#: option.c:223
+#: option.c:227
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr ""
-#: option.c:224
+#: option.c:228
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr ""
-#: option.c:225
+#: option.c:229
msgid "Do NOT fork into the background: run in debug mode."
msgstr ""
-#: option.c:226
+#: option.c:230
msgid "Do NOT forward queries with no domain part."
msgstr ""
-#: option.c:227
+#: option.c:231
msgid "Return self-pointing MX records for local hosts."
msgstr ""
-#: option.c:228
+#: option.c:232
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr ""
-#: option.c:229
+#: option.c:233
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr ""
-#: option.c:230
+#: option.c:234
msgid "Enable DHCP in the range given with lease duration."
msgstr ""
-#: option.c:231
+#: option.c:235
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr ""
-#: option.c:232
+#: option.c:236
msgid "Set address or hostname for a specified machine."
msgstr ""
-#: option.c:233
+#: option.c:237
msgid "Read DHCP host specs from file"
msgstr ""
-#: option.c:234
+#: option.c:238
msgid "Read DHCP option specs from file"
msgstr ""
-#: option.c:235
+#: option.c:239
#, c-format
msgid "Do NOT load %s file."
msgstr ""
-#: option.c:236
+#: option.c:240
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr ""
-#: option.c:237
+#: option.c:241
msgid "Specify interface(s) to listen on."
msgstr ""
-#: option.c:238
+#: option.c:242
msgid "Specify interface(s) NOT to listen on."
msgstr ""
-#: option.c:239
+#: option.c:243
msgid "Map DHCP user class to tag."
msgstr ""
-#: option.c:240
+#: option.c:244
msgid "Map RFC3046 circuit-id to tag."
msgstr ""
-#: option.c:241
+#: option.c:245
msgid "Map RFC3046 remote-id to tag."
msgstr ""
-#: option.c:242
+#: option.c:246
msgid "Map RFC3993 subscriber-id to tag."
msgstr ""
-#: option.c:243
+#: option.c:247
msgid "Don't do DHCP for hosts with tag set."
msgstr ""
-#: option.c:244
+#: option.c:248
msgid "Force broadcast replies for hosts with tag set."
msgstr ""
-#: option.c:245
+#: option.c:249
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr ""
-#: option.c:246
+#: option.c:250
msgid "Assume we are the only DHCP server on the local network."
msgstr ""
-#: option.c:247
+#: option.c:251
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:248
+#: option.c:252
msgid "Return MX records for local hosts."
msgstr ""
-#: option.c:249
+#: option.c:253
msgid "Specify an MX record."
msgstr ""
-#: option.c:250
+#: option.c:254
msgid "Specify BOOTP options to DHCP server."
msgstr ""
-#: option.c:251
+#: option.c:255
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
-#: option.c:252
+#: option.c:256
msgid "Do NOT cache failed search results."
msgstr ""
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr ""
-#: option.c:254
+#: option.c:258
msgid "Specify options to be sent to DHCP clients."
msgstr ""
-#: option.c:255
+#: option.c:259
msgid "DHCP option sent even if the client does not request it."
msgstr ""
-#: option.c:256
+#: option.c:260
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
-#: option.c:257
+#: option.c:261
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
-#: option.c:258
+#: option.c:262
msgid "Log DNS queries."
msgstr ""
-#: option.c:259
+#: option.c:263
msgid "Force the originating port for upstream DNS queries."
msgstr ""
-#: option.c:260
+#: option.c:264
msgid "Do NOT read resolv.conf."
msgstr ""
-#: option.c:261
+#: option.c:265
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr ""
-#: option.c:262
+#: option.c:266
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
-#: option.c:263
+#: option.c:267
msgid "Never forward queries to specified domains."
msgstr ""
-#: option.c:264
+#: option.c:268
msgid "Specify the domain to be assigned in DHCP leases."
msgstr ""
-#: option.c:265
+#: option.c:269
msgid "Specify default target in an MX record."
msgstr ""
-#: option.c:266
+#: option.c:270
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
-#: option.c:267
+#: option.c:271
msgid "Specify time-to-live in seconds for negative caching."
msgstr ""
-#: option.c:268
+#: option.c:272
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr ""
-#: option.c:269
+#: option.c:273
msgid "Map DHCP vendor class to tag."
msgstr ""
-#: option.c:270
+#: option.c:274
msgid "Display dnsmasq version and copyright information."
msgstr ""
-#: option.c:271
+#: option.c:275
msgid "Translate IPv4 addresses from upstream servers."
msgstr ""
-#: option.c:272
+#: option.c:276
msgid "Specify a SRV record."
msgstr ""
-#: option.c:273
+#: option.c:277
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr ""
-#: option.c:274
+#: option.c:278
#, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr ""
-#: option.c:275
+#: option.c:279
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:276
+#: option.c:280
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
-#: option.c:277
+#: option.c:281
msgid "Specify TXT DNS record."
msgstr ""
-#: option.c:278
+#: option.c:282
msgid "Specify PTR DNS record."
msgstr ""
-#: option.c:279
+#: option.c:283
msgid "Give DNS name to IPv4 address of interface."
msgstr ""
-#: option.c:280
+#: option.c:284
msgid "Bind only to interfaces in use."
msgstr ""
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Read DHCP static host information from %s."
msgstr ""
-#: option.c:282
+#: option.c:286
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr ""
-#: option.c:283
+#: option.c:287
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr ""
-#: option.c:284
+#: option.c:288
msgid "Enable dynamic address allocation for bootp."
msgstr ""
-#: option.c:285
+#: option.c:289
msgid "Map MAC address (with wildcards) to option set."
msgstr ""
-#: option.c:287
+#: option.c:291
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr ""
-#: option.c:289
+#: option.c:293
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:290
+#: option.c:294
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
-#: option.c:291
+#: option.c:295
msgid "Read configuration from all the files in this directory."
msgstr ""
-#: option.c:292
+#: option.c:296
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr ""
-#: option.c:293
+#: option.c:297
msgid "Do not use leasefile."
msgstr ""
-#: option.c:294
+#: option.c:298
#, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr ""
-#: option.c:295
+#: option.c:299
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr ""
-#: option.c:296
+#: option.c:300
msgid "Ignore hostnames provided by DHCP clients."
msgstr ""
-#: option.c:297
+#: option.c:301
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr ""
-#: option.c:298
+#: option.c:302
msgid "Enable integrated read-only TFTP server."
msgstr ""
-#: option.c:299
+#: option.c:303
msgid "Export files by TFTP only from the specified subtree."
msgstr ""
-#: option.c:300
+#: option.c:304
msgid "Add client IP address to tftp-root."
msgstr ""
-#: option.c:301
+#: option.c:305
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr ""
-#: option.c:302
+#: option.c:306
#, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr ""
-#: option.c:303
+#: option.c:307
msgid "Disable the TFTP blocksize extension."
msgstr ""
-#: option.c:304
+#: option.c:308
msgid "Ephemeral port range for use by TFTP transfers."
msgstr ""
-#: option.c:305
+#: option.c:309
msgid "Extra logging for DHCP."
msgstr ""
-#: option.c:306
+#: option.c:310
msgid "Enable async. logging; optionally set queue length."
msgstr ""
-#: option.c:307
+#: option.c:311
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr ""
-#: option.c:308
+#: option.c:312
msgid "Always perform DNS queries to all servers."
msgstr ""
-#: option.c:309
+#: option.c:313
msgid "Set tag if client includes option in request."
msgstr ""
-#: option.c:310
+#: option.c:314
msgid "Use alternative ports for DHCP."
msgstr ""
-#: option.c:311
+#: option.c:315
msgid "Run lease-change script as this user."
msgstr ""
-#: option.c:312
+#: option.c:316
msgid "Specify NAPTR DNS record."
msgstr ""
-#: option.c:313
+#: option.c:317
msgid "Specify lowest port available for DNS query transmission."
msgstr ""
-#: option.c:574
+#: option.c:318
+msgid "Use only fully qualified domain names for DHCP clients."
+msgstr ""
+
+#: option.c:319
+msgid "Specify alias name for LOCAL DNS name."
+msgstr ""
+
+#: option.c:580
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
-#: option.c:576
+#: option.c:582
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
-#: option.c:578
+#: option.c:584
#, c-format
msgid "Valid options are:\n"
msgstr ""
-#: option.c:618
+#: option.c:624
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:691
+#: option.c:697
msgid "bad dhcp-option"
msgstr ""
-#: option.c:747
+#: option.c:753
msgid "bad IP address"
msgstr ""
-#: option.c:845
+#: option.c:851
msgid "bad domain in dhcp-option"
msgstr ""
-#: option.c:903
+#: option.c:909
msgid "dhcp-option too long"
msgstr ""
-#: option.c:932
+#: option.c:938
msgid "illegal repeated flag"
msgstr ""
-#: option.c:940
+#: option.c:946
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:974
+#: option.c:983
#, c-format
msgid "cannot access directory %s: %s"
msgstr ""
-#: option.c:993 tftp.c:348
+#: option.c:1002 tftp.c:348
#, c-format
msgid "cannot access %s: %s"
msgstr ""
-#: option.c:1030
+#: option.c:1040
msgid "only one dhcp-hostsfile allowed"
msgstr ""
-#: option.c:1037
+#: option.c:1047
msgid "only one dhcp-optsfile allowed"
msgstr ""
-#: option.c:1081
+#: option.c:1091
msgid "bad MX preference"
msgstr ""
-#: option.c:1085
+#: option.c:1095
msgid "bad MX name"
msgstr ""
-#: option.c:1099
+#: option.c:1109
msgid "bad MX target"
msgstr ""
-#: option.c:1110
+#: option.c:1120
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1303 option.c:1311
+#: option.c:1352 option.c:1360
msgid "bad port"
msgstr ""
-#: option.c:1331 option.c:1356
+#: option.c:1380 option.c:1405
msgid "interface binding not supported"
msgstr ""
-#: option.c:1474
+#: option.c:1523
msgid "bad port range"
msgstr ""
-#: option.c:1491
+#: option.c:1540
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1532
+#: option.c:1581
msgid "bad dhcp-range"
msgstr ""
-#: option.c:1558
+#: option.c:1607
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1598
+#: option.c:1647
msgid "inconsistent DHCP range"
msgstr ""
-#: option.c:1766
+#: option.c:1819
msgid "bad DHCP host name"
msgstr ""
-#: option.c:1938 option.c:2181
+#: option.c:1998 option.c:2270
msgid "invalid port number"
msgstr ""
-#: option.c:2024
+#: option.c:2093
msgid "bad interface name"
msgstr ""
-#: option.c:2044
+#: option.c:2116
+msgid "duplicate CNAME"
+msgstr ""
+
+#: option.c:2133
msgid "bad PTR record"
msgstr ""
-#: option.c:2074
+#: option.c:2163
msgid "bad NAPTR record"
msgstr ""
-#: option.c:2100
+#: option.c:2189
msgid "TXT record string too long"
msgstr ""
-#: option.c:2104
+#: option.c:2193
msgid "bad TXT record"
msgstr ""
-#: option.c:2164
+#: option.c:2253
msgid "bad SRV record"
msgstr ""
-#: option.c:2173
+#: option.c:2262
msgid "bad SRV target"
msgstr ""
-#: option.c:2188
+#: option.c:2277
msgid "invalid priority"
msgstr ""
-#: option.c:2195
+#: option.c:2284
msgid "invalid weight"
msgstr ""
-#: option.c:2231
+#: option.c:2320
#, c-format
msgid "files nested too deep in %s"
msgstr ""
-#: option.c:2239 tftp.c:503
+#: option.c:2328 tftp.c:503
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: option.c:2300
+#: option.c:2389
msgid "missing \""
msgstr ""
-#: option.c:2347
+#: option.c:2436
msgid "bad option"
msgstr ""
-#: option.c:2349
+#: option.c:2438
msgid "extraneous parameter"
msgstr ""
-#: option.c:2351
+#: option.c:2440
msgid "missing parameter"
msgstr ""
-#: option.c:2359
+#: option.c:2448
msgid "error"
msgstr ""
-#: option.c:2365
+#: option.c:2454
#, c-format
msgid "%s at line %d of %%s"
msgstr ""
-#: option.c:2405 option.c:2435
+#: option.c:2502 option.c:2532
#, c-format
msgid "read %s"
msgstr ""
-#: option.c:2502
+#: option.c:2599
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
-#: option.c:2503
+#: option.c:2600
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
-#: option.c:2504
+#: option.c:2601
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
-#: option.c:2505
+#: option.c:2602
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:2506
+#: option.c:2603
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr ""
-#: option.c:2517
+#: option.c:2614
msgid "try --help"
msgstr ""
-#: option.c:2519
+#: option.c:2616
msgid "try -w"
msgstr ""
-#: option.c:2522
+#: option.c:2619
#, c-format
msgid "bad command line options: %s"
msgstr ""
-#: option.c:2563
+#: option.c:2660
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
-#: option.c:2591
+#: option.c:2688
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
-#: option.c:2601
+#: option.c:2698
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
-#: option.c:2604 network.c:724
+#: option.c:2701 network.c:721
#, c-format
msgid "failed to read %s: %s"
msgstr ""
-#: option.c:2622
+#: option.c:2719
#, c-format
msgid "no search directive found in %s"
msgstr ""
+#: option.c:2740
+msgid "there must be a default domain when --dhcp-fqdn is set"
+msgstr ""
+
#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
@@ -741,37 +757,12 @@ msgstr ""
msgid "possible DNS-rebind attack detected"
msgstr ""
-#: isc.c:77 dnsmasq.c:889
-#, c-format
-msgid "failed to access %s: %s"
-msgstr ""
-
-#: isc.c:93
-#, c-format
-msgid "failed to load %s: %s"
-msgstr ""
-
-#: isc.c:97 dnsmasq.c:911
-#, c-format
-msgid "reading %s"
-msgstr ""
-
-#: isc.c:119
-#, c-format
-msgid "bad name in %s"
-msgstr ""
-
-#: isc.c:181
-#, c-format
-msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
-msgstr ""
-
#: network.c:45
#, c-format
msgid "unknown interface %s in bridge-interface"
msgstr ""
-#: network.c:389 dnsmasq.c:194
+#: network.c:389 dnsmasq.c:186
#, c-format
msgid "failed to create listening socket: %s"
msgstr ""
@@ -796,248 +787,254 @@ msgstr ""
msgid "failed to create TFTP socket: %s"
msgstr ""
-#: network.c:631
+#: network.c:628
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr ""
-#: network.c:664
+#: network.c:661
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
-#: network.c:675
+#: network.c:672
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr ""
-#: network.c:690
+#: network.c:687
msgid "unqualified"
msgstr ""
-#: network.c:690
+#: network.c:687
msgid "names"
msgstr ""
-#: network.c:692
+#: network.c:689
msgid "default"
msgstr ""
-#: network.c:694
+#: network.c:691
msgid "domain"
msgstr ""
-#: network.c:697
+#: network.c:694
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:699
+#: network.c:696
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:702
+#: network.c:699
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr ""
-#: network.c:704
+#: network.c:701
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
-#: dnsmasq.c:122
-msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
-msgstr ""
-
-#: dnsmasq.c:144
+#: dnsmasq.c:136
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr ""
-#: dnsmasq.c:149
+#: dnsmasq.c:141
msgid "asychronous logging is not available under Solaris"
msgstr ""
-#: dnsmasq.c:165
+#: dnsmasq.c:157
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr ""
-#: dnsmasq.c:175
+#: dnsmasq.c:167
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr ""
-#: dnsmasq.c:183
+#: dnsmasq.c:175
#, c-format
msgid "unknown interface %s"
msgstr ""
-#: dnsmasq.c:189
+#: dnsmasq.c:181
#, c-format
msgid "no interface with address %s"
msgstr ""
-#: dnsmasq.c:206 dnsmasq.c:663
+#: dnsmasq.c:198 dnsmasq.c:652
#, c-format
msgid "DBus error: %s"
msgstr ""
-#: dnsmasq.c:209
+#: dnsmasq.c:201
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr ""
-#: dnsmasq.c:233
+#: dnsmasq.c:225
#, c-format
msgid "unknown user or group: %s"
msgstr ""
-#: dnsmasq.c:290
+#: dnsmasq.c:282
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr ""
-#: dnsmasq.c:302
+#: dnsmasq.c:294
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
-#: dnsmasq.c:451
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s DNS disabled"
msgstr ""
-#: dnsmasq.c:453
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cachesize %d"
msgstr ""
-#: dnsmasq.c:455
+#: dnsmasq.c:447
#, c-format
msgid "started, version %s cache disabled"
msgstr ""
-#: dnsmasq.c:457
+#: dnsmasq.c:449
#, c-format
msgid "compile time options: %s"
msgstr ""
-#: dnsmasq.c:463
+#: dnsmasq.c:455
msgid "DBus support enabled: connected to system bus"
msgstr ""
-#: dnsmasq.c:465
+#: dnsmasq.c:457
msgid "DBus support enabled: bus connection pending"
msgstr ""
-#: dnsmasq.c:470
+#: dnsmasq.c:462
#, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr ""
-#: dnsmasq.c:474
+#: dnsmasq.c:466
msgid "setting --bind-interfaces option because of OS limitations"
msgstr ""
-#: dnsmasq.c:479
+#: dnsmasq.c:471
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr ""
-#: dnsmasq.c:484
+#: dnsmasq.c:476
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr ""
-#: dnsmasq.c:487
+#: dnsmasq.c:479
msgid "warning: no upstream servers configured"
msgstr ""
-#: dnsmasq.c:491
+#: dnsmasq.c:483
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr ""
-#: dnsmasq.c:503
+#: dnsmasq.c:495
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr ""
-#: dnsmasq.c:504
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr ""
-#: dnsmasq.c:518
+#: dnsmasq.c:510
msgid "root is "
msgstr ""
-#: dnsmasq.c:518
+#: dnsmasq.c:510
msgid "enabled"
msgstr ""
-#: dnsmasq.c:520
+#: dnsmasq.c:512
msgid "secure mode"
msgstr ""
-#: dnsmasq.c:546
+#: dnsmasq.c:538
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:665
+#: dnsmasq.c:654
msgid "connected to system DBus"
msgstr ""
-#: dnsmasq.c:753
+#: dnsmasq.c:742
#, c-format
msgid "failed to create helper: %s"
msgstr ""
-#: dnsmasq.c:756
+#: dnsmasq.c:745
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
-#: dnsmasq.c:760
+#: dnsmasq.c:749
#, c-format
msgid "failed to change user-id to %s: %s"
msgstr ""
-#: dnsmasq.c:765
+#: dnsmasq.c:754
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr ""
-#: dnsmasq.c:768
+#: dnsmasq.c:757
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr ""
-#: dnsmasq.c:771
+#: dnsmasq.c:760
#, c-format
msgid "cannot open %s: %s"
msgstr ""
-#: dnsmasq.c:822
+#: dnsmasq.c:811
#, c-format
msgid "child process killed by signal %d"
msgstr ""
-#: dnsmasq.c:826
+#: dnsmasq.c:815
#, c-format
msgid "child process exited with status %d"
msgstr ""
-#: dnsmasq.c:830
+#: dnsmasq.c:819
#, c-format
msgid "failed to execute %s: %s"
msgstr ""
-#: dnsmasq.c:871
+#: dnsmasq.c:860
msgid "exiting on receipt of SIGTERM"
msgstr ""
-#: dnsmasq.c:922
+#: dnsmasq.c:878
+#, c-format
+msgid "failed to access %s: %s"
+msgstr ""
+
+#: dnsmasq.c:900
+#, c-format
+msgid "reading %s"
+msgstr ""
+
+#: dnsmasq.c:911
#, c-format
msgid "no servers found in %s, will retry"
msgstr ""
@@ -1077,42 +1074,32 @@ msgstr ""
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
-#: dhcp.c:709
+#: dhcp.c:719
#, c-format
msgid "failed to read %s:%s"
msgstr ""
-#: dhcp.c:744
+#: dhcp.c:755
#, c-format
msgid "bad line at %s line %d"
msgstr ""
-#: dhcp.c:847
+#: dhcp.c:870
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
-#: dhcp.c:850
+#: dhcp.c:873
#, c-format
msgid "duplicate IP address %s in %s."
msgstr ""
-#: dhcp.c:858
-#, c-format
-msgid "illegal domain %s in dhcp-config directive."
-msgstr ""
-
-#: dhcp.c:860
-#, c-format
-msgid "illegal domain %s in %s."
-msgstr ""
-
-#: dhcp.c:899
+#: dhcp.c:916
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:904
+#: dhcp.c:921
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
@@ -1141,151 +1128,160 @@ msgstr ""
msgid "failed to write %s: %s (retry in %us)"
msgstr ""
-#: rfc2131.c:310
+#: rfc2131.c:315
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr ""
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "with subnet selector"
msgstr ""
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "via"
msgstr ""
-#: rfc2131.c:322
+#: rfc2131.c:327
#, c-format
msgid "DHCP packet: transaction-id is %u"
msgstr ""
-#: rfc2131.c:327
+#: rfc2131.c:332
#, c-format
msgid "Available DHCP subnet: %s/%s"
msgstr ""
-#: rfc2131.c:329
+#: rfc2131.c:334
#, c-format
msgid "Available DHCP range: %s -- %s"
msgstr ""
-#: rfc2131.c:357 rfc2131.c:388
+#: rfc2131.c:362 rfc2131.c:396
msgid "disabled"
msgstr ""
-#: rfc2131.c:400 rfc2131.c:892
+#: rfc2131.c:411 rfc2131.c:928
msgid "address in use"
msgstr ""
-#: rfc2131.c:403
-msgid "no address configured"
-msgstr ""
-
-#: rfc2131.c:416 rfc2131.c:747
+#: rfc2131.c:425 rfc2131.c:765
msgid "no address available"
msgstr ""
-#: rfc2131.c:425 rfc2131.c:902
-msgid "no leases left"
+#: rfc2131.c:432 rfc2131.c:891
+msgid "wrong network"
msgstr ""
-#: rfc2131.c:428 rfc2131.c:866
-msgid "wrong network"
+#: rfc2131.c:445
+msgid "no address configured"
msgstr ""
-#: rfc2131.c:530
-#, c-format
-msgid "Ignoring domain %s for DHCP host name %s"
+#: rfc2131.c:451 rfc2131.c:941
+msgid "no leases left"
msgstr ""
-#: rfc2131.c:624
+#: rfc2131.c:640
#, c-format
msgid "Vendor class: %s"
msgstr ""
-#: rfc2131.c:626
+#: rfc2131.c:642
#, c-format
msgid "User class: %s"
msgstr ""
-#: rfc2131.c:667
+#: rfc2131.c:683
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr ""
-#: rfc2131.c:688
+#: rfc2131.c:704
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:697 rfc2131.c:1018
+#: rfc2131.c:713 rfc2131.c:1058
msgid "ignored"
msgstr ""
-#: rfc2131.c:718
+#: rfc2131.c:736
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:728
+#: rfc2131.c:746
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:731
+#: rfc2131.c:749
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:745 rfc2131.c:895
+#: rfc2131.c:763 rfc2131.c:934
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:825
+#: rfc2131.c:831
+msgid "wrong server-ID"
+msgstr ""
+
+#: rfc2131.c:850
msgid "wrong address"
msgstr ""
-#: rfc2131.c:842
+#: rfc2131.c:867
msgid "lease not found"
msgstr ""
-#: rfc2131.c:874
+#: rfc2131.c:899
msgid "address not available"
msgstr ""
-#: rfc2131.c:885
+#: rfc2131.c:910
msgid "static lease available"
msgstr ""
-#: rfc2131.c:889
+#: rfc2131.c:914
msgid "address reserved"
msgstr ""
-#: rfc2131.c:1307
+#: rfc2131.c:922
+#, c-format
+msgid "abandoning lease to %s of %s"
+msgstr ""
+
+#: rfc2131.c:1356
#, c-format
msgid "tags: %s"
msgstr ""
-#: rfc2131.c:1394
+#: rfc2131.c:1443
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:1564
+#: rfc2131.c:1599
+#, c-format
+msgid "Ignoring domain %s for DHCP host name %s"
+msgstr ""
+
+#: rfc2131.c:1617
#, c-format
msgid "requested options: %s"
msgstr ""
-#: rfc2131.c:1613
+#: rfc2131.c:1666
#, c-format
msgid "next server: %s"
msgstr ""
-#: rfc2131.c:1637
+#: rfc2131.c:1690
#, c-format
msgid "bootfile name: %s"
msgstr ""
-#: rfc2131.c:1640
+#: rfc2131.c:1693
#, c-format
msgid "server name: %s"
msgstr ""
diff --git a/po/fr.po b/po/fr.po
index dfcd91e..31aa178 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.34\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-07-20 20:03+0100\n"
+"POT-Creation-Date: 2008-11-13 20:23+0000\n"
"PO-Revision-Date: 2005-10-02 19:05+0100\n"
"Last-Translator: Lionel Tricon <lionel.tricon@free.fr>\n"
"Language-Team: French <traduc@traduc.org>\n"
@@ -16,51 +16,51 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: cache.c:695
+#: cache.c:761
#, fuzzy, c-format
msgid "failed to load names from %s: %s"
msgstr "Impossible de charger les noms à partir de %s : %m"
-#: cache.c:729 dhcp.c:757
+#: cache.c:795 dhcp.c:768
#, c-format
msgid "bad address at %s line %d"
msgstr "mauvaise adresse dans %s ligne %d"
-#: cache.c:776 dhcp.c:771
+#: cache.c:850 dhcp.c:782
#, c-format
msgid "bad name at %s line %d"
msgstr "mauvais nom dans %s ligne %d"
-#: cache.c:783 dhcp.c:825
+#: cache.c:857 dhcp.c:848
#, c-format
msgid "read %s - %d addresses"
msgstr "lecture %s - %d adresses"
-#: cache.c:821
+#: cache.c:895
msgid "cleared cache"
msgstr "cache vidé"
-#: cache.c:870
+#: cache.c:942
#, 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:922
+#: cache.c:1018
#, c-format
msgid "time %lu"
msgstr "horodatage %lu"
-#: cache.c:923
+#: cache.c:1019
#, fuzzy, 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:925
+#: cache.c:1021
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr "requêtes transmises %u, requêtes résolues localement %u"
-#: cache.c:948
+#: cache.c:1044
#, 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"
@@ -89,408 +89,416 @@ msgstr "impossible d'allouer %d octets"
msgid "infinite"
msgstr "illimité(e)"
-#: option.c:219
+#: option.c:223
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:220
+#: option.c:224
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:221
+#: option.c:225
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Traduction inverse truquée pour la plage d'adresse privée RFC1918"
-#: option.c:222
+#: option.c:226
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:223
+#: option.c:227
#, 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:224
+#: option.c:228
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Spécifie le nom du fichier de configuration (par défaut : %s)"
-#: option.c:225
+#: option.c:229
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:226
+#: option.c:230
msgid "Do NOT forward queries with no domain part."
msgstr "Ne retransmet pas les requêtes qui n'ont pas de domaine."
-#: option.c:227
+#: option.c:231
msgid "Return self-pointing MX records for local hosts."
msgstr "Retourne les champs MX pour les machines locales."
-#: option.c:228
+#: option.c:232
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:229
+#: option.c:233
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:230
+#: option.c:234
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:231
+#: option.c:235
#, 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:232
+#: option.c:236
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:233
+#: option.c:237
msgid "Read DHCP host specs from file"
msgstr "Lecture des spécifications d'hôtes DHCP à partir du fichier"
-#: option.c:234
+#: option.c:238
msgid "Read DHCP option specs from file"
msgstr "Lecture des options DHCP à partir du fichier"
-#: option.c:235
+#: option.c:239
#, c-format
msgid "Do NOT load %s file."
msgstr "Ne charge PAS le fichier %s."
-#: option.c:236
+#: option.c:240
#, 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:237
+#: option.c:241
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:238
+#: option.c:242
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:239
+#: option.c:243
#, fuzzy
msgid "Map DHCP user class to tag."
msgstr "Associe les classes d'utilisateurs ('user class') DHCP aux options."
-#: option.c:240
+#: option.c:244
msgid "Map RFC3046 circuit-id to tag."
msgstr "Associe les identifiants de circuits RFC3046 ('circuit-id') aux options"
-#: option.c:241
+#: option.c:245
msgid "Map RFC3046 remote-id to tag."
msgstr "Associe les identifiants distants RFC3046 ('remote-id') aux options"
-#: option.c:242
+#: option.c:246
msgid "Map RFC3993 subscriber-id to tag."
msgstr "Associe les identifiants de souscripteurs RFC3993 ('subscriber-id') aux options"
-#: option.c:243
+#: option.c:247
#, fuzzy
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:244
+#: option.c:248
#, fuzzy
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:245
+#: option.c:249
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:246
+#: option.c:250
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:247
+#: option.c:251
#, 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:248
+#: option.c:252
msgid "Return MX records for local hosts."
msgstr "Retourne les champs MX pour les machines locales."
-#: option.c:249
+#: option.c:253
msgid "Specify an MX record."
msgstr "Spécifie un champ MX."
-#: option.c:250
+#: option.c:254
msgid "Specify BOOTP options to DHCP server."
msgstr "Spécifie les options BOOTP pour le serveur DHCP."
-#: option.c:251
+#: option.c:255
#, 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:252
+#: option.c:256
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:253
+#: option.c:257
#, 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:254
+#: option.c:258
#, fuzzy
msgid "Specify options to be sent to DHCP clients."
msgstr "Options supplémentaires à associer aux clients DHCP."
-#: option.c:255
+#: option.c:259
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:256
+#: option.c:260
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:257
+#: option.c:261
#, 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:258
+#: option.c:262
#, fuzzy
msgid "Log DNS queries."
msgstr "Enregistre les requêtes DNS dans un journal d'activité."
-#: option.c:259
+#: option.c:263
#, fuzzy
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:260
+#: option.c:264
msgid "Do NOT read resolv.conf."
msgstr "Ne pas lire le fichier resolv.conf."
-#: option.c:261
+#: option.c:265
#, 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:262
+#: option.c:266
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:263
+#: option.c:267
msgid "Never forward queries to specified domains."
msgstr "Ne jamais retransmettre les requêtes pour les domaines spécifiés."
-#: option.c:264
+#: option.c:268
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Spécifie le domaine qui doit etre assigné aux baux DHCP."
-#: option.c:265
+#: option.c:269
msgid "Specify default target in an MX record."
msgstr "Spécifie la cible par défaut dans un champ MX."
-#: option.c:266
+#: option.c:270
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:267
+#: option.c:271
#, fuzzy
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:268
+#: option.c:272
#, 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:269
+#: option.c:273
#, fuzzy
msgid "Map DHCP vendor class to tag."
msgstr "Associe les classes de fournisseurs ('vendor class') DHCP aux options."
-#: option.c:270
+#: option.c:274
msgid "Display dnsmasq version and copyright information."
msgstr "Affiche la version de Dnsmasq et les informations liées au copyright."
-#: option.c:271
+#: option.c:275
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Traduit les adresses IPV4 des serveurs amonts."
-#: option.c:272
+#: option.c:276
msgid "Specify a SRV record."
msgstr " Spécifie un champ SRV."
-#: option.c:273
+#: option.c:277
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:274
+#: option.c:278
#, fuzzy, 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:275
+#: option.c:279
#, 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:276
+#: option.c:280
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:277
+#: option.c:281
msgid "Specify TXT DNS record."
msgstr "Spécifie un champ DNS TXT"
-#: option.c:278
+#: option.c:282
#, fuzzy
msgid "Specify PTR DNS record."
msgstr "Spécifie un champ DNS PTR"
-#: option.c:279
+#: option.c:283
msgid "Give DNS name to IPv4 address of interface."
msgstr "Donne le nom DNS pour l'adresse IPv4 de l'interface."
-#: option.c:280
+#: option.c:284
msgid "Bind only to interfaces in use."
msgstr "Association uniquement aux interfaces réseau actuellement actives."
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Lecture des informations de DHCP statique à partir de %s."
-#: option.c:282
+#: option.c:286
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Autorise l'interface DBus pour la configuration des serveurs amonts, etc."
-#: option.c:283
+#: option.c:287
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:284
+#: option.c:288
msgid "Enable dynamic address allocation for bootp."
msgstr "Autorise l'allocation dynamique d'adresse pour bootp."
-#: option.c:285
+#: option.c:289
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Associe l'adresse MAC (avec les jokers) aux options."
-#: option.c:287
+#: option.c:291
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:289
+#: option.c:293
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:290
+#: option.c:294
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:291
+#: option.c:295
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:292
+#: option.c:296
#, fuzzy
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:293
+#: option.c:297
msgid "Do not use leasefile."
msgstr "Ne pas utiliser de fichier de baux."
-#: option.c:294
+#: option.c:298
#, fuzzy, 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:295
+#: option.c:299
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr "Vider le cache DNS lors du rechargement de %s."
-#: option.c:296
+#: option.c:300
msgid "Ignore hostnames provided by DHCP clients."
msgstr "Ignorer les noms d'hôtes fournis par les clients DHCP"
-#: option.c:297
+#: option.c:301
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:298
+#: option.c:302
msgid "Enable integrated read-only TFTP server."
msgstr "Activer le server TFTP intégré (fonctionnant en lecture seulement)"
-#: option.c:299
+#: option.c:303
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:300
+#: option.c:304
msgid "Add client IP address to tftp-root."
msgstr "Ajouter les adresses IP clientes à la racine tftp ('tftp-root')."
-#: option.c:301
+#: option.c:305
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:302
+#: option.c:306
#, fuzzy, 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:303
+#: option.c:307
msgid "Disable the TFTP blocksize extension."
msgstr "Désactivation de l'extension TFTP « taille de bloc »"
-#: option.c:304
+#: option.c:308
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:305
+#: option.c:309
msgid "Extra logging for DHCP."
msgstr "Traces supplémentaires pour le DHCP."
-#: option.c:306
+#: option.c:310
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:307
+#: option.c:311
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:308
+#: option.c:312
msgid "Always perform DNS queries to all servers."
msgstr "Toujours effectuer les requêtes DNS à tous les serveurs."
-#: option.c:309
+#: option.c:313
msgid "Set tag if client includes option in request."
msgstr "Spécifie le label si le client inclus l'option dans la requête."
-#: option.c:310
+#: option.c:314
msgid "Use alternative ports for DHCP."
msgstr "Utiliser des ports alternatifs pour le DHCP."
-#: option.c:311
+#: option.c:315
msgid "Run lease-change script as this user."
msgstr "Lancer le script 'lease-change' avec cet utilisateur."
-#: option.c:312
+#: option.c:316
#, fuzzy
msgid "Specify NAPTR DNS record."
msgstr "Spécifie un champ DNS NAPTR."
-#: option.c:313
+#: option.c:317
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:574
+#: option.c:318
+msgid "Use only fully qualified domain names for DHCP clients."
+msgstr ""
+
+#: option.c:319
+msgid "Specify alias name for LOCAL DNS name."
+msgstr ""
+
+#: option.c:580
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -499,205 +507,209 @@ msgstr ""
"Usage : dnsmasq [options]\n"
"\n"
-#: option.c:576
+#: option.c:582
#, 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:578
+#: option.c:584
#, fuzzy, c-format
msgid "Valid options are:\n"
msgstr "Les options valides sont :\n"
-#: option.c:618
+#: option.c:624
#, c-format
msgid "Known DHCP options:\n"
msgstr "Options DHCP connues :\n"
-#: option.c:691
+#: option.c:697
msgid "bad dhcp-option"
msgstr "mauvaise valeur de 'dhcp-option'"
-#: option.c:747
+#: option.c:753
#, fuzzy
msgid "bad IP address"
msgstr "mauvaise adresse IP"
-#: option.c:845
+#: option.c:851
msgid "bad domain in dhcp-option"
msgstr "mauvais domaine dans dhcp-option"
-#: option.c:903
+#: option.c:909
msgid "dhcp-option too long"
msgstr "dhcp-option trop long"
-#: option.c:932
+#: option.c:938
msgid "illegal repeated flag"
msgstr "Une option ne pouvant être spécifié qu'une seule fois à été donnée plusieurs fois."
-#: option.c:940
+#: option.c:946
msgid "illegal repeated keyword"
msgstr "Mot-clef ne pouvant être répété"
-#: option.c:974
+#: option.c:983
#, fuzzy, c-format
msgid "cannot access directory %s: %s"
msgstr "Ne peut pas lire le répertoire %s : %s"
-#: option.c:993 tftp.c:348
+#: option.c:1002 tftp.c:348
#, fuzzy, c-format
msgid "cannot access %s: %s"
msgstr "Ne peut pas lire %s : %s"
-#: option.c:1030
+#: option.c:1040
#, fuzzy
msgid "only one dhcp-hostsfile allowed"
msgstr "une seule valeur est autorisée pour 'dhcp-hostsfile'"
-#: option.c:1037
+#: option.c:1047
#, fuzzy
msgid "only one dhcp-optsfile allowed"
msgstr "une seule valeur est autorisée pour 'dhcp-optsfile'"
-#: option.c:1081
+#: option.c:1091
msgid "bad MX preference"
msgstr "Mauvaise préference MX"
-#: option.c:1085
+#: option.c:1095
msgid "bad MX name"
msgstr "mauvais nom MX"
-#: option.c:1099
+#: option.c:1109
msgid "bad MX target"
msgstr "mauvaise cible MX"
-#: option.c:1110
+#: option.c:1120
msgid "cannot run scripts under uClinux"
msgstr "ne peut exécuter de script sous uClinux"
-#: option.c:1303 option.c:1311
+#: option.c:1352 option.c:1360
msgid "bad port"
msgstr "mauvais port"
-#: option.c:1331 option.c:1356
+#: option.c:1380 option.c:1405
msgid "interface binding not supported"
msgstr "association d'interface non supportée"
-#: option.c:1474
+#: option.c:1523
#, fuzzy
msgid "bad port range"
msgstr "mauvaise gamme de ports"
-#: option.c:1491
+#: option.c:1540
msgid "bad bridge-interface"
msgstr "mauvaise interface-pont"
-#: option.c:1532
+#: option.c:1581
msgid "bad dhcp-range"
msgstr "mauvaise plage d'adresses DHCP (dhcp-range)"
-#: option.c:1558
+#: option.c:1607
msgid "only one netid tag allowed"
msgstr "une seule étiquette netid est autorisée"
-#: option.c:1598
+#: option.c:1647
msgid "inconsistent DHCP range"
msgstr "plage d'adresses DHCP incohérente"
-#: option.c:1766
+#: option.c:1819
#, fuzzy
msgid "bad DHCP host name"
msgstr "mauvais nom d'hôte DHCP"
-#: option.c:1938 option.c:2181
+#: option.c:1998 option.c:2270
msgid "invalid port number"
msgstr "numéro de port invalide"
-#: option.c:2024
+#: option.c:2093
#, fuzzy
msgid "bad interface name"
msgstr "mauvais nom d'interface"
-#: option.c:2044
+#: option.c:2116
+msgid "duplicate CNAME"
+msgstr ""
+
+#: option.c:2133
#, fuzzy
msgid "bad PTR record"
msgstr "mauvais champ PTR"
-#: option.c:2074
+#: option.c:2163
#, fuzzy
msgid "bad NAPTR record"
msgstr "mauvais champ NAPTR"
-#: option.c:2100
+#: option.c:2189
msgid "TXT record string too long"
msgstr "chaîne du champ TXT trop longue"
-#: option.c:2104
+#: option.c:2193
msgid "bad TXT record"
msgstr "mauvais champ TXT"
-#: option.c:2164
+#: option.c:2253
msgid "bad SRV record"
msgstr "mauvais champ SRV"
-#: option.c:2173
+#: option.c:2262
msgid "bad SRV target"
msgstr "mauvaise cible SRV"
-#: option.c:2188
+#: option.c:2277
msgid "invalid priority"
msgstr "priorité invalide"
-#: option.c:2195
+#: option.c:2284
msgid "invalid weight"
msgstr "poids invalide"
-#: option.c:2231
+#: option.c:2320
#, c-format
msgid "files nested too deep in %s"
msgstr "trop de niveaux de récursion pour les fichiers dans %s"
-#: option.c:2239 tftp.c:503
+#: option.c:2328 tftp.c:503
#, c-format
msgid "cannot read %s: %s"
msgstr "Ne peut pas lire %s : %s"
-#: option.c:2300
+#: option.c:2389
msgid "missing \""
msgstr "il manque \""
-#: option.c:2347
+#: option.c:2436
msgid "bad option"
msgstr "mauvaise option"
-#: option.c:2349
+#: option.c:2438
msgid "extraneous parameter"
msgstr "paramètre en trop"
-#: option.c:2351
+#: option.c:2440
msgid "missing parameter"
msgstr "paramètre manquant"
-#: option.c:2359
+#: option.c:2448
msgid "error"
msgstr "erreur"
-#: option.c:2365
+#: option.c:2454
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s à la ligne %d de %%s"
-#: option.c:2405 option.c:2435
+#: option.c:2502 option.c:2532
#, fuzzy, c-format
msgid "read %s"
msgstr "Lecture de %s"
-#: option.c:2502
+#: option.c:2599
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Version de Dnsmasq %s %s\n"
-#: option.c:2503
+#: option.c:2600
#, c-format
msgid ""
"Compile time options %s\n"
@@ -706,57 +718,61 @@ msgstr ""
"Options à la compilation %s\n"
"\n"
-#: option.c:2504
+#: option.c:2601
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Ce logiciel est fourni sans AUCUNE GARANTIE.\n"
-#: option.c:2505
+#: option.c:2602
#, 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:2506
+#: option.c:2603
#, fuzzy, 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:2517
+#: option.c:2614
msgid "try --help"
msgstr "essayez avec --help"
-#: option.c:2519
+#: option.c:2616
msgid "try -w"
msgstr "essayez avec -w"
-#: option.c:2522
+#: option.c:2619
#, fuzzy, c-format
msgid "bad command line options: %s"
msgstr "mauvaises options en ligne de commande : %s."
-#: option.c:2563
+#: option.c:2660
#, c-format
msgid "cannot get host-name: %s"
msgstr "ne peut pas obtenir le nom de la machine : %s"
-#: option.c:2591
+#: option.c:2688
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:2601
+#: option.c:2698
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:2604 network.c:724
+#: option.c:2701 network.c:721
#, fuzzy, c-format
msgid "failed to read %s: %s"
msgstr "impossible de lire %s : %m"
-#: option.c:2622
+#: option.c:2719
#, c-format
msgid "no search directive found in %s"
msgstr "pas de directive de recherche trouvée dans %s"
+#: option.c:2740
+msgid "there must be a default domain when --dhcp-fqdn is set"
+msgstr ""
+
#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
@@ -766,37 +782,12 @@ msgstr "le serveur de nom %s a refusé de faire une recherche récursive"
msgid "possible DNS-rebind attack detected"
msgstr "détection d'une possible attaque de type DNS-rebind"
-#: isc.c:77 dnsmasq.c:889
-#, fuzzy, c-format
-msgid "failed to access %s: %s"
-msgstr "impossible d'accéder à %s : %m"
-
-#: isc.c:93
-#, fuzzy, c-format
-msgid "failed to load %s: %s"
-msgstr "impossible de charger %s : %m"
-
-#: isc.c:97 dnsmasq.c:911
-#, c-format
-msgid "reading %s"
-msgstr "Lecture de %s"
-
-#: isc.c:119
-#, c-format
-msgid "bad name in %s"
-msgstr "mauvais nom dans %s"
-
-#: isc.c:181
-#, c-format
-msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
-msgstr "On ignore le bail DHCP pour %s car il possède un nom de domaine illégal"
-
#: network.c:45
#, fuzzy, c-format
msgid "unknown interface %s in bridge-interface"
msgstr "interface %s inconnue"
-#: network.c:389 dnsmasq.c:194
+#: network.c:389 dnsmasq.c:186
#, c-format
msgid "failed to create listening socket: %s"
msgstr "impossible de créer une socket de lecture : %s"
@@ -821,251 +812,257 @@ msgstr "impossible de lire sur la socket : %s"
msgid "failed to create TFTP socket: %s"
msgstr "impossible de créer une socket de lecture : %s"
-#: network.c:631
+#: network.c:628
#, fuzzy, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "impossible de lier la socket de lecture pour %s : %s"
-#: network.c:664
+#: network.c:661
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignore le serveur de nom %s - interface locale"
-#: network.c:675
+#: network.c:672
#, fuzzy, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr "ignore le serveur de nom %s - ne peut construire/lier la socket : %m"
-#: network.c:690
+#: network.c:687
msgid "unqualified"
msgstr "non-qualifié(e)"
-#: network.c:690
+#: network.c:687
msgid "names"
msgstr "noms"
-#: network.c:692
+#: network.c:689
msgid "default"
msgstr "défaut"
-#: network.c:694
+#: network.c:691
msgid "domain"
msgstr "domaine"
-#: network.c:697
+#: network.c:694
#, c-format
msgid "using local addresses only for %s %s"
msgstr "utilise les adresses locales seulement pour %s %s"
-#: network.c:699
+#: network.c:696
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "utilise le serveur de nom %s#%d pour %s %s"
-#: network.c:702
+#: network.c:699
#, fuzzy, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "utilise le serveur de nom %s#%d (via %s)"
-#: network.c:704
+#: network.c:701
#, c-format
msgid "using nameserver %s#%d"
msgstr "utilise le serveur de nom %s#%d"
-#: dnsmasq.c:122
-msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
-msgstr "L'intégration DHCP ISC n'est pas disponible : activez HAVE_ISC_READER dans src/config.h"
-
-#: dnsmasq.c:144
+#: dnsmasq.c:136
#, fuzzy
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:149
+#: dnsmasq.c:141
msgid "asychronous logging is not available under Solaris"
msgstr "l'écriture de traces en mode asynchrone n'est pas disponible sous Solaris."
-#: dnsmasq.c:165
+#: dnsmasq.c:157
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr "Une interface et une seule doit être déclarée sur les systèmes sans IP_RECVIF"
-#: dnsmasq.c:175
+#: dnsmasq.c:167
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr "impossible de trouver la liste des interfaces : %s"
-#: dnsmasq.c:183
+#: dnsmasq.c:175
#, c-format
msgid "unknown interface %s"
msgstr "interface %s inconnue"
-#: dnsmasq.c:189
+#: dnsmasq.c:181
#, c-format
msgid "no interface with address %s"
msgstr "pas d'interface avec l'adresse %s"
-#: dnsmasq.c:206 dnsmasq.c:663
+#: dnsmasq.c:198 dnsmasq.c:652
#, c-format
msgid "DBus error: %s"
msgstr "Erreur DBus : %s"
-#: dnsmasq.c:209
+#: dnsmasq.c:201
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:233
+#: dnsmasq.c:225
#, c-format
msgid "unknown user or group: %s"
msgstr "utilisateur ou groupe inconnu : %s"
-#: dnsmasq.c:290
+#: dnsmasq.c:282
#, 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:302
+#: dnsmasq.c:294
#, c-format
msgid "cannot fork into background: %s"
msgstr "Ne peut se lancer en tâche de fond : %s"
-#: dnsmasq.c:451
+#: dnsmasq.c:443
#, fuzzy, c-format
msgid "started, version %s DNS disabled"
msgstr "démarrage avec le DNS désactivé (version %s)"
-#: dnsmasq.c:453
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cachesize %d"
msgstr "demarré, version %s (taille de cache %d)"
-#: dnsmasq.c:455
+#: dnsmasq.c:447
#, c-format
msgid "started, version %s cache disabled"
msgstr "démarrage avec le cache désactivé (version %s)"
-#: dnsmasq.c:457
+#: dnsmasq.c:449
#, c-format
msgid "compile time options: %s"
msgstr "options à la compilation : %s"
-#: dnsmasq.c:463
+#: dnsmasq.c:455
msgid "DBus support enabled: connected to system bus"
msgstr "Support DBus autorisé : connecté au bus système"
-#: dnsmasq.c:465
+#: dnsmasq.c:457
msgid "DBus support enabled: bus connection pending"
msgstr "Support DBus autorisé : connexion au bus en attente"
-#: dnsmasq.c:470
+#: dnsmasq.c:462
#, fuzzy, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr "Impossible de changer pour l'utilisateur %s : %s"
-#: dnsmasq.c:474
+#: dnsmasq.c:466
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:479
+#: dnsmasq.c:471
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "attention : l'interface %s n'existe pas actuellement"
-#: dnsmasq.c:484
+#: dnsmasq.c:476
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:487
+#: dnsmasq.c:479
#, fuzzy
msgid "warning: no upstream servers configured"
msgstr "attention : aucun serveur amont n'est configuré"
-#: dnsmasq.c:491
+#: dnsmasq.c:483
#, 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:503
+#: dnsmasq.c:495
#, 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:504
+#: dnsmasq.c:496
#, 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:518
+#: dnsmasq.c:510
msgid "root is "
msgstr "root est"
-#: dnsmasq.c:518
+#: dnsmasq.c:510
#, fuzzy
msgid "enabled"
msgstr "désactivé"
-#: dnsmasq.c:520
+#: dnsmasq.c:512
msgid "secure mode"
msgstr "mode sécurisé"
-#: dnsmasq.c:546
+#: dnsmasq.c:538
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "le nombre maximum de transferts TFTP simultanés sera restreint à %d"
-#: dnsmasq.c:665
+#: dnsmasq.c:654
msgid "connected to system DBus"
msgstr "connecté au systeme DBus"
-#: dnsmasq.c:753
+#: dnsmasq.c:742
#, fuzzy, c-format
msgid "failed to create helper: %s"
msgstr "impossible de créer le 'helper' : %s"
-#: dnsmasq.c:756
+#: dnsmasq.c:745
#, fuzzy, c-format
msgid "setting capabilities failed: %s"
msgstr "attention : impossible de configurer la capacité %m"
-#: dnsmasq.c:760
+#: dnsmasq.c:749
#, fuzzy, c-format
msgid "failed to change user-id to %s: %s"
msgstr "Impossible de changer l'identifiant utilisateur pour %s : %s"
-#: dnsmasq.c:765
+#: dnsmasq.c:754
#, fuzzy, c-format
msgid "failed to change group-id to %s: %s"
msgstr "Impossible de changer l'identifiant de groupe pour %s : %s"
-#: dnsmasq.c:768
+#: dnsmasq.c:757
#, fuzzy, c-format
msgid "failed to open pidfile %s: %s"
msgstr "impossible de lire le fichier de PID %s : %s"
-#: dnsmasq.c:771
+#: dnsmasq.c:760
#, fuzzy, c-format
msgid "cannot open %s: %s"
msgstr "Ne peut pas lire %s : %s"
-#: dnsmasq.c:822
+#: dnsmasq.c:811
#, c-format
msgid "child process killed by signal %d"
msgstr "Le processus fils a été terminé par le signal %d"
-#: dnsmasq.c:826
+#: dnsmasq.c:815
#, c-format
msgid "child process exited with status %d"
msgstr "Le processus fils s'est terminé avec le statut %d"
-#: dnsmasq.c:830
+#: dnsmasq.c:819
#, fuzzy, c-format
msgid "failed to execute %s: %s"
msgstr "impossible d'exécuter à %s : %s"
-#: dnsmasq.c:871
+#: dnsmasq.c:860
msgid "exiting on receipt of SIGTERM"
msgstr "sortie sur réception du signal SIGTERM"
-#: dnsmasq.c:922
+#: dnsmasq.c:878
+#, fuzzy, c-format
+msgid "failed to access %s: %s"
+msgstr "impossible d'accéder à %s : %m"
+
+#: dnsmasq.c:900
+#, c-format
+msgid "reading %s"
+msgstr "Lecture de %s"
+
+#: dnsmasq.c:911
#, fuzzy, c-format
msgid "no servers found in %s, will retry"
msgstr "aucun serveur trouvé dans %s, va réessayer"
@@ -1105,42 +1102,32 @@ msgstr "Paquet DHCP reçu sur %s qui n'a pas d'adresse"
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:709
+#: dhcp.c:719
#, fuzzy, c-format
msgid "failed to read %s:%s"
msgstr "impossible de lire %s : %s"
-#: dhcp.c:744
+#: dhcp.c:755
#, fuzzy, c-format
msgid "bad line at %s line %d"
msgstr "mauvaise ligne dans %s ligne %d"
-#: dhcp.c:847
+#: dhcp.c:870
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "adresse IP %s dupliquée dans la directive dhcp-config."
-#: dhcp.c:850
+#: dhcp.c:873
#, fuzzy, c-format
msgid "duplicate IP address %s in %s."
msgstr "adresse IP %s dupliquée dans %s."
-#: dhcp.c:858
-#, fuzzy, c-format
-msgid "illegal domain %s in dhcp-config directive."
-msgstr "domaine %s dupliqué dans la directive dhcp-config."
-
-#: dhcp.c:860
-#, c-format
-msgid "illegal domain %s in %s."
-msgstr "domaine %s illégal dans %s."
-
-#: dhcp.c:899
+#: dhcp.c:916
#, 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:904
+#: dhcp.c:921
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "adresse IP %s (%s) dupliquée dans la directive dhcp-config."
@@ -1169,151 +1156,160 @@ msgstr "le script lease-init a retourné le code %s"
msgid "failed to write %s: %s (retry in %us)"
msgstr "impossible de lire %s : %s (prochain essai dans %us)"
-#: rfc2131.c:310
+#: rfc2131.c:315
#, 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:311
+#: rfc2131.c:316
msgid "with subnet selector"
msgstr "avec sélecteur de sous-reseau"
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "via"
msgstr "par l'intermédiaire de"
-#: rfc2131.c:322
+#: rfc2131.c:327
#, c-format
msgid "DHCP packet: transaction-id is %u"
msgstr "paquet DHCP : l'identifiant de transaction ('transaction-id') est %u"
-#: rfc2131.c:327
+#: rfc2131.c:332
#, c-format
msgid "Available DHCP subnet: %s/%s"
msgstr "sous-réseaux DHCP disponibles : %s/%s"
-#: rfc2131.c:329
+#: rfc2131.c:334
#, c-format
msgid "Available DHCP range: %s -- %s"
msgstr "la gamme DHCP disponible est : %s -- %s"
-#: rfc2131.c:357 rfc2131.c:388
+#: rfc2131.c:362 rfc2131.c:396
msgid "disabled"
msgstr "désactivé"
-#: rfc2131.c:400 rfc2131.c:892
+#: rfc2131.c:411 rfc2131.c:928
msgid "address in use"
msgstr "adresse déjà utilisée"
-#: rfc2131.c:403
-msgid "no address configured"
-msgstr "pas d'adresse configurée"
-
-#: rfc2131.c:416 rfc2131.c:747
+#: rfc2131.c:425 rfc2131.c:765
msgid "no address available"
msgstr "pas d'adresse disponible"
-#: rfc2131.c:425 rfc2131.c:902
-msgid "no leases left"
-msgstr "plus aucun bail disponible"
-
-#: rfc2131.c:428 rfc2131.c:866
+#: rfc2131.c:432 rfc2131.c:891
msgid "wrong network"
msgstr "mauvais réseau"
-#: rfc2131.c:530
-#, 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:445
+msgid "no address configured"
+msgstr "pas d'adresse configurée"
-#: rfc2131.c:624
+#: rfc2131.c:451 rfc2131.c:941
+msgid "no leases left"
+msgstr "plus aucun bail disponible"
+
+#: rfc2131.c:640
#, c-format
msgid "Vendor class: %s"
msgstr "Classe de vendeur ('Vendor Class') : %s"
-#: rfc2131.c:626
+#: rfc2131.c:642
#, c-format
msgid "User class: %s"
msgstr "Classe d'utilisateur : %s"
-#: rfc2131.c:667
+#: rfc2131.c:683
#, fuzzy, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "désactive l'adresse statique DHCP %s pour %s"
-#: rfc2131.c:688
+#: rfc2131.c:704
msgid "unknown lease"
msgstr "bail inconnu"
-#: rfc2131.c:697 rfc2131.c:1018
+#: rfc2131.c:713 rfc2131.c:1058
msgid "ignored"
msgstr "ignoré"
-#: rfc2131.c:718
+#: rfc2131.c:736
#, 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:728
+#: rfc2131.c:746
#, 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:731
+#: rfc2131.c:749
#, 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:745 rfc2131.c:895
+#: rfc2131.c:763 rfc2131.c:934
msgid "no unique-id"
msgstr "pas d'identifiant unique"
-#: rfc2131.c:825
+#: rfc2131.c:831
+msgid "wrong server-ID"
+msgstr ""
+
+#: rfc2131.c:850
msgid "wrong address"
msgstr "mauvaise adresse"
-#: rfc2131.c:842
+#: rfc2131.c:867
msgid "lease not found"
msgstr "bail non trouvé"
-#: rfc2131.c:874
+#: rfc2131.c:899
msgid "address not available"
msgstr "adresse non disponible"
-#: rfc2131.c:885
+#: rfc2131.c:910
msgid "static lease available"
msgstr "bail statique disponible"
-#: rfc2131.c:889
+#: rfc2131.c:914
msgid "address reserved"
msgstr "adresse reservée"
-#: rfc2131.c:1307
+#: rfc2131.c:922
+#, c-format
+msgid "abandoning lease to %s of %s"
+msgstr ""
+
+#: rfc2131.c:1356
#, c-format
msgid "tags: %s"
msgstr "options: %s"
-#: rfc2131.c:1394
+#: rfc2131.c:1443
#, fuzzy, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr "Impossible d'envoyer l'option DHCP %d : pas assez d'espace dans le paquet"
-#: rfc2131.c:1564
+#: rfc2131.c:1599
+#, 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:1617
#, fuzzy, c-format
msgid "requested options: %s"
msgstr "options demandées : %s"
-#: rfc2131.c:1613
+#: rfc2131.c:1666
#, fuzzy, c-format
msgid "next server: %s"
msgstr "serveur suivant : %s"
-#: rfc2131.c:1637
+#: rfc2131.c:1690
#, c-format
msgid "bootfile name: %s"
msgstr "nom de fichier 'bootfile' : %s"
-#: rfc2131.c:1640
+#: rfc2131.c:1693
#, c-format
msgid "server name: %s"
msgstr "nom du serveur : %s"
@@ -1393,6 +1389,26 @@ msgstr "trace perdue : %s"
msgid "FAILED to start up"
msgstr "IMPOSSIBLE de démarrer"
+#, fuzzy
+#~ msgid "failed to load %s: %s"
+#~ msgstr "impossible de charger %s : %m"
+
+#~ msgid "bad name in %s"
+#~ msgstr "mauvais nom dans %s"
+
+#~ msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
+#~ msgstr "On ignore le bail DHCP pour %s car il possède un nom de domaine illégal"
+
+#~ msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
+#~ msgstr "L'intégration DHCP ISC n'est pas disponible : activez HAVE_ISC_READER dans src/config.h"
+
+#, fuzzy
+#~ msgid "illegal domain %s in dhcp-config directive."
+#~ msgstr "domaine %s dupliqué dans la directive dhcp-config."
+
+#~ msgid "illegal domain %s in %s."
+#~ msgstr "domaine %s illégal dans %s."
+
#~ msgid "running as root"
#~ msgstr "executé en temps que root"
diff --git a/po/id.po b/po/id.po
index 382256b..f9dde42 100644
--- a/po/id.po
+++ b/po/id.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-07-20 20:03+0100\n"
+"POT-Creation-Date: 2008-11-13 20:23+0000\n"
"PO-Revision-Date: 2005-10-07 11:45+0100\n"
"Last-Translator: Salman AS <sas@salman.or.id>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -15,57 +15,57 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
# OK
-#: cache.c:695
+#: cache.c:761
#, fuzzy, c-format
msgid "failed to load names from %s: %s"
msgstr "gagal memuat nama-nama dari %s: %m"
# OK
-#: cache.c:729 dhcp.c:757
+#: cache.c:795 dhcp.c:768
#, fuzzy, c-format
msgid "bad address at %s line %d"
msgstr "kesalahan nama pada %s baris %d"
# OK
-#: cache.c:776 dhcp.c:771
+#: cache.c:850 dhcp.c:782
#, c-format
msgid "bad name at %s line %d"
msgstr "kesalahan nama pada %s baris %d"
# OK
-#: cache.c:783 dhcp.c:825
+#: cache.c:857 dhcp.c:848
#, c-format
msgid "read %s - %d addresses"
msgstr "membaca %s - %d alamat"
# OK
-#: cache.c:821
+#: cache.c:895
msgid "cleared cache"
msgstr "cache telah dihapus"
# OK
-#: cache.c:870
+#: cache.c:942
#, 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:922
+#: cache.c:1018
#, c-format
msgid "time %lu"
msgstr ""
# OK
-#: cache.c:923
+#: cache.c:1019
#, 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:925
+#: cache.c:1021
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr ""
-#: cache.c:948
+#: cache.c:1044
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr ""
@@ -100,470 +100,478 @@ msgid "infinite"
msgstr "tak terbatas"
# OK
-#: option.c:219
+#: option.c:223
msgid "Specify local address(es) to listen on."
msgstr "Tentukan alamat lokal untuk mendengarkan."
# OK
-#: option.c:220
+#: option.c:224
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Menghasilkan ipaddr untuk semua host dalam domain yang dipilih."
# OK
-#: option.c:221
+#: option.c:225
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Fake pencarian balik untuk alamat private sesuai dengan RFC1918."
# OK
-#: option.c:222
+#: option.c:226
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Perlakukan ipaddr sebagai NXDOMAIN (mengalahkan wildcard Verisign)."
# OK
-#: option.c:223
+#: option.c:227
#, 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:224
+#: option.c:228
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Tentukan file konfigurasi (default %s)."
# OK
-#: option.c:225
+#: option.c:229
msgid "Do NOT fork into the background: run in debug mode."
msgstr "JANGAN berjalan di background: berjalan dalam modus debug."
# OK
-#: option.c:226
+#: option.c:230
msgid "Do NOT forward queries with no domain part."
msgstr "JANGAN teruskan permintaan tanpa bagian domain."
# OK
-#: option.c:227
+#: option.c:231
msgid "Return self-pointing MX records for local hosts."
msgstr "Mengembalikan record MX untuk diri sendiri host-host lokal."
# OK
-#: option.c:228
+#: option.c:232
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Melengkapi nama-nama di /etc/hosts dengan akhiran domain."
# OK
-#: option.c:229
+#: option.c:233
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Jangan meneruskan permintaan DNS spurious dari host-host Windows."
# OK
-#: option.c:230
+#: option.c:234
msgid "Enable DHCP in the range given with lease duration."
msgstr "Bolehkan DHCP dalam jangkauan yang diberikan dengan durasi lease."
# OK
-#: option.c:231
+#: option.c:235
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Ubah ke group ini setelah mulai (default %s)."
# OK
-#: option.c:232
+#: option.c:236
msgid "Set address or hostname for a specified machine."
msgstr "Setel alamat atau nama host untuk mesin yang disebutkan."
-#: option.c:233
+#: option.c:237
msgid "Read DHCP host specs from file"
msgstr ""
-#: option.c:234
+#: option.c:238
msgid "Read DHCP option specs from file"
msgstr ""
# OK
-#: option.c:235
+#: option.c:239
#, c-format
msgid "Do NOT load %s file."
msgstr "JANGAN muat file %s."
# OK
-#: option.c:236
+#: option.c:240
#, 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:237
+#: option.c:241
msgid "Specify interface(s) to listen on."
msgstr "Sebutkan antarmuka untuk mendengarkan."
# OK
-#: option.c:238
+#: option.c:242
msgid "Specify interface(s) NOT to listen on."
msgstr "Sebutkan antarmuka untuk TIDAK mendengarkan."
# OK
-#: option.c:239
+#: option.c:243
#, fuzzy
msgid "Map DHCP user class to tag."
msgstr "Petakan kelas user DHCP ke setelan yang dipilih."
-#: option.c:240
+#: option.c:244
msgid "Map RFC3046 circuit-id to tag."
msgstr ""
-#: option.c:241
+#: option.c:245
msgid "Map RFC3046 remote-id to tag."
msgstr ""
-#: option.c:242
+#: option.c:246
msgid "Map RFC3993 subscriber-id to tag."
msgstr ""
# OK
-#: option.c:243
+#: option.c:247
#, fuzzy
msgid "Don't do DHCP for hosts with tag set."
msgstr "Jangan menggunakan DHCP untuk host-host yang dipilih."
# OK
-#: option.c:244
+#: option.c:248
#, fuzzy
msgid "Force broadcast replies for hosts with tag set."
msgstr "Jangan menggunakan DHCP untuk host-host yang dipilih."
# OK
-#: option.c:245
+#: option.c:249
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:246
+#: option.c:250
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:247
+#: option.c:251
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Sebutkan lokasi untuk menyimpan lease DHCP (default %s)."
# OK
-#: option.c:248
+#: option.c:252
msgid "Return MX records for local hosts."
msgstr "Kembalikan rekord MX untuk host-host lokal."
# OK
-#: option.c:249
+#: option.c:253
msgid "Specify an MX record."
msgstr "Sebutkan sebuah rekord MX."
# OK
-#: option.c:250
+#: option.c:254
msgid "Specify BOOTP options to DHCP server."
msgstr "Sebutkan pilihan-pilihan BOOTP untuk DHCP server."
-#: option.c:251
+#: option.c:255
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "Jangan kumpulkan file %s, muat kembali saat SIGHUP."
# OK
-#: option.c:252
+#: option.c:256
msgid "Do NOT cache failed search results."
msgstr "JANGAN menyimpan hasil pencarian yang gagal."
# OK
-#: option.c:253
+#: option.c:257
#, 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:254
+#: option.c:258
#, fuzzy
msgid "Specify options to be sent to DHCP clients."
msgstr "Setel pilihan-pilihan tambahan yang akan disetel untuk klien-klien DHCP."
-#: option.c:255
+#: option.c:259
msgid "DHCP option sent even if the client does not request it."
msgstr ""
# OK
-#: option.c:256
+#: option.c:260
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:257
+#: option.c:261
#, 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:258
+#: option.c:262
#, fuzzy
msgid "Log DNS queries."
msgstr "Permintaan log."
# OK
-#: option.c:259
+#: option.c:263
#, fuzzy
msgid "Force the originating port for upstream DNS queries."
msgstr "Paksa port asal untuk permintaan ke atas."
# OK
-#: option.c:260
+#: option.c:264
msgid "Do NOT read resolv.conf."
msgstr "JANGAN baca resolv.conf."
# OK
-#: option.c:261
+#: option.c:265
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Sebutkan path ke resolv.conf (default %s)."
# OK
-#: option.c:262
+#: option.c:266
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:263
+#: option.c:267
msgid "Never forward queries to specified domains."
msgstr "JANGAN pernah meneruskan permintaan ke domain yang disebutkan."
# OK
-#: option.c:264
+#: option.c:268
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Sebutkan domain yang digunakan dalam lease DHCP."
# OK
-#: option.c:265
+#: option.c:269
msgid "Specify default target in an MX record."
msgstr "Sebutkan tujuan default dalam rekord MX."
# OK
-#: option.c:266
+#: option.c:270
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:267
+#: option.c:271
#, 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:268
+#: option.c:272
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Ubah ke user ini setelah mulai. (default %s)."
# OK
-#: option.c:269
+#: option.c:273
#, fuzzy
msgid "Map DHCP vendor class to tag."
msgstr "Memetakan kelas vendor DHCP ke daftar pilihan."
# OK
-#: option.c:270
+#: option.c:274
msgid "Display dnsmasq version and copyright information."
msgstr "Menampilkan versi dan informasi hak cipta dnsmasq."
# OK
-#: option.c:271
+#: option.c:275
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Terjemahkan alamat-alamat IPv4 dari server-server di atas."
# OK
-#: option.c:272
+#: option.c:276
msgid "Specify a SRV record."
msgstr "Sebutkan rekord SRV."
-#: option.c:273
+#: option.c:277
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr ""
# OK
-#: option.c:274
+#: option.c:278
#, fuzzy, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr "Sebutkan path file PID. (default %s)."
# OK
-#: option.c:275
+#: option.c:279
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)."
# OK
-#: option.c:276
+#: option.c:280
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:277
+#: option.c:281
msgid "Specify TXT DNS record."
msgstr "Sebutkan rekord TXT DNS."
# OK
-#: option.c:278
+#: option.c:282
#, fuzzy
msgid "Specify PTR DNS record."
msgstr "Sebutkan rekord TXT DNS."
-#: option.c:279
+#: option.c:283
msgid "Give DNS name to IPv4 address of interface."
msgstr ""
# OK
-#: option.c:280
+#: option.c:284
msgid "Bind only to interfaces in use."
msgstr "Hanya kaitkan ke antarmuka yang sedang digunakan saja."
# OK
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Baca informasi statik host DHCP dari %s."
# OK
-#: option.c:282
+#: option.c:286
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:283
+#: option.c:287
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "JANGAN menyediakan DHCP pada antarmuka ini, hanya menyediakan DNS."
# OK
-#: option.c:284
+#: option.c:288
msgid "Enable dynamic address allocation for bootp."
msgstr "Mungkinkan alokasi alamat dinamis untuk bootp."
# OK
-#: option.c:285
+#: option.c:289
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Memetakan kelas vendor DHCP ke daftar pilihan."
-#: option.c:287
+#: option.c:291
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr ""
-#: option.c:289
+#: option.c:293
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:290
+#: option.c:294
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
-#: option.c:291
+#: option.c:295
msgid "Read configuration from all the files in this directory."
msgstr ""
# OK
-#: option.c:292
+#: option.c:296
#, fuzzy
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr "Ubah ke user ini setelah mulai. (default %s)."
-#: option.c:293
+#: option.c:297
msgid "Do not use leasefile."
msgstr ""
# OK
-#: option.c:294
+#: option.c:298
#, fuzzy, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)."
-#: option.c:295
+#: option.c:299
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr ""
-#: option.c:296
+#: option.c:300
msgid "Ignore hostnames provided by DHCP clients."
msgstr ""
-#: option.c:297
+#: option.c:301
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr ""
-#: option.c:298
+#: option.c:302
msgid "Enable integrated read-only TFTP server."
msgstr ""
-#: option.c:299
+#: option.c:303
msgid "Export files by TFTP only from the specified subtree."
msgstr ""
-#: option.c:300
+#: option.c:304
msgid "Add client IP address to tftp-root."
msgstr ""
-#: option.c:301
+#: option.c:305
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr ""
# OK
-#: option.c:302
+#: option.c:306
#, fuzzy, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)."
-#: option.c:303
+#: option.c:307
msgid "Disable the TFTP blocksize extension."
msgstr ""
-#: option.c:304
+#: option.c:308
msgid "Ephemeral port range for use by TFTP transfers."
msgstr ""
-#: option.c:305
+#: option.c:309
msgid "Extra logging for DHCP."
msgstr ""
-#: option.c:306
+#: option.c:310
msgid "Enable async. logging; optionally set queue length."
msgstr ""
-#: option.c:307
+#: option.c:311
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr ""
-#: option.c:308
+#: option.c:312
msgid "Always perform DNS queries to all servers."
msgstr ""
-#: option.c:309
+#: option.c:313
msgid "Set tag if client includes option in request."
msgstr ""
-#: option.c:310
+#: option.c:314
msgid "Use alternative ports for DHCP."
msgstr ""
-#: option.c:311
+#: option.c:315
msgid "Run lease-change script as this user."
msgstr ""
# OK
-#: option.c:312
+#: option.c:316
#, fuzzy
msgid "Specify NAPTR DNS record."
msgstr "Sebutkan rekord TXT DNS."
-#: option.c:313
+#: option.c:317
msgid "Specify lowest port available for DNS query transmission."
msgstr ""
+#: option.c:318
+msgid "Use only fully qualified domain names for DHCP clients."
+msgstr ""
+
+#: option.c:319
+msgid "Specify alias name for LOCAL DNS name."
+msgstr ""
+
# OK
-#: option.c:574
+#: option.c:580
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -573,238 +581,242 @@ msgstr ""
"\n"
# OK
-#: option.c:576
+#: option.c:582
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Gunakan pilihan pendek saja pada perintah baris.\n"
# OK
-#: option.c:578
+#: option.c:584
#, fuzzy, c-format
msgid "Valid options are:\n"
msgstr "Pilihan yang boleh adalah:\n"
-#: option.c:618
+#: option.c:624
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
# OK
-#: option.c:691
+#: option.c:697
msgid "bad dhcp-option"
msgstr "dhcp-option salah"
# OK
-#: option.c:747
+#: option.c:753
#, fuzzy
msgid "bad IP address"
msgstr "membaca %s - %d alamat"
# OK
-#: option.c:845
+#: option.c:851
msgid "bad domain in dhcp-option"
msgstr "domain dalam dhcp-option salah"
# OK
-#: option.c:903
+#: option.c:909
msgid "dhcp-option too long"
msgstr "dhcp-option terlalu panjang"
-#: option.c:932
+#: option.c:938
msgid "illegal repeated flag"
msgstr ""
-#: option.c:940
+#: option.c:946
msgid "illegal repeated keyword"
msgstr ""
# OK
-#: option.c:974
+#: option.c:983
#, fuzzy, c-format
msgid "cannot access directory %s: %s"
msgstr "tidak bisa membaca %s: %s"
# OK
-#: option.c:993 tftp.c:348
+#: option.c:1002 tftp.c:348
#, fuzzy, c-format
msgid "cannot access %s: %s"
msgstr "tidak bisa membaca %s: %s"
-#: option.c:1030
+#: option.c:1040
msgid "only one dhcp-hostsfile allowed"
msgstr ""
-#: option.c:1037
+#: option.c:1047
msgid "only one dhcp-optsfile allowed"
msgstr ""
# OK
-#: option.c:1081
+#: option.c:1091
msgid "bad MX preference"
msgstr "kesukaan MX salah"
# OK
-#: option.c:1085
+#: option.c:1095
msgid "bad MX name"
msgstr "nama MX salah"
# OK
-#: option.c:1099
+#: option.c:1109
msgid "bad MX target"
msgstr "target MX salah"
-#: option.c:1110
+#: option.c:1120
msgid "cannot run scripts under uClinux"
msgstr ""
# OK
-#: option.c:1303 option.c:1311
+#: option.c:1352 option.c:1360
msgid "bad port"
msgstr "port salah"
-#: option.c:1331 option.c:1356
+#: option.c:1380 option.c:1405
msgid "interface binding not supported"
msgstr ""
# OK
-#: option.c:1474
+#: option.c:1523
#, fuzzy
msgid "bad port range"
msgstr "port salah"
-#: option.c:1491
+#: option.c:1540
msgid "bad bridge-interface"
msgstr ""
# OK
-#: option.c:1532
+#: option.c:1581
msgid "bad dhcp-range"
msgstr "dhcp-range salah"
-#: option.c:1558
+#: option.c:1607
msgid "only one netid tag allowed"
msgstr ""
# OK
-#: option.c:1598
+#: option.c:1647
msgid "inconsistent DHCP range"
msgstr "jangkauan DHCP tidak konsisten"
# OK
-#: option.c:1766
+#: option.c:1819
#, fuzzy
msgid "bad DHCP host name"
msgstr "nama MX salah"
# OK
-#: option.c:1938 option.c:2181
+#: option.c:1998 option.c:2270
msgid "invalid port number"
msgstr "nomor port tidak benar"
# OK
-#: option.c:2024
+#: option.c:2093
#, fuzzy
msgid "bad interface name"
msgstr "nama MX salah"
+#: option.c:2116
+msgid "duplicate CNAME"
+msgstr ""
+
# OK
-#: option.c:2044
+#: option.c:2133
#, fuzzy
msgid "bad PTR record"
msgstr "rekord SRV salah"
# OK
-#: option.c:2074
+#: option.c:2163
#, fuzzy
msgid "bad NAPTR record"
msgstr "rekord SRV salah"
# OK
-#: option.c:2100
+#: option.c:2189
msgid "TXT record string too long"
msgstr "string rekord TXT terlalu panjang"
# OK
-#: option.c:2104
+#: option.c:2193
msgid "bad TXT record"
msgstr "rekord TXT salah"
# OK
-#: option.c:2164
+#: option.c:2253
msgid "bad SRV record"
msgstr "rekord SRV salah"
# OK
-#: option.c:2173
+#: option.c:2262
msgid "bad SRV target"
msgstr "target SRV salah"
# OK
-#: option.c:2188
+#: option.c:2277
msgid "invalid priority"
msgstr "prioritas tidak benar"
# OK
-#: option.c:2195
+#: option.c:2284
msgid "invalid weight"
msgstr "weight tidak benar"
-#: option.c:2231
+#: option.c:2320
#, c-format
msgid "files nested too deep in %s"
msgstr ""
# OK
-#: option.c:2239 tftp.c:503
+#: option.c:2328 tftp.c:503
#, c-format
msgid "cannot read %s: %s"
msgstr "tidak bisa membaca %s: %s"
# OK
-#: option.c:2300
+#: option.c:2389
msgid "missing \""
msgstr "kurang \""
# OK
-#: option.c:2347
+#: option.c:2436
msgid "bad option"
msgstr "pilihan salah"
# OK
-#: option.c:2349
+#: option.c:2438
msgid "extraneous parameter"
msgstr "parameter berlebihan"
# OK
-#: option.c:2351
+#: option.c:2440
msgid "missing parameter"
msgstr "parameter kurang"
# OK
-#: option.c:2359
+#: option.c:2448
msgid "error"
msgstr "kesalahan"
# OK
-#: option.c:2365
+#: option.c:2454
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s pada baris %d dari %%s"
# OK
-#: option.c:2405 option.c:2435
+#: option.c:2502 option.c:2532
#, fuzzy, c-format
msgid "read %s"
msgstr "membaca %s"
# OK
-#: option.c:2502
+#: option.c:2599
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq versi %s %s\n"
# OK
-#: option.c:2503
+#: option.c:2600
#, c-format
msgid ""
"Compile time options %s\n"
@@ -814,65 +826,69 @@ msgstr ""
"\n"
# OK
-#: option.c:2504
+#: option.c:2601
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Perangkat lunak ini tersedia TANPA JAMINAN SEDIKITPUN.\n"
# OK
-#: option.c:2505
+#: option.c:2602
#, 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:2506
+#: option.c:2603
#, 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:2517
+#: option.c:2614
msgid "try --help"
msgstr ""
-#: option.c:2519
+#: option.c:2616
msgid "try -w"
msgstr ""
# OK
-#: option.c:2522
+#: option.c:2619
#, fuzzy, c-format
msgid "bad command line options: %s"
msgstr "pilihan baris perintah salah: %s."
# OK
-#: option.c:2563
+#: option.c:2660
#, c-format
msgid "cannot get host-name: %s"
msgstr "tidak bisa mendapatkan host-name: %s"
# OK
-#: option.c:2591
+#: option.c:2688
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:2601
+#: option.c:2698
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:2604 network.c:724
+#: option.c:2701 network.c:721
#, fuzzy, c-format
msgid "failed to read %s: %s"
msgstr "gagal membaca %s: %m"
# OK
-#: option.c:2622
+#: option.c:2719
#, c-format
msgid "no search directive found in %s"
msgstr "tidak ditemukan direktif search di %s"
+#: option.c:2740
+msgid "there must be a default domain when --dhcp-fqdn is set"
+msgstr ""
+
# OK
#: forward.c:405
#, c-format
@@ -884,43 +900,13 @@ msgid "possible DNS-rebind attack detected"
msgstr ""
# OK
-#: isc.c:77 dnsmasq.c:889
-#, fuzzy, c-format
-msgid "failed to access %s: %s"
-msgstr "gagal mengakses %s: %m"
-
-# OK
-#: isc.c:93
-#, fuzzy, c-format
-msgid "failed to load %s: %s"
-msgstr "gagal memuat %S: %m"
-
-# OK
-#: isc.c:97 dnsmasq.c:911
-#, c-format
-msgid "reading %s"
-msgstr "membaca %s"
-
-# OK
-#: isc.c:119
-#, c-format
-msgid "bad name in %s"
-msgstr "kesalahan nama di %s"
-
-# OK
-#: isc.c:181
-#, c-format
-msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
-msgstr "Mengabaikan lease DHCP untuk %s sebab terdapat bagian domain yang tidak sah"
-
-# OK
#: network.c:45
#, fuzzy, c-format
msgid "unknown interface %s in bridge-interface"
msgstr "antarmuka tidak dikenal %s"
# OK
-#: network.c:389 dnsmasq.c:194
+#: network.c:389 dnsmasq.c:186
#, c-format
msgid "failed to create listening socket: %s"
msgstr "gagal membuat socket: %s "
@@ -948,288 +934,295 @@ msgstr "gagal mendengarkan di socket: %s"
msgid "failed to create TFTP socket: %s"
msgstr "gagal membuat socket: %s "
-#: network.c:631
+#: network.c:628
#, fuzzy, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "gagal mem-bind socket untuk mendengarkan %s: %s"
# OK
-#: network.c:664
+#: network.c:661
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "mengabaikan nameserver %s - antarmuka lokal"
# OK
-#: network.c:675
+#: network.c:672
#, fuzzy, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr "mengabaikan nameserver %s - tak dapat membuat/mem-bind socket: %m"
# OK
-#: network.c:690
+#: network.c:687
msgid "unqualified"
msgstr "tidak memenuhi syarat"
-#: network.c:690
+#: network.c:687
msgid "names"
msgstr ""
-#: network.c:692
+#: network.c:689
msgid "default"
msgstr ""
# OK
-#: network.c:694
+#: network.c:691
msgid "domain"
msgstr "domain"
# OK
-#: network.c:697
+#: network.c:694
#, c-format
msgid "using local addresses only for %s %s"
msgstr "menggunakan alamat lokal saja untuk %s %s"
# OK
-#: network.c:699
+#: network.c:696
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "menggunakan nameserver %s#%d untuk %s %s"
# OK
-#: network.c:702
+#: network.c:699
#, fuzzy, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "menggunakan nameserver %s#%d"
# OK
-#: network.c:704
+#: network.c:701
#, c-format
msgid "using nameserver %s#%d"
msgstr "menggunakan nameserver %s#%d"
# OK
-#: dnsmasq.c:122
-msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
-msgstr "Integrasi dengan dhcpd ISC tidak tersedia: atur HAVE_ISC_READER dalam src/config.h"
-
-# OK
-#: dnsmasq.c:144
+#: dnsmasq.c:136
#, 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:149
+#: dnsmasq.c:141
msgid "asychronous logging is not available under Solaris"
msgstr ""
# OK
-#: dnsmasq.c:165
+#: dnsmasq.c:157
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr "harus menyetel satu antarmuka saja pada sistem yang tidak benar dengan IP_RECVIF"
# OK
-#: dnsmasq.c:175
+#: dnsmasq.c:167
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr "gagal mendapatkan daftar antarmuka: %s"
# OK
-#: dnsmasq.c:183
+#: dnsmasq.c:175
#, c-format
msgid "unknown interface %s"
msgstr "antarmuka tidak dikenal %s"
# OK
-#: dnsmasq.c:189
+#: dnsmasq.c:181
#, c-format
msgid "no interface with address %s"
msgstr "tidak ada antarmuka dengan alamat %s"
# OK
-#: dnsmasq.c:206 dnsmasq.c:663
+#: dnsmasq.c:198 dnsmasq.c:652
#, c-format
msgid "DBus error: %s"
msgstr "DBus error: %s"
# OK
-#: dnsmasq.c:209
+#: dnsmasq.c:201
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h"
-#: dnsmasq.c:233
+#: dnsmasq.c:225
#, c-format
msgid "unknown user or group: %s"
msgstr ""
-#: dnsmasq.c:290
+#: dnsmasq.c:282
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr ""
-#: dnsmasq.c:302
+#: dnsmasq.c:294
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
# OK
-#: dnsmasq.c:451
+#: dnsmasq.c:443
#, fuzzy, c-format
msgid "started, version %s DNS disabled"
msgstr "dimulai, cache versi %s di disable"
# OK
-#: dnsmasq.c:453
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cachesize %d"
msgstr "dimulai, versi %s ukuran cache %d"
# OK
-#: dnsmasq.c:455
+#: dnsmasq.c:447
#, c-format
msgid "started, version %s cache disabled"
msgstr "dimulai, cache versi %s di disable"
# OK
-#: dnsmasq.c:457
+#: dnsmasq.c:449
#, c-format
msgid "compile time options: %s"
msgstr "pilihan-pilihan saat kompilasi: %s"
# OK
-#: dnsmasq.c:463
+#: dnsmasq.c:455
msgid "DBus support enabled: connected to system bus"
msgstr "dukungan DBus dimungkinkan: terkoneksi pada bus sistem"
# OK
-#: dnsmasq.c:465
+#: dnsmasq.c:457
msgid "DBus support enabled: bus connection pending"
msgstr "dukungan DBus dimungkinkan: koneksi bus ditunda"
# OK
-#: dnsmasq.c:470
+#: dnsmasq.c:462
#, fuzzy, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr "gagal memuat nama-nama dari %s: %m"
# OK
-#: dnsmasq.c:474
+#: dnsmasq.c:466
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "setelan opsi --bind-interfaces disebabkan keterbatasan OS"
# OK
-#: dnsmasq.c:479
+#: dnsmasq.c:471
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "peringatan: antarmuka %s tidak ada"
-#: dnsmasq.c:484
+#: dnsmasq.c:476
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr ""
# OK
-#: dnsmasq.c:487
+#: dnsmasq.c:479
#, fuzzy
msgid "warning: no upstream servers configured"
msgstr "menyetel server-server di atas dengan DBus"
-#: dnsmasq.c:491
+#: dnsmasq.c:483
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr ""
# OK
-#: dnsmasq.c:503
+#: dnsmasq.c:495
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "DHCP, lease static pada %.0s%s, waktu lease %s"
# OK
-#: dnsmasq.c:504
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, jangkaun IP %s -- %s, waktu lease %s"
-#: dnsmasq.c:518
+#: dnsmasq.c:510
msgid "root is "
msgstr ""
# OK
-#: dnsmasq.c:518
+#: dnsmasq.c:510
#, fuzzy
msgid "enabled"
msgstr "di disable"
-#: dnsmasq.c:520
+#: dnsmasq.c:512
msgid "secure mode"
msgstr ""
-#: dnsmasq.c:546
+#: dnsmasq.c:538
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
# OK
-#: dnsmasq.c:665
+#: dnsmasq.c:654
msgid "connected to system DBus"
msgstr "terhubung ke sistem DBus"
# OK
-#: dnsmasq.c:753
+#: dnsmasq.c:742
#, fuzzy, c-format
msgid "failed to create helper: %s"
msgstr "gagal membaca %s: %m"
-#: dnsmasq.c:756
+#: dnsmasq.c:745
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
# OK
-#: dnsmasq.c:760
+#: dnsmasq.c:749
#, fuzzy, c-format
msgid "failed to change user-id to %s: %s"
msgstr "gagal memuat nama-nama dari %s: %m"
# OK
-#: dnsmasq.c:765
+#: dnsmasq.c:754
#, fuzzy, c-format
msgid "failed to change group-id to %s: %s"
msgstr "gagal memuat nama-nama dari %s: %m"
# OK
-#: dnsmasq.c:768
+#: dnsmasq.c:757
#, fuzzy, c-format
msgid "failed to open pidfile %s: %s"
msgstr "gagal membaca %s: %m"
# OK
-#: dnsmasq.c:771
+#: dnsmasq.c:760
#, fuzzy, c-format
msgid "cannot open %s: %s"
msgstr "tidak bisa membuka %s:%s"
-#: dnsmasq.c:822
+#: dnsmasq.c:811
#, c-format
msgid "child process killed by signal %d"
msgstr ""
-#: dnsmasq.c:826
+#: dnsmasq.c:815
#, c-format
msgid "child process exited with status %d"
msgstr ""
# OK
-#: dnsmasq.c:830
+#: dnsmasq.c:819
#, fuzzy, c-format
msgid "failed to execute %s: %s"
msgstr "gagal mengakses %s: %m"
-#: dnsmasq.c:871
+#: dnsmasq.c:860
msgid "exiting on receipt of SIGTERM"
msgstr "keluar karena menerima SIGTERM"
# OK
-#: dnsmasq.c:922
+#: dnsmasq.c:878
+#, fuzzy, c-format
+msgid "failed to access %s: %s"
+msgstr "gagal mengakses %s: %m"
+
+# OK
+#: dnsmasq.c:900
+#, c-format
+msgid "reading %s"
+msgstr "membaca %s"
+
+# OK
+#: dnsmasq.c:911
#, fuzzy, c-format
msgid "no servers found in %s, will retry"
msgstr "tidak ditemukan direktif search di %s"
@@ -1276,47 +1269,36 @@ msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "jangkauan DHCP %s -- %s tidak konsisten dengan netmask %s"
# OK
-#: dhcp.c:709
+#: dhcp.c:719
#, fuzzy, c-format
msgid "failed to read %s:%s"
msgstr "gagal membaca %s: %m"
# OK
-#: dhcp.c:744
+#: dhcp.c:755
#, fuzzy, c-format
msgid "bad line at %s line %d"
msgstr "kesalahan nama pada %s baris %d"
# OK
-#: dhcp.c:847
+#: dhcp.c:870
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "alamat IP kembar %s dalam direktif dhcp-config"
# OK
-#: dhcp.c:850
+#: dhcp.c:873
#, fuzzy, c-format
msgid "duplicate IP address %s in %s."
msgstr "alamat IP kembar %s dalam direktif dhcp-config"
-# OK
-#: dhcp.c:858
-#, fuzzy, c-format
-msgid "illegal domain %s in dhcp-config directive."
-msgstr "alamat IP kembar %s dalam direktif dhcp-config"
-
-#: dhcp.c:860
-#, c-format
-msgid "illegal domain %s in %s."
-msgstr ""
-
-#: dhcp.c:899
+#: dhcp.c:916
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
# OK
-#: dhcp.c:904
+#: dhcp.c:921
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "alamat IP kembar %s (%s) dalam direktif dhcp-config"
@@ -1350,169 +1332,178 @@ msgid "failed to write %s: %s (retry in %us)"
msgstr "gagal membaca %s: %m"
# OK
-#: rfc2131.c:310
+#: rfc2131.c:315
#, 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:311
+#: rfc2131.c:316
msgid "with subnet selector"
msgstr "dengan pemilih subnet"
# OK
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "via"
msgstr "lewat"
-#: rfc2131.c:322
+#: rfc2131.c:327
#, c-format
msgid "DHCP packet: transaction-id is %u"
msgstr ""
-#: rfc2131.c:327
+#: rfc2131.c:332
#, c-format
msgid "Available DHCP subnet: %s/%s"
msgstr ""
-#: rfc2131.c:329
+#: rfc2131.c:334
#, c-format
msgid "Available DHCP range: %s -- %s"
msgstr ""
# OK
-#: rfc2131.c:357 rfc2131.c:388
+#: rfc2131.c:362 rfc2131.c:396
msgid "disabled"
msgstr "di disable"
# OK
-#: rfc2131.c:400 rfc2131.c:892
+#: rfc2131.c:411 rfc2131.c:928
msgid "address in use"
msgstr "alamat telah digunakan"
# OK
-#: rfc2131.c:403
-msgid "no address configured"
-msgstr "tak ada alamat yang disetel"
-
-# OK
-#: rfc2131.c:416 rfc2131.c:747
+#: rfc2131.c:425 rfc2131.c:765
msgid "no address available"
msgstr "tak ada alamat yang tersedia"
# OK
-#: rfc2131.c:425 rfc2131.c:902
-msgid "no leases left"
-msgstr "tak ada lease yang tersisa"
-
-# OK
-#: rfc2131.c:428 rfc2131.c:866
+#: rfc2131.c:432 rfc2131.c:891
msgid "wrong network"
msgstr "jaringan yang salah"
-#: rfc2131.c:530
-#, c-format
-msgid "Ignoring domain %s for DHCP host name %s"
-msgstr ""
+# OK
+#: rfc2131.c:445
+msgid "no address configured"
+msgstr "tak ada alamat yang disetel"
-#: rfc2131.c:624
+# OK
+#: rfc2131.c:451 rfc2131.c:941
+msgid "no leases left"
+msgstr "tak ada lease yang tersisa"
+
+#: rfc2131.c:640
#, c-format
msgid "Vendor class: %s"
msgstr ""
-#: rfc2131.c:626
+#: rfc2131.c:642
#, c-format
msgid "User class: %s"
msgstr ""
# OK
-#: rfc2131.c:667
+#: rfc2131.c:683
#, fuzzy, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "men-disable alamat statik DHCP %s"
# OK
-#: rfc2131.c:688
+#: rfc2131.c:704
msgid "unknown lease"
msgstr "lease tidak diketahui"
# OK
-#: rfc2131.c:697 rfc2131.c:1018
+#: rfc2131.c:713 rfc2131.c:1058
msgid "ignored"
msgstr "diabaikan"
-#: rfc2131.c:718
+#: rfc2131.c:736
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:728
+#: rfc2131.c:746
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:731
+#: rfc2131.c:749
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:745 rfc2131.c:895
+#: rfc2131.c:763 rfc2131.c:934
msgid "no unique-id"
msgstr ""
+#: rfc2131.c:831
+msgid "wrong server-ID"
+msgstr ""
+
# OK
-#: rfc2131.c:825
+#: rfc2131.c:850
msgid "wrong address"
msgstr "alamat salah"
# OK
-#: rfc2131.c:842
+#: rfc2131.c:867
msgid "lease not found"
msgstr "lease tak ditemukan"
# OK
-#: rfc2131.c:874
+#: rfc2131.c:899
msgid "address not available"
msgstr "alamat tak tersedia"
# OK
-#: rfc2131.c:885
+#: rfc2131.c:910
msgid "static lease available"
msgstr "lease statik tak tersedia"
# OK
-#: rfc2131.c:889
+#: rfc2131.c:914
msgid "address reserved"
msgstr "alamat telah dipesan"
-#: rfc2131.c:1307
+#: rfc2131.c:922
+#, c-format
+msgid "abandoning lease to %s of %s"
+msgstr ""
+
+#: rfc2131.c:1356
#, c-format
msgid "tags: %s"
msgstr ""
-#: rfc2131.c:1394
+#: rfc2131.c:1443
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr ""
+#: rfc2131.c:1599
+#, c-format
+msgid "Ignoring domain %s for DHCP host name %s"
+msgstr ""
+
# OK
-#: rfc2131.c:1564
+#: rfc2131.c:1617
#, fuzzy, c-format
msgid "requested options: %s"
msgstr "pilihan-pilihan saat kompilasi: %s"
# OK
-#: rfc2131.c:1613
+#: rfc2131.c:1666
#, fuzzy, c-format
msgid "next server: %s"
msgstr "DBus error: %s"
-#: rfc2131.c:1637
+#: rfc2131.c:1690
#, c-format
msgid "bootfile name: %s"
msgstr ""
-#: rfc2131.c:1640
+#: rfc2131.c:1693
#, c-format
msgid "server name: %s"
msgstr ""
@@ -1603,6 +1594,28 @@ msgid "FAILED to start up"
msgstr "GAGAL untuk memulai"
# OK
+#, fuzzy
+#~ msgid "failed to load %s: %s"
+#~ msgstr "gagal memuat %S: %m"
+
+# OK
+#~ msgid "bad name in %s"
+#~ msgstr "kesalahan nama di %s"
+
+# OK
+#~ msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
+#~ msgstr "Mengabaikan lease DHCP untuk %s sebab terdapat bagian domain yang tidak sah"
+
+# OK
+#~ msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
+#~ msgstr "Integrasi dengan dhcpd ISC tidak tersedia: atur HAVE_ISC_READER dalam src/config.h"
+
+# OK
+#, fuzzy
+#~ msgid "illegal domain %s in dhcp-config directive."
+#~ msgstr "alamat IP kembar %s dalam direktif dhcp-config"
+
+# OK
#~ msgid "running as root"
#~ msgstr "berjalan menggunakan root"
diff --git a/po/it.po b/po/it.po
index 6a2a13c..13d060e 100644
--- a/po/it.po
+++ b/po/it.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.32\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-07-20 20:03+0100\n"
+"POT-Creation-Date: 2008-11-13 20:23+0000\n"
"PO-Revision-Date: 2006-05-22 11:09+0100\n"
"Last-Translator: Simon Kelley <simon@thekelleys.org.uk>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
@@ -15,51 +15,51 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: cache.c:695
+#: cache.c:761
#, c-format
msgid "failed to load names from %s: %s"
msgstr ""
-#: cache.c:729 dhcp.c:757
+#: cache.c:795 dhcp.c:768
#, c-format
msgid "bad address at %s line %d"
msgstr ""
-#: cache.c:776 dhcp.c:771
+#: cache.c:850 dhcp.c:782
#, c-format
msgid "bad name at %s line %d"
msgstr ""
-#: cache.c:783 dhcp.c:825
+#: cache.c:857 dhcp.c:848
#, c-format
msgid "read %s - %d addresses"
msgstr ""
-#: cache.c:821
+#: cache.c:895
msgid "cleared cache"
msgstr ""
-#: cache.c:870
+#: cache.c:942
#, 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:922
+#: cache.c:1018
#, c-format
msgid "time %lu"
msgstr ""
-#: cache.c:923
+#: cache.c:1019
#, c-format
msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
msgstr ""
-#: cache.c:925
+#: cache.c:1021
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr ""
-#: cache.c:948
+#: cache.c:1044
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr ""
@@ -88,650 +88,666 @@ msgstr ""
msgid "infinite"
msgstr ""
-#: option.c:219
+#: option.c:223
msgid "Specify local address(es) to listen on."
msgstr ""
-#: option.c:220
+#: option.c:224
msgid "Return ipaddr for all hosts in specified domains."
msgstr ""
-#: option.c:221
+#: option.c:225
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
-#: option.c:222
+#: option.c:226
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr ""
-#: option.c:223
+#: option.c:227
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr ""
-#: option.c:224
+#: option.c:228
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr ""
-#: option.c:225
+#: option.c:229
msgid "Do NOT fork into the background: run in debug mode."
msgstr ""
-#: option.c:226
+#: option.c:230
msgid "Do NOT forward queries with no domain part."
msgstr ""
-#: option.c:227
+#: option.c:231
msgid "Return self-pointing MX records for local hosts."
msgstr ""
-#: option.c:228
+#: option.c:232
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr ""
-#: option.c:229
+#: option.c:233
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr ""
-#: option.c:230
+#: option.c:234
msgid "Enable DHCP in the range given with lease duration."
msgstr ""
-#: option.c:231
+#: option.c:235
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr ""
-#: option.c:232
+#: option.c:236
msgid "Set address or hostname for a specified machine."
msgstr ""
-#: option.c:233
+#: option.c:237
msgid "Read DHCP host specs from file"
msgstr ""
-#: option.c:234
+#: option.c:238
msgid "Read DHCP option specs from file"
msgstr ""
-#: option.c:235
+#: option.c:239
#, c-format
msgid "Do NOT load %s file."
msgstr ""
-#: option.c:236
+#: option.c:240
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr ""
-#: option.c:237
+#: option.c:241
msgid "Specify interface(s) to listen on."
msgstr ""
-#: option.c:238
+#: option.c:242
msgid "Specify interface(s) NOT to listen on."
msgstr ""
-#: option.c:239
+#: option.c:243
msgid "Map DHCP user class to tag."
msgstr ""
-#: option.c:240
+#: option.c:244
msgid "Map RFC3046 circuit-id to tag."
msgstr ""
-#: option.c:241
+#: option.c:245
msgid "Map RFC3046 remote-id to tag."
msgstr ""
-#: option.c:242
+#: option.c:246
msgid "Map RFC3993 subscriber-id to tag."
msgstr ""
-#: option.c:243
+#: option.c:247
msgid "Don't do DHCP for hosts with tag set."
msgstr ""
-#: option.c:244
+#: option.c:248
msgid "Force broadcast replies for hosts with tag set."
msgstr ""
-#: option.c:245
+#: option.c:249
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr ""
-#: option.c:246
+#: option.c:250
msgid "Assume we are the only DHCP server on the local network."
msgstr ""
-#: option.c:247
+#: option.c:251
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:248
+#: option.c:252
msgid "Return MX records for local hosts."
msgstr ""
-#: option.c:249
+#: option.c:253
msgid "Specify an MX record."
msgstr ""
-#: option.c:250
+#: option.c:254
msgid "Specify BOOTP options to DHCP server."
msgstr ""
-#: option.c:251
+#: option.c:255
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
-#: option.c:252
+#: option.c:256
msgid "Do NOT cache failed search results."
msgstr ""
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr ""
-#: option.c:254
+#: option.c:258
msgid "Specify options to be sent to DHCP clients."
msgstr ""
-#: option.c:255
+#: option.c:259
msgid "DHCP option sent even if the client does not request it."
msgstr ""
-#: option.c:256
+#: option.c:260
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
-#: option.c:257
+#: option.c:261
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
-#: option.c:258
+#: option.c:262
msgid "Log DNS queries."
msgstr ""
-#: option.c:259
+#: option.c:263
msgid "Force the originating port for upstream DNS queries."
msgstr ""
-#: option.c:260
+#: option.c:264
msgid "Do NOT read resolv.conf."
msgstr ""
-#: option.c:261
+#: option.c:265
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr ""
-#: option.c:262
+#: option.c:266
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
-#: option.c:263
+#: option.c:267
msgid "Never forward queries to specified domains."
msgstr ""
-#: option.c:264
+#: option.c:268
msgid "Specify the domain to be assigned in DHCP leases."
msgstr ""
-#: option.c:265
+#: option.c:269
msgid "Specify default target in an MX record."
msgstr ""
-#: option.c:266
+#: option.c:270
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
-#: option.c:267
+#: option.c:271
msgid "Specify time-to-live in seconds for negative caching."
msgstr ""
-#: option.c:268
+#: option.c:272
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr ""
-#: option.c:269
+#: option.c:273
msgid "Map DHCP vendor class to tag."
msgstr ""
-#: option.c:270
+#: option.c:274
msgid "Display dnsmasq version and copyright information."
msgstr ""
-#: option.c:271
+#: option.c:275
msgid "Translate IPv4 addresses from upstream servers."
msgstr ""
-#: option.c:272
+#: option.c:276
msgid "Specify a SRV record."
msgstr ""
-#: option.c:273
+#: option.c:277
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr ""
-#: option.c:274
+#: option.c:278
#, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr ""
-#: option.c:275
+#: option.c:279
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:276
+#: option.c:280
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
-#: option.c:277
+#: option.c:281
msgid "Specify TXT DNS record."
msgstr ""
-#: option.c:278
+#: option.c:282
msgid "Specify PTR DNS record."
msgstr ""
-#: option.c:279
+#: option.c:283
msgid "Give DNS name to IPv4 address of interface."
msgstr ""
-#: option.c:280
+#: option.c:284
msgid "Bind only to interfaces in use."
msgstr ""
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Read DHCP static host information from %s."
msgstr ""
-#: option.c:282
+#: option.c:286
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr ""
-#: option.c:283
+#: option.c:287
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr ""
-#: option.c:284
+#: option.c:288
msgid "Enable dynamic address allocation for bootp."
msgstr ""
-#: option.c:285
+#: option.c:289
msgid "Map MAC address (with wildcards) to option set."
msgstr ""
-#: option.c:287
+#: option.c:291
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr ""
-#: option.c:289
+#: option.c:293
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:290
+#: option.c:294
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
-#: option.c:291
+#: option.c:295
msgid "Read configuration from all the files in this directory."
msgstr ""
-#: option.c:292
+#: option.c:296
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr ""
-#: option.c:293
+#: option.c:297
msgid "Do not use leasefile."
msgstr ""
-#: option.c:294
+#: option.c:298
#, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr ""
-#: option.c:295
+#: option.c:299
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr ""
-#: option.c:296
+#: option.c:300
msgid "Ignore hostnames provided by DHCP clients."
msgstr ""
-#: option.c:297
+#: option.c:301
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr ""
-#: option.c:298
+#: option.c:302
msgid "Enable integrated read-only TFTP server."
msgstr ""
-#: option.c:299
+#: option.c:303
msgid "Export files by TFTP only from the specified subtree."
msgstr ""
-#: option.c:300
+#: option.c:304
msgid "Add client IP address to tftp-root."
msgstr ""
-#: option.c:301
+#: option.c:305
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr ""
-#: option.c:302
+#: option.c:306
#, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr ""
-#: option.c:303
+#: option.c:307
msgid "Disable the TFTP blocksize extension."
msgstr ""
-#: option.c:304
+#: option.c:308
msgid "Ephemeral port range for use by TFTP transfers."
msgstr ""
-#: option.c:305
+#: option.c:309
msgid "Extra logging for DHCP."
msgstr ""
-#: option.c:306
+#: option.c:310
msgid "Enable async. logging; optionally set queue length."
msgstr ""
-#: option.c:307
+#: option.c:311
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr ""
-#: option.c:308
+#: option.c:312
msgid "Always perform DNS queries to all servers."
msgstr ""
-#: option.c:309
+#: option.c:313
msgid "Set tag if client includes option in request."
msgstr ""
-#: option.c:310
+#: option.c:314
msgid "Use alternative ports for DHCP."
msgstr ""
-#: option.c:311
+#: option.c:315
msgid "Run lease-change script as this user."
msgstr ""
-#: option.c:312
+#: option.c:316
msgid "Specify NAPTR DNS record."
msgstr ""
-#: option.c:313
+#: option.c:317
msgid "Specify lowest port available for DNS query transmission."
msgstr ""
-#: option.c:574
+#: option.c:318
+msgid "Use only fully qualified domain names for DHCP clients."
+msgstr ""
+
+#: option.c:319
+msgid "Specify alias name for LOCAL DNS name."
+msgstr ""
+
+#: option.c:580
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
-#: option.c:576
+#: option.c:582
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
-#: option.c:578
+#: option.c:584
#, c-format
msgid "Valid options are:\n"
msgstr ""
-#: option.c:618
+#: option.c:624
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:691
+#: option.c:697
msgid "bad dhcp-option"
msgstr ""
-#: option.c:747
+#: option.c:753
msgid "bad IP address"
msgstr ""
-#: option.c:845
+#: option.c:851
msgid "bad domain in dhcp-option"
msgstr ""
-#: option.c:903
+#: option.c:909
msgid "dhcp-option too long"
msgstr ""
-#: option.c:932
+#: option.c:938
msgid "illegal repeated flag"
msgstr ""
-#: option.c:940
+#: option.c:946
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:974
+#: option.c:983
#, c-format
msgid "cannot access directory %s: %s"
msgstr ""
-#: option.c:993 tftp.c:348
+#: option.c:1002 tftp.c:348
#, c-format
msgid "cannot access %s: %s"
msgstr ""
-#: option.c:1030
+#: option.c:1040
msgid "only one dhcp-hostsfile allowed"
msgstr ""
-#: option.c:1037
+#: option.c:1047
msgid "only one dhcp-optsfile allowed"
msgstr ""
-#: option.c:1081
+#: option.c:1091
msgid "bad MX preference"
msgstr ""
-#: option.c:1085
+#: option.c:1095
msgid "bad MX name"
msgstr ""
-#: option.c:1099
+#: option.c:1109
msgid "bad MX target"
msgstr ""
-#: option.c:1110
+#: option.c:1120
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1303 option.c:1311
+#: option.c:1352 option.c:1360
msgid "bad port"
msgstr ""
-#: option.c:1331 option.c:1356
+#: option.c:1380 option.c:1405
msgid "interface binding not supported"
msgstr ""
-#: option.c:1474
+#: option.c:1523
msgid "bad port range"
msgstr ""
-#: option.c:1491
+#: option.c:1540
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1532
+#: option.c:1581
msgid "bad dhcp-range"
msgstr ""
-#: option.c:1558
+#: option.c:1607
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1598
+#: option.c:1647
msgid "inconsistent DHCP range"
msgstr ""
-#: option.c:1766
+#: option.c:1819
msgid "bad DHCP host name"
msgstr ""
-#: option.c:1938 option.c:2181
+#: option.c:1998 option.c:2270
msgid "invalid port number"
msgstr ""
-#: option.c:2024
+#: option.c:2093
msgid "bad interface name"
msgstr ""
-#: option.c:2044
+#: option.c:2116
+msgid "duplicate CNAME"
+msgstr ""
+
+#: option.c:2133
msgid "bad PTR record"
msgstr ""
-#: option.c:2074
+#: option.c:2163
msgid "bad NAPTR record"
msgstr ""
-#: option.c:2100
+#: option.c:2189
msgid "TXT record string too long"
msgstr ""
-#: option.c:2104
+#: option.c:2193
msgid "bad TXT record"
msgstr ""
-#: option.c:2164
+#: option.c:2253
msgid "bad SRV record"
msgstr ""
-#: option.c:2173
+#: option.c:2262
msgid "bad SRV target"
msgstr ""
-#: option.c:2188
+#: option.c:2277
msgid "invalid priority"
msgstr ""
-#: option.c:2195
+#: option.c:2284
msgid "invalid weight"
msgstr ""
-#: option.c:2231
+#: option.c:2320
#, c-format
msgid "files nested too deep in %s"
msgstr ""
-#: option.c:2239 tftp.c:503
+#: option.c:2328 tftp.c:503
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: option.c:2300
+#: option.c:2389
msgid "missing \""
msgstr ""
-#: option.c:2347
+#: option.c:2436
msgid "bad option"
msgstr ""
-#: option.c:2349
+#: option.c:2438
msgid "extraneous parameter"
msgstr ""
-#: option.c:2351
+#: option.c:2440
msgid "missing parameter"
msgstr ""
-#: option.c:2359
+#: option.c:2448
msgid "error"
msgstr ""
-#: option.c:2365
+#: option.c:2454
#, c-format
msgid "%s at line %d of %%s"
msgstr ""
-#: option.c:2405 option.c:2435
+#: option.c:2502 option.c:2532
#, c-format
msgid "read %s"
msgstr ""
-#: option.c:2502
+#: option.c:2599
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
-#: option.c:2503
+#: option.c:2600
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
-#: option.c:2504
+#: option.c:2601
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
-#: option.c:2505
+#: option.c:2602
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:2506
+#: option.c:2603
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr ""
-#: option.c:2517
+#: option.c:2614
msgid "try --help"
msgstr ""
-#: option.c:2519
+#: option.c:2616
msgid "try -w"
msgstr ""
-#: option.c:2522
+#: option.c:2619
#, c-format
msgid "bad command line options: %s"
msgstr ""
-#: option.c:2563
+#: option.c:2660
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
-#: option.c:2591
+#: option.c:2688
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
-#: option.c:2601
+#: option.c:2698
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
-#: option.c:2604 network.c:724
+#: option.c:2701 network.c:721
#, c-format
msgid "failed to read %s: %s"
msgstr ""
-#: option.c:2622
+#: option.c:2719
#, c-format
msgid "no search directive found in %s"
msgstr ""
+#: option.c:2740
+msgid "there must be a default domain when --dhcp-fqdn is set"
+msgstr ""
+
#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
@@ -741,37 +757,12 @@ msgstr ""
msgid "possible DNS-rebind attack detected"
msgstr ""
-#: isc.c:77 dnsmasq.c:889
-#, c-format
-msgid "failed to access %s: %s"
-msgstr ""
-
-#: isc.c:93
-#, c-format
-msgid "failed to load %s: %s"
-msgstr ""
-
-#: isc.c:97 dnsmasq.c:911
-#, c-format
-msgid "reading %s"
-msgstr ""
-
-#: isc.c:119
-#, c-format
-msgid "bad name in %s"
-msgstr ""
-
-#: isc.c:181
-#, c-format
-msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
-msgstr ""
-
#: network.c:45
#, c-format
msgid "unknown interface %s in bridge-interface"
msgstr ""
-#: network.c:389 dnsmasq.c:194
+#: network.c:389 dnsmasq.c:186
#, c-format
msgid "failed to create listening socket: %s"
msgstr ""
@@ -796,248 +787,254 @@ msgstr ""
msgid "failed to create TFTP socket: %s"
msgstr ""
-#: network.c:631
+#: network.c:628
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr ""
-#: network.c:664
+#: network.c:661
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
-#: network.c:675
+#: network.c:672
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr ""
-#: network.c:690
+#: network.c:687
msgid "unqualified"
msgstr ""
-#: network.c:690
+#: network.c:687
msgid "names"
msgstr ""
-#: network.c:692
+#: network.c:689
msgid "default"
msgstr ""
-#: network.c:694
+#: network.c:691
msgid "domain"
msgstr ""
-#: network.c:697
+#: network.c:694
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:699
+#: network.c:696
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:702
+#: network.c:699
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr ""
-#: network.c:704
+#: network.c:701
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
-#: dnsmasq.c:122
-msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
-msgstr ""
-
-#: dnsmasq.c:144
+#: dnsmasq.c:136
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr ""
-#: dnsmasq.c:149
+#: dnsmasq.c:141
msgid "asychronous logging is not available under Solaris"
msgstr ""
-#: dnsmasq.c:165
+#: dnsmasq.c:157
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr ""
-#: dnsmasq.c:175
+#: dnsmasq.c:167
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr ""
-#: dnsmasq.c:183
+#: dnsmasq.c:175
#, c-format
msgid "unknown interface %s"
msgstr ""
-#: dnsmasq.c:189
+#: dnsmasq.c:181
#, c-format
msgid "no interface with address %s"
msgstr ""
-#: dnsmasq.c:206 dnsmasq.c:663
+#: dnsmasq.c:198 dnsmasq.c:652
#, c-format
msgid "DBus error: %s"
msgstr ""
-#: dnsmasq.c:209
+#: dnsmasq.c:201
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr ""
-#: dnsmasq.c:233
+#: dnsmasq.c:225
#, c-format
msgid "unknown user or group: %s"
msgstr ""
-#: dnsmasq.c:290
+#: dnsmasq.c:282
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr ""
-#: dnsmasq.c:302
+#: dnsmasq.c:294
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
-#: dnsmasq.c:451
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s DNS disabled"
msgstr ""
-#: dnsmasq.c:453
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cachesize %d"
msgstr ""
-#: dnsmasq.c:455
+#: dnsmasq.c:447
#, c-format
msgid "started, version %s cache disabled"
msgstr ""
-#: dnsmasq.c:457
+#: dnsmasq.c:449
#, c-format
msgid "compile time options: %s"
msgstr ""
-#: dnsmasq.c:463
+#: dnsmasq.c:455
msgid "DBus support enabled: connected to system bus"
msgstr ""
-#: dnsmasq.c:465
+#: dnsmasq.c:457
msgid "DBus support enabled: bus connection pending"
msgstr ""
-#: dnsmasq.c:470
+#: dnsmasq.c:462
#, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr ""
-#: dnsmasq.c:474
+#: dnsmasq.c:466
msgid "setting --bind-interfaces option because of OS limitations"
msgstr ""
-#: dnsmasq.c:479
+#: dnsmasq.c:471
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr ""
-#: dnsmasq.c:484
+#: dnsmasq.c:476
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr ""
-#: dnsmasq.c:487
+#: dnsmasq.c:479
msgid "warning: no upstream servers configured"
msgstr ""
-#: dnsmasq.c:491
+#: dnsmasq.c:483
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr ""
-#: dnsmasq.c:503
+#: dnsmasq.c:495
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr ""
-#: dnsmasq.c:504
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr ""
-#: dnsmasq.c:518
+#: dnsmasq.c:510
msgid "root is "
msgstr ""
-#: dnsmasq.c:518
+#: dnsmasq.c:510
msgid "enabled"
msgstr ""
-#: dnsmasq.c:520
+#: dnsmasq.c:512
msgid "secure mode"
msgstr ""
-#: dnsmasq.c:546
+#: dnsmasq.c:538
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:665
+#: dnsmasq.c:654
msgid "connected to system DBus"
msgstr ""
-#: dnsmasq.c:753
+#: dnsmasq.c:742
#, c-format
msgid "failed to create helper: %s"
msgstr ""
-#: dnsmasq.c:756
+#: dnsmasq.c:745
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
-#: dnsmasq.c:760
+#: dnsmasq.c:749
#, c-format
msgid "failed to change user-id to %s: %s"
msgstr ""
-#: dnsmasq.c:765
+#: dnsmasq.c:754
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr ""
-#: dnsmasq.c:768
+#: dnsmasq.c:757
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr ""
-#: dnsmasq.c:771
+#: dnsmasq.c:760
#, c-format
msgid "cannot open %s: %s"
msgstr ""
-#: dnsmasq.c:822
+#: dnsmasq.c:811
#, c-format
msgid "child process killed by signal %d"
msgstr ""
-#: dnsmasq.c:826
+#: dnsmasq.c:815
#, c-format
msgid "child process exited with status %d"
msgstr ""
-#: dnsmasq.c:830
+#: dnsmasq.c:819
#, c-format
msgid "failed to execute %s: %s"
msgstr ""
-#: dnsmasq.c:871
+#: dnsmasq.c:860
msgid "exiting on receipt of SIGTERM"
msgstr ""
-#: dnsmasq.c:922
+#: dnsmasq.c:878
+#, c-format
+msgid "failed to access %s: %s"
+msgstr ""
+
+#: dnsmasq.c:900
+#, c-format
+msgid "reading %s"
+msgstr ""
+
+#: dnsmasq.c:911
#, c-format
msgid "no servers found in %s, will retry"
msgstr ""
@@ -1077,42 +1074,32 @@ msgstr ""
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
-#: dhcp.c:709
+#: dhcp.c:719
#, c-format
msgid "failed to read %s:%s"
msgstr ""
-#: dhcp.c:744
+#: dhcp.c:755
#, c-format
msgid "bad line at %s line %d"
msgstr ""
-#: dhcp.c:847
+#: dhcp.c:870
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
-#: dhcp.c:850
+#: dhcp.c:873
#, c-format
msgid "duplicate IP address %s in %s."
msgstr ""
-#: dhcp.c:858
-#, c-format
-msgid "illegal domain %s in dhcp-config directive."
-msgstr ""
-
-#: dhcp.c:860
-#, c-format
-msgid "illegal domain %s in %s."
-msgstr ""
-
-#: dhcp.c:899
+#: dhcp.c:916
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:904
+#: dhcp.c:921
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
@@ -1141,151 +1128,160 @@ msgstr ""
msgid "failed to write %s: %s (retry in %us)"
msgstr ""
-#: rfc2131.c:310
+#: rfc2131.c:315
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr ""
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "with subnet selector"
msgstr ""
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "via"
msgstr ""
-#: rfc2131.c:322
+#: rfc2131.c:327
#, c-format
msgid "DHCP packet: transaction-id is %u"
msgstr ""
-#: rfc2131.c:327
+#: rfc2131.c:332
#, c-format
msgid "Available DHCP subnet: %s/%s"
msgstr ""
-#: rfc2131.c:329
+#: rfc2131.c:334
#, c-format
msgid "Available DHCP range: %s -- %s"
msgstr ""
-#: rfc2131.c:357 rfc2131.c:388
+#: rfc2131.c:362 rfc2131.c:396
msgid "disabled"
msgstr ""
-#: rfc2131.c:400 rfc2131.c:892
+#: rfc2131.c:411 rfc2131.c:928
msgid "address in use"
msgstr ""
-#: rfc2131.c:403
-msgid "no address configured"
-msgstr ""
-
-#: rfc2131.c:416 rfc2131.c:747
+#: rfc2131.c:425 rfc2131.c:765
msgid "no address available"
msgstr ""
-#: rfc2131.c:425 rfc2131.c:902
-msgid "no leases left"
+#: rfc2131.c:432 rfc2131.c:891
+msgid "wrong network"
msgstr ""
-#: rfc2131.c:428 rfc2131.c:866
-msgid "wrong network"
+#: rfc2131.c:445
+msgid "no address configured"
msgstr ""
-#: rfc2131.c:530
-#, c-format
-msgid "Ignoring domain %s for DHCP host name %s"
+#: rfc2131.c:451 rfc2131.c:941
+msgid "no leases left"
msgstr ""
-#: rfc2131.c:624
+#: rfc2131.c:640
#, c-format
msgid "Vendor class: %s"
msgstr ""
-#: rfc2131.c:626
+#: rfc2131.c:642
#, c-format
msgid "User class: %s"
msgstr ""
-#: rfc2131.c:667
+#: rfc2131.c:683
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr ""
-#: rfc2131.c:688
+#: rfc2131.c:704
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:697 rfc2131.c:1018
+#: rfc2131.c:713 rfc2131.c:1058
msgid "ignored"
msgstr ""
-#: rfc2131.c:718
+#: rfc2131.c:736
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:728
+#: rfc2131.c:746
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:731
+#: rfc2131.c:749
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:745 rfc2131.c:895
+#: rfc2131.c:763 rfc2131.c:934
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:825
+#: rfc2131.c:831
+msgid "wrong server-ID"
+msgstr ""
+
+#: rfc2131.c:850
msgid "wrong address"
msgstr ""
-#: rfc2131.c:842
+#: rfc2131.c:867
msgid "lease not found"
msgstr ""
-#: rfc2131.c:874
+#: rfc2131.c:899
msgid "address not available"
msgstr ""
-#: rfc2131.c:885
+#: rfc2131.c:910
msgid "static lease available"
msgstr ""
-#: rfc2131.c:889
+#: rfc2131.c:914
msgid "address reserved"
msgstr ""
-#: rfc2131.c:1307
+#: rfc2131.c:922
+#, c-format
+msgid "abandoning lease to %s of %s"
+msgstr ""
+
+#: rfc2131.c:1356
#, c-format
msgid "tags: %s"
msgstr ""
-#: rfc2131.c:1394
+#: rfc2131.c:1443
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:1564
+#: rfc2131.c:1599
+#, c-format
+msgid "Ignoring domain %s for DHCP host name %s"
+msgstr ""
+
+#: rfc2131.c:1617
#, c-format
msgid "requested options: %s"
msgstr ""
-#: rfc2131.c:1613
+#: rfc2131.c:1666
#, c-format
msgid "next server: %s"
msgstr ""
-#: rfc2131.c:1637
+#: rfc2131.c:1690
#, c-format
msgid "bootfile name: %s"
msgstr ""
-#: rfc2131.c:1640
+#: rfc2131.c:1693
#, c-format
msgid "server name: %s"
msgstr ""
diff --git a/po/no.po b/po/no.po
index bd418bf..3bb5863 100644
--- a/po/no.po
+++ b/po/no.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.25\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-07-20 20:03+0100\n"
+"POT-Creation-Date: 2008-11-13 20:23+0000\n"
"PO-Revision-Date: 2006-01-11 17:39+0000\n"
"Last-Translator: Jan Erik Askildt <jeaskildt@gmail.com>\n"
"Language-Team: Norwegian <i18n-nb@lister.ping.uio.no>\n"
@@ -17,51 +17,51 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: cache.c:695
+#: cache.c:761
#, fuzzy, c-format
msgid "failed to load names from %s: %s"
msgstr "feilet å laste navn fra %s: %m"
-#: cache.c:729 dhcp.c:757
+#: cache.c:795 dhcp.c:768
#, c-format
msgid "bad address at %s line %d"
msgstr "dårlig adresse ved %s linje %d"
-#: cache.c:776 dhcp.c:771
+#: cache.c:850 dhcp.c:782
#, c-format
msgid "bad name at %s line %d"
msgstr "dårlig navn ved %s linje %d"
-#: cache.c:783 dhcp.c:825
+#: cache.c:857 dhcp.c:848
#, c-format
msgid "read %s - %d addresses"
msgstr "les %s - %d adresser"
-#: cache.c:821
+#: cache.c:895
msgid "cleared cache"
msgstr "mellomlager tømt"
-#: cache.c:870
+#: cache.c:942
#, 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:922
+#: cache.c:1018
#, c-format
msgid "time %lu"
msgstr ""
-#: cache.c:923
+#: cache.c:1019
#, 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:925
+#: cache.c:1021
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr ""
-#: cache.c:948
+#: cache.c:1044
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr ""
@@ -90,408 +90,416 @@ msgstr "feilet å laste %s: %m"
msgid "infinite"
msgstr "uendelig"
-#: option.c:219
+#: option.c:223
msgid "Specify local address(es) to listen on."
msgstr "Spesifiser lokal(e) adresse(r) å lytte på."
-#: option.c:220
+#: option.c:224
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Returner ipaddr for alle verter i det spesifiserte domenet."
-#: option.c:221
+#: option.c:225
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Forfalsk revers oppslag for RFC1918 private adresse områder."
-#: option.c:222
+#: option.c:226
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Behandle ipaddr som NXDOMAIN (omgår Verisign wildcard)."
-#: option.c:223
+#: option.c:227
#, 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:224
+#: option.c:228
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Spesifiser konfigurasjonsfil (standard er %s)."
-#: option.c:225
+#: option.c:229
msgid "Do NOT fork into the background: run in debug mode."
msgstr "IKKE legg (fork) som bakgrunnsprosess: kjør i debug modus."
-#: option.c:226
+#: option.c:230
msgid "Do NOT forward queries with no domain part."
msgstr "IKKE videresend oppslag som mangler domene del."
-#: option.c:227
+#: option.c:231
msgid "Return self-pointing MX records for local hosts."
msgstr "Returner selv-pekende MX post for lokale verter."
-#: option.c:228
+#: option.c:232
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Utvid enkle navn i /etc/hosts med domene-suffiks."
-#: option.c:229
+#: option.c:233
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Ikke videresend falske/uekte DNS forespørsler fra Windows verter."
-#: option.c:230
+#: option.c:234
msgid "Enable DHCP in the range given with lease duration."
msgstr "Aktiver DHCP i det gitte området med leie varighet"
-#: option.c:231
+#: option.c:235
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Skift til denne gruppen etter oppstart (standard er %s)."
-#: option.c:232
+#: option.c:236
msgid "Set address or hostname for a specified machine."
msgstr "Sett adresse eller vertsnavn for en spesifikk maskin."
-#: option.c:233
+#: option.c:237
msgid "Read DHCP host specs from file"
msgstr ""
-#: option.c:234
+#: option.c:238
msgid "Read DHCP option specs from file"
msgstr ""
-#: option.c:235
+#: option.c:239
#, c-format
msgid "Do NOT load %s file."
msgstr "IKKE last %s filen."
-#: option.c:236
+#: option.c:240
#, 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:237
+#: option.c:241
msgid "Specify interface(s) to listen on."
msgstr "Spesifiser nettverkskort det skal lyttes på."
-#: option.c:238
+#: option.c:242
msgid "Specify interface(s) NOT to listen on."
msgstr "Spesifiser nettverkskort det IKKE skal lyttes på."
-#: option.c:239
+#: option.c:243
#, fuzzy
msgid "Map DHCP user class to tag."
msgstr "Map DHCP bruker klasse til opsjon sett."
-#: option.c:240
+#: option.c:244
msgid "Map RFC3046 circuit-id to tag."
msgstr ""
-#: option.c:241
+#: option.c:245
msgid "Map RFC3046 remote-id to tag."
msgstr ""
-#: option.c:242
+#: option.c:246
msgid "Map RFC3993 subscriber-id to tag."
msgstr ""
-#: option.c:243
+#: option.c:247
#, fuzzy
msgid "Don't do DHCP for hosts with tag set."
msgstr "Ikke utfør DHCP for klienter i opsjon sett."
-#: option.c:244
+#: option.c:248
#, fuzzy
msgid "Force broadcast replies for hosts with tag set."
msgstr "Ikke utfør DHCP for klienter i opsjon sett."
-#: option.c:245
+#: option.c:249
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:246
+#: option.c:250
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:247
+#: option.c:251
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Spesifiser hvor DHCP leiene skal lagres (standard er %s)."
-#: option.c:248
+#: option.c:252
msgid "Return MX records for local hosts."
msgstr "Returner MX records for lokale verter."
-#: option.c:249
+#: option.c:253
msgid "Specify an MX record."
msgstr "Spesifiser en MX post."
-#: option.c:250
+#: option.c:254
msgid "Specify BOOTP options to DHCP server."
msgstr "Spesifiser BOOTP opsjoner til DHCP tjener."
-#: option.c:251
+#: option.c:255
#, 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:252
+#: option.c:256
msgid "Do NOT cache failed search results."
msgstr "IKKE mellomlagre søkeresultater som feiler."
-#: option.c:253
+#: option.c:257
#, 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:254
+#: option.c:258
#, fuzzy
msgid "Specify options to be sent to DHCP clients."
msgstr "Sett ekstra opsjoner som skal fordeles til DHCP klientene."
-#: option.c:255
+#: option.c:259
msgid "DHCP option sent even if the client does not request it."
msgstr ""
-#: option.c:256
+#: option.c:260
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Spesifiser lytteport for DNS oppslag (standard er 53)."
-#: option.c:257
+#: option.c:261
#, 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:258
+#: option.c:262
#, fuzzy
msgid "Log DNS queries."
msgstr "Logg oppslag."
-#: option.c:259
+#: option.c:263
#, fuzzy
msgid "Force the originating port for upstream DNS queries."
msgstr "Tving bruk av opprinnelig port for oppstrøms oppslag."
-#: option.c:260
+#: option.c:264
msgid "Do NOT read resolv.conf."
msgstr "IKKE les resolv.conf."
-#: option.c:261
+#: option.c:265
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Spesifiser stien til resolv.conf (standard er %s)."
-#: option.c:262
+#: option.c:266
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Spesifiser adressen(e) til oppstrøms tjenere med valgfrie domener."
-#: option.c:263
+#: option.c:267
msgid "Never forward queries to specified domains."
msgstr "Aldri videresend oppslag til spesifiserte domener."
-#: option.c:264
+#: option.c:268
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Spesifiser domenet som skal tildeles i DHCP leien."
-#: option.c:265
+#: option.c:269
msgid "Specify default target in an MX record."
msgstr "Spesifiser default mål i en MX post."
-#: option.c:266
+#: option.c:270
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:267
+#: option.c:271
#, 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:268
+#: option.c:272
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Skift til denne bruker etter oppstart (standard er %s)."
-#: option.c:269
+#: option.c:273
#, fuzzy
msgid "Map DHCP vendor class to tag."
msgstr "Map DHCP produsent klasse til opsjon sett."
-#: option.c:270
+#: option.c:274
msgid "Display dnsmasq version and copyright information."
msgstr "Vis dnsmasq versjon og copyright informasjon."
-#: option.c:271
+#: option.c:275
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Oversett IPv4 adresser fra oppstrøms tjenere."
-#: option.c:272
+#: option.c:276
msgid "Specify a SRV record."
msgstr "Spesifiser en SRV post."
-#: option.c:273
+#: option.c:277
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr ""
-#: option.c:274
+#: option.c:278
#, fuzzy, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr "Spesifiser stien til PID fil. (standard er %s)."
-#: option.c:275
+#: option.c:279
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
-#: option.c:276
+#: option.c:280
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:277
+#: option.c:281
msgid "Specify TXT DNS record."
msgstr "Spesifiser TXT DNS post."
-#: option.c:278
+#: option.c:282
#, fuzzy
msgid "Specify PTR DNS record."
msgstr "Spesifiser TXT DNS post."
-#: option.c:279
+#: option.c:283
msgid "Give DNS name to IPv4 address of interface."
msgstr ""
-#: option.c:280
+#: option.c:284
msgid "Bind only to interfaces in use."
msgstr "Bind kun til nettverkskort som er i bruk."
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Les DHCP statisk vert informasjon fra %s."
-#: option.c:282
+#: option.c:286
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Aktiver DBus interface for å sette oppstrøms tjenere, osv."
-#: option.c:283
+#: option.c:287
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Ikke lever DHCP på dette nettverkskortet, kun lever DNS."
-#: option.c:284
+#: option.c:288
msgid "Enable dynamic address allocation for bootp."
msgstr "Aktiver dynamisk adresse allokering for bootp."
-#: option.c:285
+#: option.c:289
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Map DHCP produsent klasse til opsjon sett."
-#: option.c:287
+#: option.c:291
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr ""
-#: option.c:289
+#: option.c:293
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:290
+#: option.c:294
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
-#: option.c:291
+#: option.c:295
msgid "Read configuration from all the files in this directory."
msgstr ""
-#: option.c:292
+#: option.c:296
#, fuzzy
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr "Skift til denne bruker etter oppstart (standard er %s)."
-#: option.c:293
+#: option.c:297
msgid "Do not use leasefile."
msgstr ""
-#: option.c:294
+#: option.c:298
#, fuzzy, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
-#: option.c:295
+#: option.c:299
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr ""
-#: option.c:296
+#: option.c:300
msgid "Ignore hostnames provided by DHCP clients."
msgstr ""
-#: option.c:297
+#: option.c:301
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr ""
-#: option.c:298
+#: option.c:302
msgid "Enable integrated read-only TFTP server."
msgstr ""
-#: option.c:299
+#: option.c:303
msgid "Export files by TFTP only from the specified subtree."
msgstr ""
-#: option.c:300
+#: option.c:304
msgid "Add client IP address to tftp-root."
msgstr ""
-#: option.c:301
+#: option.c:305
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr ""
-#: option.c:302
+#: option.c:306
#, fuzzy, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
-#: option.c:303
+#: option.c:307
msgid "Disable the TFTP blocksize extension."
msgstr ""
-#: option.c:304
+#: option.c:308
msgid "Ephemeral port range for use by TFTP transfers."
msgstr ""
-#: option.c:305
+#: option.c:309
msgid "Extra logging for DHCP."
msgstr ""
-#: option.c:306
+#: option.c:310
msgid "Enable async. logging; optionally set queue length."
msgstr ""
-#: option.c:307
+#: option.c:311
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr ""
-#: option.c:308
+#: option.c:312
msgid "Always perform DNS queries to all servers."
msgstr ""
-#: option.c:309
+#: option.c:313
msgid "Set tag if client includes option in request."
msgstr ""
-#: option.c:310
+#: option.c:314
msgid "Use alternative ports for DHCP."
msgstr ""
-#: option.c:311
+#: option.c:315
msgid "Run lease-change script as this user."
msgstr ""
-#: option.c:312
+#: option.c:316
#, fuzzy
msgid "Specify NAPTR DNS record."
msgstr "Spesifiser TXT DNS post."
-#: option.c:313
+#: option.c:317
msgid "Specify lowest port available for DNS query transmission."
msgstr ""
-#: option.c:574
+#: option.c:318
+msgid "Use only fully qualified domain names for DHCP clients."
+msgstr ""
+
+#: option.c:319
+msgid "Specify alias name for LOCAL DNS name."
+msgstr ""
+
+#: option.c:580
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -500,203 +508,207 @@ msgstr ""
"Bruk: dnsmasq [opsjoner]\n"
"\n"
-#: option.c:576
+#: option.c:582
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Bruk korte opsjoner kun på kommandolinjen.\n"
-#: option.c:578
+#: option.c:584
#, fuzzy, c-format
msgid "Valid options are:\n"
msgstr "Gyldige opsjoner er :\n"
-#: option.c:618
+#: option.c:624
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:691
+#: option.c:697
msgid "bad dhcp-option"
msgstr "dårlig dhcp-opsjon"
-#: option.c:747
+#: option.c:753
#, fuzzy
msgid "bad IP address"
msgstr "les %s - %d adresser"
-#: option.c:845
+#: option.c:851
msgid "bad domain in dhcp-option"
msgstr "dårlig domene i dhcp-opsjon"
-#: option.c:903
+#: option.c:909
msgid "dhcp-option too long"
msgstr "dhcp-opsjon for lang"
-#: option.c:932
+#: option.c:938
msgid "illegal repeated flag"
msgstr ""
-#: option.c:940
+#: option.c:946
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:974
+#: option.c:983
#, fuzzy, c-format
msgid "cannot access directory %s: %s"
msgstr "kan ikke lese %s: %s"
-#: option.c:993 tftp.c:348
+#: option.c:1002 tftp.c:348
#, fuzzy, c-format
msgid "cannot access %s: %s"
msgstr "kan ikke lese %s: %s"
-#: option.c:1030
+#: option.c:1040
msgid "only one dhcp-hostsfile allowed"
msgstr ""
-#: option.c:1037
+#: option.c:1047
msgid "only one dhcp-optsfile allowed"
msgstr ""
-#: option.c:1081
+#: option.c:1091
msgid "bad MX preference"
msgstr "dårlig MX preferanse"
-#: option.c:1085
+#: option.c:1095
msgid "bad MX name"
msgstr "dårlig MX navn"
-#: option.c:1099
+#: option.c:1109
msgid "bad MX target"
msgstr "dårlig MX mål"
-#: option.c:1110
+#: option.c:1120
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1303 option.c:1311
+#: option.c:1352 option.c:1360
msgid "bad port"
msgstr "dårlig port"
-#: option.c:1331 option.c:1356
+#: option.c:1380 option.c:1405
msgid "interface binding not supported"
msgstr ""
-#: option.c:1474
+#: option.c:1523
#, fuzzy
msgid "bad port range"
msgstr "dårlig port"
-#: option.c:1491
+#: option.c:1540
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1532
+#: option.c:1581
msgid "bad dhcp-range"
msgstr "dårlig dhcp-område"
-#: option.c:1558
+#: option.c:1607
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1598
+#: option.c:1647
msgid "inconsistent DHCP range"
msgstr "ikke konsistent DHCP område"
-#: option.c:1766
+#: option.c:1819
#, fuzzy
msgid "bad DHCP host name"
msgstr "dårlig MX navn"
-#: option.c:1938 option.c:2181
+#: option.c:1998 option.c:2270
msgid "invalid port number"
msgstr "ugyldig portnummer"
-#: option.c:2024
+#: option.c:2093
#, fuzzy
msgid "bad interface name"
msgstr "dårlig MX navn"
-#: option.c:2044
+#: option.c:2116
+msgid "duplicate CNAME"
+msgstr ""
+
+#: option.c:2133
#, fuzzy
msgid "bad PTR record"
msgstr "dårlig SRV post"
-#: option.c:2074
+#: option.c:2163
#, fuzzy
msgid "bad NAPTR record"
msgstr "dårlig SRV post"
-#: option.c:2100
+#: option.c:2189
msgid "TXT record string too long"
msgstr "TXT post streng for lang"
-#: option.c:2104
+#: option.c:2193
msgid "bad TXT record"
msgstr "dårlig TXT post"
-#: option.c:2164
+#: option.c:2253
msgid "bad SRV record"
msgstr "dårlig SRV post"
-#: option.c:2173
+#: option.c:2262
msgid "bad SRV target"
msgstr "dårlig SRV mål"
-#: option.c:2188
+#: option.c:2277
msgid "invalid priority"
msgstr "ugyldig prioritet"
-#: option.c:2195
+#: option.c:2284
msgid "invalid weight"
msgstr "ugyldig vekt"
-#: option.c:2231
+#: option.c:2320
#, c-format
msgid "files nested too deep in %s"
msgstr ""
-#: option.c:2239 tftp.c:503
+#: option.c:2328 tftp.c:503
#, c-format
msgid "cannot read %s: %s"
msgstr "kan ikke lese %s: %s"
-#: option.c:2300
+#: option.c:2389
msgid "missing \""
msgstr "mangler \""
-#: option.c:2347
+#: option.c:2436
msgid "bad option"
msgstr "dårlig opsjon"
-#: option.c:2349
+#: option.c:2438
msgid "extraneous parameter"
msgstr "overflødig parameter"
-#: option.c:2351
+#: option.c:2440
msgid "missing parameter"
msgstr "mangler parameter"
-#: option.c:2359
+#: option.c:2448
msgid "error"
msgstr "feil"
-#: option.c:2365
+#: option.c:2454
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s på linje %d av %%s"
-#: option.c:2405 option.c:2435
+#: option.c:2502 option.c:2532
#, fuzzy, c-format
msgid "read %s"
msgstr "leser %s"
-#: option.c:2502
+#: option.c:2599
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq versjon %s %s\n"
-#: option.c:2503
+#: option.c:2600
#, c-format
msgid ""
"Compile time options %s\n"
@@ -705,57 +717,61 @@ msgstr ""
"Kompileringsopsjoner %s\n"
"\n"
-#: option.c:2504
+#: option.c:2601
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Denne programvaren kommer med ABSOLUTT INGEN GARANTI.\n"
-#: option.c:2505
+#: option.c:2602
#, 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:2506
+#: option.c:2603
#, 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:2517
+#: option.c:2614
msgid "try --help"
msgstr ""
-#: option.c:2519
+#: option.c:2616
msgid "try -w"
msgstr ""
-#: option.c:2522
+#: option.c:2619
#, fuzzy, c-format
msgid "bad command line options: %s"
msgstr "dårlige kommandlinje opsjoner: %s."
-#: option.c:2563
+#: option.c:2660
#, c-format
msgid "cannot get host-name: %s"
msgstr "klarer ikke å få vertsnavn: %s"
-#: option.c:2591
+#: option.c:2688
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "kun en resolv.conf fil tillat i no-poll modus."
-#: option.c:2601
+#: option.c:2698
msgid "must have exactly one resolv.conf to read domain from."
msgstr "må ha nøyaktig en resolv.conf å lese domene fra."
-#: option.c:2604 network.c:724
+#: option.c:2701 network.c:721
#, fuzzy, c-format
msgid "failed to read %s: %s"
msgstr "feilet å lese %s: %m"
-#: option.c:2622
+#: option.c:2719
#, c-format
msgid "no search directive found in %s"
msgstr "intet søke direktiv funnet i %s"
+#: option.c:2740
+msgid "there must be a default domain when --dhcp-fqdn is set"
+msgstr ""
+
#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
@@ -765,37 +781,12 @@ msgstr "navnetjener %s nektet å gjøre et rekursivt oppslag"
msgid "possible DNS-rebind attack detected"
msgstr ""
-#: isc.c:77 dnsmasq.c:889
-#, fuzzy, c-format
-msgid "failed to access %s: %s"
-msgstr "feilet å få tilgang til %s: %m"
-
-#: isc.c:93
-#, fuzzy, c-format
-msgid "failed to load %s: %s"
-msgstr "feilet å laste %s: %m"
-
-#: isc.c:97 dnsmasq.c:911
-#, c-format
-msgid "reading %s"
-msgstr "leser %s"
-
-#: isc.c:119
-#, c-format
-msgid "bad name in %s"
-msgstr "dårlig navn i %s"
-
-#: isc.c:181
-#, c-format
-msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
-msgstr "Ignorerer DHCP leie for %s siden den har en ulovlig domene del"
-
#: network.c:45
#, fuzzy, c-format
msgid "unknown interface %s in bridge-interface"
msgstr "ukjent tilknytning (interface) %s"
-#: network.c:389 dnsmasq.c:194
+#: network.c:389 dnsmasq.c:186
#, c-format
msgid "failed to create listening socket: %s"
msgstr "feilet å lage lytte socket: %s"
@@ -820,251 +811,257 @@ msgstr "feilet å lytte på socket: %s"
msgid "failed to create TFTP socket: %s"
msgstr "feilet å lage lytte socket: %s"
-#: network.c:631
+#: network.c:628
#, fuzzy, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "feilet å binde lytte socket for %s: %s"
-#: network.c:664
+#: network.c:661
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorerer navnetjener %s - lokal tilknytning"
-#: network.c:675
+#: network.c:672
#, fuzzy, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr "ignorerer navnetjener %s - kan ikke lage/dinde socket: %m"
-#: network.c:690
+#: network.c:687
msgid "unqualified"
msgstr "ikke kvalifisert"
-#: network.c:690
+#: network.c:687
msgid "names"
msgstr ""
-#: network.c:692
+#: network.c:689
msgid "default"
msgstr ""
-#: network.c:694
+#: network.c:691
msgid "domain"
msgstr "domene"
-#: network.c:697
+#: network.c:694
#, c-format
msgid "using local addresses only for %s %s"
msgstr "benytter lokale adresser kun for %s %s"
-#: network.c:699
+#: network.c:696
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "benytter navnetjener %s#%d for %s %s"
-#: network.c:702
+#: network.c:699
#, fuzzy, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "benytter navnetjener %s#%d"
-#: network.c:704
+#: network.c:701
#, c-format
msgid "using nameserver %s#%d"
msgstr "benytter navnetjener %s#%d"
-#: dnsmasq.c:122
-msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
-msgstr "ISC dhcpf integrasjon ikke tilgjengelig: sett HAVE_ISC_READER i src/config.h"
-
-#: dnsmasq.c:144
+#: dnsmasq.c:136
#, 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:149
+#: dnsmasq.c:141
msgid "asychronous logging is not available under Solaris"
msgstr ""
-#: dnsmasq.c:165
+#: dnsmasq.c:157
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr "må sette nøyaktig et interface på ødelagte systemer uten IP_RECVIF"
-#: dnsmasq.c:175
+#: dnsmasq.c:167
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr "feilet å finne liste av tilknytninger (interfaces): %s"
-#: dnsmasq.c:183
+#: dnsmasq.c:175
#, c-format
msgid "unknown interface %s"
msgstr "ukjent tilknytning (interface) %s"
-#: dnsmasq.c:189
+#: dnsmasq.c:181
#, c-format
msgid "no interface with address %s"
msgstr "ingen tilknytning (interface) med adresse %s"
-#: dnsmasq.c:206 dnsmasq.c:663
+#: dnsmasq.c:198 dnsmasq.c:652
#, c-format
msgid "DBus error: %s"
msgstr "DBus feil: %s"
-#: dnsmasq.c:209
+#: dnsmasq.c:201
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h"
-#: dnsmasq.c:233
+#: dnsmasq.c:225
#, c-format
msgid "unknown user or group: %s"
msgstr ""
-#: dnsmasq.c:290
+#: dnsmasq.c:282
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr ""
-#: dnsmasq.c:302
+#: dnsmasq.c:294
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
-#: dnsmasq.c:451
+#: dnsmasq.c:443
#, fuzzy, c-format
msgid "started, version %s DNS disabled"
msgstr "startet, versjon %s mellomlager deaktivert"
-#: dnsmasq.c:453
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cachesize %d"
msgstr "startet, versjon %s mellomlager størrelse %d"
-#: dnsmasq.c:455
+#: dnsmasq.c:447
#, c-format
msgid "started, version %s cache disabled"
msgstr "startet, versjon %s mellomlager deaktivert"
-#: dnsmasq.c:457
+#: dnsmasq.c:449
#, c-format
msgid "compile time options: %s"
msgstr "kompilerings opsjoner: %s"
-#: dnsmasq.c:463
+#: dnsmasq.c:455
msgid "DBus support enabled: connected to system bus"
msgstr "DBus støtte aktivert: koblet til system buss"
-#: dnsmasq.c:465
+#: dnsmasq.c:457
msgid "DBus support enabled: bus connection pending"
msgstr "DBus støtte aktivert: avventer buss tilkobling"
-#: dnsmasq.c:470
+#: dnsmasq.c:462
#, fuzzy, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr "feilet å laste navn fra %s: %m"
-#: dnsmasq.c:474
+#: dnsmasq.c:466
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "setter --bind-interfaces opsjon på grunn av OS begrensninger"
-#: dnsmasq.c:479
+#: dnsmasq.c:471
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "advarsel: nettverkskort %s eksisterer ikke for tiden"
-#: dnsmasq.c:484
+#: dnsmasq.c:476
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr ""
-#: dnsmasq.c:487
+#: dnsmasq.c:479
#, fuzzy
msgid "warning: no upstream servers configured"
msgstr "setter oppstrøms tjener fra DBus"
-#: dnsmasq.c:491
+#: dnsmasq.c:483
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr ""
-#: dnsmasq.c:503
+#: dnsmasq.c:495
#, 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:504
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, IP område %s -- %s, leie tid %s"
-#: dnsmasq.c:518
+#: dnsmasq.c:510
msgid "root is "
msgstr ""
-#: dnsmasq.c:518
+#: dnsmasq.c:510
#, fuzzy
msgid "enabled"
msgstr "deaktivert"
-#: dnsmasq.c:520
+#: dnsmasq.c:512
msgid "secure mode"
msgstr ""
-#: dnsmasq.c:546
+#: dnsmasq.c:538
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:665
+#: dnsmasq.c:654
msgid "connected to system DBus"
msgstr "tilkoblet til system DBus"
-#: dnsmasq.c:753
+#: dnsmasq.c:742
#, fuzzy, c-format
msgid "failed to create helper: %s"
msgstr "feilet å lese %s: %m"
-#: dnsmasq.c:756
+#: dnsmasq.c:745
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
-#: dnsmasq.c:760
+#: dnsmasq.c:749
#, fuzzy, c-format
msgid "failed to change user-id to %s: %s"
msgstr "feilet å laste navn fra %s: %m"
-#: dnsmasq.c:765
+#: dnsmasq.c:754
#, fuzzy, c-format
msgid "failed to change group-id to %s: %s"
msgstr "feilet å laste navn fra %s: %m"
-#: dnsmasq.c:768
+#: dnsmasq.c:757
#, fuzzy, c-format
msgid "failed to open pidfile %s: %s"
msgstr "feilet å lese %s: %m"
-#: dnsmasq.c:771
+#: dnsmasq.c:760
#, fuzzy, c-format
msgid "cannot open %s: %s"
msgstr "kan ikke åpne %s:%s"
-#: dnsmasq.c:822
+#: dnsmasq.c:811
#, c-format
msgid "child process killed by signal %d"
msgstr ""
-#: dnsmasq.c:826
+#: dnsmasq.c:815
#, c-format
msgid "child process exited with status %d"
msgstr ""
-#: dnsmasq.c:830
+#: dnsmasq.c:819
#, fuzzy, c-format
msgid "failed to execute %s: %s"
msgstr "feilet å få tilgang til %s: %m"
-#: dnsmasq.c:871
+#: dnsmasq.c:860
msgid "exiting on receipt of SIGTERM"
msgstr "avslutter etter mottak av SIGTERM"
-#: dnsmasq.c:922
+#: dnsmasq.c:878
+#, fuzzy, c-format
+msgid "failed to access %s: %s"
+msgstr "feilet å få tilgang til %s: %m"
+
+#: dnsmasq.c:900
+#, c-format
+msgid "reading %s"
+msgstr "leser %s"
+
+#: dnsmasq.c:911
#, fuzzy, c-format
msgid "no servers found in %s, will retry"
msgstr "intet søke direktiv funnet i %s"
@@ -1104,42 +1101,32 @@ msgstr ""
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:709
+#: dhcp.c:719
#, fuzzy, c-format
msgid "failed to read %s:%s"
msgstr "feilet å lese %s: %m"
-#: dhcp.c:744
+#: dhcp.c:755
#, c-format
msgid "bad line at %s line %d"
msgstr "dårlig linje ved %s linje %d"
-#: dhcp.c:847
+#: dhcp.c:870
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
-#: dhcp.c:850
+#: dhcp.c:873
#, fuzzy, c-format
msgid "duplicate IP address %s in %s."
msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
-#: dhcp.c:858
-#, fuzzy, c-format
-msgid "illegal domain %s in dhcp-config directive."
-msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
-
-#: dhcp.c:860
-#, c-format
-msgid "illegal domain %s in %s."
-msgstr ""
-
-#: dhcp.c:899
+#: dhcp.c:916
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:904
+#: dhcp.c:921
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "dubliserte IP adresser i %s (%s) i dhcp-config direktiv"
@@ -1168,151 +1155,160 @@ msgstr ""
msgid "failed to write %s: %s (retry in %us)"
msgstr "feilet å lese %s: %m"
-#: rfc2131.c:310
+#: rfc2131.c:315
#, 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:311
+#: rfc2131.c:316
msgid "with subnet selector"
msgstr "med subnet velger"
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "via"
msgstr "via"
-#: rfc2131.c:322
+#: rfc2131.c:327
#, c-format
msgid "DHCP packet: transaction-id is %u"
msgstr ""
-#: rfc2131.c:327
+#: rfc2131.c:332
#, c-format
msgid "Available DHCP subnet: %s/%s"
msgstr ""
-#: rfc2131.c:329
+#: rfc2131.c:334
#, c-format
msgid "Available DHCP range: %s -- %s"
msgstr ""
-#: rfc2131.c:357 rfc2131.c:388
+#: rfc2131.c:362 rfc2131.c:396
msgid "disabled"
msgstr "deaktivert"
-#: rfc2131.c:400 rfc2131.c:892
+#: rfc2131.c:411 rfc2131.c:928
msgid "address in use"
msgstr "adresse i bruk"
-#: rfc2131.c:403
-msgid "no address configured"
-msgstr "ingen adresse konfigurert"
-
-#: rfc2131.c:416 rfc2131.c:747
+#: rfc2131.c:425 rfc2131.c:765
msgid "no address available"
msgstr "ingen adresse tilgjengelig"
-#: rfc2131.c:425 rfc2131.c:902
-msgid "no leases left"
-msgstr "ingen leier igjen"
-
-#: rfc2131.c:428 rfc2131.c:866
+#: rfc2131.c:432 rfc2131.c:891
msgid "wrong network"
msgstr "galt nettverk"
-#: rfc2131.c:530
-#, c-format
-msgid "Ignoring domain %s for DHCP host name %s"
-msgstr ""
+#: rfc2131.c:445
+msgid "no address configured"
+msgstr "ingen adresse konfigurert"
+
+#: rfc2131.c:451 rfc2131.c:941
+msgid "no leases left"
+msgstr "ingen leier igjen"
-#: rfc2131.c:624
+#: rfc2131.c:640
#, c-format
msgid "Vendor class: %s"
msgstr ""
-#: rfc2131.c:626
+#: rfc2131.c:642
#, c-format
msgid "User class: %s"
msgstr ""
-#: rfc2131.c:667
+#: rfc2131.c:683
#, fuzzy, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "deaktiverer DHCP statisk adresse %s"
-#: rfc2131.c:688
+#: rfc2131.c:704
msgid "unknown lease"
msgstr "ukjent leie"
-#: rfc2131.c:697 rfc2131.c:1018
+#: rfc2131.c:713 rfc2131.c:1058
msgid "ignored"
msgstr "oversett"
-#: rfc2131.c:718
+#: rfc2131.c:736
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:728
+#: rfc2131.c:746
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:731
+#: rfc2131.c:749
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:745 rfc2131.c:895
+#: rfc2131.c:763 rfc2131.c:934
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:825
+#: rfc2131.c:831
+msgid "wrong server-ID"
+msgstr ""
+
+#: rfc2131.c:850
msgid "wrong address"
msgstr "gal adresse"
-#: rfc2131.c:842
+#: rfc2131.c:867
msgid "lease not found"
msgstr "leie ikke funnet"
-#: rfc2131.c:874
+#: rfc2131.c:899
msgid "address not available"
msgstr "adresse ikke tilgjengelig"
-#: rfc2131.c:885
+#: rfc2131.c:910
msgid "static lease available"
msgstr "statisk leie tilgjengelig"
-#: rfc2131.c:889
+#: rfc2131.c:914
msgid "address reserved"
msgstr "adresse reservert"
-#: rfc2131.c:1307
+#: rfc2131.c:922
+#, c-format
+msgid "abandoning lease to %s of %s"
+msgstr ""
+
+#: rfc2131.c:1356
#, c-format
msgid "tags: %s"
msgstr ""
-#: rfc2131.c:1394
+#: rfc2131.c:1443
#, 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:1564
+#: rfc2131.c:1599
+#, c-format
+msgid "Ignoring domain %s for DHCP host name %s"
+msgstr ""
+
+#: rfc2131.c:1617
#, fuzzy, c-format
msgid "requested options: %s"
msgstr "kompilerings opsjoner: %s"
-#: rfc2131.c:1613
+#: rfc2131.c:1666
#, fuzzy, c-format
msgid "next server: %s"
msgstr "DBus feil: %s"
-#: rfc2131.c:1637
+#: rfc2131.c:1690
#, c-format
msgid "bootfile name: %s"
msgstr ""
-#: rfc2131.c:1640
+#: rfc2131.c:1693
#, c-format
msgid "server name: %s"
msgstr ""
@@ -1392,6 +1388,23 @@ msgstr ""
msgid "FAILED to start up"
msgstr "FEILET å starte opp"
+#, fuzzy
+#~ msgid "failed to load %s: %s"
+#~ msgstr "feilet å laste %s: %m"
+
+#~ msgid "bad name in %s"
+#~ msgstr "dårlig navn i %s"
+
+#~ msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
+#~ msgstr "Ignorerer DHCP leie for %s siden den har en ulovlig domene del"
+
+#~ msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
+#~ msgstr "ISC dhcpf integrasjon ikke tilgjengelig: sett HAVE_ISC_READER i src/config.h"
+
+#, fuzzy
+#~ msgid "illegal domain %s in dhcp-config directive."
+#~ msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
+
#~ msgid "running as root"
#~ msgstr "kjører som rot (root)"
diff --git a/po/pl.po b/po/pl.po
index 629cc40..3fb420b 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-07-20 20:03+0100\n"
-"PO-Revision-Date: 2008-07-10 22:40+0200\n"
+"POT-Creation-Date: 2008-11-13 20:23+0000\n"
+"PO-Revision-Date: 2008-10-20 23:37+0200\n"
"Last-Translator: Jan Psota <jasiu@belsznica.pl>\n"
"Language-Team: Polski <pl@li.org>\n"
"MIME-Version: 1.0\n"
@@ -18,51 +18,51 @@ msgstr ""
"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: KBabel 1.11.4\n"
-#: cache.c:695
+#: cache.c:761
#, c-format
msgid "failed to load names from %s: %s"
msgstr "nie potrafiê wczytaæ nazw z %s: %s"
-#: cache.c:729 dhcp.c:757
+#: cache.c:795 dhcp.c:768
#, c-format
msgid "bad address at %s line %d"
msgstr "b³êdny adres w pliku %s, w linii %d"
-#: cache.c:776 dhcp.c:771
+#: cache.c:850 dhcp.c:782
#, c-format
msgid "bad name at %s line %d"
msgstr "b³êdna nazwa w pliku %s, w linii %d"
-#: cache.c:783 dhcp.c:825
+#: cache.c:857 dhcp.c:848
#, c-format
msgid "read %s - %d addresses"
msgstr "przeczytano %s - %d adresów"
-#: cache.c:821
+#: cache.c:895
msgid "cleared cache"
msgstr "wyczyszczono pamiêæ podrêczn±"
-#: cache.c:870
+#: cache.c:942
#, c-format
msgid "not giving name %s to the DHCP lease of %s because the name exists in %s with address %s"
msgstr "nazwa %s nie zosta³a nadana dzier¿awie DHCP %s,poniewa¿ nazwa istnieje w %s i ma ju¿ adres %s"
-#: cache.c:922
+#: cache.c:1018
#, c-format
msgid "time %lu"
msgstr "czas %lu"
-#: cache.c:923
+#: cache.c:1019
#, c-format
msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
msgstr "wielko¶æ pamiêci podrêcznej: %d; %d z %d miejsc aktualnych wpisów u¿yto ponownie"
-#: cache.c:925
+#: cache.c:1021
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr "%u zapytañ przes³anych dalej, %u odpowiedzi udzielonych samodzielnie"
-#: cache.c:948
+#: cache.c:1044
#, 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"
@@ -91,396 +91,404 @@ msgstr "niemo¿liwo¶æ przydzielenia %d bajtów pamiêci"
msgid "infinite"
msgstr "nieskoñczona"
-#: option.c:219
+#: option.c:223
msgid "Specify local address(es) to listen on."
msgstr "Wskazanie adresów, na których nale¿y nas³uchiwaæ."
-#: option.c:220
+#: option.c:224
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Zwracanie adresu IP dla wszystkich hostów we wskazanych domenach."
-#: option.c:221
+#: option.c:225
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Wy³±czenie przekazywania zapytañ odwrotnych dla prywatnych zakresów IP."
-#: option.c:222
+#: option.c:226
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Traktowanie adresu IP jak NXDOMAIN"
-#: option.c:223
+#: option.c:227
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Wielko¶æ pamiêci podrêcznej (domy¶lnie: %s miejsc)"
-#: option.c:224
+#: option.c:228
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Wskazanie pliku konfiguracyjnego (domy¶lnie: %s)"
-#: option.c:225
+#: option.c:229
msgid "Do NOT fork into the background: run in debug mode."
msgstr "NIE twórz procesu potomnego w tle: dzia³anie w trybie debugowania."
-#: option.c:226
+#: option.c:230
msgid "Do NOT forward queries with no domain part."
msgstr "Wy³±czenie przekazywania zapytañ bez podanej czê¶ci domenowej."
-#: option.c:227
+#: option.c:231
msgid "Return self-pointing MX records for local hosts."
msgstr "Zwracanie samowskazuj±cego rekordu MX dla lokalnych hostów."
-#: option.c:228
+#: option.c:232
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Rozwijanie prostych nazw z /etc/hosts przyrostkiem domenowym."
-#: option.c:229
+#: option.c:233
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Wy³±czenie przekazywania pozornych zapytañ DNS z komputerów dzia³aj±cych pod Windows."
-#: option.c:230
+#: option.c:234
msgid "Enable DHCP in the range given with lease duration."
msgstr "W³±czenie serwera DHCP dla wskazanego zakresu adresów."
-#: option.c:231
+#: option.c:235
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Po uruchomieniu zmiana grupy procesu na podan± (domy¶lnie: %s)."
-#: option.c:232
+#: option.c:236
msgid "Set address or hostname for a specified machine."
msgstr "Ustawienie adresu lub nazwy dla wskazanego komputera."
-#: option.c:233
+#: option.c:237
msgid "Read DHCP host specs from file"
msgstr "Wczytanie z podanego pliku opisu maszyn na potrzeby DHCP."
-#: option.c:234
+#: option.c:238
msgid "Read DHCP option specs from file"
msgstr "Wczytanie z podanego pliku warto¶ci opcji DHCP."
-#: option.c:235
+#: option.c:239
#, c-format
msgid "Do NOT load %s file."
msgstr "Nie wczytywanie pliku %s."
-#: option.c:236
+#: option.c:240
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Wskazanie dodatkowego pliku 'hosts' oprócz %s."
-#: option.c:237
+#: option.c:241
msgid "Specify interface(s) to listen on."
msgstr "Interfejsy, na których nas³uchiwaæ."
-#: option.c:238
+#: option.c:242
msgid "Specify interface(s) NOT to listen on."
msgstr "Interfejsy, na których NIE nas³uchiwaæ."
-#: option.c:239
+#: option.c:243
msgid "Map DHCP user class to tag."
msgstr "Przyporz±dkowanie znacznika w zale¿no¶ci od klasy u¿ytkownika DHCP."
-#: option.c:240
+#: option.c:244
msgid "Map RFC3046 circuit-id to tag."
msgstr "Przyporz±dkowanie znacznika w zale¿no¶ci od numeru obwodu (w rozumieniu RFC3046)."
-#: option.c:241
+#: option.c:245
msgid "Map RFC3046 remote-id to tag."
msgstr "Przyporz±dkowanie znacznika w zale¿no¶ci od numeru agenta (w rozumieniu RFC3046)."
-#: option.c:242
+#: option.c:246
msgid "Map RFC3993 subscriber-id to tag."
msgstr "Przyporz±dkowanie znacznika w zale¿no¶ci od numeru subskrybenta (w rozumieniu RFC3993)."
-#: option.c:243
+#: option.c:247
msgid "Don't do DHCP for hosts with tag set."
msgstr "Wy³±czenie DHCP dla hostów z okre¶lonym znacznikiem."
-#: option.c:244
+#: option.c:248
msgid "Force broadcast replies for hosts with tag set."
msgstr "Wymuszenie odpowiedzi w trybie rozg³oszeniowym dla hostów z okre¶lonym znacznikiem."
-#: option.c:245
+#: option.c:249
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "NIE twórz procesu potomnego w tle i NIE w³±czaj trybu debugowania."
-#: option.c:246
+#: option.c:250
msgid "Assume we are the only DHCP server on the local network."
msgstr "Zak³adanie, ¿e jeste¶my jedynym serwerem DHCP w sieci lokalnej."
-#: option.c:247
+#: option.c:251
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "¦cie¿ka przechowywania pliku dzier¿aw DHCP (domy¶lnie: %s)"
-#: option.c:248
+#: option.c:252
msgid "Return MX records for local hosts."
msgstr "W³±czenie zwracania rekordu MX dla hostów lokalnych."
-#: option.c:249
+#: option.c:253
msgid "Specify an MX record."
msgstr "Specyfikacja rekordu MX."
-#: option.c:250
+#: option.c:254
msgid "Specify BOOTP options to DHCP server."
msgstr "Okre¶lenie opcji BOOTP serwera DHCP."
-#: option.c:251
+#: option.c:255
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "Wy³±czenie obserwacji pliku %s, ponowne odczytywanie tylko po odebraniu sygna³u SIGHUP."
-#: option.c:252
+#: option.c:256
msgid "Do NOT cache failed search results."
msgstr "Wy³±czenie przechowywania w pamiêci podrêcznej wyników nieudanych wyszukiwañ."
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Odpytywanie serwerów nazw w kolejno¶ci ich wyst±pienia w %s."
-#: option.c:254
+#: option.c:258
msgid "Specify options to be sent to DHCP clients."
msgstr "Specyfikacja opcji wysy³anej do klientów DHCP."
-#: option.c:255
+#: option.c:259
msgid "DHCP option sent even if the client does not request it."
msgstr "Opcja DHCP wysy³ana nawet je¿eli klient o ni± nie prosi."
-#: option.c:256
+#: option.c:260
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Wskazanie portu do nas³uchiwania zapytañ DNS (domy¶lnie: 53)."
-#: option.c:257
+#: option.c:261
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Maksymalna obs³ugiwana wielko¶æ pakietu EDNS.0 (domy¶lnie: %s)."
-#: option.c:258
+#: option.c:262
msgid "Log DNS queries."
msgstr "W³±czenie spisywania zapytañ DNS do logu."
-#: option.c:259
+#: option.c:263
msgid "Force the originating port for upstream DNS queries."
msgstr "Wymuszenie u¿ycia wskazanego portu UDP do odpytywania nadrzêdnych serwerów DNS i odbierania od nich odpowiedzi."
-#: option.c:260
+#: option.c:264
msgid "Do NOT read resolv.conf."
msgstr "Wy³±czenie czytania pliku resolv.conf"
-#: option.c:261
+#: option.c:265
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Wskazanie po³o¿enia pliku resolv.conf (domy¶lnie: %s)."
-#: option.c:262
+#: option.c:266
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Wskazywanie adresów serwerów nazw, opcjonalnie z przypisaniem do domeny."
-#: option.c:263
+#: option.c:267
msgid "Never forward queries to specified domains."
msgstr "Wy³±czenie przekazywania zapytañ do wskazanych domen."
-#: option.c:264
+#: option.c:268
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Wskazanie domeny dla serwera DHCP."
-#: option.c:265
+#: option.c:269
msgid "Specify default target in an MX record."
msgstr "Okre¶lenie domy¶lnego celu w rekordzie MX."
-#: option.c:266
+#: option.c:270
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr "Okre¶lenie (w sekundach) czasu wa¿no¶ci odpowiedzi udzielonych na podstawie /etc/hosts (domy¶lnie 0)."
-#: option.c:267
+#: option.c:271
msgid "Specify time-to-live in seconds for negative caching."
msgstr "Okre¶lenie (w sekundach) czasu wa¿no¶ci negatywnych odpowiedzi."
-#: option.c:268
+#: option.c:272
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Zmiana u¿ytkownika procesu na wskazanego (po uruchomieniu, domy¶lnie: %s)."
-#: option.c:269
+#: option.c:273
msgid "Map DHCP vendor class to tag."
msgstr "Przyporz±dkowanie znacznika w zale¿no¶ci od typu klienta DHCP."
-#: option.c:270
+#: option.c:274
msgid "Display dnsmasq version and copyright information."
msgstr "Wydrukowanie informacji o programie i ochronie praw autorskich."
-#: option.c:271
+#: option.c:275
msgid "Translate IPv4 addresses from upstream servers."
msgstr "T³umaczenie adresów IPv4 z serwerów nadrzêdnych."
-#: option.c:272
+#: option.c:276
msgid "Specify a SRV record."
msgstr "Okre¶lenie rekordu SRV."
-#: option.c:273
+#: option.c:277
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr "Wy¶wietla ten komunikat. U¿yj '--help dhcp' chc±c przejrzeæ listê opcji DHCP (dhcp-option=xxx,...)."
-#: option.c:274
+#: option.c:278
#, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr "Okre¶lenie ¶cie¿ki do pliku PID (domy¶lnie: %s)."
-#: option.c:275
+#: option.c:279
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Maksymalna liczba dzier¿aw DHCP (domy¶lnie: %s)."
-#: option.c:276
+#: option.c:280
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr "Uzale¿nienie odpowiedzi DNS od interfejsu, na którym odebrano zapytanie (wygodne dla serwerów kilku podsieci z ró¿nymi adresami w /etc/hosts)."
-#: option.c:277
+#: option.c:281
msgid "Specify TXT DNS record."
msgstr "Specyfikacja rekordu DNS TXT."
-#: option.c:278
+#: option.c:282
msgid "Specify PTR DNS record."
msgstr "Specyfikacja rekordu DNS PTR."
-#: option.c:279
+#: option.c:283
msgid "Give DNS name to IPv4 address of interface."
msgstr "Zwraca nazwê domenow± powi±zan± z adresem interfejsu sieciowego."
-#: option.c:280
+#: option.c:284
msgid "Bind only to interfaces in use."
msgstr "Nas³uchiwanie tylko na wykorzystywanych interfejsach (umo¿liwia uruchomienie osobnych serwerów dla ró¿nych kart)."
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Wczytanie przyporz±dkowañ adresów z %s."
-#: option.c:282
+#: option.c:286
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "W³±czenie u¿ywania interfejsu DBus do informowania o zmianach konfiguracji."
-#: option.c:283
+#: option.c:287
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Wy³±czenie us³ug DHCP i TFTP na wskazanym interfejsie, uruchomienie tylko DNS."
-#: option.c:284
+#: option.c:288
msgid "Enable dynamic address allocation for bootp."
msgstr "W³±czenie dynamicznego przydzielania adresów dla klientów BOOTP."
-#: option.c:285
+#: option.c:289
msgid "Map MAC address (with wildcards) to option set."
msgstr "Przyporz±dkowanie znacznika w zale¿no¶ci od adresu MAC (mo¿na u¿ywaæ uogólnieñ: *)."
-#: option.c:287
+#: option.c:291
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr "Traktowanie ¿±dañ DHCP odebranych na interfejsach alias, ..., jako odebranych na iface."
-#: option.c:289
+#: option.c:293
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr "Pominiêcie sprawdzania za pomoc± ICMP niezajêto¶ci adresu przed jego wydzier¿awieniem."
-#: option.c:290
+#: option.c:294
msgid "Script to run on DHCP lease creation and destruction."
msgstr "Wskazanie skryptu uruchamianego w przypadku wydzier¿awienia adresu lub wyga¶niêcia dzier¿awy."
-#: option.c:291
+#: option.c:295
msgid "Read configuration from all the files in this directory."
msgstr "Wczytanie wszystkich plików ze wskazanego katalogu jako konfiguracyjnych."
-#: option.c:292
+#: option.c:296
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr "Wskazanie kana³u syslog-a do którego maj± trafiaæ komunikaty (domy¶lnie: DAEMON)."
-#: option.c:293
+#: option.c:297
msgid "Do not use leasefile."
msgstr "Nieu¿ywanie bazy dzier¿aw."
-#: option.c:294
+#: option.c:298
#, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr "Maksymalna liczba jednocze¶nie obs³ugiwanych zapytañ DNS (domy¶lnie: %s)."
-#: option.c:295
+#: option.c:299
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr "Czyszczenie pamiêci podrêcznej serwera nazw w przypadku ponownego odczytu %s."
-#: option.c:296
+#: option.c:300
msgid "Ignore hostnames provided by DHCP clients."
msgstr "Nie zwracanie uwagi na nazwê podawan± przez klienta w przypadku dopasowania wszystkich wymienionych znaczników."
-#: option.c:297
+#: option.c:301
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr "Wy³±czenie oszczêdzania miejsca w pakiecie DHCP przez przesuwanie pól servername i filename do opcji DHCP. Wymusza prostszy tryb budowy pakietu rozwi±zuj±c problemy z nieprzystosowanymi klientami DHCP."
-#: option.c:298
+#: option.c:302
msgid "Enable integrated read-only TFTP server."
msgstr "W³±czenie wbudowanego serwera TFTP (tylko do wysy³ania)."
-#: option.c:299
+#: option.c:303
msgid "Export files by TFTP only from the specified subtree."
msgstr "Ograniczenie dzia³ania serwera TFTP do wskazanego katalogu i podkatalogów. Nazwy z .. s± odrzucane, / odnosi siê do wskazanego katalogu."
-#: option.c:300
+#: option.c:304
msgid "Add client IP address to tftp-root."
msgstr "Doklejanie adresu IP klienta do g³ównego katalogu TFTP. Je¿eli wynikowy katalog nie istnieje, nadal wykorzystuje siê tftp-root."
-#: option.c:301
+#: option.c:305
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr "Ograniczenie dostêpu do plików przez TFTP do tych, których w³a¶cicielem jest u¿ytkownik uruchamiaj±cy dnsmasq-a."
-#: option.c:302
+#: option.c:306
#, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr "Maksymalna liczba jednocze¶nie obs³ugiwanych po³±czeñ TFTP (domy¶lnie %s)."
-#: option.c:303
+#: option.c:307
msgid "Disable the TFTP blocksize extension."
msgstr "Wy³±czenie mo¿liwo¶ci negocjowania wielko¶ci bloku dla przesy³ów przez TFTP."
-#: option.c:304
+#: option.c:308
msgid "Ephemeral port range for use by TFTP transfers."
msgstr "Wskazanie zakresu portów do u¿ytku TFTP."
-#: option.c:305
+#: option.c:309
msgid "Extra logging for DHCP."
msgstr "W³±czenie spisywania w logu operacji DHCP."
-#: option.c:306
+#: option.c:310
msgid "Enable async. logging; optionally set queue length."
msgstr "W³±czenie asynchronicznego zapisywania do logu z ewentualnym wskazaniem d³ugo¶ci kolejki."
-#: option.c:307
+#: option.c:311
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr "Odfiltrowywanie adresów wskazuj±cych na komputery w sieciach wewnêtrznych spo¶ród odpowiedzi od zewnêtrznych serwerów DNS."
-#: option.c:308
+#: option.c:312
msgid "Always perform DNS queries to all servers."
msgstr "Jednoczesne odpytywanie wszystkich serwerów nadrzêdnych; klientowi przekazywana jest pierwsza odpowied¼."
-#: option.c:309
+#: option.c:313
msgid "Set tag if client includes option in request."
msgstr "Przyporz±dkowanie znacznika je¿eli klient przy¶le opcjê o wskazanym numerze."
-#: option.c:310
+#: option.c:314
msgid "Use alternative ports for DHCP."
msgstr "U¿ycie alternatywnych portów dla us³ugi DHCP."
-#: option.c:311
+#: option.c:315
msgid "Run lease-change script as this user."
msgstr "Uruchamianie skryptu dhcp-script jako wskazany u¿ytkownik."
-#: option.c:312
+#: option.c:316
msgid "Specify NAPTR DNS record."
msgstr "Specyfikacja rekordu DNS NAPTR."
-#: option.c:313
+#: option.c:317
msgid "Specify lowest port available for DNS query transmission."
msgstr "Ustawienie dolnej granicy numerów portów do przesy³ania zapytañ DNS."
-#: option.c:574
+#: option.c:318
+msgid "Use only fully qualified domain names for DHCP clients."
+msgstr "Przechowywanie w serwerze DNS dnsmasq-a tylko w pe³ni kwalifikowanych nazw zg³aszanych przez klientów DHCP."
+
+#: option.c:319
+msgid "Specify alias name for LOCAL DNS name."
+msgstr "Wskazanie synonimu nazwy komputera lokalnego - znanego z /etc/hosts albo z DHCP."
+
+#: option.c:580
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -489,197 +497,201 @@ msgstr ""
"U¿ycie: dnsmasq [opcje]\n"
"\n"
-#: option.c:576
+#: option.c:582
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "W tym systemie w linii poleceñ mo¿na u¿ywaæ wy³±cznie jednoliterowych opcji.\n"
-#: option.c:578
+#: option.c:584
#, c-format
msgid "Valid options are:\n"
msgstr "Dostêpne opcje:\n"
-#: option.c:618
+#: option.c:624
#, c-format
msgid "Known DHCP options:\n"
msgstr "Znane opcje DHCP:\n"
-#: option.c:691
+#: option.c:697
msgid "bad dhcp-option"
msgstr "b³±d w dhcp-option"
-#: option.c:747
+#: option.c:753
msgid "bad IP address"
msgstr "z³y adres IP"
-#: option.c:845
+#: option.c:851
msgid "bad domain in dhcp-option"
msgstr "nieprawid³owa nazwa domeny w dhcp-option"
-#: option.c:903
+#: option.c:909
msgid "dhcp-option too long"
msgstr "zbyt d³uga dhcp-option (>255 znaków)"
-#: option.c:932
+#: option.c:938
msgid "illegal repeated flag"
msgstr "wielokrotne u¿ycie opcji niedozwolone (pojawi³a siê wcze¶niej w linii poleceñ)"
-#: option.c:940
+#: option.c:946
msgid "illegal repeated keyword"
msgstr "wielokrotne u¿ycie opcji niedozwolone (pojawi³a siê wsze¶niej w pliku konfiguracyjnym)"
-#: option.c:974
+#: option.c:983
#, c-format
msgid "cannot access directory %s: %s"
msgstr "brak dostêpu do katalogu %s: %s"
-#: option.c:993 tftp.c:348
+#: option.c:1002 tftp.c:348
#, c-format
msgid "cannot access %s: %s"
msgstr "brak dostêpu do %s: %s"
-#: option.c:1030
+#: option.c:1040
msgid "only one dhcp-hostsfile allowed"
msgstr "mo¿na wskazaæ tylko jeden plik dhcp-hostsfile"
-#: option.c:1037
+#: option.c:1047
msgid "only one dhcp-optsfile allowed"
msgstr "mo¿na wskazaæ tylko jeden plik dhcp-optsfile"
-#: option.c:1081
+#: option.c:1091
msgid "bad MX preference"
msgstr "nieprawid³owa warto¶æ preferencji MX"
-#: option.c:1085
+#: option.c:1095
msgid "bad MX name"
msgstr "nieprawid³owa nazwa MX"
-#: option.c:1099
+#: option.c:1109
msgid "bad MX target"
msgstr "nieprawid³owa warto¶æ celu MX"
-#: option.c:1110
+#: option.c:1120
msgid "cannot run scripts under uClinux"
msgstr "w uClinuksie nie ma mo¿liwo¶ci uruchamiania skryptów"
-#: option.c:1303 option.c:1311
+#: option.c:1352 option.c:1360
msgid "bad port"
msgstr "nieprawid³owy numer portu"
-#: option.c:1331 option.c:1356
+#: option.c:1380 option.c:1405
msgid "interface binding not supported"
msgstr "nie ma mo¿liwo¶ci dowi±zywania do interfejsu"
-#: option.c:1474
+#: option.c:1523
msgid "bad port range"
msgstr "nieprawid³owy zakres numerów portów"
-#: option.c:1491
+#: option.c:1540
msgid "bad bridge-interface"
msgstr "nieprawid³owa nazwa urz±dzenia w bridge-interface"
-#: option.c:1532
+#: option.c:1581
msgid "bad dhcp-range"
msgstr "nieprawid³owy zakres dhcp-range"
-#: option.c:1558
+#: option.c:1607
msgid "only one netid tag allowed"
msgstr "mo¿na wskazaæ tylko jeden znacznik sieci"
-#: option.c:1598
+#: option.c:1647
msgid "inconsistent DHCP range"
msgstr "niespójny zakres adresów DHCP"
-#: option.c:1766
+#: option.c:1819
msgid "bad DHCP host name"
msgstr "niedopuszczalna nazwa komputera w dhcp-host"
-#: option.c:1938 option.c:2181
+#: option.c:1998 option.c:2270
msgid "invalid port number"
msgstr "nieprawid³owy numer portu"
-#: option.c:2024
+#: option.c:2093
msgid "bad interface name"
msgstr "nieprawid³owa nazwa interfejsu"
-#: option.c:2044
+#: option.c:2116
+msgid "duplicate CNAME"
+msgstr "powtórzona CNAME"
+
+#: option.c:2133
msgid "bad PTR record"
msgstr "nieprawid³owy zapis rekordu PTR"
-#: option.c:2074
+#: option.c:2163
msgid "bad NAPTR record"
msgstr "nieprawid³owy zapis rekordu NAPTR"
-#: option.c:2100
+#: option.c:2189
msgid "TXT record string too long"
msgstr "zbyt d³ugi rekord TXT"
-#: option.c:2104
+#: option.c:2193
msgid "bad TXT record"
msgstr "nieprawid³owy zapis rekordu TXT"
-#: option.c:2164
+#: option.c:2253
msgid "bad SRV record"
msgstr "nieprawid³owy zapis rekordu SRV"
-#: option.c:2173
+#: option.c:2262
msgid "bad SRV target"
msgstr "nieprawid³owa warto¶æ celu SRV"
-#: option.c:2188
+#: option.c:2277
msgid "invalid priority"
msgstr "nieprawid³owy priorytet"
-#: option.c:2195
+#: option.c:2284
msgid "invalid weight"
msgstr "nieprawid³owa waga"
-#: option.c:2231
+#: option.c:2320
#, c-format
msgid "files nested too deep in %s"
msgstr "zbyt du¿e zag³êbienie plików w %s"
-#: option.c:2239 tftp.c:503
+#: option.c:2328 tftp.c:503
#, c-format
msgid "cannot read %s: %s"
msgstr "b³±d odczytu z pliku %s: %s"
-#: option.c:2300
+#: option.c:2389
msgid "missing \""
msgstr "brakuje \""
-#: option.c:2347
+#: option.c:2436
msgid "bad option"
msgstr "nieprawid³owa opcja"
-#: option.c:2349
+#: option.c:2438
msgid "extraneous parameter"
msgstr "nadwy¿kowy parametr"
-#: option.c:2351
+#: option.c:2440
msgid "missing parameter"
msgstr "brak parametru"
-#: option.c:2359
+#: option.c:2448
msgid "error"
msgstr "b³±d"
-#: option.c:2365
+#: option.c:2454
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s w linii %d pliku %%s"
-#: option.c:2405 option.c:2435
+#: option.c:2502 option.c:2532
#, c-format
msgid "read %s"
msgstr "przeczyta³em %s"
-#: option.c:2502
+#: option.c:2599
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq, wersja %s %s\n"
-#: option.c:2503
+#: option.c:2600
#, c-format
msgid ""
"Compile time options %s\n"
@@ -688,57 +700,61 @@ msgstr ""
"Wkompilowane opcje %s\n"
"\n"
-#: option.c:2504
+#: option.c:2601
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "To oprogramowanie nie daje ¿adnych gwarancji.\n"
-#: option.c:2505
+#: option.c:2602
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr "Dnsmasq jest wolnym oprogramowaniem, mo¿esz go rozprowadzaæ\n"
-#: option.c:2506
+#: option.c:2603
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr "na warunkach okre¶lonych w GNU General Public Licence, w wersji 2 lub 3.\n"
-#: option.c:2517
+#: option.c:2614
msgid "try --help"
msgstr "spróbuj: --help"
-#: option.c:2519
+#: option.c:2616
msgid "try -w"
msgstr "spróbuj: -w"
-#: option.c:2522
+#: option.c:2619
#, c-format
msgid "bad command line options: %s"
msgstr "nieprawid³owa opcja w linii poleceñ %s"
-#: option.c:2563
+#: option.c:2660
#, c-format
msgid "cannot get host-name: %s"
msgstr "nie mo¿na pobraæ nazwy hosta: %s"
-#: option.c:2591
+#: option.c:2688
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "w trybie no-poll mo¿na wskazaæ najwy¿ej jeden plik resolv.conf."
-#: option.c:2601
+#: option.c:2698
msgid "must have exactly one resolv.conf to read domain from."
msgstr "musisz mieæ dok³adnie jeden plik resolv.conf do odczytu domen."
-#: option.c:2604 network.c:724
+#: option.c:2701 network.c:721
#, c-format
msgid "failed to read %s: %s"
msgstr "nie uda³o siê odczytaæ %s: %s"
-#: option.c:2622
+#: option.c:2719
#, c-format
msgid "no search directive found in %s"
msgstr "brak wytycznych wyszukiwania w %s"
+#: option.c:2740
+msgid "there must be a default domain when --dhcp-fqdn is set"
+msgstr "w przypadku u¿ywania --dhcp-fqdn trzeba wskazaæ domy¶ln± domenê"
+
#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
@@ -748,37 +764,12 @@ msgstr "serwer nazw %s odmawia wykonania zapytania rekurencyjnego"
msgid "possible DNS-rebind attack detected"
msgstr "prawdopodobnie wykryto atak DNS-rebind"
-#: isc.c:77 dnsmasq.c:889
-#, c-format
-msgid "failed to access %s: %s"
-msgstr "brak dostêpu do %s: %s"
-
-#: isc.c:93
-#, c-format
-msgid "failed to load %s: %s"
-msgstr "nie uda³o siê wczytaæ %s: %s"
-
-#: isc.c:97 dnsmasq.c:911
-#, c-format
-msgid "reading %s"
-msgstr "czytanie %s"
-
-#: isc.c:119
-#, c-format
-msgid "bad name in %s"
-msgstr "nieprawid³owa nazwa w %s"
-
-#: isc.c:181
-#, c-format
-msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
-msgstr "Ignorujê dzier¿awê DHCP dla %s poniewa¿ zawiera nieprawid³ow± czê¶æ domenow±"
-
#: network.c:45
#, c-format
msgid "unknown interface %s in bridge-interface"
msgstr "nieznany interfejs %s w bridge-u"
-#: network.c:389 dnsmasq.c:194
+#: network.c:389 dnsmasq.c:186
#, c-format
msgid "failed to create listening socket: %s"
msgstr "b³±d podczas tworzenia gniazda: %s"
@@ -803,248 +794,254 @@ 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"
-#: network.c:631
+#: network.c:628
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "b³±d przy przyznawaniu nazwy gniazdu serwera %s: %s"
-#: network.c:664
+#: network.c:661
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorowanie serwera nazw %s - interfejs lokalny"
-#: network.c:675
+#: network.c:672
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr "ignorowanie serwera nazw %s - nie mo¿na utworzyæ/dowi±zaæ gniazda: %s"
-#: network.c:690
+#: network.c:687
msgid "unqualified"
msgstr "niekwalifikowane(-a)"
-#: network.c:690
+#: network.c:687
msgid "names"
msgstr "nazwy"
-#: network.c:692
+#: network.c:689
msgid "default"
msgstr "domy¶lne"
-#: network.c:694
+#: network.c:691
msgid "domain"
msgstr "domena"
-#: network.c:697
+#: network.c:694
#, c-format
msgid "using local addresses only for %s %s"
msgstr "u¿ywam adresów lokalnych tylko dla %s %s"
-#: network.c:699
+#: network.c:696
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "u¿ywam serwera nazw %s#%d dla %s %s"
-#: network.c:702
+#: network.c:699
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "u¿ywam serwera nazw %s#%d (przez %s)"
-#: network.c:704
+#: network.c:701
#, c-format
msgid "using nameserver %s#%d"
msgstr "u¿ywam serwera nazw %s#%d"
-#: dnsmasq.c:122
-msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
-msgstr "Integracja z ISC dhcpd nie zosta³a wkompilowana -- ustaw HAVE_ISC_READER w src/config.h"
-
-#: dnsmasq.c:144
+#: dnsmasq.c:136
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr "Serwer TFTP nie zosta³ wkompilowany -- ustaw HAVE_TFTP w src/config.h"
-#: dnsmasq.c:149
+#: dnsmasq.c:141
msgid "asychronous logging is not available under Solaris"
msgstr "zapis do logów w trybie asynchronicznym nie jest dostêpny w Solarisie"
-#: dnsmasq.c:165
+#: dnsmasq.c:157
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr "musisz ustawiæ dok³adnie jeden interfejs w systemach bez IP_RECVIF"
-#: dnsmasq.c:175
+#: dnsmasq.c:167
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr "b³±d podczas tworzenia listy interfejsów sieciowych: %s"
-#: dnsmasq.c:183
+#: dnsmasq.c:175
#, c-format
msgid "unknown interface %s"
msgstr "nieznany interfejs %s"
-#: dnsmasq.c:189
+#: dnsmasq.c:181
#, c-format
msgid "no interface with address %s"
msgstr "brak interfejsu z adresem %s"
-#: dnsmasq.c:206 dnsmasq.c:663
+#: dnsmasq.c:198 dnsmasq.c:652
#, c-format
msgid "DBus error: %s"
msgstr "b³±d DBus: %s"
-#: dnsmasq.c:209
+#: dnsmasq.c:201
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "Obs³uga DBus nie zosta³a wkompilowana -- ustaw HAVE_DBUS w src/config.h"
-#: dnsmasq.c:233
+#: dnsmasq.c:225
#, c-format
msgid "unknown user or group: %s"
msgstr "nieznany u¿ytkownik lub grupa: %s"
-#: dnsmasq.c:290
+#: dnsmasq.c:282
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr "nie potrafiê wej¶æ do g³ównego katalogu: %s"
-#: dnsmasq.c:302
+#: dnsmasq.c:294
#, c-format
msgid "cannot fork into background: %s"
msgstr "nie potrafiê prze³±czyæ siê do pracy w tle: %s"
-#: dnsmasq.c:451
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s DNS disabled"
msgstr "uruchomiony, wersja %s, DNS wy³±czony"
-#: dnsmasq.c:453
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cachesize %d"
msgstr "uruchomiony, wersja %s, %d miejsc w pamiêci podrêcznej"
-#: dnsmasq.c:455
+#: dnsmasq.c:447
#, c-format
msgid "started, version %s cache disabled"
msgstr "uruchomiony, wersja %s, pamiêæ podrêczna wy³±czona"
-#: dnsmasq.c:457
+#: dnsmasq.c:449
#, c-format
msgid "compile time options: %s"
msgstr "opcje kompilacji: %s"
-#: dnsmasq.c:463
+#: dnsmasq.c:455
msgid "DBus support enabled: connected to system bus"
msgstr "obs³uga DBus w³±czona, pod³±czono do serwera DBus"
-#: dnsmasq.c:465
+#: dnsmasq.c:457
msgid "DBus support enabled: bus connection pending"
msgstr "obs³uga DBus w³±czona, trwa pod³±czanie do serwera DBus"
-#: dnsmasq.c:470
+#: dnsmasq.c:462
#, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr "UWAGA! Nie uda³o siê zmieniæ u¿ytkownika pliku %s: %s"
-#: dnsmasq.c:474
+#: dnsmasq.c:466
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "ustawiam --bind-interfaces z powodu ograniczeñ systemu operacyjnego"
-#: dnsmasq.c:479
+#: dnsmasq.c:471
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "uwaga: interfejs %s nie jest w³±czony"
-#: dnsmasq.c:484
+#: dnsmasq.c:476
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr "uwaga: ignorujê opcjê resolv-file, poniewa¿ wybrano tryb no-resolv"
-#: dnsmasq.c:487
+#: dnsmasq.c:479
msgid "warning: no upstream servers configured"
msgstr "uwaga: nie wskazano nadrzêdnych serwerów DNS"
-#: dnsmasq.c:491
+#: dnsmasq.c:483
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr "w³±czono asynchroniczny tryb zapisu do logów z kolejk± na %d komunikatów"
-#: dnsmasq.c:503
+#: dnsmasq.c:495
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "DHCP: tylko statyczne dzier¿awy na %.0s%s, czas dzier¿awy %s"
-#: dnsmasq.c:504
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP: zakres IP %s -- %s, czas dzier¿awy %s"
-#: dnsmasq.c:518
+#: dnsmasq.c:510
msgid "root is "
msgstr ": g³ówny katalog -- "
-#: dnsmasq.c:518
+#: dnsmasq.c:510
msgid "enabled"
msgstr "w³±czony"
-#: dnsmasq.c:520
+#: dnsmasq.c:512
msgid "secure mode"
msgstr "w trybie bezpiecznym"
-#: dnsmasq.c:546
+#: dnsmasq.c:538
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "ograniczam ilo¶æ jednoczesnych przes³añ TFTP do %d"
-#: dnsmasq.c:665
+#: dnsmasq.c:654
msgid "connected to system DBus"
msgstr "pod³±czono do DBus-a"
-#: dnsmasq.c:753
+#: dnsmasq.c:742
#, c-format
msgid "failed to create helper: %s"
msgstr "nie uda³o siê utworzyæ procesu pomocniczego: %s"
-#: dnsmasq.c:756
+#: dnsmasq.c:745
#, c-format
msgid "setting capabilities failed: %s"
msgstr "nie powiod³o siê ustawianie ograniczeñ (capabilities): %s"
-#: dnsmasq.c:760
+#: dnsmasq.c:749
#, c-format
msgid "failed to change user-id to %s: %s"
msgstr "nie uda³o siê zmieniæ u¿ytkownika procesu na %s: %s"
-#: dnsmasq.c:765
+#: dnsmasq.c:754
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr "nie uda³o siê zmieniæ grupy procesu na %s: %s"
-#: dnsmasq.c:768
+#: dnsmasq.c:757
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr "nie uda³o siê otworzyæ pliku z PID-em %s: %s"
-#: dnsmasq.c:771
+#: dnsmasq.c:760
#, c-format
msgid "cannot open %s: %s"
msgstr "nie mo¿na otworzyæ %s: %s"
-#: dnsmasq.c:822
+#: dnsmasq.c:811
#, c-format
msgid "child process killed by signal %d"
msgstr "proces potomny zabity sygna³em %d"
-#: dnsmasq.c:826
+#: dnsmasq.c:815
#, c-format
msgid "child process exited with status %d"
msgstr "proces potomny zakoñczy³ siê z kodem powrotu %d"
-#: dnsmasq.c:830
+#: dnsmasq.c:819
#, c-format
msgid "failed to execute %s: %s"
msgstr "nie uda³o siê uruchomiæ %s: %s"
-#: dnsmasq.c:871
+#: dnsmasq.c:860
msgid "exiting on receipt of SIGTERM"
msgstr "zakoñczy³em dzia³anie z powodu odebrania SIGTERM"
-#: dnsmasq.c:922
+#: dnsmasq.c:878
+#, c-format
+msgid "failed to access %s: %s"
+msgstr "brak dostêpu do %s: %s"
+
+#: dnsmasq.c:900
+#, c-format
+msgid "reading %s"
+msgstr "czytanie %s"
+
+#: dnsmasq.c:911
#, c-format
msgid "no servers found in %s, will retry"
msgstr "w %s nie znalaz³em serwerów, spróbujê ponownie pó¼niej"
@@ -1084,42 +1081,32 @@ msgstr "¿±danie DHCP odebrano na interfejsie %s, który nie ma adresu"
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "zakres adresów DHCP %s -- %s jest niespójny z mask± sieci %s"
-#: dhcp.c:709
+#: dhcp.c:719
#, c-format
msgid "failed to read %s:%s"
msgstr "b³±d odczytu %s: %s"
-#: dhcp.c:744
+#: dhcp.c:755
#, c-format
msgid "bad line at %s line %d"
msgstr "z³a zawarto¶æ pliku %s, w linii %d"
-#: dhcp.c:847
+#: dhcp.c:870
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "powtórzony adres IP (%s) w parametrze dhcp-config"
-#: dhcp.c:850
+#: dhcp.c:873
#, c-format
msgid "duplicate IP address %s in %s."
msgstr "powtórzony adres IP (%s) w pliku %s"
-#: dhcp.c:858
-#, c-format
-msgid "illegal domain %s in dhcp-config directive."
-msgstr "nieprawid³owa nazwa domeny (%s) w parametrze dhcp-config"
-
-#: dhcp.c:860
-#, c-format
-msgid "illegal domain %s in %s."
-msgstr "nieprawid³owa nazwa domeny (%s) w %s"
-
-#: dhcp.c:899
+#: dhcp.c:916
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr "do komputera o nazwie %s pasuje wiêcej ni¿ jeden adres, w odpowiedzi DHCP wysy³am %s"
-#: dhcp.c:904
+#: dhcp.c:921
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "powtórzenie adresu IP %s (%s) w opcji dhcp-config"
@@ -1148,151 +1135,160 @@ msgstr "skrypt zakoñczy³ siê z kodem powrotu %s"
msgid "failed to write %s: %s (retry in %us)"
msgstr "b³±d zapisu do %s: %s (spróbujê ponownie za %us)"
-#: rfc2131.c:310
+#: rfc2131.c:315
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "nie zdefiniowano zakresu adresów odpowiedniego dla ¿±dania %s %s"
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "with subnet selector"
msgstr "z wyborem podsieci"
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "via"
msgstr "przez"
-#: rfc2131.c:322
+#: rfc2131.c:327
#, c-format
msgid "DHCP packet: transaction-id is %u"
msgstr "pakiet DHCP, id transakcji: %u"
-#: rfc2131.c:327
+#: rfc2131.c:332
#, c-format
msgid "Available DHCP subnet: %s/%s"
msgstr "Dostêpna podsieæ DHCP: %s/%s"
-#: rfc2131.c:329
+#: rfc2131.c:334
#, c-format
msgid "Available DHCP range: %s -- %s"
msgstr "Zakres adresów na u¿ytek DHCP: %s -- %s"
-#: rfc2131.c:357 rfc2131.c:388
+#: rfc2131.c:362 rfc2131.c:396
msgid "disabled"
msgstr "wy³±czony(a)"
-#: rfc2131.c:400 rfc2131.c:892
+#: rfc2131.c:411 rfc2131.c:928
msgid "address in use"
msgstr "adres jest w u¿yciu"
-#: rfc2131.c:403
-msgid "no address configured"
-msgstr "brak skonfigurowanego adresu"
-
-#: rfc2131.c:416 rfc2131.c:747
+#: rfc2131.c:425 rfc2131.c:765
msgid "no address available"
msgstr "brak dostêpnego adresu"
-#: rfc2131.c:425 rfc2131.c:902
-msgid "no leases left"
-msgstr "brak wolnych dzier¿aw"
-
-#: rfc2131.c:428 rfc2131.c:866
+#: rfc2131.c:432 rfc2131.c:891
msgid "wrong network"
msgstr "nieprawid³owa sieæ"
-#: rfc2131.c:530
-#, c-format
-msgid "Ignoring domain %s for DHCP host name %s"
-msgstr "Nie uwzglêdniam czê¶ci domenowej (%s) dla komputera %s"
+#: rfc2131.c:445
+msgid "no address configured"
+msgstr "brak skonfigurowanego adresu"
+
+#: rfc2131.c:451 rfc2131.c:941
+msgid "no leases left"
+msgstr "brak wolnych dzier¿aw"
-#: rfc2131.c:624
+#: rfc2131.c:640
#, c-format
msgid "Vendor class: %s"
msgstr "Typ klienta: %s"
-#: rfc2131.c:626
+#: rfc2131.c:642
#, c-format
msgid "User class: %s"
msgstr "Klasa u¿ytkownika: %s"
-#: rfc2131.c:667
+#: rfc2131.c:683
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "wy³±czam statyczne przypisanie adresu %s dla %s"
-#: rfc2131.c:688
+#: rfc2131.c:704
msgid "unknown lease"
msgstr "nieznana dzier¿awa"
-#: rfc2131.c:697 rfc2131.c:1018
+#: rfc2131.c:713 rfc2131.c:1058
msgid "ignored"
msgstr "ignorujê"
-#: rfc2131.c:718
+#: rfc2131.c:736
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr "nie proponujê zak³adanego w konfiguracji adresu %s, bo jest on ju¿ wydzier¿awiony komputerowi %s"
-#: rfc2131.c:728
+#: rfc2131.c:746
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr "nie proponujê zak³adanego w konfiguracji adresu %s, bo u¿ywa go który¶ z serwerów"
-#: rfc2131.c:731
+#: rfc2131.c:749
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr "nie proponujê zak³adanego w konfiguracji adresu %s, bo ju¿ poprzednio zosta³ odrzucony"
-#: rfc2131.c:745 rfc2131.c:895
+#: rfc2131.c:763 rfc2131.c:934
msgid "no unique-id"
msgstr "brak unikalnego id"
-#: rfc2131.c:825
+#: rfc2131.c:831
+msgid "wrong server-ID"
+msgstr "nieprawid³owy identyfikator serwera (server-ID)"
+
+#: rfc2131.c:850
msgid "wrong address"
msgstr "b³êdny adres"
-#: rfc2131.c:842
+#: rfc2131.c:867
msgid "lease not found"
-msgstr "dzier¿awa nie znaleziona"
+msgstr "dzier¿awa nieznaleziona"
-#: rfc2131.c:874
+#: rfc2131.c:899
msgid "address not available"
msgstr "adres niedostêpny"
-#: rfc2131.c:885
+#: rfc2131.c:910
msgid "static lease available"
msgstr "dostêpna statyczna dzier¿awa"
-#: rfc2131.c:889
+#: rfc2131.c:914
msgid "address reserved"
msgstr "adres zarezerwowany"
-#: rfc2131.c:1307
+#: rfc2131.c:922
+#, c-format
+msgid "abandoning lease to %s of %s"
+msgstr "porzucam przypisanie do %s nazwy %s"
+
+#: rfc2131.c:1356
#, c-format
msgid "tags: %s"
msgstr "znaczniki: %s"
-#: rfc2131.c:1394
+#: rfc2131.c:1443
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr "nie mam mo¿liwo¶ci wys³ania opcji %d DHCP/BOOTP: niedostateczna ilo¶æ miejsca w pakiecie"
-#: rfc2131.c:1564
+#: rfc2131.c:1599
+#, c-format
+msgid "Ignoring domain %s for DHCP host name %s"
+msgstr "Nie uwzglêdniam czê¶ci domenowej (%s) dla komputera %s"
+
+#: rfc2131.c:1617
#, c-format
msgid "requested options: %s"
msgstr "wskazane opcje: %s"
-#: rfc2131.c:1613
+#: rfc2131.c:1666
#, c-format
msgid "next server: %s"
msgstr "nastêpny serwer: %s"
-#: rfc2131.c:1637
+#: rfc2131.c:1690
#, c-format
msgid "bootfile name: %s"
msgstr "nazwa pliku bootowania: %s"
-#: rfc2131.c:1640
+#: rfc2131.c:1693
#, c-format
msgid "server name: %s"
msgstr "nazwa serwera: %s"
@@ -1317,7 +1313,7 @@ msgstr "ustawiam adresy serwerów nadrzêdnych na podstawie informacji odebranych
#: dbus.c:281
msgid "could not register a DBus message handler"
-msgstr "nie mo¿na zarejestrowaæ uchwytu wiadomo¶ci DBus"
+msgstr "nie mo¿na zarejestrowaæ uchwytu DBus"
#: bpf.c:146
#, c-format
diff --git a/po/pt_BR.po b/po/pt_BR.po
index c255918..4e94404 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.26\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-07-20 20:03+0100\n"
+"POT-Creation-Date: 2008-11-13 20:23+0000\n"
"PO-Revision-Date: 2006-01-16 20:42+0000\n"
"Last-Translator: Simon Kelley <simon@thekelleys.org.uk>\n"
"Language-Team: Portuguese <ldp-br@bazar.conectiva.com.br>\n"
@@ -15,51 +15,51 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: cache.c:695
+#: cache.c:761
#, c-format
msgid "failed to load names from %s: %s"
msgstr ""
-#: cache.c:729 dhcp.c:757
+#: cache.c:795 dhcp.c:768
#, c-format
msgid "bad address at %s line %d"
msgstr ""
-#: cache.c:776 dhcp.c:771
+#: cache.c:850 dhcp.c:782
#, c-format
msgid "bad name at %s line %d"
msgstr ""
-#: cache.c:783 dhcp.c:825
+#: cache.c:857 dhcp.c:848
#, c-format
msgid "read %s - %d addresses"
msgstr ""
-#: cache.c:821
+#: cache.c:895
msgid "cleared cache"
msgstr ""
-#: cache.c:870
+#: cache.c:942
#, 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:922
+#: cache.c:1018
#, c-format
msgid "time %lu"
msgstr ""
-#: cache.c:923
+#: cache.c:1019
#, c-format
msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
msgstr ""
-#: cache.c:925
+#: cache.c:1021
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr ""
-#: cache.c:948
+#: cache.c:1044
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr ""
@@ -88,650 +88,666 @@ msgstr ""
msgid "infinite"
msgstr ""
-#: option.c:219
+#: option.c:223
msgid "Specify local address(es) to listen on."
msgstr ""
-#: option.c:220
+#: option.c:224
msgid "Return ipaddr for all hosts in specified domains."
msgstr ""
-#: option.c:221
+#: option.c:225
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
-#: option.c:222
+#: option.c:226
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr ""
-#: option.c:223
+#: option.c:227
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr ""
-#: option.c:224
+#: option.c:228
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr ""
-#: option.c:225
+#: option.c:229
msgid "Do NOT fork into the background: run in debug mode."
msgstr ""
-#: option.c:226
+#: option.c:230
msgid "Do NOT forward queries with no domain part."
msgstr ""
-#: option.c:227
+#: option.c:231
msgid "Return self-pointing MX records for local hosts."
msgstr ""
-#: option.c:228
+#: option.c:232
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr ""
-#: option.c:229
+#: option.c:233
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr ""
-#: option.c:230
+#: option.c:234
msgid "Enable DHCP in the range given with lease duration."
msgstr ""
-#: option.c:231
+#: option.c:235
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr ""
-#: option.c:232
+#: option.c:236
msgid "Set address or hostname for a specified machine."
msgstr ""
-#: option.c:233
+#: option.c:237
msgid "Read DHCP host specs from file"
msgstr ""
-#: option.c:234
+#: option.c:238
msgid "Read DHCP option specs from file"
msgstr ""
-#: option.c:235
+#: option.c:239
#, c-format
msgid "Do NOT load %s file."
msgstr ""
-#: option.c:236
+#: option.c:240
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr ""
-#: option.c:237
+#: option.c:241
msgid "Specify interface(s) to listen on."
msgstr ""
-#: option.c:238
+#: option.c:242
msgid "Specify interface(s) NOT to listen on."
msgstr ""
-#: option.c:239
+#: option.c:243
msgid "Map DHCP user class to tag."
msgstr ""
-#: option.c:240
+#: option.c:244
msgid "Map RFC3046 circuit-id to tag."
msgstr ""
-#: option.c:241
+#: option.c:245
msgid "Map RFC3046 remote-id to tag."
msgstr ""
-#: option.c:242
+#: option.c:246
msgid "Map RFC3993 subscriber-id to tag."
msgstr ""
-#: option.c:243
+#: option.c:247
msgid "Don't do DHCP for hosts with tag set."
msgstr ""
-#: option.c:244
+#: option.c:248
msgid "Force broadcast replies for hosts with tag set."
msgstr ""
-#: option.c:245
+#: option.c:249
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr ""
-#: option.c:246
+#: option.c:250
msgid "Assume we are the only DHCP server on the local network."
msgstr ""
-#: option.c:247
+#: option.c:251
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:248
+#: option.c:252
msgid "Return MX records for local hosts."
msgstr ""
-#: option.c:249
+#: option.c:253
msgid "Specify an MX record."
msgstr ""
-#: option.c:250
+#: option.c:254
msgid "Specify BOOTP options to DHCP server."
msgstr ""
-#: option.c:251
+#: option.c:255
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
-#: option.c:252
+#: option.c:256
msgid "Do NOT cache failed search results."
msgstr ""
-#: option.c:253
+#: option.c:257
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr ""
-#: option.c:254
+#: option.c:258
msgid "Specify options to be sent to DHCP clients."
msgstr ""
-#: option.c:255
+#: option.c:259
msgid "DHCP option sent even if the client does not request it."
msgstr ""
-#: option.c:256
+#: option.c:260
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
-#: option.c:257
+#: option.c:261
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
-#: option.c:258
+#: option.c:262
msgid "Log DNS queries."
msgstr ""
-#: option.c:259
+#: option.c:263
msgid "Force the originating port for upstream DNS queries."
msgstr ""
-#: option.c:260
+#: option.c:264
msgid "Do NOT read resolv.conf."
msgstr ""
-#: option.c:261
+#: option.c:265
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr ""
-#: option.c:262
+#: option.c:266
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
-#: option.c:263
+#: option.c:267
msgid "Never forward queries to specified domains."
msgstr ""
-#: option.c:264
+#: option.c:268
msgid "Specify the domain to be assigned in DHCP leases."
msgstr ""
-#: option.c:265
+#: option.c:269
msgid "Specify default target in an MX record."
msgstr ""
-#: option.c:266
+#: option.c:270
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
-#: option.c:267
+#: option.c:271
msgid "Specify time-to-live in seconds for negative caching."
msgstr ""
-#: option.c:268
+#: option.c:272
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr ""
-#: option.c:269
+#: option.c:273
msgid "Map DHCP vendor class to tag."
msgstr ""
-#: option.c:270
+#: option.c:274
msgid "Display dnsmasq version and copyright information."
msgstr ""
-#: option.c:271
+#: option.c:275
msgid "Translate IPv4 addresses from upstream servers."
msgstr ""
-#: option.c:272
+#: option.c:276
msgid "Specify a SRV record."
msgstr ""
-#: option.c:273
+#: option.c:277
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr ""
-#: option.c:274
+#: option.c:278
#, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr ""
-#: option.c:275
+#: option.c:279
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:276
+#: option.c:280
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
-#: option.c:277
+#: option.c:281
msgid "Specify TXT DNS record."
msgstr ""
-#: option.c:278
+#: option.c:282
msgid "Specify PTR DNS record."
msgstr ""
-#: option.c:279
+#: option.c:283
msgid "Give DNS name to IPv4 address of interface."
msgstr ""
-#: option.c:280
+#: option.c:284
msgid "Bind only to interfaces in use."
msgstr ""
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Read DHCP static host information from %s."
msgstr ""
-#: option.c:282
+#: option.c:286
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr ""
-#: option.c:283
+#: option.c:287
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr ""
-#: option.c:284
+#: option.c:288
msgid "Enable dynamic address allocation for bootp."
msgstr ""
-#: option.c:285
+#: option.c:289
msgid "Map MAC address (with wildcards) to option set."
msgstr ""
-#: option.c:287
+#: option.c:291
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr ""
-#: option.c:289
+#: option.c:293
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:290
+#: option.c:294
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
-#: option.c:291
+#: option.c:295
msgid "Read configuration from all the files in this directory."
msgstr ""
-#: option.c:292
+#: option.c:296
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr ""
-#: option.c:293
+#: option.c:297
msgid "Do not use leasefile."
msgstr ""
-#: option.c:294
+#: option.c:298
#, c-format
msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
msgstr ""
-#: option.c:295
+#: option.c:299
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr ""
-#: option.c:296
+#: option.c:300
msgid "Ignore hostnames provided by DHCP clients."
msgstr ""
-#: option.c:297
+#: option.c:301
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr ""
-#: option.c:298
+#: option.c:302
msgid "Enable integrated read-only TFTP server."
msgstr ""
-#: option.c:299
+#: option.c:303
msgid "Export files by TFTP only from the specified subtree."
msgstr ""
-#: option.c:300
+#: option.c:304
msgid "Add client IP address to tftp-root."
msgstr ""
-#: option.c:301
+#: option.c:305
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr ""
-#: option.c:302
+#: option.c:306
#, c-format
msgid "Maximum number of conncurrent TFTP transfers (defaults to %s)."
msgstr ""
-#: option.c:303
+#: option.c:307
msgid "Disable the TFTP blocksize extension."
msgstr ""
-#: option.c:304
+#: option.c:308
msgid "Ephemeral port range for use by TFTP transfers."
msgstr ""
-#: option.c:305
+#: option.c:309
msgid "Extra logging for DHCP."
msgstr ""
-#: option.c:306
+#: option.c:310
msgid "Enable async. logging; optionally set queue length."
msgstr ""
-#: option.c:307
+#: option.c:311
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr ""
-#: option.c:308
+#: option.c:312
msgid "Always perform DNS queries to all servers."
msgstr ""
-#: option.c:309
+#: option.c:313
msgid "Set tag if client includes option in request."
msgstr ""
-#: option.c:310
+#: option.c:314
msgid "Use alternative ports for DHCP."
msgstr ""
-#: option.c:311
+#: option.c:315
msgid "Run lease-change script as this user."
msgstr ""
-#: option.c:312
+#: option.c:316
msgid "Specify NAPTR DNS record."
msgstr ""
-#: option.c:313
+#: option.c:317
msgid "Specify lowest port available for DNS query transmission."
msgstr ""
-#: option.c:574
+#: option.c:318
+msgid "Use only fully qualified domain names for DHCP clients."
+msgstr ""
+
+#: option.c:319
+msgid "Specify alias name for LOCAL DNS name."
+msgstr ""
+
+#: option.c:580
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
-#: option.c:576
+#: option.c:582
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
-#: option.c:578
+#: option.c:584
#, c-format
msgid "Valid options are:\n"
msgstr ""
-#: option.c:618
+#: option.c:624
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:691
+#: option.c:697
msgid "bad dhcp-option"
msgstr ""
-#: option.c:747
+#: option.c:753
msgid "bad IP address"
msgstr ""
-#: option.c:845
+#: option.c:851
msgid "bad domain in dhcp-option"
msgstr ""
-#: option.c:903
+#: option.c:909
msgid "dhcp-option too long"
msgstr ""
-#: option.c:932
+#: option.c:938
msgid "illegal repeated flag"
msgstr ""
-#: option.c:940
+#: option.c:946
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:974
+#: option.c:983
#, c-format
msgid "cannot access directory %s: %s"
msgstr ""
-#: option.c:993 tftp.c:348
+#: option.c:1002 tftp.c:348
#, c-format
msgid "cannot access %s: %s"
msgstr ""
-#: option.c:1030
+#: option.c:1040
msgid "only one dhcp-hostsfile allowed"
msgstr ""
-#: option.c:1037
+#: option.c:1047
msgid "only one dhcp-optsfile allowed"
msgstr ""
-#: option.c:1081
+#: option.c:1091
msgid "bad MX preference"
msgstr ""
-#: option.c:1085
+#: option.c:1095
msgid "bad MX name"
msgstr ""
-#: option.c:1099
+#: option.c:1109
msgid "bad MX target"
msgstr ""
-#: option.c:1110
+#: option.c:1120
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1303 option.c:1311
+#: option.c:1352 option.c:1360
msgid "bad port"
msgstr ""
-#: option.c:1331 option.c:1356
+#: option.c:1380 option.c:1405
msgid "interface binding not supported"
msgstr ""
-#: option.c:1474
+#: option.c:1523
msgid "bad port range"
msgstr ""
-#: option.c:1491
+#: option.c:1540
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1532
+#: option.c:1581
msgid "bad dhcp-range"
msgstr ""
-#: option.c:1558
+#: option.c:1607
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1598
+#: option.c:1647
msgid "inconsistent DHCP range"
msgstr ""
-#: option.c:1766
+#: option.c:1819
msgid "bad DHCP host name"
msgstr ""
-#: option.c:1938 option.c:2181
+#: option.c:1998 option.c:2270
msgid "invalid port number"
msgstr ""
-#: option.c:2024
+#: option.c:2093
msgid "bad interface name"
msgstr ""
-#: option.c:2044
+#: option.c:2116
+msgid "duplicate CNAME"
+msgstr ""
+
+#: option.c:2133
msgid "bad PTR record"
msgstr ""
-#: option.c:2074
+#: option.c:2163
msgid "bad NAPTR record"
msgstr ""
-#: option.c:2100
+#: option.c:2189
msgid "TXT record string too long"
msgstr ""
-#: option.c:2104
+#: option.c:2193
msgid "bad TXT record"
msgstr ""
-#: option.c:2164
+#: option.c:2253
msgid "bad SRV record"
msgstr ""
-#: option.c:2173
+#: option.c:2262
msgid "bad SRV target"
msgstr ""
-#: option.c:2188
+#: option.c:2277
msgid "invalid priority"
msgstr ""
-#: option.c:2195
+#: option.c:2284
msgid "invalid weight"
msgstr ""
-#: option.c:2231
+#: option.c:2320
#, c-format
msgid "files nested too deep in %s"
msgstr ""
-#: option.c:2239 tftp.c:503
+#: option.c:2328 tftp.c:503
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: option.c:2300
+#: option.c:2389
msgid "missing \""
msgstr ""
-#: option.c:2347
+#: option.c:2436
msgid "bad option"
msgstr ""
-#: option.c:2349
+#: option.c:2438
msgid "extraneous parameter"
msgstr ""
-#: option.c:2351
+#: option.c:2440
msgid "missing parameter"
msgstr ""
-#: option.c:2359
+#: option.c:2448
msgid "error"
msgstr ""
-#: option.c:2365
+#: option.c:2454
#, c-format
msgid "%s at line %d of %%s"
msgstr ""
-#: option.c:2405 option.c:2435
+#: option.c:2502 option.c:2532
#, c-format
msgid "read %s"
msgstr ""
-#: option.c:2502
+#: option.c:2599
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
-#: option.c:2503
+#: option.c:2600
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
-#: option.c:2504
+#: option.c:2601
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
-#: option.c:2505
+#: option.c:2602
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:2506
+#: option.c:2603
#, c-format
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
msgstr ""
-#: option.c:2517
+#: option.c:2614
msgid "try --help"
msgstr ""
-#: option.c:2519
+#: option.c:2616
msgid "try -w"
msgstr ""
-#: option.c:2522
+#: option.c:2619
#, c-format
msgid "bad command line options: %s"
msgstr ""
-#: option.c:2563
+#: option.c:2660
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
-#: option.c:2591
+#: option.c:2688
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
-#: option.c:2601
+#: option.c:2698
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
-#: option.c:2604 network.c:724
+#: option.c:2701 network.c:721
#, c-format
msgid "failed to read %s: %s"
msgstr ""
-#: option.c:2622
+#: option.c:2719
#, c-format
msgid "no search directive found in %s"
msgstr ""
+#: option.c:2740
+msgid "there must be a default domain when --dhcp-fqdn is set"
+msgstr ""
+
#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
@@ -741,37 +757,12 @@ msgstr ""
msgid "possible DNS-rebind attack detected"
msgstr ""
-#: isc.c:77 dnsmasq.c:889
-#, c-format
-msgid "failed to access %s: %s"
-msgstr ""
-
-#: isc.c:93
-#, c-format
-msgid "failed to load %s: %s"
-msgstr ""
-
-#: isc.c:97 dnsmasq.c:911
-#, c-format
-msgid "reading %s"
-msgstr ""
-
-#: isc.c:119
-#, c-format
-msgid "bad name in %s"
-msgstr ""
-
-#: isc.c:181
-#, c-format
-msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
-msgstr ""
-
#: network.c:45
#, c-format
msgid "unknown interface %s in bridge-interface"
msgstr ""
-#: network.c:389 dnsmasq.c:194
+#: network.c:389 dnsmasq.c:186
#, c-format
msgid "failed to create listening socket: %s"
msgstr ""
@@ -796,248 +787,254 @@ msgstr ""
msgid "failed to create TFTP socket: %s"
msgstr ""
-#: network.c:631
+#: network.c:628
#, c-format
msgid "failed to bind server socket for %s: %s"
msgstr ""
-#: network.c:664
+#: network.c:661
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
-#: network.c:675
+#: network.c:672
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr ""
-#: network.c:690
+#: network.c:687
msgid "unqualified"
msgstr ""
-#: network.c:690
+#: network.c:687
msgid "names"
msgstr ""
-#: network.c:692
+#: network.c:689
msgid "default"
msgstr ""
-#: network.c:694
+#: network.c:691
msgid "domain"
msgstr ""
-#: network.c:697
+#: network.c:694
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:699
+#: network.c:696
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:702
+#: network.c:699
#, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr ""
-#: network.c:704
+#: network.c:701
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
-#: dnsmasq.c:122
-msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
-msgstr ""
-
-#: dnsmasq.c:144
+#: dnsmasq.c:136
msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr ""
-#: dnsmasq.c:149
+#: dnsmasq.c:141
msgid "asychronous logging is not available under Solaris"
msgstr ""
-#: dnsmasq.c:165
+#: dnsmasq.c:157
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr ""
-#: dnsmasq.c:175
+#: dnsmasq.c:167
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr ""
-#: dnsmasq.c:183
+#: dnsmasq.c:175
#, c-format
msgid "unknown interface %s"
msgstr ""
-#: dnsmasq.c:189
+#: dnsmasq.c:181
#, c-format
msgid "no interface with address %s"
msgstr ""
-#: dnsmasq.c:206 dnsmasq.c:663
+#: dnsmasq.c:198 dnsmasq.c:652
#, c-format
msgid "DBus error: %s"
msgstr ""
-#: dnsmasq.c:209
+#: dnsmasq.c:201
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr ""
-#: dnsmasq.c:233
+#: dnsmasq.c:225
#, c-format
msgid "unknown user or group: %s"
msgstr ""
-#: dnsmasq.c:290
+#: dnsmasq.c:282
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr ""
-#: dnsmasq.c:302
+#: dnsmasq.c:294
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
-#: dnsmasq.c:451
+#: dnsmasq.c:443
#, c-format
msgid "started, version %s DNS disabled"
msgstr ""
-#: dnsmasq.c:453
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cachesize %d"
msgstr ""
-#: dnsmasq.c:455
+#: dnsmasq.c:447
#, c-format
msgid "started, version %s cache disabled"
msgstr ""
-#: dnsmasq.c:457
+#: dnsmasq.c:449
#, c-format
msgid "compile time options: %s"
msgstr ""
-#: dnsmasq.c:463
+#: dnsmasq.c:455
msgid "DBus support enabled: connected to system bus"
msgstr ""
-#: dnsmasq.c:465
+#: dnsmasq.c:457
msgid "DBus support enabled: bus connection pending"
msgstr ""
-#: dnsmasq.c:470
+#: dnsmasq.c:462
#, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr ""
-#: dnsmasq.c:474
+#: dnsmasq.c:466
msgid "setting --bind-interfaces option because of OS limitations"
msgstr ""
-#: dnsmasq.c:479
+#: dnsmasq.c:471
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr ""
-#: dnsmasq.c:484
+#: dnsmasq.c:476
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr ""
-#: dnsmasq.c:487
+#: dnsmasq.c:479
msgid "warning: no upstream servers configured"
msgstr ""
-#: dnsmasq.c:491
+#: dnsmasq.c:483
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr ""
-#: dnsmasq.c:503
+#: dnsmasq.c:495
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr ""
-#: dnsmasq.c:504
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr ""
-#: dnsmasq.c:518
+#: dnsmasq.c:510
msgid "root is "
msgstr ""
-#: dnsmasq.c:518
+#: dnsmasq.c:510
msgid "enabled"
msgstr ""
-#: dnsmasq.c:520
+#: dnsmasq.c:512
msgid "secure mode"
msgstr ""
-#: dnsmasq.c:546
+#: dnsmasq.c:538
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:665
+#: dnsmasq.c:654
msgid "connected to system DBus"
msgstr ""
-#: dnsmasq.c:753
+#: dnsmasq.c:742
#, c-format
msgid "failed to create helper: %s"
msgstr ""
-#: dnsmasq.c:756
+#: dnsmasq.c:745
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
-#: dnsmasq.c:760
+#: dnsmasq.c:749
#, c-format
msgid "failed to change user-id to %s: %s"
msgstr ""
-#: dnsmasq.c:765
+#: dnsmasq.c:754
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr ""
-#: dnsmasq.c:768
+#: dnsmasq.c:757
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr ""
-#: dnsmasq.c:771
+#: dnsmasq.c:760
#, c-format
msgid "cannot open %s: %s"
msgstr ""
-#: dnsmasq.c:822
+#: dnsmasq.c:811
#, c-format
msgid "child process killed by signal %d"
msgstr ""
-#: dnsmasq.c:826
+#: dnsmasq.c:815
#, c-format
msgid "child process exited with status %d"
msgstr ""
-#: dnsmasq.c:830
+#: dnsmasq.c:819
#, c-format
msgid "failed to execute %s: %s"
msgstr ""
-#: dnsmasq.c:871
+#: dnsmasq.c:860
msgid "exiting on receipt of SIGTERM"
msgstr ""
-#: dnsmasq.c:922
+#: dnsmasq.c:878
+#, c-format
+msgid "failed to access %s: %s"
+msgstr ""
+
+#: dnsmasq.c:900
+#, c-format
+msgid "reading %s"
+msgstr ""
+
+#: dnsmasq.c:911
#, c-format
msgid "no servers found in %s, will retry"
msgstr ""
@@ -1077,42 +1074,32 @@ msgstr ""
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
-#: dhcp.c:709
+#: dhcp.c:719
#, c-format
msgid "failed to read %s:%s"
msgstr ""
-#: dhcp.c:744
+#: dhcp.c:755
#, c-format
msgid "bad line at %s line %d"
msgstr ""
-#: dhcp.c:847
+#: dhcp.c:870
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
-#: dhcp.c:850
+#: dhcp.c:873
#, c-format
msgid "duplicate IP address %s in %s."
msgstr ""
-#: dhcp.c:858
-#, c-format
-msgid "illegal domain %s in dhcp-config directive."
-msgstr ""
-
-#: dhcp.c:860
-#, c-format
-msgid "illegal domain %s in %s."
-msgstr ""
-
-#: dhcp.c:899
+#: dhcp.c:916
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:904
+#: dhcp.c:921
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
@@ -1141,151 +1128,160 @@ msgstr ""
msgid "failed to write %s: %s (retry in %us)"
msgstr ""
-#: rfc2131.c:310
+#: rfc2131.c:315
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr ""
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "with subnet selector"
msgstr ""
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "via"
msgstr ""
-#: rfc2131.c:322
+#: rfc2131.c:327
#, c-format
msgid "DHCP packet: transaction-id is %u"
msgstr ""
-#: rfc2131.c:327
+#: rfc2131.c:332
#, c-format
msgid "Available DHCP subnet: %s/%s"
msgstr ""
-#: rfc2131.c:329
+#: rfc2131.c:334
#, c-format
msgid "Available DHCP range: %s -- %s"
msgstr ""
-#: rfc2131.c:357 rfc2131.c:388
+#: rfc2131.c:362 rfc2131.c:396
msgid "disabled"
msgstr ""
-#: rfc2131.c:400 rfc2131.c:892
+#: rfc2131.c:411 rfc2131.c:928
msgid "address in use"
msgstr ""
-#: rfc2131.c:403
-msgid "no address configured"
-msgstr ""
-
-#: rfc2131.c:416 rfc2131.c:747
+#: rfc2131.c:425 rfc2131.c:765
msgid "no address available"
msgstr ""
-#: rfc2131.c:425 rfc2131.c:902
-msgid "no leases left"
+#: rfc2131.c:432 rfc2131.c:891
+msgid "wrong network"
msgstr ""
-#: rfc2131.c:428 rfc2131.c:866
-msgid "wrong network"
+#: rfc2131.c:445
+msgid "no address configured"
msgstr ""
-#: rfc2131.c:530
-#, c-format
-msgid "Ignoring domain %s for DHCP host name %s"
+#: rfc2131.c:451 rfc2131.c:941
+msgid "no leases left"
msgstr ""
-#: rfc2131.c:624
+#: rfc2131.c:640
#, c-format
msgid "Vendor class: %s"
msgstr ""
-#: rfc2131.c:626
+#: rfc2131.c:642
#, c-format
msgid "User class: %s"
msgstr ""
-#: rfc2131.c:667
+#: rfc2131.c:683
#, c-format
msgid "disabling DHCP static address %s for %s"
msgstr ""
-#: rfc2131.c:688
+#: rfc2131.c:704
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:697 rfc2131.c:1018
+#: rfc2131.c:713 rfc2131.c:1058
msgid "ignored"
msgstr ""
-#: rfc2131.c:718
+#: rfc2131.c:736
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:728
+#: rfc2131.c:746
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:731
+#: rfc2131.c:749
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:745 rfc2131.c:895
+#: rfc2131.c:763 rfc2131.c:934
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:825
+#: rfc2131.c:831
+msgid "wrong server-ID"
+msgstr ""
+
+#: rfc2131.c:850
msgid "wrong address"
msgstr ""
-#: rfc2131.c:842
+#: rfc2131.c:867
msgid "lease not found"
msgstr ""
-#: rfc2131.c:874
+#: rfc2131.c:899
msgid "address not available"
msgstr ""
-#: rfc2131.c:885
+#: rfc2131.c:910
msgid "static lease available"
msgstr ""
-#: rfc2131.c:889
+#: rfc2131.c:914
msgid "address reserved"
msgstr ""
-#: rfc2131.c:1307
+#: rfc2131.c:922
+#, c-format
+msgid "abandoning lease to %s of %s"
+msgstr ""
+
+#: rfc2131.c:1356
#, c-format
msgid "tags: %s"
msgstr ""
-#: rfc2131.c:1394
+#: rfc2131.c:1443
#, c-format
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:1564
+#: rfc2131.c:1599
+#, c-format
+msgid "Ignoring domain %s for DHCP host name %s"
+msgstr ""
+
+#: rfc2131.c:1617
#, c-format
msgid "requested options: %s"
msgstr ""
-#: rfc2131.c:1613
+#: rfc2131.c:1666
#, c-format
msgid "next server: %s"
msgstr ""
-#: rfc2131.c:1637
+#: rfc2131.c:1690
#, c-format
msgid "bootfile name: %s"
msgstr ""
-#: rfc2131.c:1640
+#: rfc2131.c:1693
#, c-format
msgid "server name: %s"
msgstr ""
diff --git a/po/ro.po b/po/ro.po
index e39cea1..6dfba76 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-07-20 20:03+0100\n"
+"POT-Creation-Date: 2008-11-13 20:23+0000\n"
"PO-Revision-Date: 2005-11-22 16:46+0000\n"
"Last-Translator: Simon Kelley <simon@thekelleys.org.uk>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -15,51 +15,51 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
# for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
-#: cache.c:695
+#: cache.c:761
#, fuzzy, c-format
msgid "failed to load names from %s: %s"
msgstr "încărcarea numelor din %s: %m a eşuat"
-#: cache.c:729 dhcp.c:757
+#: cache.c:795 dhcp.c:768
#, c-format
msgid "bad address at %s line %d"
msgstr "adresă greşită în %s, linia %d"
-#: cache.c:776 dhcp.c:771
+#: cache.c:850 dhcp.c:782
#, c-format
msgid "bad name at %s line %d"
msgstr "nume greşit în %s linia %d"
-#: cache.c:783 dhcp.c:825
+#: cache.c:857 dhcp.c:848
#, c-format
msgid "read %s - %d addresses"
msgstr "citesc %s - %d adrese"
-#: cache.c:821
+#: cache.c:895
msgid "cleared cache"
msgstr "memoria temporară a fost ştearsă"
-#: cache.c:870
+#: cache.c:942
#, 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:922
+#: cache.c:1018
#, c-format
msgid "time %lu"
msgstr ""
-#: cache.c:923
+#: cache.c:1019
#, 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:925
+#: cache.c:1021
#, c-format
msgid "queries forwarded %u, queries answered locally %u"
msgstr ""
-#: cache.c:948
+#: cache.c:1044
#, c-format
msgid "server %s#%d: queries sent %u, retried or failed %u"
msgstr ""
@@ -88,408 +88,416 @@ msgstr "nu pot încărca %s: %n"
msgid "infinite"
msgstr "infinit"
-#: option.c:219
+#: option.c:223
msgid "Specify local address(es) to listen on."
msgstr "Specificaţi adresele locale deservite."
-#: option.c:220
+#: option.c:224
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Afişează adresele IP ale maşinilor în domeniul dat."
-#: option.c:221
+#: option.c:225
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Simulează căutări după adresă pentru domenii de adresă private (RFC1918)."
-#: option.c:222
+#: option.c:226
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Interpretează adresa IP ca NXDOMAIN (împotriva manipulărilor Verisign)"
-#: option.c:223
+#: option.c:227
#, 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:224
+#: option.c:228
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Specifică fişier de configurare (implicit e %s)."
-#: option.c:225
+#: option.c:229
msgid "Do NOT fork into the background: run in debug mode."
msgstr "NU porneşte în fundal: rulează în modul depanare."
-#: option.c:226
+#: option.c:230
msgid "Do NOT forward queries with no domain part."
msgstr "NU înainta cererile ce nu conţin domeniu DNS."
-#: option.c:227
+#: option.c:231
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:228
+#: option.c:232
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Adaugă numelor simple din /etc/hosts numele domeniului ca sufix."
-#: option.c:229
+#: option.c:233
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Nu inainta cereri DNS defecte provenite de la maÅŸini Windows."
-#: option.c:230
+#: option.c:234
msgid "Enable DHCP in the range given with lease duration."
msgstr "Activează DHCP în domeniul dat cu durată limitată de împrumut."
-#: option.c:231
+#: option.c:235
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Rulează sub acest grup după pornire (implicit e %s)."
-#: option.c:232
+#: option.c:236
msgid "Set address or hostname for a specified machine."
msgstr "Schimbă adresa sau numele maşinii specificate."
-#: option.c:233
+#: option.c:237
msgid "Read DHCP host specs from file"
msgstr ""
-#: option.c:234
+#: option.c:238
msgid "Read DHCP option specs from file"
msgstr ""
-#: option.c:235
+#: option.c:239
#, c-format
msgid "Do NOT load %s file."
msgstr "Nu încarcă fişierul %s."
-#: option.c:236
+#: option.c:240
#, 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:237
+#: option.c:241
msgid "Specify interface(s) to listen on."
msgstr "Specifică interfeţele deservite."
-#: option.c:238
+#: option.c:242
msgid "Specify interface(s) NOT to listen on."
msgstr "Specifică interfeţele NE-deservite."
-#: option.c:239
+#: option.c:243
#, fuzzy
msgid "Map DHCP user class to tag."
msgstr "Leagă clasa de utilizator DHCP cu grup de opţiuni."
-#: option.c:240
+#: option.c:244
msgid "Map RFC3046 circuit-id to tag."
msgstr ""
-#: option.c:241
+#: option.c:245
msgid "Map RFC3046 remote-id to tag."
msgstr ""
-#: option.c:242
+#: option.c:246
msgid "Map RFC3993 subscriber-id to tag."
msgstr ""
-#: option.c:243
+#: option.c:247
#, fuzzy
msgid "Don't do DHCP for hosts with tag set."
msgstr "Nu furniza DHCP maşinilor din grupul de opţiuni."
-#: option.c:244
+#: option.c:248
#, fuzzy
msgid "Force broadcast replies for hosts with tag set."
msgstr "Nu furniza DHCP maşinilor din grupul de opţiuni."
-#: option.c:245
+#: option.c:249
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:246
+#: option.c:250
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:247
+#: option.c:251
#, 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:248
+#: option.c:252
msgid "Return MX records for local hosts."
msgstr "Răspunde cu întregistrări MX pentru maşini locale."
-#: option.c:249
+#: option.c:253
msgid "Specify an MX record."
msgstr "Specifică o înregistrare MX."
-#: option.c:250
+#: option.c:254
msgid "Specify BOOTP options to DHCP server."
msgstr "Specifică opţiuni BOOTP serverului DHCP."
-#: option.c:251
+#: option.c:255
#, 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:252
+#: option.c:256
msgid "Do NOT cache failed search results."
msgstr "NU memora rezultatele de căutare DNS eşuatată."
-#: option.c:253
+#: option.c:257
#, 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:254
+#: option.c:258
#, fuzzy
msgid "Specify options to be sent to DHCP clients."
msgstr "Configurează opţiuni în plusce trebuie trimise clienţilor DHCP."
-#: option.c:255
+#: option.c:259
msgid "DHCP option sent even if the client does not request it."
msgstr ""
-#: option.c:256
+#: option.c:260
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:257
+#: option.c:261
#, 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:258
+#: option.c:262
#, fuzzy
msgid "Log DNS queries."
msgstr "Înregistrează tranzacţiile."
-#: option.c:259
+#: option.c:263
#, fuzzy
msgid "Force the originating port for upstream DNS queries."
msgstr "Forţează acest port pentru datele ce pleacă."
-#: option.c:260
+#: option.c:264
msgid "Do NOT read resolv.conf."
msgstr "NU citi fiÅŸierul resolv.conf"
-#: option.c:261
+#: option.c:265
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Specifică calea către resolv.conf (implicit e %s)."
-#: option.c:262
+#: option.c:266
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Specifică adresele server(elor) superioare cu domenii opţionale."
-#: option.c:263
+#: option.c:267
msgid "Never forward queries to specified domains."
msgstr "Nu înaintează cererile spre domeniile specificate."
-#: option.c:264
+#: option.c:268
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Specifică domeniul de transmis prin DHCP."
-#: option.c:265
+#: option.c:269
msgid "Specify default target in an MX record."
msgstr "Specifică o ţintă într-o înregistrare MX."
-#: option.c:266
+#: option.c:270
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:267
+#: option.c:271
#, fuzzy
msgid "Specify time-to-live in seconds for negative caching."
msgstr "Specifică TTL în secunde pentru răspunsurile din /etc/hosts."
-#: option.c:268
+#: option.c:272
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Rulează sub acest utilizator după pornire. (implicit e %s)."
-#: option.c:269
+#: option.c:273
#, 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:270
+#: option.c:274
msgid "Display dnsmasq version and copyright information."
msgstr "Afişează versiunea dnsmasq şi drepturile de autor."
-#: option.c:271
+#: option.c:275
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Traduce adresele IPv4 de la serverele DNS superioare."
-#: option.c:272
+#: option.c:276
msgid "Specify a SRV record."
msgstr "Specifică o înregistrare SRV."
-#: option.c:273
+#: option.c:277
msgid "Display this message. Use --help dhcp for known DHCP options."
msgstr ""
-#: option.c:274
+#: option.c:278
#, fuzzy, c-format
msgid "Specify path of PID file (defaults to %s)."
msgstr "Specifică o cale pentru fişierul PID. (implicit %s)."
-#: option.c:275
+#: option.c:279
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)."
-#: option.c:276
+#: option.c:280
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:277
+#: option.c:281
msgid "Specify TXT DNS record."
msgstr "Specifică o înregistrare TXT."
-#: option.c:278
+#: option.c:282
#, fuzzy
msgid "Specify PTR DNS record."
msgstr "Specifică o înregistrare TXT."
-#: option.c:279
+#: option.c:283
msgid "Give DNS name to IPv4 address of interface."
msgstr ""
-#: option.c:280
+#: option.c:284
msgid "Bind only to interfaces in use."
msgstr "Ascultă doar pe interfeţele active."
-#: option.c:281
+#: option.c:285
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Citeşte informaţii DHCP statice despre maşină din %s."
-#: option.c:282
+#: option.c:286
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Activeaza interfaţa DBus pentru configurarea serverelor superioare."
-#: option.c:283
+#: option.c:287
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Nu activează DHCP ci doar DNS pe această interfaţă."
-#: option.c:284
+#: option.c:288
msgid "Enable dynamic address allocation for bootp."
msgstr "Activează alocarea dinamică a adreselor pentru BOOTP."
-#: option.c:285
+#: option.c:289
#, 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:287
+#: option.c:291
msgid "Treat DHCP requests on aliases as arriving from interface."
msgstr ""
-#: option.c:289
+#: option.c:293
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:290
+#: option.c:294
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
-#: option.c:291
+#: option.c:295
msgid "Read configuration from all the files in this directory."
msgstr ""
-#: option.c:292
+#: option.c:296
#, fuzzy
msgid "Log to this syslog facility or file. (defaults to DAEMON)"
msgstr "Rulează sub acest utilizator după pornire. (implicit e %s)."
-#: option.c:293
+#: option.c:297
msgid "Do not use leasefile."
msgstr ""
-#: option.c:294
+#: option.c:298
#, 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:295
+#: option.c:299
#, c-format
msgid "Clear DNS cache when reloading %s."
msgstr ""
-#: option.c:296
+#: option.c:300
msgid "Ignore hostnames provided by DHCP clients."
msgstr ""
-#: option.c:297
+#: option.c:301
msgid "Do NOT reuse filename and server fields for extra DHCP options."
msgstr ""
-#: option.c:298
+#: option.c:302
msgid "Enable integrated read-only TFTP server."
msgstr ""
-#: option.c:299
+#: option.c:303
msgid "Export files by TFTP only from the specified subtree."
msgstr ""
-#: option.c:300
+#: option.c:304
msgid "Add client IP address to tftp-root."
msgstr ""
-#: option.c:301
+#: option.c:305
msgid "Allow access only to files owned by the user running dnsmasq."
msgstr ""
-#: option.c:302
+#: option.c:306
#, 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:303
+#: option.c:307
msgid "Disable the TFTP blocksize extension."
msgstr ""
-#: option.c:304
+#: option.c:308
msgid "Ephemeral port range for use by TFTP transfers."
msgstr ""
-#: option.c:305
+#: option.c:309
msgid "Extra logging for DHCP."
msgstr ""
-#: option.c:306
+#: option.c:310
msgid "Enable async. logging; optionally set queue length."
msgstr ""
-#: option.c:307
+#: option.c:311
msgid "Stop DNS rebinding. Filter private IP ranges when resolving."
msgstr ""
-#: option.c:308
+#: option.c:312
msgid "Always perform DNS queries to all servers."
msgstr ""
-#: option.c:309
+#: option.c:313
msgid "Set tag if client includes option in request."
msgstr ""
-#: option.c:310
+#: option.c:314
msgid "Use alternative ports for DHCP."
msgstr ""
-#: option.c:311
+#: option.c:315
msgid "Run lease-change script as this user."
msgstr ""
-#: option.c:312
+#: option.c:316
#, fuzzy
msgid "Specify NAPTR DNS record."
msgstr "Specifică o înregistrare TXT."
-#: option.c:313
+#: option.c:317
msgid "Specify lowest port available for DNS query transmission."
msgstr ""
-#: option.c:574
+#: option.c:318
+msgid "Use only fully qualified domain names for DHCP clients."
+msgstr ""
+
+#: option.c:319
+msgid "Specify alias name for LOCAL DNS name."
+msgstr ""
+
+#: option.c:580
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -498,203 +506,207 @@ msgstr ""
"Utilizare: dnsmasq [opţiuni]\n"
"\n"
-#: option.c:576
+#: option.c:582
#, 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:578
+#: option.c:584
#, fuzzy, c-format
msgid "Valid options are:\n"
msgstr "Opţiunile valide sunt:\n"
-#: option.c:618
+#: option.c:624
#, c-format
msgid "Known DHCP options:\n"
msgstr ""
-#: option.c:691
+#: option.c:697
msgid "bad dhcp-option"
msgstr "dhcp-option invalid"
-#: option.c:747
+#: option.c:753
#, fuzzy
msgid "bad IP address"
msgstr "citesc %s - %d adrese"
-#: option.c:845
+#: option.c:851
msgid "bad domain in dhcp-option"
msgstr "domeniu DNS invalid în declaraţia dhcp-option"
-#: option.c:903
+#: option.c:909
msgid "dhcp-option too long"
msgstr "declararea dhcp-option este prea lungă"
-#: option.c:932
+#: option.c:938
msgid "illegal repeated flag"
msgstr ""
-#: option.c:940
+#: option.c:946
msgid "illegal repeated keyword"
msgstr ""
-#: option.c:974
+#: option.c:983
#, fuzzy, c-format
msgid "cannot access directory %s: %s"
msgstr "nu pot citi %s: %s"
-#: option.c:993 tftp.c:348
+#: option.c:1002 tftp.c:348
#, fuzzy, c-format
msgid "cannot access %s: %s"
msgstr "nu pot citi %s: %s"
-#: option.c:1030
+#: option.c:1040
msgid "only one dhcp-hostsfile allowed"
msgstr ""
-#: option.c:1037
+#: option.c:1047
msgid "only one dhcp-optsfile allowed"
msgstr ""
-#: option.c:1081
+#: option.c:1091
msgid "bad MX preference"
msgstr "preferinţă MX invalidă"
-#: option.c:1085
+#: option.c:1095
msgid "bad MX name"
msgstr "nume MX invalid"
-#: option.c:1099
+#: option.c:1109
msgid "bad MX target"
msgstr "ţintă MX invalidă"
-#: option.c:1110
+#: option.c:1120
msgid "cannot run scripts under uClinux"
msgstr ""
-#: option.c:1303 option.c:1311
+#: option.c:1352 option.c:1360
msgid "bad port"
msgstr "port invalid"
-#: option.c:1331 option.c:1356
+#: option.c:1380 option.c:1405
msgid "interface binding not supported"
msgstr ""
-#: option.c:1474
+#: option.c:1523
#, fuzzy
msgid "bad port range"
msgstr "port invalid"
-#: option.c:1491
+#: option.c:1540
msgid "bad bridge-interface"
msgstr ""
-#: option.c:1532
+#: option.c:1581
msgid "bad dhcp-range"
msgstr "dhcp-range invalid"
-#: option.c:1558
+#: option.c:1607
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1598
+#: option.c:1647
msgid "inconsistent DHCP range"
msgstr "domeniu DHCP inconsistent"
-#: option.c:1766
+#: option.c:1819
#, fuzzy
msgid "bad DHCP host name"
msgstr "nume MX invalid"
-#: option.c:1938 option.c:2181
+#: option.c:1998 option.c:2270
msgid "invalid port number"
msgstr "număr de port invalid"
-#: option.c:2024
+#: option.c:2093
#, fuzzy
msgid "bad interface name"
msgstr "nume MX invalid"
-#: option.c:2044
+#: option.c:2116
+msgid "duplicate CNAME"
+msgstr ""
+
+#: option.c:2133
#, fuzzy
msgid "bad PTR record"
msgstr "înregistrare SRV invalidă"
-#: option.c:2074
+#: option.c:2163
#, fuzzy
msgid "bad NAPTR record"
msgstr "înregistrare SRV invalidă"
-#: option.c:2100
+#: option.c:2189
msgid "TXT record string too long"
msgstr "şirul de caractere pentru înregistrarea TXT este prea lung"
-#: option.c:2104
+#: option.c:2193
msgid "bad TXT record"
msgstr "înregistrare TXT invalidă"
-#: option.c:2164
+#: option.c:2253
msgid "bad SRV record"
msgstr "înregistrare SRV invalidă"
-#: option.c:2173
+#: option.c:2262
msgid "bad SRV target"
msgstr "ţintă SRV invalidă"
-#: option.c:2188
+#: option.c:2277
msgid "invalid priority"
msgstr "prioritate invalidă"
-#: option.c:2195
+#: option.c:2284
msgid "invalid weight"
msgstr "pondere invalidă"
-#: option.c:2231
+#: option.c:2320
#, c-format
msgid "files nested too deep in %s"
msgstr ""
-#: option.c:2239 tftp.c:503
+#: option.c:2328 tftp.c:503
#, c-format
msgid "cannot read %s: %s"
msgstr "nu pot citi %s: %s"
-#: option.c:2300
+#: option.c:2389
msgid "missing \""
msgstr "lipseÅŸte \""
-#: option.c:2347
+#: option.c:2436
msgid "bad option"
msgstr "opţiune invalidă"
-#: option.c:2349
+#: option.c:2438
msgid "extraneous parameter"
msgstr "parametru nerecunoscut"
-#: option.c:2351
+#: option.c:2440
msgid "missing parameter"
msgstr "parametru lipsa"
-#: option.c:2359
+#: option.c:2448
msgid "error"
msgstr "eroare"
-#: option.c:2365
+#: option.c:2454
#, c-format
msgid "%s at line %d of %%s"
msgstr "%s la linia %d din %%s"
-#: option.c:2405 option.c:2435
+#: option.c:2502 option.c:2532
#, fuzzy, c-format
msgid "read %s"
msgstr "citesc %s"
-#: option.c:2502
+#: option.c:2599
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "dnsmasq versiunea %s %s\n"
-#: option.c:2503
+#: option.c:2600
#, c-format
msgid ""
"Compile time options %s\n"
@@ -703,57 +715,61 @@ msgstr ""
"Opţiuni cu care a fost compilat %s\n"
"\n"
-#: option.c:2504
+#: option.c:2601
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Acest program vine FÄ‚RÄ‚ NICI O GARANÅ¢IE.\n"
-#: option.c:2505
+#: option.c:2602
#, 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:2506
+#: option.c:2603
#, 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:2517
+#: option.c:2614
msgid "try --help"
msgstr ""
-#: option.c:2519
+#: option.c:2616
msgid "try -w"
msgstr ""
-#: option.c:2522
+#: option.c:2619
#, fuzzy, c-format
msgid "bad command line options: %s"
msgstr "opţiuni în linie de comandă invalide: %s."
-#: option.c:2563
+#: option.c:2660
#, c-format
msgid "cannot get host-name: %s"
msgstr "nu pot citi numele maÅŸinii: %s"
-#: option.c:2591
+#: option.c:2688
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:2601
+#: option.c:2698
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:2604 network.c:724
+#: option.c:2701 network.c:721
#, fuzzy, c-format
msgid "failed to read %s: %s"
msgstr "nu pot citi %s: %n"
-#: option.c:2622
+#: option.c:2719
#, 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:2740
+msgid "there must be a default domain when --dhcp-fqdn is set"
+msgstr ""
+
#: forward.c:405
#, c-format
msgid "nameserver %s refused to do a recursive query"
@@ -763,37 +779,12 @@ msgstr "serverul DNS %s refuză interogările recursive"
msgid "possible DNS-rebind attack detected"
msgstr ""
-#: isc.c:77 dnsmasq.c:889
-#, fuzzy, c-format
-msgid "failed to access %s: %s"
-msgstr "accesarea serverului %s a eÅŸuat: %n"
-
-#: isc.c:93
-#, fuzzy, c-format
-msgid "failed to load %s: %s"
-msgstr "nu pot încărca %s: %n"
-
-#: isc.c:97 dnsmasq.c:911
-#, c-format
-msgid "reading %s"
-msgstr "citesc %s"
-
-#: isc.c:119
-#, c-format
-msgid "bad name in %s"
-msgstr "nume invalid în %s"
-
-#: isc.c:181
-#, c-format
-msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
-msgstr "ÃŽmprumutul DHCP pentru %s va fi ignorat deoarece are domeniu invalid"
-
#: network.c:45
#, fuzzy, c-format
msgid "unknown interface %s in bridge-interface"
msgstr "interfaţă necunoscută %s"
-#: network.c:389 dnsmasq.c:194
+#: network.c:389 dnsmasq.c:186
#, c-format
msgid "failed to create listening socket: %s"
msgstr "creearea socket-ului de ascultare a eÅŸuat: %s"
@@ -818,254 +809,260 @@ msgstr "ascultarea pe socket a eÅŸuat: %s"
msgid "failed to create TFTP socket: %s"
msgstr "creearea socket-ului de ascultare a eÅŸuat: %s"
-#: network.c:631
+#: network.c:628
#, fuzzy, c-format
msgid "failed to bind server socket for %s: %s"
msgstr "activarea socket-ului de ascultare pentru %s a eÅŸuat: %s"
-#: network.c:664
+#: network.c:661
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorăm serverul DNS %s - interfaţă locală"
-#: network.c:675
+#: network.c:672
#, fuzzy, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
msgstr "ignorăm serverul DNS %s - nu pot creea/activa socket-ul: %s"
-#: network.c:690
+#: network.c:687
msgid "unqualified"
msgstr "invalid"
-#: network.c:690
+#: network.c:687
msgid "names"
msgstr ""
-#: network.c:692
+#: network.c:689
msgid "default"
msgstr ""
-#: network.c:694
+#: network.c:691
msgid "domain"
msgstr "domeniu"
-#: network.c:697
+#: network.c:694
#, c-format
msgid "using local addresses only for %s %s"
msgstr "folosim adresele locale doar pentru %S %s"
-#: network.c:699
+#: network.c:696
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "folosim serverul DNS %s#%d pentru %s %s"
-#: network.c:702
+#: network.c:699
#, fuzzy, c-format
msgid "using nameserver %s#%d(via %s)"
msgstr "folosim serverul DNS %s#%d"
-#: network.c:704
+#: network.c:701
#, c-format
msgid "using nameserver %s#%d"
msgstr "folosim serverul DNS %s#%d"
-#: dnsmasq.c:122
-msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
-msgstr "Integrarea cu ISC dhcpd nu este disponibilă:puneţi HAVE_ISC_HEADER în src/config.h"
-
-#: dnsmasq.c:144
+#: dnsmasq.c:136
#, 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:149
+#: dnsmasq.c:141
msgid "asychronous logging is not available under Solaris"
msgstr ""
-#: dnsmasq.c:165
+#: dnsmasq.c:157
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr "trebuie specificată exact o singură interfaţă pe sistemele defectece nu au IP_RECVIF"
-#: dnsmasq.c:175
+#: dnsmasq.c:167
#, c-format
msgid "failed to find list of interfaces: %s"
msgstr "enumerarea interfeţelor a eşuat: %s"
-#: dnsmasq.c:183
+#: dnsmasq.c:175
#, c-format
msgid "unknown interface %s"
msgstr "interfaţă necunoscută %s"
-#: dnsmasq.c:189
+#: dnsmasq.c:181
#, c-format
msgid "no interface with address %s"
msgstr "nu exista interfaţă pentru adresa %s"
-#: dnsmasq.c:206 dnsmasq.c:663
+#: dnsmasq.c:198 dnsmasq.c:652
#, c-format
msgid "DBus error: %s"
msgstr "eroare DBus: %s"
-#: dnsmasq.c:209
+#: dnsmasq.c:201
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:233
+#: dnsmasq.c:225
#, c-format
msgid "unknown user or group: %s"
msgstr ""
-#: dnsmasq.c:290
+#: dnsmasq.c:282
#, c-format
msgid "cannot chdir to filesystem root: %s"
msgstr ""
-#: dnsmasq.c:302
+#: dnsmasq.c:294
#, c-format
msgid "cannot fork into background: %s"
msgstr ""
-#: dnsmasq.c:451
+#: dnsmasq.c:443
#, fuzzy, c-format
msgid "started, version %s DNS disabled"
msgstr "am pornit, versiunea %s memorie temporară dezactivată"
-#: dnsmasq.c:453
+#: dnsmasq.c:445
#, c-format
msgid "started, version %s cachesize %d"
msgstr "am ponit, versiunea %s memorie temporară %d"
-#: dnsmasq.c:455
+#: dnsmasq.c:447
#, c-format
msgid "started, version %s cache disabled"
msgstr "am pornit, versiunea %s memorie temporară dezactivată"
-#: dnsmasq.c:457
+#: dnsmasq.c:449
#, c-format
msgid "compile time options: %s"
msgstr "compilat cu opţiunile: %s"
-#: dnsmasq.c:463
+#: dnsmasq.c:455
msgid "DBus support enabled: connected to system bus"
msgstr "suportul DBus activ: sunt conectat la magistrala sistem"
-#: dnsmasq.c:465
+#: dnsmasq.c:457
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:470
+#: dnsmasq.c:462
#, fuzzy, c-format
msgid "warning: failed to change owner of %s: %s"
msgstr "încărcarea numelor din %s: %m a eşuat"
-#: dnsmasq.c:474
+#: dnsmasq.c:466
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "specific opţiunea --bind-interfaces din cauza limitărilor SO"
-#: dnsmasq.c:479
+#: dnsmasq.c:471
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "atenţie: interfaţa %s nu există momentan"
-#: dnsmasq.c:484
+#: dnsmasq.c:476
msgid "warning: ignoring resolv-file flag because no-resolv is set"
msgstr ""
-#: dnsmasq.c:487
+#: dnsmasq.c:479
#, fuzzy
msgid "warning: no upstream servers configured"
msgstr "configurăm serverele superioare prin Dbus"
-#: dnsmasq.c:491
+#: dnsmasq.c:483
#, c-format
msgid "asynchronous logging enabled, queue limit is %d messages"
msgstr ""
-#: dnsmasq.c:503
+#: dnsmasq.c:495
#, 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:504
+#: dnsmasq.c:496
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, domeniu IP %s -- %s, timpul reînoirii %s"
-#: dnsmasq.c:518
+#: dnsmasq.c:510
msgid "root is "
msgstr ""
-#: dnsmasq.c:518
+#: dnsmasq.c:510
#, fuzzy
msgid "enabled"
msgstr "dezactivat"
-#: dnsmasq.c:520
+#: dnsmasq.c:512
msgid "secure mode"
msgstr ""
-#: dnsmasq.c:546
+#: dnsmasq.c:538
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr ""
-#: dnsmasq.c:665
+#: dnsmasq.c:654
msgid "connected to system DBus"
msgstr "magistrala sistem Dbus conectată"
-#: dnsmasq.c:753
+#: dnsmasq.c:742
#, fuzzy, c-format
msgid "failed to create helper: %s"
msgstr "nu pot citi %s: %n"
-#: dnsmasq.c:756
+#: dnsmasq.c:745
#, c-format
msgid "setting capabilities failed: %s"
msgstr ""
# for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
-#: dnsmasq.c:760
+#: dnsmasq.c:749
#, fuzzy, c-format
msgid "failed to change user-id to %s: %s"
msgstr "încărcarea numelor din %s: %m a eşuat"
# for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
-#: dnsmasq.c:765
+#: dnsmasq.c:754
#, fuzzy, c-format
msgid "failed to change group-id to %s: %s"
msgstr "încărcarea numelor din %s: %m a eşuat"
-#: dnsmasq.c:768
+#: dnsmasq.c:757
#, fuzzy, c-format
msgid "failed to open pidfile %s: %s"
msgstr "nu pot citi %s: %n"
-#: dnsmasq.c:771
+#: dnsmasq.c:760
#, fuzzy, c-format
msgid "cannot open %s: %s"
msgstr "nu pot deschide %s:%s"
-#: dnsmasq.c:822
+#: dnsmasq.c:811
#, c-format
msgid "child process killed by signal %d"
msgstr ""
-#: dnsmasq.c:826
+#: dnsmasq.c:815
#, c-format
msgid "child process exited with status %d"
msgstr ""
-#: dnsmasq.c:830
+#: dnsmasq.c:819
#, fuzzy, c-format
msgid "failed to execute %s: %s"
msgstr "accesarea serverului %s a eÅŸuat: %n"
-#: dnsmasq.c:871
+#: dnsmasq.c:860
msgid "exiting on receipt of SIGTERM"
msgstr "am primit SIGTERM, am terminat"
-#: dnsmasq.c:922
+#: dnsmasq.c:878
+#, fuzzy, c-format
+msgid "failed to access %s: %s"
+msgstr "accesarea serverului %s a eÅŸuat: %n"
+
+#: dnsmasq.c:900
+#, c-format
+msgid "reading %s"
+msgstr "citesc %s"
+
+#: dnsmasq.c:911
#, 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"
@@ -1105,42 +1102,32 @@ msgstr ""
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:709
+#: dhcp.c:719
#, fuzzy, c-format
msgid "failed to read %s:%s"
msgstr "nu pot citi %s: %n"
-#: dhcp.c:744
+#: dhcp.c:755
#, c-format
msgid "bad line at %s line %d"
msgstr "linie invalidă în %s rândul %d"
-#: dhcp.c:847
+#: dhcp.c:870
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
-#: dhcp.c:850
+#: dhcp.c:873
#, fuzzy, c-format
msgid "duplicate IP address %s in %s."
msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
-#: dhcp.c:858
-#, fuzzy, c-format
-msgid "illegal domain %s in dhcp-config directive."
-msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
-
-#: dhcp.c:860
-#, c-format
-msgid "illegal domain %s in %s."
-msgstr ""
-
-#: dhcp.c:899
+#: dhcp.c:916
#, c-format
msgid "%s has more than one address in hostsfile, using %s for DHCP"
msgstr ""
-#: dhcp.c:904
+#: dhcp.c:921
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "adresă IP duplicat %s (%s) în declaraţia dhcp-config."
@@ -1169,151 +1156,160 @@ msgstr ""
msgid "failed to write %s: %s (retry in %us)"
msgstr "nu pot citi %s: %n"
-#: rfc2131.c:310
+#: rfc2131.c:315
#, 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:311
+#: rfc2131.c:316
msgid "with subnet selector"
msgstr "cu selectorul de subreţea"
-#: rfc2131.c:311
+#: rfc2131.c:316
msgid "via"
msgstr "prin"
-#: rfc2131.c:322
+#: rfc2131.c:327
#, c-format
msgid "DHCP packet: transaction-id is %u"
msgstr ""
-#: rfc2131.c:327
+#: rfc2131.c:332
#, c-format
msgid "Available DHCP subnet: %s/%s"
msgstr ""
-#: rfc2131.c:329
+#: rfc2131.c:334
#, c-format
msgid "Available DHCP range: %s -- %s"
msgstr ""
-#: rfc2131.c:357 rfc2131.c:388
+#: rfc2131.c:362 rfc2131.c:396
msgid "disabled"
msgstr "dezactivat"
-#: rfc2131.c:400 rfc2131.c:892
+#: rfc2131.c:411 rfc2131.c:928
msgid "address in use"
msgstr "adresa este folosită"
-#: rfc2131.c:403
-msgid "no address configured"
-msgstr "adresă lipsă"
-
-#: rfc2131.c:416 rfc2131.c:747
+#: rfc2131.c:425 rfc2131.c:765
msgid "no address available"
msgstr "nici o adresă disponibilă"
-#: rfc2131.c:425 rfc2131.c:902
-msgid "no leases left"
-msgstr "nu mai am de unde să împrumut"
-
-#: rfc2131.c:428 rfc2131.c:866
+#: rfc2131.c:432 rfc2131.c:891
msgid "wrong network"
msgstr "reţea greşită"
-#: rfc2131.c:530
-#, c-format
-msgid "Ignoring domain %s for DHCP host name %s"
-msgstr ""
+#: rfc2131.c:445
+msgid "no address configured"
+msgstr "adresă lipsă"
+
+#: rfc2131.c:451 rfc2131.c:941
+msgid "no leases left"
+msgstr "nu mai am de unde să împrumut"
-#: rfc2131.c:624
+#: rfc2131.c:640
#, c-format
msgid "Vendor class: %s"
msgstr ""
-#: rfc2131.c:626
+#: rfc2131.c:642
#, c-format
msgid "User class: %s"
msgstr ""
-#: rfc2131.c:667
+#: rfc2131.c:683
#, fuzzy, c-format
msgid "disabling DHCP static address %s for %s"
msgstr "dezactivăm adresele DHCP statice %s"
-#: rfc2131.c:688
+#: rfc2131.c:704
msgid "unknown lease"
msgstr "împrumut necunoscut"
-#: rfc2131.c:697 rfc2131.c:1018
+#: rfc2131.c:713 rfc2131.c:1058
msgid "ignored"
msgstr "ignorat"
-#: rfc2131.c:718
+#: rfc2131.c:736
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:728
+#: rfc2131.c:746
#, c-format
msgid "not using configured address %s because it is in use by the server or relay"
msgstr ""
-#: rfc2131.c:731
+#: rfc2131.c:749
#, c-format
msgid "not using configured address %s because it was previously declined"
msgstr ""
-#: rfc2131.c:745 rfc2131.c:895
+#: rfc2131.c:763 rfc2131.c:934
msgid "no unique-id"
msgstr ""
-#: rfc2131.c:825
+#: rfc2131.c:831
+msgid "wrong server-ID"
+msgstr ""
+
+#: rfc2131.c:850
msgid "wrong address"
msgstr "adresă greşită"
-#: rfc2131.c:842
+#: rfc2131.c:867
msgid "lease not found"
msgstr "împrumutul nu a fost găsit"
-#: rfc2131.c:874
+#: rfc2131.c:899
msgid "address not available"
msgstr "adresă indisponibilă"
-#: rfc2131.c:885
+#: rfc2131.c:910
msgid "static lease available"
msgstr "împrumut static este disponibil"
-#: rfc2131.c:889
+#: rfc2131.c:914
msgid "address reserved"
msgstr "adresă rezervată"
-#: rfc2131.c:1307
+#: rfc2131.c:922
+#, c-format
+msgid "abandoning lease to %s of %s"
+msgstr ""
+
+#: rfc2131.c:1356
#, c-format
msgid "tags: %s"
msgstr ""
-#: rfc2131.c:1394
+#: rfc2131.c:1443
#, 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:1564
+#: rfc2131.c:1599
+#, c-format
+msgid "Ignoring domain %s for DHCP host name %s"
+msgstr ""
+
+#: rfc2131.c:1617
#, fuzzy, c-format
msgid "requested options: %s"
msgstr "compilat cu opţiunile: %s"
-#: rfc2131.c:1613
+#: rfc2131.c:1666
#, fuzzy, c-format
msgid "next server: %s"
msgstr "eroare DBus: %s"
-#: rfc2131.c:1637
+#: rfc2131.c:1690
#, c-format
msgid "bootfile name: %s"
msgstr ""
-#: rfc2131.c:1640
+#: rfc2131.c:1693
#, c-format
msgid "server name: %s"
msgstr ""
@@ -1393,6 +1389,23 @@ msgstr ""
msgid "FAILED to start up"
msgstr "pornirea A EÅžUAT"
+#, fuzzy
+#~ msgid "failed to load %s: %s"
+#~ msgstr "nu pot încărca %s: %n"
+
+#~ msgid "bad name in %s"
+#~ msgstr "nume invalid în %s"
+
+#~ msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
+#~ msgstr "ÃŽmprumutul DHCP pentru %s va fi ignorat deoarece are domeniu invalid"
+
+#~ msgid "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
+#~ msgstr "Integrarea cu ISC dhcpd nu este disponibilă:puneţi HAVE_ISC_HEADER în src/config.h"
+
+#, fuzzy
+#~ msgid "illegal domain %s in dhcp-config directive."
+#~ msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
+
#~ msgid "running as root"
#~ msgstr "rulez ca root"
diff --git a/src/bpf.c b/src/bpf.c
index 060cfdd..aed0cad 100644
--- a/src/bpf.c
+++ b/src/bpf.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/src/cache.c b/src/cache.c
index d9fe548..d3c7583 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 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
@@ -642,150 +642,224 @@ static void add_hosts_entry(struct crec *cache, struct all_addr *addr, int addrl
unsigned short flags, int index, int addr_dup)
{
struct crec *lookup = cache_find_by_name(NULL, cache->name.sname, 0, flags & (F_IPV4 | F_IPV6));
- int i;
-
+ int i, nameexists = 0;
+ struct cname *a;
+
/* Remove duplicates in hosts files. */
- if (lookup && (lookup->flags & F_HOSTS) &&
- memcmp(&lookup->addr.addr, addr, addrlen) == 0)
- free(cache);
- else
+ if (lookup && (lookup->flags & F_HOSTS))
{
- /* Ensure there is only one address -> name mapping (first one trumps)
- We do this by steam here, first we see if the address is the same as
- the last one we saw, which eliminates most in the case of an ad-block
- file with thousands of entries for the same address.
- Then we search and bail at the first matching address that came from
- a HOSTS file. Since the first host entry gets reverse, we know
- then that it must exist without searching exhaustively for it. */
-
- if (addr_dup)
- flags &= ~F_REVERSE;
- else
- for (i=0; i<hash_size; i++)
- {
- for (lookup = hash_table[i]; lookup; lookup = lookup->hash_next)
- if ((lookup->flags & F_HOSTS) &&
- (lookup->flags & flags & (F_IPV4 | F_IPV6)) &&
- memcmp(&lookup->addr.addr, addr, addrlen) == 0)
- {
- flags &= ~F_REVERSE;
- break;
- }
- if (lookup)
+ nameexists = 1;
+ if (memcmp(&lookup->addr.addr, addr, addrlen) == 0)
+ {
+ free(cache);
+ return;
+ }
+ }
+
+ /* Ensure there is only one address -> name mapping (first one trumps)
+ We do this by steam here, first we see if the address is the same as
+ the last one we saw, which eliminates most in the case of an ad-block
+ file with thousands of entries for the same address.
+ Then we search and bail at the first matching address that came from
+ a HOSTS file. Since the first host entry gets reverse, we know
+ then that it must exist without searching exhaustively for it. */
+
+ if (addr_dup)
+ flags &= ~F_REVERSE;
+ else
+ for (i=0; i<hash_size; i++)
+ {
+ for (lookup = hash_table[i]; lookup; lookup = lookup->hash_next)
+ if ((lookup->flags & F_HOSTS) &&
+ (lookup->flags & flags & (F_IPV4 | F_IPV6)) &&
+ memcmp(&lookup->addr.addr, addr, addrlen) == 0)
+ {
+ flags &= ~F_REVERSE;
break;
- }
+ }
+ if (lookup)
+ break;
+ }
+
+ cache->flags = flags;
+ cache->uid = index;
+ memcpy(&cache->addr.addr, addr, addrlen);
+ cache_hash(cache);
+
+ /* don't need to do alias stuff for second and subsequent addresses. */
+ if (!nameexists)
+ for (a = daemon->cnames; a; a = a->next)
+ if (hostname_isequal(cache->name.sname, a->target) &&
+ (lookup = whine_malloc(sizeof(struct crec) + strlen(a->alias)+1-SMALLDNAME)))
+ {
+ lookup->flags = F_FORWARD | F_IMMORTAL | F_HOSTS | F_CNAME;
+ strcpy(lookup->name.sname, a->alias);
+ lookup->addr.cname.cache = cache;
+ lookup->addr.cname.uid = index;
+ cache_hash(lookup);
+ }
+}
+
+static int eatspace(FILE *f)
+{
+ int c, nl = 0;
+
+ while (1)
+ {
+ if ((c = getc(f)) == '#')
+ while (c != '\n' && c != EOF)
+ c = getc(f);
+
+ if (c == EOF)
+ return 1;
+
+ if (!isspace(c))
+ {
+ ungetc(c, f);
+ return nl;
+ }
+
+ if (c == '\n')
+ nl = 1;
+ }
+}
+
+static int gettok(FILE *f, char *token)
+{
+ int c, count = 0;
+
+ while (1)
+ {
+ if ((c = getc(f)) == EOF)
+ return (count == 0) ? EOF : 1;
+
+ if (isspace(c) || c == '#')
+ {
+ ungetc(c, f);
+ return eatspace(f);
+ }
- cache->flags = flags;
- cache->uid = index;
- memcpy(&cache->addr.addr, addr, addrlen);
- cache_hash(cache);
+ if (count < (MAXDNAME - 1))
+ {
+ token[count++] = c;
+ token[count] = 0;
+ }
}
}
-static int read_hostsfile(char *filename, int opts, char *buff, char *domain_suffix, int index, int cache_size)
+static int read_hostsfile(char *filename, int index, int cache_size)
{
FILE *f = fopen(filename, "r");
- char *line;
+ char *token = daemon->namebuff, *domain_suffix = NULL;
int addr_count = 0, name_count = cache_size, lineno = 0;
- unsigned short flags, saved_flags = 0;
+ unsigned short flags = 0, saved_flags = 0;
struct all_addr addr, saved_addr;
+ int atnl, addrlen = 0, addr_dup;
if (!f)
{
my_syslog(LOG_ERR, _("failed to load names from %s: %s"), filename, strerror(errno));
return 0;
}
-
- while ((line = fgets(buff, MAXDNAME, f)))
+
+ eatspace(f);
+
+ while ((atnl = gettok(f, token)) != EOF)
{
- char *token = strtok(line, " \t\n\r");
- int addrlen, addr_dup = 0;
-
+ addr_dup = 0;
lineno++;
-
- if (!token || (*token == '#'))
- continue;
-
+
#ifdef HAVE_IPV6
if (inet_pton(AF_INET, token, &addr) > 0)
{
flags = F_HOSTS | F_IMMORTAL | F_FORWARD | F_REVERSE | F_IPV4;
addrlen = INADDRSZ;
+ domain_suffix = get_domain(addr.addr.addr4);
}
else if (inet_pton(AF_INET6, token, &addr) > 0)
{
flags = F_HOSTS | F_IMMORTAL | F_FORWARD | F_REVERSE | F_IPV6;
addrlen = IN6ADDRSZ;
+ domain_suffix = daemon->domain_suffix;
}
#else
- if ((addr.addr.addr4.s_addr = inet_addr(token)) != (in_addr_t) -1)
- {
- flags = F_HOSTS | F_IMMORTAL | F_FORWARD | F_REVERSE | F_IPV4;
- addrlen = INADDRSZ;
+ if ((addr.addr.addr4.s_addr = inet_addr(token)) != (in_addr_t) -1)
+ {
+ flags = F_HOSTS | F_IMMORTAL | F_FORWARD | F_REVERSE | F_IPV4;
+ addrlen = INADDRSZ;
+ domain_suffix = get_domain(addr.addr.addr4);
}
#endif
else
{
my_syslog(LOG_ERR, _("bad address at %s line %d"), filename, lineno);
+ while (atnl == 0)
+ atnl = gettok(f, token);
continue;
}
+
+ if (saved_flags == flags && memcmp(&addr, &saved_addr, addrlen) == 0)
+ addr_dup = 1;
+ else
+ {
+ saved_flags = flags;
+ saved_addr = addr;
+ }
+
+ addr_count++;
+
+ /* rehash every 1000 names. */
+ if ((name_count - cache_size) > 1000)
+ {
+ rehash(name_count);
+ cache_size = name_count;
+ }
+
+ while (atnl == 0)
+ {
+ struct crec *cache;
+ int fqdn;
+
+ if ((atnl = gettok(f, token)) == EOF)
+ break;
+
+ fqdn = !!strchr(token, '.');
+
+ if (canonicalise(token))
+ {
+ /* If set, add a version of the name with a default domain appended */
+ if ((daemon->options & OPT_EXPAND) && domain_suffix && !fqdn &&
+ (cache = whine_malloc(sizeof(struct crec) +
+ strlen(token)+2+strlen(domain_suffix)-SMALLDNAME)))
+ {
+ strcpy(cache->name.sname, token);
+ strcat(cache->name.sname, ".");
+ strcat(cache->name.sname, domain_suffix);
+ add_hosts_entry(cache, &addr, addrlen, flags, index, addr_dup);
+ addr_dup = 1;
+ name_count++;
+ }
+ if ((cache = whine_malloc(sizeof(struct crec) + strlen(token)+1-SMALLDNAME)))
+ {
+ strcpy(cache->name.sname, token);
+ add_hosts_entry(cache, &addr, addrlen, flags, index, addr_dup);
+ name_count++;
+ }
+ }
+ else
+ my_syslog(LOG_ERR, _("bad name at %s line %d"), filename, lineno);
+ }
+ }
- if (saved_flags == flags && memcmp(&addr, &saved_addr, addrlen) == 0)
- addr_dup = 1;
- else
- {
- saved_flags = flags;
- saved_addr = addr;
- }
-
- addr_count++;
-
- /* rehash every 1000 names. */
- if ((name_count - cache_size) > 1000)
- {
- rehash(name_count);
- cache_size = name_count;
- }
-
- while ((token = strtok(NULL, " \t\n\r")) && (*token != '#'))
- {
- struct crec *cache;
- int fqdn = !!strchr(token, '.');
- if (canonicalise(token))
- {
- /* If set, add a version of the name with a default domain appended */
- if ((opts & OPT_EXPAND) && domain_suffix && !fqdn &&
- (cache = whine_malloc(sizeof(struct crec) +
- strlen(token)+2+strlen(domain_suffix)-SMALLDNAME)))
- {
- strcpy(cache->name.sname, token);
- strcat(cache->name.sname, ".");
- strcat(cache->name.sname, domain_suffix);
- add_hosts_entry(cache, &addr, addrlen, flags, index, addr_dup);
- addr_dup = 1;
- name_count++;
- }
- if ((cache = whine_malloc(sizeof(struct crec) + strlen(token)+1-SMALLDNAME)))
- {
- strcpy(cache->name.sname, token);
- add_hosts_entry(cache, &addr, addrlen, flags, index, addr_dup);
- name_count++;
- }
- }
- else
- my_syslog(LOG_ERR, _("bad name at %s line %d"), filename, lineno);
- }
- }
-
fclose(f);
rehash(name_count);
-
+
my_syslog(LOG_INFO, _("read %s - %d addresses"), filename, addr_count);
-
+
return name_count;
}
-void cache_reload(int opts, char *buff, char *domain_suffix, struct hostsfile *addn_hosts)
+void cache_reload(struct hostsfile *addn_hosts)
{
struct crec *cache, **up, *tmp;
int i, total_size = daemon->cachesize;
@@ -815,18 +889,18 @@ void cache_reload(int opts, char *buff, char *domain_suffix, struct hostsfile *a
up = &cache->hash_next;
}
- if ((opts & OPT_NO_HOSTS) && !addn_hosts)
+ if ((daemon->options & OPT_NO_HOSTS) && !addn_hosts)
{
if (daemon->cachesize > 0)
my_syslog(LOG_INFO, _("cleared cache"));
return;
}
- if (!(opts & OPT_NO_HOSTS))
- total_size = read_hostsfile(HOSTSFILE, opts, buff, domain_suffix, 0, total_size);
+ if (!(daemon->options & OPT_NO_HOSTS))
+ total_size = read_hostsfile(HOSTSFILE, 0, total_size);
while (addn_hosts)
{
- total_size = read_hostsfile(addn_hosts->fname, opts, buff, domain_suffix, addn_hosts->index, total_size);
+ total_size = read_hostsfile(addn_hosts->fname, addn_hosts->index, total_size);
addn_hosts = addn_hosts->next;
}
}
@@ -851,13 +925,11 @@ void cache_unhash_dhcp(void)
void cache_add_dhcp_entry(char *host_name,
struct in_addr *host_address, time_t ttd)
{
- struct crec *crec = NULL;
+ struct crec *crec = NULL, *aliasc;
unsigned short flags = F_DHCP | F_FORWARD | F_IPV4 | F_REVERSE;
int in_hosts = 0;
-
- if (!host_name)
- return;
-
+ struct cname *a;
+
while ((crec = cache_find_by_name(crec, host_name, 0, F_IPV4 | F_CNAME)))
{
/* check all addresses associated with name */
@@ -911,10 +983,34 @@ void cache_add_dhcp_entry(char *host_name,
crec->ttd = ttd;
crec->addr.addr.addr.addr4 = *host_address;
crec->name.namep = host_name;
+ crec->uid = uid++;
cache_hash(crec);
+
+ for (a = daemon->cnames; a; a = a->next)
+ if (hostname_isequal(host_name, a->target))
+ {
+ if ((aliasc = dhcp_spare))
+ dhcp_spare = dhcp_spare->next;
+ else /* need new one */
+ aliasc = whine_malloc(sizeof(struct crec));
+
+ if (aliasc)
+ {
+ aliasc->flags = F_FORWARD | F_DHCP | F_CNAME;
+ if (ttd == 0)
+ aliasc->flags |= F_IMMORTAL;
+ else
+ aliasc->ttd = ttd;
+ aliasc->name.namep = a->alias;
+ aliasc->addr.cname.cache = crec;
+ aliasc->addr.cname.uid = crec->uid;
+ cache_hash(aliasc);
+ }
+ }
}
}
+
void dump_cache(time_t now)
{
struct server *serv, *serv1;
diff --git a/src/config.h b/src/config.h
index 562f03c..431d9e6 100644
--- a/src/config.h
+++ b/src/config.h
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#define VERSION "2.45"
+#define VERSION "2.46"
#define FTABSIZ 150 /* max number of outstanding requests (default) */
#define MAX_PROCS 20 /* max no children for TCP requests */
@@ -115,10 +115,6 @@ HAVE_BROKEN_RTC
NOTE: when enabling or disabling this, be sure to delete any old
leases file, otherwise dnsmasq may get very confused.
-HAVE_ISC_READER
- define this to include the old ISC dhcpcd integration. Note that you cannot
- set both HAVE_ISC_READER and HAVE_BROKEN_RTC.
-
HAVE_TFTP
define this to get dnsmasq's built-in TFTP server.
@@ -141,9 +137,6 @@ HAVE_BSD_BRIDGE
Define this to enable the --bridge-interface option, useful on some
BSD systems.
-HAVE_LARGFILE
- Define this if the C library supports large (>2GB) files probably true everywhere
- except some builds of uclibc
NOTES:
For Linux you should define
@@ -166,13 +159,8 @@ NOTES:
/* platform independent options- uncomment to enable */
#define HAVE_TFTP
/* #define HAVE_BROKEN_RTC */
-/* #define HAVE_ISC_READER */
/* #define HAVE_DBUS */
-#if defined(HAVE_BROKEN_RTC) && defined(HAVE_ISC_READER)
-# error HAVE_ISC_READER is not compatible with HAVE_BROKEN_RTC
-#endif
-
/* Allow TFTP to be disabled with COPTS=-DNO_TFTP */
#ifdef NO_TFTP
#undef HAVE_TFTP
diff --git a/src/dbus.c b/src/dbus.c
index 8349ff9..dc5a39e 100644
--- a/src/dbus.c
+++ b/src/dbus.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 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
@@ -283,7 +283,10 @@ char *dbus_init(void)
daemon->dbus = connection;
if ((message = dbus_message_new_signal(DNSMASQ_PATH, DNSMASQ_SERVICE, "Up")))
- dbus_connection_send(connection, message, NULL);
+ {
+ dbus_connection_send(connection, message, NULL);
+ dbus_message_unref(message);
+ }
return NULL;
}
@@ -352,4 +355,36 @@ void check_dbus_listeners(fd_set *rset, fd_set *wset, fd_set *eset)
}
}
+void emit_dbus_signal(int action, char *mac, char *hostname, char *addr)
+{
+ DBusConnection *connection = (DBusConnection *)daemon->dbus;
+ DBusMessage* message = NULL;
+ DBusMessageIter args;
+ const char *action_str;
+
+ if (!connection)
+ return;
+
+ if (action == ACTION_DEL)
+ action_str = "DhcpLeaseDeleted";
+ else if (action == ACTION_ADD)
+ action_str = "DhcpLeaseAdded";
+ else if (action == ACTION_OLD)
+ action_str = "DhcpLeaseUpdated";
+ else
+ return;
+
+ if (!(message = dbus_message_new_signal(DNSMASQ_PATH, DNSMASQ_SERVICE, action_str)))
+ return;
+
+ dbus_message_iter_init_append(message, &args);
+
+ if (dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &addr) &&
+ dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &mac) &&
+ dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &hostname))
+ dbus_connection_send(connection, message, NULL);
+
+ dbus_message_unref(message);
+}
+
#endif
diff --git a/src/dhcp.c b/src/dhcp.c
index cff898f..c802774 100644
--- a/src/dhcp.c
+++ b/src/dhcp.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 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
@@ -635,6 +635,19 @@ static int is_addr_in_context(struct dhcp_context *context, struct dhcp_config *
return 0;
}
+int config_has_mac(struct dhcp_config *config, unsigned char *hwaddr, int len, int type)
+{
+ struct hwaddr_config *conf_addr;
+
+ for (conf_addr = config->hwaddr; conf_addr; conf_addr = conf_addr->next)
+ if (conf_addr->wildcard_mask == 0 &&
+ conf_addr->hwaddr_len == len &&
+ (conf_addr->hwaddr_type == type || conf_addr->hwaddr_type == 0) &&
+ memcmp(conf_addr->hwaddr, hwaddr, len) == 0)
+ return 1;
+
+ return 0;
+}
struct dhcp_config *find_config(struct dhcp_config *configs,
struct dhcp_context *context,
@@ -643,7 +656,8 @@ struct dhcp_config *find_config(struct dhcp_config *configs,
int hw_type, char *hostname)
{
struct dhcp_config *config;
-
+ struct hwaddr_config *conf_addr;
+
if (clid)
for (config = configs; config; config = config->next)
if (config->flags & CONFIG_CLID)
@@ -663,11 +677,7 @@ struct dhcp_config *find_config(struct dhcp_config *configs,
for (config = configs; config; config = config->next)
- if ((config->flags & CONFIG_HWADDR) &&
- config->wildcard_mask == 0 &&
- config->hwaddr_len == hw_len &&
- (config->hwaddr_type == hw_type || config->hwaddr_type == 0) &&
- memcmp(config->hwaddr, hwaddr, hw_len) == 0 &&
+ if (config_has_mac(config, hwaddr, hw_len, hw_type) &&
is_addr_in_context(context, config))
return config;
@@ -679,14 +689,14 @@ struct dhcp_config *find_config(struct dhcp_config *configs,
return config;
for (config = configs; config; config = config->next)
- if ((config->flags & CONFIG_HWADDR) &&
- config->wildcard_mask != 0 &&
- config->hwaddr_len == hw_len &&
- (config->hwaddr_type == hw_type || config->hwaddr_type == 0) &&
- is_addr_in_context(context, config) &&
- memcmp_masked(config->hwaddr, hwaddr, hw_len, config->wildcard_mask))
- return config;
-
+ for (conf_addr = config->hwaddr; conf_addr; conf_addr = conf_addr->next)
+ if (conf_addr->wildcard_mask != 0 &&
+ conf_addr->hwaddr_len == hw_len &&
+ (conf_addr->hwaddr_type == hw_type || conf_addr->hwaddr_type == 0) &&
+ is_addr_in_context(context, config) &&
+ memcmp_masked(conf_addr->hwaddr, hwaddr, hw_len, conf_addr->wildcard_mask))
+ return config;
+
return NULL;
}
@@ -720,6 +730,7 @@ void dhcp_read_ethers(void)
/* cannot have a clid */
if (config->flags & CONFIG_NAME)
free(config->hostname);
+ free(config->hwaddr);
free(config);
}
else
@@ -766,7 +777,7 @@ void dhcp_read_ethers(void)
}
else
{
- if (!canonicalise(ip) || strip_hostname(ip))
+ if (!canonicalise(ip))
{
my_syslog(LOG_ERR, _("bad name at %s line %d"), ETHERSFILE, lineno);
continue;
@@ -782,19 +793,24 @@ void dhcp_read_ethers(void)
if (!config)
{
for (config = daemon->dhcp_conf; config; config = config->next)
- if ((config->flags & CONFIG_HWADDR) &&
- config->wildcard_mask == 0 &&
- config->hwaddr_len == ETHER_ADDR_LEN &&
- (config->hwaddr_type == ARPHRD_ETHER || config->hwaddr_type == 0) &&
- memcmp(config->hwaddr, hwaddr, ETHER_ADDR_LEN) == 0)
- break;
+ {
+ struct hwaddr_config *conf_addr = config->hwaddr;
+ if (conf_addr &&
+ conf_addr->next == NULL &&
+ conf_addr->wildcard_mask == 0 &&
+ conf_addr->hwaddr_len == ETHER_ADDR_LEN &&
+ (conf_addr->hwaddr_type == ARPHRD_ETHER || conf_addr->hwaddr_type == 0) &&
+ memcmp(conf_addr->hwaddr, hwaddr, ETHER_ADDR_LEN) == 0)
+ break;
+ }
if (!config)
{
if (!(config = whine_malloc(sizeof(struct dhcp_config))))
continue;
config->flags = CONFIG_FROM_ETHERS;
- config->wildcard_mask = 0;
+ config->hwaddr = NULL;
+ config->domain = NULL;
config->next = daemon->dhcp_conf;
daemon->dhcp_conf = config;
}
@@ -813,10 +829,17 @@ void dhcp_read_ethers(void)
config->addr = addr;
}
- config->flags |= CONFIG_HWADDR | CONFIG_NOCLID;
- memcpy(config->hwaddr, hwaddr, ETHER_ADDR_LEN);
- config->hwaddr_len = ETHER_ADDR_LEN;
- config->hwaddr_type = ARPHRD_ETHER;
+ config->flags |= CONFIG_NOCLID;
+ if (!config->hwaddr)
+ config->hwaddr = whine_malloc(sizeof(struct hwaddr_config));
+ if (config->hwaddr)
+ {
+ memcpy(config->hwaddr->hwaddr, hwaddr, ETHER_ADDR_LEN);
+ config->hwaddr->hwaddr_len = ETHER_ADDR_LEN;
+ config->hwaddr->hwaddr_type = ARPHRD_ETHER;
+ config->hwaddr->wildcard_mask = 0;
+ config->hwaddr->next = NULL;
+ }
count++;
}
@@ -852,15 +875,9 @@ void check_dhcp_hosts(int fatal)
configs->flags &= ~CONFIG_ADDR;
}
+ /* split off domain part */
if ((configs->flags & CONFIG_NAME) && (domain = strip_hostname(configs->hostname)))
- {
- if (fatal)
- die(_("illegal domain %s in dhcp-config directive."), domain, EC_BADCONF);
- else
- my_syslog(LOG_ERR, _("illegal domain %s in %s."), domain, daemon->dhcp_hosts_file);
- free(configs->hostname);
- configs->flags &= ~CONFIG_NAME;
- }
+ configs->domain = domain;
}
}
}
@@ -918,6 +935,7 @@ char *host_from_dns(struct in_addr addr)
{
struct crec *lookup;
char *hostname = NULL;
+ char *d1, *d2;
if (daemon->port == 0)
return NULL; /* DNS disabled. */
@@ -928,14 +946,16 @@ char *host_from_dns(struct in_addr addr)
hostname = daemon->dhcp_buff;
strncpy(hostname, cache_get_name(lookup), 256);
hostname[255] = 0;
- if (strip_hostname(hostname))
+ d1 = strip_hostname(hostname);
+ d2 = get_domain(addr);
+ if (d1 && (!d2 || hostname_isequal(d1, d2)))
hostname = NULL;
}
return hostname;
}
-/* return illegal domain or NULL if OK */
+/* return domain or NULL if none. */
char *strip_hostname(char *hostname)
{
char *dot = strchr(hostname, '.');
@@ -944,9 +964,20 @@ char *strip_hostname(char *hostname)
return NULL;
*dot = 0; /* truncate */
-
- if (*(dot+1) && (!daemon->domain_suffix || !hostname_isequal(dot+1, daemon->domain_suffix)))
+ if (strlen(dot+1) != 0)
return dot+1;
return NULL;
}
+
+char *get_domain(struct in_addr addr)
+{
+ struct cond_domain *c;
+
+ for (c = daemon->cond_domain; c; c = c->next)
+ if (ntohl(addr.s_addr) >= ntohl(c->start.s_addr) &&
+ ntohl(addr.s_addr) <= ntohl(c->end.s_addr))
+ return c->domain;
+
+ return daemon->domain_suffix;
+}
diff --git a/src/dnsmasq.c b/src/dnsmasq.c
index 7616a47..008244e 100644
--- a/src/dnsmasq.c
+++ b/src/dnsmasq.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 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
@@ -36,10 +36,6 @@ static char *compile_opts =
#ifdef HAVE_BSD_BRIDGE
"BSD-bridge "
#endif
-#ifndef HAVE_ISC_READER
-"no-"
-#endif
-"ISC-leasefile "
#ifndef HAVE_DBUS
"no-"
#endif
@@ -66,7 +62,7 @@ static void poll_resolv(void);
int main (int argc, char **argv)
{
int bind_fallback = 0;
- time_t now, last = 0;
+ time_t now;
struct sigaction sigact;
struct iname *if_tmp;
int piperead, pipefd[2], err_pipe[2];
@@ -117,10 +113,6 @@ int main (int argc, char **argv)
if (daemon->dhcp)
daemon->lease_file = LEASEFILE;
}
-#ifndef HAVE_ISC_READER
- else if (!daemon->dhcp)
- die(_("ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"), NULL, EC_BADCONF);
-#endif
/* Close any file descriptors we inherited apart from std{in|out|err} */
for (i = 0; i < max_fd; i++)
@@ -633,14 +625,11 @@ int main (int argc, char **argv)
/* Check for changes to resolv files once per second max. */
/* Don't go silent for long periods if the clock goes backwards. */
- if (last == 0 || difftime(now, last) > 1.0 || difftime(now, last) < -1.0)
+ if (daemon->last_resolv == 0 ||
+ difftime(now, daemon->last_resolv) > 1.0 ||
+ difftime(now, daemon->last_resolv) < -1.0)
{
- last = now;
-
-#ifdef HAVE_ISC_READER
- if (daemon->lease_file && !daemon->dhcp)
- load_dhcp(now);
-#endif
+ daemon->last_resolv = now;
if (daemon->port != 0 && !(daemon->options & OPT_NO_POLL))
poll_resolv();
@@ -912,7 +901,7 @@ static void poll_resolv()
warned = 0;
check_servers();
if (daemon->options & OPT_RELOAD)
- cache_reload(daemon->options, daemon->namebuff, daemon->domain_suffix, daemon->addn_hosts);
+ cache_reload(daemon->addn_hosts);
}
else
{
@@ -929,7 +918,7 @@ static void poll_resolv()
void clear_cache_and_reload(time_t now)
{
if (daemon->port != 0)
- cache_reload(daemon->options, daemon->namebuff, daemon->domain_suffix, daemon->addn_hosts);
+ cache_reload(daemon->addn_hosts);
if (daemon->dhcp)
{
diff --git a/src/dnsmasq.h b/src/dnsmasq.h
index 973d810..24b4204 100644
--- a/src/dnsmasq.h
+++ b/src/dnsmasq.h
@@ -172,7 +172,7 @@ struct event_desc {
#define OPT_AUTHORITATIVE (1u<<17)
#define OPT_LOCALISE (1u<<18)
#define OPT_DBUS (1u<<19)
-#define OPT_BOOTP_DYNAMIC (1u<<20)
+#define OPT_DHCP_FQDN (1u<<20)
#define OPT_NO_PING (1u<<21)
#define OPT_LEASE_RO (1u<<22)
#define OPT_ALL_SERVERS (1u<<23)
@@ -229,6 +229,11 @@ struct ptr_record {
struct ptr_record *next;
};
+struct cname {
+ char *alias, *target;
+ struct cname *next;
+};
+
struct interface_name {
char *name; /* domain name */
char *intr; /* interface name */
@@ -425,23 +430,28 @@ struct dhcp_netid_list {
struct dhcp_netid_list *next;
};
+struct hwaddr_config {
+ int hwaddr_len, hwaddr_type;
+ unsigned char hwaddr[DHCP_CHADDR_MAX];
+ unsigned int wildcard_mask;
+ struct hwaddr_config *next;
+};
+
struct dhcp_config {
unsigned int flags;
int clid_len; /* length of client identifier */
unsigned char *clid; /* clientid */
- int hwaddr_len, hwaddr_type;
- unsigned char hwaddr[DHCP_CHADDR_MAX];
- char *hostname;
+ char *hostname, *domain;
struct dhcp_netid netid;
struct in_addr addr;
time_t decline_time;
- unsigned int lease_time, wildcard_mask;
+ unsigned int lease_time;
+ struct hwaddr_config *hwaddr;
struct dhcp_config *next;
};
#define CONFIG_DISABLE 1
#define CONFIG_CLID 2
-#define CONFIG_HWADDR 4
#define CONFIG_TIME 8
#define CONFIG_NAME 16
#define CONFIG_ADDR 32
@@ -503,6 +513,12 @@ struct dhcp_bridge {
};
#endif
+struct cond_domain {
+ char *domain;
+ struct in_addr start, end;
+ struct cond_domain *next;
+};
+
struct dhcp_context {
unsigned int lease_time, addr_epoch;
struct in_addr netmask, broadcast;
@@ -565,16 +581,19 @@ extern struct daemon {
unsigned int options;
struct resolvc default_resolv, *resolv_files;
+ time_t last_resolv;
struct mx_srv_record *mxnames;
struct naptr *naptr;
struct txt_record *txt;
struct ptr_record *ptr;
+ struct cname *cnames;
struct interface_name *int_names;
char *mxtarget;
char *lease_file;
char *username, *groupname, *scriptuser;
int group_set, osport;
char *domain_suffix;
+ struct cond_domain *cond_domain;
char *runfile;
char *lease_change_command;
struct iname *if_names, *if_addrs, *if_except, *dhcp_except;
@@ -593,7 +612,7 @@ extern struct daemon {
struct dhcp_vendor *dhcp_vendors;
struct dhcp_mac *dhcp_macs;
struct dhcp_boot *boot_config;
- struct dhcp_netid_list *dhcp_ignore, *dhcp_ignore_names, *force_broadcast;
+ struct dhcp_netid_list *dhcp_ignore, *dhcp_ignore_names, *force_broadcast, *bootp_dynamic;
char *dhcp_hosts_file, *dhcp_opts_file;
int dhcp_max, tftp_max;
int dhcp_server_port, dhcp_client_port;
@@ -660,7 +679,7 @@ void cache_end_insert(void);
void cache_start_insert(void);
struct crec *cache_insert(char *name, struct all_addr *addr,
time_t now, unsigned long ttl, unsigned short flags);
-void cache_reload(int opts, char *buff, char *domain_suffix, struct hostsfile *addn_hosts);
+void cache_reload(struct hostsfile *addn_hosts);
void cache_add_dhcp_entry(char *host_name, struct in_addr *host_address, time_t ttd);
void cache_unhash_dhcp(void);
void dump_cache(time_t now);
@@ -749,17 +768,17 @@ struct in_addr get_ifaddr(char *intr);
/* dhcp.c */
void dhcp_init(void);
void dhcp_packet(time_t now);
-
+char *get_domain(struct in_addr addr);
struct dhcp_context *address_available(struct dhcp_context *context,
struct in_addr addr,
struct dhcp_netid *netids);
struct dhcp_context *narrow_context(struct dhcp_context *context,
struct in_addr taddr,
struct dhcp_netid *netids);
-int match_netid(struct dhcp_netid *check, struct dhcp_netid *pool, int negonly);
-int address_allocate(struct dhcp_context *context,
+int match_netid(struct dhcp_netid *check, struct dhcp_netid *pool, int negonly);int address_allocate(struct dhcp_context *context,
struct in_addr *addrp, unsigned char *hwaddr, int hw_len,
struct dhcp_netid *netids, time_t now);
+int config_has_mac(struct dhcp_config *config, unsigned char *hwaddr, int len, int type);
struct dhcp_config *find_config(struct dhcp_config *configs,
struct dhcp_context *context,
unsigned char *clid, int clid_len,
@@ -771,6 +790,7 @@ void check_dhcp_hosts(int fatal);
struct dhcp_config *config_find_by_address(struct dhcp_config *configs, struct in_addr addr);
char *strip_hostname(char *hostname);
char *host_from_dns(struct in_addr addr);
+char *get_domain(struct in_addr addr);
/* lease.c */
void lease_update_file(time_t now);
@@ -779,8 +799,7 @@ void lease_init(time_t now);
struct dhcp_lease *lease_allocate(struct in_addr addr);
void lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
unsigned char *clid, int hw_len, int hw_type, int clid_len);
-void lease_set_hostname(struct dhcp_lease *lease, char *name,
- char *suffix, int auth);
+void lease_set_hostname(struct dhcp_lease *lease, char *name, int auth);
void lease_set_expires(struct dhcp_lease *lease, unsigned int len, time_t now);
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,
@@ -794,6 +813,8 @@ void rerun_scripts(void);
/* rfc2131.c */
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);
+unsigned char *extended_hwaddr(int hwtype, int hwlen, unsigned char *hwaddr,
+ int clid_len, unsigned char *clid, int *len_out);
/* dnsmasq.c */
int make_icmp_sock(void);
@@ -801,11 +822,6 @@ int icmp_ping(struct in_addr addr);
void send_event(int fd, int event, int data);
void clear_cache_and_reload(time_t now);
-/* isc.c */
-#ifdef HAVE_ISC_READER
-void load_dhcp(time_t now);
-#endif
-
/* netlink.c */
#ifdef HAVE_LINUX_NETWORK
void netlink_init(void);
@@ -827,6 +843,7 @@ int iface_enumerate(void *parm, int (*ipv4_callback)(), int (*ipv6_callback)());
char *dbus_init(void);
void check_dbus_listeners(fd_set *rset, fd_set *wset, fd_set *eset);
void set_dbus_listeners(int *maxfdp, fd_set *rset, fd_set *wset, fd_set *eset);
+void emit_dbus_signal(int action, char *mac, char *hostname, char *addr);
#endif
/* helper.c */
diff --git a/src/forward.c b/src/forward.c
index 9d9dd8c..5bda32c 100644
--- a/src/forward.c
+++ b/src/forward.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 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
@@ -381,8 +381,8 @@ static size_t process_reply(HEADER *header, time_t now,
size_t plen;
/* If upstream is advertising a larger UDP packet size
- than we allow, trim it so that we don't get overlarge
- requests for the client. We can't do this for signed packets. */
+ than we allow, trim it so that we don't get overlarge
+ requests for the client. We can't do this for signed packets. */
if ((pheader = find_pseudoheader(header, n, &plen, &sizep, &is_sign)) && !is_sign)
{
@@ -918,19 +918,23 @@ static struct randfd *allocate_rfd(int family)
(eg) TFTP. Once we have a reasonable number, randomness should be OK */
for (i = 0; i < RANDOM_SOCKS; i++)
- if (daemon->randomsocks[i].refcount == 0 &&
- (daemon->randomsocks[i].fd = random_sock(family)) != -1)
+ if (daemon->randomsocks[i].refcount == 0)
{
+ if ((daemon->randomsocks[i].fd = random_sock(family)) == -1)
+ break;
+
daemon->randomsocks[i].refcount = 1;
daemon->randomsocks[i].family = family;
return &daemon->randomsocks[i];
}
- /* No free ones, grab an existing one */
+ /* No free ones or cannot get new socket, grab an existing one */
for (i = 0; i < RANDOM_SOCKS; i++)
{
int j = (i+finger) % RANDOM_SOCKS;
- if (daemon->randomsocks[j].family == family && daemon->randomsocks[j].refcount != 0xffff)
+ if (daemon->randomsocks[j].refcount != 0 &&
+ daemon->randomsocks[j].family == family &&
+ daemon->randomsocks[j].refcount != 0xffff)
{
finger = j;
daemon->randomsocks[j].refcount++;
diff --git a/src/helper.c b/src/helper.c
index 5f426e1..947e298 100644
--- a/src/helper.c
+++ b/src/helper.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -31,7 +31,7 @@
#ifndef NO_FORK
static void my_setenv(const char *name, const char *value, int *error);
-
+
struct script_data
{
unsigned char action, hwaddr_len, hwaddr_type;
@@ -130,13 +130,13 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
/* stringify MAC into dhcp_buff */
p = daemon->dhcp_buff;
if (data.hwaddr_type != ARPHRD_ETHER || data.hwaddr_len == 0)
- p += sprintf(p, "%.2x-", data.hwaddr_type);
+ p += sprintf(p, "%.2x-", data.hwaddr_type);
for (i = 0; (i < data.hwaddr_len) && (i < DHCP_CHADDR_MAX); i++)
- {
- p += sprintf(p, "%.2x", data.hwaddr[i]);
- if (i != data.hwaddr_len - 1)
- p += sprintf(p, ":");
- }
+ {
+ p += sprintf(p, "%.2x", data.hwaddr[i]);
+ if (i != data.hwaddr_len - 1)
+ p += sprintf(p, ":");
+ }
/* and CLID into packet */
if (!read_write(pipefd[0], buf, data.clid_len, 1))
@@ -237,10 +237,16 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
if (data.hostname_len != 0)
{
+ char *dot;
hostname = (char *)buf;
hostname[data.hostname_len - 1] = 0;
if (!canonicalise(hostname))
hostname = NULL;
+ else if ((dot = strchr(hostname, '.')))
+ {
+ my_setenv("DNSMASQ_DOMAIN", dot+1, &err);
+ *dot = 0;
+ }
}
if (data.action == ACTION_OLD_HOSTNAME && hostname)
@@ -299,7 +305,15 @@ void queue_script(int action, struct dhcp_lease *lease, char *hostname, time_t n
{
unsigned char *p;
size_t size;
- unsigned int i, hostname_len = 0, clid_len = 0, vclass_len = 0, uclass_len = 0;
+ int i;
+ unsigned int hostname_len = 0, clid_len = 0, vclass_len = 0, uclass_len = 0;
+
+#ifdef HAVE_DBUS
+ p = extended_hwaddr(lease->hwaddr_type, lease->hwaddr_len,
+ lease->hwaddr, lease->clid_len, lease->clid, &i);
+ print_mac(daemon->namebuff, p, i);
+ emit_dbus_signal(action, daemon->namebuff, hostname ? hostname : "", inet_ntoa(lease->addr));
+#endif
/* no script */
if (daemon->helperfd == -1)
@@ -320,7 +334,7 @@ void queue_script(int action, struct dhcp_lease *lease, char *hostname, time_t n
{
struct script_data *new;
- /* start with resonable size, will almost never need extending. */
+ /* start with reasonable size, will almost never need extending. */
if (size < sizeof(struct script_data) + 200)
size = sizeof(struct script_data) + 200;
@@ -378,8 +392,9 @@ void queue_script(int action, struct dhcp_lease *lease, char *hostname, time_t n
memcpy(p, lease->userclass, uclass_len);
p += uclass_len;
}
- /* substitute * for space */
- for (i = 0; i < hostname_len; i++)
+ /* substitute * for space: spaces are allowed in hostnames (for DNS-SD)
+ and are likley to be a security hole in most scripts. */
+ for (i = 0; i < (int)hostname_len; i++)
if ((daemon->options & OPT_LEASE_RO) && hostname[i] == ' ')
*(p++) = '*';
else
diff --git a/src/isc.c b/src/isc.c
deleted file mode 100644
index 51d73c5..0000000
--- a/src/isc.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/* dnsmasq is Copyright (c) 2000-2007 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/>.
-*/
-
-
-/* Code in this file is based on contributions by John Volpe. */
-
-#include "dnsmasq.h"
-
-#ifdef HAVE_ISC_READER
-
-#define MAXTOK 50
-
-struct isc_lease {
- char *name, *fqdn;
- time_t expires;
- struct in_addr addr;
- struct isc_lease *next;
-};
-
-static struct isc_lease *leases = NULL;
-static off_t lease_file_size = (off_t)0;
-static ino_t lease_file_inode = (ino_t)0;
-static int logged_lease = 0;
-
-static int next_token (char *token, int buffsize, FILE * fp)
-{
- int c, count = 0;
- char *cp = token;
-
- while((c = getc(fp)) != EOF)
- {
- if (c == '#')
- do { c = getc(fp); } while (c != '\n' && c != EOF);
-
- if (c == ' ' || c == '\t' || c == '\n' || c == ';')
- {
- if (count)
- break;
- }
- else if ((c != '"') && (count<buffsize-1))
- {
- *cp++ = c;
- count++;
- }
- }
-
- *cp = 0;
- return count ? 1 : 0;
-}
-
-void load_dhcp(time_t now)
-{
- char *hostname = daemon->namebuff;
- char token[MAXTOK], *dot;
- struct in_addr host_address;
- time_t ttd, tts;
- FILE *fp;
- struct isc_lease *lease, *tmp, **up;
- struct stat statbuf;
-
- if (stat(daemon->lease_file, &statbuf) == -1)
- {
- if (!logged_lease)
- my_syslog(LOG_WARNING, _("failed to access %s: %s"), daemon->lease_file, strerror(errno));
- logged_lease = 1;
- return;
- }
-
- logged_lease = 0;
-
- if ((statbuf.st_size <= lease_file_size) &&
- (statbuf.st_ino == lease_file_inode))
- return;
-
- lease_file_size = statbuf.st_size;
- lease_file_inode = statbuf.st_ino;
-
- if (!(fp = fopen (daemon->lease_file, "r")))
- {
- my_syslog (LOG_ERR, _("failed to load %s: %s"), daemon->lease_file, strerror(errno));
- return;
- }
-
- my_syslog (LOG_INFO, _("reading %s"), daemon->lease_file);
-
- while ((next_token(token, MAXTOK, fp)))
- {
- if (strcmp(token, "lease") == 0)
- {
- hostname[0] = '\0';
- ttd = tts = (time_t)(-1);
- if (next_token(token, MAXTOK, fp) &&
- (host_address.s_addr = inet_addr(token)) != (in_addr_t) -1)
- {
- if (next_token(token, MAXTOK, fp) && *token == '{')
- {
- while (next_token(token, MAXTOK, fp) && *token != '}')
- {
- if ((strcmp(token, "client-hostname") == 0) ||
- (strcmp(token, "hostname") == 0))
- {
- if (next_token(hostname, MAXDNAME, fp))
- if (!canonicalise(hostname))
- {
- *hostname = 0;
- my_syslog(LOG_ERR, _("bad name in %s"), daemon->lease_file);
- }
- }
- else if ((strcmp(token, "ends") == 0) ||
- (strcmp(token, "starts") == 0))
- {
- struct tm lease_time;
- int is_ends = (strcmp(token, "ends") == 0);
- if (next_token(token, MAXTOK, fp) && /* skip weekday */
- next_token(token, MAXTOK, fp) && /* Get date from lease file */
- sscanf (token, "%d/%d/%d",
- &lease_time.tm_year,
- &lease_time.tm_mon,
- &lease_time.tm_mday) == 3 &&
- next_token(token, MAXTOK, fp) &&
- sscanf (token, "%d:%d:%d:",
- &lease_time.tm_hour,
- &lease_time.tm_min,
- &lease_time.tm_sec) == 3)
- {
- /* There doesn't seem to be a universally available library function
- which converts broken-down _GMT_ time to seconds-in-epoch.
- The following was borrowed from ISC dhcpd sources, where
- it is noted that it might not be entirely accurate for odd seconds.
- Since we're trying to get the same answer as dhcpd, that's just
- fine here. */
- static const int months [11] = { 31, 59, 90, 120, 151, 181,
- 212, 243, 273, 304, 334 };
- time_t time = ((((((365 * (lease_time.tm_year - 1970) + /* Days in years since '70 */
- (lease_time.tm_year - 1969) / 4 + /* Leap days since '70 */
- (lease_time.tm_mon > 1 /* Days in months this year */
- ? months [lease_time.tm_mon - 2]
- : 0) +
- (lease_time.tm_mon > 2 && /* Leap day this year */
- !((lease_time.tm_year - 1972) & 3)) +
- lease_time.tm_mday - 1) * 24) + /* Day of month */
- lease_time.tm_hour) * 60) +
- lease_time.tm_min) * 60) + lease_time.tm_sec;
- if (is_ends)
- ttd = time;
- else
- tts = time; }
- }
- }
-
- /* missing info? */
- if (!*hostname)
- continue;
- if (ttd == (time_t)(-1))
- continue;
-
- /* We use 0 as infinite in ttd */
- if ((tts != -1) && (ttd == tts - 1))
- ttd = (time_t)0;
- else if (difftime(now, ttd) > 0)
- continue;
-
- if ((dot = strchr(hostname, '.')))
- {
- if (!daemon->domain_suffix || hostname_isequal(dot+1, daemon->domain_suffix))
- {
- my_syslog(LOG_WARNING,
- _("Ignoring DHCP lease for %s because it has an illegal domain part"),
- hostname);
- continue;
- }
- *dot = 0;
- }
-
- for (lease = leases; lease; lease = lease->next)
- if (hostname_isequal(lease->name, hostname))
- {
- lease->expires = ttd;
- lease->addr = host_address;
- break;
- }
-
- if (!lease && (lease = whine_malloc(sizeof(struct isc_lease))))
- {
- lease->expires = ttd;
- lease->addr = host_address;
- lease->fqdn = NULL;
- lease->next = leases;
- if (!(lease->name = whine_malloc(strlen(hostname)+1)))
- free(lease);
- else
- {
- leases = lease;
- strcpy(lease->name, hostname);
- if (daemon->domain_suffix &&
- (lease->fqdn = whine_malloc(strlen(hostname) + strlen(daemon->domain_suffix) + 2)))
- {
- strcpy(lease->fqdn, hostname);
- strcat(lease->fqdn, ".");
- strcat(lease->fqdn, daemon->domain_suffix);
- }
- }
- }
- }
- }
- }
- }
-
- fclose(fp);
-
- /* prune expired leases */
- for (lease = leases, up = &leases; lease; lease = tmp)
- {
- tmp = lease->next;
- if (lease->expires != (time_t)0 && difftime(now, lease->expires) > 0)
- {
- *up = lease->next; /* unlink */
- free(lease->name);
- if (lease->fqdn)
- free(lease->fqdn);
- free(lease);
- }
- else
- up = &lease->next;
- }
-
-
- /* remove all existing DHCP cache entries */
- cache_unhash_dhcp();
-
- for (lease = leases; lease; lease = lease->next)
- {
- cache_add_dhcp_entry(lease->fqdn, &lease->addr, lease->expires);
- cache_add_dhcp_entry(lease->name, &lease->addr, lease->expires);
- }
-}
-
-#endif
-
diff --git a/src/lease.c b/src/lease.c
index 070c524..28cc252 100644
--- a/src/lease.c
+++ b/src/lease.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 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
@@ -103,7 +103,7 @@ void lease_init(time_t now)
/* unprotect spaces */
for (p = strchr(daemon->dhcp_buff, '*'); p; p = strchr(p, '*'))
*p = ' ';
- lease_set_hostname(lease, daemon->dhcp_buff, daemon->domain_suffix, 0);
+ lease_set_hostname(lease, daemon->dhcp_buff, 0);
}
/* set these correctly: the "old" events are generated later from
@@ -151,9 +151,9 @@ void lease_update_from_configs(void)
lease->hwaddr, lease->hwaddr_len, lease->hwaddr_type, NULL)) &&
(config->flags & CONFIG_NAME) &&
(!(config->flags & CONFIG_ADDR) || config->addr.s_addr == lease->addr.s_addr))
- lease_set_hostname(lease, config->hostname, daemon->domain_suffix, 1);
+ lease_set_hostname(lease, config->hostname, 1);
else if ((name = host_from_dns(lease->addr)))
- lease_set_hostname(lease, name, daemon->domain_suffix, 1); /* updates auth flag only */
+ lease_set_hostname(lease, name, 1); /* updates auth flag only */
}
static void ourprintf(int *errp, char *format, ...)
@@ -254,8 +254,11 @@ void lease_update_dns(void)
for (lease = leases; lease; lease = lease->next)
{
- cache_add_dhcp_entry(lease->fqdn, &lease->addr, lease->expires);
- cache_add_dhcp_entry(lease->hostname, &lease->addr, lease->expires);
+ if (lease->fqdn)
+ cache_add_dhcp_entry(lease->fqdn, &lease->addr, lease->expires);
+
+ if (!(daemon->options & OPT_DHCP_FQDN) && lease->hostname)
+ cache_add_dhcp_entry(lease->hostname, &lease->addr, lease->expires);
}
dns_dirty = 0;
@@ -412,11 +415,33 @@ void lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
}
-void lease_set_hostname(struct dhcp_lease *lease, char *name, char *suffix, int auth)
+static void kill_name(struct dhcp_lease *lease)
+{
+ /* run script to say we lost our old name */
+
+ /* this shouldn't happen unless updates are very quick and the
+ script very slow, we just avoid a memory leak if it does. */
+ free(lease->old_hostname);
+
+ /* If we know the fqdn, pass that. The helper will derive the
+ unqualified name from it, free the unqulaified name here. */
+
+ if (lease->fqdn)
+ {
+ lease->old_hostname = lease->fqdn;
+ free(lease->hostname);
+ }
+ else
+ lease->old_hostname = lease->hostname;
+
+ lease->hostname = lease->fqdn = NULL;
+}
+
+void lease_set_hostname(struct dhcp_lease *lease, char *name, int auth)
{
struct dhcp_lease *lease_tmp;
char *new_name = NULL, *new_fqdn = NULL;
-
+
if (lease->hostname && name && hostname_isequal(lease->hostname, name))
{
lease->auth_name = auth;
@@ -433,44 +458,47 @@ void lease_set_hostname(struct dhcp_lease *lease, char *name, char *suffix, int
if (name)
{
+ if ((new_name = whine_malloc(strlen(name) + 1)))
+ {
+ char *suffix = get_domain(lease->addr);
+ strcpy(new_name, name);
+ if (suffix && (new_fqdn = whine_malloc(strlen(new_name) + strlen(suffix) + 2)))
+ {
+ strcpy(new_fqdn, name);
+ strcat(new_fqdn, ".");
+ strcat(new_fqdn, suffix);
+ }
+ }
+
+ /* Depending on mode, we check either unqualified name or FQDN. */
for (lease_tmp = leases; lease_tmp; lease_tmp = lease_tmp->next)
- if (lease_tmp->hostname && hostname_isequal(lease_tmp->hostname, name))
- {
- if (lease_tmp->auth_name && !auth)
- return;
- /* this shouldn't happen unless updates are very quick and the
- script very slow, we just avoid a memory leak if it does. */
- free(lease_tmp->old_hostname);
- lease_tmp->old_hostname = lease_tmp->hostname;
- lease_tmp->hostname = NULL;
- if (lease_tmp->fqdn)
- {
- new_fqdn = lease_tmp->fqdn;
- lease_tmp->fqdn = NULL;
- }
- break;
- }
-
- if (!new_name && (new_name = whine_malloc(strlen(name) + 1)))
- strcpy(new_name, name);
-
- if (suffix && !new_fqdn && (new_fqdn = whine_malloc(strlen(name) + strlen(suffix) + 2)))
{
- strcpy(new_fqdn, name);
- strcat(new_fqdn, ".");
- strcat(new_fqdn, suffix);
+ if (daemon->options & OPT_DHCP_FQDN)
+ {
+ if (!new_fqdn || !lease_tmp->fqdn || !hostname_isequal(lease_tmp->fqdn, new_fqdn) )
+ continue;
+ }
+ else
+ {
+ if (!new_name || !lease_tmp->hostname || !hostname_isequal(lease_tmp->hostname, new_name) )
+ continue;
+ }
+
+ if (lease_tmp->auth_name && !auth)
+ {
+ free(new_name);
+ free(new_fqdn);
+ return;
+ }
+
+ kill_name(lease_tmp);
+ break;
}
}
if (lease->hostname)
- {
- /* run script to say we lost our old name */
- free(lease->old_hostname);
- lease->old_hostname = lease->hostname;
- }
+ kill_name(lease);
- free(lease->fqdn);
-
lease->hostname = new_name;
lease->fqdn = new_fqdn;
lease->auth_name = auth;
@@ -506,6 +534,13 @@ int do_script_run(time_t now)
{
struct dhcp_lease *lease;
+#ifdef HAVE_DBUS
+ /* If we're going to be sending DBus signals, but the connection is not yet up,
+ delay everything until it is. */
+ if ((daemon->options & OPT_DBUS) && !daemon->dbus)
+ return 0;
+#endif
+
if (old_leases)
{
lease = old_leases;
@@ -522,13 +557,13 @@ int do_script_run(time_t now)
}
else
{
+ kill_name(lease);
#ifndef NO_FORK
- queue_script(ACTION_DEL, lease, lease->hostname, now);
+ queue_script(ACTION_DEL, lease, lease->old_hostname, now);
#endif
old_leases = lease->next;
- free(lease->hostname);
- free(lease->fqdn);
+ free(lease->old_hostname);
free(lease->clid);
free(lease->vendorclass);
free(lease->userclass);
@@ -555,7 +590,8 @@ int do_script_run(time_t now)
(lease->aux_changed && (daemon->options & OPT_LEASE_RO)))
{
#ifndef NO_FORK
- queue_script(lease->new ? ACTION_ADD : ACTION_OLD, lease, lease->hostname, now);
+ queue_script(lease->new ? ACTION_ADD : ACTION_OLD, lease,
+ lease->fqdn ? lease->fqdn : lease->hostname, now);
#endif
lease->new = lease->changed = lease->aux_changed = 0;
diff --git a/src/log.c b/src/log.c
index c4f59ad..97e0b1d 100644
--- a/src/log.c
+++ b/src/log.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/src/netlink.c b/src/netlink.c
index d205f55..4d93178 100644
--- a/src/netlink.c
+++ b/src/netlink.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 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
@@ -237,7 +237,7 @@ static void nl_err(struct nlmsghdr *h)
failing. */
static void nl_routechange(struct nlmsghdr *h)
{
- if (h->nlmsg_type == RTM_NEWROUTE && daemon->srv_save)
+ if (h->nlmsg_type == RTM_NEWROUTE)
{
struct rtmsg *rtm = NLMSG_DATA(h);
int fd;
@@ -245,17 +245,24 @@ static void nl_routechange(struct nlmsghdr *h)
if (rtm->rtm_type != RTN_UNICAST || rtm->rtm_scope != RT_SCOPE_LINK)
return;
- if (daemon->srv_save->sfd)
- fd = daemon->srv_save->sfd->fd;
- else if (daemon->rfd_save && daemon->rfd_save->refcount != 0)
- fd = daemon->rfd_save->fd;
- else
- return;
+ /* Force re-reading resolv file right now, for luck. */
+ daemon->last_resolv = 0;
- while(sendto(fd, daemon->packet, daemon->packet_len, 0,
- &daemon->srv_save->addr.sa, sa_len(&daemon->srv_save->addr)) == -1 && retry_send());
+ if (daemon->srv_save)
+ {
+ if (daemon->srv_save->sfd)
+ fd = daemon->srv_save->sfd->fd;
+ else if (daemon->rfd_save && daemon->rfd_save->refcount != 0)
+ fd = daemon->rfd_save->fd;
+ else
+ return;
+
+ while(sendto(fd, daemon->packet, daemon->packet_len, 0,
+ &daemon->srv_save->addr.sa, sa_len(&daemon->srv_save->addr)) == -1 && retry_send());
+ }
}
}
+
#endif
diff --git a/src/network.c b/src/network.c
index 2fc2db2..cd200ea 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 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
@@ -442,7 +442,7 @@ struct listener *create_bound_listeners(void)
}
-/* return a UDP socket bound to a random port, have to coper with straying into
+/* return a UDP socket bound to a random port, have to cope with straying into
occupied port nos and reserved ones. */
int random_sock(int family)
{
@@ -452,10 +452,7 @@ int random_sock(int family)
{
union mysockaddr addr;
unsigned int ports_avail = 65536u - (unsigned short)daemon->min_port;
- int i, tries = 3 * ports_avail;
-
- if (tries > 100)
- tries = 100;
+ int tries = ports_avail < 30 ? 3 * ports_avail : 100;
memset(&addr, 0, sizeof(addr));
addr.sa.sa_family = family;
@@ -463,7 +460,7 @@ int random_sock(int family)
/* don't loop forever if all ports in use. */
if (fix_fd(fd))
- for (i = tries; i != 0; i--)
+ while(tries--)
{
unsigned short port = rand16();
diff --git a/src/option.c b/src/option.c
index de3c237..6b336fb 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 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
@@ -60,7 +60,7 @@ struct myoption {
};
#endif
-#define OPTSTRING "9531yZDNLERKzowefnbvhdkqr:m:p:c:l:s:i:t:u:g:a:x:S:C:A:T:H:Q:I:B:F:G:O:M:X:V:U:j:P:J:W:Y:2:4:6:7:8:0:"
+#define OPTSTRING "951yZDNLERKzowefnbvhdkqr:m:p:c:l:s:i:t:u:g:a:x:S:C:A:T:H:Q:I:B:F:G:O:M:X:V:U:j:P:J:W:Y:2:4:6:7:8:0:3:"
/* options which don't have a one-char version */
#define LOPT_RELOAD 256
@@ -96,6 +96,8 @@ struct myoption {
#define LOPT_LOCAL 286
#define LOPT_NAPTR 287
#define LOPT_MINPORT 288
+#define LOPT_DHCP_FQDN 289
+#define LOPT_CNAME 290
#ifdef HAVE_GETOPT_LONG
static const struct option opts[] =
@@ -160,7 +162,7 @@ static const struct myoption opts[] =
{"localise-queries", 0, 0, 'y'},
{"txt-record", 1, 0, 'Y'},
{"enable-dbus", 0, 0, '1'},
- {"bootp-dynamic", 0, 0, '3'},
+ {"bootp-dynamic", 2, 0, '3'},
{"dhcp-mac", 1, 0, '4'},
{"no-ping", 0, 0, '5'},
{"dhcp-script", 1, 0, '6'},
@@ -200,6 +202,8 @@ static const struct myoption opts[] =
{"dhcp-alternate-port", 2, 0, LOPT_ALTPORT },
{"dhcp-scriptuser", 1, 0, LOPT_SCRIPTUSR },
{"min-port", 1, 0, LOPT_MINPORT },
+ {"dhcp-fqdn", 0, 0, LOPT_DHCP_FQDN },
+ {"cname", 1, 0, LOPT_CNAME },
{ NULL, 0, 0, 0 }
};
@@ -240,8 +244,8 @@ static struct {
{ LOPT_CIRCUIT, ARG_DUP, "<tag>,<circuit>", gettext_noop("Map RFC3046 circuit-id to tag."), NULL },
{ LOPT_REMOTE, ARG_DUP, "<tag>,<remote>", gettext_noop("Map RFC3046 remote-id to tag."), NULL },
{ LOPT_SUBSCR, ARG_DUP, "<tag>,<remote>", gettext_noop("Map RFC3993 subscriber-id to tag."), NULL },
- { 'J', ARG_DUP, "<tag>", gettext_noop("Don't do DHCP for hosts with tag set."), NULL },
- { LOPT_BROADCAST, ARG_DUP, "<tag>", gettext_noop("Force broadcast replies for hosts with tag set."), NULL },
+ { 'J', ARG_DUP, "=<id>[,<id>]", gettext_noop("Don't do DHCP for hosts with tag set."), NULL },
+ { LOPT_BROADCAST, ARG_DUP, "=<id>[,<id>]", gettext_noop("Force broadcast replies for hosts with tag set."), NULL },
{ 'k', OPT_NO_FORK, NULL, gettext_noop("Do NOT fork into the background, do NOT run in debug mode."), NULL },
{ 'K', OPT_AUTHORITATIVE, NULL, gettext_noop("Assume we are the only DHCP server on the local network."), NULL },
{ 'l', ARG_ONE, "path", gettext_noop("Specify where to store DHCP leases (defaults to %s)."), LEASEFILE },
@@ -261,7 +265,7 @@ static struct {
{ 'r', ARG_DUP, "path", gettext_noop("Specify path to resolv.conf (defaults to %s)."), RESOLVFILE },
{ 'S', ARG_DUP, "/domain/ipaddr", gettext_noop("Specify address(es) of upstream servers with optional domains."), NULL },
{ LOPT_LOCAL, ARG_DUP, "/domain/", gettext_noop("Never forward queries to specified domains."), NULL },
- { 's', ARG_ONE, "<domain>", gettext_noop("Specify the domain to be assigned in DHCP leases."), NULL },
+ { 's', ARG_DUP, "<domain>[,<range>]", gettext_noop("Specify the domain to be assigned in DHCP leases."), NULL },
{ 't', ARG_ONE, "host_name", gettext_noop("Specify default target in an MX record."), NULL },
{ 'T', ARG_ONE, "time", gettext_noop("Specify time-to-live in seconds for replies from /etc/hosts."), NULL },
{ LOPT_NEGTTL, ARG_ONE, "time", gettext_noop("Specify time-to-live in seconds for negative caching."), NULL },
@@ -281,7 +285,7 @@ static struct {
{ 'Z', OPT_ETHERS, NULL, gettext_noop("Read DHCP static host information from %s."), ETHERSFILE },
{ '1', OPT_DBUS, NULL, gettext_noop("Enable the DBus interface for setting upstream servers, etc."), NULL },
{ '2', ARG_DUP, "interface", gettext_noop("Do not provide DHCP on this interface, only provide DNS."), NULL },
- { '3', OPT_BOOTP_DYNAMIC, NULL, gettext_noop("Enable dynamic address allocation for bootp."), NULL },
+ { '3', ARG_DUP, "[=<id>[,<id>]]", gettext_noop("Enable dynamic address allocation for bootp."), NULL },
{ '4', ARG_DUP, "<id>,<mac address>", gettext_noop("Map MAC address (with wildcards) to option set."), NULL },
#ifdef HAVE_BSD_BRIDGE
{ LOPT_BRIDGE, ARG_DUP, "iface,alias,..", gettext_noop("Treat DHCP requests on aliases as arriving from interface."), NULL },
@@ -293,7 +297,7 @@ static struct {
{ '9', OPT_LEASE_RO, NULL, gettext_noop("Do not use leasefile."), NULL },
{ '0', ARG_ONE, "<queries>", gettext_noop("Maximum number of concurrent DNS queries. (defaults to %s)"), "!" },
{ LOPT_RELOAD, OPT_RELOAD, NULL, gettext_noop("Clear DNS cache when reloading %s."), RESOLVFILE },
- { LOPT_NO_NAMES, ARG_DUP, "[=<id>]", gettext_noop("Ignore hostnames provided by DHCP clients."), NULL },
+ { LOPT_NO_NAMES, ARG_DUP, "[=<id>[,<id>]]", gettext_noop("Ignore hostnames provided by DHCP clients."), NULL },
{ LOPT_OVERRIDE, OPT_NO_OVERRIDE, NULL, gettext_noop("Do NOT reuse filename and server fields for extra DHCP options."), NULL },
{ LOPT_TFTP, OPT_TFTP, NULL, gettext_noop("Enable integrated read-only TFTP server."), NULL },
{ LOPT_PREFIX, ARG_ONE, "<directory>", gettext_noop("Export files by TFTP only from the specified subtree."), NULL },
@@ -311,6 +315,8 @@ static struct {
{ LOPT_SCRIPTUSR, ARG_ONE, "<username>", gettext_noop("Run lease-change script as this user."), NULL },
{ LOPT_NAPTR, ARG_DUP, "<name>,<naptr>", gettext_noop("Specify NAPTR DNS record."), NULL },
{ LOPT_MINPORT, ARG_ONE, "<port>", gettext_noop("Specify lowest port available for DNS query transmission."), NULL },
+ { LOPT_DHCP_FQDN, OPT_DHCP_FQDN, NULL, gettext_noop("Use only fully qualified domain names for DHCP clients."), NULL },
+ { LOPT_CNAME, ARG_DUP, "<alias>,<target>", gettext_noop("Specify alias name for LOCAL DNS name."), NULL },
{ 0, 0, NULL, NULL, NULL }
};
@@ -373,8 +379,8 @@ static const struct {
{ "T2", 59, OT_INTERNAL },
{ "vendor-class", 60, 0 },
{ "client-id", 61,OT_INTERNAL },
- { "nis-domain", 64, 0 },
- { "nis-server", 65, OT_ADDR_LIST },
+ { "nis+-domain", 64, 0 },
+ { "nis+-server", 65, OT_ADDR_LIST },
{ "tftp-server", 66, 0 },
{ "bootfile-name", 67, 0 },
{ "mobile-ip-home", 68, OT_ADDR_LIST },
@@ -957,7 +963,10 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
{
char *file = opt_string_alloc(arg);
if (file)
- one_file(file, nest, 0);
+ {
+ one_file(file, nest, 0);
+ free(file);
+ }
break;
}
@@ -1001,6 +1010,7 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
}
closedir(dir_stream);
+ free(directory);
break;
}
@@ -1127,10 +1137,49 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
case 's': /* --domain */
if (strcmp (arg, "#") == 0)
daemon->options |= OPT_RESOLV_DOMAIN;
- else if (!canonicalise_opt(arg))
- option = '?';
else
- daemon->domain_suffix = opt_string_alloc(arg);
+ {
+ comma = split(arg);
+ if (!canonicalise_opt(arg))
+ option = '?';
+ else
+ {
+ char *d = opt_string_alloc(arg);
+ if (comma)
+ {
+ struct cond_domain *new = safe_malloc(sizeof(struct cond_domain));
+ unhide_metas(comma);
+ if ((arg = strchr(comma, '/')))
+ {
+ int mask;
+ *arg++ = 0;
+ if ((new->start.s_addr = inet_addr(comma)) == (in_addr_t)-1 ||
+ !atoi_check(arg, &mask))
+ option = '?';
+ else
+ {
+ mask = (1 << (32 - mask)) - 1;
+ new->start.s_addr = ntohl(htonl(new->start.s_addr) & ~mask);
+ new->end.s_addr = new->start.s_addr | htonl(mask);
+ }
+ }
+ else if ((arg = split(comma)))
+ {
+ if ((new->start.s_addr = inet_addr(comma)) == (in_addr_t)-1 ||
+ (new->end.s_addr = inet_addr(arg)) == (in_addr_t)-1)
+ option = '?';
+ }
+ else if ((new->start.s_addr = new->end.s_addr = inet_addr(comma)) == (in_addr_t)-1)
+ option = '?';
+
+ new->domain = d;
+ new->next = daemon->cond_domain;
+ daemon->cond_domain = new;
+ }
+ else
+ daemon->domain_suffix = d;
+ }
+ }
break;
case 'u': /* --user */
@@ -1406,7 +1455,7 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
case LOPT_MINPORT: /* --min-port */
if (!atoi_check16(arg, &daemon->min_port))
- option = '?';
+option = '?';
break;
case '0': /* --dns-forward-max */
@@ -1656,7 +1705,8 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
new = opt_malloc(sizeof(struct dhcp_config));
new->next = daemon->dhcp_conf;
- new->flags = (option == LOPT_BANK) ? CONFIG_BANK : 0;
+ new->flags = (option == LOPT_BANK) ? CONFIG_BANK : 0;
+ new->hwaddr = NULL;
if ((a[0] = arg))
for (k = 1; k < 6; k++)
@@ -1706,8 +1756,11 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
}
else
{
- new->hwaddr_len = parse_hex(a[j], new->hwaddr, DHCP_CHADDR_MAX, &new->wildcard_mask, &new->hwaddr_type);
- new->flags |= CONFIG_HWADDR;
+ struct hwaddr_config *newhw = opt_malloc(sizeof(struct hwaddr_config));
+ newhw->next = new->hwaddr;
+ new->hwaddr = newhw;
+ newhw->hwaddr_len = parse_hex(a[j], newhw->hwaddr, DHCP_CHADDR_MAX,
+ &newhw->wildcard_mask, &newhw->hwaddr_type);
}
}
else if (strchr(a[j], '.') && (in.s_addr = inet_addr(a[j])) != (in_addr_t)-1)
@@ -1768,6 +1821,7 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
{
new->flags |= CONFIG_NAME;
strcpy(new->hostname, a[j]);
+ new->domain = NULL;
}
}
}
@@ -1850,7 +1904,10 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
else
{
struct dhcp_mac *new = opt_malloc(sizeof(struct dhcp_mac));
- new->netid.net = opt_string_alloc(arg);
+ if (strstr(arg, "net:") == arg)
+ new->netid.net = opt_string_alloc(arg+4);
+ else
+ new->netid.net = opt_string_alloc(arg);
unhide_metas(comma);
new->hwaddr_len = parse_hex(comma, new->hwaddr, DHCP_CHADDR_MAX, &new->mask, &new->hwaddr_type);
new->next = daemon->dhcp_macs;
@@ -1873,7 +1930,10 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
char *p;
int dig = 0;
struct dhcp_vendor *new = opt_malloc(sizeof(struct dhcp_vendor));
- new->netid.net = opt_string_alloc(arg);
+ if (strstr(arg, "net:") == arg)
+ new->netid.net = opt_string_alloc(arg+4);
+ else
+ new->netid.net = opt_string_alloc(arg);
/* check for hex string - must digits may include : must not have nothing else,
only allowed for agent-options. */
for (p = comma; *p; p++)
@@ -1944,6 +2004,7 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
case 'J': /* --dhcp-ignore */
case LOPT_NO_NAMES: /* --dhcp-ignore-names */
case LOPT_BROADCAST: /* --dhcp-broadcast */
+ case '3': /* --bootp-dynamic */
{
struct dhcp_netid_list *new = opt_malloc(sizeof(struct dhcp_netid_list));
struct dhcp_netid *list = NULL;
@@ -1957,6 +2018,11 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
new->next = daemon->force_broadcast;
daemon->force_broadcast = new;
}
+ else if (option == '3')
+ {
+ new->next = daemon->bootp_dynamic;
+ daemon->bootp_dynamic = new;
+ }
else
{
new->next = daemon->dhcp_ignore_names;
@@ -1968,7 +2034,10 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
comma = split(arg);
member->next = list;
list = member;
- member->net = opt_string_alloc(arg);
+ if (strstr(arg, "net:") == arg)
+ member->net = opt_string_alloc(arg+4);
+ else
+ member->net = opt_string_alloc(arg);
arg = comma;
}
@@ -2033,6 +2102,26 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
new->intr = opt_string_alloc(comma);
break;
}
+
+ case LOPT_CNAME: /* --cname */
+ {
+ struct cname *new;
+
+ if (!(comma = split(arg)))
+ option = '?';
+ else
+ {
+ for (new = daemon->cnames; new; new = new->next)
+ if (hostname_isequal(new->alias, arg))
+ problem = _("duplicate CNAME");
+ new = opt_malloc(sizeof(struct cname));
+ new->next = daemon->cnames;
+ daemon->cnames = new;
+ new->alias = opt_string_alloc(arg);
+ new->target = opt_string_alloc(comma);
+ }
+ break;
+ }
case LOPT_PTR: /* --ptr-record */
{
@@ -2387,6 +2476,13 @@ void reread_dhcp(void)
if (configs->flags & CONFIG_BANK)
{
+ struct hwaddr_config *mac, *tmp;
+
+ for (mac = configs->hwaddr; mac; mac = tmp)
+ {
+ tmp = mac->next;
+ free(mac);
+ }
if (configs->flags & CONFIG_CLID)
free(configs->clid);
if (configs->flags & CONFIG_NETID)
@@ -2394,6 +2490,7 @@ void reread_dhcp(void)
if (configs->flags & CONFIG_NAME)
free(configs->hostname);
+
*up = configs->next;
free(configs);
}
@@ -2639,4 +2736,6 @@ void read_opts(int argc, char **argv, char *compile_opts)
srv->name = opt_string_alloc(buff);
}
}
+ else if (daemon->options & OPT_DHCP_FQDN)
+ die(_("there must be a default domain when --dhcp-fqdn is set"), NULL, EC_BADCONF);
}
diff --git a/src/rfc1035.c b/src/rfc1035.c
index 67af916..5b468eb 100644
--- a/src/rfc1035.c
+++ b/src/rfc1035.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 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
@@ -21,8 +21,14 @@ static int add_resource_record(HEADER *header, char *limit, int *truncp,
unsigned long ttl, unsigned int *offset, unsigned short type,
unsigned short class, char *format, ...);
+#define CHECK_LEN(header, pp, plen, len) \
+ ((size_t)((pp) - (unsigned char *)(header) + (len)) <= (plen))
+
+#define ADD_RDLEN(header, pp, plen, len) \
+ (!CHECK_LEN(header, pp, plen, len) ? 0 : (int)((pp) += (len)), 1)
+
static int extract_name(HEADER *header, size_t plen, unsigned char **pp,
- char *name, int isExtract)
+ char *name, int isExtract, int extrabytes)
{
unsigned char *cp = (unsigned char *)name, *p = *pp, *p1 = NULL;
unsigned int j, l, hops = 0;
@@ -31,19 +37,47 @@ static int extract_name(HEADER *header, size_t plen, unsigned char **pp,
if (isExtract)
*cp = 0;
- while ((l = *p++))
- {
- unsigned int label_type = l & 0xc0;
+ while (1)
+ {
+ unsigned int label_type;
+
+ if (!CHECK_LEN(header, p, plen, 1))
+ return 0;
+
+ if ((l = *p++) == 0)
+ /* end marker */
+ {
+ /* check that there are the correct no of bytes after the name */
+ if (!CHECK_LEN(header, p, plen, extrabytes))
+ return 0;
+
+ if (isExtract)
+ {
+ if (cp != (unsigned char *)name)
+ cp--;
+ *cp = 0; /* terminate: lose final period */
+ }
+ else if (*cp != 0)
+ retvalue = 2;
+
+ if (p1) /* we jumped via compression */
+ *pp = p1;
+ else
+ *pp = p;
+
+ return retvalue;
+ }
+
+ label_type = l & 0xc0;
+
if (label_type == 0xc0) /* pointer */
{
- if ((size_t)(p - (unsigned char *)header) >= plen)
+ if (!CHECK_LEN(header, p, plen, 1))
return 0;
/* get offset */
l = (l&0x3f) << 8;
l |= *p++;
- if (l >= plen)
- return 0;
if (!p1) /* first jump, save location to go back to */
p1 = p;
@@ -74,7 +108,7 @@ static int extract_name(HEADER *header, size_t plen, unsigned char **pp,
/* output is \[x<hex>/siz]. which is digs+9 chars */
if (cp - (unsigned char *)name + digs + 9 >= MAXDNAME)
return 0;
- if ((size_t)(p - (unsigned char *)header + ((count-1)>>3)) >= plen)
+ if (!CHECK_LEN(header, p, plen, (count-1)>>3))
return 0;
*cp++ = '\\';
@@ -98,8 +132,9 @@ static int extract_name(HEADER *header, size_t plen, unsigned char **pp,
{ /* label_type = 0 -> label. */
if (cp - (unsigned char *)name + l + 1 >= MAXDNAME)
return 0;
- if ((size_t)(p - (unsigned char *)header) >= plen)
+ if (!CHECK_LEN(header, p, plen, l))
return 0;
+
for(j=0; j<l; j++, p++)
if (isExtract)
{
@@ -132,26 +167,7 @@ static int extract_name(HEADER *header, size_t plen, unsigned char **pp,
else if (*cp != 0 && *cp++ != '.')
retvalue = 2;
}
-
- if ((unsigned int)(p - (unsigned char *)header) >= plen)
- return 0;
- }
-
- if (isExtract)
- {
- if (cp != (unsigned char *)name)
- cp--;
- *cp = 0; /* terminate: lose final period */
}
- else if (*cp != 0)
- retvalue = 2;
-
- if (p1) /* we jumped via compression */
- *pp = p1;
- else
- *pp = p;
-
- return retvalue;
}
/* Max size of input string (for IPv6) is 75 chars.) */
@@ -261,15 +277,17 @@ static int in_arpa_name_2_addr(char *namein, struct all_addr *addrp)
return 0;
}
-static unsigned char *skip_name(unsigned char *ansp, HEADER *header, size_t plen)
+static unsigned char *skip_name(unsigned char *ansp, HEADER *header, size_t plen, int extrabytes)
{
while(1)
{
- unsigned int label_type = (*ansp) & 0xc0;
+ unsigned int label_type;
- if ((unsigned int)(ansp - (unsigned char *)header) >= plen)
+ if (!CHECK_LEN(header, ansp, plen, 1))
return NULL;
+ label_type = (*ansp) & 0xc0;
+
if (label_type == 0xc0)
{
/* pointer for compression. */
@@ -283,6 +301,9 @@ static unsigned char *skip_name(unsigned char *ansp, HEADER *header, size_t plen
/* Extended label type */
unsigned int count;
+ if (!CHECK_LEN(header, ansp, plen, 2))
+ return NULL;
+
if (((*ansp++) & 0x3f) != 1)
return NULL; /* we only understand bitstrings */
@@ -296,12 +317,17 @@ static unsigned char *skip_name(unsigned char *ansp, HEADER *header, size_t plen
else
{ /* label type == 0 Bottom six bits is length */
unsigned int len = (*ansp++) & 0x3f;
+
+ if (!ADD_RDLEN(header, ansp, plen, len))
+ return NULL;
+
if (len == 0)
break; /* zero length label marks the end. */
-
- ansp += len;
}
}
+
+ if (!CHECK_LEN(header, ansp, plen, extrabytes))
+ return NULL;
return ansp;
}
@@ -313,12 +339,10 @@ static unsigned char *skip_questions(HEADER *header, size_t plen)
for (q = ntohs(header->qdcount); q != 0; q--)
{
- if (!(ansp = skip_name(ansp, header, plen)))
+ if (!(ansp = skip_name(ansp, header, plen, 4)))
return NULL;
ansp += 4; /* class and type */
}
- if ((unsigned int)(ansp - (unsigned char *)header) > plen)
- return NULL;
return ansp;
}
@@ -329,13 +353,12 @@ static unsigned char *skip_section(unsigned char *ansp, int count, HEADER *heade
for (i = 0; i < count; i++)
{
- if (!(ansp = skip_name(ansp, header, plen)))
+ if (!(ansp = skip_name(ansp, header, plen, 10)))
return NULL;
ansp += 8; /* type, class, TTL */
GETSHORT(rdlen, ansp);
- if ((unsigned int)(ansp + rdlen - (unsigned char *)header) > plen)
+ if (!ADD_RDLEN(header, ansp, plen, rdlen))
return NULL;
- ansp += rdlen;
}
return ansp;
@@ -355,7 +378,7 @@ unsigned int questions_crc(HEADER *header, size_t plen, char *name)
for (q = ntohs(header->qdcount); q != 0; q--)
{
- if (!extract_name(header, plen, &p, name, 1))
+ if (!extract_name(header, plen, &p, name, 1, 4))
return crc; /* bad packet */
for (p1 = (unsigned char *)name; *p1; p1++)
@@ -381,7 +404,7 @@ unsigned int questions_crc(HEADER *header, size_t plen, char *name)
}
p += 4;
- if ((unsigned int)(p - (unsigned char *)header) > plen)
+ if (!CHECK_LEN(header, p, plen, 0))
return crc; /* bad packet */
}
@@ -393,12 +416,13 @@ size_t resize_packet(HEADER *header, size_t plen, unsigned char *pheader, size_t
{
unsigned char *ansp = skip_questions(header, plen);
+ /* if packet is malformed, just return as-is. */
if (!ansp)
- return 0;
+ return plen;
if (!(ansp = skip_section(ansp, ntohs(header->ancount) + ntohs(header->nscount) + ntohs(header->arcount),
header, plen)))
- return 0;
+ return plen;
/* restore pseudoheader */
if (pheader && ntohs(header->arcount) == 0)
@@ -432,7 +456,7 @@ unsigned char *find_pseudoheader(HEADER *header, size_t plen, size_t *len, unsi
{
for (i = ntohs(header->qdcount); i != 0; i--)
{
- if (!(ansp = skip_name(ansp, header, plen)))
+ if (!(ansp = skip_name(ansp, header, plen, 4)))
return NULL;
GETSHORT(type, ansp);
@@ -458,7 +482,7 @@ unsigned char *find_pseudoheader(HEADER *header, size_t plen, size_t *len, unsi
for (i = 0; i < arcount; i++)
{
unsigned char *save, *start = ansp;
- if (!(ansp = skip_name(ansp, header, plen)))
+ if (!(ansp = skip_name(ansp, header, plen, 10)))
return NULL;
GETSHORT(type, ansp);
@@ -466,9 +490,8 @@ unsigned char *find_pseudoheader(HEADER *header, size_t plen, size_t *len, unsi
GETSHORT(class, ansp);
ansp += 4; /* TTL */
GETSHORT(rdlen, ansp);
- if ((size_t)(ansp + rdlen - (unsigned char *)header) > plen)
+ if (!ADD_RDLEN(header, ansp, plen, rdlen))
return NULL;
- ansp += rdlen;
if (type == T_OPT)
{
if (len)
@@ -508,7 +531,7 @@ static unsigned char *do_doctor(unsigned char *p, int count, HEADER *header, siz
for (i = count; i != 0; i--)
{
- if (!(p = skip_name(p, header, qlen)))
+ if (!(p = skip_name(p, header, qlen, 10)))
return 0; /* bad packet */
GETSHORT(qtype, p);
@@ -521,7 +544,10 @@ static unsigned char *do_doctor(unsigned char *p, int count, HEADER *header, siz
struct doctor *doctor;
struct in_addr addr;
- /* alignment */
+ if (!CHECK_LEN(header, p, qlen, INADDRSZ))
+ return 0;
+
+ /* alignment */
memcpy(&addr, p, INADDRSZ);
for (doctor = daemon->doctors; doctor; doctor = doctor->next)
@@ -536,10 +562,8 @@ static unsigned char *do_doctor(unsigned char *p, int count, HEADER *header, siz
}
}
- p += rdlen;
-
- if ((size_t)(p - (unsigned char *)header) > qlen)
- return 0; /* bad packet */
+ if (!ADD_RDLEN(header, p, qlen, rdlen))
+ return 0; /* bad packet */
}
return p;
@@ -559,7 +583,7 @@ static int find_soa(HEADER *header, size_t qlen)
for (i = ntohs(header->nscount); i != 0; i--)
{
- if (!(p = skip_name(p, header, qlen)))
+ if (!(p = skip_name(p, header, qlen, 10)))
return 0; /* bad packet */
GETSHORT(qtype, p);
@@ -574,10 +598,10 @@ static int find_soa(HEADER *header, size_t qlen)
minttl = ttl;
/* MNAME */
- if (!(p = skip_name(p, header, qlen)))
+ if (!(p = skip_name(p, header, qlen, 0)))
return 0;
/* RNAME */
- if (!(p = skip_name(p, header, qlen)))
+ if (!(p = skip_name(p, header, qlen, 20)))
return 0;
p += 16; /* SERIAL REFRESH RETRY EXPIRE */
@@ -585,13 +609,10 @@ static int find_soa(HEADER *header, size_t qlen)
if (ttl < minttl)
minttl = ttl;
}
- else
- p += rdlen;
-
- if ((size_t)(p - (unsigned char *)header) > qlen)
+ else if (!ADD_RDLEN(header, p, qlen, rdlen))
return 0; /* bad packet */
}
-
+
/* rewrite addresses in additioal section too */
if (!do_doctor(p, ntohs(header->arcount), header, qlen))
return 0;
@@ -633,7 +654,7 @@ int extract_addresses(HEADER *header, size_t qlen, char *name, time_t now)
unsigned long cttl = ULONG_MAX, attl;
namep = p;
- if (!extract_name(header, qlen, &p, name, 1))
+ if (!extract_name(header, qlen, &p, name, 1, 4))
return 0; /* bad packet */
GETSHORT(qtype, p);
@@ -661,8 +682,8 @@ int extract_addresses(HEADER *header, size_t qlen, char *name, time_t now)
{
unsigned char *tmp = namep;
/* the loop body overwrites the original name, so get it back here. */
- if (!extract_name(header, qlen, &tmp, name, 1) ||
- !(res = extract_name(header, qlen, &p1, name, 0)))
+ if (!extract_name(header, qlen, &tmp, name, 1, 0) ||
+ !(res = extract_name(header, qlen, &p1, name, 0, 10)))
return 0; /* bad packet */
GETSHORT(aqtype, p1);
@@ -677,7 +698,7 @@ int extract_addresses(HEADER *header, size_t qlen, char *name, time_t now)
if (aqclass == C_IN && res != 2 && (aqtype == T_CNAME || aqtype == T_PTR))
{
- if (!extract_name(header, qlen, &p1, name, 1))
+ if (!extract_name(header, qlen, &p1, name, 1, 0))
return 0;
if (aqtype == T_CNAME)
@@ -692,7 +713,7 @@ int extract_addresses(HEADER *header, size_t qlen, char *name, time_t now)
}
p1 = endrr;
- if ((size_t)(p1 - (unsigned char *)header) > qlen)
+ if (!CHECK_LEN(header, p1, qlen, 0))
return 0; /* bad packet */
}
}
@@ -737,7 +758,7 @@ int extract_addresses(HEADER *header, size_t qlen, char *name, time_t now)
for (j = ntohs(header->ancount); j != 0; j--)
{
- if (!(res = extract_name(header, qlen, &p1, name, 0)))
+ if (!(res = extract_name(header, qlen, &p1, name, 0, 10)))
return 0; /* bad packet */
GETSHORT(aqtype, p1);
@@ -763,14 +784,17 @@ int extract_addresses(HEADER *header, size_t qlen, char *name, time_t now)
if (attl < cttl)
cttl = attl;
- if (!extract_name(header, qlen, &p1, name, 1))
+ if (!extract_name(header, qlen, &p1, name, 1, 0))
return 0;
goto cname_loop1;
}
else
{
found = 1;
+
/* copy address into aligned storage */
+ if (!CHECK_LEN(header, p1, qlen, addrlen))
+ return 0; /* bad packet */
memcpy(&addr, p1, addrlen);
/* check for returned address in private space */
@@ -790,7 +814,7 @@ int extract_addresses(HEADER *header, size_t qlen, char *name, time_t now)
}
p1 = endrr;
- if ((size_t)(p1 - (unsigned char *)header) > qlen)
+ if (!CHECK_LEN(header, p1, qlen, 0))
return 0; /* bad packet */
}
}
@@ -839,7 +863,7 @@ unsigned short extract_request(HEADER *header, size_t qlen, char *name, unsigned
if (ntohs(header->qdcount) != 1 || header->opcode != QUERY)
return 0; /* must be exactly one query. */
- if (!extract_name(header, qlen, &p, name, 1))
+ if (!extract_name(header, qlen, &p, name, 1, 4))
return 0; /* bad packet */
GETSHORT(qtype, p);
@@ -953,7 +977,7 @@ int check_for_bogus_wildcard(HEADER *header, size_t qlen, char *name,
for (i = ntohs(header->ancount); i != 0; i--)
{
- if (!extract_name(header, qlen, &p, name, 1))
+ if (!extract_name(header, qlen, &p, name, 1, 10))
return 0; /* bad packet */
GETSHORT(qtype, p);
@@ -962,19 +986,25 @@ int check_for_bogus_wildcard(HEADER *header, size_t qlen, char *name,
GETSHORT(rdlen, p);
if (qclass == C_IN && qtype == T_A)
- for (baddrp = baddr; baddrp; baddrp = baddrp->next)
- if (memcmp(&baddrp->addr, p, INADDRSZ) == 0)
- {
- /* Found a bogus address. Insert that info here, since there no SOA record
- to get the ttl from in the normal processing */
- cache_start_insert();
- cache_insert(name, NULL, now, ttl, F_IPV4 | F_FORWARD | F_NEG | F_NXDOMAIN | F_CONFIG);
- cache_end_insert();
-
- return 1;
- }
+ {
+ if (!CHECK_LEN(header, p, qlen, INADDRSZ))
+ return 0;
+
+ for (baddrp = baddr; baddrp; baddrp = baddrp->next)
+ if (memcmp(&baddrp->addr, p, INADDRSZ) == 0)
+ {
+ /* Found a bogus address. Insert that info here, since there no SOA record
+ to get the ttl from in the normal processing */
+ cache_start_insert();
+ cache_insert(name, NULL, now, ttl, F_IPV4 | F_FORWARD | F_NEG | F_NXDOMAIN | F_CONFIG);
+ cache_end_insert();
+
+ return 1;
+ }
+ }
- p += rdlen;
+ if (!ADD_RDLEN(header, p, qlen, rdlen))
+ return 0;
}
return 0;
@@ -1073,6 +1103,18 @@ static int add_resource_record(HEADER *header, char *limit, int *truncp, unsigne
return 1;
}
+static unsigned long crec_ttl(struct crec *crecp, time_t now)
+{
+ /* Return 0 ttl for DHCP entries, which might change
+ before the lease expires. */
+
+ if (crecp->flags & (F_IMMORTAL | F_DHCP))
+ return daemon->local_ttl;
+
+ return crecp->ttd - now;
+}
+
+
/* return zero if we can't answer from cache, or packet size if we can */
size_t answer_request(HEADER *header, char *limit, size_t qlen,
struct in_addr local_addr, struct in_addr local_netmask, time_t now)
@@ -1137,7 +1179,7 @@ size_t answer_request(HEADER *header, char *limit, size_t qlen,
nameoffset = p - (unsigned char *)header;
/* now extract name as .-concatenated string into name */
- if (!extract_name(header, qlen, &p, name, 1))
+ if (!extract_name(header, qlen, &p, name, 1, 4))
return 0; /* bad packet */
GETSHORT(qtype, p);
@@ -1239,18 +1281,11 @@ size_t answer_request(HEADER *header, char *limit, size_t qlen,
auth = 0;
if (!dryrun)
{
- unsigned long ttl;
- /* Return 0 ttl for DHCP entries, which might change
- before the lease expires. */
- if (crecp->flags & (F_IMMORTAL | F_DHCP))
- ttl = daemon->local_ttl;
- else
- ttl = crecp->ttd - now;
-
log_query(crecp->flags & ~F_FORWARD, cache_get_name(crecp), &addr,
record_source(daemon->addn_hosts, crecp->uid));
- if (add_resource_record(header, limit, &trunc, nameoffset, &ansp, ttl, NULL,
+ if (add_resource_record(header, limit, &trunc, nameoffset, &ansp,
+ crec_ttl(crecp, now), NULL,
T_PTR, C_IN, "d", cache_get_name(crecp)))
anscount++;
}
@@ -1358,7 +1393,8 @@ size_t answer_request(HEADER *header, char *limit, size_t qlen,
if (!dryrun)
{
log_query(crecp->flags, name, NULL, record_source(daemon->addn_hosts, crecp->uid));
- if (add_resource_record(header, limit, &trunc, nameoffset, &ansp, crecp->ttd - now, &nameoffset,
+ if (add_resource_record(header, limit, &trunc, nameoffset, &ansp,
+ crec_ttl(crecp, now), &nameoffset,
T_CNAME, C_IN, "d", cache_get_name(crecp->addr.cname.cache)))
anscount++;
}
@@ -1391,17 +1427,11 @@ size_t answer_request(HEADER *header, char *limit, size_t qlen,
ans = 1;
if (!dryrun)
{
- unsigned long ttl;
-
- if (crecp->flags & (F_IMMORTAL | F_DHCP))
- ttl = daemon->local_ttl;
- else
- ttl = crecp->ttd - now;
-
log_query(crecp->flags & ~F_REVERSE, name, &crecp->addr.addr,
record_source(daemon->addn_hosts, crecp->uid));
- if (add_resource_record(header, limit, &trunc, nameoffset, &ansp, ttl, NULL, type, C_IN,
+ if (add_resource_record(header, limit, &trunc, nameoffset, &ansp,
+ crec_ttl(crecp, now), NULL, type, C_IN,
type == T_A ? "4" : "6", &crecp->addr))
anscount++;
}
@@ -1529,7 +1559,6 @@ size_t answer_request(HEADER *header, char *limit, size_t qlen,
crecp = NULL;
while ((crecp = cache_find_by_name(crecp, rec->target, now, F_IPV4 | F_IPV6)))
{
- unsigned long ttl;
#ifdef HAVE_IPV6
int type = crecp->flags & F_IPV4 ? T_A : T_AAAA;
#else
@@ -1538,12 +1567,8 @@ size_t answer_request(HEADER *header, char *limit, size_t qlen,
if (crecp->flags & F_NEG)
continue;
- if (crecp->flags & (F_IMMORTAL | F_DHCP))
- ttl = daemon->local_ttl;
- else
- ttl = crecp->ttd - now;
-
- if (add_resource_record(header, limit, NULL, rec->offset, &ansp, ttl, NULL, type, C_IN,
+ if (add_resource_record(header, limit, NULL, rec->offset, &ansp,
+ crec_ttl(crecp, now), NULL, type, C_IN,
crecp->flags & F_IPV4 ? "4" : "6", &crecp->addr))
addncount++;
}
diff --git a/src/rfc2131.c b/src/rfc2131.c
index 752d1f5..e3f50ba 100644
--- a/src/rfc2131.c
+++ b/src/rfc2131.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 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
@@ -90,14 +90,14 @@ static void do_options(struct dhcp_context *context,
struct dhcp_packet *mess,
unsigned char *real_end,
unsigned char *req_options,
- char *hostname,
+ char *hostname,
+ char *domain, char *config_domain,
struct dhcp_netid *netid,
struct in_addr subnet_addr,
unsigned char fqdn_flags,
int null_term,
unsigned char *agent_id);
-static unsigned char *extended_hwaddr(int hwtype, int hwlen, unsigned char *hwaddr,
- int clid_len, unsigned char *clid, int *len_out);
+
static void match_vendor_opts(unsigned char *opt, struct dhcp_opt *dopt);
@@ -112,13 +112,13 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
int clid_len = 0, ignore = 0, do_classes = 0, selecting = 0;
struct dhcp_packet *mess = (struct dhcp_packet *)daemon->dhcp_packet.iov_base;
unsigned char *end = (unsigned char *)(mess + 1);
- char *hostname = NULL, *offer_hostname = NULL, *client_hostname = NULL;
+ char *hostname = NULL, *offer_hostname = NULL, *client_hostname = NULL, *domain = NULL;
int hostname_auth = 0, borken_opt = 0;
unsigned char *req_options = NULL;
char *message = NULL;
unsigned int time;
struct dhcp_config *config;
- struct dhcp_netid *netid = NULL;
+ struct dhcp_netid *netid;
struct in_addr subnet_addr, fallback, override;
unsigned short fuzz = 0;
unsigned int mess_type = 0;
@@ -126,9 +126,14 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
unsigned char *agent_id = NULL;
unsigned char *emac = NULL;
int emac_len = 0;
- struct dhcp_netid known_id;
+ struct dhcp_netid known_id, iface_id;
subnet_addr.s_addr = override.s_addr = 0;
+
+ /* set tag with name == interface */
+ iface_id.net = iface_name;
+ iface_id.next = NULL;
+ netid = &iface_id;
if (mess->op != BOOTREQUEST || mess->hlen > DHCP_CHADDR_MAX)
return 0;
@@ -359,8 +364,11 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
end = mess->options + 64; /* BOOTP vend area is only 64 bytes */
if (have_config(config, CONFIG_NAME))
- hostname = config->hostname;
-
+ {
+ hostname = config->hostname;
+ domain = config->domain;
+ }
+
if (have_config(config, CONFIG_NETID))
{
config->netid.next = netid;
@@ -389,8 +397,11 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
if (!message)
{
+ int nailed = 0;
+
if (have_config(config, CONFIG_ADDR))
{
+ nailed = 1;
logaddr = &config->addr;
mess->yiaddr = config->addr;
if ((lease = lease_find_by_addr(config->addr)) &&
@@ -399,8 +410,6 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
memcmp(lease->hwaddr, mess->chaddr, lease->hwaddr_len) != 0))
message = _("address in use");
}
- else if (!(daemon->options & OPT_BOOTP_DYNAMIC))
- message = _("no address configured");
else
{
if (!(lease = lease_find_by_client(mess->chaddr, mess->hlen, mess->htype, NULL, 0)) ||
@@ -419,27 +428,35 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
mess->yiaddr = lease->addr;
}
+ if (!message && !(context = narrow_context(context, mess->yiaddr, netid)))
+ message = _("wrong network");
+ else if (context->netid.net)
+ {
+ context->netid.next = netid;
+ netid = &context->netid;
+ }
+
+ if (!message && !nailed)
+ {
+ for (id_list = daemon->bootp_dynamic; id_list; id_list = id_list->next)
+ if ((!id_list->list) || match_netid(id_list->list, netid, 0))
+ break;
+ if (!id_list)
+ message = _("no address configured");
+ }
+
if (!message &&
!lease &&
(!(lease = lease_allocate(mess->yiaddr))))
message = _("no leases left");
-
- if (!message && !(context = narrow_context(context, mess->yiaddr, netid)))
- message = _("wrong network");
-
+
if (!message)
{
logaddr = &mess->yiaddr;
- if (context->netid.net)
- {
- context->netid.next = netid;
- netid = &context->netid;
- }
-
lease_set_hwaddr(lease, mess->chaddr, NULL, mess->hlen, mess->htype, 0);
if (hostname)
- lease_set_hostname(lease, hostname, daemon->domain_suffix, 1);
+ lease_set_hostname(lease, hostname, 1);
/* infinite lease unless nailed in dhcp-host line. */
lease_set_expires(lease,
have_config(config, CONFIG_TIME) ? config->lease_time : 0xffffffff,
@@ -447,8 +464,8 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
lease_set_interface(lease, int_index);
clear_packet(mess, end, NULL);
- do_options(context, mess, end, NULL,
- hostname, netid, subnet_addr, 0, 0, NULL);
+ do_options(context, mess, end, NULL, hostname, get_domain(mess->yiaddr),
+ domain, netid, subnet_addr, 0, 0, NULL);
}
}
@@ -518,6 +535,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
if (have_config(config, CONFIG_NAME))
{
hostname = config->hostname;
+ domain = config->domain;
hostname_auth = 1;
/* be careful not to send an OFFER with a hostname not matching the DISCOVER. */
if (fqdn_flags != 0 || !client_hostname || hostname_isequal(hostname, client_hostname))
@@ -525,9 +543,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
}
else if (client_hostname)
{
- char *d = strip_hostname(client_hostname);
- if (d)
- my_syslog(LOG_WARNING, _("Ignoring domain %s for DHCP host name %s"), d, client_hostname);
+ domain = strip_hostname(client_hostname);
if (strlen(client_hostname) != 0)
{
@@ -540,7 +556,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
struct dhcp_config *new = find_config(daemon->dhcp_conf, context, NULL, 0,
mess->chaddr, mess->hlen,
mess->htype, hostname);
- if (new && !have_config(new, CONFIG_CLID) && !have_config(new, CONFIG_HWADDR))
+ if (new && !have_config(new, CONFIG_CLID) && !new->hwaddr)
{
config = new;
/* set "known" tag for known hosts */
@@ -710,7 +726,9 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
{
char *addrs = inet_ntoa(config->addr);
- if ((ltmp = lease_find_by_addr(config->addr)) && ltmp != lease)
+ if ((ltmp = lease_find_by_addr(config->addr)) &&
+ ltmp != lease &&
+ !config_has_mac(config, ltmp->hwaddr, ltmp->hwaddr_len, ltmp->hwaddr_type))
{
int len;
unsigned char *mac = extended_hwaddr(ltmp->hwaddr_type, ltmp->hwaddr_len,
@@ -771,8 +789,8 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
option_put(mess, end, OPTION_T1, 4, (time/2));
option_put(mess, end, OPTION_T2, 4, (time*7)/8);
}
- do_options(context, mess, end, req_options, offer_hostname,
- netid, subnet_addr, fqdn_flags, borken_opt, agent_id);
+ do_options(context, mess, end, req_options, offer_hostname, get_domain(mess->yiaddr),
+ domain, netid, subnet_addr, fqdn_flags, borken_opt, agent_id);
return dhcp_packet_size(mess, netid);
@@ -797,14 +815,21 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
if (option_addr(opt).s_addr != override.s_addr)
return 0;
}
- else
+ else
{
for (; context; context = context->current)
if (context->local.s_addr == option_addr(opt).s_addr)
break;
if (!context)
- return 0;
+ {
+ /* 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 (!(daemon->options & OPT_AUTHORITATIVE))
+ return 0;
+ message = _("wrong server-ID");
+ }
}
/* If a lease exists for this host and another address, squash it. */
@@ -888,18 +913,33 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
else if ((addr_config = config_find_by_address(daemon->dhcp_conf, mess->yiaddr)) && addr_config != config)
message = _("address reserved");
- else if ((ltmp = lease_find_by_addr(mess->yiaddr)) && ltmp != lease)
- message = _("address in use");
-
- else if (emac_len == 0)
- message = _("no unique-id");
-
- else if (!lease)
- {
- if ((lease = lease_allocate(mess->yiaddr)))
- do_classes = 1;
+ else if (!lease && (ltmp = lease_find_by_addr(mess->yiaddr)))
+ {
+ /* If a host is configured with more than one MAC address, it's OK to 'nix
+ a lease from one of it's MACs to give the address to another. */
+ if (config && config_has_mac(config, ltmp->hwaddr, ltmp->hwaddr_len, ltmp->hwaddr_type))
+ {
+ my_syslog(LOG_INFO, _("abandoning lease to %s of %s"),
+ print_mac(daemon->namebuff, ltmp->hwaddr, ltmp->hwaddr_len),
+ inet_ntoa(ltmp->addr));
+ lease = ltmp;
+ }
else
- message = _("no leases left");
+ message = _("address in use");
+ }
+
+ if (!message)
+ {
+ if (emac_len == 0)
+ message = _("no unique-id");
+
+ else if (!lease)
+ {
+ if ((lease = lease_allocate(mess->yiaddr)))
+ do_classes = 1;
+ else
+ message = _("no leases left");
+ }
}
}
@@ -984,7 +1024,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
hostname = NULL;
}
if (hostname)
- lease_set_hostname(lease, hostname, daemon->domain_suffix, hostname_auth);
+ lease_set_hostname(lease, hostname, hostname_auth);
lease_set_expires(lease, time, now);
lease_set_interface(lease, int_index);
@@ -1007,8 +1047,8 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
option_put(mess, end, OPTION_T1, 4, (time/2) - fuzz);
option_put(mess, end, OPTION_T2, 4, ((time/8)*7) - fuzz);
}
- do_options(context, mess, end, req_options, hostname,
- netid, subnet_addr, fqdn_flags, borken_opt, agent_id);
+ do_options(context, mess, end, req_options, hostname, get_domain(mess->yiaddr),
+ domain, netid, subnet_addr, fqdn_flags, borken_opt, agent_id);
}
return dhcp_packet_size(mess, netid);
@@ -1063,8 +1103,8 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
lease_set_interface(lease, int_index);
}
- do_options(context, mess, end, req_options, hostname,
- netid, subnet_addr, fqdn_flags, borken_opt, agent_id);
+ do_options(context, mess, end, req_options, hostname, get_domain(mess->ciaddr),
+ domain, netid, subnet_addr, fqdn_flags, borken_opt, agent_id);
*is_inform = 1; /* handle reply differently */
return dhcp_packet_size(mess, netid);
@@ -1081,7 +1121,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
then the client-id is using the usual encoding and use the rest of the
client-id: if not we can use the whole client-id. This should give
sane MAC address logs. */
-static unsigned char *extended_hwaddr(int hwtype, int hwlen, unsigned char *hwaddr,
+unsigned char *extended_hwaddr(int hwtype, int hwlen, unsigned char *hwaddr,
int clid_len, unsigned char *clid, int *len_out)
{
if (hwlen == 0 && clid && clid_len > 3)
@@ -1291,6 +1331,7 @@ static size_t dhcp_packet_size(struct dhcp_packet *mess, struct dhcp_netid *neti
unsigned char *overload;
size_t ret;
struct dhcp_netid_list *id_list;
+ struct dhcp_netid *n;
/* We do logging too */
if (netid && (daemon->options & OPT_LOG_OPTS))
@@ -1299,9 +1340,17 @@ static size_t dhcp_packet_size(struct dhcp_packet *mess, struct dhcp_netid *neti
*p = 0;
for (; netid; netid = netid->next)
{
- strncat (p, netid->net, MAXDNAME);
- if (netid->next)
- strncat (p, ", ", MAXDNAME);
+ /* kill dupes. */
+ for (n = netid->next; n; n = n->next)
+ if (strcmp(netid->net, n->net) == 0)
+ break;
+
+ if (!n)
+ {
+ strncat (p, netid->net, MAXDNAME);
+ if (netid->next)
+ strncat (p, ", ", MAXDNAME);
+ }
}
p[MAXDNAME - 1] = 0;
my_syslog(LOG_INFO, _("tags: %s"), p);
@@ -1531,7 +1580,8 @@ static void do_options(struct dhcp_context *context,
struct dhcp_packet *mess,
unsigned char *real_end,
unsigned char *req_options,
- char *hostname,
+ char *hostname,
+ char *domain, char *config_domain,
struct dhcp_netid *netid,
struct in_addr subnet_addr,
unsigned char fqdn_flags,
@@ -1545,6 +1595,9 @@ static void do_options(struct dhcp_context *context,
unsigned char f0 = 0, s0 = 0;
int done_file = 0, done_server = 0;
+ if (config_domain && (!domain || !hostname_isequal(domain, config_domain)))
+ my_syslog(LOG_WARNING, _("Ignoring domain %s for DHCP host name %s"), config_domain, hostname);
+
/* logging */
if ((daemon->options & OPT_LOG_OPTS) && req_options)
{
@@ -1681,9 +1734,9 @@ static void do_options(struct dhcp_context *context,
!option_find2(netid, config_opts, OPTION_DNSSERVER))
option_put(mess, end, OPTION_DNSSERVER, INADDRSZ, ntohl(context->local.s_addr));
- if (daemon->domain_suffix && in_list(req_options, OPTION_DOMAINNAME) &&
+ if (domain && in_list(req_options, OPTION_DOMAINNAME) &&
!option_find2(netid, config_opts, OPTION_DOMAINNAME))
- option_put_string(mess, end, OPTION_DOMAINNAME, daemon->domain_suffix, null_term);
+ 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)
@@ -1700,8 +1753,8 @@ static void do_options(struct dhcp_context *context,
else if (null_term)
len++;
- if (daemon->domain_suffix)
- len += strlen(daemon->domain_suffix) + 1;
+ if (domain)
+ len += strlen(domain) + 1;
if ((p = free_space(mess, end, OPTION_CLIENT_FQDN, len)))
{
@@ -1712,19 +1765,19 @@ static void do_options(struct dhcp_context *context,
if (fqdn_flags & 0x04)
{
p = do_rfc1035_name(p, hostname);
- if (daemon->domain_suffix)
- p = do_rfc1035_name(p, daemon->domain_suffix);
+ if (domain)
+ p = do_rfc1035_name(p, domain);
*p++ = 0;
}
else
{
memcpy(p, hostname, strlen(hostname));
p += strlen(hostname);
- if (daemon->domain_suffix)
+ if (domain)
{
*(p++) = '.';
- memcpy(p, daemon->domain_suffix, strlen(daemon->domain_suffix));
- p += strlen(daemon->domain_suffix);
+ memcpy(p, domain, strlen(domain));
+ p += strlen(domain);
}
if (null_term)
*(p++) = 0;
diff --git a/src/tftp.c b/src/tftp.c
index b18c846..268c796 100644
--- a/src/tftp.c
+++ b/src/tftp.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/src/util.c b/src/util.c
index 8946256..240c3b8 100644
--- a/src/util.c
+++ b/src/util.c
@@ -1,4 +1,4 @@
-/* dnsmasq is Copyright (c) 2000-2007 Simon Kelley
+/* dnsmasq is Copyright (c) 2000-2008 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