diff options
-rw-r--r-- | CHANGELOG | 89 | ||||
-rw-r--r-- | FAQ | 19 | ||||
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | bld/Makefile | 2 | ||||
-rw-r--r-- | contrib/webmin/dnsmasq.wbm | bin | 163840 -> 174080 bytes | |||
-rw-r--r-- | dbus/DBus-interface | 37 | ||||
-rw-r--r-- | dnsmasq.conf.example | 22 | ||||
-rw-r--r-- | man/dnsmasq.8 | 81 | ||||
-rw-r--r-- | man/es/dnsmasq.8 | 107 | ||||
-rw-r--r-- | po/de.po | 596 | ||||
-rw-r--r-- | po/es.po | 620 | ||||
-rw-r--r-- | po/fi.po | 596 | ||||
-rw-r--r-- | po/fr.po | 620 | ||||
-rw-r--r-- | po/id.po | 635 | ||||
-rw-r--r-- | po/it.po | 596 | ||||
-rw-r--r-- | po/no.po | 617 | ||||
-rw-r--r-- | po/pl.po | 606 | ||||
-rw-r--r-- | po/pt_BR.po | 596 | ||||
-rw-r--r-- | po/ro.po | 617 | ||||
-rw-r--r-- | src/bpf.c | 2 | ||||
-rw-r--r-- | src/cache.c | 314 | ||||
-rw-r--r-- | src/config.h | 16 | ||||
-rw-r--r-- | src/dbus.c | 39 | ||||
-rw-r--r-- | src/dhcp.c | 109 | ||||
-rw-r--r-- | src/dnsmasq.c | 27 | ||||
-rw-r--r-- | src/dnsmasq.h | 53 | ||||
-rw-r--r-- | src/forward.c | 18 | ||||
-rw-r--r-- | src/helper.c | 39 | ||||
-rw-r--r-- | src/isc.c | 252 | ||||
-rw-r--r-- | src/lease.c | 122 | ||||
-rw-r--r-- | src/log.c | 2 | ||||
-rw-r--r-- | src/netlink.c | 27 | ||||
-rw-r--r-- | src/network.c | 11 | ||||
-rw-r--r-- | src/option.c | 141 | ||||
-rw-r--r-- | src/rfc1035.c | 245 | ||||
-rw-r--r-- | src/rfc2131.c | 179 | ||||
-rw-r--r-- | src/tftp.c | 2 | ||||
-rw-r--r-- | src/util.c | 2 |
38 files changed, 4257 insertions, 3801 deletions
@@ -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. + @@ -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? @@ -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 Binary files differindex e37447a..7307e23 100644 --- a/contrib/webmin/dnsmasq.wbm +++ b/contrib/webmin/dnsmasq.wbm 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, @@ -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 "" @@ -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" @@ -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 "" @@ -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" @@ -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" @@ -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 "" @@ -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)" @@ -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 "" @@ -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" @@ -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 @@ -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 @@ -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; @@ -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; @@ -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 @@ -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 |