]> git.ipfire.org Git - people/ms/dnsmasq.git/commitdiff
import of dnsmasq-2.51.tar.gz
authorSimon Kelley <simon@thekelleys.org.uk>
Tue, 13 Oct 2009 16:49:32 +0000 (17:49 +0100)
committerSimon Kelley <simon@thekelleys.org.uk>
Thu, 5 Jan 2012 17:31:14 +0000 (17:31 +0000)
34 files changed:
CHANGELOG
Makefile
bld/Makefile
bld/install-man
bld/install-mo
bld/pkg-wrapper
dnsmasq.conf.example
man/dnsmasq.8
man/fr/dnsmasq.8
po/de.po
po/es.po
po/fi.po
po/fr.po
po/id.po
po/it.po
po/no.po
po/pl.po
po/pt_BR.po
po/ro.po
src/cache.c
src/config.h
src/dbus.c
src/dhcp.c
src/dnsmasq.c
src/dnsmasq.h
src/forward.c
src/helper.c
src/lease.c
src/network.c
src/option.c
src/rfc1035.c
src/rfc2131.c
src/tftp.c
src/util.c

index ad398a7d1d705b1d14a75834b965cd0d2b323b30..89209d5b5ff6da901355a24892288d5ba67d9a6e 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,78 @@
+version 2.51
+            Add support for internationalised DNS. Non-ASCII characters
+            in domain names found in /etc/hosts, /etc/ethers and 
+           /etc/dnsmasq.conf will be correctly handled by translation to
+            punycode, as specified in RFC3490. This function is only
+            available if dnsmasq is compiled with internationalisation
+            support, and adds a dependency on GNU libidn. Without i18n
+            support, dnsmasq continues to be compilable with just
+            standard tools. Thanks to Yves Dorfsman for the
+            suggestion. 
+
+            Add two more environment variables for lease-change scripts:
+           First, DNSMASQ_SUPPLIED_HOSTNAME; this is set to the hostname
+           supplied by a client, even if the actual hostname used is
+           over-ridden by dhcp-host or dhcp-ignore-names directives.
+           Also DNSMASQ_RELAY_ADDRESS which gives the address of 
+            a DHCP relay, if used.
+           Suggestions from Michael Rack.
+
+           Fix regression which broke echo of relay-agent
+           options. Thanks to Michael Rack for spotting this.
+          
+            Don't treat option 67 as being interchangeable with
+            dhcp-boot parameters if it's specified as
+            dhcp-option-force.
+
+           Make the code to call scripts on lease-change compile-time
+           optional. It can be switched off by editing src/config.h
+           or building with "make COPTS=-DNO_SCRIPT".
+           Make the TFTP server cope with filenames from Windows/DOS
+           which use '\' as pathname separator. Thanks to Ralf for
+           the patch.
+
+           Updated Polish translation. Thanks to Jan Psota.
+           Warn if an IP address is duplicated in /etc/ethers. Thanks
+           to Felix Schwarz for pointing this out.
+
+           Teach --conf-dir to take an option list of file suffices
+           which will be ignored when scanning the directory. Useful
+           for backup files etc. Thanks to Helmut Hullen for the
+           suggestion. 
+
+           Add new DHCP option named tftpserver-address, which
+           corresponds to the third argument of dhcp-boot. This
+           allows the complete functionality of dhcp-boot to be
+           replicated with dhcp-option. Useful when using 
+           dhcp-optsfile.
+
+           Test which upstream nameserver to use every 10 seconds
+            or 50 queries and not just when a query times out and 
+            is retried. This should improve performance when there
+            is a slow nameserver in the list. Thanks to Joe for the
+            suggestion. 
+
+           Don't do any PXE processing, even for clients with the 
+           correct vendorclass, unless at least one pxe-prompt or 
+            pxe-service option is given. This stops dnsmasq 
+            interfering with proxy PXE subsystems when it is just 
+            the DHCP server. Thanks to Spencer Clark for spotting this.
+
+           Limit the blocksize used for TFTP transfers to a value
+           which avoids packet fragmentation, based on the MTU of the
+           local interface. Many netboot ROMs can't cope with
+           fragmented packets.
+
+           Honour dhcp-ignore configuration for PXE and proxy-PXE 
+           requests. Thanks to Niels Basjes for the bug report.
+
+            Updated French translation. Thanks to Gildas Le Nadan.
+
+
 version 2.50
-            Fix security problem which allowed any host permitted to 
+           Fix security problem which allowed any host permitted to 
             do TFTP to possibly compromise dnsmasq by remote buffer 
             overflow when TFTP enabled. Thanks to Core Security 
            Technologies and Iván Arce, Pablo Hernán Jorge, Alejandro 
@@ -358,3 +431,8 @@ version 2.43
            ports. Thanks to Patrick McLean for spotting this.
 
            Updated French translation. Thanks to Gildas Le Nadan.
+
+
+version 2.42
+            The changelog for version 2.42 and earlier is 
+            available in CHANGELOG.archive.
index 1ae250f1c8c66e0bd9e517c3ff061bea841a0b6a..3d07c2431876313493151405e4be89377c1f34e1 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -24,18 +24,22 @@ MAN = man
 
 PKG_CONFIG = pkg-config
 INSTALL = install
+MSGMERGE = msgmerge
+MSGFMT = msgfmt
+XGETTEXT = xgettext
 
-DBUS_CFLAGS="`echo $(COPTS) | ../bld/pkg-wrapper $(PKG_CONFIG) --cflags dbus-1`" 
-DBUS_LIBS="  `echo $(COPTS) | ../bld/pkg-wrapper $(PKG_CONFIG) --libs dbus-1`" 
-SUNOS_LIBS=" `if uname | grep SunOS 2>&1 >/dev/null; then echo -lsocket -lnsl -lposix4; fi `"
+#################################################################
+
+DNSMASQ_CFLAGS=`echo $(COPTS) | ../bld/pkg-wrapper HAVE_DBUS $(PKG_CONFIG) --cflags dbus-1` 
+DNSMASQ_LIBS=  `echo $(COPTS) | ../bld/pkg-wrapper HAVE_DBUS $(PKG_CONFIG) --libs dbus-1` 
+SUNOS_LIBS= `if uname | grep SunOS 2>&1 >/dev/null; then echo -lsocket -lnsl -lposix4; fi`
 
 all :   dnsmasq
 
 dnsmasq :
-       cd $(SRC) && $(MAKE) \
- DBUS_CFLAGS=$(DBUS_CFLAGS) \
- DBUS_LIBS=$(DBUS_LIBS) \
- SUNOS_LIBS=$(SUNOS_LIBS) \
+       @cd $(SRC) && $(MAKE) \
+ DNSMASQ_CFLAGS="$(DNSMASQ_CFLAGS)" \
+ DNSMASQ_LIBS="$(DNSMASQ_LIBS) $(SUNOS_LIBS)" \
  -f ../bld/Makefile dnsmasq 
 
 clean :
@@ -50,24 +54,25 @@ install-common :
        $(INSTALL) -m 755 $(SRC)/dnsmasq $(DESTDIR)$(BINDIR)
 
 all-i18n :
-       cd $(SRC) && $(MAKE) \
+       @cd $(SRC) && $(MAKE) \
  I18N=-DLOCALEDIR='\"$(LOCALEDIR)\"' \
- DBUS_CFLAGS=$(DBUS_CFLAGS) \
- DBUS_LIBS=$(DBUS_LIBS) \
- SUNOS_LIBS=$(SUNOS_LIBS) \
+ DNSMASQ_CFLAGS="$(DNSMASQ_CFLAGS) `$(PKG_CONFIG) --cflags libidn`" \
+ DNSMASQ_LIBS="$(DNSMASQ_LIBS) $(SUNOS_LIBS) `$(PKG_CONFIG) --libs libidn`"  \
  -f ../bld/Makefile dnsmasq 
-       cd $(PO); for f in *.po; do \
-               cd ../$(SRC) && $(MAKE) -f ../bld/Makefile $${f%.po}.mo; \
+       @cd $(PO); for f in *.po; do \
+               cd ../$(SRC) && $(MAKE) \
+ MSGMERGE=$(MSGMERGE) MSGFMT=$(MSGFMT) XGETTEXT=$(XGETTEXT) \
+ -f ../bld/Makefile $${f%.po}.mo; \
        done
 
 install-i18n : all-i18n install-common
-       cd $(SRC); ../bld/install-mo $(DESTDIR)$(LOCALEDIR)
-       cd $(MAN); ../bld/install-man $(DESTDIR)$(MANDIR)
+       cd $(SRC); ../bld/install-mo $(DESTDIR)$(LOCALEDIR) $(INSTALL)
+       cd $(MAN); ../bld/install-man $(DESTDIR)$(MANDIR) $(INSTALL)
 
 merge :
-       $(MAKE) I18N=-DLOCALEDIR='\"$(LOCALEDIR)\"' -f ../bld/Makefile -C $(SRC) dnsmasq.pot
-       cd $(PO); for f in *.po; do \
-               msgmerge --no-wrap -U $$f ../$(SRC)/dnsmasq.pot; \
+       @cd $(SRC) && $(MAKE) XGETTEXT=$(XGETTEXT) -f ../bld/Makefile dnsmasq.pot
+       @cd $(PO); for f in *.po; do \
+               echo -n msgmerge $$f && $(MSGMERGE) --no-wrap -U $$f ../$(SRC)/dnsmasq.pot; \
        done
 
 
index c6c91cb9538e1050c56998c3fc5d77babc078673..53dab3425824f918efa03b667282194441e57fa2 100644 (file)
@@ -5,13 +5,13 @@ OBJS = cache.o rfc1035.o util.o option.o forward.o network.o \
        helper.o tftp.o log.o
 
 .c.o:
-       $(CC) $(CFLAGS) $(COPTS) $(DBUS_MINOR) $(I18N) $(DBUS_CFLAGS) $(SUNOS_VER) $(RPM_OPT_FLAGS) -c $<
+       $(CC) $(CFLAGS) $(COPTS) $(I18N) $(DNSMASQ_CFLAGS) $(RPM_OPT_FLAGS) -c $<
 
 dnsmasq : $(OBJS)
-       $(CC) $(LDFLAGS) -o $@  $(OBJS) $(DBUS_LIBS) $(SUNOS_LIBS) $(LIBS) 
+       $(CC) $(LDFLAGS) -o $@  $(OBJS) $(DNSMASQ_LIBS) $(LIBS) 
  
 dnsmasq.pot : $(OBJS:.o=.c) dnsmasq.h config.h
-       xgettext -d dnsmasq --foreign-user --keyword=_ -o dnsmasq.pot -i $(OBJS:.o=.c)
+       $(XGETTEXT) -d dnsmasq --foreign-user --omit-header --keyword=_ -o $@ -i $(OBJS:.o=.c)
 
 %.mo : ../po/%.po dnsmasq.pot
-       msgmerge -o - ../po/$*.po dnsmasq.pot | msgfmt -o $*.mo -
+       $(MSGMERGE) -o - ../po/$*.po dnsmasq.pot | $(MSGFMT) -o $*.mo -
index f6dea75d9122449087d89cb7341debcf39bfb803..f4cf3dcb4813e0e3f51ae4026a6fffe86cb07d69 100755 (executable)
@@ -2,8 +2,8 @@
 
 for f in *; do
   if [ -d $f ]; then
-     install -m 755 -d $1/$f/man8 
-     install -m 644 $f/dnsmasq.8 $1/$f/man8
+     $2 -m 755 -d $1/$f/man8 
+     $2 -m 644 $f/dnsmasq.8 $1/$f/man8
      echo installing $1/$f/man8/dnsmasq.8
   fi
 done
index e6d462aaf11a063195e53df8c79981d28477f4e9..d11fa9f84b70a8206b0935262162a62f505078a2 100755 (executable)
@@ -1,8 +1,8 @@
 #!/bin/sh
 
 for f in *.mo; do
-  install -m 755 -d $1/${f%.mo}/LC_MESSAGES
-  install -m 644 $f $1/${f%.mo}/LC_MESSAGES/dnsmasq.mo
+  $2 -m 755 -d $1/${f%.mo}/LC_MESSAGES
+  $2 -m 644 $f $1/${f%.mo}/LC_MESSAGES/dnsmasq.mo
   echo installing $1/${f%.mo}/LC_MESSAGES/dnsmasq.mo
 done
 
index 66859e2d4f369d07647e92bf9dac5e7631702029..4f3b76be28e103f16f69a9c6312ca183632deace 100755 (executable)
@@ -1,7 +1,10 @@
 #!/bin/sh
 
-if grep "^\#.*define.*HAVE_DBUS" config.h 2>&1 >/dev/null || \
-   grep HAVE_DBUS 2>&1 >/dev/null ; then
+search=$1
+shift
+
+if grep "^\#.*define.*$search" config.h 2>&1 >/dev/null || \
+   grep $search 2>&1 >/dev/null ; then
   exec $*
 fi
 
index 1b3202fac4a64140f3b0cacb2879f8c3b10e188d..ac9ef7ad17b1809523b1deae1739686c1c4cd2f2 100644 (file)
 # the user dnsmasq is running as will be send over the net.
 #tftp-secure
 
+# This option stops dnsmasq from negotiating a larger blocksize for TFTP 
+# transfers. It will slow things down, but may rescue some broken TFTP
+# clients.
+#tftp-no-blocksize
+
 # Set the boot file name only when the "red" tag is set.
 #dhcp-boot=net:red,pxelinux.red-net
 
index c7b98ad10988cb262114cfaf56ed24c072a3e087..a5eac639177a5ec5af523ec9f25f9f588f1e90e8 100644 (file)
@@ -45,7 +45,8 @@ additional hosts file. If a directory is given, then read all the files containe
 .TP
 .B \-E, --expand-hosts
 Add the domain to simple names (without a period) in /etc/hosts
-in the same way as for DHCP-derived names.
+in the same way as for DHCP-derived names. Note that this does not
+apply to domain names in cnames, PTR records, TXT records etc.
 .TP
 .B \-T, --local-ttl=<time>
 When replying with information from /etc/hosts or the DHCP leases
@@ -547,7 +548,12 @@ the file will be re-read when dnsmasq receives SIGHUP.
 .B --dhcp-optsfile=<file>
 Read DHCP option information from the specified file. The advantage of 
 using this option is the same as for --dhcp-hostsfile: the
-dhcp-optsfile will be re-read when dnsmasq receives SIGHUP.
+dhcp-optsfile will be re-read when dnsmasq receives SIGHUP. Note that
+it is possible to encode the information in a
+.B --dhcp-boot
+flag as DHCP options, using the options names bootfile-name,
+server-ip-address and tftp-server. This allows these to be included
+in a dhcp-optsfile.
 .TP 
 .B \-Z, --read-ethers
 Read /etc/ethers for information about hosts for the DHCP server. The
@@ -842,8 +848,9 @@ 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 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 
+If the client provides vendor-class, hostname or user-class,
+ these are provided in DNSMASQ_VENDOR_CLASS
+DNSMASQ_SUPPLIED_HOSTNAME and 
 DNSMASQ_USER_CLASS0..DNSMASQ_USER_CLASSn variables, but only for
 "add" actions or "old" actions when a host resumes an existing lease,
 since these data are not held in dnsmasq's lease
@@ -857,7 +864,8 @@ removed, an "old" event is generated with the new state of the lease,
 ie no name, and the former name is provided in the environment 
 variable DNSMASQ_OLD_HOSTNAME. DNSMASQ_INTERFACE stores the name of
 the interface on which the request arrived; this is not set for "old"
-actions when dnsmasq restarts.
+actions when dnsmasq restarts. DNSMASQ_RELAY_ADDRESS is set if the client
+used a DHCP relay to contact dnsmasq and the IP address of the relay is known.
 All file descriptors are
 closed except stdin, stdout and stderr which are open to /dev/null
 (except in debug mode).
@@ -995,10 +1003,11 @@ of concurrent TFTP connections is limited by the size of the port range.
 Specify a different configuration file. The conf-file option is also allowed in
 configuration files, to include multiple configuration files.
 .TP
-.B \-7, --conf-dir=<directory>
+.B \-7, --conf-dir=<directory>[,<file-extension>......]
 Read all the files in the given directory as configuration
-files. Files whose names end in ~ or start with . or start and end
-with # are skipped. This flag may be given on the command
+files. If extension(s) are given, any files which end in those
+extensions are skipped. Any files whose names end in ~ or start with . or start and end
+with # are always skipped. This flag may be given on the command
 line or in a configuration file.
 .SH CONFIG FILE
 At startup, dnsmasq reads
@@ -1238,6 +1247,24 @@ or an additional hosts file. The list can be very long,
 dnsmasq has been tested successfully with one million names. That size
 file needs a 1GHz processor and about 60Mb of RAM.
 
+.SH INTERNATIONALISATION
+Dnsmasq can be compiled to support internationalisation. To do this,
+the make targets "all-i18n" and "install-i18n" should be used instead of
+the standard targets "all" and "install". When internationalisation
+is compiled in, dnsmasq will produce log messages in the local
+language and support internationalised domain names (IDN). Domain
+names in /etc/hosts, /etc/ethers and /etc/dnsmasq.conf which contain
+non-ASCII characters will be translated to the DNS-internal punycode
+representation. Note that
+dnsmasq determines both the language for messages and the assumed
+charset for configuration
+files from the LANG environment variable. This should be set to the system
+default value by the script which is responsible for starting
+dnsmasq. When editing the configuration files, be careful to do so
+using only the system-default locale and not user-specific one, since
+dnsmasq has no direct way of determining the charset in use, and must
+assume that it is the system default. 
 .SH FILES
 .IR /etc/dnsmasq.conf 
 
index 105998930acd693e17b0f2e6f353e5796a52b3b2..92ec024113fa5027f9bc3d07f5d420290663b61b 100644 (file)
@@ -51,7 +51,8 @@ fichiers contenus dans ce répertoire.
 .B \-E, --expand-hosts
 Ajoute le nom de domaine aux noms simples (ne contenant pas de point dans le
 nom) contenus dans le fichier /etc/hosts, de la même façon que pour le service
-DHCP.
+DHCP. Notez que cela ne s'applique pas au nom de domaine dans les CNAME, les
+enregistrements PTR, TXT, etc...
 .TP
 .B \-T, --local-ttl=<durée>
 Lorsque Dnsmasq répond avec une information provenant du fichier /etc/hosts ou
@@ -634,7 +635,11 @@ relu lorsque Dnsmasq reçoit un signal SIGHUP.
 .B --dhcp-optsfile=<fichier>
 Lis les informations relatives aux options DHCP dans le fichier spécifié.
 L'intérêt d'utiliser cette option est le même que pour --dhcp-hostsfile : le
-fichier spécifié ser rechargé à la réception par dnsmasq d'un signal SIGHUP.
+fichier spécifié sera rechargé à la réception par dnsmasq d'un signal SIGHUP.
+Notez qu'il est possible d'encoder l'information via
+.B --dhcp-boot
+en utilisant les noms optionnels bootfile-name, server-ip-address et
+tftp-server. Ceci permet d'inclure ces options dans un fichier "dhcp-optsfile".DNSMASQ_SUPPLIED_HOSTNAME
 .TP
 .B \-Z, --read-ethers
 Lis les informations d'hôtes DHCP dans le fichier /etc/ethers. Le format de
@@ -961,22 +966,25 @@ L'environnement est hérité de celui de l'invocation du processus Dnsmasq, et
 si l'hôte fournit un identifiant de client, celui-ci est stocké dans la
 variable d'environnement DNSMASQ_CLIENT_ID. Si un nom de domaine pleinement
 qualifié (FQDN)  est connu pour l'hôte, la part relative au domaine est stockée
-dans DNSMASQ_DOMAIN. Si le client fournit une information de classe de vendeur
-ou de classe d'utilisateur, celles-ci sont positionnées dans les variables
-DNSMASQ_VENDOR_CLASS et DNSMASQ_USER_CLASS0 à DNSMASQ_USER_CLASSn
-respectivement, mais seulement pour les actions "add" et "old" lorsqu'un hôte
-reprend un bail existant, ces variables n'étant pas stockées dans la base de
-baux de Dnsmasq. Si Dnsmasq a été compilé avec l'option HAVE_BROKEN_RTC
-("horloge RTC défectueuse"), alors la durée du bail (en secondes) est stockée
-dans la variable DNSMASQ_LEASE_LENGTH, sinon la date d'expiration du bail est
-toujours stocké dans la variable d'environnement DNSMASQ_LEASE_EXPIRES. Le
-nombre de secondes avant expiration est toujours stocké dans
-DNSMASQ_TIME_REMAINING. Si un bail était associé à un nom d'hôte et que celui-ci
-est supprimé, un évênement de type "old" est généré avec le nouveau statut du
-bail, c-à-d sans nom d'hôte, et le nom initial est fourni dans la variable
-d'environnement DNSMASQ_OLD_HOSTNAME. La variable DNSMASQ_INTERFACE contient le nom de
-l'interface sur laquelle la requête est arrivée; ceci n'est pas renseigné
-dans le cas des actions "old" ayant lieu après un redémarrage de dnsmasq.
+dans DNSMASQ_DOMAIN. Si le client fournit une information de classe de vendeur,
+de classe d'utilisateur ou un nom d'hôte, celles-ci sont positionnées dans les
+variables DNSMASQ_VENDOR_CLASS et DNSMASQ_USER_CLASS0 à DNSMASQ_USER_CLASSn
+et DNSMASQ_SUPPLIED_HOSTNAME respectivement, mais seulement pour les actions
+"add" et "old" lorsqu'un hôte reprend un bail existant, ces variables n'étant
+pas stockées dans la base de baux de Dnsmasq. Si Dnsmasq a été compilé avec
+l'option HAVE_BROKEN_RTC ("horloge RTC défectueuse"), alors la durée du bail
+(en secondes) est stockée dans la variable DNSMASQ_LEASE_LENGTH, sinon la date
+d'expiration du bail est toujours stocké dans la variable d'environnement
+DNSMASQ_LEASE_EXPIRES. Le nombre de secondes avant expiration est toujours
+stocké dans DNSMASQ_TIME_REMAINING. Si un bail était associé à un nom d'hôte et
+que celui-ci est supprimé, un évênement de type "old" est généré avec le
+nouveau statut du bail, c-à-d sans nom d'hôte, et le nom initial est fourni
+dans la variable d'environnement DNSMASQ_OLD_HOSTNAME. La variable
+DNSMASQ_INTERFACE contient le nom de l'interface sur laquelle la requête est
+arrivée; ceci n'est pas renseigné dans le cas des actions "old" ayant lieu
+après un redémarrage de dnsmasq. La variable DNSMASQ_RELAY_ADDRESS est
+renseignée si le client a utilisé un relai DHCP pour contacter Dnsmasq, si
+l'adresse IP du relai est connue.
 Tous les descripteurs de fichiers sont fermés, sauf stdin, stdout et stderr qui
 sont ouverts sur /dev/null (sauf en mode déverminage).
 Le script n'est pas lancé de manière concurrente : si un autre changement de
@@ -1152,10 +1160,12 @@ Spécifie un fichier de configuration différent. L'option "conf-file" est
 également autorisée dans des fichiers de configuration, ce qui permet
 l'inclusion de multiples fichiers de configuration.
 .TP
-.B \-7, --conf-dir=<répertoire>
+.B \-7, --conf-dir=<répertoire>[,<extension de fichier>...]
 Lis tous les fichiers du répertoire spécifié et les traite comme des fichiers de
-configuration. Les fichiers dont les noms se terminent en ~ ou commençant par .,
-ainsi que ceux commençant ou se terminant par # ne sont pas pris en compte.
+configuration. Si des extensions sont données, tout fichier finissant par ces
+extensions seront ignorés. Tout fichier dont le nom se termine en ~ ou commence
+par ., ainsi que ceux commençant ou se terminant par # seront systématiquement
+ignorés.
 Cette option peut être donnée en ligne de commande ou dans un fichier de
 configuration.
 .SH FICHIER DE CONFIGURATION
index d0b10e2bca6cab6dca0326bc416600b46017cf3b..6e1c44014c8057be70c81d55c020059634a44ac6 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.24\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 20:57+0100\n"
+"POT-Creation-Date: 2009-06-18 12:24+0100\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"
@@ -20,89 +20,93 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr ""
 
-#: cache.c:798 dhcp.c:783
+#: cache.c:798 dhcp.c:785
 #, c-format
 msgid "bad address at %s line %d"
 msgstr ""
 
 # @Simon: Here I need an example to understand it :)
-#: cache.c:853 dhcp.c:797
+#: cache.c:856 dhcp.c:801
 #, c-format
 msgid "bad name at %s line %d"
 msgstr ""
 
 # @Simon: Here I need an example to understand it :)
-#: cache.c:860 dhcp.c:863
+#: cache.c:863 dhcp.c:875
 #, 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:899
+#: cache.c:902
 msgid "cleared cache"
 msgstr "Cache geleert"
 
-#: cache.c:930 option.c:1026
+#: cache.c:933 option.c:1055
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr ""
 
 # @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:1049
+#: cache.c:1052
 #, 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:1126
+#: cache.c:1129
 #, 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:1127
+#: cache.c:1130
 #, 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:1129
+#: cache.c:1132
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr ""
 
-#: cache.c:1152
+#: cache.c:1155
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr ""
 
-#: util.c:56
+#: util.c:59
 #, c-format
 msgid "failed to seed the random number generator: %s"
 msgstr ""
 
+#: util.c:191
+msgid "failed to allocate memory"
+msgstr ""
+
 # @Simon: "re-used" = "wiederverwenden", but in such a case it must be split apart to "verwendet ... wieder"
 # @Simon: "unexpired" = "nicht abgelaufen" (expired=abgelaufen) -- altogether it sounds complicated in german,
 # @Simon: I would prefer to use "noch gültige" = "still valid", would that fit to the sense? Then it would be:
 # @Simon: msgstr "Cache Größe %d, %d/%d Cache-Einfügungen verwendeten noch gültige Cache-Einträge wieder."
 # @Simon: btw, what is the "%d/%d"-part?
-#: util.c:164
+#: util.c:229 option.c:548
 msgid "could not get memory"
 msgstr "Speicher nicht verfügbar"
 
-#: util.c:174
+#: util.c:239
 #, c-format
 msgid "cannot create pipe: %s"
 msgstr ""
 
-#: util.c:182
+#: util.c:247
 #, c-format
 msgid "failed to allocate %d bytes"
 msgstr ""
 
 # @Simon: not perfect but I cannot get nearer right now.
-#: util.c:287
+#: util.c:352
 #, c-format
 msgid "infinite"
 msgstr "unendlich"
@@ -538,198 +542,206 @@ msgstr ""
 msgid "Check configuration syntax."
 msgstr ""
 
-#: option.c:601
+#: option.c:613
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
 "\n"
 msgstr ""
 
-#: option.c:603
+#: option.c:615
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr ""
 
-#: option.c:605
+#: option.c:617
 #, c-format
 msgid "Valid options are:\n"
 msgstr ""
 
-#: option.c:646
+#: option.c:658
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr ""
 
-#: option.c:723
+#: option.c:735
 msgid "bad dhcp-option"
 msgstr ""
 
 # @Simon: Here I need an example to understand it :)
-#: option.c:780
+#: option.c:792
 #, fuzzy
 msgid "bad IP address"
 msgstr "lese %s - %d Adressen"
 
-#: option.c:878
+#: option.c:891
 msgid "bad domain in dhcp-option"
 msgstr ""
 
-#: option.c:936
+#: option.c:950
 msgid "dhcp-option too long"
 msgstr ""
 
-#: option.c:945
+#: option.c:959
 msgid "illegal dhcp-match"
 msgstr ""
 
-#: option.c:981
+#: option.c:995
 msgid "illegal repeated flag"
 msgstr ""
 
-#: option.c:989
+#: option.c:1003
 msgid "illegal repeated keyword"
 msgstr ""
 
-#: option.c:1046 tftp.c:345
+#: option.c:1086 tftp.c:359
 #, c-format
 msgid "cannot access %s: %s"
 msgstr ""
 
-#: option.c:1084
+#: option.c:1131
 msgid "only one dhcp-hostsfile allowed"
 msgstr ""
 
-#: option.c:1091
+#: option.c:1138
 msgid "only one dhcp-optsfile allowed"
 msgstr ""
 
-#: option.c:1135
+#: option.c:1183
 msgid "bad MX preference"
 msgstr ""
 
-#: option.c:1139
+#: option.c:1188
 msgid "bad MX name"
 msgstr ""
 
-#: option.c:1153
+#: option.c:1202
 msgid "bad MX target"
 msgstr ""
 
-#: option.c:1165
+#: option.c:1212
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:1395 option.c:1399
+#: option.c:1214
+msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
+msgstr ""
+
+#: option.c:1442 option.c:1446
 msgid "bad port"
 msgstr ""
 
-#: option.c:1418 option.c:1443
+#: option.c:1465 option.c:1490
 msgid "interface binding not supported"
 msgstr ""
 
-#: option.c:1564
+#: option.c:1611
 msgid "bad port range"
 msgstr ""
 
-#: option.c:1581
+#: option.c:1628
 msgid "bad bridge-interface"
 msgstr ""
 
-#: option.c:1622
+#: option.c:1669
 msgid "bad dhcp-range"
 msgstr ""
 
-#: option.c:1648
+#: option.c:1695
 msgid "only one netid tag allowed"
 msgstr ""
 
-#: option.c:1693
+#: option.c:1740
 msgid "inconsistent DHCP range"
 msgstr ""
 
-#: option.c:1865
+#: option.c:1912
 msgid "bad DHCP host name"
 msgstr ""
 
-#: option.c:2155 option.c:2427
+#: option.c:2201 option.c:2481
 msgid "invalid port number"
 msgstr ""
 
-#: option.c:2238
+#: option.c:2284
 msgid "invalid alias range"
 msgstr ""
 
-#: option.c:2250
+#: option.c:2297
 msgid "bad interface name"
 msgstr ""
 
-#: option.c:2273
+#: option.c:2322
+msgid "bad CNAME"
+msgstr ""
+
+#: option.c:2327
 msgid "duplicate CNAME"
 msgstr ""
 
-#: option.c:2290
+#: option.c:2347
 msgid "bad PTR record"
 msgstr ""
 
-#: option.c:2320
+#: option.c:2378
 msgid "bad NAPTR record"
 msgstr ""
 
-#: option.c:2346
+#: option.c:2403
 msgid "TXT record string too long"
 msgstr ""
 
-#: option.c:2350
+#: option.c:2451
 msgid "bad TXT record"
 msgstr ""
 
-#: option.c:2410
+#: option.c:2467
 msgid "bad SRV record"
 msgstr ""
 
-#: option.c:2419
+#: option.c:2474
 msgid "bad SRV target"
 msgstr ""
 
-#: option.c:2434
+#: option.c:2488
 msgid "invalid priority"
 msgstr ""
 
-#: option.c:2441
+#: option.c:2495
 msgid "invalid weight"
 msgstr ""
 
-#: option.c:2460
+#: option.c:2514
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr ""
 
-#: option.c:2503
+#: option.c:2557
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
-#: option.c:2511 tftp.c:499
+#: option.c:2565 tftp.c:513
 #, c-format
 msgid "cannot read %s: %s"
 msgstr ""
 
-#: option.c:2572
+#: option.c:2626
 msgid "missing \""
 msgstr ""
 
-#: option.c:2619
+#: option.c:2673
 msgid "bad option"
 msgstr ""
 
-#: option.c:2621
+#: option.c:2675
 msgid "extraneous parameter"
 msgstr ""
 
-#: option.c:2623
+#: option.c:2677
 msgid "missing parameter"
 msgstr ""
 
-#: option.c:2631
+#: option.c:2685
 msgid "error"
 msgstr ""
 
@@ -738,93 +750,93 @@ 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:2637
+#: option.c:2691
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr "%s in Zeile %d von %%s"
 
-#: option.c:2686 option.c:2717
+#: option.c:2740 option.c:2771
 #, c-format
 msgid "read %s"
 msgstr ""
 
-#: option.c:2789
+#: option.c:2843
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr ""
 
-#: option.c:2790
+#: option.c:2844
 #, c-format
 msgid ""
 "Compile time options %s\n"
 "\n"
 msgstr ""
 
-#: option.c:2791
+#: option.c:2845
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr ""
 
-#: option.c:2792
+#: option.c:2846
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr ""
 
-#: option.c:2793
+#: option.c:2847
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
 msgstr ""
 
-#: option.c:2804
+#: option.c:2858
 msgid "try --help"
 msgstr ""
 
-#: option.c:2806
+#: option.c:2860
 msgid "try -w"
 msgstr ""
 
-#: option.c:2809
+#: option.c:2863
 #, c-format
 msgid "bad command line options: %s"
 msgstr ""
 
-#: option.c:2850
+#: option.c:2904
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr ""
 
-#: option.c:2878
+#: option.c:2932
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr ""
 
-#: option.c:2888
+#: option.c:2942
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr ""
 
-#: option.c:2891 network.c:748 dhcp.c:734
+#: option.c:2945 network.c:754 dhcp.c:734
 #, c-format
 msgid "failed to read %s: %s"
 msgstr ""
 
-#: option.c:2909
+#: option.c:2962
 #, c-format
 msgid "no search directive found in %s"
 msgstr ""
 
-#: option.c:2930
+#: option.c:2983
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr ""
 
-#: option.c:2934
+#: option.c:2987
 msgid "syntax check OK"
 msgstr ""
 
-#: forward.c:405
+#: forward.c:409
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr ""
 
-#: forward.c:433
+#: forward.c:437
 msgid "possible DNS-rebind attack detected"
 msgstr ""
 
@@ -833,280 +845,280 @@ msgstr ""
 msgid "unknown interface %s in bridge-interface"
 msgstr ""
 
-#: network.c:411 dnsmasq.c:184
+#: network.c:417 dnsmasq.c:189
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr ""
 
-#: network.c:418
+#: network.c:424
 #, c-format
 msgid "failed to set IPV6 options on listening socket: %s"
 msgstr ""
 
-#: network.c:444
+#: network.c:450
 #, c-format
 msgid "failed to bind listening socket for %s: %s"
 msgstr ""
 
-#: network.c:449
+#: network.c:455
 #, c-format
 msgid "failed to listen on socket: %s"
 msgstr ""
 
-#: network.c:461
+#: network.c:467
 #, c-format
 msgid "failed to create TFTP socket: %s"
 msgstr ""
 
-#: network.c:655
+#: network.c:661
 #, c-format
 msgid "failed to bind server socket for %s: %s"
 msgstr ""
 
-#: network.c:688
+#: network.c:694
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr ""
 
-#: network.c:699
+#: network.c:705
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %s"
 msgstr ""
 
-#: network.c:714
+#: network.c:720
 msgid "unqualified"
 msgstr ""
 
-#: network.c:714
+#: network.c:720
 msgid "names"
 msgstr ""
 
-#: network.c:716
+#: network.c:722
 msgid "default"
 msgstr ""
 
-#: network.c:718
+#: network.c:724
 msgid "domain"
 msgstr ""
 
-#: network.c:721
+#: network.c:727
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr ""
 
-#: network.c:723
+#: network.c:729
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr ""
 
-#: network.c:726
+#: network.c:732
 #, c-format
 msgid "using nameserver %s#%d(via %s)"
 msgstr ""
 
-#: network.c:728
+#: network.c:734
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr ""
 
-#: dnsmasq.c:141
+#: dnsmasq.c:146
 msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:146
+#: dnsmasq.c:151
 msgid "asychronous logging is not available under Solaris"
 msgstr ""
 
-#: dnsmasq.c:165
+#: dnsmasq.c:170
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr ""
 
-#: dnsmasq.c:173
+#: dnsmasq.c:178
 #, c-format
 msgid "unknown interface %s"
 msgstr ""
 
-#: dnsmasq.c:179
+#: dnsmasq.c:184
 #, c-format
 msgid "no interface with address %s"
 msgstr ""
 
-#: dnsmasq.c:196 dnsmasq.c:660
+#: dnsmasq.c:201 dnsmasq.c:665
 #, c-format
 msgid "DBus error: %s"
 msgstr ""
 
-#: dnsmasq.c:199
+#: dnsmasq.c:204
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:225
+#: dnsmasq.c:230
 #, c-format
 msgid "unknown user or group: %s"
 msgstr ""
 
-#: dnsmasq.c:282
+#: dnsmasq.c:287
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr ""
 
-#: dnsmasq.c:443
+#: dnsmasq.c:448
 #, c-format
 msgid "started, version %s DNS disabled"
 msgstr ""
 
-#: dnsmasq.c:445
+#: dnsmasq.c:450
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr ""
 
-#: dnsmasq.c:447
+#: dnsmasq.c:452
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr ""
 
-#: dnsmasq.c:449
+#: dnsmasq.c:454
 #, c-format
 msgid "compile time options: %s"
 msgstr ""
 
-#: dnsmasq.c:455
+#: dnsmasq.c:460
 msgid "DBus support enabled: connected to system bus"
 msgstr ""
 
-#: dnsmasq.c:457
+#: dnsmasq.c:462
 msgid "DBus support enabled: bus connection pending"
 msgstr ""
 
-#: dnsmasq.c:462
+#: dnsmasq.c:467
 #, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr ""
 
-#: dnsmasq.c:466
+#: dnsmasq.c:471
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr ""
 
-#: dnsmasq.c:471
+#: dnsmasq.c:476
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr ""
 
-#: dnsmasq.c:476
+#: dnsmasq.c:481
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:479
+#: dnsmasq.c:484
 msgid "warning: no upstream servers configured"
 msgstr ""
 
-#: dnsmasq.c:483
+#: dnsmasq.c:488
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr ""
 
-#: dnsmasq.c:496
+#: dnsmasq.c:501
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:498
+#: dnsmasq.c:503
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr ""
 
-#: dnsmasq.c:499
+#: dnsmasq.c:504
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "root is "
 msgstr ""
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "enabled"
 msgstr ""
 
-#: dnsmasq.c:516
+#: dnsmasq.c:521
 msgid "secure mode"
 msgstr ""
 
-#: dnsmasq.c:542
+#: dnsmasq.c:547
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr ""
 
-#: dnsmasq.c:662
+#: dnsmasq.c:667
 msgid "connected to system DBus"
 msgstr ""
 
-#: dnsmasq.c:752
+#: dnsmasq.c:757
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr ""
 
-#: dnsmasq.c:755
+#: dnsmasq.c:760
 #, c-format
 msgid "failed to create helper: %s"
 msgstr ""
 
-#: dnsmasq.c:758
+#: dnsmasq.c:763
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr ""
 
-#: dnsmasq.c:762
+#: dnsmasq.c:767
 #, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr ""
 
-#: dnsmasq.c:767
+#: dnsmasq.c:772
 #, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr ""
 
-#: dnsmasq.c:770
+#: dnsmasq.c:775
 #, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr ""
 
-#: dnsmasq.c:773
+#: dnsmasq.c:778
 #, c-format
 msgid "cannot open %s: %s"
 msgstr ""
 
-#: dnsmasq.c:828
+#: dnsmasq.c:833
 #, c-format
 msgid "child process killed by signal %d"
 msgstr ""
 
-#: dnsmasq.c:832
+#: dnsmasq.c:837
 #, c-format
 msgid "child process exited with status %d"
 msgstr ""
 
-#: dnsmasq.c:836
+#: dnsmasq.c:841
 #, c-format
 msgid "failed to execute %s: %s"
 msgstr ""
 
-#: dnsmasq.c:880
+#: dnsmasq.c:885
 msgid "exiting on receipt of SIGTERM"
 msgstr ""
 
-#: dnsmasq.c:898
+#: dnsmasq.c:903
 #, c-format
 msgid "failed to access %s: %s"
 msgstr ""
 
-#: dnsmasq.c:920
+#: dnsmasq.c:925
 #, c-format
 msgid "reading %s"
 msgstr ""
 
-#: dnsmasq.c:931
+#: dnsmasq.c:936
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr ""
@@ -1146,51 +1158,56 @@ msgstr ""
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr ""
 
-#: dhcp.c:770
+#: dhcp.c:772
 #, c-format
 msgid "bad line at %s line %d"
 msgstr ""
 
-#: dhcp.c:885
+#: dhcp.c:815
+#, c-format
+msgid "ignoring %s line %d, duplicate name or IP address"
+msgstr ""
+
+#: dhcp.c:897
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr ""
 
-#: dhcp.c:888
+#: dhcp.c:900
 #, c-format
 msgid "duplicate IP address %s in %s."
 msgstr ""
 
-#: dhcp.c:931
+#: dhcp.c:943
 #, c-format
 msgid "%s has more than one address in hostsfile, using %s for DHCP"
 msgstr ""
 
-#: dhcp.c:936
+#: dhcp.c:948
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr ""
 
-#: lease.c:60
+#: lease.c:66
 #, c-format
 msgid "cannot open or create lease file %s: %s"
 msgstr ""
 
-#: lease.c:86
+#: lease.c:92
 msgid "too many stored leases"
 msgstr ""
 
-#: lease.c:127
+#: lease.c:128
 #, c-format
 msgid "cannot run lease-init script %s: %s"
 msgstr ""
 
-#: lease.c:133
+#: lease.c:134
 #, c-format
 msgid "lease-init script returned exit code %s"
 msgstr ""
 
-#: lease.c:240
+#: lease.c:234
 #, c-format
 msgid "failed to write %s: %s (retry in %us)"
 msgstr ""
@@ -1218,19 +1235,23 @@ msgstr ""
 msgid "%u Available DHCP range: %s -- %s"
 msgstr ""
 
-#: rfc2131.c:384 rfc2131.c:418
+#: rfc2131.c:384
 msgid "disabled"
 msgstr ""
 
-#: rfc2131.c:433 rfc2131.c:1096
+#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+msgid "ignored"
+msgstr ""
+
+#: rfc2131.c:433 rfc2131.c:1100
 msgid "address in use"
 msgstr ""
 
-#: rfc2131.c:447 rfc2131.c:933
+#: rfc2131.c:447 rfc2131.c:937
 msgid "no address available"
 msgstr ""
 
-#: rfc2131.c:454 rfc2131.c:1059
+#: rfc2131.c:454 rfc2131.c:1063
 msgid "wrong network"
 msgstr ""
 
@@ -1238,7 +1259,7 @@ msgstr ""
 msgid "no address configured"
 msgstr ""
 
-#: rfc2131.c:473 rfc2131.c:1109
+#: rfc2131.c:473 rfc2131.c:1113
 msgid "no leases left"
 msgstr ""
 
@@ -1257,106 +1278,102 @@ msgstr ""
 msgid "%u User class: %s"
 msgstr ""
 
-#: rfc2131.c:733
+#: rfc2131.c:737
 msgid "PXE BIS not supported"
 msgstr ""
 
-#: rfc2131.c:849
+#: rfc2131.c:853
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr ""
 
-#: rfc2131.c:870
+#: rfc2131.c:874
 msgid "unknown lease"
 msgstr ""
 
-#: rfc2131.c:879 rfc2131.c:1223
-msgid "ignored"
-msgstr ""
-
-#: rfc2131.c:902
+#: rfc2131.c:906
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:912
+#: rfc2131.c:916
 #, c-format
 msgid "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:915
+#: rfc2131.c:919
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:931 rfc2131.c:1102
+#: rfc2131.c:935 rfc2131.c:1106
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:999
+#: rfc2131.c:1003
 msgid "wrong server-ID"
 msgstr ""
 
-#: rfc2131.c:1018
+#: rfc2131.c:1022
 msgid "wrong address"
 msgstr ""
 
-#: rfc2131.c:1035
+#: rfc2131.c:1039
 msgid "lease not found"
 msgstr ""
 
-#: rfc2131.c:1067
+#: rfc2131.c:1071
 msgid "address not available"
 msgstr ""
 
-#: rfc2131.c:1078
+#: rfc2131.c:1082
 msgid "static lease available"
 msgstr ""
 
-#: rfc2131.c:1082
+#: rfc2131.c:1086
 msgid "address reserved"
 msgstr ""
 
-#: rfc2131.c:1090
+#: rfc2131.c:1094
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr ""
 
-#: rfc2131.c:1567
+#: rfc2131.c:1583
 #, c-format
 msgid "%u tags: %s"
 msgstr ""
 
-#: rfc2131.c:1580
+#: rfc2131.c:1596
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr ""
 
-#: rfc2131.c:1589
+#: rfc2131.c:1605
 #, c-format
 msgid "%u server name: %s"
 msgstr ""
 
-#: rfc2131.c:1597
+#: rfc2131.c:1613
 #, c-format
 msgid "%u next server: %s"
 msgstr ""
 
-#: rfc2131.c:1664
+#: rfc2131.c:1680
 #, c-format
 msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
 msgstr ""
 
-#: rfc2131.c:1903
+#: rfc2131.c:1919
 msgid "PXE menu too large"
 msgstr ""
 
-#: rfc2131.c:2018
+#: rfc2131.c:2034
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr ""
 
-#: rfc2131.c:2036
+#: rfc2131.c:2052
 #, c-format
 msgid "%u requested options: %s"
 msgstr ""
@@ -1393,31 +1410,31 @@ msgstr ""
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr ""
 
-#: tftp.c:172
+#: tftp.c:179
 msgid "unable to get free port for TFTP"
 msgstr ""
 
-#: tftp.c:187
+#: tftp.c:194
 #, c-format
 msgid "unsupported request from %s"
 msgstr ""
 
-#: tftp.c:268
+#: tftp.c:282
 #, c-format
 msgid "TFTP sent %s to %s"
 msgstr ""
 
-#: tftp.c:291
+#: tftp.c:305
 #, c-format
 msgid "file %s not found"
 msgstr ""
 
-#: tftp.c:402
+#: tftp.c:416
 #, c-format
 msgid "TFTP error %d %s received from %s"
 msgstr ""
 
-#: tftp.c:433
+#: tftp.c:447
 #, c-format
 msgid "TFTP failed sending %s to %s"
 msgstr ""
index 39c7290868dfb30ac46984d09cf744c2785f3d69..201e17156523751a852c6dc7eca5af19606402b8 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.24\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 20:57+0100\n"
+"POT-Creation-Date: 2009-06-18 12:24+0100\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"
@@ -20,75 +20,80 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr "no se pudo cargar nombres desde %s: %s"
 
-#: cache.c:798 dhcp.c:783
+#: cache.c:798 dhcp.c:785
 #, fuzzy, c-format
 msgid "bad address at %s line %d"
 msgstr "dirección errónea en %s línea %d"
 
-#: cache.c:853 dhcp.c:797
+#: cache.c:856 dhcp.c:801
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "nombre erróneo en %s línea %d"
 
-#: cache.c:860 dhcp.c:863
+#: cache.c:863 dhcp.c:875
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "direcciónes %s - %d leídas"
 
-#: cache.c:899
+#: cache.c:902
 msgid "cleared cache"
 msgstr "el caché fue liberado"
 
-#: cache.c:930 option.c:1026
+#: cache.c:933 option.c:1055
 #, fuzzy, c-format
 msgid "cannot access directory %s: %s"
 msgstr "no se puede accesar directorio %s: %s"
 
-#: cache.c:1049
+#: cache.c:1052
 #, 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:1126
+#: cache.c:1129
 #, c-format
 msgid "time %lu"
 msgstr "tiempo %lu"
 
-#: cache.c:1127
+#: cache.c:1130
 #, 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:1129
+#: cache.c:1132
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr "búsquedas reenviadas %u, búsquedas respondidas localmente %u"
 
-#: cache.c:1152
+#: cache.c:1155
 #, 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"
 
-#: util.c:56
+#: util.c:59
 #, fuzzy, c-format
 msgid "failed to seed the random number generator: %s"
 msgstr "no se pudo crear valor semilla para el generador de números aleatorios: %s"
 
-#: util.c:164
+#: util.c:191
+#, fuzzy
+msgid "failed to allocate memory"
+msgstr "no se pudo alocar %d bytes"
+
+#: util.c:229 option.c:548
 msgid "could not get memory"
 msgstr "no se pudo adquirir memoria"
 
-#: util.c:174
+#: util.c:239
 #, fuzzy, c-format
 msgid "cannot create pipe: %s"
 msgstr "no se puede crear pipe: %s"
 
-#: util.c:182
+#: util.c:247
 #, fuzzy, c-format
 msgid "failed to allocate %d bytes"
 msgstr "no se pudo alocar %d bytes"
 
-#: util.c:287
+#: util.c:352
 #, c-format
 msgid "infinite"
 msgstr "infinito"
@@ -516,7 +521,7 @@ msgstr "Servico boot para men
 msgid "Check configuration syntax."
 msgstr "Revisar sintaxis de configuración."
 
-#: option.c:601
+#: option.c:613
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -525,217 +530,225 @@ msgstr ""
 "Modo de uso: dnsmasq [opciones]\n"
 "\n"
 
-#: option.c:603
+#: option.c:615
 #, 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:605
+#: option.c:617
 #, fuzzy, c-format
 msgid "Valid options are:\n"
 msgstr "Opciones válidas son :\n"
 
-#: option.c:646
+#: option.c:658
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr "Opciones DHCP conocidas:\n"
 
-#: option.c:723
+#: option.c:735
 msgid "bad dhcp-option"
 msgstr "opción dhcp-option errónea"
 
-#: option.c:780
+#: option.c:792
 #, fuzzy
 msgid "bad IP address"
 msgstr "dirección IP errónea"
 
-#: option.c:878
+#: option.c:891
 msgid "bad domain in dhcp-option"
 msgstr "dominio erróneo en dhcp-option"
 
-#: option.c:936
+#: option.c:950
 msgid "dhcp-option too long"
 msgstr "opción dhcp-option demasiado larga"
 
-#: option.c:945
+#: option.c:959
 msgid "illegal dhcp-match"
 msgstr "dhcp-match ilegal"
 
-#: option.c:981
+#: option.c:995
 msgid "illegal repeated flag"
 msgstr "opción repetida ilegal"
 
-#: option.c:989
+#: option.c:1003
 msgid "illegal repeated keyword"
 msgstr "palabra clave repetida ilegal"
 
-#: option.c:1046 tftp.c:345
+#: option.c:1086 tftp.c:359
 #, fuzzy, c-format
 msgid "cannot access %s: %s"
 msgstr "no se puede accesar %s: %s"
 
-#: option.c:1084
+#: option.c:1131
 #, fuzzy
 msgid "only one dhcp-hostsfile allowed"
 msgstr "solo un dhcp-hostsfile permitido"
 
-#: option.c:1091
+#: option.c:1138
 #, fuzzy
 msgid "only one dhcp-optsfile allowed"
 msgstr "solo un dhcp-optsfile permitido"
 
-#: option.c:1135
+#: option.c:1183
 msgid "bad MX preference"
 msgstr "preferencia MX errónea"
 
-#: option.c:1139
+#: option.c:1188
 msgid "bad MX name"
 msgstr "nombre MX erróneo"
 
-#: option.c:1153
+#: option.c:1202
 msgid "bad MX target"
 msgstr "destino MX erróneo"
 
-#: option.c:1165
+#: option.c:1212
 msgid "cannot run scripts under uClinux"
 msgstr "no se pueden correr archivos guiónes bajo uClinux"
 
-#: option.c:1395 option.c:1399
+#: option.c:1214
+msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
+msgstr ""
+
+#: option.c:1442 option.c:1446
 msgid "bad port"
 msgstr "puerto erróneo"
 
-#: option.c:1418 option.c:1443
+#: option.c:1465 option.c:1490
 msgid "interface binding not supported"
 msgstr "vinculación de interface no está soportado"
 
-#: option.c:1564
+#: option.c:1611
 #, fuzzy
 msgid "bad port range"
 msgstr "rango de puertos erróneo"
 
-#: option.c:1581
+#: option.c:1628
 msgid "bad bridge-interface"
 msgstr "opción bridge-interface (interface puente) errónea"
 
-#: option.c:1622
+#: option.c:1669
 msgid "bad dhcp-range"
 msgstr "opción dhcp-range (rango DHCP) errónea"
 
-#: option.c:1648
+#: option.c:1695
 msgid "only one netid tag allowed"
 msgstr "solo una etiqueta netid permitida"
 
-#: option.c:1693
+#: option.c:1740
 msgid "inconsistent DHCP range"
 msgstr "rango DHCP inconsistente"
 
-#: option.c:1865
+#: option.c:1912
 #, fuzzy
 msgid "bad DHCP host name"
 msgstr "nombre de host DHCP erróneo"
 
-#: option.c:2155 option.c:2427
+#: option.c:2201 option.c:2481
 msgid "invalid port number"
 msgstr "número de puerto inválido"
 
-#: option.c:2238
+#: option.c:2284
 #, fuzzy
 msgid "invalid alias range"
 msgstr "rango alias inválido"
 
-#: option.c:2250
+#: option.c:2297
 #, fuzzy
 msgid "bad interface name"
 msgstr "nombre de interface erróneo"
 
-#: option.c:2273
+#: option.c:2322
+msgid "bad CNAME"
+msgstr ""
+
+#: option.c:2327
 msgid "duplicate CNAME"
 msgstr "CNAME duplicado"
 
-#: option.c:2290
+#: option.c:2347
 #, fuzzy
 msgid "bad PTR record"
 msgstr "expediente PTR erróneo"
 
-#: option.c:2320
+#: option.c:2378
 #, fuzzy
 msgid "bad NAPTR record"
 msgstr "expediente NAPTR erróneo"
 
-#: option.c:2346
+#: option.c:2403
 msgid "TXT record string too long"
 msgstr "expediente TXT demasiado largo"
 
-#: option.c:2350
+#: option.c:2451
 msgid "bad TXT record"
 msgstr "expediente TXT erróneo"
 
-#: option.c:2410
+#: option.c:2467
 msgid "bad SRV record"
 msgstr "expediente SRV erróneo"
 
-#: option.c:2419
+#: option.c:2474
 msgid "bad SRV target"
 msgstr "destino SRV erróneo"
 
-#: option.c:2434
+#: option.c:2488
 msgid "invalid priority"
 msgstr "prioridad inválida"
 
-#: option.c:2441
+#: option.c:2495
 msgid "invalid weight"
 msgstr "peso inválido"
 
-#: option.c:2460
+#: option.c:2514
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr "opción no soportada (verificar que dnsmasq fue compilado con soporte para DHCP/TFTP/DBus)"
 
-#: option.c:2503
+#: option.c:2557
 #, c-format
 msgid "files nested too deep in %s"
 msgstr "archivos jerarquizados demasiado profundo en %s"
 
-#: option.c:2511 tftp.c:499
+#: option.c:2565 tftp.c:513
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "no se puede leer %s: %s"
 
-#: option.c:2572
+#: option.c:2626
 msgid "missing \""
 msgstr "falta \""
 
-#: option.c:2619
+#: option.c:2673
 msgid "bad option"
 msgstr "opción errónea"
 
-#: option.c:2621
+#: option.c:2675
 msgid "extraneous parameter"
 msgstr "parámetro extraño"
 
-#: option.c:2623
+#: option.c:2677
 msgid "missing parameter"
 msgstr "parámetro ausente"
 
-#: option.c:2631
+#: option.c:2685
 msgid "error"
 msgstr "error"
 
-#: option.c:2637
+#: option.c:2691
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr "%s en línea %d de %%s"
 
-#: option.c:2686 option.c:2717
+#: option.c:2740 option.c:2771
 #, fuzzy, c-format
 msgid "read %s"
 msgstr "leyendo %s"
 
-#: option.c:2789
+#: option.c:2843
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Dnsmasq versión %s  %s\n"
 
-#: option.c:2790
+#: option.c:2844
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -744,71 +757,71 @@ msgstr ""
 "Opciones de compilación %s\n"
 "\n"
 
-#: option.c:2791
+#: option.c:2845
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Este software viene SIN NINGUNA GARANTIA.\n"
 
-#: option.c:2792
+#: option.c:2846
 #, 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:2793
+#: option.c:2847
 #, 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:2804
+#: option.c:2858
 msgid "try --help"
 msgstr "pruebe --help"
 
-#: option.c:2806
+#: option.c:2860
 msgid "try -w"
 msgstr "pruebe -w"
 
-#: option.c:2809
+#: option.c:2863
 #, fuzzy, c-format
 msgid "bad command line options: %s"
 msgstr "opciones de línea de comandos erróneas: %s"
 
-#: option.c:2850
+#: option.c:2904
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "no se puede obtener host-name (nombre de host): %s"
 
-#: option.c:2878
+#: option.c:2932
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr "solo un archivo resolv.conf permitido en modo no-poll."
 
-#: option.c:2888
+#: option.c:2942
 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:2891 network.c:748 dhcp.c:734
+#: option.c:2945 network.c:754 dhcp.c:734
 #, fuzzy, c-format
 msgid "failed to read %s: %s"
 msgstr "no se pudo leer %s: %s"
 
-#: option.c:2909
+#: option.c:2962
 #, c-format
 msgid "no search directive found in %s"
 msgstr "ninguna directiva de búsqueda encontrada en %s"
 
-#: option.c:2930
+#: option.c:2983
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr "debe haber un dominio predeterminado cuando --dhcp-fqdn está fijado"
 
-#: option.c:2934
+#: option.c:2987
 msgid "syntax check OK"
 msgstr "revisión de sintaxis OK"
 
-#: forward.c:405
+#: forward.c:409
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "servidor DNS %s se reusó a hacer una búsqueda recursiva"
 
-#: forward.c:433
+#: forward.c:437
 msgid "possible DNS-rebind attack detected"
 msgstr "posible ataque de revinculación DNS detectado"
 
@@ -817,284 +830,284 @@ msgstr "posible ataque de revinculaci
 msgid "unknown interface %s in bridge-interface"
 msgstr "interface desconocida %s en bridge-interface"
 
-#: network.c:411 dnsmasq.c:184
+#: network.c:417 dnsmasq.c:189
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr "no se pudo crear un socket escuchador: %s"
 
-#: network.c:418
+#: network.c:424
 #, c-format
 msgid "failed to set IPV6 options on listening socket: %s"
 msgstr "no se pudo fijar opciones IPv6 sobre socket escuchador: %s"
 
-#: network.c:444
+#: network.c:450
 #, c-format
 msgid "failed to bind listening socket for %s: %s"
 msgstr "no se pudo acoplar socket escuchador para %s: %s"
 
-#: network.c:449
+#: network.c:455
 #, c-format
 msgid "failed to listen on socket: %s"
 msgstr "no se pudo escuchar en socket: %s"
 
-#: network.c:461
+#: network.c:467
 #, fuzzy, c-format
 msgid "failed to create TFTP socket: %s"
 msgstr "no se pudo crear socket TFTP: %s"
 
-#: network.c:655
+#: network.c:661
 #, fuzzy, c-format
 msgid "failed to bind server socket for %s: %s"
 msgstr "no se pudo acoplar socket escuchador para %s: %s"
 
-#: network.c:688
+#: network.c:694
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr "ignorando servidor DNS %s - interface local"
 
-#: network.c:699
+#: network.c:705
 #, 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:714
+#: network.c:720
 msgid "unqualified"
 msgstr "no calificado"
 
-#: network.c:714
+#: network.c:720
 msgid "names"
 msgstr "nombres"
 
-#: network.c:716
+#: network.c:722
 msgid "default"
 msgstr "predeterminado"
 
-#: network.c:718
+#: network.c:724
 msgid "domain"
 msgstr "dominio"
 
-#: network.c:721
+#: network.c:727
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr "usando direcciones locales solo para %s %s"
 
-#: network.c:723
+#: network.c:729
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr "usando servidor DNS %s#%d para %s %s"
 
-#: network.c:726
+#: network.c:732
 #, fuzzy, c-format
 msgid "using nameserver %s#%d(via %s)"
 msgstr "usando servidor DNS %s#%d(vía %s)"
 
-#: network.c:728
+#: network.c:734
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr "usando servidor DNS %s#%d"
 
-#: dnsmasq.c:141
+#: dnsmasq.c:146
 #, 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:146
+#: dnsmasq.c:151
 #, fuzzy
 msgid "asychronous logging is not available under Solaris"
 msgstr "bitacoreo asincrónico no está disponible bajo Solaris"
 
-#: dnsmasq.c:165
+#: dnsmasq.c:170
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "no se pudo encontrar lista de interfaces: %s"
 
-#: dnsmasq.c:173
+#: dnsmasq.c:178
 #, c-format
 msgid "unknown interface %s"
 msgstr "interface desconocida %s"
 
-#: dnsmasq.c:179
+#: dnsmasq.c:184
 #, c-format
 msgid "no interface with address %s"
 msgstr "ninguna interface con dirección %s"
 
-#: dnsmasq.c:196 dnsmasq.c:660
+#: dnsmasq.c:201 dnsmasq.c:665
 #, c-format
 msgid "DBus error: %s"
 msgstr "error DBus: %s"
 
-#: dnsmasq.c:199
+#: dnsmasq.c:204
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr "DBus no disponible: fijar HAVE_DBUS en src/config.h"
 
-#: dnsmasq.c:225
+#: dnsmasq.c:230
 #, c-format
 msgid "unknown user or group: %s"
 msgstr "usuario o grupo desconocido: %s"
 
-#: dnsmasq.c:282
+#: dnsmasq.c:287
 #, 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:443
+#: dnsmasq.c:448
 #, fuzzy, c-format
 msgid "started, version %s DNS disabled"
 msgstr "iniciado, versión %s DNS deshabilitado"
 
-#: dnsmasq.c:445
+#: dnsmasq.c:450
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "iniciado, versión %s tamaño de caché %d"
 
-#: dnsmasq.c:447
+#: dnsmasq.c:452
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "iniciado, versión %s caché deshabilitado"
 
-#: dnsmasq.c:449
+#: dnsmasq.c:454
 #, c-format
 msgid "compile time options: %s"
 msgstr "opciones de compilación: %s"
 
-#: dnsmasq.c:455
+#: dnsmasq.c:460
 msgid "DBus support enabled: connected to system bus"
 msgstr "soporte DBus habilitado: conectado a bus de sistema"
 
-#: dnsmasq.c:457
+#: dnsmasq.c:462
 msgid "DBus support enabled: bus connection pending"
 msgstr "soporte DBus habilitado: conección a bus pendiente"
 
-#: dnsmasq.c:462
+#: dnsmasq.c:467
 #, 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:466
+#: dnsmasq.c:471
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "fijando opción --bind-interfaces debido a limitaciones de sistema operativo"
 
-#: dnsmasq.c:471
+#: dnsmasq.c:476
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "advertencia: interface %s no existe actuálmente"
 
-#: dnsmasq.c:476
+#: dnsmasq.c:481
 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:479
+#: dnsmasq.c:484
 #, fuzzy
 msgid "warning: no upstream servers configured"
 msgstr "advertencia: ningún servidor upstream configurado"
 
-#: dnsmasq.c:483
+#: dnsmasq.c:488
 #, 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:496
+#: dnsmasq.c:501
 #, 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:498
+#: dnsmasq.c:503
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr "DHCP, proxy en subred %.0s%s%.0s"
 
-#: dnsmasq.c:499
+#: dnsmasq.c:504
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, rango de IPs %s -- %s, tiempo de arriendo %s"
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "root is "
 msgstr "root es "
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 #, fuzzy
 msgid "enabled"
 msgstr "habilitado"
 
-#: dnsmasq.c:516
+#: dnsmasq.c:521
 msgid "secure mode"
 msgstr "modo seguro"
 
-#: dnsmasq.c:542
+#: dnsmasq.c:547
 #, 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:662
+#: dnsmasq.c:667
 msgid "connected to system DBus"
 msgstr "conectado a DBus de sistema"
 
-#: dnsmasq.c:752
+#: dnsmasq.c:757
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr "no se puede hacer fork hacia el fondo: %s"
 
-#: dnsmasq.c:755
+#: dnsmasq.c:760
 #, fuzzy, c-format
 msgid "failed to create helper: %s"
 msgstr "no se pudo crear ayudante: %s"
 
-#: dnsmasq.c:758
+#: dnsmasq.c:763
 #, fuzzy, c-format
 msgid "setting capabilities failed: %s"
 msgstr "configuración de capacidades ha fallado: %s"
 
-#: dnsmasq.c:762
+#: dnsmasq.c:767
 #, fuzzy, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr "no se pudo cambiar user-id a %s: %s"
 
-#: dnsmasq.c:767
+#: dnsmasq.c:772
 #, fuzzy, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr "no se pudo cambiar group-id a %s: %s"
 
-#: dnsmasq.c:770
+#: dnsmasq.c:775
 #, fuzzy, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr "no se pudo abrir archivo PID %s: %s"
 
-#: dnsmasq.c:773
+#: dnsmasq.c:778
 #, fuzzy, c-format
 msgid "cannot open %s: %s"
 msgstr "no se puede abrir %s: %s"
 
-#: dnsmasq.c:828
+#: dnsmasq.c:833
 #, c-format
 msgid "child process killed by signal %d"
 msgstr "proceso hijo eliminado por señal %d"
 
-#: dnsmasq.c:832
+#: dnsmasq.c:837
 #, c-format
 msgid "child process exited with status %d"
 msgstr "proceso hijo hizo exit con estado %d"
 
-#: dnsmasq.c:836
+#: dnsmasq.c:841
 #, fuzzy, c-format
 msgid "failed to execute %s: %s"
 msgstr "no se pudo ejecutar %s: %s"
 
-#: dnsmasq.c:880
+#: dnsmasq.c:885
 msgid "exiting on receipt of SIGTERM"
 msgstr "saliendo al recibir SIGTERM"
 
-#: dnsmasq.c:898
+#: dnsmasq.c:903
 #, fuzzy, c-format
 msgid "failed to access %s: %s"
 msgstr "no se pudo accesar %s: %s"
 
-#: dnsmasq.c:920
+#: dnsmasq.c:925
 #, c-format
 msgid "reading %s"
 msgstr "leyendo %s"
 
-#: dnsmasq.c:931
+#: dnsmasq.c:936
 #, fuzzy, c-format
 msgid "no servers found in %s, will retry"
 msgstr "ningún servidor encontrado en %s, se reintentará"
@@ -1134,51 +1147,56 @@ msgstr "Paquete DHCP recibido en %s que no tiene direcci
 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:770
+#: dhcp.c:772
 #, fuzzy, c-format
 msgid "bad line at %s line %d"
 msgstr "línea errónea en %s línea %d"
 
-#: dhcp.c:885
+#: dhcp.c:815
+#, c-format
+msgid "ignoring %s line %d, duplicate name or IP address"
+msgstr ""
+
+#: dhcp.c:897
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "dirección IP duplicada %s en directiva dhcp-config."
 
-#: dhcp.c:888
+#: dhcp.c:900
 #, fuzzy, c-format
 msgid "duplicate IP address %s in %s."
 msgstr "dirección IP duplicada %s en %s."
 
-#: dhcp.c:931
+#: dhcp.c:943
 #, 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:936
+#: dhcp.c:948
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "dirección IP duplicada %s (%s) en directiva dhcp-config"
 
-#: lease.c:60
+#: lease.c:66
 #, fuzzy, c-format
 msgid "cannot open or create lease file %s: %s"
 msgstr "no se puede abrir o crear archivo de arriendos %s: %s"
 
-#: lease.c:86
+#: lease.c:92
 msgid "too many stored leases"
 msgstr "demasiados arriendos almacenados"
 
-#: lease.c:127
+#: lease.c:128
 #, fuzzy, c-format
 msgid "cannot run lease-init script %s: %s"
 msgstr "no se puede ejecutar archivo guión lease-init %s: %s"
 
-#: lease.c:133
+#: lease.c:134
 #, c-format
 msgid "lease-init script returned exit code %s"
 msgstr "archivo guión lease-init retornó exit code %s"
 
-#: lease.c:240
+#: lease.c:234
 #, fuzzy, c-format
 msgid "failed to write %s: %s (retry in %us)"
 msgstr "error al escribir %s: %s (reintentar en %us)"
@@ -1206,19 +1224,23 @@ msgstr "%u Subred DHCP disponible: %s/%s"
 msgid "%u Available DHCP range: %s -- %s"
 msgstr "%u Rango DHCP disponible: %s -- %s"
 
-#: rfc2131.c:384 rfc2131.c:418
+#: rfc2131.c:384
 msgid "disabled"
 msgstr "deshabilitado"
 
-#: rfc2131.c:433 rfc2131.c:1096
+#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+msgid "ignored"
+msgstr "ignorado"
+
+#: rfc2131.c:433 rfc2131.c:1100
 msgid "address in use"
 msgstr "dirección en uso"
 
-#: rfc2131.c:447 rfc2131.c:933
+#: rfc2131.c:447 rfc2131.c:937
 msgid "no address available"
 msgstr "ninguna dirección disponible"
 
-#: rfc2131.c:454 rfc2131.c:1059
+#: rfc2131.c:454 rfc2131.c:1063
 msgid "wrong network"
 msgstr "red equivocada"
 
@@ -1226,7 +1248,7 @@ msgstr "red equivocada"
 msgid "no address configured"
 msgstr "ninguna dirección configurada"
 
-#: rfc2131.c:473 rfc2131.c:1109
+#: rfc2131.c:473 rfc2131.c:1113
 msgid "no leases left"
 msgstr "no sobra ningún arriendo"
 
@@ -1245,106 +1267,102 @@ msgstr "%u Clase de vendedor: %s"
 msgid "%u User class: %s"
 msgstr "%u Clase de usuario: %s"
 
-#: rfc2131.c:733
+#: rfc2131.c:737
 msgid "PXE BIS not supported"
 msgstr "no hay soporte para BIS PXE"
 
-#: rfc2131.c:849
+#: rfc2131.c:853
 #, fuzzy, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "deshabilitando dirección DHCP estática %s para %s"
 
-#: rfc2131.c:870
+#: rfc2131.c:874
 msgid "unknown lease"
 msgstr "arriendo desconocido"
 
-#: rfc2131.c:879 rfc2131.c:1223
-msgid "ignored"
-msgstr "ignorado"
-
-#: rfc2131.c:902
+#: rfc2131.c:906
 #, 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:912
+#: rfc2131.c:916
 #, 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:915
+#: rfc2131.c:919
 #, 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:931 rfc2131.c:1102
+#: rfc2131.c:935 rfc2131.c:1106
 msgid "no unique-id"
 msgstr "ningún unique-id (identificación única)"
 
-#: rfc2131.c:999
+#: rfc2131.c:1003
 msgid "wrong server-ID"
 msgstr "ID de servidor equivocada"
 
-#: rfc2131.c:1018
+#: rfc2131.c:1022
 msgid "wrong address"
 msgstr "dirección equivocada"
 
-#: rfc2131.c:1035
+#: rfc2131.c:1039
 msgid "lease not found"
 msgstr "arriendo no encontrado"
 
-#: rfc2131.c:1067
+#: rfc2131.c:1071
 msgid "address not available"
 msgstr "dirección no disponible"
 
-#: rfc2131.c:1078
+#: rfc2131.c:1082
 msgid "static lease available"
 msgstr "arriendo estático disponible"
 
-#: rfc2131.c:1082
+#: rfc2131.c:1086
 msgid "address reserved"
 msgstr "dirección reservada"
 
-#: rfc2131.c:1090
+#: rfc2131.c:1094
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr "abandonando arriendo a %s de %s"
 
-#: rfc2131.c:1567
+#: rfc2131.c:1583
 #, c-format
 msgid "%u tags: %s"
 msgstr "%u etiquetas: %s"
 
-#: rfc2131.c:1580
+#: rfc2131.c:1596
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr "%u nombre de bootfile: %s"
 
-#: rfc2131.c:1589
+#: rfc2131.c:1605
 #, c-format
 msgid "%u server name: %s"
 msgstr "%u nombre de servidor: %s"
 
-#: rfc2131.c:1597
+#: rfc2131.c:1613
 #, fuzzy, c-format
 msgid "%u next server: %s"
 msgstr "%u siguiente servidor: %s"
 
-#: rfc2131.c:1664
+#: rfc2131.c:1680
 #, 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:1903
+#: rfc2131.c:1919
 msgid "PXE menu too large"
 msgstr "menú PXE demasiado grande"
 
-#: rfc2131.c:2018
+#: rfc2131.c:2034
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr "Ignorando dominio %s para nombre de host DHCP %s"
 
-#: rfc2131.c:2036
+#: rfc2131.c:2052
 #, fuzzy, c-format
 msgid "%u requested options: %s"
 msgstr "%u opciones solicitadas: %s"
@@ -1381,31 +1399,31 @@ msgstr "no se puede crear socket BPF DHCP: %s"
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "pedido DHCP por tipo de hardware no-soportado (%d) recibido en %s"
 
-#: tftp.c:172
+#: tftp.c:179
 msgid "unable to get free port for TFTP"
 msgstr "incapaz de conseguir puerto libre para TFTP"
 
-#: tftp.c:187
+#: tftp.c:194
 #, c-format
 msgid "unsupported request from %s"
 msgstr "pedido no-soportado desde %s"
 
-#: tftp.c:268
+#: tftp.c:282
 #, c-format
 msgid "TFTP sent %s to %s"
 msgstr "TFTP envió %s a %s"
 
-#: tftp.c:291
+#: tftp.c:305
 #, fuzzy, c-format
 msgid "file %s not found"
 msgstr "archivo %s no encontrado"
 
-#: tftp.c:402
+#: tftp.c:416
 #, c-format
 msgid "TFTP error %d %s received from %s"
 msgstr "error TFTP %d %s recibido de %s"
 
-#: tftp.c:433
+#: tftp.c:447
 #, fuzzy, c-format
 msgid "TFTP failed sending %s to %s"
 msgstr "TFTP no pudo enviar %s a %s"
index ee4d70f4aa8d3ea097eea6605ab7adea799a82ab..a0a6fbd935642f6957388f00ebdab252de805f2a 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.24\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 20:57+0100\n"
+"POT-Creation-Date: 2009-06-18 12:24+0100\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"
@@ -20,75 +20,79 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr ""
 
-#: cache.c:798 dhcp.c:783
+#: cache.c:798 dhcp.c:785
 #, c-format
 msgid "bad address at %s line %d"
 msgstr ""
 
-#: cache.c:853 dhcp.c:797
+#: cache.c:856 dhcp.c:801
 #, c-format
 msgid "bad name at %s line %d"
 msgstr ""
 
-#: cache.c:860 dhcp.c:863
+#: cache.c:863 dhcp.c:875
 #, c-format
 msgid "read %s - %d addresses"
 msgstr ""
 
-#: cache.c:899
+#: cache.c:902
 msgid "cleared cache"
 msgstr ""
 
-#: cache.c:930 option.c:1026
+#: cache.c:933 option.c:1055
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr ""
 
-#: cache.c:1049
+#: cache.c:1052
 #, 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:1126
+#: cache.c:1129
 #, c-format
 msgid "time %lu"
 msgstr ""
 
-#: cache.c:1127
+#: cache.c:1130
 #, c-format
 msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
 msgstr ""
 
-#: cache.c:1129
+#: cache.c:1132
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr ""
 
-#: cache.c:1152
+#: cache.c:1155
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr ""
 
-#: util.c:56
+#: util.c:59
 #, c-format
 msgid "failed to seed the random number generator: %s"
 msgstr ""
 
-#: util.c:164
+#: util.c:191
+msgid "failed to allocate memory"
+msgstr ""
+
+#: util.c:229 option.c:548
 msgid "could not get memory"
 msgstr ""
 
-#: util.c:174
+#: util.c:239
 #, c-format
 msgid "cannot create pipe: %s"
 msgstr ""
 
-#: util.c:182
+#: util.c:247
 #, c-format
 msgid "failed to allocate %d bytes"
 msgstr ""
 
-#: util.c:287
+#: util.c:352
 #, c-format
 msgid "infinite"
 msgstr ""
@@ -502,286 +506,294 @@ msgstr ""
 msgid "Check configuration syntax."
 msgstr ""
 
-#: option.c:601
+#: option.c:613
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
 "\n"
 msgstr ""
 
-#: option.c:603
+#: option.c:615
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr ""
 
-#: option.c:605
+#: option.c:617
 #, c-format
 msgid "Valid options are:\n"
 msgstr ""
 
-#: option.c:646
+#: option.c:658
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr ""
 
-#: option.c:723
+#: option.c:735
 msgid "bad dhcp-option"
 msgstr ""
 
-#: option.c:780
+#: option.c:792
 msgid "bad IP address"
 msgstr ""
 
-#: option.c:878
+#: option.c:891
 msgid "bad domain in dhcp-option"
 msgstr ""
 
-#: option.c:936
+#: option.c:950
 msgid "dhcp-option too long"
 msgstr ""
 
-#: option.c:945
+#: option.c:959
 msgid "illegal dhcp-match"
 msgstr ""
 
-#: option.c:981
+#: option.c:995
 msgid "illegal repeated flag"
 msgstr ""
 
-#: option.c:989
+#: option.c:1003
 msgid "illegal repeated keyword"
 msgstr ""
 
-#: option.c:1046 tftp.c:345
+#: option.c:1086 tftp.c:359
 #, c-format
 msgid "cannot access %s: %s"
 msgstr ""
 
-#: option.c:1084
+#: option.c:1131
 msgid "only one dhcp-hostsfile allowed"
 msgstr ""
 
-#: option.c:1091
+#: option.c:1138
 msgid "only one dhcp-optsfile allowed"
 msgstr ""
 
-#: option.c:1135
+#: option.c:1183
 msgid "bad MX preference"
 msgstr ""
 
-#: option.c:1139
+#: option.c:1188
 msgid "bad MX name"
 msgstr ""
 
-#: option.c:1153
+#: option.c:1202
 msgid "bad MX target"
 msgstr ""
 
-#: option.c:1165
+#: option.c:1212
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:1395 option.c:1399
+#: option.c:1214
+msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
+msgstr ""
+
+#: option.c:1442 option.c:1446
 msgid "bad port"
 msgstr ""
 
-#: option.c:1418 option.c:1443
+#: option.c:1465 option.c:1490
 msgid "interface binding not supported"
 msgstr ""
 
-#: option.c:1564
+#: option.c:1611
 msgid "bad port range"
 msgstr ""
 
-#: option.c:1581
+#: option.c:1628
 msgid "bad bridge-interface"
 msgstr ""
 
-#: option.c:1622
+#: option.c:1669
 msgid "bad dhcp-range"
 msgstr ""
 
-#: option.c:1648
+#: option.c:1695
 msgid "only one netid tag allowed"
 msgstr ""
 
-#: option.c:1693
+#: option.c:1740
 msgid "inconsistent DHCP range"
 msgstr ""
 
-#: option.c:1865
+#: option.c:1912
 msgid "bad DHCP host name"
 msgstr ""
 
-#: option.c:2155 option.c:2427
+#: option.c:2201 option.c:2481
 msgid "invalid port number"
 msgstr ""
 
-#: option.c:2238
+#: option.c:2284
 msgid "invalid alias range"
 msgstr ""
 
-#: option.c:2250
+#: option.c:2297
 msgid "bad interface name"
 msgstr ""
 
-#: option.c:2273
+#: option.c:2322
+msgid "bad CNAME"
+msgstr ""
+
+#: option.c:2327
 msgid "duplicate CNAME"
 msgstr ""
 
-#: option.c:2290
+#: option.c:2347
 msgid "bad PTR record"
 msgstr ""
 
-#: option.c:2320
+#: option.c:2378
 msgid "bad NAPTR record"
 msgstr ""
 
-#: option.c:2346
+#: option.c:2403
 msgid "TXT record string too long"
 msgstr ""
 
-#: option.c:2350
+#: option.c:2451
 msgid "bad TXT record"
 msgstr ""
 
-#: option.c:2410
+#: option.c:2467
 msgid "bad SRV record"
 msgstr ""
 
-#: option.c:2419
+#: option.c:2474
 msgid "bad SRV target"
 msgstr ""
 
-#: option.c:2434
+#: option.c:2488
 msgid "invalid priority"
 msgstr ""
 
-#: option.c:2441
+#: option.c:2495
 msgid "invalid weight"
 msgstr ""
 
-#: option.c:2460
+#: option.c:2514
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr ""
 
-#: option.c:2503
+#: option.c:2557
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
-#: option.c:2511 tftp.c:499
+#: option.c:2565 tftp.c:513
 #, c-format
 msgid "cannot read %s: %s"
 msgstr ""
 
-#: option.c:2572
+#: option.c:2626
 msgid "missing \""
 msgstr ""
 
-#: option.c:2619
+#: option.c:2673
 msgid "bad option"
 msgstr ""
 
-#: option.c:2621
+#: option.c:2675
 msgid "extraneous parameter"
 msgstr ""
 
-#: option.c:2623
+#: option.c:2677
 msgid "missing parameter"
 msgstr ""
 
-#: option.c:2631
+#: option.c:2685
 msgid "error"
 msgstr ""
 
-#: option.c:2637
+#: option.c:2691
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr ""
 
-#: option.c:2686 option.c:2717
+#: option.c:2740 option.c:2771
 #, c-format
 msgid "read %s"
 msgstr ""
 
-#: option.c:2789
+#: option.c:2843
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr ""
 
-#: option.c:2790
+#: option.c:2844
 #, c-format
 msgid ""
 "Compile time options %s\n"
 "\n"
 msgstr ""
 
-#: option.c:2791
+#: option.c:2845
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr ""
 
-#: option.c:2792
+#: option.c:2846
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr ""
 
-#: option.c:2793
+#: option.c:2847
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
 msgstr ""
 
-#: option.c:2804
+#: option.c:2858
 msgid "try --help"
 msgstr ""
 
-#: option.c:2806
+#: option.c:2860
 msgid "try -w"
 msgstr ""
 
-#: option.c:2809
+#: option.c:2863
 #, c-format
 msgid "bad command line options: %s"
 msgstr ""
 
-#: option.c:2850
+#: option.c:2904
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr ""
 
-#: option.c:2878
+#: option.c:2932
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr ""
 
-#: option.c:2888
+#: option.c:2942
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr ""
 
-#: option.c:2891 network.c:748 dhcp.c:734
+#: option.c:2945 network.c:754 dhcp.c:734
 #, c-format
 msgid "failed to read %s: %s"
 msgstr ""
 
-#: option.c:2909
+#: option.c:2962
 #, c-format
 msgid "no search directive found in %s"
 msgstr ""
 
-#: option.c:2930
+#: option.c:2983
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr ""
 
-#: option.c:2934
+#: option.c:2987
 msgid "syntax check OK"
 msgstr ""
 
-#: forward.c:405
+#: forward.c:409
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr ""
 
-#: forward.c:433
+#: forward.c:437
 msgid "possible DNS-rebind attack detected"
 msgstr ""
 
@@ -790,280 +802,280 @@ msgstr ""
 msgid "unknown interface %s in bridge-interface"
 msgstr ""
 
-#: network.c:411 dnsmasq.c:184
+#: network.c:417 dnsmasq.c:189
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr ""
 
-#: network.c:418
+#: network.c:424
 #, c-format
 msgid "failed to set IPV6 options on listening socket: %s"
 msgstr ""
 
-#: network.c:444
+#: network.c:450
 #, c-format
 msgid "failed to bind listening socket for %s: %s"
 msgstr ""
 
-#: network.c:449
+#: network.c:455
 #, c-format
 msgid "failed to listen on socket: %s"
 msgstr ""
 
-#: network.c:461
+#: network.c:467
 #, c-format
 msgid "failed to create TFTP socket: %s"
 msgstr ""
 
-#: network.c:655
+#: network.c:661
 #, c-format
 msgid "failed to bind server socket for %s: %s"
 msgstr ""
 
-#: network.c:688
+#: network.c:694
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr ""
 
-#: network.c:699
+#: network.c:705
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %s"
 msgstr ""
 
-#: network.c:714
+#: network.c:720
 msgid "unqualified"
 msgstr ""
 
-#: network.c:714
+#: network.c:720
 msgid "names"
 msgstr ""
 
-#: network.c:716
+#: network.c:722
 msgid "default"
 msgstr ""
 
-#: network.c:718
+#: network.c:724
 msgid "domain"
 msgstr ""
 
-#: network.c:721
+#: network.c:727
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr ""
 
-#: network.c:723
+#: network.c:729
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr ""
 
-#: network.c:726
+#: network.c:732
 #, c-format
 msgid "using nameserver %s#%d(via %s)"
 msgstr ""
 
-#: network.c:728
+#: network.c:734
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr ""
 
-#: dnsmasq.c:141
+#: dnsmasq.c:146
 msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:146
+#: dnsmasq.c:151
 msgid "asychronous logging is not available under Solaris"
 msgstr ""
 
-#: dnsmasq.c:165
+#: dnsmasq.c:170
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr ""
 
-#: dnsmasq.c:173
+#: dnsmasq.c:178
 #, c-format
 msgid "unknown interface %s"
 msgstr ""
 
-#: dnsmasq.c:179
+#: dnsmasq.c:184
 #, c-format
 msgid "no interface with address %s"
 msgstr ""
 
-#: dnsmasq.c:196 dnsmasq.c:660
+#: dnsmasq.c:201 dnsmasq.c:665
 #, c-format
 msgid "DBus error: %s"
 msgstr ""
 
-#: dnsmasq.c:199
+#: dnsmasq.c:204
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:225
+#: dnsmasq.c:230
 #, c-format
 msgid "unknown user or group: %s"
 msgstr ""
 
-#: dnsmasq.c:282
+#: dnsmasq.c:287
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr ""
 
-#: dnsmasq.c:443
+#: dnsmasq.c:448
 #, c-format
 msgid "started, version %s DNS disabled"
 msgstr ""
 
-#: dnsmasq.c:445
+#: dnsmasq.c:450
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr ""
 
-#: dnsmasq.c:447
+#: dnsmasq.c:452
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr ""
 
-#: dnsmasq.c:449
+#: dnsmasq.c:454
 #, c-format
 msgid "compile time options: %s"
 msgstr ""
 
-#: dnsmasq.c:455
+#: dnsmasq.c:460
 msgid "DBus support enabled: connected to system bus"
 msgstr ""
 
-#: dnsmasq.c:457
+#: dnsmasq.c:462
 msgid "DBus support enabled: bus connection pending"
 msgstr ""
 
-#: dnsmasq.c:462
+#: dnsmasq.c:467
 #, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr ""
 
-#: dnsmasq.c:466
+#: dnsmasq.c:471
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr ""
 
-#: dnsmasq.c:471
+#: dnsmasq.c:476
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr ""
 
-#: dnsmasq.c:476
+#: dnsmasq.c:481
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:479
+#: dnsmasq.c:484
 msgid "warning: no upstream servers configured"
 msgstr ""
 
-#: dnsmasq.c:483
+#: dnsmasq.c:488
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr ""
 
-#: dnsmasq.c:496
+#: dnsmasq.c:501
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:498
+#: dnsmasq.c:503
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr ""
 
-#: dnsmasq.c:499
+#: dnsmasq.c:504
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "root is "
 msgstr ""
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "enabled"
 msgstr ""
 
-#: dnsmasq.c:516
+#: dnsmasq.c:521
 msgid "secure mode"
 msgstr ""
 
-#: dnsmasq.c:542
+#: dnsmasq.c:547
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr ""
 
-#: dnsmasq.c:662
+#: dnsmasq.c:667
 msgid "connected to system DBus"
 msgstr ""
 
-#: dnsmasq.c:752
+#: dnsmasq.c:757
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr ""
 
-#: dnsmasq.c:755
+#: dnsmasq.c:760
 #, c-format
 msgid "failed to create helper: %s"
 msgstr ""
 
-#: dnsmasq.c:758
+#: dnsmasq.c:763
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr ""
 
-#: dnsmasq.c:762
+#: dnsmasq.c:767
 #, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr ""
 
-#: dnsmasq.c:767
+#: dnsmasq.c:772
 #, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr ""
 
-#: dnsmasq.c:770
+#: dnsmasq.c:775
 #, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr ""
 
-#: dnsmasq.c:773
+#: dnsmasq.c:778
 #, c-format
 msgid "cannot open %s: %s"
 msgstr ""
 
-#: dnsmasq.c:828
+#: dnsmasq.c:833
 #, c-format
 msgid "child process killed by signal %d"
 msgstr ""
 
-#: dnsmasq.c:832
+#: dnsmasq.c:837
 #, c-format
 msgid "child process exited with status %d"
 msgstr ""
 
-#: dnsmasq.c:836
+#: dnsmasq.c:841
 #, c-format
 msgid "failed to execute %s: %s"
 msgstr ""
 
-#: dnsmasq.c:880
+#: dnsmasq.c:885
 msgid "exiting on receipt of SIGTERM"
 msgstr ""
 
-#: dnsmasq.c:898
+#: dnsmasq.c:903
 #, c-format
 msgid "failed to access %s: %s"
 msgstr ""
 
-#: dnsmasq.c:920
+#: dnsmasq.c:925
 #, c-format
 msgid "reading %s"
 msgstr ""
 
-#: dnsmasq.c:931
+#: dnsmasq.c:936
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr ""
@@ -1103,51 +1115,56 @@ msgstr ""
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr ""
 
-#: dhcp.c:770
+#: dhcp.c:772
 #, c-format
 msgid "bad line at %s line %d"
 msgstr ""
 
-#: dhcp.c:885
+#: dhcp.c:815
+#, c-format
+msgid "ignoring %s line %d, duplicate name or IP address"
+msgstr ""
+
+#: dhcp.c:897
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr ""
 
-#: dhcp.c:888
+#: dhcp.c:900
 #, c-format
 msgid "duplicate IP address %s in %s."
 msgstr ""
 
-#: dhcp.c:931
+#: dhcp.c:943
 #, c-format
 msgid "%s has more than one address in hostsfile, using %s for DHCP"
 msgstr ""
 
-#: dhcp.c:936
+#: dhcp.c:948
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr ""
 
-#: lease.c:60
+#: lease.c:66
 #, c-format
 msgid "cannot open or create lease file %s: %s"
 msgstr ""
 
-#: lease.c:86
+#: lease.c:92
 msgid "too many stored leases"
 msgstr ""
 
-#: lease.c:127
+#: lease.c:128
 #, c-format
 msgid "cannot run lease-init script %s: %s"
 msgstr ""
 
-#: lease.c:133
+#: lease.c:134
 #, c-format
 msgid "lease-init script returned exit code %s"
 msgstr ""
 
-#: lease.c:240
+#: lease.c:234
 #, c-format
 msgid "failed to write %s: %s (retry in %us)"
 msgstr ""
@@ -1175,19 +1192,23 @@ msgstr ""
 msgid "%u Available DHCP range: %s -- %s"
 msgstr ""
 
-#: rfc2131.c:384 rfc2131.c:418
+#: rfc2131.c:384
 msgid "disabled"
 msgstr ""
 
-#: rfc2131.c:433 rfc2131.c:1096
+#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+msgid "ignored"
+msgstr ""
+
+#: rfc2131.c:433 rfc2131.c:1100
 msgid "address in use"
 msgstr ""
 
-#: rfc2131.c:447 rfc2131.c:933
+#: rfc2131.c:447 rfc2131.c:937
 msgid "no address available"
 msgstr ""
 
-#: rfc2131.c:454 rfc2131.c:1059
+#: rfc2131.c:454 rfc2131.c:1063
 msgid "wrong network"
 msgstr ""
 
@@ -1195,7 +1216,7 @@ msgstr ""
 msgid "no address configured"
 msgstr ""
 
-#: rfc2131.c:473 rfc2131.c:1109
+#: rfc2131.c:473 rfc2131.c:1113
 msgid "no leases left"
 msgstr ""
 
@@ -1214,106 +1235,102 @@ msgstr ""
 msgid "%u User class: %s"
 msgstr ""
 
-#: rfc2131.c:733
+#: rfc2131.c:737
 msgid "PXE BIS not supported"
 msgstr ""
 
-#: rfc2131.c:849
+#: rfc2131.c:853
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr ""
 
-#: rfc2131.c:870
+#: rfc2131.c:874
 msgid "unknown lease"
 msgstr ""
 
-#: rfc2131.c:879 rfc2131.c:1223
-msgid "ignored"
-msgstr ""
-
-#: rfc2131.c:902
+#: rfc2131.c:906
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:912
+#: rfc2131.c:916
 #, c-format
 msgid "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:915
+#: rfc2131.c:919
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:931 rfc2131.c:1102
+#: rfc2131.c:935 rfc2131.c:1106
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:999
+#: rfc2131.c:1003
 msgid "wrong server-ID"
 msgstr ""
 
-#: rfc2131.c:1018
+#: rfc2131.c:1022
 msgid "wrong address"
 msgstr ""
 
-#: rfc2131.c:1035
+#: rfc2131.c:1039
 msgid "lease not found"
 msgstr ""
 
-#: rfc2131.c:1067
+#: rfc2131.c:1071
 msgid "address not available"
 msgstr ""
 
-#: rfc2131.c:1078
+#: rfc2131.c:1082
 msgid "static lease available"
 msgstr ""
 
-#: rfc2131.c:1082
+#: rfc2131.c:1086
 msgid "address reserved"
 msgstr ""
 
-#: rfc2131.c:1090
+#: rfc2131.c:1094
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr ""
 
-#: rfc2131.c:1567
+#: rfc2131.c:1583
 #, c-format
 msgid "%u tags: %s"
 msgstr ""
 
-#: rfc2131.c:1580
+#: rfc2131.c:1596
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr ""
 
-#: rfc2131.c:1589
+#: rfc2131.c:1605
 #, c-format
 msgid "%u server name: %s"
 msgstr ""
 
-#: rfc2131.c:1597
+#: rfc2131.c:1613
 #, c-format
 msgid "%u next server: %s"
 msgstr ""
 
-#: rfc2131.c:1664
+#: rfc2131.c:1680
 #, c-format
 msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
 msgstr ""
 
-#: rfc2131.c:1903
+#: rfc2131.c:1919
 msgid "PXE menu too large"
 msgstr ""
 
-#: rfc2131.c:2018
+#: rfc2131.c:2034
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr ""
 
-#: rfc2131.c:2036
+#: rfc2131.c:2052
 #, c-format
 msgid "%u requested options: %s"
 msgstr ""
@@ -1350,31 +1367,31 @@ msgstr ""
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr ""
 
-#: tftp.c:172
+#: tftp.c:179
 msgid "unable to get free port for TFTP"
 msgstr ""
 
-#: tftp.c:187
+#: tftp.c:194
 #, c-format
 msgid "unsupported request from %s"
 msgstr ""
 
-#: tftp.c:268
+#: tftp.c:282
 #, c-format
 msgid "TFTP sent %s to %s"
 msgstr ""
 
-#: tftp.c:291
+#: tftp.c:305
 #, c-format
 msgid "file %s not found"
 msgstr ""
 
-#: tftp.c:402
+#: tftp.c:416
 #, c-format
 msgid "TFTP error %d %s received from %s"
 msgstr ""
 
-#: tftp.c:433
+#: tftp.c:447
 #, c-format
 msgid "TFTP failed sending %s to %s"
 msgstr ""
index da03c846261281ba3747224f4492c0d3a6e04596..c9f2f9fbf56bcebc9015dcf85de0e2d0a94d643d 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -4,10 +4,10 @@
 # Translation completed by Gildas Le Nadan <3ntr0p13@gmail.com>
 msgid ""
 msgstr ""
-"Project-Id-Version: dnsmasq 2.48\n"
+"Project-Id-Version: dnsmasq 2.51\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 20:57+0100\n"
-"PO-Revision-Date: 2009-06-03 21:56+0100\n"
+"POT-Creation-Date: 2009-06-18 12:24+0100\n"
+"PO-Revision-Date: 2009-09-30 10:22+0100\n"
 "Last-Translator:  Gildas Le Nadan <3ntr0p13@gmail.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
@@ -19,75 +19,79 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr "Impossible de charger les noms à partir de %s : %s"
 
-#: cache.c:798 dhcp.c:783
+#: cache.c:798 dhcp.c:785
 #, c-format
 msgid "bad address at %s line %d"
 msgstr "mauvaise adresse dans %s ligne %d"
 
-#: cache.c:853 dhcp.c:797
+#: cache.c:856 dhcp.c:801
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "mauvais nom dans %s ligne %d"
 
-#: cache.c:860 dhcp.c:863
+#: cache.c:863 dhcp.c:875
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "lecture %s - %d adresses"
 
-#: cache.c:899
+#: cache.c:902
 msgid "cleared cache"
 msgstr "cache vidé"
 
-#: cache.c:930 option.c:1026
+#: cache.c:933 option.c:1055
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr "Ne peut pas lire le répertoire %s : %s"
 
-#: cache.c:1049
+#: cache.c:1052
 #, 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:1126
+#: cache.c:1129
 #, c-format
 msgid "time %lu"
 msgstr "horodatage %lu"
 
-#: cache.c:1127
+#: cache.c:1130
 #, 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:1129
+#: cache.c:1132
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr "requêtes transmises %u, requêtes résolues localement %u"
 
-#: cache.c:1152
+#: cache.c:1155
 #, 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"
 
-#: util.c:56
+#: util.c:59
 #, c-format
 msgid "failed to seed the random number generator: %s"
 msgstr "impossible d'initialiser le générateur de nombre aléatoire : %s"
 
-#: util.c:164
+#: util.c:191
+msgid "failed to allocate memory"
+msgstr "impossible d'allouer la mémoire"
+
+#: util.c:229 option.c:548
 msgid "could not get memory"
 msgstr "impossible d'allouer de la mémoire"
 
-#: util.c:174
+#: util.c:239
 #, c-format
 msgid "cannot create pipe: %s"
 msgstr "Ne peut pas créer le tube %s : %s"
 
-#: util.c:182
+#: util.c:247
 #, c-format
 msgid "failed to allocate %d bytes"
 msgstr "impossible d'allouer %d octets"
 
-#: util.c:287
+#: util.c:352
 #, c-format
 msgid "infinite"
 msgstr "illimité(e)"
@@ -515,7 +519,7 @@ msgstr "Service de d
 msgid "Check configuration syntax."
 msgstr "vérification de la syntaxe de la configuration"
 
-#: option.c:601
+#: option.c:613
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -524,217 +528,225 @@ msgstr ""
 "Usage : dnsmasq [options]\n"
 "\n"
 
-#: option.c:603
+#: option.c:615
 #, 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:605
+#: option.c:617
 #, c-format
 msgid "Valid options are:\n"
 msgstr "Les options valides sont :\n"
 
-#: option.c:646
+#: option.c:658
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr "Options DHCP connues :\n"
 
-#: option.c:723
+#: option.c:735
 msgid "bad dhcp-option"
 msgstr "mauvaise valeur de 'dhcp-option'"
 
 #
-#: option.c:780
+#: option.c:792
 msgid "bad IP address"
 msgstr "mauvaise adresse IP"
 
-#: option.c:878
+#: option.c:891
 msgid "bad domain in dhcp-option"
 msgstr "mauvais domaine dans dhcp-option"
 
-#: option.c:936
+#: option.c:950
 msgid "dhcp-option too long"
 msgstr "dhcp-option trop long"
 
-#: option.c:945
+#: option.c:959
 msgid "illegal dhcp-match"
 msgstr "valeur illégale pour 'dhcp-match'"
 
-#: option.c:981
+#: option.c:995
 msgid "illegal repeated flag"
 msgstr "Une option ne pouvant être spécifié qu'une seule fois à été donnée plusieurs fois."
 
-#: option.c:989
+#: option.c:1003
 msgid "illegal repeated keyword"
 msgstr "Mot-clef ne pouvant être répété"
 
-#: option.c:1046 tftp.c:345
+#: option.c:1086 tftp.c:359
 #, c-format
 msgid "cannot access %s: %s"
 msgstr "Ne peut pas lire %s : %s"
 
 #
-#: option.c:1084
+#: option.c:1131
 msgid "only one dhcp-hostsfile allowed"
 msgstr "une seule valeur est autorisée pour 'dhcp-hostsfile'"
 
 #
-#: option.c:1091
+#: option.c:1138
 msgid "only one dhcp-optsfile allowed"
 msgstr "une seule valeur est autorisée pour 'dhcp-optsfile'"
 
-#: option.c:1135
+#: option.c:1183
 msgid "bad MX preference"
 msgstr "Mauvaise préference MX"
 
-#: option.c:1139
+#: option.c:1188
 msgid "bad MX name"
 msgstr "mauvais nom MX"
 
-#: option.c:1153
+#: option.c:1202
 msgid "bad MX target"
 msgstr "mauvaise cible MX"
 
-#: option.c:1165
+#: option.c:1212
 msgid "cannot run scripts under uClinux"
 msgstr "ne peut exécuter de script sous uClinux"
 
-#: option.c:1395 option.c:1399
+#: option.c:1214
+msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
+msgstr "pour permettre l'exécution de scripts au changement de bail (lease-change), recompiler en définissant HAVE_SCRIPT"
+
+#: option.c:1442 option.c:1446
 msgid "bad port"
 msgstr "mauvais port"
 
-#: option.c:1418 option.c:1443
+#: option.c:1465 option.c:1490
 msgid "interface binding not supported"
 msgstr "association d'interface non supportée"
 
 #
-#: option.c:1564
+#: option.c:1611
 msgid "bad port range"
 msgstr "mauvaise gamme de ports"
 
-#: option.c:1581
+#: option.c:1628
 msgid "bad bridge-interface"
 msgstr "mauvaise interface-pont"
 
-#: option.c:1622
+#: option.c:1669
 msgid "bad dhcp-range"
 msgstr "mauvaise plage d'adresses DHCP (dhcp-range)"
 
-#: option.c:1648
+#: option.c:1695
 msgid "only one netid tag allowed"
 msgstr "une seule étiquette netid est autorisée"
 
-#: option.c:1693
+#: option.c:1740
 msgid "inconsistent DHCP range"
 msgstr "plage d'adresses DHCP incohérente"
 
 #
-#: option.c:1865
+#: option.c:1912
 msgid "bad DHCP host name"
 msgstr "mauvais nom d'hôte DHCP"
 
-#: option.c:2155 option.c:2427
+#: option.c:2201 option.c:2481
 msgid "invalid port number"
 msgstr "numéro de port invalide"
 
 #
-#: option.c:2238
+#: option.c:2284
 msgid "invalid alias range"
 msgstr "poids invalide"
 
 #
-#: option.c:2250
+#: option.c:2297
 msgid "bad interface name"
 msgstr "mauvais nom d'interface"
 
-#: option.c:2273
+#: option.c:2322
+msgid "bad CNAME"
+msgstr "mauvais CNAME"
+
+#: option.c:2327
 msgid "duplicate CNAME"
 msgstr "ce CNAME existe déja"
 
 #
-#: option.c:2290
+#: option.c:2347
 msgid "bad PTR record"
 msgstr "mauvais champ PTR"
 
 #
-#: option.c:2320
+#: option.c:2378
 msgid "bad NAPTR record"
 msgstr "mauvais champ NAPTR"
 
-#: option.c:2346
+#: option.c:2403
 msgid "TXT record string too long"
 msgstr "chaîne du champ TXT trop longue"
 
-#: option.c:2350
+#: option.c:2451
 msgid "bad TXT record"
 msgstr "mauvais champ TXT"
 
-#: option.c:2410
+#: option.c:2467
 msgid "bad SRV record"
 msgstr "mauvais champ SRV"
 
-#: option.c:2419
+#: option.c:2474
 msgid "bad SRV target"
 msgstr "mauvaise cible SRV"
 
-#: option.c:2434
+#: option.c:2488
 msgid "invalid priority"
 msgstr "priorité invalide"
 
-#: option.c:2441
+#: option.c:2495
 msgid "invalid weight"
 msgstr "poids invalide"
 
-#: option.c:2460
+#: option.c:2514
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr "option non supportée (vérifier que Dnsmasq a été compilé avec le support DHCP/TFTP/DBus)"
 
-#: option.c:2503
+#: option.c:2557
 #, c-format
 msgid "files nested too deep in %s"
 msgstr "trop de niveaux de récursion pour les fichiers dans %s"
 
-#: option.c:2511 tftp.c:499
+#: option.c:2565 tftp.c:513
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "Ne peut pas lire %s : %s"
 
-#: option.c:2572
+#: option.c:2626
 msgid "missing \""
 msgstr "il manque \""
 
-#: option.c:2619
+#: option.c:2673
 msgid "bad option"
 msgstr "mauvaise option"
 
-#: option.c:2621
+#: option.c:2675
 msgid "extraneous parameter"
 msgstr "paramètre en trop"
 
-#: option.c:2623
+#: option.c:2677
 msgid "missing parameter"
 msgstr "paramètre manquant"
 
-#: option.c:2631
+#: option.c:2685
 msgid "error"
 msgstr "erreur"
 
-#: option.c:2637
+#: option.c:2691
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr "%s à la ligne %d de %%s"
 
-#: option.c:2686 option.c:2717
+#: option.c:2740 option.c:2771
 #, c-format
 msgid "read %s"
 msgstr "Lecture de %s"
 
-#: option.c:2789
+#: option.c:2843
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Version de Dnsmasq %s  %s\n"
 
-#: option.c:2790
+#: option.c:2844
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -743,71 +755,71 @@ msgstr ""
 "Options à la compilation %s\n"
 "\n"
 
-#: option.c:2791
+#: option.c:2845
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Ce logiciel est fourni sans AUCUNE GARANTIE.\n"
 
-#: option.c:2792
+#: option.c:2846
 #, 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:2793
+#: option.c:2847
 #, 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:2804
+#: option.c:2858
 msgid "try --help"
 msgstr "essayez avec --help"
 
-#: option.c:2806
+#: option.c:2860
 msgid "try -w"
 msgstr "essayez avec -w"
 
-#: option.c:2809
+#: option.c:2863
 #, c-format
 msgid "bad command line options: %s"
 msgstr "mauvaises options en ligne de commande : %s."
 
-#: option.c:2850
+#: option.c:2904
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "ne peut pas obtenir le nom de la machine : %s"
 
-#: option.c:2878
+#: option.c:2932
 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:2888
+#: option.c:2942
 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:2891 network.c:748 dhcp.c:734
+#: option.c:2945 network.c:754 dhcp.c:734
 #, c-format
 msgid "failed to read %s: %s"
 msgstr "impossible de lire %s : %s"
 
-#: option.c:2909
+#: option.c:2962
 #, c-format
 msgid "no search directive found in %s"
 msgstr "pas de directive de recherche trouvée dans %s"
 
-#: option.c:2930
+#: option.c:2983
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr "un domaine par défaut doit être spécifié lorsque l'option --dhcp-fqdn est utilisée"
 
-#: option.c:2934
+#: option.c:2987
 msgid "syntax check OK"
 msgstr "vérification de syntaxe OK"
 
-#: forward.c:405
+#: forward.c:409
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "le serveur de nom %s a refusé de faire une recherche récursive"
 
-#: forward.c:433
+#: forward.c:437
 msgid "possible DNS-rebind attack detected"
 msgstr "détection d'une possible attaque de type DNS-rebind"
 
@@ -816,283 +828,283 @@ msgstr "d
 msgid "unknown interface %s in bridge-interface"
 msgstr "interface %s inconnue spécifiée comme interface de pont"
 
-#: network.c:411 dnsmasq.c:184
+#: network.c:417 dnsmasq.c:189
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr "impossible de créer une socket de lecture : %s"
 
-#: network.c:418
+#: network.c:424
 #, c-format
 msgid "failed to set IPV6 options on listening socket: %s"
 msgstr "impossible d'activer les options IPV6 sur la socket de lecture : %s"
 
-#: network.c:444
+#: network.c:450
 #, c-format
 msgid "failed to bind listening socket for %s: %s"
 msgstr "impossible de lier la socket de lecture pour %s : %s"
 
-#: network.c:449
+#: network.c:455
 #, c-format
 msgid "failed to listen on socket: %s"
 msgstr "impossible de lire sur la socket : %s"
 
-#: network.c:461
+#: network.c:467
 #, c-format
 msgid "failed to create TFTP socket: %s"
 msgstr "impossible de créer une socket TFTP : %s"
 
-#: network.c:655
+#: network.c:661
 #, c-format
 msgid "failed to bind server socket for %s: %s"
 msgstr "impossible de lier la socket de serveur pour %s : %s"
 
-#: network.c:688
+#: network.c:694
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr "ignore le serveur de nom %s - interface locale"
 
-#: network.c:699
+#: network.c:705
 #, 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:714
+#: network.c:720
 msgid "unqualified"
 msgstr "non-qualifié(e)"
 
-#: network.c:714
+#: network.c:720
 msgid "names"
 msgstr "noms"
 
-#: network.c:716
+#: network.c:722
 msgid "default"
 msgstr "défaut"
 
-#: network.c:718
+#: network.c:724
 msgid "domain"
 msgstr "domaine"
 
-#: network.c:721
+#: network.c:727
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr "utilise les adresses locales seulement pour %s %s"
 
-#: network.c:723
+#: network.c:729
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr "utilise le serveur de nom %s#%d pour %s %s"
 
-#: network.c:726
+#: network.c:732
 #, c-format
 msgid "using nameserver %s#%d(via %s)"
 msgstr "utilise le serveur de nom %s#%d (via %s)"
 
-#: network.c:728
+#: network.c:734
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr "utilise le serveur de nom %s#%d"
 
 #
-#: dnsmasq.c:141
+#: dnsmasq.c:146
 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:146
+#: dnsmasq.c:151
 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:170
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "impossible de trouver la liste des interfaces : %s"
 
-#: dnsmasq.c:173
+#: dnsmasq.c:178
 #, c-format
 msgid "unknown interface %s"
 msgstr "interface %s inconnue"
 
-#: dnsmasq.c:179
+#: dnsmasq.c:184
 #, c-format
 msgid "no interface with address %s"
 msgstr "pas d'interface avec l'adresse %s"
 
-#: dnsmasq.c:196 dnsmasq.c:660
+#: dnsmasq.c:201 dnsmasq.c:665
 #, c-format
 msgid "DBus error: %s"
 msgstr "Erreur DBus : %s"
 
-#: dnsmasq.c:199
+#: dnsmasq.c:204
 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:225
+#: dnsmasq.c:230
 #, c-format
 msgid "unknown user or group: %s"
 msgstr "utilisateur ou groupe inconnu : %s"
 
-#: dnsmasq.c:282
+#: dnsmasq.c:287
 #, 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:443
+#: dnsmasq.c:448
 #, c-format
 msgid "started, version %s DNS disabled"
 msgstr "démarrage avec le DNS désactivé (version %s)"
 
-#: dnsmasq.c:445
+#: dnsmasq.c:450
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "demarré, version %s (taille de cache %d)"
 
-#: dnsmasq.c:447
+#: dnsmasq.c:452
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "démarrage avec le cache désactivé (version %s)"
 
-#: dnsmasq.c:449
+#: dnsmasq.c:454
 #, c-format
 msgid "compile time options: %s"
 msgstr "options à la compilation : %s"
 
-#: dnsmasq.c:455
+#: dnsmasq.c:460
 msgid "DBus support enabled: connected to system bus"
 msgstr "Support DBus autorisé : connecté au bus système"
 
-#: dnsmasq.c:457
+#: dnsmasq.c:462
 msgid "DBus support enabled: bus connection pending"
 msgstr "Support DBus autorisé : connexion au bus en attente"
 
-#: dnsmasq.c:462
+#: dnsmasq.c:467
 #, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr "Impossible de changer pour l'utilisateur %s : %s"
 
-#: dnsmasq.c:466
+#: dnsmasq.c:471
 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:471
+#: dnsmasq.c:476
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "attention : l'interface %s n'existe pas actuellement"
 
-#: dnsmasq.c:476
+#: dnsmasq.c:481
 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:479
+#: dnsmasq.c:484
 msgid "warning: no upstream servers configured"
 msgstr "attention : aucun serveur amont n'est configuré"
 
-#: dnsmasq.c:483
+#: dnsmasq.c:488
 #, 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:496
+#: dnsmasq.c:501
 #, 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:498
+#: dnsmasq.c:503
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr "DHCP, proxy sur le sous-réseau %.0s%s%.0s"
 
-#: dnsmasq.c:499
+#: dnsmasq.c:504
 #, 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:514
+#: dnsmasq.c:519
 msgid "root is "
 msgstr "root est"
 
 #
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "enabled"
 msgstr "activé"
 
-#: dnsmasq.c:516
+#: dnsmasq.c:521
 msgid "secure mode"
 msgstr "mode sécurisé"
 
-#: dnsmasq.c:542
+#: dnsmasq.c:547
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr "le nombre maximum de transferts TFTP simultanés sera restreint à %d"
 
-#: dnsmasq.c:662
+#: dnsmasq.c:667
 msgid "connected to system DBus"
 msgstr "connecté au systeme DBus"
 
-#: dnsmasq.c:752
+#: dnsmasq.c:757
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr "Ne peut se lancer en tâche de fond : %s"
 
-#: dnsmasq.c:755
+#: dnsmasq.c:760
 #, c-format
 msgid "failed to create helper: %s"
 msgstr "impossible de créer le 'helper' : %s"
 
-#: dnsmasq.c:758
+#: dnsmasq.c:763
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr "impossible de configurer la capacité %s"
 
-#: dnsmasq.c:762
+#: dnsmasq.c:767
 #, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr "Impossible de changer l'identifiant utilisateur pour %s : %s"
 
-#: dnsmasq.c:767
+#: dnsmasq.c:772
 #, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr "Impossible de changer l'identifiant de groupe pour %s : %s"
 
-#: dnsmasq.c:770
+#: dnsmasq.c:775
 #, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr "impossible de lire le fichier de PID %s : %s"
 
-#: dnsmasq.c:773
+#: dnsmasq.c:778
 #, c-format
 msgid "cannot open %s: %s"
 msgstr "Ne peut pas lire %s : %s"
 
-#: dnsmasq.c:828
+#: dnsmasq.c:833
 #, c-format
 msgid "child process killed by signal %d"
 msgstr "Le processus fils a été terminé par le signal %d"
 
-#: dnsmasq.c:832
+#: dnsmasq.c:837
 #, c-format
 msgid "child process exited with status %d"
 msgstr "Le processus fils s'est terminé avec le statut %d"
 
-#: dnsmasq.c:836
+#: dnsmasq.c:841
 #, c-format
 msgid "failed to execute %s: %s"
 msgstr "impossible d'exécuter à %s : %s"
 
-#: dnsmasq.c:880
+#: dnsmasq.c:885
 msgid "exiting on receipt of SIGTERM"
 msgstr "sortie sur réception du signal SIGTERM"
 
-#: dnsmasq.c:898
+#: dnsmasq.c:903
 #, c-format
 msgid "failed to access %s: %s"
 msgstr "impossible d'accéder à %s : %s"
 
-#: dnsmasq.c:920
+#: dnsmasq.c:925
 #, c-format
 msgid "reading %s"
 msgstr "Lecture de %s"
 
-#: dnsmasq.c:931
+#: dnsmasq.c:936
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr "aucun serveur trouvé dans %s, va réessayer"
@@ -1132,51 +1144,56 @@ msgstr "Paquet DHCP re
 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:770
+#: dhcp.c:772
 #, c-format
 msgid "bad line at %s line %d"
 msgstr "mauvaise ligne dans %s ligne %d"
 
-#: dhcp.c:885
+#: dhcp.c:815
+#, c-format
+msgid "ignoring %s line %d, duplicate name or IP address"
+msgstr "ignore %s à la ligne %d : duplication de nom ou d'adresse IP"
+
+#: dhcp.c:897
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "adresse IP %s dupliquée dans la directive dhcp-config."
 
-#: dhcp.c:888
+#: dhcp.c:900
 #, c-format
 msgid "duplicate IP address %s in %s."
 msgstr "adresse IP %s dupliquée dans %s."
 
-#: dhcp.c:931
+#: dhcp.c:943
 #, 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:936
+#: dhcp.c:948
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "adresse IP %s (%s) dupliquée dans la directive dhcp-config."
 
-#: lease.c:60
+#: lease.c:66
 #, c-format
 msgid "cannot open or create lease file %s: %s"
 msgstr "ne peut ouvrir ou créer le fichiers de baux %s : %s"
 
-#: lease.c:86
+#: lease.c:92
 msgid "too many stored leases"
 msgstr "beaucoup trop de baux enregistrés"
 
-#: lease.c:127
+#: lease.c:128
 #, c-format
 msgid "cannot run lease-init script %s: %s"
 msgstr "Ne peut pas exécuter le script lease-init %s : %s"
 
-#: lease.c:133
+#: lease.c:134
 #, c-format
 msgid "lease-init script returned exit code %s"
 msgstr "le script lease-init a retourné le code %s"
 
-#: lease.c:240
+#: lease.c:234
 #, c-format
 msgid "failed to write %s: %s (retry in %us)"
 msgstr "impossible de lire %s : %s (prochain essai dans %us)"
@@ -1204,19 +1221,23 @@ msgstr "%u sous-r
 msgid "%u Available DHCP range: %s -- %s"
 msgstr "%u la gamme DHCP disponible est : %s -- %s"
 
-#: rfc2131.c:384 rfc2131.c:418
+#: rfc2131.c:384
 msgid "disabled"
 msgstr "désactivé"
 
-#: rfc2131.c:433 rfc2131.c:1096
+#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+msgid "ignored"
+msgstr "ignoré"
+
+#: rfc2131.c:433 rfc2131.c:1100
 msgid "address in use"
 msgstr "adresse déjà utilisée"
 
-#: rfc2131.c:447 rfc2131.c:933
+#: rfc2131.c:447 rfc2131.c:937
 msgid "no address available"
 msgstr "pas d'adresse disponible"
 
-#: rfc2131.c:454 rfc2131.c:1059
+#: rfc2131.c:454 rfc2131.c:1063
 msgid "wrong network"
 msgstr "mauvais réseau"
 
@@ -1224,7 +1245,7 @@ msgstr "mauvais r
 msgid "no address configured"
 msgstr "pas d'adresse configurée"
 
-#: rfc2131.c:473 rfc2131.c:1109
+#: rfc2131.c:473 rfc2131.c:1113
 msgid "no leases left"
 msgstr "plus aucun bail disponible"
 
@@ -1243,106 +1264,102 @@ msgstr "%u Classe de vendeur ('Vendor Class') : %s"
 msgid "%u User class: %s"
 msgstr "%u Classe d'utilisateur : %s"
 
-#: rfc2131.c:733
+#: rfc2131.c:737
 msgid "PXE BIS not supported"
 msgstr "Service PXE BIS (Boot Integrity Services) non supporté"
 
-#: rfc2131.c:849
+#: rfc2131.c:853
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "désactive l'adresse statique DHCP %s pour %s"
 
-#: rfc2131.c:870
+#: rfc2131.c:874
 msgid "unknown lease"
 msgstr "bail inconnu"
 
-#: rfc2131.c:879 rfc2131.c:1223
-msgid "ignored"
-msgstr "ignoré"
-
-#: rfc2131.c:902
+#: rfc2131.c:906
 #, 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:912
+#: rfc2131.c:916
 #, 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:915
+#: rfc2131.c:919
 #, 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:931 rfc2131.c:1102
+#: rfc2131.c:935 rfc2131.c:1106
 msgid "no unique-id"
 msgstr "pas d'identifiant unique"
 
-#: rfc2131.c:999
+#: rfc2131.c:1003
 msgid "wrong server-ID"
 msgstr "mauvais identifiant de serveur"
 
-#: rfc2131.c:1018
+#: rfc2131.c:1022
 msgid "wrong address"
 msgstr "mauvaise adresse"
 
-#: rfc2131.c:1035
+#: rfc2131.c:1039
 msgid "lease not found"
 msgstr "bail non trouvé"
 
-#: rfc2131.c:1067
+#: rfc2131.c:1071
 msgid "address not available"
 msgstr "adresse non disponible"
 
-#: rfc2131.c:1078
+#: rfc2131.c:1082
 msgid "static lease available"
 msgstr "bail statique disponible"
 
-#: rfc2131.c:1082
+#: rfc2131.c:1086
 msgid "address reserved"
 msgstr "adresse reservée"
 
-#: rfc2131.c:1090
+#: rfc2131.c:1094
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr "abandon du bail de %s pour %s"
 
-#: rfc2131.c:1567
+#: rfc2131.c:1583
 #, c-format
 msgid "%u tags: %s"
 msgstr "%u options: %s"
 
-#: rfc2131.c:1580
+#: rfc2131.c:1596
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr "%u nom de fichier 'bootfile' : %s"
 
-#: rfc2131.c:1589
+#: rfc2131.c:1605
 #, c-format
 msgid "%u server name: %s"
 msgstr "%u nom du serveur : %s"
 
-#: rfc2131.c:1597
+#: rfc2131.c:1613
 #, c-format
 msgid "%u next server: %s"
 msgstr "%u serveur suivant : %s"
 
-#: rfc2131.c:1664
+#: rfc2131.c:1680
 #, c-format
 msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
 msgstr "Impossible d'envoyer l'option DHCP/BOOTP %d : pas assez d'espace dans le paquet"
 
-#: rfc2131.c:1903
+#: rfc2131.c:1919
 msgid "PXE menu too large"
 msgstr "menu PXE trop grand"
 
-#: rfc2131.c:2018
+#: rfc2131.c:2034
 #, 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:2036
+#: rfc2131.c:2052
 #, c-format
 msgid "%u requested options: %s"
 msgstr "%u options demandées : %s"
@@ -1379,31 +1396,31 @@ msgstr "impossible de cr
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "requête DHCP pour un type de matériel non supporté (%d) reçue sur %s"
 
-#: tftp.c:172
+#: tftp.c:179
 msgid "unable to get free port for TFTP"
 msgstr "impossible d'obtenir un port libre pour TFTP"
 
-#: tftp.c:187
+#: tftp.c:194
 #, c-format
 msgid "unsupported request from %s"
 msgstr "requête de %s non supportée"
 
-#: tftp.c:268
+#: tftp.c:282
 #, c-format
 msgid "TFTP sent %s to %s"
 msgstr "TFTP envoyé %s à %s"
 
-#: tftp.c:291
+#: tftp.c:305
 #, c-format
 msgid "file %s not found"
 msgstr "fichier %s non trouvé"
 
-#: tftp.c:402
+#: tftp.c:416
 #, c-format
 msgid "TFTP error %d %s received from %s"
 msgstr "TFTP erreur %d %s reçu de %s"
 
-#: tftp.c:433
+#: tftp.c:447
 #, c-format
 msgid "TFTP failed sending %s to %s"
 msgstr "TFTP : impossible d'envoyer %s à %s"
index f87bc91bf820d7f1e37fd58597ee3d61fb681bec..a5ff6e83143a965dbb990699da1207f321f612fc 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.24\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 20:57+0100\n"
+"POT-Creation-Date: 2009-06-18 12:24+0100\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"
@@ -21,86 +21,92 @@ msgid "failed to load names from %s: %s"
 msgstr "gagal memuat nama-nama dari %s: %s"
 
 # OK
-#: cache.c:798 dhcp.c:783
+#: cache.c:798 dhcp.c:785
 #, fuzzy, c-format
 msgid "bad address at %s line %d"
 msgstr "kesalahan nama pada %s baris %d"
 
 # OK
-#: cache.c:853 dhcp.c:797
+#: cache.c:856 dhcp.c:801
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "kesalahan nama pada %s baris %d"
 
 # OK
-#: cache.c:860 dhcp.c:863
+#: cache.c:863 dhcp.c:875
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "membaca %s - %d alamat"
 
 # OK
-#: cache.c:899
+#: cache.c:902
 msgid "cleared cache"
 msgstr "cache telah dihapus"
 
 # OK
-#: cache.c:930 option.c:1026
+#: cache.c:933 option.c:1055
 #, fuzzy, c-format
 msgid "cannot access directory %s: %s"
 msgstr "tidak bisa membaca %s: %s"
 
 # OK
-#: cache.c:1049
+#: cache.c:1052
 #, 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:1126
+#: cache.c:1129
 #, c-format
 msgid "time %lu"
 msgstr ""
 
 # OK
-#: cache.c:1127
+#: cache.c:1130
 #, 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:1129
+#: cache.c:1132
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr ""
 
-#: cache.c:1152
+#: cache.c:1155
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr ""
 
 # OK
-#: util.c:56
+#: util.c:59
 #, fuzzy, c-format
 msgid "failed to seed the random number generator: %s"
 msgstr "gagal mendengarkan di socket: %s"
 
 # OK
-#: util.c:164
+#: util.c:191
+#, fuzzy
+msgid "failed to allocate memory"
+msgstr "gagal memuat %S: %m"
+
+# OK
+#: util.c:229 option.c:548
 msgid "could not get memory"
 msgstr "tidak bisa mendapatkan memory"
 
 # OK
-#: util.c:174
+#: util.c:239
 #, fuzzy, c-format
 msgid "cannot create pipe: %s"
 msgstr "tidak bisa membaca %s: %s"
 
 # OK
-#: util.c:182
+#: util.c:247
 #, fuzzy, c-format
 msgid "failed to allocate %d bytes"
 msgstr "gagal memuat %S: %m"
 
 # OK
-#: util.c:287
+#: util.c:352
 #, c-format
 msgid "infinite"
 msgstr "tak terbatas"
@@ -591,7 +597,7 @@ msgid "Check configuration syntax."
 msgstr ""
 
 # OK
-#: option.c:601
+#: option.c:613
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -601,250 +607,258 @@ msgstr ""
 "\n"
 
 # OK
-#: option.c:603
+#: option.c:615
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr "Gunakan pilihan pendek saja pada perintah baris.\n"
 
 # OK
-#: option.c:605
+#: option.c:617
 #, fuzzy, c-format
 msgid "Valid options are:\n"
 msgstr "Pilihan yang boleh adalah:\n"
 
-#: option.c:646
+#: option.c:658
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr ""
 
 # OK
-#: option.c:723
+#: option.c:735
 msgid "bad dhcp-option"
 msgstr "dhcp-option salah"
 
 # OK
-#: option.c:780
+#: option.c:792
 #, fuzzy
 msgid "bad IP address"
 msgstr "membaca %s - %d alamat"
 
 # OK
-#: option.c:878
+#: option.c:891
 msgid "bad domain in dhcp-option"
 msgstr "domain dalam dhcp-option salah"
 
 # OK
-#: option.c:936
+#: option.c:950
 msgid "dhcp-option too long"
 msgstr "dhcp-option terlalu panjang"
 
-#: option.c:945
+#: option.c:959
 msgid "illegal dhcp-match"
 msgstr ""
 
-#: option.c:981
+#: option.c:995
 msgid "illegal repeated flag"
 msgstr ""
 
-#: option.c:989
+#: option.c:1003
 msgid "illegal repeated keyword"
 msgstr ""
 
 # OK
-#: option.c:1046 tftp.c:345
+#: option.c:1086 tftp.c:359
 #, fuzzy, c-format
 msgid "cannot access %s: %s"
 msgstr "tidak bisa membaca %s: %s"
 
-#: option.c:1084
+#: option.c:1131
 msgid "only one dhcp-hostsfile allowed"
 msgstr ""
 
-#: option.c:1091
+#: option.c:1138
 msgid "only one dhcp-optsfile allowed"
 msgstr ""
 
 # OK
-#: option.c:1135
+#: option.c:1183
 msgid "bad MX preference"
 msgstr "kesukaan MX salah"
 
 # OK
-#: option.c:1139
+#: option.c:1188
 msgid "bad MX name"
 msgstr "nama MX salah"
 
 # OK
-#: option.c:1153
+#: option.c:1202
 msgid "bad MX target"
 msgstr "target MX salah"
 
-#: option.c:1165
+#: option.c:1212
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
+#: option.c:1214
+msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
+msgstr ""
+
 # OK
-#: option.c:1395 option.c:1399
+#: option.c:1442 option.c:1446
 msgid "bad port"
 msgstr "port salah"
 
-#: option.c:1418 option.c:1443
+#: option.c:1465 option.c:1490
 msgid "interface binding not supported"
 msgstr ""
 
 # OK
-#: option.c:1564
+#: option.c:1611
 #, fuzzy
 msgid "bad port range"
 msgstr "port salah"
 
-#: option.c:1581
+#: option.c:1628
 msgid "bad bridge-interface"
 msgstr ""
 
 # OK
-#: option.c:1622
+#: option.c:1669
 msgid "bad dhcp-range"
 msgstr "dhcp-range salah"
 
-#: option.c:1648
+#: option.c:1695
 msgid "only one netid tag allowed"
 msgstr ""
 
 # OK
-#: option.c:1693
+#: option.c:1740
 msgid "inconsistent DHCP range"
 msgstr "jangkauan DHCP tidak konsisten"
 
 # OK
-#: option.c:1865
+#: option.c:1912
 #, fuzzy
 msgid "bad DHCP host name"
 msgstr "nama MX salah"
 
 # OK
-#: option.c:2155 option.c:2427
+#: option.c:2201 option.c:2481
 msgid "invalid port number"
 msgstr "nomor port tidak benar"
 
 # OK
-#: option.c:2238
+#: option.c:2284
 #, fuzzy
 msgid "invalid alias range"
 msgstr "weight tidak benar"
 
 # OK
-#: option.c:2250
+#: option.c:2297
 #, fuzzy
 msgid "bad interface name"
 msgstr "nama MX salah"
 
-#: option.c:2273
+#: option.c:2322
+msgid "bad CNAME"
+msgstr ""
+
+#: option.c:2327
 msgid "duplicate CNAME"
 msgstr ""
 
 # OK
-#: option.c:2290
+#: option.c:2347
 #, fuzzy
 msgid "bad PTR record"
 msgstr "rekord SRV salah"
 
 # OK
-#: option.c:2320
+#: option.c:2378
 #, fuzzy
 msgid "bad NAPTR record"
 msgstr "rekord SRV salah"
 
 # OK
-#: option.c:2346
+#: option.c:2403
 msgid "TXT record string too long"
 msgstr "string rekord TXT terlalu panjang"
 
 # OK
-#: option.c:2350
+#: option.c:2451
 msgid "bad TXT record"
 msgstr "rekord TXT salah"
 
 # OK
-#: option.c:2410
+#: option.c:2467
 msgid "bad SRV record"
 msgstr "rekord SRV salah"
 
 # OK
-#: option.c:2419
+#: option.c:2474
 msgid "bad SRV target"
 msgstr "target SRV salah"
 
 # OK
-#: option.c:2434
+#: option.c:2488
 msgid "invalid priority"
 msgstr "prioritas tidak benar"
 
 # OK
-#: option.c:2441
+#: option.c:2495
 msgid "invalid weight"
 msgstr "weight tidak benar"
 
-#: option.c:2460
+#: option.c:2514
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr ""
 
-#: option.c:2503
+#: option.c:2557
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
 # OK
-#: option.c:2511 tftp.c:499
+#: option.c:2565 tftp.c:513
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "tidak bisa membaca %s: %s"
 
 # OK
-#: option.c:2572
+#: option.c:2626
 msgid "missing \""
 msgstr "kurang \""
 
 # OK
-#: option.c:2619
+#: option.c:2673
 msgid "bad option"
 msgstr "pilihan salah"
 
 # OK
-#: option.c:2621
+#: option.c:2675
 msgid "extraneous parameter"
 msgstr "parameter berlebihan"
 
 # OK
-#: option.c:2623
+#: option.c:2677
 msgid "missing parameter"
 msgstr "parameter kurang"
 
 # OK
-#: option.c:2631
+#: option.c:2685
 msgid "error"
 msgstr "kesalahan"
 
 # OK
-#: option.c:2637
+#: option.c:2691
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr "%s pada baris %d dari %%s"
 
 # OK
-#: option.c:2686 option.c:2717
+#: option.c:2740 option.c:2771
 #, fuzzy, c-format
 msgid "read %s"
 msgstr "membaca %s"
 
 # OK
-#: option.c:2789
+#: option.c:2843
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Dnsmasq versi %s  %s\n"
 
 # OK
-#: option.c:2790
+#: option.c:2844
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -854,80 +868,80 @@ msgstr ""
 "\n"
 
 # OK
-#: option.c:2791
+#: option.c:2845
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Perangkat lunak ini tersedia TANPA JAMINAN SEDIKITPUN.\n"
 
 # OK
-#: option.c:2792
+#: option.c:2846
 #, 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:2793
+#: option.c:2847
 #, 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:2804
+#: option.c:2858
 msgid "try --help"
 msgstr ""
 
-#: option.c:2806
+#: option.c:2860
 msgid "try -w"
 msgstr ""
 
 # OK
-#: option.c:2809
+#: option.c:2863
 #, fuzzy, c-format
 msgid "bad command line options: %s"
 msgstr "pilihan baris perintah salah: %s."
 
 # OK
-#: option.c:2850
+#: option.c:2904
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "tidak bisa mendapatkan host-name: %s"
 
 # OK
-#: option.c:2878
+#: option.c:2932
 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:2888
+#: option.c:2942
 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:2891 network.c:748 dhcp.c:734
+#: option.c:2945 network.c:754 dhcp.c:734
 #, fuzzy, c-format
 msgid "failed to read %s: %s"
 msgstr "gagal membaca %s: %s"
 
 # OK
-#: option.c:2909
+#: option.c:2962
 #, c-format
 msgid "no search directive found in %s"
 msgstr "tidak ditemukan direktif search di %s"
 
-#: option.c:2930
+#: option.c:2983
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr ""
 
-#: option.c:2934
+#: option.c:2987
 msgid "syntax check OK"
 msgstr ""
 
 # OK
-#: forward.c:405
+#: forward.c:409
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "nameserver %s menolak melakukan resolusi rekursif"
 
-#: forward.c:433
+#: forward.c:437
 msgid "possible DNS-rebind attack detected"
 msgstr ""
 
@@ -938,323 +952,323 @@ msgid "unknown interface %s in bridge-interface"
 msgstr "antarmuka tidak dikenal %s"
 
 # OK
-#: network.c:411 dnsmasq.c:184
+#: network.c:417 dnsmasq.c:189
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr "gagal membuat socket: %s "
 
 # OK
-#: network.c:418
+#: network.c:424
 #, c-format
 msgid "failed to set IPV6 options on listening socket: %s"
 msgstr "gagal menyetel IPV6 pada socket: %s"
 
-#: network.c:444
+#: network.c:450
 #, c-format
 msgid "failed to bind listening socket for %s: %s"
 msgstr "gagal mem-bind socket untuk mendengarkan %s: %s"
 
 # OK
-#: network.c:449
+#: network.c:455
 #, c-format
 msgid "failed to listen on socket: %s"
 msgstr "gagal mendengarkan di socket: %s"
 
 # OK
-#: network.c:461
+#: network.c:467
 #, fuzzy, c-format
 msgid "failed to create TFTP socket: %s"
 msgstr "gagal membuat socket: %s "
 
-#: network.c:655
+#: network.c:661
 #, fuzzy, c-format
 msgid "failed to bind server socket for %s: %s"
 msgstr "gagal mem-bind socket untuk mendengarkan %s: %s"
 
 # OK
-#: network.c:688
+#: network.c:694
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr "mengabaikan nameserver %s - antarmuka lokal"
 
 # OK
-#: network.c:699
+#: network.c:705
 #, fuzzy, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %s"
 msgstr "mengabaikan nameserver %s - tak dapat membuat/mem-bind socket: %s"
 
 # OK
-#: network.c:714
+#: network.c:720
 msgid "unqualified"
 msgstr "tidak memenuhi syarat"
 
-#: network.c:714
+#: network.c:720
 msgid "names"
 msgstr ""
 
-#: network.c:716
+#: network.c:722
 msgid "default"
 msgstr ""
 
 # OK
-#: network.c:718
+#: network.c:724
 msgid "domain"
 msgstr "domain"
 
 # OK
-#: network.c:721
+#: network.c:727
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr "menggunakan alamat lokal saja untuk %s %s"
 
 # OK
-#: network.c:723
+#: network.c:729
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr "menggunakan nameserver %s#%d untuk %s %s"
 
 # OK
-#: network.c:726
+#: network.c:732
 #, fuzzy, c-format
 msgid "using nameserver %s#%d(via %s)"
 msgstr "menggunakan nameserver %s#%d"
 
 # OK
-#: network.c:728
+#: network.c:734
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr "menggunakan nameserver %s#%d"
 
 # OK
-#: dnsmasq.c:141
+#: dnsmasq.c:146
 #, 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:146
+#: dnsmasq.c:151
 msgid "asychronous logging is not available under Solaris"
 msgstr ""
 
 # OK
-#: dnsmasq.c:165
+#: dnsmasq.c:170
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "gagal mendapatkan daftar antarmuka: %s"
 
 # OK
-#: dnsmasq.c:173
+#: dnsmasq.c:178
 #, c-format
 msgid "unknown interface %s"
 msgstr "antarmuka tidak dikenal %s"
 
 # OK
-#: dnsmasq.c:179
+#: dnsmasq.c:184
 #, c-format
 msgid "no interface with address %s"
 msgstr "tidak ada antarmuka dengan alamat %s"
 
 # OK
-#: dnsmasq.c:196 dnsmasq.c:660
+#: dnsmasq.c:201 dnsmasq.c:665
 #, c-format
 msgid "DBus error: %s"
 msgstr "DBus error: %s"
 
 # OK
-#: dnsmasq.c:199
+#: dnsmasq.c:204
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h"
 
-#: dnsmasq.c:225
+#: dnsmasq.c:230
 #, c-format
 msgid "unknown user or group: %s"
 msgstr ""
 
-#: dnsmasq.c:282
+#: dnsmasq.c:287
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr ""
 
 # OK
-#: dnsmasq.c:443
+#: dnsmasq.c:448
 #, fuzzy, c-format
 msgid "started, version %s DNS disabled"
 msgstr "dimulai, cache versi %s di disable"
 
 # OK
-#: dnsmasq.c:445
+#: dnsmasq.c:450
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "dimulai, versi %s ukuran cache %d"
 
 # OK
-#: dnsmasq.c:447
+#: dnsmasq.c:452
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "dimulai, cache versi %s di disable"
 
 # OK
-#: dnsmasq.c:449
+#: dnsmasq.c:454
 #, c-format
 msgid "compile time options: %s"
 msgstr "pilihan-pilihan saat kompilasi: %s"
 
 # OK
-#: dnsmasq.c:455
+#: dnsmasq.c:460
 msgid "DBus support enabled: connected to system bus"
 msgstr "dukungan DBus dimungkinkan: terkoneksi pada bus sistem"
 
 # OK
-#: dnsmasq.c:457
+#: dnsmasq.c:462
 msgid "DBus support enabled: bus connection pending"
 msgstr "dukungan DBus dimungkinkan: koneksi bus ditunda"
 
 # OK
-#: dnsmasq.c:462
+#: dnsmasq.c:467
 #, fuzzy, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr "gagal memuat nama-nama dari %s: %s"
 
 # OK
-#: dnsmasq.c:466
+#: dnsmasq.c:471
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "setelan opsi --bind-interfaces disebabkan keterbatasan OS"
 
 # OK
-#: dnsmasq.c:471
+#: dnsmasq.c:476
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "peringatan: antarmuka %s tidak ada"
 
-#: dnsmasq.c:476
+#: dnsmasq.c:481
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
 # OK
-#: dnsmasq.c:479
+#: dnsmasq.c:484
 #, fuzzy
 msgid "warning: no upstream servers configured"
 msgstr "menyetel server-server di atas dengan DBus"
 
-#: dnsmasq.c:483
+#: dnsmasq.c:488
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr ""
 
 # OK
-#: dnsmasq.c:496
+#: dnsmasq.c:501
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr "DHCP, lease static pada %.0s%s, waktu lease %s"
 
-#: dnsmasq.c:498
+#: dnsmasq.c:503
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr ""
 
 # OK
-#: dnsmasq.c:499
+#: dnsmasq.c:504
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, jangkaun IP %s -- %s, waktu lease %s"
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "root is "
 msgstr ""
 
 # OK
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 #, fuzzy
 msgid "enabled"
 msgstr "di disable"
 
-#: dnsmasq.c:516
+#: dnsmasq.c:521
 msgid "secure mode"
 msgstr ""
 
-#: dnsmasq.c:542
+#: dnsmasq.c:547
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr ""
 
 # OK
-#: dnsmasq.c:662
+#: dnsmasq.c:667
 msgid "connected to system DBus"
 msgstr "terhubung ke sistem DBus"
 
-#: dnsmasq.c:752
+#: dnsmasq.c:757
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr ""
 
 # OK
-#: dnsmasq.c:755
+#: dnsmasq.c:760
 #, fuzzy, c-format
 msgid "failed to create helper: %s"
 msgstr "gagal membaca %s: %s"
 
-#: dnsmasq.c:758
+#: dnsmasq.c:763
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr ""
 
 # OK
-#: dnsmasq.c:762
+#: dnsmasq.c:767
 #, fuzzy, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr "gagal memuat nama-nama dari %s: %s"
 
 # OK
-#: dnsmasq.c:767
+#: dnsmasq.c:772
 #, fuzzy, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr "gagal memuat nama-nama dari %s: %s"
 
 # OK
-#: dnsmasq.c:770
+#: dnsmasq.c:775
 #, fuzzy, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr "gagal membaca %s: %s"
 
 # OK
-#: dnsmasq.c:773
+#: dnsmasq.c:778
 #, fuzzy, c-format
 msgid "cannot open %s: %s"
 msgstr "tidak bisa membuka %s:%s"
 
-#: dnsmasq.c:828
+#: dnsmasq.c:833
 #, c-format
 msgid "child process killed by signal %d"
 msgstr ""
 
-#: dnsmasq.c:832
+#: dnsmasq.c:837
 #, c-format
 msgid "child process exited with status %d"
 msgstr ""
 
 # OK
-#: dnsmasq.c:836
+#: dnsmasq.c:841
 #, fuzzy, c-format
 msgid "failed to execute %s: %s"
 msgstr "gagal mengakses %s: %s"
 
-#: dnsmasq.c:880
+#: dnsmasq.c:885
 msgid "exiting on receipt of SIGTERM"
 msgstr "keluar karena menerima SIGTERM"
 
 # OK
-#: dnsmasq.c:898
+#: dnsmasq.c:903
 #, fuzzy, c-format
 msgid "failed to access %s: %s"
 msgstr "gagal mengakses %s: %s"
 
 # OK
-#: dnsmasq.c:920
+#: dnsmasq.c:925
 #, c-format
 msgid "reading %s"
 msgstr "membaca %s"
 
 # OK
-#: dnsmasq.c:931
+#: dnsmasq.c:936
 #, fuzzy, c-format
 msgid "no servers found in %s, will retry"
 msgstr "tidak ditemukan direktif search di %s"
@@ -1301,58 +1315,63 @@ msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr "jangkauan DHCP %s -- %s tidak konsisten dengan netmask %s"
 
 # OK
-#: dhcp.c:770
+#: dhcp.c:772
 #, fuzzy, c-format
 msgid "bad line at %s line %d"
 msgstr "kesalahan nama pada %s baris %d"
 
+#: dhcp.c:815
+#, c-format
+msgid "ignoring %s line %d, duplicate name or IP address"
+msgstr ""
+
 # OK
-#: dhcp.c:885
+#: dhcp.c:897
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "alamat IP kembar %s dalam direktif dhcp-config"
 
 # OK
-#: dhcp.c:888
+#: dhcp.c:900
 #, fuzzy, c-format
 msgid "duplicate IP address %s in %s."
 msgstr "alamat IP kembar %s dalam direktif dhcp-config"
 
-#: dhcp.c:931
+#: dhcp.c:943
 #, c-format
 msgid "%s has more than one address in hostsfile, using %s for DHCP"
 msgstr ""
 
 # OK
-#: dhcp.c:936
+#: dhcp.c:948
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "alamat IP kembar %s (%s) dalam direktif dhcp-config"
 
 # OK
-#: lease.c:60
+#: lease.c:66
 #, fuzzy, c-format
 msgid "cannot open or create lease file %s: %s"
 msgstr "tidak dapat membuka atau membuat file lease: %s"
 
 # OK
-#: lease.c:86
+#: lease.c:92
 msgid "too many stored leases"
 msgstr "terlalu banyak lease yang disimpan"
 
 # OK
-#: lease.c:127
+#: lease.c:128
 #, fuzzy, c-format
 msgid "cannot run lease-init script %s: %s"
 msgstr "tidak bisa membaca %s: %s"
 
-#: lease.c:133
+#: lease.c:134
 #, c-format
 msgid "lease-init script returned exit code %s"
 msgstr ""
 
 # OK
-#: lease.c:240
+#: lease.c:234
 #, fuzzy, c-format
 msgid "failed to write %s: %s (retry in %us)"
 msgstr "gagal membaca %s: %s"
@@ -1384,22 +1403,27 @@ msgid "%u Available DHCP range: %s -- %s"
 msgstr ""
 
 # OK
-#: rfc2131.c:384 rfc2131.c:418
+#: rfc2131.c:384
 msgid "disabled"
 msgstr "di disable"
 
 # OK
-#: rfc2131.c:433 rfc2131.c:1096
+#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+msgid "ignored"
+msgstr "diabaikan"
+
+# OK
+#: rfc2131.c:433 rfc2131.c:1100
 msgid "address in use"
 msgstr "alamat telah digunakan"
 
 # OK
-#: rfc2131.c:447 rfc2131.c:933
+#: rfc2131.c:447 rfc2131.c:937
 msgid "no address available"
 msgstr "tak ada alamat yang tersedia"
 
 # OK
-#: rfc2131.c:454 rfc2131.c:1059
+#: rfc2131.c:454 rfc2131.c:1063
 msgid "wrong network"
 msgstr "jaringan yang salah"
 
@@ -1409,7 +1433,7 @@ msgid "no address configured"
 msgstr "tak ada alamat yang disetel"
 
 # OK
-#: rfc2131.c:473 rfc2131.c:1109
+#: rfc2131.c:473 rfc2131.c:1113
 msgid "no leases left"
 msgstr "tak ada lease yang tersisa"
 
@@ -1428,117 +1452,112 @@ msgstr ""
 msgid "%u User class: %s"
 msgstr ""
 
-#: rfc2131.c:733
+#: rfc2131.c:737
 msgid "PXE BIS not supported"
 msgstr ""
 
 # OK
-#: rfc2131.c:849
+#: rfc2131.c:853
 #, fuzzy, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "men-disable alamat statik DHCP %s"
 
 # OK
-#: rfc2131.c:870
+#: rfc2131.c:874
 msgid "unknown lease"
 msgstr "lease tidak diketahui"
 
-# OK
-#: rfc2131.c:879 rfc2131.c:1223
-msgid "ignored"
-msgstr "diabaikan"
-
-#: rfc2131.c:902
+#: rfc2131.c:906
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:912
+#: rfc2131.c:916
 #, c-format
 msgid "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:915
+#: rfc2131.c:919
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:931 rfc2131.c:1102
+#: rfc2131.c:935 rfc2131.c:1106
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:999
+#: rfc2131.c:1003
 msgid "wrong server-ID"
 msgstr ""
 
 # OK
-#: rfc2131.c:1018
+#: rfc2131.c:1022
 msgid "wrong address"
 msgstr "alamat salah"
 
 # OK
-#: rfc2131.c:1035
+#: rfc2131.c:1039
 msgid "lease not found"
 msgstr "lease tak ditemukan"
 
 # OK
-#: rfc2131.c:1067
+#: rfc2131.c:1071
 msgid "address not available"
 msgstr "alamat tak tersedia"
 
 # OK
-#: rfc2131.c:1078
+#: rfc2131.c:1082
 msgid "static lease available"
 msgstr "lease statik tak tersedia"
 
 # OK
-#: rfc2131.c:1082
+#: rfc2131.c:1086
 msgid "address reserved"
 msgstr "alamat telah dipesan"
 
-#: rfc2131.c:1090
+#: rfc2131.c:1094
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr ""
 
-#: rfc2131.c:1567
+#: rfc2131.c:1583
 #, c-format
 msgid "%u tags: %s"
 msgstr ""
 
-#: rfc2131.c:1580
+#: rfc2131.c:1596
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr ""
 
 # OK
-#: rfc2131.c:1589
+#: rfc2131.c:1605
 #, fuzzy, c-format
 msgid "%u server name: %s"
 msgstr "DBus error: %s"
 
 # OK
-#: rfc2131.c:1597
+#: rfc2131.c:1613
 #, fuzzy, c-format
 msgid "%u next server: %s"
 msgstr "DBus error: %s"
 
-#: rfc2131.c:1664
+#: rfc2131.c:1680
 #, c-format
 msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
 msgstr ""
 
-#: rfc2131.c:1903
+#: rfc2131.c:1919
 msgid "PXE menu too large"
 msgstr ""
 
-#: rfc2131.c:2018
+#: rfc2131.c:2034
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr ""
 
 # OK
-#: rfc2131.c:2036
+#: rfc2131.c:2052
 #, fuzzy, c-format
 msgid "%u requested options: %s"
 msgstr "pilihan-pilihan saat kompilasi: %s"
@@ -1582,33 +1601,33 @@ msgstr "tidak dapat membuat socket DHCP BPF: %s"
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "permintaan DHCP untuk tipe hardware yang tidak didukung (%d) diterima pada %s"
 
-#: tftp.c:172
+#: tftp.c:179
 msgid "unable to get free port for TFTP"
 msgstr ""
 
-#: tftp.c:187
+#: tftp.c:194
 #, c-format
 msgid "unsupported request from %s"
 msgstr ""
 
-#: tftp.c:268
+#: tftp.c:282
 #, c-format
 msgid "TFTP sent %s to %s"
 msgstr ""
 
 # OK
-#: tftp.c:291
+#: tftp.c:305
 #, fuzzy, c-format
 msgid "file %s not found"
 msgstr "lease tak ditemukan"
 
-#: tftp.c:402
+#: tftp.c:416
 #, c-format
 msgid "TFTP error %d %s received from %s"
 msgstr ""
 
 # OK
-#: tftp.c:433
+#: tftp.c:447
 #, fuzzy, c-format
 msgid "TFTP failed sending %s to %s"
 msgstr "gagal membaca %s: %s"
index 19f3819336a82b4dcc07e0eae5cc996019e7a0d5..37a8c4ba14b9e7b64858dbefa9bc12846d8b66ab 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.32\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 20:57+0100\n"
+"POT-Creation-Date: 2009-06-18 12:24+0100\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"
@@ -20,75 +20,79 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr ""
 
-#: cache.c:798 dhcp.c:783
+#: cache.c:798 dhcp.c:785
 #, c-format
 msgid "bad address at %s line %d"
 msgstr ""
 
-#: cache.c:853 dhcp.c:797
+#: cache.c:856 dhcp.c:801
 #, c-format
 msgid "bad name at %s line %d"
 msgstr ""
 
-#: cache.c:860 dhcp.c:863
+#: cache.c:863 dhcp.c:875
 #, c-format
 msgid "read %s - %d addresses"
 msgstr ""
 
-#: cache.c:899
+#: cache.c:902
 msgid "cleared cache"
 msgstr ""
 
-#: cache.c:930 option.c:1026
+#: cache.c:933 option.c:1055
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr ""
 
-#: cache.c:1049
+#: cache.c:1052
 #, 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:1126
+#: cache.c:1129
 #, c-format
 msgid "time %lu"
 msgstr ""
 
-#: cache.c:1127
+#: cache.c:1130
 #, c-format
 msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
 msgstr ""
 
-#: cache.c:1129
+#: cache.c:1132
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr ""
 
-#: cache.c:1152
+#: cache.c:1155
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr ""
 
-#: util.c:56
+#: util.c:59
 #, c-format
 msgid "failed to seed the random number generator: %s"
 msgstr ""
 
-#: util.c:164
+#: util.c:191
+msgid "failed to allocate memory"
+msgstr ""
+
+#: util.c:229 option.c:548
 msgid "could not get memory"
 msgstr ""
 
-#: util.c:174
+#: util.c:239
 #, c-format
 msgid "cannot create pipe: %s"
 msgstr ""
 
-#: util.c:182
+#: util.c:247
 #, c-format
 msgid "failed to allocate %d bytes"
 msgstr ""
 
-#: util.c:287
+#: util.c:352
 #, c-format
 msgid "infinite"
 msgstr ""
@@ -502,286 +506,294 @@ msgstr ""
 msgid "Check configuration syntax."
 msgstr ""
 
-#: option.c:601
+#: option.c:613
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
 "\n"
 msgstr ""
 
-#: option.c:603
+#: option.c:615
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr ""
 
-#: option.c:605
+#: option.c:617
 #, c-format
 msgid "Valid options are:\n"
 msgstr ""
 
-#: option.c:646
+#: option.c:658
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr ""
 
-#: option.c:723
+#: option.c:735
 msgid "bad dhcp-option"
 msgstr ""
 
-#: option.c:780
+#: option.c:792
 msgid "bad IP address"
 msgstr ""
 
-#: option.c:878
+#: option.c:891
 msgid "bad domain in dhcp-option"
 msgstr ""
 
-#: option.c:936
+#: option.c:950
 msgid "dhcp-option too long"
 msgstr ""
 
-#: option.c:945
+#: option.c:959
 msgid "illegal dhcp-match"
 msgstr ""
 
-#: option.c:981
+#: option.c:995
 msgid "illegal repeated flag"
 msgstr ""
 
-#: option.c:989
+#: option.c:1003
 msgid "illegal repeated keyword"
 msgstr ""
 
-#: option.c:1046 tftp.c:345
+#: option.c:1086 tftp.c:359
 #, c-format
 msgid "cannot access %s: %s"
 msgstr ""
 
-#: option.c:1084
+#: option.c:1131
 msgid "only one dhcp-hostsfile allowed"
 msgstr ""
 
-#: option.c:1091
+#: option.c:1138
 msgid "only one dhcp-optsfile allowed"
 msgstr ""
 
-#: option.c:1135
+#: option.c:1183
 msgid "bad MX preference"
 msgstr ""
 
-#: option.c:1139
+#: option.c:1188
 msgid "bad MX name"
 msgstr ""
 
-#: option.c:1153
+#: option.c:1202
 msgid "bad MX target"
 msgstr ""
 
-#: option.c:1165
+#: option.c:1212
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:1395 option.c:1399
+#: option.c:1214
+msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
+msgstr ""
+
+#: option.c:1442 option.c:1446
 msgid "bad port"
 msgstr ""
 
-#: option.c:1418 option.c:1443
+#: option.c:1465 option.c:1490
 msgid "interface binding not supported"
 msgstr ""
 
-#: option.c:1564
+#: option.c:1611
 msgid "bad port range"
 msgstr ""
 
-#: option.c:1581
+#: option.c:1628
 msgid "bad bridge-interface"
 msgstr ""
 
-#: option.c:1622
+#: option.c:1669
 msgid "bad dhcp-range"
 msgstr ""
 
-#: option.c:1648
+#: option.c:1695
 msgid "only one netid tag allowed"
 msgstr ""
 
-#: option.c:1693
+#: option.c:1740
 msgid "inconsistent DHCP range"
 msgstr ""
 
-#: option.c:1865
+#: option.c:1912
 msgid "bad DHCP host name"
 msgstr ""
 
-#: option.c:2155 option.c:2427
+#: option.c:2201 option.c:2481
 msgid "invalid port number"
 msgstr ""
 
-#: option.c:2238
+#: option.c:2284
 msgid "invalid alias range"
 msgstr ""
 
-#: option.c:2250
+#: option.c:2297
 msgid "bad interface name"
 msgstr ""
 
-#: option.c:2273
+#: option.c:2322
+msgid "bad CNAME"
+msgstr ""
+
+#: option.c:2327
 msgid "duplicate CNAME"
 msgstr ""
 
-#: option.c:2290
+#: option.c:2347
 msgid "bad PTR record"
 msgstr ""
 
-#: option.c:2320
+#: option.c:2378
 msgid "bad NAPTR record"
 msgstr ""
 
-#: option.c:2346
+#: option.c:2403
 msgid "TXT record string too long"
 msgstr ""
 
-#: option.c:2350
+#: option.c:2451
 msgid "bad TXT record"
 msgstr ""
 
-#: option.c:2410
+#: option.c:2467
 msgid "bad SRV record"
 msgstr ""
 
-#: option.c:2419
+#: option.c:2474
 msgid "bad SRV target"
 msgstr ""
 
-#: option.c:2434
+#: option.c:2488
 msgid "invalid priority"
 msgstr ""
 
-#: option.c:2441
+#: option.c:2495
 msgid "invalid weight"
 msgstr ""
 
-#: option.c:2460
+#: option.c:2514
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr ""
 
-#: option.c:2503
+#: option.c:2557
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
-#: option.c:2511 tftp.c:499
+#: option.c:2565 tftp.c:513
 #, c-format
 msgid "cannot read %s: %s"
 msgstr ""
 
-#: option.c:2572
+#: option.c:2626
 msgid "missing \""
 msgstr ""
 
-#: option.c:2619
+#: option.c:2673
 msgid "bad option"
 msgstr ""
 
-#: option.c:2621
+#: option.c:2675
 msgid "extraneous parameter"
 msgstr ""
 
-#: option.c:2623
+#: option.c:2677
 msgid "missing parameter"
 msgstr ""
 
-#: option.c:2631
+#: option.c:2685
 msgid "error"
 msgstr ""
 
-#: option.c:2637
+#: option.c:2691
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr ""
 
-#: option.c:2686 option.c:2717
+#: option.c:2740 option.c:2771
 #, c-format
 msgid "read %s"
 msgstr ""
 
-#: option.c:2789
+#: option.c:2843
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr ""
 
-#: option.c:2790
+#: option.c:2844
 #, c-format
 msgid ""
 "Compile time options %s\n"
 "\n"
 msgstr ""
 
-#: option.c:2791
+#: option.c:2845
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr ""
 
-#: option.c:2792
+#: option.c:2846
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr ""
 
-#: option.c:2793
+#: option.c:2847
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
 msgstr ""
 
-#: option.c:2804
+#: option.c:2858
 msgid "try --help"
 msgstr ""
 
-#: option.c:2806
+#: option.c:2860
 msgid "try -w"
 msgstr ""
 
-#: option.c:2809
+#: option.c:2863
 #, c-format
 msgid "bad command line options: %s"
 msgstr ""
 
-#: option.c:2850
+#: option.c:2904
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr ""
 
-#: option.c:2878
+#: option.c:2932
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr ""
 
-#: option.c:2888
+#: option.c:2942
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr ""
 
-#: option.c:2891 network.c:748 dhcp.c:734
+#: option.c:2945 network.c:754 dhcp.c:734
 #, c-format
 msgid "failed to read %s: %s"
 msgstr ""
 
-#: option.c:2909
+#: option.c:2962
 #, c-format
 msgid "no search directive found in %s"
 msgstr ""
 
-#: option.c:2930
+#: option.c:2983
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr ""
 
-#: option.c:2934
+#: option.c:2987
 msgid "syntax check OK"
 msgstr ""
 
-#: forward.c:405
+#: forward.c:409
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr ""
 
-#: forward.c:433
+#: forward.c:437
 msgid "possible DNS-rebind attack detected"
 msgstr ""
 
@@ -790,280 +802,280 @@ msgstr ""
 msgid "unknown interface %s in bridge-interface"
 msgstr ""
 
-#: network.c:411 dnsmasq.c:184
+#: network.c:417 dnsmasq.c:189
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr ""
 
-#: network.c:418
+#: network.c:424
 #, c-format
 msgid "failed to set IPV6 options on listening socket: %s"
 msgstr ""
 
-#: network.c:444
+#: network.c:450
 #, c-format
 msgid "failed to bind listening socket for %s: %s"
 msgstr ""
 
-#: network.c:449
+#: network.c:455
 #, c-format
 msgid "failed to listen on socket: %s"
 msgstr ""
 
-#: network.c:461
+#: network.c:467
 #, c-format
 msgid "failed to create TFTP socket: %s"
 msgstr ""
 
-#: network.c:655
+#: network.c:661
 #, c-format
 msgid "failed to bind server socket for %s: %s"
 msgstr ""
 
-#: network.c:688
+#: network.c:694
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr ""
 
-#: network.c:699
+#: network.c:705
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %s"
 msgstr ""
 
-#: network.c:714
+#: network.c:720
 msgid "unqualified"
 msgstr ""
 
-#: network.c:714
+#: network.c:720
 msgid "names"
 msgstr ""
 
-#: network.c:716
+#: network.c:722
 msgid "default"
 msgstr ""
 
-#: network.c:718
+#: network.c:724
 msgid "domain"
 msgstr ""
 
-#: network.c:721
+#: network.c:727
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr ""
 
-#: network.c:723
+#: network.c:729
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr ""
 
-#: network.c:726
+#: network.c:732
 #, c-format
 msgid "using nameserver %s#%d(via %s)"
 msgstr ""
 
-#: network.c:728
+#: network.c:734
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr ""
 
-#: dnsmasq.c:141
+#: dnsmasq.c:146
 msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:146
+#: dnsmasq.c:151
 msgid "asychronous logging is not available under Solaris"
 msgstr ""
 
-#: dnsmasq.c:165
+#: dnsmasq.c:170
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr ""
 
-#: dnsmasq.c:173
+#: dnsmasq.c:178
 #, c-format
 msgid "unknown interface %s"
 msgstr ""
 
-#: dnsmasq.c:179
+#: dnsmasq.c:184
 #, c-format
 msgid "no interface with address %s"
 msgstr ""
 
-#: dnsmasq.c:196 dnsmasq.c:660
+#: dnsmasq.c:201 dnsmasq.c:665
 #, c-format
 msgid "DBus error: %s"
 msgstr ""
 
-#: dnsmasq.c:199
+#: dnsmasq.c:204
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:225
+#: dnsmasq.c:230
 #, c-format
 msgid "unknown user or group: %s"
 msgstr ""
 
-#: dnsmasq.c:282
+#: dnsmasq.c:287
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr ""
 
-#: dnsmasq.c:443
+#: dnsmasq.c:448
 #, c-format
 msgid "started, version %s DNS disabled"
 msgstr ""
 
-#: dnsmasq.c:445
+#: dnsmasq.c:450
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr ""
 
-#: dnsmasq.c:447
+#: dnsmasq.c:452
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr ""
 
-#: dnsmasq.c:449
+#: dnsmasq.c:454
 #, c-format
 msgid "compile time options: %s"
 msgstr ""
 
-#: dnsmasq.c:455
+#: dnsmasq.c:460
 msgid "DBus support enabled: connected to system bus"
 msgstr ""
 
-#: dnsmasq.c:457
+#: dnsmasq.c:462
 msgid "DBus support enabled: bus connection pending"
 msgstr ""
 
-#: dnsmasq.c:462
+#: dnsmasq.c:467
 #, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr ""
 
-#: dnsmasq.c:466
+#: dnsmasq.c:471
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr ""
 
-#: dnsmasq.c:471
+#: dnsmasq.c:476
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr ""
 
-#: dnsmasq.c:476
+#: dnsmasq.c:481
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:479
+#: dnsmasq.c:484
 msgid "warning: no upstream servers configured"
 msgstr ""
 
-#: dnsmasq.c:483
+#: dnsmasq.c:488
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr ""
 
-#: dnsmasq.c:496
+#: dnsmasq.c:501
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:498
+#: dnsmasq.c:503
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr ""
 
-#: dnsmasq.c:499
+#: dnsmasq.c:504
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "root is "
 msgstr ""
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "enabled"
 msgstr ""
 
-#: dnsmasq.c:516
+#: dnsmasq.c:521
 msgid "secure mode"
 msgstr ""
 
-#: dnsmasq.c:542
+#: dnsmasq.c:547
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr ""
 
-#: dnsmasq.c:662
+#: dnsmasq.c:667
 msgid "connected to system DBus"
 msgstr ""
 
-#: dnsmasq.c:752
+#: dnsmasq.c:757
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr ""
 
-#: dnsmasq.c:755
+#: dnsmasq.c:760
 #, c-format
 msgid "failed to create helper: %s"
 msgstr ""
 
-#: dnsmasq.c:758
+#: dnsmasq.c:763
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr ""
 
-#: dnsmasq.c:762
+#: dnsmasq.c:767
 #, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr ""
 
-#: dnsmasq.c:767
+#: dnsmasq.c:772
 #, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr ""
 
-#: dnsmasq.c:770
+#: dnsmasq.c:775
 #, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr ""
 
-#: dnsmasq.c:773
+#: dnsmasq.c:778
 #, c-format
 msgid "cannot open %s: %s"
 msgstr ""
 
-#: dnsmasq.c:828
+#: dnsmasq.c:833
 #, c-format
 msgid "child process killed by signal %d"
 msgstr ""
 
-#: dnsmasq.c:832
+#: dnsmasq.c:837
 #, c-format
 msgid "child process exited with status %d"
 msgstr ""
 
-#: dnsmasq.c:836
+#: dnsmasq.c:841
 #, c-format
 msgid "failed to execute %s: %s"
 msgstr ""
 
-#: dnsmasq.c:880
+#: dnsmasq.c:885
 msgid "exiting on receipt of SIGTERM"
 msgstr ""
 
-#: dnsmasq.c:898
+#: dnsmasq.c:903
 #, c-format
 msgid "failed to access %s: %s"
 msgstr ""
 
-#: dnsmasq.c:920
+#: dnsmasq.c:925
 #, c-format
 msgid "reading %s"
 msgstr ""
 
-#: dnsmasq.c:931
+#: dnsmasq.c:936
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr ""
@@ -1103,51 +1115,56 @@ msgstr ""
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr ""
 
-#: dhcp.c:770
+#: dhcp.c:772
 #, c-format
 msgid "bad line at %s line %d"
 msgstr ""
 
-#: dhcp.c:885
+#: dhcp.c:815
+#, c-format
+msgid "ignoring %s line %d, duplicate name or IP address"
+msgstr ""
+
+#: dhcp.c:897
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr ""
 
-#: dhcp.c:888
+#: dhcp.c:900
 #, c-format
 msgid "duplicate IP address %s in %s."
 msgstr ""
 
-#: dhcp.c:931
+#: dhcp.c:943
 #, c-format
 msgid "%s has more than one address in hostsfile, using %s for DHCP"
 msgstr ""
 
-#: dhcp.c:936
+#: dhcp.c:948
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr ""
 
-#: lease.c:60
+#: lease.c:66
 #, c-format
 msgid "cannot open or create lease file %s: %s"
 msgstr ""
 
-#: lease.c:86
+#: lease.c:92
 msgid "too many stored leases"
 msgstr ""
 
-#: lease.c:127
+#: lease.c:128
 #, c-format
 msgid "cannot run lease-init script %s: %s"
 msgstr ""
 
-#: lease.c:133
+#: lease.c:134
 #, c-format
 msgid "lease-init script returned exit code %s"
 msgstr ""
 
-#: lease.c:240
+#: lease.c:234
 #, c-format
 msgid "failed to write %s: %s (retry in %us)"
 msgstr ""
@@ -1175,19 +1192,23 @@ msgstr ""
 msgid "%u Available DHCP range: %s -- %s"
 msgstr ""
 
-#: rfc2131.c:384 rfc2131.c:418
+#: rfc2131.c:384
 msgid "disabled"
 msgstr ""
 
-#: rfc2131.c:433 rfc2131.c:1096
+#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+msgid "ignored"
+msgstr ""
+
+#: rfc2131.c:433 rfc2131.c:1100
 msgid "address in use"
 msgstr ""
 
-#: rfc2131.c:447 rfc2131.c:933
+#: rfc2131.c:447 rfc2131.c:937
 msgid "no address available"
 msgstr ""
 
-#: rfc2131.c:454 rfc2131.c:1059
+#: rfc2131.c:454 rfc2131.c:1063
 msgid "wrong network"
 msgstr ""
 
@@ -1195,7 +1216,7 @@ msgstr ""
 msgid "no address configured"
 msgstr ""
 
-#: rfc2131.c:473 rfc2131.c:1109
+#: rfc2131.c:473 rfc2131.c:1113
 msgid "no leases left"
 msgstr ""
 
@@ -1214,106 +1235,102 @@ msgstr ""
 msgid "%u User class: %s"
 msgstr ""
 
-#: rfc2131.c:733
+#: rfc2131.c:737
 msgid "PXE BIS not supported"
 msgstr ""
 
-#: rfc2131.c:849
+#: rfc2131.c:853
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr ""
 
-#: rfc2131.c:870
+#: rfc2131.c:874
 msgid "unknown lease"
 msgstr ""
 
-#: rfc2131.c:879 rfc2131.c:1223
-msgid "ignored"
-msgstr ""
-
-#: rfc2131.c:902
+#: rfc2131.c:906
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:912
+#: rfc2131.c:916
 #, c-format
 msgid "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:915
+#: rfc2131.c:919
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:931 rfc2131.c:1102
+#: rfc2131.c:935 rfc2131.c:1106
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:999
+#: rfc2131.c:1003
 msgid "wrong server-ID"
 msgstr ""
 
-#: rfc2131.c:1018
+#: rfc2131.c:1022
 msgid "wrong address"
 msgstr ""
 
-#: rfc2131.c:1035
+#: rfc2131.c:1039
 msgid "lease not found"
 msgstr ""
 
-#: rfc2131.c:1067
+#: rfc2131.c:1071
 msgid "address not available"
 msgstr ""
 
-#: rfc2131.c:1078
+#: rfc2131.c:1082
 msgid "static lease available"
 msgstr ""
 
-#: rfc2131.c:1082
+#: rfc2131.c:1086
 msgid "address reserved"
 msgstr ""
 
-#: rfc2131.c:1090
+#: rfc2131.c:1094
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr ""
 
-#: rfc2131.c:1567
+#: rfc2131.c:1583
 #, c-format
 msgid "%u tags: %s"
 msgstr ""
 
-#: rfc2131.c:1580
+#: rfc2131.c:1596
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr ""
 
-#: rfc2131.c:1589
+#: rfc2131.c:1605
 #, c-format
 msgid "%u server name: %s"
 msgstr ""
 
-#: rfc2131.c:1597
+#: rfc2131.c:1613
 #, c-format
 msgid "%u next server: %s"
 msgstr ""
 
-#: rfc2131.c:1664
+#: rfc2131.c:1680
 #, c-format
 msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
 msgstr ""
 
-#: rfc2131.c:1903
+#: rfc2131.c:1919
 msgid "PXE menu too large"
 msgstr ""
 
-#: rfc2131.c:2018
+#: rfc2131.c:2034
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr ""
 
-#: rfc2131.c:2036
+#: rfc2131.c:2052
 #, c-format
 msgid "%u requested options: %s"
 msgstr ""
@@ -1350,31 +1367,31 @@ msgstr ""
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr ""
 
-#: tftp.c:172
+#: tftp.c:179
 msgid "unable to get free port for TFTP"
 msgstr ""
 
-#: tftp.c:187
+#: tftp.c:194
 #, c-format
 msgid "unsupported request from %s"
 msgstr ""
 
-#: tftp.c:268
+#: tftp.c:282
 #, c-format
 msgid "TFTP sent %s to %s"
 msgstr ""
 
-#: tftp.c:291
+#: tftp.c:305
 #, c-format
 msgid "file %s not found"
 msgstr ""
 
-#: tftp.c:402
+#: tftp.c:416
 #, c-format
 msgid "TFTP error %d %s received from %s"
 msgstr ""
 
-#: tftp.c:433
+#: tftp.c:447
 #, c-format
 msgid "TFTP failed sending %s to %s"
 msgstr ""
index 5fbdb9586331bd82fac36f427ae0d593732f1eda..f70e56bdffd7027e98fd89e91d7dda753d4cd5f7 100644 (file)
--- a/po/no.po
+++ b/po/no.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.25\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 20:57+0100\n"
+"POT-Creation-Date: 2009-06-18 12:24+0100\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"
@@ -22,75 +22,80 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr "feilet å laste navn fra %s: %s"
 
-#: cache.c:798 dhcp.c:783
+#: cache.c:798 dhcp.c:785
 #, c-format
 msgid "bad address at %s line %d"
 msgstr "dårlig adresse ved %s linje %d"
 
-#: cache.c:853 dhcp.c:797
+#: cache.c:856 dhcp.c:801
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "dårlig navn ved %s linje %d"
 
-#: cache.c:860 dhcp.c:863
+#: cache.c:863 dhcp.c:875
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "les %s - %d adresser"
 
-#: cache.c:899
+#: cache.c:902
 msgid "cleared cache"
 msgstr "mellomlager tømt"
 
-#: cache.c:930 option.c:1026
+#: cache.c:933 option.c:1055
 #, fuzzy, c-format
 msgid "cannot access directory %s: %s"
 msgstr "kan ikke lese %s: %s"
 
-#: cache.c:1049
+#: cache.c:1052
 #, 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:1126
+#: cache.c:1129
 #, c-format
 msgid "time %lu"
 msgstr ""
 
-#: cache.c:1127
+#: cache.c:1130
 #, 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:1129
+#: cache.c:1132
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr ""
 
-#: cache.c:1152
+#: cache.c:1155
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr ""
 
-#: util.c:56
+#: util.c:59
 #, fuzzy, c-format
 msgid "failed to seed the random number generator: %s"
 msgstr "feilet å lytte på socket: %s"
 
-#: util.c:164
+#: util.c:191
+#, fuzzy
+msgid "failed to allocate memory"
+msgstr "feilet å laste %d bytes"
+
+#: util.c:229 option.c:548
 msgid "could not get memory"
 msgstr "kunne ikke få minne"
 
-#: util.c:174
+#: util.c:239
 #, fuzzy, c-format
 msgid "cannot create pipe: %s"
 msgstr "kan ikke lese %s: %s"
 
-#: util.c:182
+#: util.c:247
 #, fuzzy, c-format
 msgid "failed to allocate %d bytes"
 msgstr "feilet å laste %d bytes"
 
-#: util.c:287
+#: util.c:352
 #, c-format
 msgid "infinite"
 msgstr "uendelig"
@@ -517,7 +522,7 @@ msgstr ""
 msgid "Check configuration syntax."
 msgstr ""
 
-#: option.c:601
+#: option.c:613
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -526,215 +531,223 @@ msgstr ""
 "Bruk: dnsmasq [opsjoner]\n"
 "\n"
 
-#: option.c:603
+#: option.c:615
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr "Bruk korte opsjoner kun på kommandolinjen.\n"
 
-#: option.c:605
+#: option.c:617
 #, fuzzy, c-format
 msgid "Valid options are:\n"
 msgstr "Gyldige opsjoner er :\n"
 
-#: option.c:646
+#: option.c:658
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr ""
 
-#: option.c:723
+#: option.c:735
 msgid "bad dhcp-option"
 msgstr "dårlig dhcp-opsjon"
 
-#: option.c:780
+#: option.c:792
 #, fuzzy
 msgid "bad IP address"
 msgstr "les %s - %d adresser"
 
-#: option.c:878
+#: option.c:891
 msgid "bad domain in dhcp-option"
 msgstr "dårlig domene i dhcp-opsjon"
 
-#: option.c:936
+#: option.c:950
 msgid "dhcp-option too long"
 msgstr "dhcp-opsjon for lang"
 
-#: option.c:945
+#: option.c:959
 msgid "illegal dhcp-match"
 msgstr ""
 
-#: option.c:981
+#: option.c:995
 msgid "illegal repeated flag"
 msgstr ""
 
-#: option.c:989
+#: option.c:1003
 msgid "illegal repeated keyword"
 msgstr ""
 
-#: option.c:1046 tftp.c:345
+#: option.c:1086 tftp.c:359
 #, fuzzy, c-format
 msgid "cannot access %s: %s"
 msgstr "kan ikke lese %s: %s"
 
-#: option.c:1084
+#: option.c:1131
 msgid "only one dhcp-hostsfile allowed"
 msgstr ""
 
-#: option.c:1091
+#: option.c:1138
 msgid "only one dhcp-optsfile allowed"
 msgstr ""
 
-#: option.c:1135
+#: option.c:1183
 msgid "bad MX preference"
 msgstr "dårlig MX preferanse"
 
-#: option.c:1139
+#: option.c:1188
 msgid "bad MX name"
 msgstr "dårlig MX navn"
 
-#: option.c:1153
+#: option.c:1202
 msgid "bad MX target"
 msgstr "dårlig MX mål"
 
-#: option.c:1165
+#: option.c:1212
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:1395 option.c:1399
+#: option.c:1214
+msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
+msgstr ""
+
+#: option.c:1442 option.c:1446
 msgid "bad port"
 msgstr "dårlig port"
 
-#: option.c:1418 option.c:1443
+#: option.c:1465 option.c:1490
 msgid "interface binding not supported"
 msgstr ""
 
-#: option.c:1564
+#: option.c:1611
 #, fuzzy
 msgid "bad port range"
 msgstr "dårlig port"
 
-#: option.c:1581
+#: option.c:1628
 msgid "bad bridge-interface"
 msgstr ""
 
-#: option.c:1622
+#: option.c:1669
 msgid "bad dhcp-range"
 msgstr "dårlig dhcp-område"
 
-#: option.c:1648
+#: option.c:1695
 msgid "only one netid tag allowed"
 msgstr ""
 
-#: option.c:1693
+#: option.c:1740
 msgid "inconsistent DHCP range"
 msgstr "ikke konsistent DHCP område"
 
-#: option.c:1865
+#: option.c:1912
 #, fuzzy
 msgid "bad DHCP host name"
 msgstr "dårlig MX navn"
 
-#: option.c:2155 option.c:2427
+#: option.c:2201 option.c:2481
 msgid "invalid port number"
 msgstr "ugyldig portnummer"
 
-#: option.c:2238
+#: option.c:2284
 #, fuzzy
 msgid "invalid alias range"
 msgstr "ugyldig vekt"
 
-#: option.c:2250
+#: option.c:2297
 #, fuzzy
 msgid "bad interface name"
 msgstr "dårlig MX navn"
 
-#: option.c:2273
+#: option.c:2322
+msgid "bad CNAME"
+msgstr ""
+
+#: option.c:2327
 msgid "duplicate CNAME"
 msgstr ""
 
-#: option.c:2290
+#: option.c:2347
 #, fuzzy
 msgid "bad PTR record"
 msgstr "dårlig SRV post"
 
-#: option.c:2320
+#: option.c:2378
 #, fuzzy
 msgid "bad NAPTR record"
 msgstr "dårlig SRV post"
 
-#: option.c:2346
+#: option.c:2403
 msgid "TXT record string too long"
 msgstr "TXT post streng for lang"
 
-#: option.c:2350
+#: option.c:2451
 msgid "bad TXT record"
 msgstr "dårlig TXT post"
 
-#: option.c:2410
+#: option.c:2467
 msgid "bad SRV record"
 msgstr "dårlig SRV post"
 
-#: option.c:2419
+#: option.c:2474
 msgid "bad SRV target"
 msgstr "dårlig SRV mål"
 
-#: option.c:2434
+#: option.c:2488
 msgid "invalid priority"
 msgstr "ugyldig prioritet"
 
-#: option.c:2441
+#: option.c:2495
 msgid "invalid weight"
 msgstr "ugyldig vekt"
 
-#: option.c:2460
+#: option.c:2514
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr ""
 
-#: option.c:2503
+#: option.c:2557
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
-#: option.c:2511 tftp.c:499
+#: option.c:2565 tftp.c:513
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "kan ikke lese %s: %s"
 
-#: option.c:2572
+#: option.c:2626
 msgid "missing \""
 msgstr "mangler \""
 
-#: option.c:2619
+#: option.c:2673
 msgid "bad option"
 msgstr "dårlig opsjon"
 
-#: option.c:2621
+#: option.c:2675
 msgid "extraneous parameter"
 msgstr "overflødig parameter"
 
-#: option.c:2623
+#: option.c:2677
 msgid "missing parameter"
 msgstr "mangler parameter"
 
-#: option.c:2631
+#: option.c:2685
 msgid "error"
 msgstr "feil"
 
-#: option.c:2637
+#: option.c:2691
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr "%s på linje %d av %%s"
 
-#: option.c:2686 option.c:2717
+#: option.c:2740 option.c:2771
 #, fuzzy, c-format
 msgid "read %s"
 msgstr "leser %s"
 
-#: option.c:2789
+#: option.c:2843
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Dnsmasq versjon %s %s\n"
 
-#: option.c:2790
+#: option.c:2844
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -743,71 +756,71 @@ msgstr ""
 "Kompileringsopsjoner %s\n"
 "\n"
 
-#: option.c:2791
+#: option.c:2845
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Denne programvaren kommer med ABSOLUTT INGEN GARANTI.\n"
 
-#: option.c:2792
+#: option.c:2846
 #, 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:2793
+#: option.c:2847
 #, 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:2804
+#: option.c:2858
 msgid "try --help"
 msgstr ""
 
-#: option.c:2806
+#: option.c:2860
 msgid "try -w"
 msgstr ""
 
-#: option.c:2809
+#: option.c:2863
 #, fuzzy, c-format
 msgid "bad command line options: %s"
 msgstr "dårlige kommandlinje opsjoner: %s."
 
-#: option.c:2850
+#: option.c:2904
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "klarer ikke å få vertsnavn: %s"
 
-#: option.c:2878
+#: option.c:2932
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr "kun en resolv.conf fil tillat i no-poll modus."
 
-#: option.c:2888
+#: option.c:2942
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr "må ha nøyaktig en resolv.conf å lese domene fra."
 
-#: option.c:2891 network.c:748 dhcp.c:734
+#: option.c:2945 network.c:754 dhcp.c:734
 #, fuzzy, c-format
 msgid "failed to read %s: %s"
 msgstr "feilet å lese %s: %s"
 
-#: option.c:2909
+#: option.c:2962
 #, c-format
 msgid "no search directive found in %s"
 msgstr "intet søke direktiv funnet i %s"
 
-#: option.c:2930
+#: option.c:2983
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr ""
 
-#: option.c:2934
+#: option.c:2987
 msgid "syntax check OK"
 msgstr ""
 
-#: forward.c:405
+#: forward.c:409
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "navnetjener %s nektet å gjøre et rekursivt oppslag"
 
-#: forward.c:433
+#: forward.c:437
 msgid "possible DNS-rebind attack detected"
 msgstr ""
 
@@ -816,283 +829,283 @@ msgstr ""
 msgid "unknown interface %s in bridge-interface"
 msgstr "ukjent tilknytning (interface) %s"
 
-#: network.c:411 dnsmasq.c:184
+#: network.c:417 dnsmasq.c:189
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr "feilet å lage lytte socket: %s"
 
-#: network.c:418
+#: network.c:424
 #, c-format
 msgid "failed to set IPV6 options on listening socket: %s"
 msgstr "feilet å sette IPv6 opsjoner på lytte socket: %s"
 
-#: network.c:444
+#: network.c:450
 #, c-format
 msgid "failed to bind listening socket for %s: %s"
 msgstr "feilet å binde lytte socket for %s: %s"
 
-#: network.c:449
+#: network.c:455
 #, c-format
 msgid "failed to listen on socket: %s"
 msgstr "feilet å lytte på socket: %s"
 
-#: network.c:461
+#: network.c:467
 #, fuzzy, c-format
 msgid "failed to create TFTP socket: %s"
 msgstr "feilet å lage lytte socket: %s"
 
-#: network.c:655
+#: network.c:661
 #, fuzzy, c-format
 msgid "failed to bind server socket for %s: %s"
 msgstr "feilet å binde lytte socket for %s: %s"
 
-#: network.c:688
+#: network.c:694
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr "ignorerer navnetjener %s - lokal tilknytning"
 
-#: network.c:699
+#: network.c:705
 #, fuzzy, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %s"
 msgstr "ignorerer navnetjener %s - kan ikke lage/dinde socket: %s"
 
-#: network.c:714
+#: network.c:720
 msgid "unqualified"
 msgstr "ikke kvalifisert"
 
-#: network.c:714
+#: network.c:720
 msgid "names"
 msgstr ""
 
-#: network.c:716
+#: network.c:722
 msgid "default"
 msgstr ""
 
-#: network.c:718
+#: network.c:724
 msgid "domain"
 msgstr "domene"
 
-#: network.c:721
+#: network.c:727
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr "benytter lokale adresser kun for %s %s"
 
-#: network.c:723
+#: network.c:729
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr "benytter navnetjener %s#%d for %s %s"
 
-#: network.c:726
+#: network.c:732
 #, fuzzy, c-format
 msgid "using nameserver %s#%d(via %s)"
 msgstr "benytter navnetjener %s#%d"
 
-#: network.c:728
+#: network.c:734
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr "benytter navnetjener %s#%d"
 
-#: dnsmasq.c:141
+#: dnsmasq.c:146
 #, 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:146
+#: dnsmasq.c:151
 msgid "asychronous logging is not available under Solaris"
 msgstr ""
 
-#: dnsmasq.c:165
+#: dnsmasq.c:170
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "feilet å finne liste av tilknytninger (interfaces): %s"
 
-#: dnsmasq.c:173
+#: dnsmasq.c:178
 #, c-format
 msgid "unknown interface %s"
 msgstr "ukjent tilknytning (interface) %s"
 
-#: dnsmasq.c:179
+#: dnsmasq.c:184
 #, c-format
 msgid "no interface with address %s"
 msgstr "ingen tilknytning (interface) med adresse %s"
 
-#: dnsmasq.c:196 dnsmasq.c:660
+#: dnsmasq.c:201 dnsmasq.c:665
 #, c-format
 msgid "DBus error: %s"
 msgstr "DBus feil: %s"
 
-#: dnsmasq.c:199
+#: dnsmasq.c:204
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h"
 
-#: dnsmasq.c:225
+#: dnsmasq.c:230
 #, c-format
 msgid "unknown user or group: %s"
 msgstr ""
 
-#: dnsmasq.c:282
+#: dnsmasq.c:287
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr ""
 
-#: dnsmasq.c:443
+#: dnsmasq.c:448
 #, fuzzy, c-format
 msgid "started, version %s DNS disabled"
 msgstr "startet, versjon %s mellomlager deaktivert"
 
-#: dnsmasq.c:445
+#: dnsmasq.c:450
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "startet, versjon %s mellomlager størrelse %d"
 
-#: dnsmasq.c:447
+#: dnsmasq.c:452
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "startet, versjon %s mellomlager deaktivert"
 
-#: dnsmasq.c:449
+#: dnsmasq.c:454
 #, c-format
 msgid "compile time options: %s"
 msgstr "kompilerings opsjoner: %s"
 
-#: dnsmasq.c:455
+#: dnsmasq.c:460
 msgid "DBus support enabled: connected to system bus"
 msgstr "DBus støtte aktivert: koblet til system buss"
 
-#: dnsmasq.c:457
+#: dnsmasq.c:462
 msgid "DBus support enabled: bus connection pending"
 msgstr "DBus støtte aktivert: avventer buss tilkobling"
 
-#: dnsmasq.c:462
+#: dnsmasq.c:467
 #, fuzzy, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr "feilet å laste navn fra %s: %s"
 
-#: dnsmasq.c:466
+#: dnsmasq.c:471
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "setter --bind-interfaces opsjon på grunn av OS begrensninger"
 
-#: dnsmasq.c:471
+#: dnsmasq.c:476
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "advarsel: nettverkskort %s eksisterer ikke for tiden"
 
-#: dnsmasq.c:476
+#: dnsmasq.c:481
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:479
+#: dnsmasq.c:484
 #, fuzzy
 msgid "warning: no upstream servers configured"
 msgstr "setter oppstrøms tjener fra DBus"
 
-#: dnsmasq.c:483
+#: dnsmasq.c:488
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr ""
 
-#: dnsmasq.c:496
+#: dnsmasq.c:501
 #, 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:498
+#: dnsmasq.c:503
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr ""
 
-#: dnsmasq.c:499
+#: dnsmasq.c:504
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, IP område %s -- %s, leie tid %s"
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "root is "
 msgstr ""
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 #, fuzzy
 msgid "enabled"
 msgstr "deaktivert"
 
-#: dnsmasq.c:516
+#: dnsmasq.c:521
 msgid "secure mode"
 msgstr ""
 
-#: dnsmasq.c:542
+#: dnsmasq.c:547
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr ""
 
-#: dnsmasq.c:662
+#: dnsmasq.c:667
 msgid "connected to system DBus"
 msgstr "tilkoblet til system DBus"
 
-#: dnsmasq.c:752
+#: dnsmasq.c:757
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr ""
 
-#: dnsmasq.c:755
+#: dnsmasq.c:760
 #, fuzzy, c-format
 msgid "failed to create helper: %s"
 msgstr "feilet å lese %s: %s"
 
-#: dnsmasq.c:758
+#: dnsmasq.c:763
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr ""
 
-#: dnsmasq.c:762
+#: dnsmasq.c:767
 #, fuzzy, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr "feilet å laste navn fra %s: %s"
 
-#: dnsmasq.c:767
+#: dnsmasq.c:772
 #, fuzzy, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr "feilet å laste navn fra %s: %s"
 
-#: dnsmasq.c:770
+#: dnsmasq.c:775
 #, fuzzy, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr "feilet å lese %s: %s"
 
-#: dnsmasq.c:773
+#: dnsmasq.c:778
 #, fuzzy, c-format
 msgid "cannot open %s: %s"
 msgstr "kan ikke åpne %s:%s"
 
-#: dnsmasq.c:828
+#: dnsmasq.c:833
 #, c-format
 msgid "child process killed by signal %d"
 msgstr ""
 
-#: dnsmasq.c:832
+#: dnsmasq.c:837
 #, c-format
 msgid "child process exited with status %d"
 msgstr ""
 
-#: dnsmasq.c:836
+#: dnsmasq.c:841
 #, fuzzy, c-format
 msgid "failed to execute %s: %s"
 msgstr "feilet å få tilgang til %s: %s"
 
-#: dnsmasq.c:880
+#: dnsmasq.c:885
 msgid "exiting on receipt of SIGTERM"
 msgstr "avslutter etter mottak av SIGTERM"
 
-#: dnsmasq.c:898
+#: dnsmasq.c:903
 #, fuzzy, c-format
 msgid "failed to access %s: %s"
 msgstr "feilet å få tilgang til %s: %s"
 
-#: dnsmasq.c:920
+#: dnsmasq.c:925
 #, c-format
 msgid "reading %s"
 msgstr "leser %s"
 
-#: dnsmasq.c:931
+#: dnsmasq.c:936
 #, fuzzy, c-format
 msgid "no servers found in %s, will retry"
 msgstr "intet søke direktiv funnet i %s"
@@ -1132,51 +1145,56 @@ 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:770
+#: dhcp.c:772
 #, c-format
 msgid "bad line at %s line %d"
 msgstr "dårlig linje ved %s linje %d"
 
-#: dhcp.c:885
+#: dhcp.c:815
+#, c-format
+msgid "ignoring %s line %d, duplicate name or IP address"
+msgstr ""
+
+#: dhcp.c:897
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
 
-#: dhcp.c:888
+#: dhcp.c:900
 #, fuzzy, c-format
 msgid "duplicate IP address %s in %s."
 msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
 
-#: dhcp.c:931
+#: dhcp.c:943
 #, c-format
 msgid "%s has more than one address in hostsfile, using %s for DHCP"
 msgstr ""
 
-#: dhcp.c:936
+#: dhcp.c:948
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "dubliserte IP adresser i %s (%s) i dhcp-config direktiv"
 
-#: lease.c:60
+#: lease.c:66
 #, fuzzy, c-format
 msgid "cannot open or create lease file %s: %s"
 msgstr "kan ikke åpne eller lage leie fil: %s"
 
-#: lease.c:86
+#: lease.c:92
 msgid "too many stored leases"
 msgstr "for mange lagrede leier"
 
-#: lease.c:127
+#: lease.c:128
 #, fuzzy, c-format
 msgid "cannot run lease-init script %s: %s"
 msgstr "kan ikke lese %s: %s"
 
-#: lease.c:133
+#: lease.c:134
 #, c-format
 msgid "lease-init script returned exit code %s"
 msgstr ""
 
-#: lease.c:240
+#: lease.c:234
 #, fuzzy, c-format
 msgid "failed to write %s: %s (retry in %us)"
 msgstr "feilet å lese %s: %s"
@@ -1204,19 +1222,23 @@ msgstr ""
 msgid "%u Available DHCP range: %s -- %s"
 msgstr ""
 
-#: rfc2131.c:384 rfc2131.c:418
+#: rfc2131.c:384
 msgid "disabled"
 msgstr "deaktivert"
 
-#: rfc2131.c:433 rfc2131.c:1096
+#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+msgid "ignored"
+msgstr "oversett"
+
+#: rfc2131.c:433 rfc2131.c:1100
 msgid "address in use"
 msgstr "adresse i bruk"
 
-#: rfc2131.c:447 rfc2131.c:933
+#: rfc2131.c:447 rfc2131.c:937
 msgid "no address available"
 msgstr "ingen adresse tilgjengelig"
 
-#: rfc2131.c:454 rfc2131.c:1059
+#: rfc2131.c:454 rfc2131.c:1063
 msgid "wrong network"
 msgstr "galt nettverk"
 
@@ -1224,7 +1246,7 @@ msgstr "galt nettverk"
 msgid "no address configured"
 msgstr "ingen adresse konfigurert"
 
-#: rfc2131.c:473 rfc2131.c:1109
+#: rfc2131.c:473 rfc2131.c:1113
 msgid "no leases left"
 msgstr "ingen leier igjen"
 
@@ -1243,106 +1265,102 @@ msgstr ""
 msgid "%u User class: %s"
 msgstr ""
 
-#: rfc2131.c:733
+#: rfc2131.c:737
 msgid "PXE BIS not supported"
 msgstr ""
 
-#: rfc2131.c:849
+#: rfc2131.c:853
 #, fuzzy, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "deaktiverer DHCP statisk adresse %s"
 
-#: rfc2131.c:870
+#: rfc2131.c:874
 msgid "unknown lease"
 msgstr "ukjent leie"
 
-#: rfc2131.c:879 rfc2131.c:1223
-msgid "ignored"
-msgstr "oversett"
-
-#: rfc2131.c:902
+#: rfc2131.c:906
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:912
+#: rfc2131.c:916
 #, c-format
 msgid "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:915
+#: rfc2131.c:919
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:931 rfc2131.c:1102
+#: rfc2131.c:935 rfc2131.c:1106
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:999
+#: rfc2131.c:1003
 msgid "wrong server-ID"
 msgstr ""
 
-#: rfc2131.c:1018
+#: rfc2131.c:1022
 msgid "wrong address"
 msgstr "gal adresse"
 
-#: rfc2131.c:1035
+#: rfc2131.c:1039
 msgid "lease not found"
 msgstr "leie ikke funnet"
 
-#: rfc2131.c:1067
+#: rfc2131.c:1071
 msgid "address not available"
 msgstr "adresse ikke tilgjengelig"
 
-#: rfc2131.c:1078
+#: rfc2131.c:1082
 msgid "static lease available"
 msgstr "statisk leie tilgjengelig"
 
-#: rfc2131.c:1082
+#: rfc2131.c:1086
 msgid "address reserved"
 msgstr "adresse reservert"
 
-#: rfc2131.c:1090
+#: rfc2131.c:1094
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr ""
 
-#: rfc2131.c:1567
+#: rfc2131.c:1583
 #, c-format
 msgid "%u tags: %s"
 msgstr ""
 
-#: rfc2131.c:1580
+#: rfc2131.c:1596
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr ""
 
-#: rfc2131.c:1589
+#: rfc2131.c:1605
 #, fuzzy, c-format
 msgid "%u server name: %s"
 msgstr "DBus feil: %s"
 
-#: rfc2131.c:1597
+#: rfc2131.c:1613
 #, fuzzy, c-format
 msgid "%u next server: %s"
 msgstr "DBus feil: %s"
 
-#: rfc2131.c:1664
+#: rfc2131.c:1680
 #, 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:1903
+#: rfc2131.c:1919
 msgid "PXE menu too large"
 msgstr ""
 
-#: rfc2131.c:2018
+#: rfc2131.c:2034
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr ""
 
-#: rfc2131.c:2036
+#: rfc2131.c:2052
 #, fuzzy, c-format
 msgid "%u requested options: %s"
 msgstr "kompilerings opsjoner: %s"
@@ -1379,31 +1397,31 @@ msgstr "kan ikke lage DHCP BPF socket: %s"
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "DHCP krav for ikke støttet maskinvare type (%d) mottatt på %s"
 
-#: tftp.c:172
+#: tftp.c:179
 msgid "unable to get free port for TFTP"
 msgstr ""
 
-#: tftp.c:187
+#: tftp.c:194
 #, c-format
 msgid "unsupported request from %s"
 msgstr ""
 
-#: tftp.c:268
+#: tftp.c:282
 #, c-format
 msgid "TFTP sent %s to %s"
 msgstr ""
 
-#: tftp.c:291
+#: tftp.c:305
 #, fuzzy, c-format
 msgid "file %s not found"
 msgstr "leie ikke funnet"
 
-#: tftp.c:402
+#: tftp.c:416
 #, c-format
 msgid "TFTP error %d %s received from %s"
 msgstr ""
 
-#: tftp.c:433
+#: tftp.c:447
 #, fuzzy, c-format
 msgid "TFTP failed sending %s to %s"
 msgstr "feilet å lese %s: %s"
index f3bff79224288b7baad7bc797ac4e551e6ea860f..accaa603ac0537e10742cb62f4c220e082471e97 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,3 +1,4 @@
+# translation of pl.po to polski
 # Polish translations for dnsmasq package.
 # This file is put in the public domain.
 #
@@ -8,89 +9,94 @@ msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-06-10 20:57+0100\n"
-"PO-Revision-Date: 2009-02-01 01:14+0100\n"
+"PO-Revision-Date: 2009-10-02 20:30+0200\n"
 "Last-Translator: Jan Psota <jasiu@belsznica.pl>\n"
-"Language-Team: polski <pl@li.org>\n"
+"Language-Team: Polish <kde-i18n-doc@kde.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-2\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms:  nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: KBabel 1.11.4\n"
+"X-Generator: Lokalize 1.0\n"
+"X-Language: pl_PL\n"
 
 #: cache.c:764
 #, c-format
 msgid "failed to load names from %s: %s"
 msgstr "nie potrafiê wczytaæ nazw z %s: %s"
 
-#: cache.c:798 dhcp.c:783
+#: cache.c:798 dhcp.c:785
 #, c-format
 msgid "bad address at %s line %d"
 msgstr "b³êdny adres w pliku %s, w linii %d"
 
-#: cache.c:853 dhcp.c:797
+#: cache.c:856 dhcp.c:801
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "b³êdna nazwa w pliku %s, w linii %d"
 
-#: cache.c:860 dhcp.c:863
+#: cache.c:863 dhcp.c:875
 #, c-format
 msgid "read %s - %d addresses"
-msgstr "przeczytano %s - %d adresów"
+msgstr "wczyta³em %s - %d adresów"
 
-#: cache.c:899
+#: cache.c:902
 msgid "cleared cache"
 msgstr "wyczyszczono pamiêæ podrêczn±"
 
-#: cache.c:930 option.c:1026
+#: cache.c:933 option.c:1055
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr "brak dostêpu do katalogu %s: %s"
 
-#: cache.c:1049
+#: cache.c:1052
 #, 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:1126
+#: cache.c:1129
 #, c-format
 msgid "time %lu"
 msgstr "czas %lu"
 
-#: cache.c:1127
+#: cache.c:1130
 #, c-format
 msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
-msgstr "wielko¶æ pamiêci podrêcznej: %d; %d z %d miejsc aktualnych wpisów u¿yto ponownie"
+msgstr "wielko¶æ pamiêci podrêcznej: %d; %d z %d miejsc aktualnych wpisów u¿yto ponownie."
 
-#: cache.c:1129
+#: cache.c:1132
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr "%u zapytañ przes³anych dalej, %u odpowiedzi udzielonych samodzielnie"
 
-#: cache.c:1152
+#: cache.c:1155
 #, 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"
 
-#: util.c:56
+#: util.c:59
 #, c-format
 msgid "failed to seed the random number generator: %s"
 msgstr "brak mo¿liwo¶ci u¿ycia generatora liczb losowych: %s"
 
-#: util.c:164
+#: util.c:191
+msgid "failed to allocate memory"
+msgstr "nie uda³o siê przydzieliæ pamiêci"
+
+#: util.c:229 option.c:548
 msgid "could not get memory"
 msgstr "nie mo¿na dostaæ pamiêci"
 
-#: util.c:174
+#: util.c:239
 #, c-format
 msgid "cannot create pipe: %s"
 msgstr "b³±d podczas próby utworzenia potoku: %s"
 
-#: util.c:182
+#: util.c:247
 #, c-format
 msgid "failed to allocate %d bytes"
 msgstr "niemo¿liwo¶æ przydzielenia %d bajtów pamiêci"
 
-#: util.c:287
+#: util.c:352
 #, c-format
 msgid "infinite"
 msgstr "nieskoñczona"
@@ -109,17 +115,17 @@ msgstr "Wy
 
 #: option.c:231
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
-msgstr "Traktowanie adresu IP jak NXDOMAIN"
+msgstr "Traktowanie adresu IP jako NXDOMAIN (uniewa¿nia ,,Verisign wildcard'')."
 
 #: option.c:232
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
-msgstr "Wielko¶æ pamiêci podrêcznej (domy¶lnie: %s miejsc)"
+msgstr "Wskazanie wielko¶ci pamiêci podrêcznej (domy¶lnie: %s miejsc)."
 
 #: option.c:233
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
-msgstr "Wskazanie pliku konfiguracyjnego (domy¶lnie: %s)"
+msgstr "Wskazanie pliku konfiguracyjnego (domy¶lnie: %s)."
 
 #: option.c:234
 msgid "Do NOT fork into the background: run in debug mode."
@@ -215,7 +221,7 @@ msgstr "Zak
 #: option.c:256
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
-msgstr "¦cie¿ka przechowywania pliku dzier¿aw DHCP (domy¶lnie: %s)"
+msgstr "¦cie¿ka przechowywania pliku dzier¿aw DHCP (domy¶lnie: %s)."
 
 #: option.c:257
 msgid "Return MX records for local hosts."
@@ -270,7 +276,7 @@ msgstr "Wymuszenie u
 
 #: option.c:269
 msgid "Do NOT read resolv.conf."
-msgstr "Wy³±czenie czytania pliku resolv.conf"
+msgstr "Wy³±czenie czytania pliku resolv.conf."
 
 #: option.c:270
 #, c-format
@@ -367,7 +373,7 @@ msgstr "W
 
 #: option.c:292
 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."
+msgstr "Uruchomienie na wskazanym interfejsie tylko DNS-a, bez us³ug DHCP i TFTP."
 
 #: option.c:293
 msgid "Enable dynamic address allocation for bootp."
@@ -395,7 +401,7 @@ msgstr "Wczytanie wszystkich plik
 
 #: option.c:299
 msgid "Log to this syslog facility or file. (defaults to DAEMON)"
-msgstr "Wskazanie kana³u syslog-a do którego maj± trafiaæ komunikaty (domy¶lnie: DAEMON)."
+msgstr "Wskazanie kana³u syslog-a do którego maj± trafiaæ komunikaty (domy¶lnie: DAEMON)"
 
 #: option.c:300
 msgid "Do not use leasefile."
@@ -404,7 +410,7 @@ msgstr "Nieu
 #: option.c:301
 #, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
-msgstr "Maksymalna liczba jednocze¶nie obs³ugiwanych zapytañ DNS (domy¶lnie: %s)."
+msgstr "Maksymalna liczba jednocze¶nie obs³ugiwanych zapytañ DNS (domy¶lnie: %s)"
 
 #: option.c:302
 #, c-format
@@ -493,19 +499,18 @@ msgid "Specify alias name for LOCAL DNS name."
 msgstr "Wskazanie synonimu nazwy komputera lokalnego - znanego z /etc/hosts albo z DHCP."
 
 #: option.c:323
-#, fuzzy
 msgid "Prompt to send to PXE clients."
-msgstr "Specyfikacja opcji wysy³anej do klientów DHCP."
+msgstr "Zg³oszenie wysy³ane klientom PXE."
 
 #: option.c:324
 msgid "Boot service for PXE menu."
-msgstr ""
+msgstr "Sk³adnik menu PXE (--> man)."
 
 #: option.c:325
 msgid "Check configuration syntax."
-msgstr ""
+msgstr "Sprawd¼ sk³adniê."
 
-#: option.c:601
+#: option.c:613
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -514,208 +519,216 @@ msgstr ""
 "U¿ycie: dnsmasq [opcje]\n"
 "\n"
 
-#: option.c:603
+#: option.c:615
 #, 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:605
+#: option.c:617
 #, c-format
 msgid "Valid options are:\n"
 msgstr "Dostêpne opcje:\n"
 
-#: option.c:646
+#: option.c:658
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr "Znane opcje DHCP:\n"
 
-#: option.c:723
+#: option.c:735
 msgid "bad dhcp-option"
 msgstr "b³±d w dhcp-option"
 
-#: option.c:780
+#: option.c:792
 msgid "bad IP address"
 msgstr "z³y adres IP"
 
-#: option.c:878
+#: option.c:891
 msgid "bad domain in dhcp-option"
 msgstr "nieprawid³owa nazwa domeny w dhcp-option"
 
-#: option.c:936
+#: option.c:950
 msgid "dhcp-option too long"
 msgstr "zbyt d³uga dhcp-option (>255 znaków)"
 
-#: option.c:945
+#: option.c:959
 msgid "illegal dhcp-match"
 msgstr "niedopuszczalne dhcp-match"
 
-#: option.c:981
+#: option.c:995
 msgid "illegal repeated flag"
 msgstr "wielokrotne u¿ycie opcji niedozwolone (pojawi³a siê wcze¶niej w linii poleceñ)"
 
-#: option.c:989
+#: option.c:1003
 msgid "illegal repeated keyword"
 msgstr "wielokrotne u¿ycie opcji niedozwolone (pojawi³a siê wsze¶niej w pliku konfiguracyjnym)"
 
-#: option.c:1046 tftp.c:345
+#: option.c:1086 tftp.c:359
 #, c-format
 msgid "cannot access %s: %s"
 msgstr "brak dostêpu do %s: %s"
 
-#: option.c:1084
+#: option.c:1131
 msgid "only one dhcp-hostsfile allowed"
 msgstr "mo¿na wskazaæ tylko jeden plik dhcp-hostsfile"
 
-#: option.c:1091
+#: option.c:1138
 msgid "only one dhcp-optsfile allowed"
 msgstr "mo¿na wskazaæ tylko jeden plik dhcp-optsfile"
 
-#: option.c:1135
+#: option.c:1183
 msgid "bad MX preference"
 msgstr "nieprawid³owa warto¶æ preferencji MX"
 
-#: option.c:1139
+#: option.c:1188
 msgid "bad MX name"
 msgstr "nieprawid³owa nazwa MX"
 
-#: option.c:1153
+#: option.c:1202
 msgid "bad MX target"
 msgstr "nieprawid³owa warto¶æ celu MX"
 
-#: option.c:1165
+#: option.c:1212
 msgid "cannot run scripts under uClinux"
 msgstr "w uClinuksie nie ma mo¿liwo¶ci uruchamiania skryptów"
 
-#: option.c:1395 option.c:1399
+#: option.c:1214
+msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
+msgstr "¿eby mieæ mo¿liwo¶æ u¿ywania skryptów wywo³ywanych przy zmianie dzier¿awy, przekompiluj dnsmasq-a z w³±czon± flag± HAVE_SCRIPT"
+
+#: option.c:1442 option.c:1446
 msgid "bad port"
 msgstr "nieprawid³owy numer portu"
 
-#: option.c:1418 option.c:1443
+#: option.c:1465 option.c:1490
 msgid "interface binding not supported"
 msgstr "nie ma mo¿liwo¶ci dowi±zywania do interfejsu"
 
-#: option.c:1564
+#: option.c:1611
 msgid "bad port range"
 msgstr "nieprawid³owy zakres numerów portów"
 
-#: option.c:1581
+#: option.c:1628
 msgid "bad bridge-interface"
 msgstr "nieprawid³owa nazwa urz±dzenia w bridge-interface"
 
-#: option.c:1622
+#: option.c:1669
 msgid "bad dhcp-range"
 msgstr "nieprawid³owy zakres dhcp-range"
 
-#: option.c:1648
+#: option.c:1695
 msgid "only one netid tag allowed"
 msgstr "mo¿na wskazaæ tylko jeden znacznik sieci"
 
-#: option.c:1693
+#: option.c:1740
 msgid "inconsistent DHCP range"
 msgstr "niespójny zakres adresów DHCP"
 
-#: option.c:1865
+#: option.c:1912
 msgid "bad DHCP host name"
 msgstr "niedopuszczalna nazwa komputera w dhcp-host"
 
-#: option.c:2155 option.c:2427
+#: option.c:2201 option.c:2481
 msgid "invalid port number"
 msgstr "nieprawid³owy numer portu"
 
-#: option.c:2238
+#: option.c:2284
 msgid "invalid alias range"
 msgstr "nieprawid³owy zakres adresów w --alias"
 
-#: option.c:2250
+#: option.c:2297
 msgid "bad interface name"
 msgstr "nieprawid³owa nazwa interfejsu"
 
-#: option.c:2273
+#: option.c:2322
+msgid "bad CNAME"
+msgstr "z³a CNAME"
+
+#: option.c:2327
 msgid "duplicate CNAME"
 msgstr "powtórzona CNAME"
 
-#: option.c:2290
+#: option.c:2347
 msgid "bad PTR record"
 msgstr "nieprawid³owy zapis rekordu PTR"
 
-#: option.c:2320
+#: option.c:2378
 msgid "bad NAPTR record"
 msgstr "nieprawid³owy zapis rekordu NAPTR"
 
-#: option.c:2346
+#: option.c:2403
 msgid "TXT record string too long"
 msgstr "zbyt d³ugi rekord TXT"
 
-#: option.c:2350
+#: option.c:2451
 msgid "bad TXT record"
 msgstr "nieprawid³owy zapis rekordu TXT"
 
-#: option.c:2410
+#: option.c:2467
 msgid "bad SRV record"
 msgstr "nieprawid³owy zapis rekordu SRV"
 
-#: option.c:2419
+#: option.c:2474
 msgid "bad SRV target"
 msgstr "nieprawid³owa warto¶æ celu SRV"
 
-#: option.c:2434
+#: option.c:2488
 msgid "invalid priority"
 msgstr "nieprawid³owy priorytet"
 
-#: option.c:2441
+#: option.c:2495
 msgid "invalid weight"
 msgstr "nieprawid³owa waga"
 
-#: option.c:2460
+#: option.c:2514
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
-msgstr ""
+msgstr "nieobs³ugiwana opcja (sprawd¼, czy obs³uga DHCP/TFTP/DBus zosta³a wkompilowana)"
 
-#: option.c:2503
+#: option.c:2557
 #, c-format
 msgid "files nested too deep in %s"
 msgstr "zbyt du¿e zag³êbienie plików w %s"
 
-#: option.c:2511 tftp.c:499
+#: option.c:2565 tftp.c:513
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "b³±d odczytu z pliku %s: %s"
 
-#: option.c:2572
+#: option.c:2626
 msgid "missing \""
 msgstr "brakuje \""
 
-#: option.c:2619
+#: option.c:2673
 msgid "bad option"
 msgstr "nieprawid³owa opcja"
 
-#: option.c:2621
+#: option.c:2675
 msgid "extraneous parameter"
 msgstr "nadwy¿kowy parametr"
 
-#: option.c:2623
+#: option.c:2677
 msgid "missing parameter"
 msgstr "brak parametru"
 
-#: option.c:2631
+#: option.c:2685
 msgid "error"
 msgstr "b³±d"
 
-#: option.c:2637
+#: option.c:2691
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr "%s w linii %d pliku %%s"
 
-#: option.c:2686 option.c:2717
+#: option.c:2740 option.c:2771
 #, c-format
 msgid "read %s"
 msgstr "przeczyta³em %s"
 
-#: option.c:2789
+#: option.c:2843
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Dnsmasq, wersja %s  %s\n"
 
-#: option.c:2790
+#: option.c:2844
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -724,71 +737,71 @@ msgstr ""
 "Wkompilowane opcje %s\n"
 "\n"
 
-#: option.c:2791
+#: option.c:2845
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
-msgstr "To oprogramowanie nie daje ¿adnych gwarancji.\n"
+msgstr "Autor nie daje ¯ADNYCH GWARANCJI egzekwowalnych prawnie.\n"
 
-#: option.c:2792
+#: option.c:2846
 #, 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:2793
+#: option.c:2847
 #, 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:2804
+#: option.c:2858
 msgid "try --help"
 msgstr "spróbuj: --help"
 
-#: option.c:2806
+#: option.c:2860
 msgid "try -w"
 msgstr "spróbuj: -w"
 
-#: option.c:2809
+#: option.c:2863
 #, c-format
 msgid "bad command line options: %s"
 msgstr "nieprawid³owa opcja w linii poleceñ %s"
 
-#: option.c:2850
+#: option.c:2904
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "nie mo¿na pobraæ nazwy hosta: %s"
 
-#: option.c:2878
+#: option.c:2932
 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:2888
+#: option.c:2942
 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:2891 network.c:748 dhcp.c:734
+#: option.c:2945 network.c:754 dhcp.c:734
 #, c-format
 msgid "failed to read %s: %s"
 msgstr "nie uda³o siê odczytaæ %s: %s"
 
-#: option.c:2909
+#: option.c:2962
 #, c-format
 msgid "no search directive found in %s"
 msgstr "brak wytycznych wyszukiwania w %s"
 
-#: option.c:2930
+#: option.c:2983
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr "w przypadku u¿ywania --dhcp-fqdn trzeba wskazaæ domy¶ln± domenê"
 
-#: option.c:2934
+#: option.c:2987
 msgid "syntax check OK"
-msgstr ""
+msgstr "sk³adnia sprawdzona, jest prawid³owa"
 
-#: forward.c:405
+#: forward.c:409
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "serwer nazw %s odmawia wykonania zapytania rekurencyjnego"
 
-#: forward.c:433
+#: forward.c:437
 msgid "possible DNS-rebind attack detected"
 msgstr "prawdopodobnie wykryto atak DNS-rebind"
 
@@ -797,280 +810,280 @@ msgstr "prawdopodobnie wykryto atak DNS-rebind"
 msgid "unknown interface %s in bridge-interface"
 msgstr "nieznany interfejs %s w bridge-u"
 
-#: network.c:411 dnsmasq.c:184
+#: network.c:417 dnsmasq.c:189
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr "b³±d podczas tworzenia gniazda: %s"
 
-#: network.c:418
+#: network.c:424
 #, c-format
 msgid "failed to set IPV6 options on listening socket: %s"
 msgstr "b³±d ustawiania opcji IPV6 na nas³uchuj±cym gnie¼dzie: %s"
 
-#: network.c:444
+#: network.c:450
 #, c-format
 msgid "failed to bind listening socket for %s: %s"
 msgstr "b³±d przy przyznawaniu nazwy gniazdu %s: %s"
 
-#: network.c:449
+#: network.c:455
 #, c-format
 msgid "failed to listen on socket: %s"
 msgstr "b³±d przy w³±czaniu nas³uchu na gnie¼dzie: %s"
 
-#: network.c:461
+#: network.c:467
 #, c-format
 msgid "failed to create TFTP socket: %s"
 msgstr "nie powiod³o siê otwieranie gniazda dla us³ugi TFTP: %s"
 
-#: network.c:655
+#: network.c:661
 #, c-format
 msgid "failed to bind server socket for %s: %s"
 msgstr "b³±d przy przyznawaniu nazwy gniazdu serwera %s: %s"
 
-#: network.c:688
+#: network.c:694
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr "ignorowanie serwera nazw %s - interfejs lokalny"
 
-#: network.c:699
+#: network.c:705
 #, 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:714
+#: network.c:720
 msgid "unqualified"
 msgstr "niekwalifikowane(-a)"
 
-#: network.c:714
+#: network.c:720
 msgid "names"
 msgstr "nazwy"
 
-#: network.c:716
+#: network.c:722
 msgid "default"
 msgstr "domy¶lne"
 
-#: network.c:718
+#: network.c:724
 msgid "domain"
-msgstr "domena"
+msgstr "domeny"
 
-#: network.c:721
+#: network.c:727
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr "u¿ywam adresów lokalnych tylko dla %s %s"
 
-#: network.c:723
+#: network.c:729
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr "u¿ywam serwera nazw %s#%d dla %s %s"
 
-#: network.c:726
+#: network.c:732
 #, c-format
 msgid "using nameserver %s#%d(via %s)"
 msgstr "u¿ywam serwera nazw %s#%d (przez %s)"
 
-#: network.c:728
+#: network.c:734
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr "u¿ywam serwera nazw %s#%d"
 
-#: dnsmasq.c:141
+#: dnsmasq.c:146
 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:146
+#: dnsmasq.c:151
 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:170
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "b³±d podczas tworzenia listy interfejsów sieciowych: %s"
 
-#: dnsmasq.c:173
+#: dnsmasq.c:178
 #, c-format
 msgid "unknown interface %s"
 msgstr "nieznany interfejs %s"
 
-#: dnsmasq.c:179
+#: dnsmasq.c:184
 #, c-format
 msgid "no interface with address %s"
 msgstr "brak interfejsu z adresem %s"
 
-#: dnsmasq.c:196 dnsmasq.c:660
+#: dnsmasq.c:201 dnsmasq.c:665
 #, c-format
 msgid "DBus error: %s"
 msgstr "b³±d DBus: %s"
 
-#: dnsmasq.c:199
+#: dnsmasq.c:204
 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:225
+#: dnsmasq.c:230
 #, c-format
 msgid "unknown user or group: %s"
 msgstr "nieznany u¿ytkownik lub grupa: %s"
 
-#: dnsmasq.c:282
+#: dnsmasq.c:287
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr "nie potrafiê wej¶æ do g³ównego katalogu: %s"
 
-#: dnsmasq.c:443
+#: dnsmasq.c:448
 #, c-format
 msgid "started, version %s DNS disabled"
 msgstr "uruchomiony, wersja %s, DNS wy³±czony"
 
-#: dnsmasq.c:445
+#: dnsmasq.c:450
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "uruchomiony, wersja %s, %d miejsc w pamiêci podrêcznej"
 
-#: dnsmasq.c:447
+#: dnsmasq.c:452
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "uruchomiony, wersja %s, pamiêæ podrêczna wy³±czona"
 
-#: dnsmasq.c:449
+#: dnsmasq.c:454
 #, c-format
 msgid "compile time options: %s"
 msgstr "opcje kompilacji: %s"
 
-#: dnsmasq.c:455
+#: dnsmasq.c:460
 msgid "DBus support enabled: connected to system bus"
 msgstr "obs³uga DBus w³±czona, pod³±czono do serwera DBus"
 
-#: dnsmasq.c:457
+#: dnsmasq.c:462
 msgid "DBus support enabled: bus connection pending"
 msgstr "obs³uga DBus w³±czona, trwa pod³±czanie do serwera DBus"
 
-#: dnsmasq.c:462
+#: dnsmasq.c:467
 #, 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:466
+#: dnsmasq.c:471
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "ustawiam --bind-interfaces z powodu ograniczeñ systemu operacyjnego"
 
-#: dnsmasq.c:471
+#: dnsmasq.c:476
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "uwaga: interfejs %s nie jest w³±czony"
 
-#: dnsmasq.c:476
+#: dnsmasq.c:481
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr "uwaga: ignorujê opcjê resolv-file, poniewa¿ wybrano tryb no-resolv"
 
-#: dnsmasq.c:479
+#: dnsmasq.c:484
 msgid "warning: no upstream servers configured"
 msgstr "uwaga: nie wskazano nadrzêdnych serwerów DNS"
 
-#: dnsmasq.c:483
+#: dnsmasq.c:488
 #, 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:496
+#: dnsmasq.c:501
 #, 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:498
+#: dnsmasq.c:503
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
-msgstr ""
+msgstr "DHCP: po¶rednik na podsieci %.0s%s%.0s"
 
-#: dnsmasq.c:499
+#: dnsmasq.c:504
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP: zakres IP %s -- %s, czas dzier¿awy %s"
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "root is "
-msgstr ": g³ówny katalog -- "
+msgstr "z g³ównym katalogiem w "
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "enabled"
 msgstr "w³±czony"
 
-#: dnsmasq.c:516
+#: dnsmasq.c:521
 msgid "secure mode"
 msgstr "w trybie bezpiecznym"
 
-#: dnsmasq.c:542
+#: dnsmasq.c:547
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr "ograniczam ilo¶æ jednoczesnych przes³añ TFTP do %d"
 
-#: dnsmasq.c:662
+#: dnsmasq.c:667
 msgid "connected to system DBus"
 msgstr "pod³±czono do DBus-a"
 
-#: dnsmasq.c:752
+#: dnsmasq.c:757
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr "nie potrafiê prze³±czyæ siê do pracy w tle: %s"
 
-#: dnsmasq.c:755
+#: dnsmasq.c:760
 #, c-format
 msgid "failed to create helper: %s"
 msgstr "nie uda³o siê utworzyæ procesu pomocniczego: %s"
 
-#: dnsmasq.c:758
+#: dnsmasq.c:763
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr "nie powiod³o siê ustawianie ograniczeñ (capabilities): %s"
 
-#: dnsmasq.c:762
+#: dnsmasq.c:767
 #, 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:767
+#: dnsmasq.c:772
 #, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr "nie uda³o siê zmieniæ grupy procesu na %s: %s"
 
-#: dnsmasq.c:770
+#: dnsmasq.c:775
 #, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr "nie uda³o siê otworzyæ pliku z PID-em %s: %s"
 
-#: dnsmasq.c:773
+#: dnsmasq.c:778
 #, c-format
 msgid "cannot open %s: %s"
 msgstr "nie mo¿na otworzyæ %s: %s"
 
-#: dnsmasq.c:828
+#: dnsmasq.c:833
 #, c-format
 msgid "child process killed by signal %d"
 msgstr "proces potomny zabity sygna³em %d"
 
-#: dnsmasq.c:832
+#: dnsmasq.c:837
 #, c-format
 msgid "child process exited with status %d"
 msgstr "proces potomny zakoñczy³ siê z kodem powrotu %d"
 
-#: dnsmasq.c:836
+#: dnsmasq.c:841
 #, c-format
 msgid "failed to execute %s: %s"
 msgstr "nie uda³o siê uruchomiæ %s: %s"
 
-#: dnsmasq.c:880
+#: dnsmasq.c:885
 msgid "exiting on receipt of SIGTERM"
 msgstr "zakoñczy³em dzia³anie z powodu odebrania SIGTERM"
 
-#: dnsmasq.c:898
+#: dnsmasq.c:903
 #, c-format
 msgid "failed to access %s: %s"
 msgstr "brak dostêpu do %s: %s"
 
-#: dnsmasq.c:920
+#: dnsmasq.c:925
 #, c-format
 msgid "reading %s"
 msgstr "czytanie %s"
 
-#: dnsmasq.c:931
+#: dnsmasq.c:936
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr "w %s nie znalaz³em serwerów, spróbujê ponownie pó¼niej"
@@ -1110,51 +1123,56 @@ msgstr "
 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:770
+#: dhcp.c:772
 #, c-format
 msgid "bad line at %s line %d"
 msgstr "z³a zawarto¶æ pliku %s, w linii %d"
 
-#: dhcp.c:885
+#: dhcp.c:815
+#, c-format
+msgid "ignoring %s line %d, duplicate name or IP address"
+msgstr "w %s pomijam liniê %d -- powtórzona nazwa lub adres IP"
+
+#: dhcp.c:897
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "powtórzony adres IP (%s) w parametrze dhcp-config"
 
-#: dhcp.c:888
+#: dhcp.c:900
 #, c-format
 msgid "duplicate IP address %s in %s."
 msgstr "powtórzony adres IP (%s) w pliku %s"
 
-#: dhcp.c:931
+#: dhcp.c:943
 #, 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:936
+#: dhcp.c:948
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "powtórzenie adresu IP %s (%s) w opcji dhcp-config"
 
-#: lease.c:60
+#: lease.c:66
 #, c-format
 msgid "cannot open or create lease file %s: %s"
 msgstr "nie potrafiê otworzyæ albo utworzyæ pliku dzier¿aw %s: %s"
 
-#: lease.c:86
+#: lease.c:92
 msgid "too many stored leases"
 msgstr "zbyt du¿a ilo¶æ zapisanych dzier¿aw"
 
-#: lease.c:127
+#: lease.c:128
 #, c-format
 msgid "cannot run lease-init script %s: %s"
 msgstr "nie potrafiê uruchomiæ skryptu %s: %s"
 
-#: lease.c:133
+#: lease.c:134
 #, c-format
 msgid "lease-init script returned exit code %s"
 msgstr "skrypt zakoñczy³ siê z kodem powrotu %s"
 
-#: lease.c:240
+#: lease.c:234
 #, c-format
 msgid "failed to write %s: %s (retry in %us)"
 msgstr "b³±d zapisu do %s: %s (spróbujê ponownie za %us)"
@@ -1180,21 +1198,25 @@ msgstr "%u Dost
 #: rfc2131.c:355
 #, c-format
 msgid "%u Available DHCP range: %s -- %s"
-msgstr "%u Zakres adresów na u¿ytek DHCP: %s -- %s"
+msgstr "%u zakres adresów na u¿ytek DHCP: %s -- %s"
 
-#: rfc2131.c:384 rfc2131.c:418
+#: rfc2131.c:384
 msgid "disabled"
 msgstr "wy³±czony(a)"
 
-#: rfc2131.c:433 rfc2131.c:1096
+#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+msgid "ignored"
+msgstr "ignorujê"
+
+#: rfc2131.c:433 rfc2131.c:1100
 msgid "address in use"
 msgstr "adres jest w u¿yciu"
 
-#: rfc2131.c:447 rfc2131.c:933
+#: rfc2131.c:447 rfc2131.c:937
 msgid "no address available"
 msgstr "brak dostêpnego adresu"
 
-#: rfc2131.c:454 rfc2131.c:1059
+#: rfc2131.c:454 rfc2131.c:1063
 msgid "wrong network"
 msgstr "nieprawid³owa sieæ"
 
@@ -1202,125 +1224,121 @@ msgstr "nieprawid
 msgid "no address configured"
 msgstr "brak skonfigurowanego adresu"
 
-#: rfc2131.c:473 rfc2131.c:1109
+#: rfc2131.c:473 rfc2131.c:1113
 msgid "no leases left"
 msgstr "brak wolnych dzier¿aw"
 
 #: rfc2131.c:558
-#, fuzzy, c-format
+#, c-format
 msgid "%u client provides name: %s"
-msgstr "%u nazwa serwera: %s"
+msgstr "klient %u przedstawia siê jako %s"
 
 #: rfc2131.c:696
 #, c-format
 msgid "%u Vendor class: %s"
-msgstr "%u Typ klienta: %s"
+msgstr "%u klasa klienta: %s"
 
 #: rfc2131.c:698
 #, c-format
 msgid "%u User class: %s"
 msgstr "%u Klasa u¿ytkownika: %s"
 
-#: rfc2131.c:733
+#: rfc2131.c:737
 msgid "PXE BIS not supported"
-msgstr ""
+msgstr "PXE BIS nie jest obs³ugiwane"
 
-#: rfc2131.c:849
+#: rfc2131.c:853
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "wy³±czam statyczne przypisanie adresu %s dla %s"
 
-#: rfc2131.c:870
+#: rfc2131.c:874
 msgid "unknown lease"
 msgstr "nieznana dzier¿awa"
 
-#: rfc2131.c:879 rfc2131.c:1223
-msgid "ignored"
-msgstr "ignorujê"
-
-#: rfc2131.c:902
+#: rfc2131.c:906
 #, 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:912
+#: rfc2131.c:916
 #, 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:915
+#: rfc2131.c:919
 #, 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:931 rfc2131.c:1102
+#: rfc2131.c:935 rfc2131.c:1106
 msgid "no unique-id"
 msgstr "brak unikalnego id"
 
-#: rfc2131.c:999
+#: rfc2131.c:1003
 msgid "wrong server-ID"
 msgstr "nieprawid³owy identyfikator serwera (server-ID)"
 
-#: rfc2131.c:1018
+#: rfc2131.c:1022
 msgid "wrong address"
 msgstr "b³êdny adres"
 
-#: rfc2131.c:1035
+#: rfc2131.c:1039
 msgid "lease not found"
 msgstr "dzier¿awa nieznaleziona"
 
-#: rfc2131.c:1067
+#: rfc2131.c:1071
 msgid "address not available"
 msgstr "adres niedostêpny"
 
-#: rfc2131.c:1078
+#: rfc2131.c:1082
 msgid "static lease available"
 msgstr "dostêpna statyczna dzier¿awa"
 
-#: rfc2131.c:1082
+#: rfc2131.c:1086
 msgid "address reserved"
 msgstr "adres zarezerwowany"
 
-#: rfc2131.c:1090
+#: rfc2131.c:1094
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr "porzucam przypisanie do %s nazwy %s"
 
-#: rfc2131.c:1567
+#: rfc2131.c:1583
 #, c-format
 msgid "%u tags: %s"
-msgstr "%u znaczniki: %s"
+msgstr "%u cechy: %s"
 
-#: rfc2131.c:1580
+#: rfc2131.c:1596
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr "%u nazwa pliku bootowania: %s"
 
-#: rfc2131.c:1589
+#: rfc2131.c:1605
 #, c-format
 msgid "%u server name: %s"
 msgstr "%u nazwa serwera: %s"
 
-#: rfc2131.c:1597
+#: rfc2131.c:1613
 #, c-format
 msgid "%u next server: %s"
 msgstr "%u nastêpny serwer: %s"
 
-#: rfc2131.c:1664
+#: rfc2131.c:1680
 #, 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:1903
+#: rfc2131.c:1919
 msgid "PXE menu too large"
-msgstr ""
+msgstr "menu PXE zbyt du¿e"
 
-#: rfc2131.c:2018
+#: rfc2131.c:2034
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr "Nie uwzglêdniam czê¶ci domenowej (%s) dla komputera %s"
 
-#: rfc2131.c:2036
+#: rfc2131.c:2052
 #, c-format
 msgid "%u requested options: %s"
 msgstr "%u wskazane opcje: %s"
@@ -1357,34 +1375,34 @@ msgstr "nie potrafi
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "¿±danie DHCP od urz±dzenia nieobs³ugiwanego typu (%d) odebrano na %s"
 
-#: tftp.c:172
+#: tftp.c:179
 msgid "unable to get free port for TFTP"
 msgstr "brak wolnego portu dla us³ugi TFTP"
 
-#: tftp.c:187
+#: tftp.c:194
 #, c-format
 msgid "unsupported request from %s"
 msgstr "nieobs³ugiwane ¿±danie od komputera %s"
 
-#: tftp.c:268
+#: tftp.c:282
 #, c-format
 msgid "TFTP sent %s to %s"
-msgstr "TFTP: plik %s wys³ano do %s"
+msgstr "plik %s przes³ano za pomoc± TFTP do %s"
 
-#: tftp.c:291
+#: tftp.c:305
 #, c-format
 msgid "file %s not found"
-msgstr "nie znaleziono pliku %s"
+msgstr "plik %s nie zosta³ znaleziony"
 
-#: tftp.c:402
+#: tftp.c:416
 #, c-format
 msgid "TFTP error %d %s received from %s"
-msgstr "b³±d TFTP: %d bajtów odebrano w %s od %s"
+msgstr "b³±d TFTP: %d bajtów odebrano (%s) z %s"
 
-#: tftp.c:433
+#: tftp.c:447
 #, c-format
 msgid "TFTP failed sending %s to %s"
-msgstr "b³±d wysy³ania pliku %s przez TFTP do komputera %s"
+msgstr "b³±d wysy³ania przez TFTP pliku %s do komputera %s"
 
 #: log.c:169
 #, c-format
@@ -1400,8 +1418,3 @@ msgstr "nie uda
 msgid "FAILED to start up"
 msgstr "B£¡D: nie uda³o siê uruchomiæ dnsmasq-a"
 
-#~ msgid "DHCP packet: transaction-id is %u"
-#~ msgstr "pakiet DHCP, id transakcji: %u"
-
-#~ msgid "must set exactly one interface on broken systems without IP_RECVIF"
-#~ msgstr "musisz ustawiæ dok³adnie jeden interfejs w systemach bez IP_RECVIF"
index a4f26d58829b6eba2a689a105d178111a7dea73a..89b81333c3dca825bf7c4b313abd5b4357152d14 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.26\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 20:57+0100\n"
+"POT-Creation-Date: 2009-06-18 12:24+0100\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"
@@ -20,75 +20,79 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr ""
 
-#: cache.c:798 dhcp.c:783
+#: cache.c:798 dhcp.c:785
 #, c-format
 msgid "bad address at %s line %d"
 msgstr ""
 
-#: cache.c:853 dhcp.c:797
+#: cache.c:856 dhcp.c:801
 #, c-format
 msgid "bad name at %s line %d"
 msgstr ""
 
-#: cache.c:860 dhcp.c:863
+#: cache.c:863 dhcp.c:875
 #, c-format
 msgid "read %s - %d addresses"
 msgstr ""
 
-#: cache.c:899
+#: cache.c:902
 msgid "cleared cache"
 msgstr ""
 
-#: cache.c:930 option.c:1026
+#: cache.c:933 option.c:1055
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr ""
 
-#: cache.c:1049
+#: cache.c:1052
 #, 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:1126
+#: cache.c:1129
 #, c-format
 msgid "time %lu"
 msgstr ""
 
-#: cache.c:1127
+#: cache.c:1130
 #, c-format
 msgid "cache size %d, %d/%d cache insertions re-used unexpired cache entries."
 msgstr ""
 
-#: cache.c:1129
+#: cache.c:1132
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr ""
 
-#: cache.c:1152
+#: cache.c:1155
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr ""
 
-#: util.c:56
+#: util.c:59
 #, c-format
 msgid "failed to seed the random number generator: %s"
 msgstr ""
 
-#: util.c:164
+#: util.c:191
+msgid "failed to allocate memory"
+msgstr ""
+
+#: util.c:229 option.c:548
 msgid "could not get memory"
 msgstr ""
 
-#: util.c:174
+#: util.c:239
 #, c-format
 msgid "cannot create pipe: %s"
 msgstr ""
 
-#: util.c:182
+#: util.c:247
 #, c-format
 msgid "failed to allocate %d bytes"
 msgstr ""
 
-#: util.c:287
+#: util.c:352
 #, c-format
 msgid "infinite"
 msgstr ""
@@ -502,286 +506,294 @@ msgstr ""
 msgid "Check configuration syntax."
 msgstr ""
 
-#: option.c:601
+#: option.c:613
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
 "\n"
 msgstr ""
 
-#: option.c:603
+#: option.c:615
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr ""
 
-#: option.c:605
+#: option.c:617
 #, c-format
 msgid "Valid options are:\n"
 msgstr ""
 
-#: option.c:646
+#: option.c:658
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr ""
 
-#: option.c:723
+#: option.c:735
 msgid "bad dhcp-option"
 msgstr ""
 
-#: option.c:780
+#: option.c:792
 msgid "bad IP address"
 msgstr ""
 
-#: option.c:878
+#: option.c:891
 msgid "bad domain in dhcp-option"
 msgstr ""
 
-#: option.c:936
+#: option.c:950
 msgid "dhcp-option too long"
 msgstr ""
 
-#: option.c:945
+#: option.c:959
 msgid "illegal dhcp-match"
 msgstr ""
 
-#: option.c:981
+#: option.c:995
 msgid "illegal repeated flag"
 msgstr ""
 
-#: option.c:989
+#: option.c:1003
 msgid "illegal repeated keyword"
 msgstr ""
 
-#: option.c:1046 tftp.c:345
+#: option.c:1086 tftp.c:359
 #, c-format
 msgid "cannot access %s: %s"
 msgstr ""
 
-#: option.c:1084
+#: option.c:1131
 msgid "only one dhcp-hostsfile allowed"
 msgstr ""
 
-#: option.c:1091
+#: option.c:1138
 msgid "only one dhcp-optsfile allowed"
 msgstr ""
 
-#: option.c:1135
+#: option.c:1183
 msgid "bad MX preference"
 msgstr ""
 
-#: option.c:1139
+#: option.c:1188
 msgid "bad MX name"
 msgstr ""
 
-#: option.c:1153
+#: option.c:1202
 msgid "bad MX target"
 msgstr ""
 
-#: option.c:1165
+#: option.c:1212
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:1395 option.c:1399
+#: option.c:1214
+msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
+msgstr ""
+
+#: option.c:1442 option.c:1446
 msgid "bad port"
 msgstr ""
 
-#: option.c:1418 option.c:1443
+#: option.c:1465 option.c:1490
 msgid "interface binding not supported"
 msgstr ""
 
-#: option.c:1564
+#: option.c:1611
 msgid "bad port range"
 msgstr ""
 
-#: option.c:1581
+#: option.c:1628
 msgid "bad bridge-interface"
 msgstr ""
 
-#: option.c:1622
+#: option.c:1669
 msgid "bad dhcp-range"
 msgstr ""
 
-#: option.c:1648
+#: option.c:1695
 msgid "only one netid tag allowed"
 msgstr ""
 
-#: option.c:1693
+#: option.c:1740
 msgid "inconsistent DHCP range"
 msgstr ""
 
-#: option.c:1865
+#: option.c:1912
 msgid "bad DHCP host name"
 msgstr ""
 
-#: option.c:2155 option.c:2427
+#: option.c:2201 option.c:2481
 msgid "invalid port number"
 msgstr ""
 
-#: option.c:2238
+#: option.c:2284
 msgid "invalid alias range"
 msgstr ""
 
-#: option.c:2250
+#: option.c:2297
 msgid "bad interface name"
 msgstr ""
 
-#: option.c:2273
+#: option.c:2322
+msgid "bad CNAME"
+msgstr ""
+
+#: option.c:2327
 msgid "duplicate CNAME"
 msgstr ""
 
-#: option.c:2290
+#: option.c:2347
 msgid "bad PTR record"
 msgstr ""
 
-#: option.c:2320
+#: option.c:2378
 msgid "bad NAPTR record"
 msgstr ""
 
-#: option.c:2346
+#: option.c:2403
 msgid "TXT record string too long"
 msgstr ""
 
-#: option.c:2350
+#: option.c:2451
 msgid "bad TXT record"
 msgstr ""
 
-#: option.c:2410
+#: option.c:2467
 msgid "bad SRV record"
 msgstr ""
 
-#: option.c:2419
+#: option.c:2474
 msgid "bad SRV target"
 msgstr ""
 
-#: option.c:2434
+#: option.c:2488
 msgid "invalid priority"
 msgstr ""
 
-#: option.c:2441
+#: option.c:2495
 msgid "invalid weight"
 msgstr ""
 
-#: option.c:2460
+#: option.c:2514
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr ""
 
-#: option.c:2503
+#: option.c:2557
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
-#: option.c:2511 tftp.c:499
+#: option.c:2565 tftp.c:513
 #, c-format
 msgid "cannot read %s: %s"
 msgstr ""
 
-#: option.c:2572
+#: option.c:2626
 msgid "missing \""
 msgstr ""
 
-#: option.c:2619
+#: option.c:2673
 msgid "bad option"
 msgstr ""
 
-#: option.c:2621
+#: option.c:2675
 msgid "extraneous parameter"
 msgstr ""
 
-#: option.c:2623
+#: option.c:2677
 msgid "missing parameter"
 msgstr ""
 
-#: option.c:2631
+#: option.c:2685
 msgid "error"
 msgstr ""
 
-#: option.c:2637
+#: option.c:2691
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr ""
 
-#: option.c:2686 option.c:2717
+#: option.c:2740 option.c:2771
 #, c-format
 msgid "read %s"
 msgstr ""
 
-#: option.c:2789
+#: option.c:2843
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr ""
 
-#: option.c:2790
+#: option.c:2844
 #, c-format
 msgid ""
 "Compile time options %s\n"
 "\n"
 msgstr ""
 
-#: option.c:2791
+#: option.c:2845
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr ""
 
-#: option.c:2792
+#: option.c:2846
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr ""
 
-#: option.c:2793
+#: option.c:2847
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
 msgstr ""
 
-#: option.c:2804
+#: option.c:2858
 msgid "try --help"
 msgstr ""
 
-#: option.c:2806
+#: option.c:2860
 msgid "try -w"
 msgstr ""
 
-#: option.c:2809
+#: option.c:2863
 #, c-format
 msgid "bad command line options: %s"
 msgstr ""
 
-#: option.c:2850
+#: option.c:2904
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr ""
 
-#: option.c:2878
+#: option.c:2932
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr ""
 
-#: option.c:2888
+#: option.c:2942
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr ""
 
-#: option.c:2891 network.c:748 dhcp.c:734
+#: option.c:2945 network.c:754 dhcp.c:734
 #, c-format
 msgid "failed to read %s: %s"
 msgstr ""
 
-#: option.c:2909
+#: option.c:2962
 #, c-format
 msgid "no search directive found in %s"
 msgstr ""
 
-#: option.c:2930
+#: option.c:2983
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr ""
 
-#: option.c:2934
+#: option.c:2987
 msgid "syntax check OK"
 msgstr ""
 
-#: forward.c:405
+#: forward.c:409
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr ""
 
-#: forward.c:433
+#: forward.c:437
 msgid "possible DNS-rebind attack detected"
 msgstr ""
 
@@ -790,280 +802,280 @@ msgstr ""
 msgid "unknown interface %s in bridge-interface"
 msgstr ""
 
-#: network.c:411 dnsmasq.c:184
+#: network.c:417 dnsmasq.c:189
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr ""
 
-#: network.c:418
+#: network.c:424
 #, c-format
 msgid "failed to set IPV6 options on listening socket: %s"
 msgstr ""
 
-#: network.c:444
+#: network.c:450
 #, c-format
 msgid "failed to bind listening socket for %s: %s"
 msgstr ""
 
-#: network.c:449
+#: network.c:455
 #, c-format
 msgid "failed to listen on socket: %s"
 msgstr ""
 
-#: network.c:461
+#: network.c:467
 #, c-format
 msgid "failed to create TFTP socket: %s"
 msgstr ""
 
-#: network.c:655
+#: network.c:661
 #, c-format
 msgid "failed to bind server socket for %s: %s"
 msgstr ""
 
-#: network.c:688
+#: network.c:694
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr ""
 
-#: network.c:699
+#: network.c:705
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %s"
 msgstr ""
 
-#: network.c:714
+#: network.c:720
 msgid "unqualified"
 msgstr ""
 
-#: network.c:714
+#: network.c:720
 msgid "names"
 msgstr ""
 
-#: network.c:716
+#: network.c:722
 msgid "default"
 msgstr ""
 
-#: network.c:718
+#: network.c:724
 msgid "domain"
 msgstr ""
 
-#: network.c:721
+#: network.c:727
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr ""
 
-#: network.c:723
+#: network.c:729
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr ""
 
-#: network.c:726
+#: network.c:732
 #, c-format
 msgid "using nameserver %s#%d(via %s)"
 msgstr ""
 
-#: network.c:728
+#: network.c:734
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr ""
 
-#: dnsmasq.c:141
+#: dnsmasq.c:146
 msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:146
+#: dnsmasq.c:151
 msgid "asychronous logging is not available under Solaris"
 msgstr ""
 
-#: dnsmasq.c:165
+#: dnsmasq.c:170
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr ""
 
-#: dnsmasq.c:173
+#: dnsmasq.c:178
 #, c-format
 msgid "unknown interface %s"
 msgstr ""
 
-#: dnsmasq.c:179
+#: dnsmasq.c:184
 #, c-format
 msgid "no interface with address %s"
 msgstr ""
 
-#: dnsmasq.c:196 dnsmasq.c:660
+#: dnsmasq.c:201 dnsmasq.c:665
 #, c-format
 msgid "DBus error: %s"
 msgstr ""
 
-#: dnsmasq.c:199
+#: dnsmasq.c:204
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:225
+#: dnsmasq.c:230
 #, c-format
 msgid "unknown user or group: %s"
 msgstr ""
 
-#: dnsmasq.c:282
+#: dnsmasq.c:287
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr ""
 
-#: dnsmasq.c:443
+#: dnsmasq.c:448
 #, c-format
 msgid "started, version %s DNS disabled"
 msgstr ""
 
-#: dnsmasq.c:445
+#: dnsmasq.c:450
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr ""
 
-#: dnsmasq.c:447
+#: dnsmasq.c:452
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr ""
 
-#: dnsmasq.c:449
+#: dnsmasq.c:454
 #, c-format
 msgid "compile time options: %s"
 msgstr ""
 
-#: dnsmasq.c:455
+#: dnsmasq.c:460
 msgid "DBus support enabled: connected to system bus"
 msgstr ""
 
-#: dnsmasq.c:457
+#: dnsmasq.c:462
 msgid "DBus support enabled: bus connection pending"
 msgstr ""
 
-#: dnsmasq.c:462
+#: dnsmasq.c:467
 #, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr ""
 
-#: dnsmasq.c:466
+#: dnsmasq.c:471
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr ""
 
-#: dnsmasq.c:471
+#: dnsmasq.c:476
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr ""
 
-#: dnsmasq.c:476
+#: dnsmasq.c:481
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:479
+#: dnsmasq.c:484
 msgid "warning: no upstream servers configured"
 msgstr ""
 
-#: dnsmasq.c:483
+#: dnsmasq.c:488
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr ""
 
-#: dnsmasq.c:496
+#: dnsmasq.c:501
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:498
+#: dnsmasq.c:503
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr ""
 
-#: dnsmasq.c:499
+#: dnsmasq.c:504
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "root is "
 msgstr ""
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "enabled"
 msgstr ""
 
-#: dnsmasq.c:516
+#: dnsmasq.c:521
 msgid "secure mode"
 msgstr ""
 
-#: dnsmasq.c:542
+#: dnsmasq.c:547
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr ""
 
-#: dnsmasq.c:662
+#: dnsmasq.c:667
 msgid "connected to system DBus"
 msgstr ""
 
-#: dnsmasq.c:752
+#: dnsmasq.c:757
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr ""
 
-#: dnsmasq.c:755
+#: dnsmasq.c:760
 #, c-format
 msgid "failed to create helper: %s"
 msgstr ""
 
-#: dnsmasq.c:758
+#: dnsmasq.c:763
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr ""
 
-#: dnsmasq.c:762
+#: dnsmasq.c:767
 #, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr ""
 
-#: dnsmasq.c:767
+#: dnsmasq.c:772
 #, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr ""
 
-#: dnsmasq.c:770
+#: dnsmasq.c:775
 #, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr ""
 
-#: dnsmasq.c:773
+#: dnsmasq.c:778
 #, c-format
 msgid "cannot open %s: %s"
 msgstr ""
 
-#: dnsmasq.c:828
+#: dnsmasq.c:833
 #, c-format
 msgid "child process killed by signal %d"
 msgstr ""
 
-#: dnsmasq.c:832
+#: dnsmasq.c:837
 #, c-format
 msgid "child process exited with status %d"
 msgstr ""
 
-#: dnsmasq.c:836
+#: dnsmasq.c:841
 #, c-format
 msgid "failed to execute %s: %s"
 msgstr ""
 
-#: dnsmasq.c:880
+#: dnsmasq.c:885
 msgid "exiting on receipt of SIGTERM"
 msgstr ""
 
-#: dnsmasq.c:898
+#: dnsmasq.c:903
 #, c-format
 msgid "failed to access %s: %s"
 msgstr ""
 
-#: dnsmasq.c:920
+#: dnsmasq.c:925
 #, c-format
 msgid "reading %s"
 msgstr ""
 
-#: dnsmasq.c:931
+#: dnsmasq.c:936
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr ""
@@ -1103,51 +1115,56 @@ msgstr ""
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr ""
 
-#: dhcp.c:770
+#: dhcp.c:772
 #, c-format
 msgid "bad line at %s line %d"
 msgstr ""
 
-#: dhcp.c:885
+#: dhcp.c:815
+#, c-format
+msgid "ignoring %s line %d, duplicate name or IP address"
+msgstr ""
+
+#: dhcp.c:897
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr ""
 
-#: dhcp.c:888
+#: dhcp.c:900
 #, c-format
 msgid "duplicate IP address %s in %s."
 msgstr ""
 
-#: dhcp.c:931
+#: dhcp.c:943
 #, c-format
 msgid "%s has more than one address in hostsfile, using %s for DHCP"
 msgstr ""
 
-#: dhcp.c:936
+#: dhcp.c:948
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr ""
 
-#: lease.c:60
+#: lease.c:66
 #, c-format
 msgid "cannot open or create lease file %s: %s"
 msgstr ""
 
-#: lease.c:86
+#: lease.c:92
 msgid "too many stored leases"
 msgstr ""
 
-#: lease.c:127
+#: lease.c:128
 #, c-format
 msgid "cannot run lease-init script %s: %s"
 msgstr ""
 
-#: lease.c:133
+#: lease.c:134
 #, c-format
 msgid "lease-init script returned exit code %s"
 msgstr ""
 
-#: lease.c:240
+#: lease.c:234
 #, c-format
 msgid "failed to write %s: %s (retry in %us)"
 msgstr ""
@@ -1175,19 +1192,23 @@ msgstr ""
 msgid "%u Available DHCP range: %s -- %s"
 msgstr ""
 
-#: rfc2131.c:384 rfc2131.c:418
+#: rfc2131.c:384
 msgid "disabled"
 msgstr ""
 
-#: rfc2131.c:433 rfc2131.c:1096
+#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+msgid "ignored"
+msgstr ""
+
+#: rfc2131.c:433 rfc2131.c:1100
 msgid "address in use"
 msgstr ""
 
-#: rfc2131.c:447 rfc2131.c:933
+#: rfc2131.c:447 rfc2131.c:937
 msgid "no address available"
 msgstr ""
 
-#: rfc2131.c:454 rfc2131.c:1059
+#: rfc2131.c:454 rfc2131.c:1063
 msgid "wrong network"
 msgstr ""
 
@@ -1195,7 +1216,7 @@ msgstr ""
 msgid "no address configured"
 msgstr ""
 
-#: rfc2131.c:473 rfc2131.c:1109
+#: rfc2131.c:473 rfc2131.c:1113
 msgid "no leases left"
 msgstr ""
 
@@ -1214,106 +1235,102 @@ msgstr ""
 msgid "%u User class: %s"
 msgstr ""
 
-#: rfc2131.c:733
+#: rfc2131.c:737
 msgid "PXE BIS not supported"
 msgstr ""
 
-#: rfc2131.c:849
+#: rfc2131.c:853
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr ""
 
-#: rfc2131.c:870
+#: rfc2131.c:874
 msgid "unknown lease"
 msgstr ""
 
-#: rfc2131.c:879 rfc2131.c:1223
-msgid "ignored"
-msgstr ""
-
-#: rfc2131.c:902
+#: rfc2131.c:906
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:912
+#: rfc2131.c:916
 #, c-format
 msgid "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:915
+#: rfc2131.c:919
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:931 rfc2131.c:1102
+#: rfc2131.c:935 rfc2131.c:1106
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:999
+#: rfc2131.c:1003
 msgid "wrong server-ID"
 msgstr ""
 
-#: rfc2131.c:1018
+#: rfc2131.c:1022
 msgid "wrong address"
 msgstr ""
 
-#: rfc2131.c:1035
+#: rfc2131.c:1039
 msgid "lease not found"
 msgstr ""
 
-#: rfc2131.c:1067
+#: rfc2131.c:1071
 msgid "address not available"
 msgstr ""
 
-#: rfc2131.c:1078
+#: rfc2131.c:1082
 msgid "static lease available"
 msgstr ""
 
-#: rfc2131.c:1082
+#: rfc2131.c:1086
 msgid "address reserved"
 msgstr ""
 
-#: rfc2131.c:1090
+#: rfc2131.c:1094
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr ""
 
-#: rfc2131.c:1567
+#: rfc2131.c:1583
 #, c-format
 msgid "%u tags: %s"
 msgstr ""
 
-#: rfc2131.c:1580
+#: rfc2131.c:1596
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr ""
 
-#: rfc2131.c:1589
+#: rfc2131.c:1605
 #, c-format
 msgid "%u server name: %s"
 msgstr ""
 
-#: rfc2131.c:1597
+#: rfc2131.c:1613
 #, c-format
 msgid "%u next server: %s"
 msgstr ""
 
-#: rfc2131.c:1664
+#: rfc2131.c:1680
 #, c-format
 msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
 msgstr ""
 
-#: rfc2131.c:1903
+#: rfc2131.c:1919
 msgid "PXE menu too large"
 msgstr ""
 
-#: rfc2131.c:2018
+#: rfc2131.c:2034
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr ""
 
-#: rfc2131.c:2036
+#: rfc2131.c:2052
 #, c-format
 msgid "%u requested options: %s"
 msgstr ""
@@ -1350,31 +1367,31 @@ msgstr ""
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr ""
 
-#: tftp.c:172
+#: tftp.c:179
 msgid "unable to get free port for TFTP"
 msgstr ""
 
-#: tftp.c:187
+#: tftp.c:194
 #, c-format
 msgid "unsupported request from %s"
 msgstr ""
 
-#: tftp.c:268
+#: tftp.c:282
 #, c-format
 msgid "TFTP sent %s to %s"
 msgstr ""
 
-#: tftp.c:291
+#: tftp.c:305
 #, c-format
 msgid "file %s not found"
 msgstr ""
 
-#: tftp.c:402
+#: tftp.c:416
 #, c-format
 msgid "TFTP error %d %s received from %s"
 msgstr ""
 
-#: tftp.c:433
+#: tftp.c:447
 #, c-format
 msgid "TFTP failed sending %s to %s"
 msgstr ""
index 7c7bbde408d45908ccee48eda2d408650f4f8cec..f6c24927504762052824dd5c670e84e60f066104 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.24\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-10 20:57+0100\n"
+"POT-Creation-Date: 2009-06-18 12:24+0100\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"
@@ -20,75 +20,80 @@ msgstr ""
 msgid "failed to load names from %s: %s"
 msgstr "încărcarea numelor din %s: %s a eşuat"
 
-#: cache.c:798 dhcp.c:783
+#: cache.c:798 dhcp.c:785
 #, c-format
 msgid "bad address at %s line %d"
 msgstr "adresă greşită în %s, linia %d"
 
-#: cache.c:853 dhcp.c:797
+#: cache.c:856 dhcp.c:801
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "nume greşit în %s linia %d"
 
-#: cache.c:860 dhcp.c:863
+#: cache.c:863 dhcp.c:875
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "citesc %s - %d adrese"
 
-#: cache.c:899
+#: cache.c:902
 msgid "cleared cache"
 msgstr "memoria temporară a fost ştearsă"
 
-#: cache.c:930 option.c:1026
+#: cache.c:933 option.c:1055
 #, fuzzy, c-format
 msgid "cannot access directory %s: %s"
 msgstr "nu pot citi %s: %s"
 
-#: cache.c:1049
+#: cache.c:1052
 #, 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:1126
+#: cache.c:1129
 #, c-format
 msgid "time %lu"
 msgstr ""
 
-#: cache.c:1127
+#: cache.c:1130
 #, 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:1129
+#: cache.c:1132
 #, c-format
 msgid "queries forwarded %u, queries answered locally %u"
 msgstr ""
 
-#: cache.c:1152
+#: cache.c:1155
 #, c-format
 msgid "server %s#%d: queries sent %u, retried or failed %u"
 msgstr ""
 
-#: util.c:56
+#: util.c:59
 #, fuzzy, c-format
 msgid "failed to seed the random number generator: %s"
 msgstr "ascultarea pe socket a eşuat: %s"
 
-#: util.c:164
+#: util.c:191
+#, fuzzy
+msgid "failed to allocate memory"
+msgstr "nu pot încărca %d bytes"
+
+#: util.c:229 option.c:548
 msgid "could not get memory"
 msgstr "nu am putut aloca memorie"
 
-#: util.c:174
+#: util.c:239
 #, fuzzy, c-format
 msgid "cannot create pipe: %s"
 msgstr "nu pot citi %s: %s"
 
-#: util.c:182
+#: util.c:247
 #, fuzzy, c-format
 msgid "failed to allocate %d bytes"
 msgstr "nu pot încărca %d bytes"
 
-#: util.c:287
+#: util.c:352
 #, c-format
 msgid "infinite"
 msgstr "infinit"
@@ -515,7 +520,7 @@ msgstr ""
 msgid "Check configuration syntax."
 msgstr ""
 
-#: option.c:601
+#: option.c:613
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -524,215 +529,223 @@ msgstr ""
 "Utilizare: dnsmasq [opţiuni]\n"
 "\n"
 
-#: option.c:603
+#: option.c:615
 #, 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:605
+#: option.c:617
 #, fuzzy, c-format
 msgid "Valid options are:\n"
 msgstr "Opţiunile valide sunt:\n"
 
-#: option.c:646
+#: option.c:658
 #, c-format
 msgid "Known DHCP options:\n"
 msgstr ""
 
-#: option.c:723
+#: option.c:735
 msgid "bad dhcp-option"
 msgstr "dhcp-option invalid"
 
-#: option.c:780
+#: option.c:792
 #, fuzzy
 msgid "bad IP address"
 msgstr "citesc %s - %d adrese"
 
-#: option.c:878
+#: option.c:891
 msgid "bad domain in dhcp-option"
 msgstr "domeniu DNS invalid în declaraţia dhcp-option"
 
-#: option.c:936
+#: option.c:950
 msgid "dhcp-option too long"
 msgstr "declararea dhcp-option este prea lungă"
 
-#: option.c:945
+#: option.c:959
 msgid "illegal dhcp-match"
 msgstr ""
 
-#: option.c:981
+#: option.c:995
 msgid "illegal repeated flag"
 msgstr ""
 
-#: option.c:989
+#: option.c:1003
 msgid "illegal repeated keyword"
 msgstr ""
 
-#: option.c:1046 tftp.c:345
+#: option.c:1086 tftp.c:359
 #, fuzzy, c-format
 msgid "cannot access %s: %s"
 msgstr "nu pot citi %s: %s"
 
-#: option.c:1084
+#: option.c:1131
 msgid "only one dhcp-hostsfile allowed"
 msgstr ""
 
-#: option.c:1091
+#: option.c:1138
 msgid "only one dhcp-optsfile allowed"
 msgstr ""
 
-#: option.c:1135
+#: option.c:1183
 msgid "bad MX preference"
 msgstr "preferinţă MX invalidă"
 
-#: option.c:1139
+#: option.c:1188
 msgid "bad MX name"
 msgstr "nume MX invalid"
 
-#: option.c:1153
+#: option.c:1202
 msgid "bad MX target"
 msgstr "ţintă MX invalidă"
 
-#: option.c:1165
+#: option.c:1212
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:1395 option.c:1399
+#: option.c:1214
+msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts"
+msgstr ""
+
+#: option.c:1442 option.c:1446
 msgid "bad port"
 msgstr "port invalid"
 
-#: option.c:1418 option.c:1443
+#: option.c:1465 option.c:1490
 msgid "interface binding not supported"
 msgstr ""
 
-#: option.c:1564
+#: option.c:1611
 #, fuzzy
 msgid "bad port range"
 msgstr "port invalid"
 
-#: option.c:1581
+#: option.c:1628
 msgid "bad bridge-interface"
 msgstr ""
 
-#: option.c:1622
+#: option.c:1669
 msgid "bad dhcp-range"
 msgstr "dhcp-range invalid"
 
-#: option.c:1648
+#: option.c:1695
 msgid "only one netid tag allowed"
 msgstr ""
 
-#: option.c:1693
+#: option.c:1740
 msgid "inconsistent DHCP range"
 msgstr "domeniu DHCP inconsistent"
 
-#: option.c:1865
+#: option.c:1912
 #, fuzzy
 msgid "bad DHCP host name"
 msgstr "nume MX invalid"
 
-#: option.c:2155 option.c:2427
+#: option.c:2201 option.c:2481
 msgid "invalid port number"
 msgstr "număr de port invalid"
 
-#: option.c:2238
+#: option.c:2284
 #, fuzzy
 msgid "invalid alias range"
 msgstr "pondere invalidă"
 
-#: option.c:2250
+#: option.c:2297
 #, fuzzy
 msgid "bad interface name"
 msgstr "nume MX invalid"
 
-#: option.c:2273
+#: option.c:2322
+msgid "bad CNAME"
+msgstr ""
+
+#: option.c:2327
 msgid "duplicate CNAME"
 msgstr ""
 
-#: option.c:2290
+#: option.c:2347
 #, fuzzy
 msgid "bad PTR record"
 msgstr "înregistrare SRV invalidă"
 
-#: option.c:2320
+#: option.c:2378
 #, fuzzy
 msgid "bad NAPTR record"
 msgstr "înregistrare SRV invalidă"
 
-#: option.c:2346
+#: option.c:2403
 msgid "TXT record string too long"
 msgstr "şirul de caractere pentru înregistrarea TXT este prea lung"
 
-#: option.c:2350
+#: option.c:2451
 msgid "bad TXT record"
 msgstr "înregistrare TXT invalidă"
 
-#: option.c:2410
+#: option.c:2467
 msgid "bad SRV record"
 msgstr "înregistrare SRV invalidă"
 
-#: option.c:2419
+#: option.c:2474
 msgid "bad SRV target"
 msgstr "ţintă SRV invalidă"
 
-#: option.c:2434
+#: option.c:2488
 msgid "invalid priority"
 msgstr "prioritate invalidă"
 
-#: option.c:2441
+#: option.c:2495
 msgid "invalid weight"
 msgstr "pondere invalidă"
 
-#: option.c:2460
+#: option.c:2514
 msgid "unsupported option (check that dnsmasq was compiled with DHCP/TFTP/DBus support)"
 msgstr ""
 
-#: option.c:2503
+#: option.c:2557
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
-#: option.c:2511 tftp.c:499
+#: option.c:2565 tftp.c:513
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "nu pot citi %s: %s"
 
-#: option.c:2572
+#: option.c:2626
 msgid "missing \""
 msgstr "lipseşte \""
 
-#: option.c:2619
+#: option.c:2673
 msgid "bad option"
 msgstr "opţiune invalidă"
 
-#: option.c:2621
+#: option.c:2675
 msgid "extraneous parameter"
 msgstr "parametru nerecunoscut"
 
-#: option.c:2623
+#: option.c:2677
 msgid "missing parameter"
 msgstr "parametru lipsa"
 
-#: option.c:2631
+#: option.c:2685
 msgid "error"
 msgstr "eroare"
 
-#: option.c:2637
+#: option.c:2691
 #, c-format
 msgid "%s at line %d of %%s"
 msgstr "%s la linia %d din %%s"
 
-#: option.c:2686 option.c:2717
+#: option.c:2740 option.c:2771
 #, fuzzy, c-format
 msgid "read %s"
 msgstr "citesc %s"
 
-#: option.c:2789
+#: option.c:2843
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "dnsmasq versiunea %s  %s\n"
 
-#: option.c:2790
+#: option.c:2844
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -741,71 +754,71 @@ msgstr ""
 "Opţiuni cu care a fost compilat %s\n"
 "\n"
 
-#: option.c:2791
+#: option.c:2845
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Acest program vine FĂRĂ NICI O GARANŢIE.\n"
 
-#: option.c:2792
+#: option.c:2846
 #, 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:2793
+#: option.c:2847
 #, 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:2804
+#: option.c:2858
 msgid "try --help"
 msgstr ""
 
-#: option.c:2806
+#: option.c:2860
 msgid "try -w"
 msgstr ""
 
-#: option.c:2809
+#: option.c:2863
 #, fuzzy, c-format
 msgid "bad command line options: %s"
 msgstr "opţiuni în linie de comandă invalide: %s."
 
-#: option.c:2850
+#: option.c:2904
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "nu pot citi numele maşinii: %s"
 
-#: option.c:2878
+#: option.c:2932
 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:2888
+#: option.c:2942
 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:2891 network.c:748 dhcp.c:734
+#: option.c:2945 network.c:754 dhcp.c:734
 #, fuzzy, c-format
 msgid "failed to read %s: %s"
 msgstr "nu pot citi %s: %s"
 
-#: option.c:2909
+#: option.c:2962
 #, 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:2930
+#: option.c:2983
 msgid "there must be a default domain when --dhcp-fqdn is set"
 msgstr ""
 
-#: option.c:2934
+#: option.c:2987
 msgid "syntax check OK"
 msgstr ""
 
-#: forward.c:405
+#: forward.c:409
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "serverul DNS %s refuză interogările recursive"
 
-#: forward.c:433
+#: forward.c:437
 msgid "possible DNS-rebind attack detected"
 msgstr ""
 
@@ -814,286 +827,286 @@ msgstr ""
 msgid "unknown interface %s in bridge-interface"
 msgstr "interfaţă necunoscută %s"
 
-#: network.c:411 dnsmasq.c:184
+#: network.c:417 dnsmasq.c:189
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr "creearea socket-ului de ascultare a eşuat: %s"
 
-#: network.c:418
+#: network.c:424
 #, c-format
 msgid "failed to set IPV6 options on listening socket: %s"
 msgstr "configurarea opţiunilor IPv6 a eşuat pe socket-ul de ascultare: %s"
 
-#: network.c:444
+#: network.c:450
 #, c-format
 msgid "failed to bind listening socket for %s: %s"
 msgstr "activarea socket-ului de ascultare pentru %s a eşuat: %s"
 
-#: network.c:449
+#: network.c:455
 #, c-format
 msgid "failed to listen on socket: %s"
 msgstr "ascultarea pe socket a eşuat: %s"
 
-#: network.c:461
+#: network.c:467
 #, fuzzy, c-format
 msgid "failed to create TFTP socket: %s"
 msgstr "creearea socket-ului de ascultare a eşuat: %s"
 
-#: network.c:655
+#: network.c:661
 #, 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:688
+#: network.c:694
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr "ignorăm serverul DNS %s - interfaţă locală"
 
-#: network.c:699
+#: network.c:705
 #, 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:714
+#: network.c:720
 msgid "unqualified"
 msgstr "invalid"
 
-#: network.c:714
+#: network.c:720
 msgid "names"
 msgstr ""
 
-#: network.c:716
+#: network.c:722
 msgid "default"
 msgstr ""
 
-#: network.c:718
+#: network.c:724
 msgid "domain"
 msgstr "domeniu"
 
-#: network.c:721
+#: network.c:727
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr "folosim adresele locale doar pentru %S %s"
 
-#: network.c:723
+#: network.c:729
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr "folosim serverul DNS %s#%d pentru %s %s"
 
-#: network.c:726
+#: network.c:732
 #, fuzzy, c-format
 msgid "using nameserver %s#%d(via %s)"
 msgstr "folosim serverul DNS %s#%d"
 
-#: network.c:728
+#: network.c:734
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr "folosim serverul DNS %s#%d"
 
-#: dnsmasq.c:141
+#: dnsmasq.c:146
 #, 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:146
+#: dnsmasq.c:151
 msgid "asychronous logging is not available under Solaris"
 msgstr ""
 
-#: dnsmasq.c:165
+#: dnsmasq.c:170
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "enumerarea interfeţelor a eşuat: %s"
 
-#: dnsmasq.c:173
+#: dnsmasq.c:178
 #, c-format
 msgid "unknown interface %s"
 msgstr "interfaţă necunoscută %s"
 
-#: dnsmasq.c:179
+#: dnsmasq.c:184
 #, c-format
 msgid "no interface with address %s"
 msgstr "nu exista interfaţă pentru adresa %s"
 
-#: dnsmasq.c:196 dnsmasq.c:660
+#: dnsmasq.c:201 dnsmasq.c:665
 #, c-format
 msgid "DBus error: %s"
 msgstr "eroare DBus: %s"
 
-#: dnsmasq.c:199
+#: dnsmasq.c:204
 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:225
+#: dnsmasq.c:230
 #, c-format
 msgid "unknown user or group: %s"
 msgstr ""
 
-#: dnsmasq.c:282
+#: dnsmasq.c:287
 #, c-format
 msgid "cannot chdir to filesystem root: %s"
 msgstr ""
 
-#: dnsmasq.c:443
+#: dnsmasq.c:448
 #, fuzzy, c-format
 msgid "started, version %s DNS disabled"
 msgstr "am pornit, versiunea %s memorie temporară dezactivată"
 
-#: dnsmasq.c:445
+#: dnsmasq.c:450
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "am ponit, versiunea %s memorie temporară %d"
 
-#: dnsmasq.c:447
+#: dnsmasq.c:452
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "am pornit, versiunea %s memorie temporară dezactivată"
 
-#: dnsmasq.c:449
+#: dnsmasq.c:454
 #, c-format
 msgid "compile time options: %s"
 msgstr "compilat cu opţiunile: %s"
 
-#: dnsmasq.c:455
+#: dnsmasq.c:460
 msgid "DBus support enabled: connected to system bus"
 msgstr "suportul DBus activ: sunt conectat la magistrala sistem"
 
-#: dnsmasq.c:457
+#: dnsmasq.c:462
 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:462
+#: dnsmasq.c:467
 #, fuzzy, c-format
 msgid "warning: failed to change owner of %s: %s"
 msgstr "încărcarea numelor din %s: %s a eşuat"
 
-#: dnsmasq.c:466
+#: dnsmasq.c:471
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "specific opţiunea --bind-interfaces din cauza limitărilor SO"
 
-#: dnsmasq.c:471
+#: dnsmasq.c:476
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "atenţie: interfaţa %s nu există momentan"
 
-#: dnsmasq.c:476
+#: dnsmasq.c:481
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:479
+#: dnsmasq.c:484
 #, fuzzy
 msgid "warning: no upstream servers configured"
 msgstr "configurăm serverele superioare prin Dbus"
 
-#: dnsmasq.c:483
+#: dnsmasq.c:488
 #, c-format
 msgid "asynchronous logging enabled, queue limit is %d messages"
 msgstr ""
 
-#: dnsmasq.c:496
+#: dnsmasq.c:501
 #, 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:498
+#: dnsmasq.c:503
 #, c-format
 msgid "DHCP, proxy on subnet %.0s%s%.0s"
 msgstr ""
 
-#: dnsmasq.c:499
+#: dnsmasq.c:504
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, domeniu IP %s -- %s, timpul reînoirii %s"
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 msgid "root is "
 msgstr ""
 
-#: dnsmasq.c:514
+#: dnsmasq.c:519
 #, fuzzy
 msgid "enabled"
 msgstr "dezactivat"
 
-#: dnsmasq.c:516
+#: dnsmasq.c:521
 msgid "secure mode"
 msgstr ""
 
-#: dnsmasq.c:542
+#: dnsmasq.c:547
 #, c-format
 msgid "restricting maximum simultaneous TFTP transfers to %d"
 msgstr ""
 
-#: dnsmasq.c:662
+#: dnsmasq.c:667
 msgid "connected to system DBus"
 msgstr "magistrala sistem Dbus conectată"
 
-#: dnsmasq.c:752
+#: dnsmasq.c:757
 #, c-format
 msgid "cannot fork into background: %s"
 msgstr ""
 
-#: dnsmasq.c:755
+#: dnsmasq.c:760
 #, fuzzy, c-format
 msgid "failed to create helper: %s"
 msgstr "nu pot citi %s: %s"
 
-#: dnsmasq.c:758
+#: dnsmasq.c:763
 #, c-format
 msgid "setting capabilities failed: %s"
 msgstr ""
 
 # for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
-#: dnsmasq.c:762
+#: dnsmasq.c:767
 #, fuzzy, c-format
 msgid "failed to change user-id to %s: %s"
 msgstr "încărcarea numelor din %s: %s a eşuat"
 
 # for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
-#: dnsmasq.c:767
+#: dnsmasq.c:772
 #, fuzzy, c-format
 msgid "failed to change group-id to %s: %s"
 msgstr "încărcarea numelor din %s: %s a eşuat"
 
-#: dnsmasq.c:770
+#: dnsmasq.c:775
 #, fuzzy, c-format
 msgid "failed to open pidfile %s: %s"
 msgstr "nu pot citi %s: %s"
 
-#: dnsmasq.c:773
+#: dnsmasq.c:778
 #, fuzzy, c-format
 msgid "cannot open %s: %s"
 msgstr "nu pot deschide %s:%s"
 
-#: dnsmasq.c:828
+#: dnsmasq.c:833
 #, c-format
 msgid "child process killed by signal %d"
 msgstr ""
 
-#: dnsmasq.c:832
+#: dnsmasq.c:837
 #, c-format
 msgid "child process exited with status %d"
 msgstr ""
 
-#: dnsmasq.c:836
+#: dnsmasq.c:841
 #, fuzzy, c-format
 msgid "failed to execute %s: %s"
 msgstr "accesarea serverului %s a eşuat: %s"
 
-#: dnsmasq.c:880
+#: dnsmasq.c:885
 msgid "exiting on receipt of SIGTERM"
 msgstr "am primit SIGTERM, am terminat"
 
-#: dnsmasq.c:898
+#: dnsmasq.c:903
 #, fuzzy, c-format
 msgid "failed to access %s: %s"
 msgstr "accesarea serverului %s a eşuat: %s"
 
-#: dnsmasq.c:920
+#: dnsmasq.c:925
 #, c-format
 msgid "reading %s"
 msgstr "citesc %s"
 
-#: dnsmasq.c:931
+#: dnsmasq.c:936
 #, 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"
@@ -1133,51 +1146,56 @@ 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:770
+#: dhcp.c:772
 #, c-format
 msgid "bad line at %s line %d"
 msgstr "linie invalidă în %s rândul %d"
 
-#: dhcp.c:885
+#: dhcp.c:815
+#, c-format
+msgid "ignoring %s line %d, duplicate name or IP address"
+msgstr ""
+
+#: dhcp.c:897
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
 
-#: dhcp.c:888
+#: dhcp.c:900
 #, fuzzy, c-format
 msgid "duplicate IP address %s in %s."
 msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
 
-#: dhcp.c:931
+#: dhcp.c:943
 #, c-format
 msgid "%s has more than one address in hostsfile, using %s for DHCP"
 msgstr ""
 
-#: dhcp.c:936
+#: dhcp.c:948
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "adresă IP duplicat %s (%s) în declaraţia dhcp-config."
 
-#: lease.c:60
+#: lease.c:66
 #, fuzzy, c-format
 msgid "cannot open or create lease file %s: %s"
 msgstr "nu pot creea sau deschide fişierul cu împrumuturi: %s"
 
-#: lease.c:86
+#: lease.c:92
 msgid "too many stored leases"
 msgstr "prea multe împrumuturi stocate"
 
-#: lease.c:127
+#: lease.c:128
 #, fuzzy, c-format
 msgid "cannot run lease-init script %s: %s"
 msgstr "nu pot citi %s: %s"
 
-#: lease.c:133
+#: lease.c:134
 #, c-format
 msgid "lease-init script returned exit code %s"
 msgstr ""
 
-#: lease.c:240
+#: lease.c:234
 #, fuzzy, c-format
 msgid "failed to write %s: %s (retry in %us)"
 msgstr "nu pot citi %s: %s"
@@ -1205,19 +1223,23 @@ msgstr ""
 msgid "%u Available DHCP range: %s -- %s"
 msgstr ""
 
-#: rfc2131.c:384 rfc2131.c:418
+#: rfc2131.c:384
 msgid "disabled"
 msgstr "dezactivat"
 
-#: rfc2131.c:433 rfc2131.c:1096
+#: rfc2131.c:418 rfc2131.c:883 rfc2131.c:1242
+msgid "ignored"
+msgstr "ignorat"
+
+#: rfc2131.c:433 rfc2131.c:1100
 msgid "address in use"
 msgstr "adresa este folosită"
 
-#: rfc2131.c:447 rfc2131.c:933
+#: rfc2131.c:447 rfc2131.c:937
 msgid "no address available"
 msgstr "nici o adresă disponibilă"
 
-#: rfc2131.c:454 rfc2131.c:1059
+#: rfc2131.c:454 rfc2131.c:1063
 msgid "wrong network"
 msgstr "reţea greşită"
 
@@ -1225,7 +1247,7 @@ msgstr "reţea greşită"
 msgid "no address configured"
 msgstr "adresă lipsă"
 
-#: rfc2131.c:473 rfc2131.c:1109
+#: rfc2131.c:473 rfc2131.c:1113
 msgid "no leases left"
 msgstr "nu mai am de unde să împrumut"
 
@@ -1244,106 +1266,102 @@ msgstr ""
 msgid "%u User class: %s"
 msgstr ""
 
-#: rfc2131.c:733
+#: rfc2131.c:737
 msgid "PXE BIS not supported"
 msgstr ""
 
-#: rfc2131.c:849
+#: rfc2131.c:853
 #, fuzzy, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "dezactivăm adresele DHCP statice %s"
 
-#: rfc2131.c:870
+#: rfc2131.c:874
 msgid "unknown lease"
 msgstr "împrumut necunoscut"
 
-#: rfc2131.c:879 rfc2131.c:1223
-msgid "ignored"
-msgstr "ignorat"
-
-#: rfc2131.c:902
+#: rfc2131.c:906
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:912
+#: rfc2131.c:916
 #, c-format
 msgid "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:915
+#: rfc2131.c:919
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:931 rfc2131.c:1102
+#: rfc2131.c:935 rfc2131.c:1106
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:999
+#: rfc2131.c:1003
 msgid "wrong server-ID"
 msgstr ""
 
-#: rfc2131.c:1018
+#: rfc2131.c:1022
 msgid "wrong address"
 msgstr "adresă greşită"
 
-#: rfc2131.c:1035
+#: rfc2131.c:1039
 msgid "lease not found"
 msgstr "împrumutul nu a fost găsit"
 
-#: rfc2131.c:1067
+#: rfc2131.c:1071
 msgid "address not available"
 msgstr "adresă indisponibilă"
 
-#: rfc2131.c:1078
+#: rfc2131.c:1082
 msgid "static lease available"
 msgstr "împrumut static este disponibil"
 
-#: rfc2131.c:1082
+#: rfc2131.c:1086
 msgid "address reserved"
 msgstr "adresă rezervată"
 
-#: rfc2131.c:1090
+#: rfc2131.c:1094
 #, c-format
 msgid "abandoning lease to %s of %s"
 msgstr ""
 
-#: rfc2131.c:1567
+#: rfc2131.c:1583
 #, c-format
 msgid "%u tags: %s"
 msgstr ""
 
-#: rfc2131.c:1580
+#: rfc2131.c:1596
 #, c-format
 msgid "%u bootfile name: %s"
 msgstr ""
 
-#: rfc2131.c:1589
+#: rfc2131.c:1605
 #, fuzzy, c-format
 msgid "%u server name: %s"
 msgstr "eroare DBus: %s"
 
-#: rfc2131.c:1597
+#: rfc2131.c:1613
 #, fuzzy, c-format
 msgid "%u next server: %s"
 msgstr "eroare DBus: %s"
 
-#: rfc2131.c:1664
+#: rfc2131.c:1680
 #, 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:1903
+#: rfc2131.c:1919
 msgid "PXE menu too large"
 msgstr ""
 
-#: rfc2131.c:2018
+#: rfc2131.c:2034
 #, c-format
 msgid "Ignoring domain %s for DHCP host name %s"
 msgstr ""
 
-#: rfc2131.c:2036
+#: rfc2131.c:2052
 #, fuzzy, c-format
 msgid "%u requested options: %s"
 msgstr "compilat cu opţiunile: %s"
@@ -1380,31 +1398,31 @@ msgstr "nu pot creea socket DHCP BPF: %s"
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "cerere DHCP pentru dispozitiv nesuportat (%d) recepţionată prin %s"
 
-#: tftp.c:172
+#: tftp.c:179
 msgid "unable to get free port for TFTP"
 msgstr ""
 
-#: tftp.c:187
+#: tftp.c:194
 #, c-format
 msgid "unsupported request from %s"
 msgstr ""
 
-#: tftp.c:268
+#: tftp.c:282
 #, c-format
 msgid "TFTP sent %s to %s"
 msgstr ""
 
-#: tftp.c:291
+#: tftp.c:305
 #, fuzzy, c-format
 msgid "file %s not found"
 msgstr "împrumutul nu a fost găsit"
 
-#: tftp.c:402
+#: tftp.c:416
 #, c-format
 msgid "TFTP error %d %s received from %s"
 msgstr ""
 
-#: tftp.c:433
+#: tftp.c:447
 #, fuzzy, c-format
 msgid "TFTP failed sending %s to %s"
 msgstr "nu pot citi %s: %s"
index 95a0a8eabfaffd80b70b87c42e2296e08ae78dbd..d641ae7fcb3ca64966a77d5cb92317b20c7cc13d 100644 (file)
@@ -226,7 +226,7 @@ char *cache_get_name(struct crec *crecp)
 {
   if (crecp->flags & F_BIGNAME)
     return crecp->name.bname->name;
-  else if (crecp->flags & F_DHCP
+  else if (crecp->flags & (F_DHCP | F_CONFIG)
     return crecp->name.namep;
   
   return crecp->name.sname;
@@ -366,7 +366,7 @@ struct crec *cache_insert(char *name, struct all_addr *addr,
 
   log_query(flags | F_UPSTREAM, name, addr, NULL);
 
-  /* CONFIG bit no needed except for logging */
+  /* CONFIG bit means something else when stored in cache entries */
   flags &= ~F_CONFIG;
 
   /* if previous insertion failed give up now. */
@@ -693,10 +693,10 @@ static void add_hosts_entry(struct crec *cache, struct all_addr *addr, int addrl
   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 = whine_malloc(sizeof(struct crec))))
        {
-         lookup->flags = F_FORWARD | F_IMMORTAL | F_HOSTS | F_CNAME;
-         strcpy(lookup->name.sname, a->alias);
+         lookup->flags = F_FORWARD | F_IMMORTAL | F_CONFIG | F_HOSTS | F_CNAME;
+         lookup->name.namep = a->alias;
          lookup->addr.cname.cache = cache;
          lookup->addr.cname.uid = index;
          cache_hash(lookup);
@@ -821,35 +821,38 @@ static int read_hostsfile(char *filename, int index, int cache_size)
       while (atnl == 0)
        {
          struct crec *cache;
-         int fqdn;
+         int fqdn, nomem;
+         char *canon;
          
          if ((atnl = gettok(f, token)) == EOF)
            break;
 
          fqdn = !!strchr(token, '.');
 
-         if (canonicalise(token))
+         if ((canon = canonicalise(token, &nomem)))
            {
              /* 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)))
+                                       strlen(canon)+2+strlen(domain_suffix)-SMALLDNAME)))
                {
-                 strcpy(cache->name.sname, token);
+                 strcpy(cache->name.sname, canon);
                  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)))
+             if ((cache = whine_malloc(sizeof(struct crec) + strlen(canon)+1-SMALLDNAME)))
                {
-                 strcpy(cache->name.sname, token);
+                 strcpy(cache->name.sname, canon);
                  add_hosts_entry(cache, &addr, addrlen, flags, index, addr_dup);
                  name_count++;
                }
+             free(canon);
+             
            }
-         else
+         else if (!nomem)
            my_syslog(LOG_ERR, _("bad name at %s line %d"), filename, lineno); 
        }
     } 
@@ -1103,7 +1106,7 @@ void cache_add_dhcp_entry(char *host_name,
            
            if (aliasc)
              {
-               aliasc->flags = F_FORWARD | F_DHCP | F_CNAME;
+               aliasc->flags = F_FORWARD | F_CONFIG | F_DHCP | F_CNAME;
                if (ttd == 0)
                  aliasc->flags |= F_IMMORTAL;
                else
@@ -1285,12 +1288,12 @@ void log_query(unsigned short flags, char *name, struct all_addr *addr, char *ar
        dest = "<CNAME>";
     }
     
-  if (flags & F_DHCP)
+  if (flags & F_CONFIG)
+    source = "config";
+  else if (flags & F_DHCP)
     source = "DHCP";
   else if (flags & F_HOSTS)
     source = arg;
-  else if (flags & F_CONFIG)
-    source = "config";
   else if (flags & F_UPSTREAM)
     source = "reply";
   else if (flags & F_SERVER)
index 92cbf6bf444586743cba29a1524b3c7484a8f73f..d5d3b1532c5c3197cdb000d8287bba019357ea63 100644 (file)
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#define VERSION "2.50"
+#define VERSION "2.51"
 
 #define FTABSIZ 150 /* max number of outstanding requests (default) */
 #define MAX_PROCS 20 /* max no children for TCP requests */
 #define CHILD_LIFETIME 150 /* secs 'till terminated (RFC1035 suggests > 120s) */
 #define EDNS_PKTSZ 1280 /* default max EDNS.0 UDP packet from RFC2671 */
 #define TIMEOUT 10 /* drop UDP queries after TIMEOUT seconds */
+#define FORWARD_TEST 50 /* try all servers every 50 queries */
+#define FORWARD_TIME 10 /* or 10 seconds */
 #define RANDOM_SOCKS 64 /* max simultaneous random ports */
 #define LEASE_RETRY 60 /* on error, retry writing leasefile after LEASE_RETRY seconds */
 #define CACHESIZ 150 /* default cache size */
@@ -126,6 +128,9 @@ HAVE_TFTP
 HAVE_DHCP
    define this to get dnsmasq's DHCP server.
 
+HAVE_SCRIPT
+   define this to get the ability to call scripts on lease-change
+
 HAVE_GETOPT_LONG
    define this if you have GNU libc or GNU getopt. 
 
@@ -162,6 +167,7 @@ NOTES:
 /* platform independent options- uncomment to enable */
 #define HAVE_DHCP
 #define HAVE_TFTP
+#define HAVE_SCRIPT
 /* #define HAVE_BROKEN_RTC */
 /* #define HAVE_DBUS */
 
@@ -175,6 +181,13 @@ NOTES:
 #undef HAVE_DHCP
 #endif
 
+/* Allow scripts to be disabled with COPTS=-DNO_SCRIPT */
+#ifdef NO_SCRIPT
+#undef HAVE_SCRIPT
+#endif
+
+
+
 /* platform dependent options. */
 
 /* Must preceed __linux__ since uClinux defines __linux__ too. */
@@ -273,3 +286,8 @@ NOTES:
 #  define ADDRSTRLEN 16 /* 4*3 + 3 dots + NULL */
 #endif
 
+/* Can't do scripts without fork */
+#ifdef NOFORK
+#  undef HAVE_SCRIPT
+#endif
+
index 351af0dcea102e0e4bf99299d0c6cf1c6409d607..841f9247c3ef633f5ea5dc68fa47440289f85227 100644 (file)
@@ -390,16 +390,25 @@ 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)
+void emit_dbus_signal(int action, struct dhcp_lease *lease, char *hostname)
 {
   DBusConnection *connection = (DBusConnection *)daemon->dbus;
   DBusMessage* message = NULL;
   DBusMessageIter args;
-  const char *action_str;
+  char *action_str, *addr, *mac = daemon->namebuff;
+  unsigned char *p;
+  int i;
 
   if (!connection)
     return;
-
+  
+  if (!hostname)
+    hostname = "";
+  
+  p = extended_hwaddr(lease->hwaddr_type, lease->hwaddr_len,
+                     lease->hwaddr, lease->clid_len, lease->clid, &i);
+  print_mac(mac, p, i);
+  
   if (action == ACTION_DEL)
     action_str = "DhcpLeaseDeleted";
   else if (action == ACTION_ADD)
@@ -409,6 +418,8 @@ void emit_dbus_signal(int action, char *mac, char *hostname, char *addr)
   else
     return;
 
+  addr = inet_ntoa(lease->addr);
+
   if (!(message = dbus_message_new_signal(DNSMASQ_PATH, DNSMASQ_SERVICE, action_str)))
     return;
   
index 3a9ffd786ffe277aee3643937f2188c5ef7f9fb1..335fc040adceaa9ed4e8d1ed63c2aa67220b4b11 100644 (file)
@@ -754,6 +754,8 @@ void dhcp_read_ethers(void)
 
   while (fgets(buff, MAXDNAME, f))
     {
+      char *host = NULL;
+      
       lineno++;
       
       while (strlen(buff) > 0 && isspace((int)buff[strlen(buff)-1]))
@@ -792,19 +794,28 @@ void dhcp_read_ethers(void)
        }
       else 
        {
-         if (!canonicalise(ip))
+         int nomem;
+         if (!(host = canonicalise(ip, &nomem)) || !legal_hostname(host))
            {
-             my_syslog(MS_DHCP | LOG_ERR, _("bad name at %s line %d"), ETHERSFILE, lineno); 
+             if (!nomem)
+               my_syslog(MS_DHCP | LOG_ERR, _("bad name at %s line %d"), ETHERSFILE, lineno); 
+             free(host);
              continue;
            }
              
          flags = CONFIG_NAME;
 
          for (config = daemon->dhcp_conf; config; config = config->next)
-           if ((config->flags & CONFIG_NAME) && hostname_isequal(config->hostname, ip))
+           if ((config->flags & CONFIG_NAME) && hostname_isequal(config->hostname, host))
              break;
        }
-      
+
+      if (config && (config->flags & CONFIG_FROM_ETHERS))
+       {
+         my_syslog(MS_DHCP | LOG_ERR, _("ignoring %s line %d, duplicate name or IP address"), ETHERSFILE, lineno); 
+         continue;
+       }
+       
       if (!config)
        { 
          for (config = daemon->dhcp_conf; config; config = config->next)
@@ -834,10 +845,8 @@ void dhcp_read_ethers(void)
          
          if (flags & CONFIG_NAME)
            {
-             if ((config->hostname = whine_malloc(strlen(ip)+1)))
-               strcpy(config->hostname, ip);
-             else
-               config->flags &= ~CONFIG_NAME;
+             config->hostname = host;
+             host = NULL;
            }
          
          if (flags & CONFIG_ADDR)
@@ -856,6 +865,9 @@ void dhcp_read_ethers(void)
          config->hwaddr->next = NULL;
        }
       count++;
+      
+      free(host);
+
     }
   
   fclose(f);
@@ -945,7 +957,8 @@ void dhcp_update_configs(struct dhcp_config *configs)
 
 /* If we've not found a hostname any other way, try and see if there's one in /etc/hosts
    for this address. If it has a domain part, that must match the set domain and
-   it gets stripped. */
+   it gets stripped. The set of legal domain names is bigger than the set of legal hostnames
+   so check here that the domain name is legal as a hostname. */
 char *host_from_dns(struct in_addr addr)
 {
   struct crec *lookup;
@@ -963,7 +976,7 @@ char *host_from_dns(struct in_addr addr)
       hostname[255] = 0;
       d1 = strip_hostname(hostname);
       d2 = get_domain(addr);
-      if (d1 && (!d2 || hostname_isequal(d1, d2)))
+      if (!legal_hostname(hostname) || (d1 && (!d2 || !hostname_isequal(d1, d2))))
        hostname = NULL;
     }
   
index 2df15aff4b9b630bbd625cda3f19a1c38ead3efc..48e3ecfc53a3976c4f0075a8669afda58726017b 100644 (file)
@@ -45,11 +45,16 @@ static char *compile_opts =
 "no-"
 #endif
 "DHCP "
+#if defined(HAVE_DHCP) && !defined(HAVE_SCRIPT)
+"no-scripts "
+#endif
 #ifndef HAVE_TFTP
 "no-"
 #endif
 "TFTP";
 
+
+
 static volatile pid_t pid = 0;
 static volatile int pipewrite;
 
@@ -68,7 +73,7 @@ int main (int argc, char **argv)
   struct iname *if_tmp;
   int piperead, pipefd[2], err_pipe[2];
   struct passwd *ent_pw = NULL;
-#ifdef HAVE_DHCP
+#if defined(HAVE_DHCP) && defined(HAVE_SCRIPT)
   uid_t script_uid = 0;
   gid_t script_gid = 0;
 #endif
@@ -202,7 +207,7 @@ int main (int argc, char **argv)
   if (daemon->port != 0)
     pre_allocate_sfds();
 
-#ifdef HAVE_DHCP
+#if defined(HAVE_DHCP) && defined(HAVE_SCRIPT)
   /* Note getpwnam returns static storage */
   if (daemon->dhcp && daemon->lease_change_command && daemon->scriptuser)
     {
@@ -352,7 +357,7 @@ int main (int argc, char **argv)
    
    /* if we are to run scripts, we need to fork a helper before dropping root. */
   daemon->helperfd = -1;
-#if defined(HAVE_DHCP) && !defined(NO_FORK
+#if defined(HAVE_DHCP) && defined(HAVE_SCRIPT
   if (daemon->dhcp && daemon->lease_change_command)
     daemon->helperfd = create_helper(pipewrite, err_pipe[1], script_uid, script_gid, max_fd);
 #endif
@@ -603,7 +608,7 @@ int main (int argc, char **argv)
       bump_maxfd(piperead, &maxfd);
 
 #ifdef HAVE_DHCP
-#  ifndef NO_FORK
+#  ifdef HAVE_SCRIPT
       while (helper_buf_empty() && do_script_run(now));
 
       if (!helper_buf_empty())
@@ -674,7 +679,7 @@ int main (int argc, char **argv)
       if (daemon->dhcp && FD_ISSET(daemon->dhcpfd, &rset))
        dhcp_packet(now);
 
-#  ifndef NO_FORK
+#  ifdef HAVE_SCRIPT
       if (daemon->helperfd != -1 && FD_ISSET(daemon->helperfd, &wset))
        helper_write();
 #  endif
@@ -857,7 +862,7 @@ static void async_event(int pipe, time_t now)
          if (daemon->tcp_pids[i] != 0)
            kill(daemon->tcp_pids[i], SIGALRM);
        
-#if defined(HAVE_DHCP) && !defined(NO_FORK)
+#if defined(HAVE_DHCP) && defined(HAVE_SCRIPT)
        /* handle pending lease transitions */
        if (daemon->helperfd != -1)
          {
index e04a2c12f2bb24b21f30f7746ae9c43844caf236..e84ea85696dcc33f682e9a17d6a35abf9d5c05db 100644 (file)
@@ -30,6 +30,7 @@
 
 /* get these before config.h  for IPv6 stuff... */
 #include <sys/types.h> 
+#include <sys/socket.h>
 #include <netinet/in.h>
 
 #ifdef __APPLE__
@@ -55,7 +56,6 @@
 
 #include <arpa/inet.h>
 #include <sys/stat.h>
-#include <sys/socket.h>
 #include <sys/ioctl.h>
 #if defined(HAVE_SOLARIS_NETWORK)
 #include <sys/sockio.h>
@@ -335,7 +335,7 @@ struct server {
 struct irec {
   union mysockaddr addr;
   struct in_addr netmask; /* only valid for IPv4 */
-  int dhcp_ok;
+  int dhcp_ok, mtu;
   struct irec *next;
 };
 
@@ -410,9 +410,9 @@ struct dhcp_lease {
 #endif
   int hwaddr_len, hwaddr_type;
   unsigned char hwaddr[DHCP_CHADDR_MAX]; 
-  struct in_addr addr, override;
-  unsigned char *vendorclass, *userclass;
-  unsigned int vendorclass_len, userclass_len;
+  struct in_addr addr, override, giaddr;
+  unsigned char *vendorclass, *userclass, *supplied_hostname;
+  unsigned int vendorclass_len, userclass_len, supplied_hostname_len;
   int last_interface;
   struct dhcp_lease *next;
 };
@@ -626,6 +626,7 @@ extern struct daemon {
   struct dhcp_mac *dhcp_macs;
   struct dhcp_boot *boot_config;
   struct pxe_service *pxe_services;
+  int enable_pxe;
   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;
@@ -646,6 +647,8 @@ extern struct daemon {
   struct irec *interfaces;
   struct listener *listeners;
   struct server *last_server;
+  time_t forwardtime;
+  int forwardcount;
   struct server *srv_save; /* Used for resend on DoD */
   size_t packet_len;       /*      "        "        */
   struct randfd *rfd_save; /*      "        "        */
@@ -719,8 +722,8 @@ size_t resize_packet(HEADER *header, size_t plen,
 /* util.c */
 void rand_init(void);
 unsigned short rand16(void);
-int legal_char(char c);
-int canonicalise(char *s);
+int legal_hostname(char *c);
+char *canonicalise(char *s, int *nomem);
 unsigned char *do_rfc1035_name(unsigned char *p, char *sval);
 void *safe_malloc(size_t size);
 void safe_pipe(int *fd, int read_noblock);
@@ -863,7 +866,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);
+void emit_dbus_signal(int action, struct dhcp_lease *lease, char *hostname);
 #endif
 
 /* helper.c */
index bd09dbde80c20a1426471f234a7cf9e7cf02a15d..40cda1cc21215ad4e1310a9fa995d28a0a95dc8b 100644 (file)
@@ -262,10 +262,14 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr,
          
          if (type != 0  || (daemon->options & OPT_ORDER))
            start = daemon->servers;
-         else if (!(start = daemon->last_server))
+         else if (!(start = daemon->last_server) ||
+                  daemon->forwardcount++ > FORWARD_TEST ||
+                  difftime(now, daemon->forwardtime) > FORWARD_TIME)
            {
              start = daemon->servers;
              forward->forwardall = 1;
+             daemon->forwardcount = 0;
+             daemon->forwardtime = now;
            }
        }
     }
index 01a0e905e18b71a87dddbe1325c092cf78969e2d..b992e78fdad7305f36c84e88a7c5d4f874b86809 100644 (file)
    main process.
 */
 
-#if defined(HAVE_DHCP) && !defined(NO_FORK)
+#if defined(HAVE_DHCP) && defined(HAVE_SCRIPT)
 
 static void my_setenv(const char *name, const char *value, int *error);
 
 struct script_data
 {
   unsigned char action, hwaddr_len, hwaddr_type;
-  unsigned char clid_len, hostname_len, uclass_len, vclass_len;
-  struct in_addr addr;
+  unsigned char clid_len, hostname_len, uclass_len, vclass_len, shost_len;
+  struct in_addr addr, giaddr;
   unsigned int remaining_time;
 #ifdef HAVE_BROKEN_RTC
   unsigned int length;
@@ -101,7 +101,7 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
 
   /* close all the sockets etc, we don't need them here. This closes err_fd, so that
      main process can return. */
-  for (max_fd--; max_fd > 0; max_fd--)
+  for (max_fd--; max_fd >= 0; max_fd--)
     if (max_fd != STDOUT_FILENO && max_fd != STDERR_FILENO && 
        max_fd != STDIN_FILENO && max_fd != pipefd[0] && max_fd != event_fd)
       close(max_fd);
@@ -155,7 +155,8 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
       sprintf(daemon->dhcp_buff2, "%lu ", (unsigned long)data.expires);
 #endif
       
-      if (!read_write(pipefd[0], buf, data.hostname_len + data.uclass_len + data.vclass_len, 1))
+      if (!read_write(pipefd[0], buf, 
+                     data.hostname_len + data.uclass_len + data.vclass_len + data.shost_len, 1))
        continue;
       
       /* possible fork errors are all temporary resource problems */
@@ -232,6 +233,19 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
            }
        }
       
+      if (data.shost_len != 0)
+       {
+         buf[data.shost_len - 1] = 0; /* don't trust zero-term */
+         /* cannot have = chars in env - truncate if found . */
+         if ((p = strchr((char *)buf, '=')))
+           *p = 0;
+         my_setenv("DNSMASQ_SUPPLIED_HOSTNAME", (char *)buf, &err);
+         buf += data.shost_len;
+       }
+
+      if (data.giaddr.s_addr != 0)
+       my_setenv("DNSMASQ_RELAY_ADDRESS", inet_ntoa(data.giaddr), &err); 
+
       sprintf(daemon->dhcp_buff2, "%u ", data.remaining_time);
       my_setenv("DNSMASQ_TIME_REMAINING", daemon->dhcp_buff2, &err);
       
@@ -240,7 +254,7 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
          char *dot;
          hostname = (char *)buf;
          hostname[data.hostname_len - 1] = 0;
-         if (!canonicalise(hostname))
+         if (!legal_hostname(hostname))
            hostname = NULL;
          else if ((dot = strchr(hostname, '.')))
            {
@@ -285,16 +299,9 @@ void queue_script(int action, struct dhcp_lease *lease, char *hostname, time_t n
 {
   unsigned char *p;
   size_t size;
-  int i;
-  unsigned int hostname_len = 0, clid_len = 0, vclass_len = 0, uclass_len = 0;
+  unsigned int hostname_len = 0, clid_len = 0, vclass_len = 0;
+  unsigned int uclass_len = 0, shost_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)
     return;
@@ -303,12 +310,14 @@ void queue_script(int action, struct dhcp_lease *lease, char *hostname, time_t n
     vclass_len = lease->vendorclass_len;
   if (lease->userclass)
     uclass_len = lease->userclass_len;
+  if (lease->supplied_hostname)
+    shost_len = lease->supplied_hostname_len;
   if (lease->clid)
     clid_len = lease->clid_len;
   if (hostname)
     hostname_len = strlen(hostname) + 1;
 
-  size = sizeof(struct script_data) +  clid_len + vclass_len + uclass_len + hostname_len;
+  size = sizeof(struct script_data) +  clid_len + vclass_len + uclass_len + shost_len + hostname_len;
 
   if (size > buf_size)
     {
@@ -332,8 +341,10 @@ void queue_script(int action, struct dhcp_lease *lease, char *hostname, time_t n
   buf->clid_len = clid_len;
   buf->vclass_len = vclass_len;
   buf->uclass_len = uclass_len;
+  buf->shost_len = shost_len;
   buf->hostname_len = hostname_len;
   buf->addr = lease->addr;
+  buf->giaddr = lease->giaddr;
   memcpy(buf->hwaddr, lease->hwaddr, lease->hwaddr_len);
   buf->interface[0] = 0;
 #ifdef HAVE_LINUX_NETWORK
@@ -372,14 +383,17 @@ 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: 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
-      *(p++) = hostname[i];
-  
+  if (shost_len != 0)
+    {
+      memcpy(p, lease->supplied_hostname, shost_len);
+      p += shost_len;
+    } 
+  if (hostname_len != 0)
+    {
+      memcpy(p, hostname, hostname_len);
+      p += hostname_len;
+    }
+
   bytes_in_buf = p - (unsigned char *)buf;
 }
 
index a7ac00a4116db2017bbaac8c011f5c909a705dcc..c021d15ab4c8b7e3682beb4d86ff187863c72d3f 100644 (file)
@@ -42,14 +42,20 @@ void lease_init(time_t now)
         initial state of the database. If leasefile-ro is
         set without a script, we just do without any 
         lease database. */
-      if (!daemon->lease_change_command)
+#ifdef HAVE_SCRIPT
+      if (daemon->lease_change_command)
        {
-         file_dirty = dns_dirty = 0;
-         return;
+         strcpy(daemon->dhcp_buff, daemon->lease_change_command);
+         strcat(daemon->dhcp_buff, " init");
+         leasestream = popen(daemon->dhcp_buff, "r");
        }
-      strcpy(daemon->dhcp_buff, daemon->lease_change_command);
-      strcat(daemon->dhcp_buff, " init");
-      leasestream = popen(daemon->dhcp_buff, "r");
+      else
+#endif
+       {
+          file_dirty = dns_dirty = 0;
+          return;
+        }
+
     }
   else
     {
@@ -100,19 +106,14 @@ void lease_init(time_t now)
        lease_set_hwaddr(lease, (unsigned char *)daemon->dhcp_buff2, (unsigned char *)daemon->packet, hw_len, hw_type, clid_len);
        
        if (strcmp(daemon->dhcp_buff, "*") !=  0)
-         {
-           char *p;
-           /* unprotect spaces */
-           for (p = strchr(daemon->dhcp_buff, '*'); p; p = strchr(p, '*'))
-             *p = ' ';
-           lease_set_hostname(lease, daemon->dhcp_buff, 0);
-         }
+         lease_set_hostname(lease, daemon->dhcp_buff, 0);
 
        /* set these correctly: the "old" events are generated later from
           the startup synthesised SIGHUP. */
        lease->new = lease->changed = 0;
       }
   
+#ifdef HAVE_SCRIPT
   if (!daemon->lease_stream)
     {
       int rc = 0;
@@ -133,6 +134,7 @@ void lease_init(time_t now)
          die(_("lease-init script returned exit code %s"), daemon->dhcp_buff, WEXITSTATUS(rc) + EC_INIT_OFFSET);
        }
     }
+#endif
 
   /* Some leases may have expired */
   file_dirty = 0;
@@ -173,7 +175,6 @@ void lease_update_file(time_t now)
   struct dhcp_lease *lease;
   time_t next_event;
   int i, err = 0;
-  char *p;
 
   if (file_dirty != 0 && daemon->lease_stream)
     {
@@ -199,15 +200,8 @@ void lease_update_file(time_t now)
            }
 
          ourprintf(&err, " %s ", inet_ntoa(lease->addr));
-         
-         /* substitute * for space: "*" is an illegal name, as is " " */
-         if (lease->hostname)
-           for (p = lease->hostname; *p; p++)
-             ourprintf(&err, "%c", *p == ' ' ? '*' : *p);
-         else
-           ourprintf(&err, "*");
-         ourprintf(&err, " ");
-         
+         ourprintf(&err, "%s ", lease->hostname ? lease->hostname : "*");
+                 
          if (lease->clid && lease->clid_len != 0)
            {
              for (i = 0; i < lease->clid_len - 1; i++)
@@ -550,7 +544,7 @@ int do_script_run(time_t now)
       /* If the lease still has an old_hostname, do the "old" action on that first */
       if (lease->old_hostname)
        {
-#ifndef NO_FORK
+#ifdef HAVE_SCRIPT
          queue_script(ACTION_OLD_HOSTNAME, lease, lease->old_hostname, now);
 #endif
          free(lease->old_hostname);
@@ -560,8 +554,11 @@ int do_script_run(time_t now)
       else 
        {
          kill_name(lease);
-#ifndef NO_FORK
+#ifdef HAVE_SCRIPT
          queue_script(ACTION_DEL, lease, lease->old_hostname, now);
+#endif
+#ifdef HAVE_DBUS
+         emit_dbus_signal(ACTION_DEL, lease, lease->old_hostname);
 #endif
          old_leases = lease->next;
          
@@ -569,6 +566,7 @@ int do_script_run(time_t now)
          free(lease->clid);
          free(lease->vendorclass);
          free(lease->userclass);
+         free(lease->supplied_hostname);
          free(lease);
            
          return 1; 
@@ -579,7 +577,7 @@ int do_script_run(time_t now)
   for (lease = leases; lease; lease = lease->next)
     if (lease->old_hostname)
       {        
-#ifndef NO_FORK
+#ifdef HAVE_SCRIPT
        queue_script(ACTION_OLD_HOSTNAME, lease, lease->old_hostname, now);
 #endif
        free(lease->old_hostname);
@@ -591,9 +589,13 @@ int do_script_run(time_t now)
     if (lease->new || lease->changed || 
        (lease->aux_changed && (daemon->options & OPT_LEASE_RO)))
       {
-#ifndef NO_FORK
+#ifdef HAVE_SCRIPT
        queue_script(lease->new ? ACTION_ADD : ACTION_OLD, lease, 
                     lease->fqdn ? lease->fqdn : lease->hostname, now);
+#endif
+#ifdef HAVE_DBUS
+       emit_dbus_signal(lease->new ? ACTION_ADD : ACTION_OLD, lease,
+                        lease->fqdn ? lease->fqdn : lease->hostname);
 #endif
        lease->new = lease->changed = lease->aux_changed = 0;
        
@@ -603,7 +605,10 @@ int do_script_run(time_t now)
        
        free(lease->userclass);
        lease->userclass = NULL;
-               
+       
+       free(lease->supplied_hostname);
+       lease->supplied_hostname = NULL;
+                       
        return 1;
       }
 
index 339fd129aafe2a3211a9c77beb6c5ffe925c0c74..68113fb42f08d6a539510de409c4765d12a7e5a2 100644 (file)
@@ -119,7 +119,7 @@ static int iface_allowed(struct irec **irecp, int if_index,
                         union mysockaddr *addr, struct in_addr netmask) 
 {
   struct irec *iface;
-  int fd;
+  int fd, mtu = 0, loopback;
   struct ifreq ifr;
   int dhcp_ok = 1;
   struct iname *tmp;
@@ -142,12 +142,17 @@ static int iface_allowed(struct irec **irecp, int if_index,
        }
       return 0;
     }
+   
+  loopback = ifr.ifr_flags & IFF_LOOPBACK;
+
+  if (ioctl(fd, SIOCGIFMTU, &ifr) != -1)
+    mtu = ifr.ifr_mtu;
   
   close(fd);
   
   /* If we are restricting the set of interfaces to use, make
      sure that loopback interfaces are in that set. */
-  if (daemon->if_names && (ifr.ifr_flags & IFF_LOOPBACK))
+  if (daemon->if_names && loopback)
     {
       struct iname *lo;
       for (lo = daemon->if_names; lo; lo = lo->next)
@@ -188,6 +193,7 @@ static int iface_allowed(struct irec **irecp, int if_index,
       iface->addr = *addr;
       iface->netmask = netmask;
       iface->dhcp_ok = dhcp_ok;
+      iface->mtu = mtu;
       iface->next = *irecp;
       *irecp = iface;
       return 1;
index fe04b6f330310eb5c50ebcc217064190b17a0ed1..abea37ecf5385d83fb88d5b1d7aafc6ed0f134c3 100644 (file)
@@ -406,6 +406,7 @@ static const struct {
   { "domain-search", 119, 0 },
   { "sip-server", 120, 0 },
   { "classless-static-route", 121, 0 },
+  { "server-ip-address", 255, OT_ADDR_LIST }, /* special, internal only, sets siaddr */
   { NULL, 0, 0 }
 };
 
@@ -530,13 +531,24 @@ static char *split(char *s)
   return split_chr(s, ',');
 }
 
-static int canonicalise_opt(char *s)
+static char *canonicalise_opt(char *s)
 {
+  char *ret;
+  int nomem;
+
   if (!s)
     return 0;
 
   unhide_metas(s);
-  return canonicalise(s);
+  if (!(ret = canonicalise(s, &nomem)) && nomem)
+    {
+      if (mem_recover)
+       longjmp(mem_jmp, 1);
+      else
+       die(_("could not get memory"), NULL, EC_NOMEM);
+    }
+
+  return ret;
 }
 
 static int atoi_check(char *a, int *res)
@@ -646,7 +658,7 @@ static void display_opts(void)
   printf(_("Known DHCP options:\n"));
   
   for (i = 0; opttab[i].name; i++)
-    if (opttab[i].size != OT_INTERNAL)
+    if (!(opttab[i].size & OT_INTERNAL))
       printf("%3d %s\n", opttab[i].val, opttab[i].name);
 }
 
@@ -684,7 +696,7 @@ static char *parse_dhcp_opt(char *arg, int flags)
       if (strstr(arg, "option:") == arg)
        {
          for (i = 0; opttab[i].name; i++)
-           if (opttab[i].size != OT_INTERNAL &&
+           if (!(opttab[i].size & OT_INTERNAL) &&
                strcasecmp(opttab[i].name, arg+7) == 0)
              {
                new->opt = opttab[i].val;
@@ -873,7 +885,8 @@ static char *parse_dhcp_opt(char *arg, int flags)
              
              while (arg && *arg)
                {
-                 if (!canonicalise_opt(arg))
+                 char *dom;
+                 if (!(dom = arg = canonicalise_opt(arg)))
                    {
                      problem = _("bad domain in dhcp-option");
                      break;
@@ -898,7 +911,8 @@ static char *parse_dhcp_opt(char *arg, int flags)
                        arg++;
                    }
                  *q++ = 0;
-                 
+                 free(dom);
+
                  /* Now tail-compress using earlier names. */
                  newlen = q - p;
                  for (tail = p + len; *tail; tail += (*tail) + 1)
@@ -1018,25 +1032,51 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
        DIR *dir_stream;
        struct dirent *ent;
        char *directory, *path;
+       struct list {
+         char *suffix;
+         struct list *next;
+       } *ignore_suffix = NULL, *li;
        
+       comma = split(arg);
        if (!(directory = opt_string_alloc(arg)))
          break;
        
+       for (arg = comma; arg; arg = comma) 
+         {
+           comma = split(arg);
+           li = opt_malloc(sizeof(struct list));
+           li->next = ignore_suffix;
+           ignore_suffix = li;
+           /* Have to copy: buffer is overwritten */
+           li->suffix = opt_string_alloc(arg);
+         };
+       
        if (!(dir_stream = opendir(directory)))
          die(_("cannot access directory %s: %s"), directory, EC_FILE);
-               
+       
        while ((ent = readdir(dir_stream)))
          {
            size_t len = strlen(ent->d_name);
            struct stat buf;
-
-            /* ignore emacs backups and dotfiles */
+           
+           /* ignore emacs backups and dotfiles */
            if (len == 0 ||
                ent->d_name[len - 1] == '~' ||
                (ent->d_name[0] == '#' && ent->d_name[len - 1] == '#') ||
                ent->d_name[0] == '.')
              continue;
 
+           for (li = ignore_suffix; li; li = li->next)
+             {
+               /* check for proscribed suffices */
+               size_t ls = strlen(li->suffix);
+               if (len > ls &&
+                   strcmp(li->suffix, &ent->d_name[len - ls]) == 0)
+                 break;
+             }
+           if (li)
+             continue;
+           
            path = opt_malloc(strlen(directory) + len + 2);
            strcpy(path, directory);
            strcat(path, "/");
@@ -1055,6 +1095,13 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
      
        closedir(dir_stream);
        free(directory);
+       for(; ignore_suffix; ignore_suffix = li)
+         {
+           li = ignore_suffix->next;
+           free(ignore_suffix->suffix);
+           free(ignore_suffix);
+         }
+             
        break;
       }
 
@@ -1127,32 +1174,32 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
       {
        int pref = 1;
        struct mx_srv_record *new;
-       
+       char *name, *target = NULL;
+
        if ((comma = split(arg)))
          {
            char *prefstr;
-           if ((prefstr=split(comma)) && !atoi_check16(prefstr, &pref))
+           if ((prefstr = split(comma)) && !atoi_check16(prefstr, &pref))
              problem = _("bad MX preference");
          }
        
-       if (!canonicalise_opt(arg) || (comma && !canonicalise_opt(comma)))
+       if (!(name = canonicalise_opt(arg)) || 
+           (comma && !(target = canonicalise_opt(comma))))
          problem = _("bad MX name");
-               
+       
        new = opt_malloc(sizeof(struct mx_srv_record));
        new->next = daemon->mxnames;
        daemon->mxnames = new;
        new->issrv = 0;
-       new->name = opt_string_alloc(arg);
-       new->target = opt_string_alloc(comma); /* may be NULL */
+       new->name = name;
+       new->target = target; /* may be NULL */
        new->weight = pref;
        break;
       }
       
     case 't': /*  --mx-target */
-      if (!canonicalise_opt(arg))
+      if (!(daemon->mxtarget = canonicalise_opt(arg)))
        problem = _("bad MX target");
-      else
-       daemon->mxtarget = opt_string_alloc(arg);
       break;
 
 #ifdef HAVE_DHCP      
@@ -1161,8 +1208,10 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
       break;
       
     case '6': /* --dhcp-script */
-#  ifdef NO_FORK
+#  if defined(NO_FORK)
       problem = _("cannot run scripts under uClinux");
+#  elif !defined(HAVE_SCRIPT)
+      problem = _("recompile with HAVE_SCRIPT defined to enable lease-change scripts");
 #  else
       daemon->lease_change_command = opt_string_alloc(arg);
 #  endif
@@ -1186,12 +1235,12 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
        daemon->options |= OPT_RESOLV_DOMAIN;
       else
        {
+         char *d;
          comma = split(arg);
-         if (!canonicalise_opt(arg))
+         if (!(d = canonicalise_opt(arg)))
            option = '?';
          else
            {
-             char *d = opt_string_alloc(arg);
              if (comma)
                {
                  struct cond_domain *new = safe_malloc(sizeof(struct cond_domain));
@@ -1346,10 +1395,8 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
                /* # matches everything and becomes a zero length domain string */
                if (strcmp(arg, "#") == 0)
                  domain = "";
-               else if (!canonicalise_opt(arg) && strlen(arg) != 0)
+               else if (strlen (arg) != 0 && !(domain = canonicalise_opt(arg)))
                  option = '?';
-               else
-                 domain = opt_string_alloc(arg); /* NULL if strlen is zero */
                serv = opt_malloc(sizeof(struct server));
                memset(serv, 0, sizeof(struct server));
                serv->next = newlist;
@@ -1662,7 +1709,7 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
          if (!(a[k] = split(a[k-1])))
            break;
        
-       if (option == '?' || (k < 2) || ((new->start.s_addr = inet_addr(a[0])) == (in_addr_t)-1))
+       if ((k < 2) || ((new->start.s_addr = inet_addr(a[0])) == (in_addr_t)-1))
          option = '?';
        else if (strcmp(a[1], "static") == 0)
          {
@@ -1860,15 +1907,12 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
                    new->flags |= CONFIG_DISABLE;
                  else
                    {
-                     int len = strlen(a[j]) + 1;
-                     if (!canonicalise_opt(a[j]))
+                     if (!(new->hostname = canonicalise_opt(a[j])) ||
+                         !legal_hostname(new->hostname))
                        problem = _("bad DHCP host name");
-                     else if ((new->hostname = opt_malloc(len)))
-                       {
-                         new->flags |= CONFIG_NAME;
-                         strcpy(new->hostname, a[j]);
-                         new->domain = NULL;
-                       }
+                     else
+                       new->flags |= CONFIG_NAME;
+                     new->domain = NULL;                       
                    }
                }
              else
@@ -1983,6 +2027,7 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
 
             new->next = daemon->dhcp_opts;
             daemon->dhcp_opts = new;
+            daemon->enable_pxe = 1;
           }
         
         break;
@@ -2051,6 +2096,7 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
                         s->next = new;
                       }
                     
+                    daemon->enable_pxe = 1;
                     break;
                   }
               }
@@ -2243,19 +2289,20 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
     case LOPT_INTNAME:  /* --interface-name */
       {
        struct interface_name *new, **up;
-       
+       char *domain = NULL;
+
        comma = split(arg);
        
-       if (!comma || !canonicalise_opt(arg))
+       if (!comma || !(domain = canonicalise_opt(arg)))
          problem = _("bad interface name");
-         
+       
        new = opt_malloc(sizeof(struct interface_name));
        new->next = NULL;
        /* Add to the end of the list, so that first name
           of an interface is used for PTR lookups. */
        for (up = &daemon->int_names; *up; up = &((*up)->next));
        *up = new;
-       new->name = opt_string_alloc(arg);
+       new->name = domain;
        new->intr = opt_string_alloc(comma);
        break;
       }
@@ -2268,14 +2315,22 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
          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);
+           char *alias = canonicalise_opt(arg);
+           char *target = canonicalise_opt(comma);
+           
+           if (!alias || !target)
+             problem = _("bad CNAME");
+           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 = alias;
+               new->target = target;
+             }
          }
        break;
       }
@@ -2283,19 +2338,21 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
     case LOPT_PTR:  /* --ptr-record */
       {
        struct ptr_record *new;
-       
+       char *dom, *target = NULL;
+
        comma = split(arg);
        
-       if (!canonicalise_opt(arg))
+       if (!(dom = canonicalise_opt(arg)) ||
+           (comma && !(target = canonicalise_opt(comma))))
          problem = _("bad PTR record");
-         
-       new = opt_malloc(sizeof(struct ptr_record));
-       new->next = daemon->ptr;
-       daemon->ptr = new;
-       new->name = opt_string_alloc(arg);
-       new->ptr = NULL;
-       if (comma)
-         new->ptr = opt_string_alloc(comma);
+       else
+         {
+           new = opt_malloc(sizeof(struct ptr_record));
+           new->next = daemon->ptr;
+           daemon->ptr = new;
+           new->name = dom;
+           new->ptr = target;
+         }
        break;
       }
 
@@ -2305,6 +2362,7 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
        int k = 0;
        struct naptr *new;
        int order, pref;
+       char *name, *replace = NULL;
 
        if ((a[0] = arg))
          for (k = 1; k < 7; k++)
@@ -2313,22 +2371,21 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
        
        
        if (k < 6 || 
-           !canonicalise_opt(a[0]) ||
+           !(name = canonicalise_opt(a[0])) ||
            !atoi_check16(a[1], &order) || 
            !atoi_check16(a[2], &pref) ||
-           (k == 7 && !canonicalise_opt(a[6])))
+           (k == 7 && !(replace = canonicalise_opt(a[6]))))
          problem = _("bad NAPTR record");
        else
          {
            new = opt_malloc(sizeof(struct naptr));
            new->next = daemon->naptr;
            daemon->naptr = new;
-           new->name = opt_string_alloc(a[0]);
+           new->name = name;
            new->flags = opt_string_alloc(a[3]);
            new->services = opt_string_alloc(a[4]);
            new->regexp = opt_string_alloc(a[5]);
-           if (k == 7)
-             new->replace = opt_string_alloc(a[6]);
+           new->replace = replace;
            new->order = order;
            new->pref = pref;
          }
@@ -2345,12 +2402,6 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
        
        gen_prob = _("TXT record string too long");
        
-       if (!canonicalise_opt(arg))
-         {
-           problem = _("bad TXT record");
-           break;
-         }
-
        if ((q = (unsigned char *)comma))
          while (1)
            {
@@ -2394,7 +2445,13 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
        /* ensure arg is terminated */
        if (comma)
          *comma = 0;
-       new->name = opt_string_alloc(arg);
+
+       if (!(new->name = canonicalise_opt(arg)))
+         {
+           problem = _("bad TXT record");
+           break;
+         }
+
        break;
       }
       
@@ -2406,19 +2463,16 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
        
        comma = split(arg);
        
-       if (!canonicalise_opt(arg))
+       if (!(name = canonicalise_opt(arg)))
          problem = _("bad SRV record");
          
-       name = opt_string_alloc(arg);
-       
        if (comma)
          {
            arg = comma;
            comma = split(arg);
-           if (!canonicalise_opt(arg))
-             problem = _("bad SRV target");
+           if (!(target = canonicalise_opt(arg))
+)            problem = _("bad SRV target");
                
-           target = opt_string_alloc(arg);
            if (comma)
              {
                arg = comma;
@@ -2683,7 +2737,7 @@ void reread_dhcp(void)
        }
       
       one_file(daemon->dhcp_hosts_file, 1, LOPT_BANK);  
-      my_syslog(LOG_INFO, _("read %s"), daemon->dhcp_hosts_file);
+      my_syslog(MS_DHCP | LOG_INFO, _("read %s"), daemon->dhcp_hosts_file);
     }
 
   if (daemon->dhcp_opts_file)
@@ -2714,7 +2768,7 @@ void reread_dhcp(void)
        }
       
       one_file(daemon->dhcp_opts_file, 1, LOPT_OPTS);  
-      my_syslog(LOG_INFO, _("read %s"), daemon->dhcp_opts_file);
+      my_syslog(MS_DHCP | LOG_INFO, _("read %s"), daemon->dhcp_opts_file);
     }
 }
 #endif
@@ -2898,8 +2952,7 @@ void read_opts(int argc, char **argv, char *compile_opts)
            continue;
          
          if ((token = strtok(NULL, " \t\n\r")) &&  
-             canonicalise_opt(token) &&
-             (daemon->domain_suffix = opt_string_alloc(token)))
+             (daemon->domain_suffix = canonicalise_opt(token)))
            break;
        }
 
index 6a819bbff7c7e2e7951fd45c4ae00ea98b52d44e..ca5ceba934f32386cf4181c9dedc0d13081f4c6b 100644 (file)
@@ -138,7 +138,8 @@ static int extract_name(HEADER *header, size_t plen, unsigned char **pp,
          for(j=0; j<l; j++, p++)
            if (isExtract)
              {
-               if (legal_char(*p))
+               unsigned char c = *p;
+               if (isascii(c) && !iscntrl(c) && c != '.')
                  *cp++ = *p;
                else
                  return 0;
index 35047ab4980c0fa5c2f70e0e8544a342871ae9e7..1ec1bcf45ab666f6dbbf2ff851fb2c69905f46c6 100644 (file)
@@ -415,7 +415,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
       
       for (id_list = daemon->dhcp_ignore; id_list; id_list = id_list->next)
        if (match_netid(id_list->list, netid, 0))
-         message = _("disabled");
+         message = _("ignored");
       
       if (!message)
        {
@@ -536,7 +536,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
       
       *pq = 0;
       
-      if (canonicalise(daemon->dhcp_buff))
+      if (legal_hostname(daemon->dhcp_buff))
        offer_hostname = client_hostname = daemon->dhcp_buff;
     }
   else if ((opt = option_find(mess, sz, OPTION_HOSTNAME, 1)))
@@ -550,7 +550,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
        borken_opt = 1;
       else
        daemon->dhcp_buff[len] = 0;
-      if (canonicalise(daemon->dhcp_buff))
+      if (legal_hostname(daemon->dhcp_buff))
        client_hostname = daemon->dhcp_buff;
     }
 
@@ -708,7 +708,8 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
     clid = NULL;
           
   /* Check if client is PXE client. */
-  if ((opt = option_find(mess, sz, OPTION_VENDOR_ID, 9)) && 
+  if (daemon->enable_pxe && 
+      (opt = option_find(mess, sz, OPTION_VENDOR_ID, 9)) && 
       strncmp(option_ptr(opt, 0), "PXEClient", 9) == 0)
     {
       if ((opt = option_find(mess, sz, OPTION_PXE_UUID, 17)))
@@ -728,6 +729,9 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
          unsigned char save71[4];
          struct dhcp_opt opt71;
 
+         if (ignore)
+           return 0;
+
          if (layer & 0x8000)
            {
              my_syslog(MS_DHCP | LOG_ERR, _("PXE BIS not supported"));
@@ -807,8 +811,8 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
              prune_vendor_opts(netid);
              do_encap_opts(pxe_opts(pxearch, netid), OPTION_VENDOR_CLASS_OPT, DHOPT_VENDOR_MATCH, mess, end, 0);
              
-             log_packet("PXE", NULL, emac, emac_len, iface_name, "proxy", mess->xid);
-             return dhcp_packet_size(mess, netid, agent_id, real_end);   
+             log_packet("PXE", NULL, emac, emac_len, iface_name, ignore ? "proxy" : "proxy-ignored", mess->xid);
+             return ignore ? 0 : dhcp_packet_size(mess, netid, agent_id, real_end);      
            }
        }
     }
@@ -1133,6 +1137,9 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
        {
           if (do_classes)
             {
+              if (mess->giaddr.s_addr)
+                lease->giaddr = mess->giaddr;
+              
               lease->changed = 1;
               /* copy user-class and vendor class into new lease, for the script */
               if ((opt = option_find(mess, sz, OPTION_USER_CLASS, 1)))
@@ -1162,6 +1169,18 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
                       lease->vendorclass_len = len+1;
                     }
                 }
+              if ((opt = option_find(mess, sz, OPTION_HOSTNAME, 1)))
+                {
+                  int len = option_len(opt);
+                  unsigned char *ucp = option_ptr(opt, 0);
+                  free(lease->supplied_hostname);
+                  if ((lease->supplied_hostname = whine_malloc(len+1)))
+                    {
+                      memcpy(lease->supplied_hostname, ucp, len);
+                      lease->supplied_hostname[len] = 0;
+                      lease->supplied_hostname_len = len+1;
+                    }
+                }
             }
           
           if (!hostname_auth && (client_hostname = host_from_dns(mess->yiaddr)))
@@ -1538,7 +1557,6 @@ static size_t dhcp_packet_size(struct dhcp_packet *mess, struct dhcp_netid *neti
   /* move agent_id back down to the end of the packet */
   if (agent_id)
     {
-      unsigned char *p = dhcp_skip_opts(&mess->options[0] + sizeof(u32));
       memmove(p, agent_id, real_end - agent_id);
       p += real_end - agent_id;
       memset(p, 0, real_end - p); /* in case of overlap */
@@ -1547,9 +1565,8 @@ static size_t dhcp_packet_size(struct dhcp_packet *mess, struct dhcp_netid *neti
   /* We do logging too */
   if (netid && (daemon->options & OPT_LOG_OPTS))
     {
-      char *p = daemon->namebuff;
-      *p = 0;
-      for (; netid; netid = netid->next)
+      char *s = daemon->namebuff;
+      for (*s = 0; netid; netid = netid->next)
        {
          /* kill dupes. */
          for (n = netid->next; n; n = n->next)
@@ -1558,13 +1575,12 @@ static size_t dhcp_packet_size(struct dhcp_packet *mess, struct dhcp_netid *neti
          
          if (!n)
            {
-             strncat (p, netid->net, MAXDNAME);
+             strncat (s, netid->net, (MAXDNAME-1) - strlen(s));
              if (netid->next)
-               strncat (p, ", ", MAXDNAME);
+               strncat (s, ", ", (MAXDNAME-1) - strlen(s));
            }
        }
-      p[MAXDNAME - 1] = 0;
-      my_syslog(MS_DHCP | LOG_INFO, _("%u tags: %s"), ntohl(mess->xid), p);
+      my_syslog(MS_DHCP | LOG_INFO, _("%u tags: %s"), ntohl(mess->xid), s);
     } 
    
   /* add END options to the regions. */
@@ -2074,21 +2090,26 @@ static void do_options(struct dhcp_context *context,
     }
   else
     /* Use the values of the relevant options if no dhcp-boot given and
-       they're not explicitly asked for as options. */
+       they're not explicitly asked for as options. OPTION_END is used
+       as an internal way to specify siaddr without using dhcp-boot, for use in
+       dhcp-optsfile. */
     {
       if ((!req_options || !in_list(req_options, OPTION_FILENAME)) && mess->file[0] == 0 &&
-         (opt = option_find2(netid, config_opts, OPTION_FILENAME)))
+         (opt = option_find2(netid, config_opts, OPTION_FILENAME)) && !(opt->flags & DHOPT_FORCE))
        {
          strncpy((char *)mess->file, (char *)opt->val, sizeof(mess->file)-1);
          done_file = 1;
        }
       
       if ((!req_options || !in_list(req_options, OPTION_SNAME)) &&
-         (opt = option_find2(netid, config_opts, OPTION_SNAME)))
+         (opt = option_find2(netid, config_opts, OPTION_SNAME)) && !(opt->flags & DHOPT_FORCE))
        {
          strncpy((char *)mess->sname, (char *)opt->val, sizeof(mess->sname)-1);
          done_server = 1;
        }
+      
+      if ((opt = option_find2(netid, config_opts, OPTION_END)))
+       mess->siaddr.s_addr = ((struct in_addr *)opt->val)->s_addr;     
     }
         
   /* We don't want to do option-overload for BOOTP, so make the file and sname
index 40d9143028f0ff9e09caea0de61c1aa0ae6436e9..c1ddb19b24d54d6391cc8eb0bd272ab767d0bfb6 100644 (file)
@@ -46,12 +46,13 @@ void tftp_request(struct listener *listen, time_t now)
   struct sockaddr_in addr, peer;
   struct msghdr msg;
   struct iovec iov;
-  int is_err = 1, if_index = 0;
+  struct ifreq ifr;
+  int is_err = 1, if_index = 0, mtu = 0;
   struct iname *tmp;
   struct tftp_transfer *transfer;
   int port = daemon->start_tftp_port; /* may be zero to use ephemeral port */
 #if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT)
-  int mtu = IP_PMTUDISC_DONT;
+  int mtuflag = IP_PMTUDISC_DONT;
 #endif
   
   union {
@@ -83,7 +84,10 @@ void tftp_request(struct listener *listen, time_t now)
     return;
   
   if (daemon->options & OPT_NOWILD)
-    addr = listen->iface->addr.in;
+    {
+      addr = listen->iface->addr.in;
+      mtu = listen->iface->mtu;
+    }
   else
     {
       char name[IF_NAMESIZE];
@@ -125,7 +129,10 @@ void tftp_request(struct listener *listen, time_t now)
       for (tmp = daemon->dhcp_except; tmp; tmp = tmp->next)
        if (tmp->name && (strcmp(tmp->name, name) == 0))
          return;
-      
+     
+      strncpy(name, ifr.ifr_name, IF_NAMESIZE);
+      if (ioctl(listen->tftpfd, SIOCGIFMTU, &ifr) != -1)
+       mtu = ifr.ifr_mtu;      
     }
   
   addr.sin_port = htons(port);
@@ -158,7 +165,7 @@ void tftp_request(struct listener *listen, time_t now)
     {
       if (bind(transfer->sockfd, (struct sockaddr *)&addr, sizeof(addr)) == -1 ||
 #if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT)
-         setsockopt(transfer->sockfd, SOL_IP, IP_MTU_DISCOVER, &mtu, sizeof(mtu)) == -1 ||
+         setsockopt(transfer->sockfd, SOL_IP, IP_MTU_DISCOVER, &mtuflag, sizeof(mtuflag)) == -1 ||
 #endif
          !fix_fd(transfer->sockfd))
        {
@@ -202,6 +209,9 @@ void tftp_request(struct listener *listen, time_t now)
                    transfer->blocksize = 1;
                  if (transfer->blocksize > (unsigned)daemon->packet_buff_sz - 4)
                    transfer->blocksize = (unsigned)daemon->packet_buff_sz - 4;
+                 /* 32 bytes for IP, UDP and TFTP headers */
+                 if (mtu != 0 && transfer->blocksize > (unsigned)mtu - 32)
+                   transfer->blocksize = (unsigned)mtu - 32;
                  transfer->opt_blocksize = 1;
                  transfer->block = 0;
                }
@@ -213,6 +223,10 @@ void tftp_request(struct listener *listen, time_t now)
            }
        }
 
+      /* cope with backslashes from windows boxen. */
+      while ((p = strchr(filename, '\\')))
+       *p = '/';
+
       strcpy(daemon->namebuff, "/");
       if (daemon->tftp_prefix)
        {
index e9fe27d5cf37eac41e0876948cc24d3dc25d9395..ce77f05995ad929ec21f24ff0a1a6660ec1b6245 100644 (file)
@@ -24,6 +24,9 @@
 #include <sys/times.h>
 #endif
 
+#ifdef LOCALEDIR
+#include <idna.h>
+#endif
 
 #ifdef HAVE_ARC4RANDOM
 void rand_init(void)
@@ -95,48 +98,110 @@ unsigned short rand16(void)
 
 #endif
 
-
-int legal_char(char c)
+static int check_name(char *in)
 {
-  /* check for legal char a-z A-Z 0-9 - 
-     (also / , used for RFC2317 and _ used in windows queries
-     and space, for DNS-SD stuff) */
-  if ((c >= 'A' && c <= 'Z') ||
-      (c >= 'a' && c <= 'z') ||
-      (c >= '0' && c <= '9') ||
-      c == '-' || c == '/' || c == '_' || c == ' ')
-    return 1;
-  
-  return 0;
-}
-  
-int canonicalise(char *s)
-{
-  /* check for legal chars and remove trailing . 
+  /* remove trailing . 
      also fail empty string and label > 63 chars */
-  size_t dotgap = 0, l = strlen(s);
+  size_t dotgap = 0, l = strlen(in);
   char c;
   int nowhite = 0;
-
+  
   if (l == 0 || l > MAXDNAME) return 0;
-
-  if (s[l-1] == '.')
+  
+  if (in[l-1] == '.')
     {
       if (l == 1) return 0;
-      s[l-1] = 0;
+      in[l-1] = 0;
     }
   
-  while ((c = *s))
+  for (; (c = *in); in++)
     {
       if (c == '.')
        dotgap = 0;
-      else if (!legal_char(c) || (++dotgap > MAXLABEL))
+      else if (++dotgap > MAXLABEL)
+       return 0;
+      else if (isascii(c) && iscntrl(c)) 
+       /* iscntrl only gives expected results for ascii */
        return 0;
+#ifndef LOCALEDIR
+      else if (!isascii(c))
+       return 0;
+#endif
       else if (c != ' ')
        nowhite = 1;
-      s++;
     }
-  return nowhite;
+
+  if (!nowhite)
+    return 0;
+
+  return 1;
+}
+
+/* Hostnames have a more limited valid charset than domain names
+   so check for legal char a-z A-Z 0-9 - _ 
+   Note that this may receive a FQDN, so only check the first label 
+   for the tighter criteria. */
+int legal_hostname(char *name)
+{
+  char c;
+
+  if (!check_name(name))
+    return 0;
+
+  for (; (c = *name); name++)
+    /* check for legal char a-z A-Z 0-9 - _ . */
+    {
+      if ((c >= 'A' && c <= 'Z') ||
+         (c >= 'a' && c <= 'z') ||
+         (c >= '0' && c <= '9') ||
+         c == '-' || c == '_')
+       continue;
+      
+      /* end of hostname part */
+      if (c == '.')
+       return 1;
+      
+      return 0;
+    }
+  
+  return 1;
+}
+  
+char *canonicalise(char *in, int *nomem)
+{
+  char *ret = NULL;
+#ifdef LOCALEDIR
+  int rc;
+#endif
+
+  if (nomem)
+    *nomem = 0;
+  
+  if (!check_name(in))
+    return NULL;
+  
+#ifdef LOCALEDIR
+  if ((rc = idna_to_ascii_lz(in, &ret, 0)) != IDNA_SUCCESS)
+    {
+      if (ret)
+       free(ret);
+
+      if (nomem && (rc == IDNA_MALLOC_ERROR || rc == IDNA_DLOPEN_ERROR))
+       {
+         my_syslog(LOG_ERR, _("failed to allocate memory"));
+         *nomem = 1;
+       }
+    
+      return NULL;
+    }
+#else
+  if ((ret = whine_malloc(strlen(in)+1)))
+    strcpy(ret, in);
+  else if (nomem)
+    *nomem = 1;    
+#endif
+
+  return ret;
 }
 
 unsigned char *do_rfc1035_name(unsigned char *p, char *sval)