summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG28
-rw-r--r--bld/Makefile4
-rwxr-xr-xbld/pkg-wrapper2
-rw-r--r--dbus/DBus-interface (renamed from DBus-interface)0
-rw-r--r--dbus/dnsmasq.conf16
-rw-r--r--dnsmasq-rh.spec133
-rw-r--r--dnsmasq-suse.spec2
-rw-r--r--dnsmasq.conf.example6
-rw-r--r--doc.html3
-rw-r--r--man/dnsmasq.829
-rw-r--r--po/de.po363
-rw-r--r--po/es.po367
-rw-r--r--po/fi.po363
-rw-r--r--po/fr.po367
-rw-r--r--po/id.po369
-rw-r--r--po/no.po367
-rw-r--r--po/pl.po367
-rw-r--r--po/pt_BR.po363
-rw-r--r--po/ro.po367
-rw-r--r--rpm/dnsmasq.rh93
-rw-r--r--src/bpf.c7
-rw-r--r--src/config.h14
-rw-r--r--src/dbus.c4
-rw-r--r--src/dhcp.c23
-rw-r--r--src/dnsmasq.c281
-rw-r--r--src/dnsmasq.h21
-rw-r--r--src/lease.c278
-rw-r--r--src/netlink.c53
-rw-r--r--src/network.c42
-rw-r--r--src/option.c13
-rw-r--r--src/rfc2131.c28
-rw-r--r--src/util.c14
32 files changed, 2270 insertions, 2117 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 918e1ef..64d9b5c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1803,9 +1803,35 @@ version 2.29
version 2.30
Fixed crash when a DHCP client requested a broadcast
- reply. This problem was introduced in version 2.29.
+ reply. This problem was introduced in version 2.28.
Thanks to Sandra Dekkers for the bug report.
+version 2.31
+ Added --dhcp-script option. There have been calls for this
+ for a long time from many good people. Fabio Muzzi gets
+ the prize for finally convincing me.
+
+ Added example dbus config file and moved dbus stuff into
+ its own directory.
+
+ Removed horribly outdated Redhat RPM build files. These
+ are obsolete now that dnsmasq in in Fedora extras. Thanks
+ to Patrick "Jima" Laughton, the Fedora package
+ maintainer.
+
+ Added workaround for Linux kernel bug. This manifests
+ itself as failure of DHCP on kernels with "support for
+ classical IP over ATM" configured. That includes most
+ Debian kernel packages. Many thanks to A. Costa and
+ Benjamin Kudria for their huge efforts in chasing this
+ down.
+
+ Force-kill child processes when dnsmasq is sent a sigterm,
+ otherwise an unclosed TCP connection could keep dnsmasq
+ hanging round for a few minutes.
+
+ Tweaked config.h logic for uclibc build. It will now pick
+ up MMU and IPV6 status correctly on every system I tested.
diff --git a/bld/Makefile b/bld/Makefile
index 98bf8fe..d5d8386 100644
--- a/bld/Makefile
+++ b/bld/Makefile
@@ -6,10 +6,10 @@ OBJS = cache.o rfc1035.o util.o option.o forward.o isc.o network.o \
dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o
.c.o:
- $(CC) $(CFLAGS) $(I18N) `../bld/pkg-wrapper $(PKG_CONFIG) --cflags dbus-1` $(RPM_OPT_FLAGS) -Wall -W -c $<
+ $(CC) $(CFLAGS) $(COPTS) $(I18N) `echo $(COPTS) | ../bld/pkg-wrapper $(PKG_CONFIG) --cflags dbus-1` $(RPM_OPT_FLAGS) -Wall -W -c $<
dnsmasq : $(OBJS)
- $(CC) -o $@ $(OBJS) `../bld/pkg-wrapper $(PKG_CONFIG) --libs dbus-1` $(LIBS)
+ $(CC) -o $@ $(OBJS) `echo $(COPTS) | ../bld/pkg-wrapper $(PKG_CONFIG) --libs dbus-1` $(LIBS)
dnsmasq.pot : $(OBJS:.o=.c) dnsmasq.h config.h
xgettext -d dnsmasq --foreign-user --keyword=_ -o dnsmasq.pot -i $(OBJS:.o=.c)
diff --git a/bld/pkg-wrapper b/bld/pkg-wrapper
index 694de19..55efced 100755
--- a/bld/pkg-wrapper
+++ b/bld/pkg-wrapper
@@ -1,6 +1,6 @@
#!/bin/sh
-if grep -q "^\#.*define.*HAVE_DBUS" config.h ; then
+if grep -q "^\#.*define.*HAVE_DBUS" config.h || grep -q HAVE_DBUS ; then
exec $*
fi
diff --git a/DBus-interface b/dbus/DBus-interface
index 07bffd4..07bffd4 100644
--- a/DBus-interface
+++ b/dbus/DBus-interface
diff --git a/dbus/dnsmasq.conf b/dbus/dnsmasq.conf
new file mode 100644
index 0000000..f048c00
--- /dev/null
+++ b/dbus/dnsmasq.conf
@@ -0,0 +1,16 @@
+<!DOCTYPE busconfig PUBLIC
+ "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+ <policy user="root">
+ <allow own="uk.org.thekelleys.dnsmasq"/>
+ <allow send_destination="uk.org.thekelleys.dnsmasq"/>
+ <allow send_interface="uk.org.thekelleys.dnsmasq"/>
+ </policy>
+ <policy context="default">
+ <deny own="uk.org.thekelleys.dnsmasq"/>
+ <deny send_destination="uk.org.thekelleys.dnsmasq"/>
+ <deny send_interface="uk.org.thekelleys.dnsmasq"/>
+ </policy>
+</busconfig>
+
diff --git a/dnsmasq-rh.spec b/dnsmasq-rh.spec
deleted file mode 100644
index aaa092f..0000000
--- a/dnsmasq-rh.spec
+++ /dev/null
@@ -1,133 +0,0 @@
-###############################################################################
-#
-# General mumbojumbo
-#
-###############################################################################
-
-Name: dnsmasq
-Version: 2.30
-Release: 1
-License: GPL
-Group: System Environment/Daemons
-Vendor: Simon Kelley
-Packager: Simon Kelley
-Distribution: Red Hat Linux
-URL: http://www.thekelleys.org.uk/dnsmasq
-Source0: %{name}-%{version}.tar.gz
-Requires: chkconfig
-BuildRoot: /var/tmp/%{name}-%{version}
-Summary: A lightweight caching nameserver
-
-%description
-Dnsmasq is lightweight, easy to configure DNS forwarder and DHCP server. It
-is designed to provide DNS and, optionally, DHCP, to a small network. It can
-serve the names of local machines which are not in the global DNS. The DHCP
-server integrates with the DNS server and allows machines with DHCP-allocated
-addresses to appear in the DNS with names configured either in each host or
-in a central configuration file. Dnsmasq supports static and dynamic DHCP
-leases and BOOTP for network booting of diskless machines.
-
-
-
-###############################################################################
-#
-# Build
-#
-###############################################################################
-
-%prep
-%setup -q
-%build
-make all-i18n PREFIX=/usr
-
-
-###############################################################################
-#
-# Install
-#
-###############################################################################
-
-%install
-rm -rf $RPM_BUILD_ROOT
-
-mkdir -p -m 755 $RPM_BUILD_ROOT/usr/sbin
-mkdir -p -m 755 $RPM_BUILD_ROOT/etc/rc.d/init.d
-mkdir -p -m 755 $RPM_BUILD_ROOT/usr/share/man/man8
-
-cp rpm/dnsmasq.rh $RPM_BUILD_ROOT/etc/rc.d/init.d/dnsmasq
-make install-i18n DESTDIR=$RPM_BUILD_ROOT PREFIX=/usr
-strip $RPM_BUILD_ROOT/usr/sbin/dnsmasq
-cp src/dnsmasq $RPM_BUILD_ROOT/usr/sbin
-cp dnsmasq.conf.example $RPM_BUILD_ROOT/etc/dnsmasq.conf
-
-###############################################################################
-#
-# Clean up
-#
-###############################################################################
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-
-###############################################################################
-#
-# Post-install scriptlet
-#
-###############################################################################
-
-%post
-/sbin/chkconfig --add dnsmasq
-
-
-###############################################################################
-#
-# Pre-uninstall scriptlet
-#
-# If there's a time when your package needs to have one last look around before
-# the user erases it, the place to do it is in the %preun script. Anything that
-# a package needs to do immediately prior to RPM taking any action to erase the
-# package, can be done here.
-#
-###############################################################################
-
-%preun
-if [ $1 = 0 ]; then # execute this only if we are NOT doing an upgrade
- service dnsmasq stop >/dev/null 2>&1
- /sbin/chkconfig --del dnsmasq
-fi
-
-
-###############################################################################
-#
-# Post-uninstall scriptlet
-#
-# The %postun script executes after the package has been removed. It is the
-# last chance for a package to clean up after itself.
-#
-###############################################################################
-
-%postun
-if [ "$1" -ge "1" ]; then
- service dnsmasq restart >/dev/null 2>&1
-fi
-
-
-###############################################################################
-#
-# File list
-#
-###############################################################################
-
-%files
-%defattr(-,root,root)
-%doc CHANGELOG COPYING FAQ doc.html setup.html UPGRADING_to_2.0
-%config /etc/rc.d/init.d/dnsmasq
-%config /etc/dnsmasq.conf
-%attr(0755,root,root) /etc/rc.d/init.d/dnsmasq
-%attr(0664,root,root) /etc/dnsmasq.conf
-%attr(0755,root,root) /usr/sbin/dnsmasq
-#%attr(0644,root,root) /usr/share/man/*/man8/dnsmasq*
-%attr(0644,root,root) /usr/share/man/man8/dnsmasq*
-%attr(0644,root,root) /usr/share/locale/*/LC_MESSAGES/*
-
diff --git a/dnsmasq-suse.spec b/dnsmasq-suse.spec
index fe308ec..178562f 100644
--- a/dnsmasq-suse.spec
+++ b/dnsmasq-suse.spec
@@ -5,7 +5,7 @@
###############################################################################
Name: dnsmasq
-Version: 2.30
+Version: 2.31
Release: 1
Copyright: GPL
Group: Productivity/Networking/DNS/Servers
diff --git a/dnsmasq.conf.example b/dnsmasq.conf.example
index e83f77e..1fc733e 100644
--- a/dnsmasq.conf.example
+++ b/dnsmasq.conf.example
@@ -285,6 +285,12 @@ bogus-priv
# http://www.isc.org/index.pl?/sw/dhcp/authoritative.php
#dhcp-authoritative
+# Run an executable when a DHCP lease is created or destroyed.
+# The arguments sent to the script are "add" or "del",
+# then the MAC address, the IP address and finally the hostname
+# if there is one.
+#dhcp-script=/bin/echo
+
# Set the cachesize here.
#cache-size=150
diff --git a/doc.html b/doc.html
index 9fe979c..bf2e1d3 100644
--- a/doc.html
+++ b/doc.html
@@ -22,7 +22,8 @@ Supported platforms include Linux (with glibc and uclibc), *BSD and
Mac OS X.
Dnsmasq is included in at least the following Linux distributions:
Gentoo, Debian, Slackware, Suse,
-Smoothwall, IP-Cop, floppyfw, Firebox, LEAF, Freesco, fli4l, CoyoteLinux and
+Smoothwall, IP-Cop, floppyfw, Firebox, LEAF, Freesco, fli4l,
+CoyoteLinux, Endian Firewall and
Clarkconnect. It is also available as a FreeBSD port and is used in
Linksys wireless routers and the m0n0wall project.
<P>
diff --git a/man/dnsmasq.8 b/man/dnsmasq.8
index 5b7959a..299a7ff 100644
--- a/man/dnsmasq.8
+++ b/man/dnsmasq.8
@@ -533,7 +533,34 @@ is given but no dhcp-range option is given then dnsmasq version 1
behaviour is activated. The file given is assumed to be an ISC dhcpd
lease file and parsed for leases which are then added to the DNS
system if they have a hostname. This functionality may have been
-excluded from dnsmasq at compile time, in which case an error will occur.
+excluded from dnsmasq at compile time, in which case an error will
+occur. In any case note that ISC leasefile integration is a deprecated
+feature. It should not be used in new installations, and will be
+removed in a future release.
+.TP
+.B \-6 --dhcp-script=<path>
+Whenever a new DHCP lease is created, or an old one destroyed, the
+binary specified by this option is run. The arguments to the binary
+are "add", "old" or "del", the MAC
+address of the host (or "<null>"), the IP address, and the hostname,
+if known. "add" means a lease has been created, "del" means it has
+been destroyed, "old" is a notification of an existing lease when
+dnsmasq starts or a change to MAC address or hostname of an existing lease.
+The process is run as any unprivileged user which dnsmasq
+runs as, so it may be necessary to inhibit dropping of the root user,
+using the
+.B -u
+directive, if the script needs root privs.
+The environment is inherited from the invoker of dnsmasq,
+and all file decriptors are
+closed except stdin, stdout and stderr which are open to /dev/null
+(except in debug mode).
+The script is not invoked concurrently: if subsequent lease
+changes occur, the script is not invoked again until any existing
+invokation exits. At dnsmasq startup, the script will be invoked for
+all existing leases as they are read from the lease file. Expired
+leases will be called with "del" and others with "old". <path>
+must be an absolute pathname, no PATH search occurs.
.TP
.B \-s, --domain=<domain>
Specifies the domain for the DHCP server. This has two effects;
diff --git a/po/de.po b/po/de.po
index 0b1e14b..451a959 100644
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-23 19:58+0100\n"
+"POT-Creation-Date: 2006-05-06 13:18+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,19 +20,19 @@ msgstr ""
msgid "failed to load names from %s: %m"
msgstr ""
-#: cache.c:606 dhcp.c:655
+#: cache.c:606 dhcp.c:664
#, c-format
msgid "bad address at %s line %d"
msgstr ""
# @Simon: Here I need an example to understand it :)
-#: cache.c:633 dhcp.c:669
+#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr ""
# @Simon: Here I need an example to understand it :)
-#: cache.c:639 dhcp.c:723
+#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr "lese %s - %d Adressen"
@@ -70,7 +70,7 @@ msgstr ""
# @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:153 option.c:1294
+#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr "Speicher nicht verfügbar"
@@ -97,26 +97,26 @@ msgstr "Start gescheitert"
msgid "infinite"
msgstr "unendlich"
-#: option.c:125
+#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr "Lokale abzuhörende Adresse(n) angeben."
# @Simon: Quite literal translation, sounds not too polite in german.
# @Simon: How about: "Bitte die lokalen abzuhörende Adresse(n) angeben."
# @Simon: = "Please specify the local address(es) to listen on."
-#: option.c:126
+#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Rückkehr-IP-Adresse für alle Geräte in angebenen Domänen"
# @Simon: I hope "Return ipaddr" is similar to "Return-ipaddr" and not "Return the ipaddr ... !"
-#: option.c:127
+#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
"'Gefälschte' Rückwärts-Ergebnisse für private Adressbereiche nach RFC1918"
# @Simon: I'm a bit unsure about the meaning of "Fake" here, and the best word for "lookup" is "Nachsehen"
# @Simon: (that is "looking-for") but I think that cannot be used. "Ergebnisse" = "results", is that near enough?
-#: option.c:128
+#: option.c:129
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Behandle IP-Adr als NXDOMAIN (wehrt Verisign-Platzhalter ab)."
@@ -127,17 +127,17 @@ msgstr "Behandle IP-Adr als NXDOMAIN (wehrt Verisign-Platzhalter ab)."
# @Simon: "Behandle IP-Adr als NXDOMAIN (gegen Verisigns Platzhalter-Gebrauch)."
# @Simon: = "Treat ipaddr as NXDOMAIN (defeats Verisigns wildcard usage)." ?
# @Simon: But the explanatory(?) effect is only a very tiny bit better, I believe - what do U think?
-#: option.c:129
+#: option.c:130
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Angabe der Größe des Caches in Einträgen (Voreinstellung: %s)."
-#: option.c:130
+#: option.c:131
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Angabe der Konfigurationsdatei (Voreinstellung: %s)."
-#: option.c:131
+#: option.c:132
msgid "Do NOT fork into the background: run in debug mode."
msgstr "NICHT in den Hintergrund gehen: Betrieb im Debug-Modus"
@@ -145,404 +145,412 @@ msgstr "NICHT in den Hintergrund gehen: Betrieb im Debug-Modus"
# @Simon: I know it sounds a bit clumsy in english, but "fork" would be hard to understand
# @Simon: and then I get a problem between "go" and "run" - so...
# @Simon: "Debug-mode" = "Fehlersuch-Modus", literally, but I think "Debug-Modus" is better :)
-#: option.c:132
+#: option.c:133
msgid "Do NOT forward queries with no domain part."
msgstr "Anfragen ohne Domänen-Teil NICHT weiterschicken"
# @Simon: "weiterschicken" is rather "pass on" (I hope) but that's the best I found.
-#: option.c:133
+#: option.c:134
msgid "Return self-pointing MX records for local hosts."
msgstr "Rückgabe auf sich selbst zeigender MX-Einträge für lokale Geräte"
# @Simon: "self-pointing" is a bit difficult, the meaning is clear but takes 3-4 words to express it in german.
# @Simon: "Geräte" is about "hard-devices". There is a word for "host" (it is "Wirt") but it would be misleading.
# @Simon: My online dict suggest "Rechner" (= Computer), but I think "hard-devices" is better because it's more general.
-#: option.c:134
+#: option.c:135
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Erweitere einfache Namen in /etc/hosts mit der Domänen-Endung"
-#: option.c:135
+#: option.c:136
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "'unechte' DNS-Anfragen von Windows-Rechnern nicht weiterleiten"
# @Simon: I'm a bit unsure about "spurious"
-#: option.c:136
+#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr ""
-#: option.c:137
+#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr ""
-#: option.c:138
+#: option.c:139
msgid "Set address or hostname for a specified machine."
msgstr ""
-#: option.c:139
+#: option.c:140
#, c-format
msgid "Do NOT load %s file."
msgstr ""
-#: option.c:140
+#: option.c:141
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr ""
-#: option.c:141
+#: option.c:142
msgid "Specify interface(s) to listen on."
msgstr ""
-#: option.c:142
+#: option.c:143
msgid "Specify interface(s) NOT to listen on."
msgstr ""
-#: option.c:143
+#: option.c:144
msgid "Map DHCP user class to option set."
msgstr ""
-#: option.c:144
+#: option.c:145
msgid "Don't do DHCP for hosts in option set."
msgstr ""
-#: option.c:145
+#: option.c:146
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr ""
-#: option.c:146
+#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr ""
-#: option.c:147
+#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:148
+#: option.c:149
msgid "Return MX records for local hosts."
msgstr ""
-#: option.c:149
+#: option.c:150
msgid "Specify an MX record."
msgstr ""
-#: option.c:150
+#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr ""
-#: option.c:151
+#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
-#: option.c:152
+#: option.c:153
msgid "Do NOT cache failed search results."
msgstr ""
-#: option.c:153
+#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr ""
-#: option.c:154
+#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr ""
-#: option.c:155
+#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
-#: option.c:156
+#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
-#: option.c:157
+#: option.c:158
msgid "Log queries."
msgstr ""
-#: option.c:158
+#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr ""
-#: option.c:159
+#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr ""
-#: option.c:160
+#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr ""
-#: option.c:161
+#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
-#: option.c:162
+#: option.c:163
msgid "Never forward queries to specified domains."
msgstr ""
-#: option.c:163
+#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr ""
-#: option.c:164
+#: option.c:165
msgid "Specify default target in an MX record."
msgstr ""
-#: option.c:165
+#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
-#: option.c:166
+#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr ""
-#: option.c:167
+#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr ""
-#: option.c:168
+#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr ""
-#: option.c:169
+#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr ""
-#: option.c:170
+#: option.c:171
msgid "Specify a SRV record."
msgstr ""
-#: option.c:171
+#: option.c:172
msgid "Display this message."
msgstr ""
-#: option.c:172
+#: option.c:173
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgstr ""
-#: option.c:173
+#: option.c:174
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:174
+#: option.c:175
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
-#: option.c:175
+#: option.c:176
msgid "Specify TXT DNS record."
msgstr ""
-#: option.c:176
+#: option.c:177
msgid "Bind only to interfaces in use."
msgstr ""
-#: option.c:177
+#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr ""
-#: option.c:178
+#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr ""
-#: option.c:179
+#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr ""
-#: option.c:180
+#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr ""
-#: option.c:181
+#: option.c:182
msgid "Map MAC address (with wildcards) to option set."
msgstr ""
-#: option.c:182
+#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:396
+#: option.c:184
+msgid "Script to run on DHCP lease creation and destruction."
+msgstr ""
+
+#: option.c:398
msgid "missing \""
msgstr ""
-#: option.c:425
+#: option.c:427
msgid "bad option"
msgstr ""
-#: option.c:442
+#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: option.c:448
+#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
-#: option.c:450
+#: option.c:452
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
-#: option.c:452
+#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr ""
-#: option.c:477
+#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
-#: option.c:478
+#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
-#: option.c:479
+#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
-#: option.c:480
+#: option.c:482
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:481
+#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr ""
-#: option.c:491
+#: option.c:493
msgid "extraneous parameter"
msgstr ""
-#: option.c:499
+#: option.c:501
msgid "missing parameter"
msgstr ""
-#: option.c:516
+#: option.c:518
msgid "nested includes not allowed"
msgstr ""
-#: option.c:576
+#: option.c:578
msgid "bad MX preference"
msgstr ""
-#: option.c:585
+#: option.c:587
msgid "bad MX name"
msgstr ""
-#: option.c:603
+#: option.c:605
msgid "bad MX target"
msgstr ""
-#: option.c:802 option.c:813
+#: option.c:617
+msgid "cannot run scripts under uClinux"
+msgstr ""
+
+#: option.c:813 option.c:824
msgid "bad port"
msgstr ""
-#: option.c:955
+#: option.c:966
msgid "bad dhcp-range"
msgstr ""
-#: option.c:984
+#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1029
+#: option.c:1040
msgid "inconsistent DHCP range"
msgstr ""
-#: option.c:1214
+#: option.c:1225
msgid "bad dhcp-host"
msgstr ""
-#: option.c:1271
+#: option.c:1282
msgid "bad dhcp-option"
msgstr ""
-#: option.c:1289
+#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr ""
-#: option.c:1459
+#: option.c:1470
msgid "dhcp-option too long"
msgstr ""
-#: option.c:1656
+#: option.c:1667
msgid "bad TXT record"
msgstr ""
-#: option.c:1688
+#: option.c:1699
msgid "TXT record string too long"
msgstr ""
-#: option.c:1727
+#: option.c:1738
msgid "bad SRV record"
msgstr ""
-#: option.c:1740
+#: option.c:1751
msgid "bad SRV target"
msgstr ""
-#: option.c:1752
+#: option.c:1763
msgid "invalid port number"
msgstr ""
-#: option.c:1763
+#: option.c:1774
msgid "invalid priority"
msgstr ""
-#: option.c:1774
+#: option.c:1785
msgid "invalid weight"
msgstr ""
-#: option.c:1799
+#: option.c:1810
msgid "error"
msgstr ""
-#: option.c:1801
+#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr ""
-#: option.c:1803
+#: option.c:1814
msgid "try --help"
msgstr ""
-#: option.c:1805
+#: option.c:1816
msgid "try -w"
msgstr ""
-#: option.c:1845
+#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
-#: option.c:1874
+#: option.c:1885
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
-#: option.c:1881
+#: option.c:1892
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
-#: option.c:1884 network.c:481
+#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr ""
-#: option.c:1902
+#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr ""
@@ -556,7 +564,7 @@ msgstr ""
msgid "forwarding table overflow: check for server loops."
msgstr ""
-#: isc.c:73 dnsmasq.c:460
+#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr ""
@@ -566,7 +574,7 @@ msgstr ""
msgid "failed to load %s: %m"
msgstr ""
-#: isc.c:93 network.c:485
+#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr ""
@@ -581,59 +589,59 @@ msgstr ""
msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
msgstr ""
-#: network.c:308 dnsmasq.c:129
+#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr ""
-#: network.c:315
+#: network.c:321
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr ""
-#: network.c:333
+#: network.c:339
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr ""
-#: network.c:341
+#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr ""
-#: network.c:411
+#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
-#: network.c:420
+#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr ""
-#: network.c:434
+#: network.c:438
msgid "domain"
msgstr ""
-#: network.c:436
+#: network.c:440
msgid "unqualified"
msgstr ""
-#: network.c:436
+#: network.c:440
msgid "domains"
msgstr ""
-#: network.c:439
+#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:441
+#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:444
+#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
@@ -662,7 +670,7 @@ msgstr ""
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr ""
-#: dnsmasq.c:158 dnsmasq.c:536
+#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr ""
@@ -671,67 +679,67 @@ msgstr ""
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr ""
-#: dnsmasq.c:196
+#: dnsmasq.c:192
#, c-format
msgid "cannot create pipe: %s"
msgstr ""
-#: dnsmasq.c:331
+#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr ""
-#: dnsmasq.c:333
+#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr ""
-#: dnsmasq.c:335
+#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr ""
-#: dnsmasq.c:341
+#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr ""
-#: dnsmasq.c:343
+#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr ""
-#: dnsmasq.c:348
+#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr ""
-#: dnsmasq.c:353
+#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr ""
-#: dnsmasq.c:365
+#: dnsmasq.c:370
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr ""
-#: dnsmasq.c:366
+#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr ""
-#: dnsmasq.c:376
+#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
-#: dnsmasq.c:378
+#: dnsmasq.c:383
msgid "running as root"
msgstr ""
-#: dnsmasq.c:511
+#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr ""
-#: dnsmasq.c:538
+#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr ""
@@ -740,168 +748,177 @@ msgstr ""
msgid "cannot create DHCP socket : %s"
msgstr ""
-#: dhcp.c:42
+#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr ""
-#: dhcp.c:49
+#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr ""
-#: dhcp.c:59
+#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr ""
-#: dhcp.c:72
+#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr ""
-#: dhcp.c:84
+#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
-#: dhcp.c:307
+#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
-#: dhcp.c:623
+#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr ""
-#: dhcp.c:642
+#: dhcp.c:651
#, c-format
msgid "bad line at %s line %d"
msgstr ""
-#: dhcp.c:746
+#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
-#: dhcp.c:782
+#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr ""
-#: lease.c:34
+#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr ""
-#: lease.c:71
+#: lease.c:59
msgid "too many stored leases"
msgstr ""
-#: lease.c:118
+#: lease.c:175
#, c-format
-msgid "failed to write %s: %m (retry in %ds)"
+msgid "failed to write %s: %s (retry in %us)"
msgstr ""
-#: rfc2131.c:247
+#: lease.c:436
+#, c-format
+msgid "failed to execute %s: %m"
+msgstr ""
+
+#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr ""
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "with subnet selector"
msgstr ""
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "via"
msgstr ""
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr ""
-#: rfc2131.c:310 rfc2131.c:731
+#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr ""
-#: rfc2131.c:313
+#: rfc2131.c:312
msgid "no address configured"
msgstr ""
-#: rfc2131.c:326 rfc2131.c:605
+#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr ""
-#: rfc2131.c:333 rfc2131.c:734
+#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr ""
-#: rfc2131.c:336 rfc2131.c:707
+#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr ""
-#: rfc2131.c:540
+#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr ""
-#: rfc2131.c:558
+#: rfc2131.c:559
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:567 rfc2131.c:799
+#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr ""
-#: rfc2131.c:581
+#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:590
+#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
-#: rfc2131.c:670
+#: rfc2131.c:671
msgid "wrong address"
msgstr ""
-#: rfc2131.c:683
+#: rfc2131.c:684
msgid "lease not found"
msgstr ""
-#: rfc2131.c:715
+#: rfc2131.c:716
msgid "address not available"
msgstr ""
-#: rfc2131.c:724
+#: rfc2131.c:725
msgid "static lease available"
msgstr ""
-#: rfc2131.c:728
+#: rfc2131.c:729
msgid "address reserved"
msgstr ""
-#: rfc2131.c:946
+#: rfc2131.c:735
+msgid "no unique-id"
+msgstr ""
+
+#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:1247
+#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr ""
#: netlink.c:51
#, c-format
-msgid "cannot create RTnetlink socket: %s"
+msgid "cannot create netlink socket: %s"
msgstr ""
-#: netlink.c:218
+#: netlink.c:224
#, c-format
-msgid "RTnetlink returns error: %s"
+msgid "netlink returns error: %s"
msgstr ""
#: dbus.c:112
@@ -916,12 +933,12 @@ msgstr ""
msgid "could not register a DBus message handler"
msgstr ""
-#: bpf.c:54
+#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr ""
-#: bpf.c:74
+#: bpf.c:79
#, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr ""
diff --git a/po/es.po b/po/es.po
index a130741..19136e7 100644
--- a/po/es.po
+++ b/po/es.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-23 19:58+0100\n"
+"POT-Creation-Date: 2006-05-06 13:18+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,17 +20,17 @@ msgstr ""
msgid "failed to load names from %s: %m"
msgstr "no se pudo cargar nombres desde %s: %m"
-#: cache.c:606 dhcp.c:655
+#: cache.c:606 dhcp.c:664
#, fuzzy, c-format
msgid "bad address at %s line %d"
msgstr "nombre erróneo en %s línea %d"
-#: cache.c:633 dhcp.c:669
+#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr "nombre erróneo en %s línea %d"
-#: cache.c:639 dhcp.c:723
+#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr "direcciónes %s - %d leídas"
@@ -57,7 +57,7 @@ msgstr ""
"tamaño de caché %d, %d/%d inserciónes de caché reutilizaron entradas no "
"vencidas."
-#: util.c:153 option.c:1294
+#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr "no se pudo conseguir memoria"
@@ -75,277 +75,281 @@ msgstr "el intento de inicio ha FALLADO"
msgid "infinite"
msgstr "infinito"
-#: option.c:125
+#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr "Especificar dirección(es) locales dónde escuchar."
-#: option.c:126
+#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr ""
"Retornar ipaddr (dirección IP) para todos los hosts en los dominios "
"especificados."
-#: option.c:127
+#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
"Falsificar búsquedas reversas para rangos de dirección privados RFC1918."
-#: option.c:128
+#: option.c:129
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Tratar ipaddr (dirección IP) como NXDOMAIN (derrota comodín Verisign)."
-#: option.c:129
+#: option.c:130
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr ""
"Especificar tamaño de caché en cuanto a entradas (%s por predeterminado)."
-#: option.c:130
+#: option.c:131
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Especificar archivo de configuración (%s por predeterminado)."
-#: option.c:131
+#: option.c:132
msgid "Do NOT fork into the background: run in debug mode."
msgstr "NO hacer un fork hacia el fondo: correr en modo debug."
-#: option.c:132
+#: option.c:133
msgid "Do NOT forward queries with no domain part."
msgstr "NO reenviar búsquedas sin parte de dominio."
-#: option.c:133
+#: option.c:134
msgid "Return self-pointing MX records for local hosts."
msgstr "Retornar records MX auto-señaladores para hosts locales."
-#: option.c:134
+#: option.c:135
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr ""
"Expandir nombres simples en /etc/hosts con domain-suffix (sufijo de dominio)."
-#: option.c:135
+#: option.c:136
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "No reenviar pedidos DNS falsos desde máquinas Windows."
-#: option.c:136
+#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr "Habilitar DHCP dentro del rango brindado con duración del arriendo."
-#: option.c:137
+#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Cambiar a este grupo después del inicio (%s por predeterminado)."
-#: option.c:138
+#: option.c:139
msgid "Set address or hostname for a specified machine."
msgstr "Fijar dirección o nombre de host para una máquina específica."
-#: option.c:139
+#: option.c:140
#, c-format
msgid "Do NOT load %s file."
msgstr "NO cargar archivo %s."
-#: option.c:140
+#: option.c:141
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Especificar un archivo de hosts para leer adicionalmente a %s."
-#: option.c:141
+#: option.c:142
msgid "Specify interface(s) to listen on."
msgstr "Especificar interface(s) donde escuchar."
-#: option.c:142
+#: option.c:143
msgid "Specify interface(s) NOT to listen on."
msgstr "Especificar interface(s) donde NO escuchar."
-#: option.c:143
+#: option.c:144
msgid "Map DHCP user class to option set."
msgstr "Trazar clase de usuario DHCP a la opción fijada."
-#: option.c:144
+#: option.c:145
msgid "Don't do DHCP for hosts in option set."
msgstr "No hacer DHCP para hosts en la opción fijada."
-#: option.c:145
+#: option.c:146
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "NO hacer un fork hacia el fondo, NO correr en modo debug."
-#: option.c:146
+#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr "Asumir que somos el único servidor DHCP en la red local."
-#: option.c:147
+#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Especificar donde guardar arriendos DHCP (%s por predeterminado)."
-#: option.c:148
+#: option.c:149
msgid "Return MX records for local hosts."
msgstr "Retornar récords MX para hosts locales."
-#: option.c:149
+#: option.c:150
msgid "Specify an MX record."
msgstr "Especificar un récord MX."
-#: option.c:150
+#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr "Especificar opciónes BOOTP a servidor DHCP."
-#: option.c:151
+#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "NO revisar archivo %s periodicamente, recargar solo con SIGHUP."
-#: option.c:152
+#: option.c:153
msgid "Do NOT cache failed search results."
msgstr "NO cachear resultados de búsquedas fallidas."
-#: option.c:153
+#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Usar servidores DNS estrictamente en el órden dado en %s."
-#: option.c:154
+#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr "Fijar opciones extra para ser enviadas a clientes DHCP."
-#: option.c:155
+#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
"Especificar puerto donde escuchar por búsquedas DNS (53 por predeterminado)."
-#: option.c:156
+#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
"Máximo tamaño soportado de paquetes UDP para EDNS.0 (%s por predeterminado)."
-#: option.c:157
+#: option.c:158
msgid "Log queries."
msgstr "Bitacorear búsquedas."
-#: option.c:158
+#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr "Enforzar el puerto original para búsquedas upstream."
-#: option.c:159
+#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr "NO leer resolv.conf."
-#: option.c:160
+#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Especificar el destino hacia resolv.conf (%s por predeterminado)."
-#: option.c:161
+#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
"Especificar dirección(es) de servidor upstream con dominios opcionales."
-#: option.c:162
+#: option.c:163
msgid "Never forward queries to specified domains."
msgstr "Nunca reenviar búsquedas a dominios especificados."
-#: option.c:163
+#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Especificar dominio para asignar en arriendos DHCP."
-#: option.c:164
+#: option.c:165
msgid "Specify default target in an MX record."
msgstr "Especificar destino predeterminado en un récord MX."
-#: option.c:165
+#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
"Especificar tiempo de vida en segundos para respuestas desde /etc/hosts."
-#: option.c:166
+#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Cambiar a este usuario despues de iniciar (%s por predeterminado)."
-#: option.c:167
+#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr "Trazar clase de vendedor DHCP a opción fijada."
-#: option.c:168
+#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr "Mostrar información sobre la versión y copyright de dnsmasq."
-#: option.c:169
+#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Traducir direcciones IPv4 desde servidores upstream."
-#: option.c:170
+#: option.c:171
msgid "Specify a SRV record."
msgstr "Especificar un récord SRV."
-#: option.c:171
+#: option.c:172
msgid "Display this message."
msgstr "Mostrar este mensaje."
-#: option.c:172
+#: option.c:173
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgstr "Especificar path de archivo PID (%s por predeterminado)."
-#: option.c:173
+#: option.c:174
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Especificar número máximo de arriendos DHCP (%s por predeterminado)."
-#: option.c:174
+#: option.c:175
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
"Responder a búsquedas DNS en base a la interface donde fueron enviadas."
-#: option.c:175
+#: option.c:176
msgid "Specify TXT DNS record."
msgstr "Especificar récord DNS TXT."
-#: option.c:176
+#: option.c:177
msgid "Bind only to interfaces in use."
msgstr "Acoplar solo a interfaces en uso."
-#: option.c:177
+#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Leer información sobre hosts DHCP estáticos desde %s."
-#: option.c:178
+#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Habilitar la interface DBus para fijar servidores upstream, etc."
-#: option.c:179
+#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "No proveer DHCP en esta interface, solo proveer DNS."
-#: option.c:180
+#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr "Habilitar alocación dinámica de direcciónes para BOOTP."
-#: option.c:181
+#: option.c:182
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Trazar clase de vendedor DHCP a opción fijada."
-#: option.c:182
+#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:396
+#: option.c:184
+msgid "Script to run on DHCP lease creation and destruction."
+msgstr ""
+
+#: option.c:398
msgid "missing \""
msgstr "falta \""
-#: option.c:425
+#: option.c:427
msgid "bad option"
msgstr "opción errónea"
-#: option.c:442
+#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr "no se puede leer %s: %s"
-#: option.c:448
+#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -354,22 +358,22 @@ msgstr ""
"Modo de uso: dnsmasq [opciones]\n"
"\n"
-#: option.c:450
+#: option.c:452
#, 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:452
+#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr "Opciones válidas son :\n"
-#: option.c:477
+#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq versión %s %s\n"
-#: option.c:478
+#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
@@ -378,141 +382,145 @@ msgstr ""
"Opciones de compilación %s\n"
"\n"
-#: option.c:479
+#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Este software viene SIN NINGUNA GARANTIA.\n"
-#: option.c:480
+#: option.c:482
#, 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:481
+#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr "bajo los términos de la GNU General Public License, versión 2.\n"
-#: option.c:491
+#: option.c:493
msgid "extraneous parameter"
msgstr "parámetro extraño"
-#: option.c:499
+#: option.c:501
msgid "missing parameter"
msgstr "parámetro ausente"
-#: option.c:516
+#: option.c:518
msgid "nested includes not allowed"
msgstr "inclusiones jerarquizadas no permitidas"
-#: option.c:576
+#: option.c:578
msgid "bad MX preference"
msgstr "preferencia MX errónea"
-#: option.c:585
+#: option.c:587
msgid "bad MX name"
msgstr "nombre MX erróneo"
-#: option.c:603
+#: option.c:605
msgid "bad MX target"
msgstr "destino MX erróneo"
-#: option.c:802 option.c:813
+#: option.c:617
+msgid "cannot run scripts under uClinux"
+msgstr ""
+
+#: option.c:813 option.c:824
msgid "bad port"
msgstr "puerto erróneo"
-#: option.c:955
+#: option.c:966
msgid "bad dhcp-range"
msgstr "dhcp-range (rango DHCP) erróneo"
-#: option.c:984
+#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1029
+#: option.c:1040
msgid "inconsistent DHCP range"
msgstr "rango DHCP inconsistente"
-#: option.c:1214
+#: option.c:1225
msgid "bad dhcp-host"
msgstr "dhcp-host erróneo"
-#: option.c:1271
+#: option.c:1282
msgid "bad dhcp-option"
msgstr "dhcp-option erróneo"
-#: option.c:1289
+#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr "dominio erróneo en dhcp-option"
-#: option.c:1459
+#: option.c:1470
msgid "dhcp-option too long"
msgstr "opción dhcp-option demasiado larga"
-#: option.c:1656
+#: option.c:1667
msgid "bad TXT record"
msgstr "récord TXT erróneo"
-#: option.c:1688
+#: option.c:1699
msgid "TXT record string too long"
msgstr "récord TXT demasiado largo"
-#: option.c:1727
+#: option.c:1738
msgid "bad SRV record"
msgstr "récord SRV erróneo"
-#: option.c:1740
+#: option.c:1751
msgid "bad SRV target"
msgstr "destino SRV erróneo"
-#: option.c:1752
+#: option.c:1763
msgid "invalid port number"
msgstr "número de puerto inválido"
-#: option.c:1763
+#: option.c:1774
msgid "invalid priority"
msgstr "prioridad inválida"
-#: option.c:1774
+#: option.c:1785
msgid "invalid weight"
msgstr "peso inválido"
-#: option.c:1799
+#: option.c:1810
msgid "error"
msgstr "error"
-#: option.c:1801
+#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr "opciones de línea de comandos erróneas: %s."
-#: option.c:1803
+#: option.c:1814
msgid "try --help"
msgstr ""
-#: option.c:1805
+#: option.c:1816
msgid "try -w"
msgstr ""
-#: option.c:1845
+#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr "no se puede obtener host-name (nombre de host): %s"
-#: option.c:1874
+#: option.c:1885
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "solo un archivo resolv.conf permitido en modo no-poll."
-#: option.c:1881
+#: option.c:1892
msgid "must have exactly one resolv.conf to read domain from."
msgstr "debe haber exactamente un resolv.conf desde donde leer dominio."
-#: option.c:1884 network.c:481
+#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr "no se pudo leer %s: %m"
-#: option.c:1902
+#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr "ninguna directiva de búsqueda encontrada en %s"
@@ -527,7 +535,7 @@ msgid "forwarding table overflow: check for server loops."
msgstr ""
"desbordamiento en la tabla de reenvio: revisar si hay loops de servidor."
-#: isc.c:73 dnsmasq.c:460
+#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr "no se pudo accesar %s: %m"
@@ -537,7 +545,7 @@ msgstr "no se pudo accesar %s: %m"
msgid "failed to load %s: %m"
msgstr "no se pudo cargar %s: %m"
-#: isc.c:93 network.c:485
+#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr "leyendo %s"
@@ -553,59 +561,59 @@ msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
msgstr ""
"Ignorando arriendo DHCP para %s porque tiene una parte ilegal de dominio"
-#: network.c:308 dnsmasq.c:129
+#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr "no se pudo crear un socket escuchador: %s"
-#: network.c:315
+#: network.c:321
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr "no se pudo fijar opciones IPv6 sobre el socket escuchador: %s"
-#: network.c:333
+#: network.c:339
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "no se pudo acoplar socket escuchador para %s: %s"
-#: network.c:341
+#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr "no se pudo escuchar en el socket: %s"
-#: network.c:411
+#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorando servidor DNS %s - interface local"
-#: network.c:420
+#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr "ignorando servidor DNS %s - no se pudo crear/acoplar socket: %m"
-#: network.c:434
+#: network.c:438
msgid "domain"
msgstr "dominio"
-#: network.c:436
+#: network.c:440
msgid "unqualified"
msgstr "no calificado"
-#: network.c:436
+#: network.c:440
msgid "domains"
msgstr "dominios"
-#: network.c:439
+#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr "usando direcciones locales solo para %s %s"
-#: network.c:441
+#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "usando servidor DNS %s#%d para %s %s"
-#: network.c:444
+#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr "usando servidor DNS %s#%d"
@@ -635,7 +643,7 @@ msgstr "ninguna interface con dirección %s"
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr "debe fijarse exactamente una interface en sistemas rotos sin IP_RECVIF"
-#: dnsmasq.c:158 dnsmasq.c:536
+#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr "error DBus: %s"
@@ -644,68 +652,68 @@ msgstr "error DBus: %s"
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus no disponible: fijar HAVE_DBUS en src/config.h"
-#: dnsmasq.c:196
+#: dnsmasq.c:192
#, fuzzy, c-format
msgid "cannot create pipe: %s"
msgstr "no se puede leer %s: %s"
-#: dnsmasq.c:331
+#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr "versión %s iniciada, tamaño de caché %d"
-#: dnsmasq.c:333
+#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr "versión %s iniciada, caché deshabilitado"
-#: dnsmasq.c:335
+#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr "opciones de compilación: %s"
-#: dnsmasq.c:341
+#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr "soporte DBus habilitado: conectado a bus de sistema"
-#: dnsmasq.c:343
+#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr "soporte DBus habilitado: conección a bus pendiente"
-#: dnsmasq.c:348
+#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr ""
"fijando opción --bind-interfaces debido a limitaciones de sistema operativo"
-#: dnsmasq.c:353
+#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "advertencia: interface %s no existe actualmente"
-#: dnsmasq.c:365
+#: dnsmasq.c:370
#, 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:366
+#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, rango de IP %s -- %s, tiempo de arriendo %s"
-#: dnsmasq.c:376
+#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
-#: dnsmasq.c:378
+#: dnsmasq.c:383
msgid "running as root"
msgstr "corriendo como root"
-#: dnsmasq.c:511
+#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr "haciendo exit al haber recibido SIGTERM"
-#: dnsmasq.c:538
+#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr "conectado a DBus de sistema"
@@ -714,170 +722,179 @@ msgstr "conectado a DBus de sistema"
msgid "cannot create DHCP socket : %s"
msgstr "no se puede crear socket DHCP: %s"
-#: dhcp.c:42
+#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "no se pudo fijar opciones en socket DHCP: %s"
-#: dhcp.c:49
+#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr "no se pudo fijar SO_REUSEADDR en socket DHCP: %s"
-#: dhcp.c:59
+#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "no se pudo acoplar socket de servidor DHCP: %s"
-#: dhcp.c:72
+#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "no se puede crear socket crudo ICMP: %s."
-#: dhcp.c:84
+#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "dirección IP duplicada en directiva dhcp-config."
-#: dhcp.c:307
+#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "rango DHCP %s -- %s no coincide con máscara de red %s"
-#: dhcp.c:623
+#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr "no se pudo leer %s:%m"
-#: dhcp.c:642
+#: dhcp.c:651
#, fuzzy, c-format
msgid "bad line at %s line %d"
msgstr "nombre erróneo en %s línea %d"
-#: dhcp.c:746
+#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "dirección IP %s (%s) duplicada en directiva dhcp-config"
-#: dhcp.c:782
+#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr ""
"Ignorando nombre de host DHCP %s porque contiene una parte ilegal de dominio."
-#: lease.c:34
+#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr "no se puede abrir o crear archivo de arriendos: %s"
-#: lease.c:71
+#: lease.c:59
msgid "too many stored leases"
msgstr "demasiados arriendos almacenados"
-#: lease.c:118
+#: lease.c:175
#, fuzzy, c-format
-msgid "failed to write %s: %m (retry in %ds)"
+msgid "failed to write %s: %s (retry in %us)"
msgstr "no se pudo leer %s: %m"
-#: rfc2131.c:247
+#: lease.c:436
+#, fuzzy, c-format
+msgid "failed to execute %s: %m"
+msgstr "no se pudo accesar %s: %m"
+
+#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "ningún rango de direcciónes disponible para pedido DHCP %s %s"
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "with subnet selector"
msgstr "con selector de subred"
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "via"
msgstr "vía"
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr "deshabilitado"
-#: rfc2131.c:310 rfc2131.c:731
+#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr "dirección en uso"
-#: rfc2131.c:313
+#: rfc2131.c:312
msgid "no address configured"
msgstr "ninguna dirección configurada"
-#: rfc2131.c:326 rfc2131.c:605
+#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr "ninguna dirección disponible"
-#: rfc2131.c:333 rfc2131.c:734
+#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr "no queda ningún arriendo"
-#: rfc2131.c:336 rfc2131.c:707
+#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr "red equivocada"
-#: rfc2131.c:540
+#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr "deshabilitando dirección DHCP estática %s"
-#: rfc2131.c:558
+#: rfc2131.c:559
msgid "unknown lease"
msgstr "arriendo desconocido"
-#: rfc2131.c:567 rfc2131.c:799
+#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr "ignorado"
-#: rfc2131.c:581
+#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:590
+#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
-#: rfc2131.c:670
+#: rfc2131.c:671
msgid "wrong address"
msgstr "dirección equivocada"
-#: rfc2131.c:683
+#: rfc2131.c:684
msgid "lease not found"
msgstr "arriendo no encontrado"
-#: rfc2131.c:715
+#: rfc2131.c:716
msgid "address not available"
msgstr "dirección no disponible"
-#: rfc2131.c:724
+#: rfc2131.c:725
msgid "static lease available"
msgstr "arriendo estático disponible"
-#: rfc2131.c:728
+#: rfc2131.c:729
msgid "address reserved"
msgstr "dirección reservada"
-#: rfc2131.c:946
+#: rfc2131.c:735
+msgid "no unique-id"
+msgstr ""
+
+#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr "no se puede enviar opción DHCP %d: no queda espacio en el paquete"
-#: rfc2131.c:1247
+#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr "Más de una clase de vendedor coincide, usando %s"
#: netlink.c:51
#, fuzzy, c-format
-msgid "cannot create RTnetlink socket: %s"
+msgid "cannot create netlink socket: %s"
msgstr "no se puede acoplar socket netlink: %s"
-#: netlink.c:218
-#, c-format
-msgid "RTnetlink returns error: %s"
-msgstr ""
+#: netlink.c:224
+#, fuzzy, c-format
+msgid "netlink returns error: %s"
+msgstr "error DBus: %s"
#: dbus.c:112
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
@@ -892,12 +909,12 @@ msgstr "fijando servidores upstream desde DBus"
msgid "could not register a DBus message handler"
msgstr "no se pudo registrar un manejador de mensajes DBus"
-#: bpf.c:54
+#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "no se puede crear socket BPF DHCP: %s"
-#: bpf.c:74
+#: bpf.c:79
#, fuzzy, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "pedido DHCP por hardware no soportado tipo (%d) recibido en %s"
diff --git a/po/fi.po b/po/fi.po
index b356286..8dff2ea 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-23 19:58+0100\n"
+"POT-Creation-Date: 2006-05-06 13:18+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,17 +20,17 @@ msgstr ""
msgid "failed to load names from %s: %m"
msgstr ""
-#: cache.c:606 dhcp.c:655
+#: cache.c:606 dhcp.c:664
#, c-format
msgid "bad address at %s line %d"
msgstr ""
-#: cache.c:633 dhcp.c:669
+#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr ""
-#: cache.c:639 dhcp.c:723
+#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr ""
@@ -53,7 +53,7 @@ msgid ""
"entries."
msgstr ""
-#: util.c:153 option.c:1294
+#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr ""
@@ -71,429 +71,437 @@ msgstr ""
msgid "infinite"
msgstr ""
-#: option.c:125
+#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr ""
-#: option.c:126
+#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr ""
-#: option.c:127
+#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
-#: option.c:128
+#: option.c:129
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr ""
-#: option.c:129
+#: option.c:130
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr ""
-#: option.c:130
+#: option.c:131
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr ""
-#: option.c:131
+#: option.c:132
msgid "Do NOT fork into the background: run in debug mode."
msgstr ""
-#: option.c:132
+#: option.c:133
msgid "Do NOT forward queries with no domain part."
msgstr ""
-#: option.c:133
+#: option.c:134
msgid "Return self-pointing MX records for local hosts."
msgstr ""
-#: option.c:134
+#: option.c:135
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr ""
-#: option.c:135
+#: option.c:136
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr ""
-#: option.c:136
+#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr ""
-#: option.c:137
+#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr ""
-#: option.c:138
+#: option.c:139
msgid "Set address or hostname for a specified machine."
msgstr ""
-#: option.c:139
+#: option.c:140
#, c-format
msgid "Do NOT load %s file."
msgstr ""
-#: option.c:140
+#: option.c:141
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr ""
-#: option.c:141
+#: option.c:142
msgid "Specify interface(s) to listen on."
msgstr ""
-#: option.c:142
+#: option.c:143
msgid "Specify interface(s) NOT to listen on."
msgstr ""
-#: option.c:143
+#: option.c:144
msgid "Map DHCP user class to option set."
msgstr ""
-#: option.c:144
+#: option.c:145
msgid "Don't do DHCP for hosts in option set."
msgstr ""
-#: option.c:145
+#: option.c:146
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr ""
-#: option.c:146
+#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr ""
-#: option.c:147
+#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:148
+#: option.c:149
msgid "Return MX records for local hosts."
msgstr ""
-#: option.c:149
+#: option.c:150
msgid "Specify an MX record."
msgstr ""
-#: option.c:150
+#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr ""
-#: option.c:151
+#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
-#: option.c:152
+#: option.c:153
msgid "Do NOT cache failed search results."
msgstr ""
-#: option.c:153
+#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr ""
-#: option.c:154
+#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr ""
-#: option.c:155
+#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
-#: option.c:156
+#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
-#: option.c:157
+#: option.c:158
msgid "Log queries."
msgstr ""
-#: option.c:158
+#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr ""
-#: option.c:159
+#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr ""
-#: option.c:160
+#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr ""
-#: option.c:161
+#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
-#: option.c:162
+#: option.c:163
msgid "Never forward queries to specified domains."
msgstr ""
-#: option.c:163
+#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr ""
-#: option.c:164
+#: option.c:165
msgid "Specify default target in an MX record."
msgstr ""
-#: option.c:165
+#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
-#: option.c:166
+#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr ""
-#: option.c:167
+#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr ""
-#: option.c:168
+#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr ""
-#: option.c:169
+#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr ""
-#: option.c:170
+#: option.c:171
msgid "Specify a SRV record."
msgstr ""
-#: option.c:171
+#: option.c:172
msgid "Display this message."
msgstr ""
-#: option.c:172
+#: option.c:173
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgstr ""
-#: option.c:173
+#: option.c:174
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:174
+#: option.c:175
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
-#: option.c:175
+#: option.c:176
msgid "Specify TXT DNS record."
msgstr ""
-#: option.c:176
+#: option.c:177
msgid "Bind only to interfaces in use."
msgstr ""
-#: option.c:177
+#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr ""
-#: option.c:178
+#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr ""
-#: option.c:179
+#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr ""
-#: option.c:180
+#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr ""
-#: option.c:181
+#: option.c:182
msgid "Map MAC address (with wildcards) to option set."
msgstr ""
-#: option.c:182
+#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:396
+#: option.c:184
+msgid "Script to run on DHCP lease creation and destruction."
+msgstr ""
+
+#: option.c:398
msgid "missing \""
msgstr ""
-#: option.c:425
+#: option.c:427
msgid "bad option"
msgstr ""
-#: option.c:442
+#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: option.c:448
+#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
-#: option.c:450
+#: option.c:452
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
-#: option.c:452
+#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr ""
-#: option.c:477
+#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
-#: option.c:478
+#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
-#: option.c:479
+#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
-#: option.c:480
+#: option.c:482
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:481
+#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr ""
-#: option.c:491
+#: option.c:493
msgid "extraneous parameter"
msgstr ""
-#: option.c:499
+#: option.c:501
msgid "missing parameter"
msgstr ""
-#: option.c:516
+#: option.c:518
msgid "nested includes not allowed"
msgstr ""
-#: option.c:576
+#: option.c:578
msgid "bad MX preference"
msgstr ""
-#: option.c:585
+#: option.c:587
msgid "bad MX name"
msgstr ""
-#: option.c:603
+#: option.c:605
msgid "bad MX target"
msgstr ""
-#: option.c:802 option.c:813
+#: option.c:617
+msgid "cannot run scripts under uClinux"
+msgstr ""
+
+#: option.c:813 option.c:824
msgid "bad port"
msgstr ""
-#: option.c:955
+#: option.c:966
msgid "bad dhcp-range"
msgstr ""
-#: option.c:984
+#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1029
+#: option.c:1040
msgid "inconsistent DHCP range"
msgstr ""
-#: option.c:1214
+#: option.c:1225
msgid "bad dhcp-host"
msgstr ""
-#: option.c:1271
+#: option.c:1282
msgid "bad dhcp-option"
msgstr ""
-#: option.c:1289
+#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr ""
-#: option.c:1459
+#: option.c:1470
msgid "dhcp-option too long"
msgstr ""
-#: option.c:1656
+#: option.c:1667
msgid "bad TXT record"
msgstr ""
-#: option.c:1688
+#: option.c:1699
msgid "TXT record string too long"
msgstr ""
-#: option.c:1727
+#: option.c:1738
msgid "bad SRV record"
msgstr ""
-#: option.c:1740
+#: option.c:1751
msgid "bad SRV target"
msgstr ""
-#: option.c:1752
+#: option.c:1763
msgid "invalid port number"
msgstr ""
-#: option.c:1763
+#: option.c:1774
msgid "invalid priority"
msgstr ""
-#: option.c:1774
+#: option.c:1785
msgid "invalid weight"
msgstr ""
-#: option.c:1799
+#: option.c:1810
msgid "error"
msgstr ""
-#: option.c:1801
+#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr ""
-#: option.c:1803
+#: option.c:1814
msgid "try --help"
msgstr ""
-#: option.c:1805
+#: option.c:1816
msgid "try -w"
msgstr ""
-#: option.c:1845
+#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
-#: option.c:1874
+#: option.c:1885
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
-#: option.c:1881
+#: option.c:1892
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
-#: option.c:1884 network.c:481
+#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr ""
-#: option.c:1902
+#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr ""
@@ -507,7 +515,7 @@ msgstr ""
msgid "forwarding table overflow: check for server loops."
msgstr ""
-#: isc.c:73 dnsmasq.c:460
+#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr ""
@@ -517,7 +525,7 @@ msgstr ""
msgid "failed to load %s: %m"
msgstr ""
-#: isc.c:93 network.c:485
+#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr ""
@@ -532,59 +540,59 @@ msgstr ""
msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
msgstr ""
-#: network.c:308 dnsmasq.c:129
+#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr ""
-#: network.c:315
+#: network.c:321
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr ""
-#: network.c:333
+#: network.c:339
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr ""
-#: network.c:341
+#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr ""
-#: network.c:411
+#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
-#: network.c:420
+#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr ""
-#: network.c:434
+#: network.c:438
msgid "domain"
msgstr ""
-#: network.c:436
+#: network.c:440
msgid "unqualified"
msgstr ""
-#: network.c:436
+#: network.c:440
msgid "domains"
msgstr ""
-#: network.c:439
+#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:441
+#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:444
+#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
@@ -613,7 +621,7 @@ msgstr ""
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr ""
-#: dnsmasq.c:158 dnsmasq.c:536
+#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr ""
@@ -622,67 +630,67 @@ msgstr ""
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr ""
-#: dnsmasq.c:196
+#: dnsmasq.c:192
#, c-format
msgid "cannot create pipe: %s"
msgstr ""
-#: dnsmasq.c:331
+#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr ""
-#: dnsmasq.c:333
+#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr ""
-#: dnsmasq.c:335
+#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr ""
-#: dnsmasq.c:341
+#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr ""
-#: dnsmasq.c:343
+#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr ""
-#: dnsmasq.c:348
+#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr ""
-#: dnsmasq.c:353
+#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr ""
-#: dnsmasq.c:365
+#: dnsmasq.c:370
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr ""
-#: dnsmasq.c:366
+#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr ""
-#: dnsmasq.c:376
+#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
-#: dnsmasq.c:378
+#: dnsmasq.c:383
msgid "running as root"
msgstr ""
-#: dnsmasq.c:511
+#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr ""
-#: dnsmasq.c:538
+#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr ""
@@ -691,168 +699,177 @@ msgstr ""
msgid "cannot create DHCP socket : %s"
msgstr ""
-#: dhcp.c:42
+#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr ""
-#: dhcp.c:49
+#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr ""
-#: dhcp.c:59
+#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr ""
-#: dhcp.c:72
+#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr ""
-#: dhcp.c:84
+#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
-#: dhcp.c:307
+#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
-#: dhcp.c:623
+#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr ""
-#: dhcp.c:642
+#: dhcp.c:651
#, c-format
msgid "bad line at %s line %d"
msgstr ""
-#: dhcp.c:746
+#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
-#: dhcp.c:782
+#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr ""
-#: lease.c:34
+#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr ""
-#: lease.c:71
+#: lease.c:59
msgid "too many stored leases"
msgstr ""
-#: lease.c:118
+#: lease.c:175
#, c-format
-msgid "failed to write %s: %m (retry in %ds)"
+msgid "failed to write %s: %s (retry in %us)"
msgstr ""
-#: rfc2131.c:247
+#: lease.c:436
+#, c-format
+msgid "failed to execute %s: %m"
+msgstr ""
+
+#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr ""
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "with subnet selector"
msgstr ""
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "via"
msgstr ""
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr ""
-#: rfc2131.c:310 rfc2131.c:731
+#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr ""
-#: rfc2131.c:313
+#: rfc2131.c:312
msgid "no address configured"
msgstr ""
-#: rfc2131.c:326 rfc2131.c:605
+#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr ""
-#: rfc2131.c:333 rfc2131.c:734
+#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr ""
-#: rfc2131.c:336 rfc2131.c:707
+#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr ""
-#: rfc2131.c:540
+#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr ""
-#: rfc2131.c:558
+#: rfc2131.c:559
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:567 rfc2131.c:799
+#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr ""
-#: rfc2131.c:581
+#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:590
+#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
-#: rfc2131.c:670
+#: rfc2131.c:671
msgid "wrong address"
msgstr ""
-#: rfc2131.c:683
+#: rfc2131.c:684
msgid "lease not found"
msgstr ""
-#: rfc2131.c:715
+#: rfc2131.c:716
msgid "address not available"
msgstr ""
-#: rfc2131.c:724
+#: rfc2131.c:725
msgid "static lease available"
msgstr ""
-#: rfc2131.c:728
+#: rfc2131.c:729
msgid "address reserved"
msgstr ""
-#: rfc2131.c:946
+#: rfc2131.c:735
+msgid "no unique-id"
+msgstr ""
+
+#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:1247
+#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr ""
#: netlink.c:51
#, c-format
-msgid "cannot create RTnetlink socket: %s"
+msgid "cannot create netlink socket: %s"
msgstr ""
-#: netlink.c:218
+#: netlink.c:224
#, c-format
-msgid "RTnetlink returns error: %s"
+msgid "netlink returns error: %s"
msgstr ""
#: dbus.c:112
@@ -867,12 +884,12 @@ msgstr ""
msgid "could not register a DBus message handler"
msgstr ""
-#: bpf.c:54
+#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr ""
-#: bpf.c:74
+#: bpf.c:79
#, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr ""
diff --git a/po/fr.po b/po/fr.po
index 5c81a70..51c86b2 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-23 19:58+0100\n"
+"POT-Creation-Date: 2006-05-06 13:18+0100\n"
"PO-Revision-Date: 2005-10-02 19:05+0100\n"
"Last-Translator: Lionel Tricon <lionel.tricon@free.fr>\n"
"Language-Team: French <traduc@traduc.org>\n"
@@ -20,17 +20,17 @@ msgstr ""
msgid "failed to load names from %s: %m"
msgstr "Impossible de charger les noms a partir de %s: %m"
-#: cache.c:606 dhcp.c:655
+#: cache.c:606 dhcp.c:664
#, fuzzy, c-format
msgid "bad address at %s line %d"
msgstr "mauvais nom dans %s ligne %d"
-#: cache.c:633 dhcp.c:669
+#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr "mauvais nom dans %s ligne %d"
-#: cache.c:639 dhcp.c:723
+#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr "lecture %s - %d adresses"
@@ -57,7 +57,7 @@ msgstr ""
"taille de cache %d, %d/%d insertions dans le cache ont reutilisees des "
"entrees qui n'ont pas expirees"
-#: util.c:153 option.c:1294
+#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr "impossible d'allouer de la memoire"
@@ -75,286 +75,290 @@ msgstr "IMPOSSIBLE de demarrer"
msgid "infinite"
msgstr "illimite"
-#: option.c:125
+#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr ""
"Specifie la ou les adresse(s) locales ou le demon doit se mettre a l'ecoute."
-#: option.c:126
+#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr ""
"Retourne les adresses IP pour toutes les machines presentent dans les "
"domaines specifies"
-#: option.c:127
+#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Traduction inverse truquee pour la plage d'adresse privee RFC1918"
-#: option.c:128
+#: option.c:129
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr ""
"Traite l'adresse IP comme un domaine inexistant NXDOMAIN (contourne le "
"systemede redirection de Verisign)"
-#: option.c:129
+#: option.c:130
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Specifie la taille du cache en entree (par defaut a %s)."
-#: option.c:130
+#: option.c:131
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Specifie le nom du fichier de configuration (par defaut %s)"
-#: option.c:131
+#: option.c:132
msgid "Do NOT fork into the background: run in debug mode."
msgstr "Ne passe pas en tache de fond: demarre en mode debug"
-#: option.c:132
+#: option.c:133
msgid "Do NOT forward queries with no domain part."
msgstr "Ne retransmet pas les requetes qui n'ont pas de domaine."
-#: option.c:133
+#: option.c:134
msgid "Return self-pointing MX records for local hosts."
msgstr "Retourne les champs MX pour les machines locales."
-#: option.c:134
+#: option.c:135
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr ""
"Etend les noms uniques des machines dans /etc/hosts avec le suffixe du "
"domaine."
-#: option.c:135
+#: option.c:136
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr ""
"Ne retransmet pas les fausses requetes DNS en provenance des machines "
"Windows."
-#: option.c:136
+#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr ""
"Autorise DHCP dans la plage d'adresses donnee sur la duree de validite du "
"bail."
-#: option.c:137
+#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "On change pour ce groupe apres le demarrage (par defaut a %s)."
-#: option.c:138
+#: option.c:139
msgid "Set address or hostname for a specified machine."
msgstr "On assigne une adresse ou un nom pour une machine specifiee."
-#: option.c:139
+#: option.c:140
#, c-format
msgid "Do NOT load %s file."
msgstr "Ne charge PAS le fichier %s."
-#: option.c:140
+#: option.c:141
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Specifie un nom de fichier hosts a lire en complement de %s"
-#: option.c:141
+#: option.c:142
msgid "Specify interface(s) to listen on."
msgstr "Specifie la ou les interface(s) ou le demon doit se mettre a l'ecoute."
-#: option.c:142
+#: option.c:143
msgid "Specify interface(s) NOT to listen on."
msgstr "Specifie la ou les interface(s) que le demon ne doit PAS traiter."
-#: option.c:143
+#: option.c:144
msgid "Map DHCP user class to option set."
msgstr "Associe les 'user class' DHCP aux options."
-#: option.c:144
+#: option.c:145
msgid "Don't do DHCP for hosts in option set."
msgstr "Ne pas autoriser DHCP pour les machines enumerees dans les options."
-#: option.c:145
+#: option.c:146
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "Ne passe pas en tache de fond, ne s'execute pas en mode debug."
-#: option.c:146
+#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr "On considere que l'on est le seul serveur DHCP sur le reseau local."
-#: option.c:147
+#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Specifie ou il faut sauvegarder les baux DHCP (par defaut a %s)."
-#: option.c:148
+#: option.c:149
msgid "Return MX records for local hosts."
msgstr "Retourne les champs MX pour les machines locales."
-#: option.c:149
+#: option.c:150
msgid "Specify an MX record."
msgstr "Specifie un champ MX."
-#: option.c:150
+#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr "Specifie les options BOOTP pour le serveur DHCP."
-#: option.c:151
+#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
"Ne pas scruter le fichier %s, recharger les modifications seulement sur "
"reception du signal SIGHUP."
-#: option.c:152
+#: option.c:153
msgid "Do NOT cache failed search results."
msgstr "Ne place pas en cache le resultat des requetes qui ont echouees."
-#: option.c:153
+#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Utilise les serveurs de noms dans l'ordre donne dans %s."
-#: option.c:154
+#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr "Options supplementaires a associer aux clients DHCP."
-#: option.c:155
+#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
"Specifie le port ou il faut ecouter les requetes DNS (par defaut a 53)."
-#: option.c:156
+#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
"Taille maximale des paquets UDP supportee pour EDNS.0 (par defaut a %s)."
-#: option.c:157
+#: option.c:158
msgid "Log queries."
msgstr "Logue les requetes."
-#: option.c:158
+#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr "Force le port d'origine des requetes vers les serveurs amonts."
-#: option.c:159
+#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr "Ne pas lire le fichier resolv.conf."
-#: option.c:160
+#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Specifie le chemin pour le fichier resolv.conf (par defaut a %s)."
-#: option.c:161
+#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
"Specifie la ou les adresses des serveurs amonts avec des domaines optionels."
-#: option.c:162
+#: option.c:163
msgid "Never forward queries to specified domains."
msgstr "Ne jamais retransmettre les requetes pour les domaines specifies."
-#: option.c:163
+#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Specifie le domaine qui doit etre assigne aux baux DHCP."
-#: option.c:164
+#: option.c:165
msgid "Specify default target in an MX record."
msgstr "Speficie la cible par defaut dans un champ MX."
-#: option.c:165
+#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
"Specifie le TTL en secondes pour les reponses qui utilisent /etc/hosts."
-#: option.c:166
+#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Change pour cet utilisateur apres le demarrage (par defaut a %s)."
-#: option.c:167
+#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr "Associe les 'vendor class' DHCP aux options."
-#: option.c:168
+#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr "Affiche la version de Dnsmasq et les informations liees au copyright."
-#: option.c:169
+#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Traduit les adresses IPV4 des serveurs amonts."
-#: option.c:170
+#: option.c:171
msgid "Specify a SRV record."
msgstr " Specifie un champ SRV."
-#: option.c:171
+#: option.c:172
msgid "Display this message."
msgstr "Affiche ce message."
-#: option.c:172
+#: option.c:173
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgstr "Specifie un chemin pour le fichier PID (par defaut a %s)."
-#: option.c:173
+#: option.c:174
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Specifie le nombre maximum de baux DHCP (par defaut a %s)."
-#: option.c:174
+#: option.c:175
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
"Repond aux requetes DNS en se basant sur l'interface ou a ete envoyee la "
"requete."
-#: option.c:175
+#: option.c:176
msgid "Specify TXT DNS record."
msgstr "Specifie un champ DNS TXT"
-#: option.c:176
+#: option.c:177
msgid "Bind only to interfaces in use."
msgstr "Associe seulement aux interfaces en utilisation."
-#: option.c:177
+#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Lecture des informations de DHCP statique a partir de %s."
-#: option.c:178
+#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Autorise l'interface DBus a configurer les serveurs amonts, etc."
-#: option.c:179
+#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Ne fourni pas DHCP pour cette interface, mais seulement DNS."
-#: option.c:180
+#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr "Autorise l'allocation dynamique d'adresse pour bootp."
-#: option.c:181
+#: option.c:182
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Associe les 'vendor class' DHCP aux options."
-#: option.c:182
+#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:396
+#: option.c:184
+msgid "Script to run on DHCP lease creation and destruction."
+msgstr ""
+
+#: option.c:398
msgid "missing \""
msgstr "il manque \""
-#: option.c:425
+#: option.c:427
msgid "bad option"
msgstr "mauvaise option"
-#: option.c:442
+#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr "Ne peut pas lire %s: %s"
-#: option.c:448
+#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -363,22 +367,22 @@ msgstr ""
"Usage: dnsmasq [options]\n"
"\n"
-#: option.c:450
+#: option.c:452
#, 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:452
+#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr "Les options valides sont :\n"
-#: option.c:477
+#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Version de Dnsmasq %s %s\n"
-#: option.c:478
+#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
@@ -387,144 +391,148 @@ msgstr ""
"Options a la compilation %s\n"
"\n"
-#: option.c:479
+#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Ce logiciel est fourni sans GARANTIE aucune.\n"
-#: option.c:480
+#: option.c:482
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr "Dnsmasq est un logiciel libre, et vous etes invite a le redistribuer\n"
-#: option.c:481
+#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr ""
"sous les termes de la licence GPL (GNU General Public License), version 2.\n"
-#: option.c:491
+#: option.c:493
msgid "extraneous parameter"
msgstr "parametre supplementaire"
-#: option.c:499
+#: option.c:501
msgid "missing parameter"
msgstr "parametre manquant"
-#: option.c:516
+#: option.c:518
msgid "nested includes not allowed"
msgstr "Inclusions d'inclusions non autorisees"
-#: option.c:576
+#: option.c:578
msgid "bad MX preference"
msgstr "Mauvaise preference MX"
-#: option.c:585
+#: option.c:587
msgid "bad MX name"
msgstr "mauvais nom MX"
-#: option.c:603
+#: option.c:605
msgid "bad MX target"
msgstr "mauvaise cible MX"
-#: option.c:802 option.c:813
+#: option.c:617
+msgid "cannot run scripts under uClinux"
+msgstr ""
+
+#: option.c:813 option.c:824
msgid "bad port"
msgstr "mauvais port"
-#: option.c:955
+#: option.c:966
msgid "bad dhcp-range"
msgstr "mauvaise plage d'adresses DHCP (dhcp-range)"
-#: option.c:984
+#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1029
+#: option.c:1040
msgid "inconsistent DHCP range"
msgstr "plage d'adresses DHCP incoherente"
-#: option.c:1214
+#: option.c:1225
msgid "bad dhcp-host"
msgstr "mauvais dhcp-host"
-#: option.c:1271
+#: option.c:1282
msgid "bad dhcp-option"
msgstr "mauvais dhcp-option"
-#: option.c:1289
+#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr "mauvais domaine dans dhcp-option"
-#: option.c:1459
+#: option.c:1470
msgid "dhcp-option too long"
msgstr "dhcp-option trop long"
-#: option.c:1656
+#: option.c:1667
msgid "bad TXT record"
msgstr "mauvais champ TXT"
-#: option.c:1688
+#: option.c:1699
msgid "TXT record string too long"
msgstr "chaîne du champ TXT trop longue"
-#: option.c:1727
+#: option.c:1738
msgid "bad SRV record"
msgstr "mauvais champ SRV"
-#: option.c:1740
+#: option.c:1751
msgid "bad SRV target"
msgstr "mauvaise cible SRV"
-#: option.c:1752
+#: option.c:1763
msgid "invalid port number"
msgstr "numero de port invalide"
-#: option.c:1763
+#: option.c:1774
msgid "invalid priority"
msgstr "priorite invalide"
-#: option.c:1774
+#: option.c:1785
msgid "invalid weight"
msgstr "poids invalide"
-#: option.c:1799
+#: option.c:1810
msgid "error"
msgstr "erreur"
-#: option.c:1801
+#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr "mauvaises options en ligne de commande: %s."
-#: option.c:1803
+#: option.c:1814
msgid "try --help"
msgstr ""
-#: option.c:1805
+#: option.c:1816
msgid "try -w"
msgstr ""
-#: option.c:1845
+#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr "ne peut pas obtenir le nom de la machine: %s"
-#: option.c:1874
+#: option.c:1885
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "seul un fichier resolv.conf est autorise dans le mode no-poll"
-#: option.c:1881
+#: option.c:1892
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
"on doit avoir exactement un seul fichier resolv.conf pour y recuperer le nom "
"de domaine."
-#: option.c:1884 network.c:481
+#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr "impossible de lire %s: %m"
-#: option.c:1902
+#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr "pas de directive de recherche trouvee dans %s"
@@ -540,7 +548,7 @@ msgstr ""
"Table de stockage des requetes DNS pleine : verifiez la configuration du "
"serveur (risque de boucle recursive)."
-#: isc.c:73 dnsmasq.c:460
+#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr "impossible d'acceder a %s: %m"
@@ -550,7 +558,7 @@ msgstr "impossible d'acceder a %s: %m"
msgid "failed to load %s: %m"
msgstr "impossible de charger %s: %m"
-#: isc.c:93 network.c:485
+#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr "Lecture %s"
@@ -566,59 +574,59 @@ msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
msgstr ""
"On ignore le bail DHCP pour %s car il possede un nom de domaine illegal"
-#: network.c:308 dnsmasq.c:129
+#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr "impossible de creer une socket de lecture: %s"
-#: network.c:315
+#: network.c:321
#, 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:333
+#: network.c:339
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "impossible de lier la socket de lecture pour %s: %s"
-#: network.c:341
+#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr "impossible de lire sur la socket: %s"
-#: network.c:411
+#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "on ignore le serveur de nom %s - interface locale"
-#: network.c:420
+#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr "on ignore le serveur de nom %s - ne peut construire/lier la socket: %m"
-#: network.c:434
+#: network.c:438
msgid "domain"
msgstr "domaine"
-#: network.c:436
+#: network.c:440
msgid "unqualified"
msgstr "non-qualifie"
-#: network.c:436
+#: network.c:440
msgid "domains"
msgstr "domaines"
-#: network.c:439
+#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr "on utilise les adresses locales seulement pour %s %s"
-#: network.c:441
+#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "on utilise le serveur de nom %s#%d pour %s %s"
-#: network.c:444
+#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr "on utilise le serveur de nom %s#%d"
@@ -650,7 +658,7 @@ msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr ""
"on doit declarer exactement une interface sur les systemes sans IP_RECVIF"
-#: dnsmasq.c:158 dnsmasq.c:536
+#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr "Erreur DBus: %s"
@@ -659,68 +667,68 @@ msgstr "Erreur DBus: %s"
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus n'est pas disponible: declarez HAVE_DBUS dans src/config.h"
-#: dnsmasq.c:196
+#: dnsmasq.c:192
#, fuzzy, c-format
msgid "cannot create pipe: %s"
msgstr "Ne peut pas lire %s: %s"
-#: dnsmasq.c:331
+#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr "demarre, version %s taille de cache %d"
-#: dnsmasq.c:333
+#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr "demarre, version %s cache desactive"
-#: dnsmasq.c:335
+#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr "options a la compilation: %s"
-#: dnsmasq.c:341
+#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr "Support DBus autorise: connecte au bus systeme"
-#: dnsmasq.c:343
+#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr "Support DBus autorise: connexion au bus en suspend"
-#: dnsmasq.c:348
+#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "Active l'option --bind-interfaces a cause des limitations de l'OS"
-#: dnsmasq.c:353
+#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "Attention: l'interface %s n'existe pas actuellement"
-#: dnsmasq.c:365
+#: dnsmasq.c:370
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr ""
"DHCP, baux statiques seulement sur %.0s%s, duree de validite de bail %s"
-#: dnsmasq.c:366
+#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, plage d'adresse %s -- %s, duree de bail %s"
-#: dnsmasq.c:376
+#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
-#: dnsmasq.c:378
+#: dnsmasq.c:383
msgid "running as root"
msgstr "execute sous root"
-#: dnsmasq.c:511
+#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr "sortie sur reception du signal SIGTERM"
-#: dnsmasq.c:538
+#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr "connecte au systeme DBus"
@@ -729,173 +737,182 @@ msgstr "connecte au systeme DBus"
msgid "cannot create DHCP socket : %s"
msgstr "ne peut creer la socket DHCP : %s"
-#: dhcp.c:42
+#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "impossible d'appliquer les options sur la socket DHCP: %s"
-#: dhcp.c:49
+#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr "impossible de declarer SO_REUSEADDR sur la socket DHCP: %s"
-#: dhcp.c:59
+#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "impossible de lier la socket serveur DHCP: %s"
-#: dhcp.c:72
+#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "ne peut creer de socket en mode raw pour ICMP: %s."
-#: dhcp.c:84
+#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "adresse IP %s dupliquee dans la directive dhcp-config."
-#: dhcp.c:307
+#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
"La plage d'adresses DHCP %s -- %s n'est pas coherente avec le masque de "
"reseau %s"
-#: dhcp.c:623
+#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr "impossible de lire %s:%m"
-#: dhcp.c:642
+#: dhcp.c:651
#, fuzzy, c-format
msgid "bad line at %s line %d"
msgstr "mauvais nom dans %s ligne %d"
-#: dhcp.c:746
+#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "adresse IP %s (%s) dupliquee dans la directive dhcp-config."
-#: dhcp.c:782
+#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr ""
"On ignore le nom de machine DHCP %s parce-qu'il possede un nom de domaine "
"illegal"
-#: lease.c:34
+#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr "ne peut ouvrir ou creer des fichiers de baux: %s"
-#: lease.c:71
+#: lease.c:59
msgid "too many stored leases"
msgstr "beaucoup trop de baux enregistres"
-#: lease.c:118
+#: lease.c:175
#, fuzzy, c-format
-msgid "failed to write %s: %m (retry in %ds)"
+msgid "failed to write %s: %s (retry in %us)"
msgstr "impossible de lire %s: %m"
-#: rfc2131.c:247
+#: lease.c:436
+#, fuzzy, c-format
+msgid "failed to execute %s: %m"
+msgstr "impossible d'acceder a %s: %m"
+
+#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "pas de plage d'adresse disponible pour la requete DHCP %s %s"
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "with subnet selector"
msgstr "avec selecteur de sous-reseau"
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "via"
msgstr "par l'intermediaire de"
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr "desactive"
-#: rfc2131.c:310 rfc2131.c:731
+#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr "adresse deja utilisee"
-#: rfc2131.c:313
+#: rfc2131.c:312
msgid "no address configured"
msgstr "pas d'adresse configuree"
-#: rfc2131.c:326 rfc2131.c:605
+#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr "pas d'adresse disponible"
-#: rfc2131.c:333 rfc2131.c:734
+#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr "aucun baux laisses"
-#: rfc2131.c:336 rfc2131.c:707
+#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr "mauvais reseau"
-#: rfc2131.c:540
+#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr "desactive l'adresse statique DHCP %s"
-#: rfc2131.c:558
+#: rfc2131.c:559
msgid "unknown lease"
msgstr "bail inconnu"
-#: rfc2131.c:567 rfc2131.c:799
+#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr "ignore"
-#: rfc2131.c:581
+#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:590
+#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
-#: rfc2131.c:670
+#: rfc2131.c:671
msgid "wrong address"
msgstr "mauvaise adresse"
-#: rfc2131.c:683
+#: rfc2131.c:684
msgid "lease not found"
msgstr "bail non trouve"
-#: rfc2131.c:715
+#: rfc2131.c:716
msgid "address not available"
msgstr "adresse non disponible"
-#: rfc2131.c:724
+#: rfc2131.c:725
msgid "static lease available"
msgstr "bail statique disponible"
-#: rfc2131.c:728
+#: rfc2131.c:729
msgid "address reserved"
msgstr "adresse reservee"
-#: rfc2131.c:946
+#: rfc2131.c:735
+msgid "no unique-id"
+msgstr ""
+
+#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:1247
+#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr "Plus d'une seule classe de fournisseur correspond, on utilise %s"
#: netlink.c:51
#, fuzzy, c-format
-msgid "cannot create RTnetlink socket: %s"
+msgid "cannot create netlink socket: %s"
msgstr "ne peux lier une socket netlink: %s"
-#: netlink.c:218
-#, c-format
-msgid "RTnetlink returns error: %s"
-msgstr ""
+#: netlink.c:224
+#, fuzzy, c-format
+msgid "netlink returns error: %s"
+msgstr "Erreur DBus: %s"
#: dbus.c:112
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
@@ -910,12 +927,12 @@ msgstr "configuration des serveurs amonts a partir de DBus"
msgid "could not register a DBus message handler"
msgstr "ne peut enregistrer une routine de traitement des messages DBus"
-#: bpf.c:54
+#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "impossible de creer une socket BPF pour DHCP: %s"
-#: bpf.c:74
+#: bpf.c:79
#, fuzzy, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "requete DHCP pour un type de materiel non supporte (%d) recue sur %s"
diff --git a/po/id.po b/po/id.po
index 1a7da48..424a171 100644
--- a/po/id.po
+++ b/po/id.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-23 19:58+0100\n"
+"POT-Creation-Date: 2006-05-06 13:18+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,19 +21,19 @@ msgid "failed to load names from %s: %m"
msgstr "gagal memuat nama-nama dari %s: %m"
# OK
-#: cache.c:606 dhcp.c:655
+#: cache.c:606 dhcp.c:664
#, fuzzy, c-format
msgid "bad address at %s line %d"
msgstr "kesalahan nama pada %s baris %d"
# OK
-#: cache.c:633 dhcp.c:669
+#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr "kesalahan nama pada %s baris %d"
# OK
-#: cache.c:639 dhcp.c:723
+#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr "membaca %s - %d alamat"
@@ -63,7 +63,7 @@ msgstr ""
"ukuran cache %d, %d/%d penyisipan cache menimpa cache yang belum kadaluwarsa"
# OK
-#: util.c:153 option.c:1294
+#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr "tidak bisa mendapatkan memory"
@@ -85,330 +85,334 @@ msgid "infinite"
msgstr "tak terbatas"
# OK
-#: option.c:125
+#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr "Tentukan alamat lokal untuk mendengarkan."
# OK
-#: option.c:126
+#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Menghasilkan ipaddr untuk semua host dalam domain yang dipilih."
# OK
-#: option.c:127
+#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Fake pencarian balik untuk alamat private sesuai dengan RFC1918."
# OK
-#: option.c:128
+#: option.c:129
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Perlakukan ipaddr sebagai NXDOMAIN (mengalahkan wildcard Verisign)."
# OK
-#: option.c:129
+#: option.c:130
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Tentukan ukuran cache, dalam jumlah isian (default %s)."
# OK
-#: option.c:130
+#: option.c:131
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Tentukan file konfigurasi (default %s)."
# OK
-#: option.c:131
+#: option.c:132
msgid "Do NOT fork into the background: run in debug mode."
msgstr "JANGAN berjalan di background: berjalan dalam modus debug."
# OK
-#: option.c:132
+#: option.c:133
msgid "Do NOT forward queries with no domain part."
msgstr "JANGAN teruskan permintaan tanpa bagian domain."
# OK
-#: option.c:133
+#: option.c:134
msgid "Return self-pointing MX records for local hosts."
msgstr "Mengembalikan record MX untuk diri sendiri host-host lokal."
# OK
-#: option.c:134
+#: option.c:135
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Melengkapi nama-nama di /etc/hosts dengan akhiran domain."
# OK
-#: option.c:135
+#: option.c:136
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Jangan meneruskan permintaan DNS spurious dari host-host Windows."
# OK
-#: option.c:136
+#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr "Bolehkan DHCP dalam jangkauan yang diberikan dengan durasi lease."
# OK
-#: option.c:137
+#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Ubah ke group ini setelah mulai (default %s)."
# OK
-#: option.c:138
+#: option.c:139
msgid "Set address or hostname for a specified machine."
msgstr "Setel alamat atau nama host untuk mesin yang disebutkan."
# OK
-#: option.c:139
+#: option.c:140
#, c-format
msgid "Do NOT load %s file."
msgstr "JANGAN muat file %s."
# OK
-#: option.c:140
+#: option.c:141
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr ""
"Sebutkan sebuah file hosts yang harus dibaca sebagai tambahan untuk %s."
# OK
-#: option.c:141
+#: option.c:142
msgid "Specify interface(s) to listen on."
msgstr "Sebutkan antarmuka untuk mendengarkan."
# OK
-#: option.c:142
+#: option.c:143
msgid "Specify interface(s) NOT to listen on."
msgstr "Sebutkan antarmuka untuk TIDAK mendengarkan."
# OK
-#: option.c:143
+#: option.c:144
msgid "Map DHCP user class to option set."
msgstr "Petakan kelas user DHCP ke setelan yang dipilih."
# OK
-#: option.c:144
+#: option.c:145
msgid "Don't do DHCP for hosts in option set."
msgstr "Jangan menggunakan DHCP untuk host-host yang dipilih."
# OK
-#: option.c:145
+#: option.c:146
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "JANGAN berjalan di background, jangan berjalan dalam modus debug."
# OK
-#: option.c:146
+#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr "Berpikir bahwa kita satu-satunya DHCP server dalam jaringan."
# OK
-#: option.c:147
+#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Sebutkan lokasi untuk menyimpan lease DHCP (default %s)."
# OK
-#: option.c:148
+#: option.c:149
msgid "Return MX records for local hosts."
msgstr "Kembalikan rekord MX untuk host-host lokal."
# OK
-#: option.c:149
+#: option.c:150
msgid "Specify an MX record."
msgstr "Sebutkan sebuah rekord MX."
# OK
-#: option.c:150
+#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr "Sebutkan pilihan-pilihan BOOTP untuk DHCP server."
-#: option.c:151
+#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "Jangan kumpulkan file %s, muat kembali saat SIGHUP."
# OK
-#: option.c:152
+#: option.c:153
msgid "Do NOT cache failed search results."
msgstr "JANGAN menyimpan hasil pencarian yang gagal."
# OK
-#: option.c:153
+#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Gunakan secara ketat namaserver yang disebutkan sesuai urutan di %s."
# OK
-#: option.c:154
+#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr ""
"Setel pilihan-pilihan tambahan yang akan disetel untuk klien-klien DHCP."
# OK
-#: option.c:155
+#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Sebutkan port untuk mendengarkan permintaan DNS (default port 53)."
# OK
-#: option.c:156
+#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Ukuran maksimum paket UDP yang didukung untuk EDNS.0 (default %s)."
# OK
-#: option.c:157
+#: option.c:158
msgid "Log queries."
msgstr "Permintaan log."
# OK
-#: option.c:158
+#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr "Paksa port asal untuk permintaan ke atas."
# OK
-#: option.c:159
+#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr "JANGAN baca resolv.conf."
# OK
-#: option.c:160
+#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Sebutkan path ke resolv.conf (default %s)."
# OK
-#: option.c:161
+#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
"Sebutkan alamat-alamat server di atas, boleh dilengkapi dengan nama domain."
# OK
-#: option.c:162
+#: option.c:163
msgid "Never forward queries to specified domains."
msgstr "JANGAN pernah meneruskan permintaan ke domain yang disebutkan."
# OK
-#: option.c:163
+#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Sebutkan domain yang digunakan dalam lease DHCP."
# OK
-#: option.c:164
+#: option.c:165
msgid "Specify default target in an MX record."
msgstr "Sebutkan tujuan default dalam rekord MX."
# OK
-#: option.c:165
+#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr "Sebutkan time-to-live dalam detik untuk jawaban dari /etc/hosts."
# OK
-#: option.c:166
+#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Ubah ke user ini setelah mulai. (default %s)."
# OK
-#: option.c:167
+#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr "Memetakan kelas vendor DHCP ke daftar pilihan."
# OK
-#: option.c:168
+#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr "Menampilkan versi dan informasi hak cipta dnsmasq."
# OK
-#: option.c:169
+#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Terjemahkan alamat-alamat IPv4 dari server-server di atas."
# OK
-#: option.c:170
+#: option.c:171
msgid "Specify a SRV record."
msgstr "Sebutkan rekord SRV."
# OK
-#: option.c:171
+#: option.c:172
msgid "Display this message."
msgstr "Menampilkan pesan ini."
# OK
-#: option.c:172
+#: option.c:173
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgstr "Sebutkan path file PID. (default %s)."
# OK
-#: option.c:173
+#: option.c:174
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)."
# OK
-#: option.c:174
+#: option.c:175
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
"Jawab permintaan DNS berdasarkan antarmuka dimana permintaan dikirimkan."
# OK
-#: option.c:175
+#: option.c:176
msgid "Specify TXT DNS record."
msgstr "Sebutkan rekord TXT DNS."
# OK
-#: option.c:176
+#: option.c:177
msgid "Bind only to interfaces in use."
msgstr "Hanya kaitkan ke antarmuka yang sedang digunakan saja."
# OK
-#: option.c:177
+#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Baca informasi statik host DHCP dari %s."
# OK
-#: option.c:178
+#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Mungkinkan antar muka DBus untuk menyetel server-server di atas, dsb."
# OK
-#: option.c:179
+#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "JANGAN menyediakan DHCP pada antarmuka ini, hanya menyediakan DNS."
# OK
-#: option.c:180
+#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr "Mungkinkan alokasi alamat dinamis untuk bootp."
# OK
-#: option.c:181
+#: option.c:182
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Memetakan kelas vendor DHCP ke daftar pilihan."
-#: option.c:182
+#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
+#: option.c:184
+msgid "Script to run on DHCP lease creation and destruction."
+msgstr ""
+
# OK
-#: option.c:396
+#: option.c:398
msgid "missing \""
msgstr "kurang \""
# OK
-#: option.c:425
+#: option.c:427
msgid "bad option"
msgstr "pilihan salah"
# OK
-#: option.c:442
+#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr "tidak bisa membaca %s: %s"
# OK
-#: option.c:448
+#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -418,25 +422,25 @@ msgstr ""
"\n"
# OK
-#: option.c:450
+#: option.c:452
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Gunakan pilihan pendek saja pada perintah baris.\n"
# OK
-#: option.c:452
+#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr "Pilihan yang boleh adalah:\n"
# OK
-#: option.c:477
+#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq versi %s %s\n"
# OK
-#: option.c:478
+#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
@@ -446,13 +450,13 @@ msgstr ""
"\n"
# OK
-#: option.c:479
+#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Perangkat lunak ini tersedia TANPA JAMINAN SEDIKITPUN.\n"
# OK
-#: option.c:480
+#: option.c:482
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
@@ -460,158 +464,162 @@ msgstr ""
"membagikannya\n"
# OK
-#: option.c:481
+#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr "dengan aturan GNU General Public License, versi 2.\n"
# OK
-#: option.c:491
+#: option.c:493
msgid "extraneous parameter"
msgstr "parameter berlebihan"
# OK
-#: option.c:499
+#: option.c:501
msgid "missing parameter"
msgstr "parameter kurang"
# OK
-#: option.c:516
+#: option.c:518
msgid "nested includes not allowed"
msgstr "includes bersarang tidak diijinkan"
# OK
-#: option.c:576
+#: option.c:578
msgid "bad MX preference"
msgstr "kesukaan MX salah"
# OK
-#: option.c:585
+#: option.c:587
msgid "bad MX name"
msgstr "nama MX salah"
# OK
-#: option.c:603
+#: option.c:605
msgid "bad MX target"
msgstr "target MX salah"
+#: option.c:617
+msgid "cannot run scripts under uClinux"
+msgstr ""
+
# OK
-#: option.c:802 option.c:813
+#: option.c:813 option.c:824
msgid "bad port"
msgstr "port salah"
# OK
-#: option.c:955
+#: option.c:966
msgid "bad dhcp-range"
msgstr "dhcp-range salah"
-#: option.c:984
+#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
# OK
-#: option.c:1029
+#: option.c:1040
msgid "inconsistent DHCP range"
msgstr "jangkauan DHCP tidak konsisten"
# OK
-#: option.c:1214
+#: option.c:1225
msgid "bad dhcp-host"
msgstr "dhcp-host salah"
# OK
-#: option.c:1271
+#: option.c:1282
msgid "bad dhcp-option"
msgstr "dhcp-option salah"
# OK
-#: option.c:1289
+#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr "domain dalam dhcp-option salah"
# OK
-#: option.c:1459
+#: option.c:1470
msgid "dhcp-option too long"
msgstr "dhcp-option terlalu panjang"
# OK
-#: option.c:1656
+#: option.c:1667
msgid "bad TXT record"
msgstr "rekord TXT salah"
# OK
-#: option.c:1688
+#: option.c:1699
msgid "TXT record string too long"
msgstr "string rekord TXT terlalu panjang"
# OK
-#: option.c:1727
+#: option.c:1738
msgid "bad SRV record"
msgstr "rekord SRV salah"
# OK
-#: option.c:1740
+#: option.c:1751
msgid "bad SRV target"
msgstr "target SRV salah"
# OK
-#: option.c:1752
+#: option.c:1763
msgid "invalid port number"
msgstr "nomor port tidak benar"
# OK
-#: option.c:1763
+#: option.c:1774
msgid "invalid priority"
msgstr "prioritas tidak benar"
# OK
-#: option.c:1774
+#: option.c:1785
msgid "invalid weight"
msgstr "weight tidak benar"
# OK
-#: option.c:1799
+#: option.c:1810
msgid "error"
msgstr "kesalahan"
# OK
-#: option.c:1801
+#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr "pilihan baris perintah salah: %s."
-#: option.c:1803
+#: option.c:1814
msgid "try --help"
msgstr ""
-#: option.c:1805
+#: option.c:1816
msgid "try -w"
msgstr ""
# OK
-#: option.c:1845
+#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr "tidak bisa mendapatkan host-name: %s"
# OK
-#: option.c:1874
+#: option.c:1885
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:1881
+#: option.c:1892
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:1884 network.c:481
+#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr "gagal membaca %s: %m"
# OK
-#: option.c:1902
+#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr "tidak ditemukan direktif search di %s"
@@ -628,7 +636,7 @@ msgid "forwarding table overflow: check for server loops."
msgstr "meneruskan tabel overflow: memeriksa apakah terjadi loop server."
# OK
-#: isc.c:73 dnsmasq.c:460
+#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr "gagal mengakses %s: %m"
@@ -640,7 +648,7 @@ msgid "failed to load %s: %m"
msgstr "gagal memuat %S: %m"
# OK
-#: isc.c:93 network.c:485
+#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr "membaca %s"
@@ -659,69 +667,69 @@ msgstr ""
"Mengabaikan lease DHCP untuk %s sebab terdapat bagian domain yang tidak sah"
# OK
-#: network.c:308 dnsmasq.c:129
+#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr "gagal membuat socket: %s "
# OK
-#: network.c:315
+#: network.c:321
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr "gagal menyetel IPV6 pada socket: %s"
-#: network.c:333
+#: network.c:339
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "gagal mem-bind socket untuk mendengarkan %s: %s"
# OK
-#: network.c:341
+#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr "gagal mendengarkan di socket: %s"
# OK
-#: network.c:411
+#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "mengabaikan nameserver %s - antarmuka lokal"
# OK
-#: network.c:420
+#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr "mengabaikan nameserver %s - tak dapat membuat/mem-bind socket: %m"
# OK
-#: network.c:434
+#: network.c:438
msgid "domain"
msgstr "domain"
# OK
-#: network.c:436
+#: network.c:440
msgid "unqualified"
msgstr "tidak memenuhi syarat"
# OK
-#: network.c:436
+#: network.c:440
msgid "domains"
msgstr "domain-domain"
# OK
-#: network.c:439
+#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr "menggunakan alamat lokal saja untuk %s %s"
# OK
-#: network.c:441
+#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "menggunakan nameserver %s#%d untuk %s %s"
# OK
-#: network.c:444
+#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr "menggunakan nameserver %s#%d"
@@ -760,7 +768,7 @@ msgstr ""
"IP_RECVIF"
# OK
-#: dnsmasq.c:158 dnsmasq.c:536
+#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr "DBus error: %s"
@@ -771,78 +779,78 @@ msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h"
# OK
-#: dnsmasq.c:196
+#: dnsmasq.c:192
#, fuzzy, c-format
msgid "cannot create pipe: %s"
msgstr "tidak bisa membaca %s: %s"
# OK
-#: dnsmasq.c:331
+#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr "dimulai, versi %s ukuran cache %d"
# OK
-#: dnsmasq.c:333
+#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr "dimulai, cache versi %s di disable"
# OK
-#: dnsmasq.c:335
+#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr "pilihan-pilihan saat kompilasi: %s"
# OK
-#: dnsmasq.c:341
+#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr "dukungan DBus dimungkinkan: terkoneksi pada bus sistem"
# OK
-#: dnsmasq.c:343
+#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr "dukungan DBus dimungkinkan: koneksi bus ditunda"
# OK
-#: dnsmasq.c:348
+#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "setelan opsi --bind-interfaces disebabkan keterbatasan OS"
# OK
-#: dnsmasq.c:353
+#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "peringatan: antarmuka %s tidak ada"
# OK
-#: dnsmasq.c:365
+#: dnsmasq.c:370
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "DHCP, lease static pada %.0s%s, waktu lease %s"
# OK
-#: dnsmasq.c:366
+#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, jangkaun IP %s -- %s, waktu lease %s"
-#: dnsmasq.c:376
+#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
# OK
-#: dnsmasq.c:378
+#: dnsmasq.c:383
msgid "running as root"
msgstr "berjalan menggunakan root"
-#: dnsmasq.c:511
+#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr "keluar karena menerima SIGTERM"
# OK
-#: dnsmasq.c:538
+#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr "terhubung ke sistem DBus"
@@ -853,187 +861,197 @@ msgid "cannot create DHCP socket : %s"
msgstr "tidak bisa membuat socket DHCP: %s"
# OK
-#: dhcp.c:42
+#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "gagal menyetel opsi pada socket DHCP: %s"
# OK
-#: dhcp.c:49
+#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr "gagal menyetel SO_REUSEADDR pada socket DHCP: %s"
# OK
-#: dhcp.c:59
+#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "gagal mem-bind socket server DHCP: %s"
# OK
-#: dhcp.c:72
+#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "tidak dapat membuat socket ICMP raw: %s"
# OK
-#: dhcp.c:84
+#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "alamat IP kembar %s dalam direktif dhcp-config"
# OK
-#: dhcp.c:307
+#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "jangkauan DHCP %s -- %s tidak konsisten dengan netmask %s"
# OK
-#: dhcp.c:623
+#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr "gagal membaca %s:%m"
# OK
-#: dhcp.c:642
+#: dhcp.c:651
#, fuzzy, c-format
msgid "bad line at %s line %d"
msgstr "kesalahan nama pada %s baris %d"
# OK
-#: dhcp.c:746
+#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "alamat IP kembar %s (%s) dalam direktif dhcp-config"
# OK
-#: dhcp.c:782
+#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr ""
"Mengabaikan nama host DHCP %s sebab memiliki bagian domain yang tidak sah"
# OK
-#: lease.c:34
+#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr "tidak dapat membuka atau membuat file lease: %s"
# OK
-#: lease.c:71
+#: lease.c:59
msgid "too many stored leases"
msgstr "terlalu banyak lease yang disimpan"
# OK
-#: lease.c:118
+#: lease.c:175
#, fuzzy, c-format
-msgid "failed to write %s: %m (retry in %ds)"
+msgid "failed to write %s: %s (retry in %us)"
msgstr "gagal membaca %s: %m"
# OK
-#: rfc2131.c:247
+#: lease.c:436
+#, fuzzy, c-format
+msgid "failed to execute %s: %m"
+msgstr "gagal mengakses %s: %m"
+
+# OK
+#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "tidak ada alamat yang bisa dipakai untuk permintaan DHCP %s %s"
# OK
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "with subnet selector"
msgstr "dengan pemilih subnet"
# OK
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "via"
msgstr "lewat"
# OK
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr "di disable"
# OK
-#: rfc2131.c:310 rfc2131.c:731
+#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr "alamat telah digunakan"
# OK
-#: rfc2131.c:313
+#: rfc2131.c:312
msgid "no address configured"
msgstr "tak ada alamat yang disetel"
# OK
-#: rfc2131.c:326 rfc2131.c:605
+#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr "tak ada alamat yang tersedia"
# OK
-#: rfc2131.c:333 rfc2131.c:734
+#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr "tak ada lease yang tersisa"
# OK
-#: rfc2131.c:336 rfc2131.c:707
+#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr "jaringan yang salah"
# OK
-#: rfc2131.c:540
+#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr "men-disable alamat statik DHCP %s"
# OK
-#: rfc2131.c:558
+#: rfc2131.c:559
msgid "unknown lease"
msgstr "lease tidak diketahui"
# OK
-#: rfc2131.c:567 rfc2131.c:799
+#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr "diabaikan"
-#: rfc2131.c:581
+#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:590
+#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
# OK
-#: rfc2131.c:670
+#: rfc2131.c:671
msgid "wrong address"
msgstr "alamat salah"
# OK
-#: rfc2131.c:683
+#: rfc2131.c:684
msgid "lease not found"
msgstr "lease tak ditemukan"
# OK
-#: rfc2131.c:715
+#: rfc2131.c:716
msgid "address not available"
msgstr "alamat tak tersedia"
# OK
-#: rfc2131.c:724
+#: rfc2131.c:725
msgid "static lease available"
msgstr "lease statik tak tersedia"
# OK
-#: rfc2131.c:728
+#: rfc2131.c:729
msgid "address reserved"
msgstr "alamat telah dipesan"
-#: rfc2131.c:946
+#: rfc2131.c:735
+msgid "no unique-id"
+msgstr ""
+
+#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr ""
# OK
-#: rfc2131.c:1247
+#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr "Lebih dari satu kelas vendor yang sesuai, menggunakan %s"
@@ -1041,13 +1059,14 @@ msgstr "Lebih dari satu kelas vendor yang sesuai, menggunakan %s"
# OK
#: netlink.c:51
#, fuzzy, c-format
-msgid "cannot create RTnetlink socket: %s"
+msgid "cannot create netlink socket: %s"
msgstr "tidak bisa mem-bind netlink socket: %s"
-#: netlink.c:218
-#, c-format
-msgid "RTnetlink returns error: %s"
-msgstr ""
+# OK
+#: netlink.c:224
+#, fuzzy, c-format
+msgid "netlink returns error: %s"
+msgstr "DBus error: %s"
# OK
#: dbus.c:112
@@ -1067,13 +1086,13 @@ msgid "could not register a DBus message handler"
msgstr "tidak bisa mendaftar sebuah DBus message handler"
# OK
-#: bpf.c:54
+#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "tidak dapat membuat socket DHCP BPF: %s"
# OK
-#: bpf.c:74
+#: bpf.c:79
#, fuzzy, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr ""
diff --git a/po/no.po b/po/no.po
index 881f6ca..4ca4a26 100644
--- a/po/no.po
+++ b/po/no.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.25\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-23 19:58+0100\n"
+"POT-Creation-Date: 2006-05-06 13:18+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,17 +22,17 @@ msgstr ""
msgid "failed to load names from %s: %m"
msgstr "feilet å laste navn fra %s: %m"
-#: cache.c:606 dhcp.c:655
+#: cache.c:606 dhcp.c:664
#, c-format
msgid "bad address at %s line %d"
msgstr "dårlig adresse ved %s linje %d"
-#: cache.c:633 dhcp.c:669
+#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr "dårlig navn ved %s linje %d"
-#: cache.c:639 dhcp.c:723
+#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr "les %s - %d adresser"
@@ -59,7 +59,7 @@ msgstr ""
"mellomlager størrelse %d, %d/%d mellomlager innsettinger re-bruker "
"mellomlager plasser som ikke er utløpt"
-#: util.c:153 option.c:1294
+#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr "kunne ikke få minne"
@@ -77,267 +77,271 @@ msgstr "FEILET å starte opp"
msgid "infinite"
msgstr "uendelig"
-#: option.c:125
+#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr "Spesifiser lokal(e) adresse(r) å lytte på."
-#: option.c:126
+#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Returner ipaddr for alle verter i det spesifiserte domenet."
-#: option.c:127
+#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Forfalsk revers oppslag for RFC1918 private adresse områder."
-#: option.c:128
+#: option.c:129
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Behandle ipaddr som NXDOMAIN (omgår Verisign wildcard)."
-#: option.c:129
+#: option.c:130
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Spesifiser størrelsen på mellomlager plassene (standard er %s)."
-#: option.c:130
+#: option.c:131
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Spesifiser konfigurasjonsfil (standard er %s)."
-#: option.c:131
+#: option.c:132
msgid "Do NOT fork into the background: run in debug mode."
msgstr "IKKE legg (fork) som bakgrunnsprosess: kjør i debug modus."
-#: option.c:132
+#: option.c:133
msgid "Do NOT forward queries with no domain part."
msgstr "IKKE videresend oppslag som mangler domene del."
-#: option.c:133
+#: option.c:134
msgid "Return self-pointing MX records for local hosts."
msgstr "Returner selv-pekende MX post for lokale verter."
-#: option.c:134
+#: option.c:135
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Utvid enkle navn i /etc/hosts med domene-suffiks."
-#: option.c:135
+#: option.c:136
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Ikke videresend falske/uekte DNS forespørsler fra Windows verter."
-#: option.c:136
+#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr "Aktiver DHCP i det gitte området med leie varighet"
-#: option.c:137
+#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Skift til denne gruppen etter oppstart (standard er %s)."
-#: option.c:138
+#: option.c:139
msgid "Set address or hostname for a specified machine."
msgstr "Sett adresse eller vertsnavn for en spesifikk maskin."
-#: option.c:139
+#: option.c:140
#, c-format
msgid "Do NOT load %s file."
msgstr "IKKE last %s filen."
-#: option.c:140
+#: option.c:141
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Spesifiser en verts (hosts) fil som skal leses i tilleg til %s."
-#: option.c:141
+#: option.c:142
msgid "Specify interface(s) to listen on."
msgstr "Spesifiser nettverkskort det skal lyttes på."
-#: option.c:142
+#: option.c:143
msgid "Specify interface(s) NOT to listen on."
msgstr "Spesifiser nettverkskort det IKKE skal lyttes på."
-#: option.c:143
+#: option.c:144
msgid "Map DHCP user class to option set."
msgstr "Map DHCP bruker klasse til opsjon sett."
-#: option.c:144
+#: option.c:145
msgid "Don't do DHCP for hosts in option set."
msgstr "Ikke utfør DHCP for klienter i opsjon sett."
-#: option.c:145
+#: option.c:146
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "IKKE last (fork) som bakgrunnsprosess, IKKE kjør i debug modus."
-#: option.c:146
+#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr "Anta at vi er den eneste DHCP tjeneren på det lokale nettverket."
-#: option.c:147
+#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Spesifiser hvor DHCP leiene skal lagres (standard er %s)."
-#: option.c:148
+#: option.c:149
msgid "Return MX records for local hosts."
msgstr "Returner MX records for lokale verter."
-#: option.c:149
+#: option.c:150
msgid "Specify an MX record."
msgstr "Spesifiser en MX post."
-#: option.c:150
+#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr "Spesifiser BOOTP opsjoner til DHCP tjener."
-#: option.c:151
+#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "IKKE spør (poll) %s fil, les på nytt kun ved SIGHUP"
-#: option.c:152
+#: option.c:153
msgid "Do NOT cache failed search results."
msgstr "IKKE mellomlagre søkeresultater som feiler."
-#: option.c:153
+#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Bruk navnetjenere kun som bestemt i rekkefølgen gitt i %s."
-#: option.c:154
+#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr "Sett ekstra opsjoner som skal fordeles til DHCP klientene."
-#: option.c:155
+#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Spesifiser lytteport for DNS oppslag (standard er 53)."
-#: option.c:156
+#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Maksimal støttet UDP pakkestørrelse for EDNS.0 (standard er %s)."
-#: option.c:157
+#: option.c:158
msgid "Log queries."
msgstr "Logg oppslag."
-#: option.c:158
+#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr "Tving bruk av opprinnelig port for oppstrøms oppslag."
-#: option.c:159
+#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr "IKKE les resolv.conf."
-#: option.c:160
+#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Spesifiser stien til resolv.conf (standard er %s)."
-#: option.c:161
+#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Spesifiser adressen(e) til oppstrøms tjenere med valgfrie domener."
-#: option.c:162
+#: option.c:163
msgid "Never forward queries to specified domains."
msgstr "Aldri videresend oppslag til spesifiserte domener."
-#: option.c:163
+#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Spesifiser domenet som skal tildeles i DHCP leien."
-#: option.c:164
+#: option.c:165
msgid "Specify default target in an MX record."
msgstr "Spesifiser default mål i en MX post."
-#: option.c:165
+#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr "Spesifiser time-to-live i sekunder for svar fra /etc/hosts."
-#: option.c:166
+#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Skift til denne bruker etter oppstart (standard er %s)."
-#: option.c:167
+#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr "Map DHCP produsent klasse til opsjon sett."
-#: option.c:168
+#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr "Vis dnsmasq versjon og copyright informasjon."
-#: option.c:169
+#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Oversett IPv4 adresser fra oppstrøms tjenere."
-#: option.c:170
+#: option.c:171
msgid "Specify a SRV record."
msgstr "Spesifiser en SRV post."
-#: option.c:171
+#: option.c:172
msgid "Display this message."
msgstr "Vis denne meldingen."
-#: option.c:172
+#: option.c:173
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgstr "Spesifiser stien til PID fil. (standard er %s)."
-#: option.c:173
+#: option.c:174
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
-#: option.c:174
+#: option.c:175
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr "Svar DNS oppslag basert på nettverkskortet oppslaget ble sendt til."
-#: option.c:175
+#: option.c:176
msgid "Specify TXT DNS record."
msgstr "Spesifiser TXT DNS post."
-#: option.c:176
+#: option.c:177
msgid "Bind only to interfaces in use."
msgstr "Bind kun til nettverkskort som er i bruk."
-#: option.c:177
+#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Les DHCP statisk vert informasjon fra %s."
-#: option.c:178
+#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Aktiver DBus interface for å sette oppstrøms tjenere, osv."
-#: option.c:179
+#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Ikke lever DHCP på dette nettverkskortet, kun lever DNS."
-#: option.c:180
+#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr "Aktiver dynamisk adresse allokering for bootp."
-#: option.c:181
+#: option.c:182
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Map DHCP produsent klasse til opsjon sett."
-#: option.c:182
+#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:396
+#: option.c:184
+msgid "Script to run on DHCP lease creation and destruction."
+msgstr ""
+
+#: option.c:398
msgid "missing \""
msgstr "mangler \""
-#: option.c:425
+#: option.c:427
msgid "bad option"
msgstr "dårlig opsjon"
-#: option.c:442
+#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr "kan ikke lese %s: %s"
-#: option.c:448
+#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -346,22 +350,22 @@ msgstr ""
"Bruk: dnsmasq [opsjoner]\n"
"\n"
-#: option.c:450
+#: option.c:452
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Bruk korte opsjoner kun på kommandolinjen.\n"
-#: option.c:452
+#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr "Gyldige opsjoner er :\n"
-#: option.c:477
+#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq versjon %s %s\n"
-#: option.c:478
+#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
@@ -370,141 +374,145 @@ msgstr ""
"Kompileringsopsjoner %s\n"
"\n"
-#: option.c:479
+#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Denne programvaren kommer med ABSOLUTT INGEN GARANTI.\n"
-#: option.c:480
+#: option.c:482
#, 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:481
+#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr "under vilkårene gitt i GNU General Public License, versjon 2.\n"
-#: option.c:491
+#: option.c:493
msgid "extraneous parameter"
msgstr "overflødig parameter"
-#: option.c:499
+#: option.c:501
msgid "missing parameter"
msgstr "mangler parameter"
-#: option.c:516
+#: option.c:518
msgid "nested includes not allowed"
msgstr "nøstede inkluderinger er ikke tillatt"
-#: option.c:576
+#: option.c:578
msgid "bad MX preference"
msgstr "dårlig MX preferanse"
-#: option.c:585
+#: option.c:587
msgid "bad MX name"
msgstr "dårlig MX navn"
-#: option.c:603
+#: option.c:605
msgid "bad MX target"
msgstr "dårlig MX mål"
-#: option.c:802 option.c:813
+#: option.c:617
+msgid "cannot run scripts under uClinux"
+msgstr ""
+
+#: option.c:813 option.c:824
msgid "bad port"
msgstr "dårlig port"
-#: option.c:955
+#: option.c:966
msgid "bad dhcp-range"
msgstr "dårlig dhcp-område"
-#: option.c:984
+#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1029
+#: option.c:1040
msgid "inconsistent DHCP range"
msgstr "ikke konsistent DHCP område"
-#: option.c:1214
+#: option.c:1225
msgid "bad dhcp-host"
msgstr "dårlig dhcp-vert"
-#: option.c:1271
+#: option.c:1282
msgid "bad dhcp-option"
msgstr "dårlig dhcp-opsjon"
-#: option.c:1289
+#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr "dårlig domene i dhcp-opsjon"
-#: option.c:1459
+#: option.c:1470
msgid "dhcp-option too long"
msgstr "dhcp-opsjon for lang"
-#: option.c:1656
+#: option.c:1667
msgid "bad TXT record"
msgstr "dårlig TXT post"
-#: option.c:1688
+#: option.c:1699
msgid "TXT record string too long"
msgstr "TXT post streng for lang"
-#: option.c:1727
+#: option.c:1738
msgid "bad SRV record"
msgstr "dårlig SRV post"
-#: option.c:1740
+#: option.c:1751
msgid "bad SRV target"
msgstr "dårlig SRV mål"
-#: option.c:1752
+#: option.c:1763
msgid "invalid port number"
msgstr "ugyldig portnummer"
-#: option.c:1763
+#: option.c:1774
msgid "invalid priority"
msgstr "ugyldig prioritet"
-#: option.c:1774
+#: option.c:1785
msgid "invalid weight"
msgstr "ugyldig vekt"
-#: option.c:1799
+#: option.c:1810
msgid "error"
msgstr "feil"
-#: option.c:1801
+#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr "dårlige kommandlinje opsjoner: %s."
-#: option.c:1803
+#: option.c:1814
msgid "try --help"
msgstr ""
-#: option.c:1805
+#: option.c:1816
msgid "try -w"
msgstr ""
-#: option.c:1845
+#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr "klarer ikke å få vertsnavn: %s"
-#: option.c:1874
+#: option.c:1885
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "kun en resolv.conf fil tillat i no-poll modus."
-#: option.c:1881
+#: option.c:1892
msgid "must have exactly one resolv.conf to read domain from."
msgstr "må ha nøyaktig en resolv.conf å lese domene fra."
-#: option.c:1884 network.c:481
+#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr "feilet å lese %s: %m"
-#: option.c:1902
+#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr "intet søke direktiv funnet i %s"
@@ -518,7 +526,7 @@ msgstr "navnetjener %s nektet å gjøre et rekursivt oppslag"
msgid "forwarding table overflow: check for server loops."
msgstr "fremsendelse (forwarding) tabell overflyt: sjekk etter tjener løkker."
-#: isc.c:73 dnsmasq.c:460
+#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr "feilet å få tilgang til %s: %m"
@@ -528,7 +536,7 @@ msgstr "feilet å få tilgang til %s: %m"
msgid "failed to load %s: %m"
msgstr "feilet å laste %s: %m"
-#: isc.c:93 network.c:485
+#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr "leser %s"
@@ -543,59 +551,59 @@ msgstr "dårlig navn i %s"
msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
msgstr "Ignorerer DHCP leie for %s siden den har en ulovlig domene del"
-#: network.c:308 dnsmasq.c:129
+#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr "feilet å lage lytte socket: %s"
-#: network.c:315
+#: network.c:321
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr "feilet å sette IPv6 opsjoner på lytte socket: %s"
-#: network.c:333
+#: network.c:339
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "feilet å binde lytte socket for %s: %s"
-#: network.c:341
+#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr "feilet å lytte på socket: %s"
-#: network.c:411
+#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorerer navnetjener %s - lokal tilknytning"
-#: network.c:420
+#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr "ignorerer navnetjener %s - kan ikke lage/dinde socket: %m"
-#: network.c:434
+#: network.c:438
msgid "domain"
msgstr "domene"
-#: network.c:436
+#: network.c:440
msgid "unqualified"
msgstr "ikke kvalifisert"
-#: network.c:436
+#: network.c:440
msgid "domains"
msgstr "domener"
-#: network.c:439
+#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr "benytter lokale adresser kun for %s %s"
-#: network.c:441
+#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "benytter navnetjener %s#%d for %s %s"
-#: network.c:444
+#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr "benytter navnetjener %s#%d"
@@ -625,7 +633,7 @@ msgstr "ingen tilknytning (interface) med adresse %s"
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr "må sette nøyaktig et interface på ødelagte systemer uten IP_RECVIF"
-#: dnsmasq.c:158 dnsmasq.c:536
+#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr "DBus feil: %s"
@@ -634,67 +642,67 @@ msgstr "DBus feil: %s"
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h"
-#: dnsmasq.c:196
+#: dnsmasq.c:192
#, fuzzy, c-format
msgid "cannot create pipe: %s"
msgstr "kan ikke lese %s: %s"
-#: dnsmasq.c:331
+#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr "startet, versjon %s mellomlager størrelse %d"
-#: dnsmasq.c:333
+#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr "startet, versjon %s mellomlager deaktivert"
-#: dnsmasq.c:335
+#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr "kompilerings opsjoner: %s"
-#: dnsmasq.c:341
+#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr "DBus støtte aktivert: koblet til system buss"
-#: dnsmasq.c:343
+#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr "DBus støtte aktivert: avventer buss tilkobling"
-#: dnsmasq.c:348
+#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "setter --bind-interfaces opsjon på grunn av OS begrensninger"
-#: dnsmasq.c:353
+#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "advarsel: nettverkskort %s eksisterer ikke for tiden"
-#: dnsmasq.c:365
+#: dnsmasq.c:370
#, 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:366
+#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, IP område %s -- %s, leie tid %s"
-#: dnsmasq.c:376
+#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
-#: dnsmasq.c:378
+#: dnsmasq.c:383
msgid "running as root"
msgstr "kjører som rot (root)"
-#: dnsmasq.c:511
+#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr "avslutter etter mottak av SIGTERM"
-#: dnsmasq.c:538
+#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr "tilkoblet til system DBus"
@@ -703,169 +711,178 @@ msgstr "tilkoblet til system DBus"
msgid "cannot create DHCP socket : %s"
msgstr "kan ikke lage DHCP socket : %s"
-#: dhcp.c:42
+#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "feilet å sette opsjoner på DHCP socket: %s"
-#: dhcp.c:49
+#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr "feilet å sette SO_REUSEADDR på DHCP socket: %s"
-#: dhcp.c:59
+#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "feilet å binde DHCP tjener socket: %s"
-#: dhcp.c:72
+#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "kan ikke lage ICMP raw socket: %s"
-#: dhcp.c:84
+#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
-#: dhcp.c:307
+#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "DHCP område %s -- %s er ikke konsistent med nettmaske %s"
-#: dhcp.c:623
+#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr "feilet å lese %s:%m"
-#: dhcp.c:642
+#: dhcp.c:651
#, c-format
msgid "bad line at %s line %d"
msgstr "dårlig linje ved %s linje %d"
-#: dhcp.c:746
+#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "dubliserte IP adresser i %s (%s) i dhcp-config direktiv"
-#: dhcp.c:782
+#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr "Ignorerer DHCP verts navn %s på grunn av ulovlig domene del"
-#: lease.c:34
+#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr "kan ikke åpne eller lage leie fil: %s"
-#: lease.c:71
+#: lease.c:59
msgid "too many stored leases"
msgstr "for mange lagrede leier"
-#: lease.c:118
+#: lease.c:175
#, fuzzy, c-format
-msgid "failed to write %s: %m (retry in %ds)"
+msgid "failed to write %s: %s (retry in %us)"
msgstr "feilet å lese %s: %m"
-#: rfc2131.c:247
+#: lease.c:436
+#, fuzzy, c-format
+msgid "failed to execute %s: %m"
+msgstr "feilet å få tilgang til %s: %m"
+
+#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "ingen adresse område tilgjengelig for DHCP krav %s %s"
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "with subnet selector"
msgstr "med subnet velger"
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "via"
msgstr "via"
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr "deaktivert"
-#: rfc2131.c:310 rfc2131.c:731
+#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr "adresse i bruk"
-#: rfc2131.c:313
+#: rfc2131.c:312
msgid "no address configured"
msgstr "ingen adresse konfigurert"
-#: rfc2131.c:326 rfc2131.c:605
+#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr "ingen adresse tilgjengelig"
-#: rfc2131.c:333 rfc2131.c:734
+#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr "ingen leier igjen"
-#: rfc2131.c:336 rfc2131.c:707
+#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr "galt nettverk"
-#: rfc2131.c:540
+#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr "deaktiverer DHCP statisk adresse %s"
-#: rfc2131.c:558
+#: rfc2131.c:559
msgid "unknown lease"
msgstr "ukjent leie"
-#: rfc2131.c:567 rfc2131.c:799
+#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr "oversett"
-#: rfc2131.c:581
+#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:590
+#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
-#: rfc2131.c:670
+#: rfc2131.c:671
msgid "wrong address"
msgstr "gal adresse"
-#: rfc2131.c:683
+#: rfc2131.c:684
msgid "lease not found"
msgstr "leie ikke funnet"
-#: rfc2131.c:715
+#: rfc2131.c:716
msgid "address not available"
msgstr "adresse ikke tilgjengelig"
-#: rfc2131.c:724
+#: rfc2131.c:725
msgid "static lease available"
msgstr "statisk leie tilgjengelig"
-#: rfc2131.c:728
+#: rfc2131.c:729
msgid "address reserved"
msgstr "adresse reservert"
-#: rfc2131.c:946
+#: rfc2131.c:735
+msgid "no unique-id"
+msgstr ""
+
+#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr "kan ikke sende DHCP opsjon %d: ikke mer plass i pakken"
-#: rfc2131.c:1247
+#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr "Mer enn en produsent klasse som passer, bruker %s"
#: netlink.c:51
#, fuzzy, c-format
-msgid "cannot create RTnetlink socket: %s"
+msgid "cannot create netlink socket: %s"
msgstr "kan ikke binde netlink socket: %s"
-#: netlink.c:218
-#, c-format
-msgid "RTnetlink returns error: %s"
-msgstr ""
+#: netlink.c:224
+#, fuzzy, c-format
+msgid "netlink returns error: %s"
+msgstr "DBus feil: %s"
#: dbus.c:112
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
@@ -879,12 +896,12 @@ msgstr "setter oppstrøms tjener fra DBus"
msgid "could not register a DBus message handler"
msgstr "kunne ikke registrere en DBus meldingshåndterer"
-#: bpf.c:54
+#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "kan ikke lage DHCP BPF socket: %s"
-#: bpf.c:74
+#: bpf.c:79
#, fuzzy, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "DHCP krav for ikke støttet maskinvare type (%d) mottatt på %s"
diff --git a/po/pl.po b/po/pl.po
index 03fdf39..935e758 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-23 19:58+0100\n"
+"POT-Creation-Date: 2006-05-06 13:18+0100\n"
"PO-Revision-Date: 2005-10-04 19:17+0100\n"
"Last-Translator: Tomasz Sochañski <nerdhero@gmail.com>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -21,17 +21,17 @@ msgstr ""
msgid "failed to load names from %s: %m"
msgstr "b³±d ³adowania nazw z %s: %m"
-#: cache.c:606 dhcp.c:655
+#: cache.c:606 dhcp.c:664
#, fuzzy, c-format
msgid "bad address at %s line %d"
msgstr "b³êdna nazwa w %s, linia %d"
-#: cache.c:633 dhcp.c:669
+#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr "b³êdna nazwa w %s, linia %d"
-#: cache.c:639 dhcp.c:723
+#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr "przeczytano %s - %d adresów"
@@ -57,7 +57,7 @@ msgid ""
msgstr ""
"wielko¶æ cache %d, %d/%d wpisów cache u¿yto ponownie z niewygas³ych wpisów"
-#: util.c:153 option.c:1294
+#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr "nie mo¿na pobraæ pamiêci"
@@ -75,278 +75,282 @@ msgstr "B£¡D uruchomienia"
msgid "infinite"
msgstr "nieskoñczona"
-#: option.c:125
+#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr "Adres(y) lokalne do nas³uchiwania."
-#: option.c:126
+#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Zwracanie adresu IP dla wszystkich hostów w podanych domenach."
-#: option.c:127
+#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Symulacja reverse lookups dla adresów prywatnych opisanych w RFC1918."
-#: option.c:128
+#: option.c:129
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Adres IP traktowany jak NXDOMAIN"
-#: option.c:129
+#: option.c:130
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Wielko¶æ pamiêci cache we wpisach (domy¶lna: %s)"
-#: option.c:130
+#: option.c:131
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "¦cie¿ka do pliku konfiguracyjnego (domy¶lna: %s)"
-#: option.c:131
+#: option.c:132
msgid "Do NOT fork into the background: run in debug mode."
msgstr "NIE twórz procesu potomnego w tle: dzia³anie w trybie debugowania."
-#: option.c:132
+#: option.c:133
msgid "Do NOT forward queries with no domain part."
msgstr "Wy³±czenie przekazywania zapytañ bez czê¶ci domenowej."
-#: option.c:133
+#: option.c:134
msgid "Return self-pointing MX records for local hosts."
msgstr "Zwracanie samowskazuj±cego rekordu MX dla lokalnych hostów."
-#: option.c:134
+#: option.c:135
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Rozwijanie prostych nazw z /etc/hosts przyrostkiem domenowym."
-#: option.c:135
+#: option.c:136
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Wy³±czenie przekazywania pozornych zapytañ DNS z komputerów Windows"
-#: option.c:136
+#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr "Enable DHCP w zakresie okre¶lonym czasem dzier¿awy."
-#: option.c:137
+#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Po starcie zmiana grupy procesu na podan± (domy¶lnie: %s)."
-#: option.c:138
+#: option.c:139
msgid "Set address or hostname for a specified machine."
msgstr "Ustawienie adresu lub nazwy hosta dla okre¶lonej maszyny."
-#: option.c:139
+#: option.c:140
#, c-format
msgid "Do NOT load %s file."
msgstr "Ignorowanie pliku %s."
-#: option.c:140
+#: option.c:141
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Dodatkowy plik hostów poza %s."
-#: option.c:141
+#: option.c:142
msgid "Specify interface(s) to listen on."
msgstr "Interfejs(y) do nas³uchiwania."
-#: option.c:142
+#: option.c:143
msgid "Specify interface(s) NOT to listen on."
msgstr "Interfejs(y), na których nie nas³uchiwaæ."
-#: option.c:143
+#: option.c:144
msgid "Map DHCP user class to option set."
msgstr "W³±czenie mapowania klasy u¿ytkownika DHCP do option set."
-#: option.c:144
+#: option.c:145
msgid "Don't do DHCP for hosts in option set."
msgstr ""
"Wy³±czenie odpowiadania na ¿adania DHCP hostów okre¶lonych w option set"
-#: option.c:145
+#: option.c:146
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr ""
"Wy³±czenie tworzenia procesu potomnego w tle, wy³±czenie dzia³ania w trybie "
"debug."
-#: option.c:146
+#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr "Za³o¿enie, ¿e jeste¶my jedynym serwerem DHCP w sieci lokalnej."
-#: option.c:147
+#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "¦cie¿ka przechowywania pliku dzier¿aw DHCP (domy¶lna: %s)"
-#: option.c:148
+#: option.c:149
msgid "Return MX records for local hosts."
msgstr "W³±czenie zwracania rekord MX dla hostów lokalnych."
-#: option.c:149
+#: option.c:150
msgid "Specify an MX record."
msgstr "Specyfikacja rekordu MX."
-#: option.c:150
+#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr "Okre¶lenie opcji BOOTP serwera DHCP."
-#: option.c:151
+#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
"Wy³aczenie analizy pliku %s, ponownie ³adowanie tylko po otrzymaniu sygna³u "
"HUP"
-#: option.c:152
+#: option.c:153
msgid "Do NOT cache failed search results."
msgstr ""
"Wy³±czenie zapisywania w pamiêci podrêcznej nieudanych wyników wyszukiwania."
-#: option.c:153
+#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "W³±czenie u¿ywania serwerów nazw w kolejno¶ci podanej w %s."
-#: option.c:154
+#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr "Dodatkowe opcje ustawieñ dla klientów DHCP."
-#: option.c:155
+#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Port nas³uchiwania zapytañ DNS (domy¶lnie: 53)."
-#: option.c:156
+#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Maksymalna obs³ugiwana wielko¶æ pakietu EDNS.0 (domy¶lnie: %s)."
-#: option.c:157
+#: option.c:158
msgid "Log queries."
msgstr "Zapytania zapisywane w pliku log."
-#: option.c:158
+#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr ""
-#: option.c:159
+#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr "Wy³±czenie czytania pliku resolv.conf"
-#: option.c:160
+#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Podaj ¶cie¿kê do pliku resolv.conf (domy¶lnie: %s)."
-#: option.c:161
+#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
-#: option.c:162
+#: option.c:163
msgid "Never forward queries to specified domains."
msgstr "Wy³±czenie przekazywania zapytañ do okre¶lonych domen."
-#: option.c:163
+#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Nazwa domeny, która bêdzie przypisana w dzier¿awach DHCP."
-#: option.c:164
+#: option.c:165
msgid "Specify default target in an MX record."
msgstr "Okre¶lenie domy¶lnego celu w rekordzie MX."
-#: option.c:165
+#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
"Okre¶lenie czasu wa¿no¶ci (time-to-live) w sekundach odpowiedzi branych z /"
"etc/hosts."
-#: option.c:166
+#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Po starcie zmiana u¿ytkownika procesu na podanego. (domy¶lnie: %s)."
-#: option.c:167
+#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr "Mapowanie nazwy dystrybutora DHCP do ustawieñ opcji."
-#: option.c:168
+#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr ""
"W³±czenie pokazywania wersji dnsmasq i informacji o ochronie praw autorskich."
-#: option.c:169
+#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr ""
-#: option.c:170
+#: option.c:171
msgid "Specify a SRV record."
msgstr "Okre¶lenie rekordu SRV."
-#: option.c:171
+#: option.c:172
msgid "Display this message."
msgstr "Wy¶wietlenie tych informacji."
-#: option.c:172
+#: option.c:173
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgstr "Okre¶lenie ¶cie¿ki do pliku PID. (domy¶lnie: %s)."
-#: option.c:173
+#: option.c:174
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Maksymalna liczba dzier¿aw DHCP. (domy¶lnie: %s)."
-#: option.c:174
+#: option.c:175
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
"Odpowiedzi na zapytania DNS uzale¿nione od interfejsu, który odebra³ "
"zapytanie."
-#: option.c:175
+#: option.c:176
msgid "Specify TXT DNS record."
msgstr "Rekord TXT DNS."
-#: option.c:176
+#: option.c:177
msgid "Bind only to interfaces in use."
msgstr "W³±czenie nas³uchiwania tylko na u¿ywanych interfejsach."
-#: option.c:177
+#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Statycznych informacji DHCP hosta z pliku %s."
-#: option.c:178
+#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr ""
-#: option.c:179
+#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Wy³±czenie DHCP na tym interfejsie, w³±czenie tylko DNS."
-#: option.c:180
+#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr "W³±czenie automatycznej alokacji adresu dla BOOTP."
-#: option.c:181
+#: option.c:182
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Mapowanie nazwy dystrybutora DHCP do ustawieñ opcji."
-#: option.c:182
+#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:396
+#: option.c:184
+msgid "Script to run on DHCP lease creation and destruction."
+msgstr ""
+
+#: option.c:398
msgid "missing \""
msgstr "brakuje \""
-#: option.c:425
+#: option.c:427
msgid "bad option"
msgstr "nieprawid³owa opcja"
-#: option.c:442
+#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr "b³±d odczytu z %s: %s"
-#: option.c:448
+#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -355,22 +359,22 @@ msgstr ""
"U¿ycie: dnsmasq [opcje]\n"
"\n"
-#: option.c:450
+#: option.c:452
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Tylko krótkie opcje w linii komend.\n"
-#: option.c:452
+#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr "Obs³ugiwane opcje:\n"
-#: option.c:477
+#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq, wersja %s %s\n"
-#: option.c:478
+#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
@@ -379,141 +383,145 @@ msgstr ""
"Wkompilowane opcje %s\n"
"\n"
-#: option.c:479
+#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Oprogramowanie to nie zawiera ¿adnych gwarancji.\n"
-#: option.c:480
+#: option.c:482
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr "Dnsmasq jest wolnym oprogramowaniem, mo¿esz je rozprowadzaæ\n"
-#: option.c:481
+#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr "na warunkach okre¶lonych w GNU General Public Licence, wersja 2.\n"
-#: option.c:491
+#: option.c:493
msgid "extraneous parameter"
msgstr "dodatkowy parametr"
-#: option.c:499
+#: option.c:501
msgid "missing parameter"
msgstr "brak parametru"
-#: option.c:516
+#: option.c:518
msgid "nested includes not allowed"
msgstr "zagnie¿d¿one do³±czanie plików jest niedozwolone"
-#: option.c:576
+#: option.c:578
msgid "bad MX preference"
msgstr ""
-#: option.c:585
+#: option.c:587
msgid "bad MX name"
msgstr "b³êdna nazwa MX"
-#: option.c:603
+#: option.c:605
msgid "bad MX target"
msgstr "b³êdny cel MX"
-#: option.c:802 option.c:813
+#: option.c:617
+msgid "cannot run scripts under uClinux"
+msgstr ""
+
+#: option.c:813 option.c:824
msgid "bad port"
msgstr "nieprawid³owy port"
-#: option.c:955
+#: option.c:966
msgid "bad dhcp-range"
msgstr "nieprawid³owy zakres dhcp-range"
-#: option.c:984
+#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1029
+#: option.c:1040
msgid "inconsistent DHCP range"
msgstr "niespójny zakres DHCP"
-#: option.c:1214
+#: option.c:1225
msgid "bad dhcp-host"
msgstr "b³±d w dhcp-host"
-#: option.c:1271
+#: option.c:1282
msgid "bad dhcp-option"
msgstr "b³±d w dhcp-option"
-#: option.c:1289
+#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr "nieprawid³owa nazwa domeny w dhcp-option"
-#: option.c:1459
+#: option.c:1470
msgid "dhcp-option too long"
msgstr "zbyt d³uga nazwa w dhcp-option"
-#: option.c:1656
+#: option.c:1667
msgid "bad TXT record"
msgstr "nieprawid³owy rekord TX"
-#: option.c:1688
+#: option.c:1699
msgid "TXT record string too long"
msgstr "zbyt d³ugi rekord TXT"
-#: option.c:1727
+#: option.c:1738
msgid "bad SRV record"
msgstr "b³±d w rekordzie SRV"
-#: option.c:1740
+#: option.c:1751
msgid "bad SRV target"
msgstr "nieprawid³owy cel SRV"
-#: option.c:1752
+#: option.c:1763
msgid "invalid port number"
msgstr "nieprawid³owy port"
-#: option.c:1763
+#: option.c:1774
msgid "invalid priority"
msgstr "nieprawid³owy priorytet"
-#: option.c:1774
+#: option.c:1785
msgid "invalid weight"
msgstr "nieprawid³owe znaczenie"
-#: option.c:1799
+#: option.c:1810
msgid "error"
msgstr "b³±d"
-#: option.c:1801
+#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr "nieprawid³owa opcja linii komend: %s."
-#: option.c:1803
+#: option.c:1814
msgid "try --help"
msgstr ""
-#: option.c:1805
+#: option.c:1816
msgid "try -w"
msgstr ""
-#: option.c:1845
+#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr "nie mo¿na pobraæ nazwy hosta: %s"
-#: option.c:1874
+#: option.c:1885
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "tylko jeden plik resolv.conf jest dopuszczany w trybie no-poll."
-#: option.c:1881
+#: option.c:1892
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:1884 network.c:481
+#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr "b³±d w odczycie %s: %m"
-#: option.c:1902
+#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr "brak wytycznych wyszukiwania w %s"
@@ -528,7 +536,7 @@ msgid "forwarding table overflow: check for server loops."
msgstr ""
"przekroczenie zakresu tablicy przekazywania: sprawd¼ zapêtlenie serwera."
-#: isc.c:73 dnsmasq.c:460
+#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr "b³±d w dostêpie do %s: %m"
@@ -538,7 +546,7 @@ msgstr "b³±d w dostêpie do %s: %m"
msgid "failed to load %s: %m"
msgstr "b³±d ³adowania %s: %m"
-#: isc.c:93 network.c:485
+#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr "czytanie %s"
@@ -555,59 +563,59 @@ msgstr ""
"Ignorujê dzier¿awy DHCP dla %s poniewa¿ zawieraj± nieprawid³ow± czê¶æ "
"domenow±"
-#: network.c:308 dnsmasq.c:129
+#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr "b³±d podczas tworzenia gniazda: %s"
-#: network.c:315
+#: network.c:321
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr "b³±d ustawienia opcji IPV6 na nas³uchuj±cym gnie¼dzie: %s"
-#: network.c:333
+#: network.c:339
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "b³±d pod³±czenia nas³uchuj±cego gniazda dla %s: %s"
-#: network.c:341
+#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr "b³±d w³±czenia nas³uchiwania gniazda: %s"
-#: network.c:411
+#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorowanie serwera nazw %s - interfejs lokalny"
-#: network.c:420
+#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr "ignorowanie serwera nazw %s - nie mo¿na utworzyæ/dowi±zaæ gniazda: %m"
-#: network.c:434
+#: network.c:438
msgid "domain"
msgstr "domena"
-#: network.c:436
+#: network.c:440
msgid "unqualified"
msgstr "niekwalifikowany(a/e)"
-#: network.c:436
+#: network.c:440
msgid "domains"
msgstr "domeny"
-#: network.c:439
+#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr "w³±czenie u¿ywania lokalnych adresów tylko dla %s %s"
-#: network.c:441
+#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "u¿ywany serwer nazw: %s#%d dla %s %s"
-#: network.c:444
+#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr "u¿ywany serwer nazw %s#%d"
@@ -638,7 +646,7 @@ msgstr "brak interfejsu z adresem %s"
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr "musisz ustawiæ dok³adnie jeden interfejs w systemach bez IP_RECVIF"
-#: dnsmasq.c:158 dnsmasq.c:536
+#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr "b³±d DBus: %s"
@@ -647,67 +655,67 @@ msgstr "b³±d DBus: %s"
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus jest niedostêpny: ustaw HAVE_DBUS w src/config.h"
-#: dnsmasq.c:196
+#: dnsmasq.c:192
#, fuzzy, c-format
msgid "cannot create pipe: %s"
msgstr "b³±d odczytu z %s: %s"
-#: dnsmasq.c:331
+#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr "uruchomiony, wersja %s wielko¶æ cache %d"
-#: dnsmasq.c:333
+#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr "uruchomiony, wersja %s cache wy³±czony"
-#: dnsmasq.c:335
+#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr "opcje kompilacji: %s"
-#: dnsmasq.c:341
+#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr "obs³uga DBus w³±czona: pod³±czono do szyny systemowej"
-#: dnsmasq.c:343
+#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr "obs³uga DBus w³±czona: pod³±czanie do szyny systemowej w toku"
-#: dnsmasq.c:348
+#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "ustawiam opcjê --bind-interfaces z powodu limitów systemu operacyjnego"
-#: dnsmasq.c:353
+#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "ostrze¿enie: interfejs %s obecnie nie istnieje"
-#: dnsmasq.c:365
+#: dnsmasq.c:370
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "DHCP, statyczne dzier¿awy tylko na %.0s%s, czas dzier¿awy %s"
-#: dnsmasq.c:366
+#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, zakres IP %s -- %s, czas dzier¿awy %s"
-#: dnsmasq.c:376
+#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
-#: dnsmasq.c:378
+#: dnsmasq.c:383
msgid "running as root"
msgstr "pracuje z uprawnieniami u¿ytkownika root"
-#: dnsmasq.c:511
+#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr "wy³±czenie po otrzymaniu sygnalu SIGTERM"
-#: dnsmasq.c:538
+#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr "po³±czono do systemowego DBus"
@@ -716,170 +724,179 @@ msgstr "po³±czono do systemowego DBus"
msgid "cannot create DHCP socket : %s"
msgstr "nie mo¿na utworzyæ gniazda DHCP : %s"
-#: dhcp.c:42
+#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "b³±d ustawienia opcji gniazda DHCP: %s"
-#: dhcp.c:49
+#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr "b³±d ustawienia SO_REUSEADDR gniazda DHCP: %s"
-#: dhcp.c:59
+#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "b³±d pod³±czenia gniazda serwera DHCP: %s"
-#: dhcp.c:72
+#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "b³±d utworzenia surowego gniazda ICMP: %s."
-#: dhcp.c:84
+#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "powtórzenie adresu IP %s w opcji dhcp-config"
-#: dhcp.c:307
+#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "zakres DHCP %s -- %s jest niespójny z mask± sieciow± %s"
-#: dhcp.c:623
+#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr "b³±d odczytu %s:%m"
-#: dhcp.c:642
+#: dhcp.c:651
#, fuzzy, c-format
msgid "bad line at %s line %d"
msgstr "b³êdna nazwa w %s, linia %d"
-#: dhcp.c:746
+#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "powtórzenie adresu IP %s (%s) w opcji dhcp-config"
-#: dhcp.c:782
+#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr ""
"Ignorujê nazwê hosta DHCP %s, poniewa¿ posiada nieprawid³ow± czê¶æ domenow±"
-#: lease.c:34
+#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr "b³±d otwarcia lub utworzenia pliku dzier¿aw: %s"
-#: lease.c:71
+#: lease.c:59
msgid "too many stored leases"
msgstr "zbyt du¿a ilo¶æ zapisanych dzier¿aw"
-#: lease.c:118
+#: lease.c:175
#, fuzzy, c-format
-msgid "failed to write %s: %m (retry in %ds)"
+msgid "failed to write %s: %s (retry in %us)"
msgstr "b³±d w odczycie %s: %m"
-#: rfc2131.c:247
+#: lease.c:436
+#, fuzzy, c-format
+msgid "failed to execute %s: %m"
+msgstr "b³±d w dostêpie do %s: %m"
+
+#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "¿aden zakres adresowy nie jest dostêpny dla ¿adania DHCP %s %s"
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "with subnet selector"
msgstr "z selekcj± podsieci"
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "via"
msgstr "przez"
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr "wy³±czony(a)"
-#: rfc2131.c:310 rfc2131.c:731
+#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr "adres w u¿yciu"
-#: rfc2131.c:313
+#: rfc2131.c:312
msgid "no address configured"
msgstr "brak skonfigurowanego adresu"
-#: rfc2131.c:326 rfc2131.c:605
+#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr "brak dostêpnego adresu"
-#: rfc2131.c:333 rfc2131.c:734
+#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr "brak wolnych dzier¿aw"
-#: rfc2131.c:336 rfc2131.c:707
+#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr "nieprawid³owa sieæ"
-#: rfc2131.c:540
+#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr "wy³±czanie statycznego adresu DHCP %s"
-#: rfc2131.c:558
+#: rfc2131.c:559
msgid "unknown lease"
msgstr "nieznana dzier¿awa"
-#: rfc2131.c:567 rfc2131.c:799
+#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr "ignorujê"
-#: rfc2131.c:581
+#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:590
+#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
-#: rfc2131.c:670
+#: rfc2131.c:671
msgid "wrong address"
msgstr "b³êdny adres"
-#: rfc2131.c:683
+#: rfc2131.c:684
msgid "lease not found"
msgstr "dzier¿awa nie znaleziona"
-#: rfc2131.c:715
+#: rfc2131.c:716
msgid "address not available"
msgstr "adres niedostêpny"
-#: rfc2131.c:724
+#: rfc2131.c:725
msgid "static lease available"
msgstr "dostêpna statyczna dzier¿awa"
-#: rfc2131.c:728
+#: rfc2131.c:729
msgid "address reserved"
msgstr "adres zarezerwowany"
-#: rfc2131.c:946
+#: rfc2131.c:735
+msgid "no unique-id"
+msgstr ""
+
+#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:1247
+#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr "Wiêcej ni¿ jeden dystrybutor pasuj±cy, u¿ywam %s"
#: netlink.c:51
#, fuzzy, c-format
-msgid "cannot create RTnetlink socket: %s"
+msgid "cannot create netlink socket: %s"
msgstr "nie mo¿na pod³±czyæ gniazda netlink: %s"
-#: netlink.c:218
-#, c-format
-msgid "RTnetlink returns error: %s"
-msgstr ""
+#: netlink.c:224
+#, fuzzy, c-format
+msgid "netlink returns error: %s"
+msgstr "b³±d DBus: %s"
#: dbus.c:112
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
@@ -893,12 +910,12 @@ msgstr ""
msgid "could not register a DBus message handler"
msgstr "nie mo¿na zarejestrowaæ uchwytu wiadomo¶ci DBus"
-#: bpf.c:54
+#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "b³±d utworzenia gniazda DHCP BPF: %s"
-#: bpf.c:74
+#: bpf.c:79
#, fuzzy, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "¿±danie DHCP nieobs³ugiwanego typu sprzêtowego (%d) otrzymane na %s"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 3930955..9374bc9 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.26\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-23 19:58+0100\n"
+"POT-Creation-Date: 2006-05-06 13:18+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,17 +20,17 @@ msgstr ""
msgid "failed to load names from %s: %m"
msgstr ""
-#: cache.c:606 dhcp.c:655
+#: cache.c:606 dhcp.c:664
#, c-format
msgid "bad address at %s line %d"
msgstr ""
-#: cache.c:633 dhcp.c:669
+#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr ""
-#: cache.c:639 dhcp.c:723
+#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr ""
@@ -53,7 +53,7 @@ msgid ""
"entries."
msgstr ""
-#: util.c:153 option.c:1294
+#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr ""
@@ -71,429 +71,437 @@ msgstr ""
msgid "infinite"
msgstr ""
-#: option.c:125
+#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr ""
-#: option.c:126
+#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr ""
-#: option.c:127
+#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
-#: option.c:128
+#: option.c:129
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr ""
-#: option.c:129
+#: option.c:130
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr ""
-#: option.c:130
+#: option.c:131
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr ""
-#: option.c:131
+#: option.c:132
msgid "Do NOT fork into the background: run in debug mode."
msgstr ""
-#: option.c:132
+#: option.c:133
msgid "Do NOT forward queries with no domain part."
msgstr ""
-#: option.c:133
+#: option.c:134
msgid "Return self-pointing MX records for local hosts."
msgstr ""
-#: option.c:134
+#: option.c:135
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr ""
-#: option.c:135
+#: option.c:136
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr ""
-#: option.c:136
+#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr ""
-#: option.c:137
+#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr ""
-#: option.c:138
+#: option.c:139
msgid "Set address or hostname for a specified machine."
msgstr ""
-#: option.c:139
+#: option.c:140
#, c-format
msgid "Do NOT load %s file."
msgstr ""
-#: option.c:140
+#: option.c:141
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr ""
-#: option.c:141
+#: option.c:142
msgid "Specify interface(s) to listen on."
msgstr ""
-#: option.c:142
+#: option.c:143
msgid "Specify interface(s) NOT to listen on."
msgstr ""
-#: option.c:143
+#: option.c:144
msgid "Map DHCP user class to option set."
msgstr ""
-#: option.c:144
+#: option.c:145
msgid "Don't do DHCP for hosts in option set."
msgstr ""
-#: option.c:145
+#: option.c:146
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr ""
-#: option.c:146
+#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr ""
-#: option.c:147
+#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:148
+#: option.c:149
msgid "Return MX records for local hosts."
msgstr ""
-#: option.c:149
+#: option.c:150
msgid "Specify an MX record."
msgstr ""
-#: option.c:150
+#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr ""
-#: option.c:151
+#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
-#: option.c:152
+#: option.c:153
msgid "Do NOT cache failed search results."
msgstr ""
-#: option.c:153
+#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr ""
-#: option.c:154
+#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr ""
-#: option.c:155
+#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
-#: option.c:156
+#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
-#: option.c:157
+#: option.c:158
msgid "Log queries."
msgstr ""
-#: option.c:158
+#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr ""
-#: option.c:159
+#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr ""
-#: option.c:160
+#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr ""
-#: option.c:161
+#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
-#: option.c:162
+#: option.c:163
msgid "Never forward queries to specified domains."
msgstr ""
-#: option.c:163
+#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr ""
-#: option.c:164
+#: option.c:165
msgid "Specify default target in an MX record."
msgstr ""
-#: option.c:165
+#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
-#: option.c:166
+#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr ""
-#: option.c:167
+#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr ""
-#: option.c:168
+#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr ""
-#: option.c:169
+#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr ""
-#: option.c:170
+#: option.c:171
msgid "Specify a SRV record."
msgstr ""
-#: option.c:171
+#: option.c:172
msgid "Display this message."
msgstr ""
-#: option.c:172
+#: option.c:173
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgstr ""
-#: option.c:173
+#: option.c:174
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr ""
-#: option.c:174
+#: option.c:175
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
-#: option.c:175
+#: option.c:176
msgid "Specify TXT DNS record."
msgstr ""
-#: option.c:176
+#: option.c:177
msgid "Bind only to interfaces in use."
msgstr ""
-#: option.c:177
+#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr ""
-#: option.c:178
+#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr ""
-#: option.c:179
+#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr ""
-#: option.c:180
+#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr ""
-#: option.c:181
+#: option.c:182
msgid "Map MAC address (with wildcards) to option set."
msgstr ""
-#: option.c:182
+#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:396
+#: option.c:184
+msgid "Script to run on DHCP lease creation and destruction."
+msgstr ""
+
+#: option.c:398
msgid "missing \""
msgstr ""
-#: option.c:425
+#: option.c:427
msgid "bad option"
msgstr ""
-#: option.c:442
+#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr ""
-#: option.c:448
+#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
-#: option.c:450
+#: option.c:452
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
-#: option.c:452
+#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr ""
-#: option.c:477
+#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
-#: option.c:478
+#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
-#: option.c:479
+#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
-#: option.c:480
+#: option.c:482
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
-#: option.c:481
+#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr ""
-#: option.c:491
+#: option.c:493
msgid "extraneous parameter"
msgstr ""
-#: option.c:499
+#: option.c:501
msgid "missing parameter"
msgstr ""
-#: option.c:516
+#: option.c:518
msgid "nested includes not allowed"
msgstr ""
-#: option.c:576
+#: option.c:578
msgid "bad MX preference"
msgstr ""
-#: option.c:585
+#: option.c:587
msgid "bad MX name"
msgstr ""
-#: option.c:603
+#: option.c:605
msgid "bad MX target"
msgstr ""
-#: option.c:802 option.c:813
+#: option.c:617
+msgid "cannot run scripts under uClinux"
+msgstr ""
+
+#: option.c:813 option.c:824
msgid "bad port"
msgstr ""
-#: option.c:955
+#: option.c:966
msgid "bad dhcp-range"
msgstr ""
-#: option.c:984
+#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1029
+#: option.c:1040
msgid "inconsistent DHCP range"
msgstr ""
-#: option.c:1214
+#: option.c:1225
msgid "bad dhcp-host"
msgstr ""
-#: option.c:1271
+#: option.c:1282
msgid "bad dhcp-option"
msgstr ""
-#: option.c:1289
+#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr ""
-#: option.c:1459
+#: option.c:1470
msgid "dhcp-option too long"
msgstr ""
-#: option.c:1656
+#: option.c:1667
msgid "bad TXT record"
msgstr ""
-#: option.c:1688
+#: option.c:1699
msgid "TXT record string too long"
msgstr ""
-#: option.c:1727
+#: option.c:1738
msgid "bad SRV record"
msgstr ""
-#: option.c:1740
+#: option.c:1751
msgid "bad SRV target"
msgstr ""
-#: option.c:1752
+#: option.c:1763
msgid "invalid port number"
msgstr ""
-#: option.c:1763
+#: option.c:1774
msgid "invalid priority"
msgstr ""
-#: option.c:1774
+#: option.c:1785
msgid "invalid weight"
msgstr ""
-#: option.c:1799
+#: option.c:1810
msgid "error"
msgstr ""
-#: option.c:1801
+#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr ""
-#: option.c:1803
+#: option.c:1814
msgid "try --help"
msgstr ""
-#: option.c:1805
+#: option.c:1816
msgid "try -w"
msgstr ""
-#: option.c:1845
+#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
-#: option.c:1874
+#: option.c:1885
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
-#: option.c:1881
+#: option.c:1892
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
-#: option.c:1884 network.c:481
+#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr ""
-#: option.c:1902
+#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr ""
@@ -507,7 +515,7 @@ msgstr ""
msgid "forwarding table overflow: check for server loops."
msgstr ""
-#: isc.c:73 dnsmasq.c:460
+#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr ""
@@ -517,7 +525,7 @@ msgstr ""
msgid "failed to load %s: %m"
msgstr ""
-#: isc.c:93 network.c:485
+#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr ""
@@ -532,59 +540,59 @@ msgstr ""
msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
msgstr ""
-#: network.c:308 dnsmasq.c:129
+#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr ""
-#: network.c:315
+#: network.c:321
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr ""
-#: network.c:333
+#: network.c:339
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr ""
-#: network.c:341
+#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr ""
-#: network.c:411
+#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
-#: network.c:420
+#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr ""
-#: network.c:434
+#: network.c:438
msgid "domain"
msgstr ""
-#: network.c:436
+#: network.c:440
msgid "unqualified"
msgstr ""
-#: network.c:436
+#: network.c:440
msgid "domains"
msgstr ""
-#: network.c:439
+#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
-#: network.c:441
+#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
-#: network.c:444
+#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
@@ -613,7 +621,7 @@ msgstr ""
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr ""
-#: dnsmasq.c:158 dnsmasq.c:536
+#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr ""
@@ -622,67 +630,67 @@ msgstr ""
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr ""
-#: dnsmasq.c:196
+#: dnsmasq.c:192
#, c-format
msgid "cannot create pipe: %s"
msgstr ""
-#: dnsmasq.c:331
+#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr ""
-#: dnsmasq.c:333
+#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr ""
-#: dnsmasq.c:335
+#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr ""
-#: dnsmasq.c:341
+#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr ""
-#: dnsmasq.c:343
+#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr ""
-#: dnsmasq.c:348
+#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr ""
-#: dnsmasq.c:353
+#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr ""
-#: dnsmasq.c:365
+#: dnsmasq.c:370
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr ""
-#: dnsmasq.c:366
+#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr ""
-#: dnsmasq.c:376
+#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
-#: dnsmasq.c:378
+#: dnsmasq.c:383
msgid "running as root"
msgstr ""
-#: dnsmasq.c:511
+#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr ""
-#: dnsmasq.c:538
+#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr ""
@@ -691,168 +699,177 @@ msgstr ""
msgid "cannot create DHCP socket : %s"
msgstr ""
-#: dhcp.c:42
+#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr ""
-#: dhcp.c:49
+#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr ""
-#: dhcp.c:59
+#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr ""
-#: dhcp.c:72
+#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr ""
-#: dhcp.c:84
+#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
-#: dhcp.c:307
+#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
-#: dhcp.c:623
+#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr ""
-#: dhcp.c:642
+#: dhcp.c:651
#, c-format
msgid "bad line at %s line %d"
msgstr ""
-#: dhcp.c:746
+#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
-#: dhcp.c:782
+#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr ""
-#: lease.c:34
+#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr ""
-#: lease.c:71
+#: lease.c:59
msgid "too many stored leases"
msgstr ""
-#: lease.c:118
+#: lease.c:175
#, c-format
-msgid "failed to write %s: %m (retry in %ds)"
+msgid "failed to write %s: %s (retry in %us)"
msgstr ""
-#: rfc2131.c:247
+#: lease.c:436
+#, c-format
+msgid "failed to execute %s: %m"
+msgstr ""
+
+#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr ""
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "with subnet selector"
msgstr ""
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "via"
msgstr ""
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr ""
-#: rfc2131.c:310 rfc2131.c:731
+#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr ""
-#: rfc2131.c:313
+#: rfc2131.c:312
msgid "no address configured"
msgstr ""
-#: rfc2131.c:326 rfc2131.c:605
+#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr ""
-#: rfc2131.c:333 rfc2131.c:734
+#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr ""
-#: rfc2131.c:336 rfc2131.c:707
+#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr ""
-#: rfc2131.c:540
+#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr ""
-#: rfc2131.c:558
+#: rfc2131.c:559
msgid "unknown lease"
msgstr ""
-#: rfc2131.c:567 rfc2131.c:799
+#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr ""
-#: rfc2131.c:581
+#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:590
+#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
-#: rfc2131.c:670
+#: rfc2131.c:671
msgid "wrong address"
msgstr ""
-#: rfc2131.c:683
+#: rfc2131.c:684
msgid "lease not found"
msgstr ""
-#: rfc2131.c:715
+#: rfc2131.c:716
msgid "address not available"
msgstr ""
-#: rfc2131.c:724
+#: rfc2131.c:725
msgid "static lease available"
msgstr ""
-#: rfc2131.c:728
+#: rfc2131.c:729
msgid "address reserved"
msgstr ""
-#: rfc2131.c:946
+#: rfc2131.c:735
+msgid "no unique-id"
+msgstr ""
+
+#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr ""
-#: rfc2131.c:1247
+#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr ""
#: netlink.c:51
#, c-format
-msgid "cannot create RTnetlink socket: %s"
+msgid "cannot create netlink socket: %s"
msgstr ""
-#: netlink.c:218
+#: netlink.c:224
#, c-format
-msgid "RTnetlink returns error: %s"
+msgid "netlink returns error: %s"
msgstr ""
#: dbus.c:112
@@ -867,12 +884,12 @@ msgstr ""
msgid "could not register a DBus message handler"
msgstr ""
-#: bpf.c:54
+#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr ""
-#: bpf.c:74
+#: bpf.c:79
#, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr ""
diff --git a/po/ro.po b/po/ro.po
index 95d2883..c0ae861 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-23 19:58+0100\n"
+"POT-Creation-Date: 2006-05-06 13:18+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,17 +20,17 @@ msgstr ""
msgid "failed to load names from %s: %m"
msgstr "încărcarea numelor din %s: %m a eşuat"
-#: cache.c:606 dhcp.c:655
+#: cache.c:606 dhcp.c:664
#, c-format
msgid "bad address at %s line %d"
msgstr "adresă greşită în %s, linia %d"
-#: cache.c:633 dhcp.c:669
+#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr "nume greşit în %s linia %d"
-#: cache.c:639 dhcp.c:723
+#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr "citesc %s - %d adrese"
@@ -57,7 +57,7 @@ msgstr ""
"cantitate de memorie temporară %d, %d/%d stocări temporare aureutilizat "
"locaţii neexpirate."
-#: util.c:153 option.c:1294
+#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr "nu am putut aloca memorie"
@@ -75,269 +75,273 @@ msgstr "pornirea A EÅžUAT"
msgid "infinite"
msgstr "infinit"
-#: option.c:125
+#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr "Specificaţi adresele locale deservite."
-#: option.c:126
+#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Afişează adresele IP ale maşinilor în domeniul dat."
-#: option.c:127
+#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
"Simulează căutări după adresă pentru domenii de adresă private (RFC1918)."
-#: option.c:128
+#: option.c:129
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Interpretează adresa IP ca NXDOMAIN (împotriva manipulărilor Verisign)"
-#: option.c:129
+#: option.c:130
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Specifică mărimea înregistrărilor temporare (implicit e %s)."
-#: option.c:130
+#: option.c:131
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Specifică fişier de configurare (implicit e %s)."
-#: option.c:131
+#: option.c:132
msgid "Do NOT fork into the background: run in debug mode."
msgstr "NU porneşte în fundal: rulează în modul depanare."
-#: option.c:132
+#: option.c:133
msgid "Do NOT forward queries with no domain part."
msgstr "NU înainta cererile ce nu conţin domeniu DNS."
-#: option.c:133
+#: option.c:134
msgid "Return self-pointing MX records for local hosts."
msgstr "Răspunde cu înregistrări MX spre el însuşi pentru maşini locale."
-#: option.c:134
+#: option.c:135
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Adaugă numelor simple din /etc/hosts numele domeniului ca sufix."
-#: option.c:135
+#: option.c:136
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Nu inainta cereri DNS defecte provenite de la maÅŸini Windows."
-#: option.c:136
+#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr "Activează DHCP în domeniul dat cu durată limitată de împrumut."
-#: option.c:137
+#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Rulează sub acest grup după pornire (implicit e %s)."
-#: option.c:138
+#: option.c:139
msgid "Set address or hostname for a specified machine."
msgstr "Schimbă adresa sau numele maşinii specificate."
-#: option.c:139
+#: option.c:140
#, c-format
msgid "Do NOT load %s file."
msgstr "Nu încarcă fişierul %s."
-#: option.c:140
+#: option.c:141
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Specifică spre citire un fişier hosts adiţional la %s."
-#: option.c:141
+#: option.c:142
msgid "Specify interface(s) to listen on."
msgstr "Specifică interfeţele deservite."
-#: option.c:142
+#: option.c:143
msgid "Specify interface(s) NOT to listen on."
msgstr "Specifică interfeţele NE-deservite."
-#: option.c:143
+#: option.c:144
msgid "Map DHCP user class to option set."
msgstr "Leagă clasa de utilizator DHCP cu grup de opţiuni."
-#: option.c:144
+#: option.c:145
msgid "Don't do DHCP for hosts in option set."
msgstr "Nu furniza DHCP maşinilor din grupul de opţiuni."
-#: option.c:145
+#: option.c:146
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "NU porneşte în fundal, NU rulează în modul depanare."
-#: option.c:146
+#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr "Presupune că suntem singurul server DHCP din reţeaua locală."
-#: option.c:147
+#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Specifică fişierul de stocare a împrumuturilor DHCP (implicit e %s)."
-#: option.c:148
+#: option.c:149
msgid "Return MX records for local hosts."
msgstr "Răspunde cu întregistrări MX pentru maşini locale."
-#: option.c:149
+#: option.c:150
msgid "Specify an MX record."
msgstr "Specifică o înregistrare MX."
-#: option.c:150
+#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr "Specifică opţiuni BOOTP serverului DHCP."
-#: option.c:151
+#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "Nu încărca fişierul %s, citeşte-l doar la SIGHUP."
-#: option.c:152
+#: option.c:153
msgid "Do NOT cache failed search results."
msgstr "NU memora rezultatele de căutare DNS eşuatată."
-#: option.c:153
+#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Foloseşte servere DNS strict în ordinea dată în %s."
-#: option.c:154
+#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr "Configurează opţiuni în plusce trebuie trimise clienţilor DHCP."
-#: option.c:155
+#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Specifică numărul portului pentru cereri DNS (implicit e 53)."
-#: option.c:156
+#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Marimea maximă a pachetului UDP pentru EDNS.0 (implicit e %s)."
-#: option.c:157
+#: option.c:158
msgid "Log queries."
msgstr "Înregistrează tranzacţiile."
-#: option.c:158
+#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr "Forţează acest port pentru datele ce pleacă."
-#: option.c:159
+#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr "NU citi fiÅŸierul resolv.conf"
-#: option.c:160
+#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Specifică calea către resolv.conf (implicit e %s)."
-#: option.c:161
+#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Specifică adresele server(elor) superioare cu domenii opţionale."
-#: option.c:162
+#: option.c:163
msgid "Never forward queries to specified domains."
msgstr "Nu înaintează cererile spre domeniile specificate."
-#: option.c:163
+#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Specifică domeniul de transmis prin DHCP."
-#: option.c:164
+#: option.c:165
msgid "Specify default target in an MX record."
msgstr "Specifică o ţintă într-o înregistrare MX."
-#: option.c:165
+#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr "Specifică TTL în secunde pentru răspunsurile din /etc/hosts."
-#: option.c:166
+#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Rulează sub acest utilizator după pornire. (implicit e %s)."
-#: option.c:167
+#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr "Trimite opţiuni DHCP în funcţie de marca plăcii de reţea."
-#: option.c:168
+#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr "Afişează versiunea dnsmasq şi drepturile de autor."
-#: option.c:169
+#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Traduce adresele IPv4 de la serverele DNS superioare."
-#: option.c:170
+#: option.c:171
msgid "Specify a SRV record."
msgstr "Specifică o înregistrare SRV."
-#: option.c:171
+#: option.c:172
msgid "Display this message."
msgstr "Afişează acest mesaj."
-#: option.c:172
+#: option.c:173
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgstr "Specifică o cale pentru fişierul PID. (implicit %s)."
-#: option.c:173
+#: option.c:174
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)."
-#: option.c:174
+#: option.c:175
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
"Răspunde cererilor DNS în funcţie de interfaţa pe care a venit cererea."
-#: option.c:175
+#: option.c:176
msgid "Specify TXT DNS record."
msgstr "Specifică o înregistrare TXT."
-#: option.c:176
+#: option.c:177
msgid "Bind only to interfaces in use."
msgstr "Ascultă doar pe interfeţele active."
-#: option.c:177
+#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Citeşte informaţii DHCP statice despre maşină din %s."
-#: option.c:178
+#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Activeaza interfaţa DBus pentru configurarea serverelor superioare."
-#: option.c:179
+#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Nu activează DHCP ci doar DNS pe această interfaţă."
-#: option.c:180
+#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr "Activează alocarea dinamică a adreselor pentru BOOTP."
-#: option.c:181
+#: option.c:182
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Trimite opţiuni DHCP în funcţie de marca plăcii de reţea."
-#: option.c:182
+#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
-#: option.c:396
+#: option.c:184
+msgid "Script to run on DHCP lease creation and destruction."
+msgstr ""
+
+#: option.c:398
msgid "missing \""
msgstr "lipseÅŸte \""
-#: option.c:425
+#: option.c:427
msgid "bad option"
msgstr "opţiune invalidă"
-#: option.c:442
+#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr "nu pot citi %s: %s"
-#: option.c:448
+#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -346,22 +350,22 @@ msgstr ""
"Utilizare: dnsmasq [opţiuni]\n"
"\n"
-#: option.c:450
+#: option.c:452
#, 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:452
+#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr "Opţiunile valide sunt:\n"
-#: option.c:477
+#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "dnsmasq versiunea %s %s\n"
-#: option.c:478
+#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
@@ -370,142 +374,146 @@ msgstr ""
"Opţiuni cu care a fost compilat %s\n"
"\n"
-#: option.c:479
+#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Acest program vine FÄ‚RÄ‚ NICI O GARANÅ¢IE.\n"
-#: option.c:480
+#: option.c:482
#, 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:481
+#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr "în termenii Licenţei publice generale GNU, versiunea 2.\n"
-#: option.c:491
+#: option.c:493
msgid "extraneous parameter"
msgstr "parametru nerecunoscut"
-#: option.c:499
+#: option.c:501
msgid "missing parameter"
msgstr "parametru lipsa"
-#: option.c:516
+#: option.c:518
msgid "nested includes not allowed"
msgstr "incluziunile locale nu sunt permise"
-#: option.c:576
+#: option.c:578
msgid "bad MX preference"
msgstr "preferinţă MX invalidă"
-#: option.c:585
+#: option.c:587
msgid "bad MX name"
msgstr "nume MX invalid"
-#: option.c:603
+#: option.c:605
msgid "bad MX target"
msgstr "ţintă MX invalidă"
-#: option.c:802 option.c:813
+#: option.c:617
+msgid "cannot run scripts under uClinux"
+msgstr ""
+
+#: option.c:813 option.c:824
msgid "bad port"
msgstr "port invalid"
-#: option.c:955
+#: option.c:966
msgid "bad dhcp-range"
msgstr "dhcp-range invalid"
-#: option.c:984
+#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
-#: option.c:1029
+#: option.c:1040
msgid "inconsistent DHCP range"
msgstr "domeniu DHCP inconsistent"
-#: option.c:1214
+#: option.c:1225
msgid "bad dhcp-host"
msgstr "dhcp-host invalid"
-#: option.c:1271
+#: option.c:1282
msgid "bad dhcp-option"
msgstr "dhcp-option invalid"
-#: option.c:1289
+#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr "domeniu DNS invalid în declaraţia dhcp-option"
-#: option.c:1459
+#: option.c:1470
msgid "dhcp-option too long"
msgstr "declararea dhcp-option este prea lungă"
-#: option.c:1656
+#: option.c:1667
msgid "bad TXT record"
msgstr "înregistrare TXT invalidă"
-#: option.c:1688
+#: option.c:1699
msgid "TXT record string too long"
msgstr "şirul de caractere pentru înregistrarea TXT este prea lung"
-#: option.c:1727
+#: option.c:1738
msgid "bad SRV record"
msgstr "înregistrare SRV invalidă"
-#: option.c:1740
+#: option.c:1751
msgid "bad SRV target"
msgstr "ţintă SRV invalidă"
-#: option.c:1752
+#: option.c:1763
msgid "invalid port number"
msgstr "număr de port invalid"
-#: option.c:1763
+#: option.c:1774
msgid "invalid priority"
msgstr "prioritate invalidă"
-#: option.c:1774
+#: option.c:1785
msgid "invalid weight"
msgstr "pondere invalidă"
-#: option.c:1799
+#: option.c:1810
msgid "error"
msgstr "eroare"
-#: option.c:1801
+#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr "opţiuni în linie de comandă invalide: %s."
-#: option.c:1803
+#: option.c:1814
msgid "try --help"
msgstr ""
-#: option.c:1805
+#: option.c:1816
msgid "try -w"
msgstr ""
-#: option.c:1845
+#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr "nu pot citi numele maÅŸinii: %s"
-#: option.c:1874
+#: option.c:1885
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:1881
+#: option.c:1892
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:1884 network.c:481
+#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr "nu pot citi %s: %n"
-#: option.c:1902
+#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr "nu s-a găsit nici un criteriu de căutare în %s"
@@ -519,7 +527,7 @@ msgstr "serverul DNS %s refuză interogările recursive"
msgid "forwarding table overflow: check for server loops."
msgstr "depăşire de memorie în tabela cu înaintări DNS: verificaţi de bucle."
-#: isc.c:73 dnsmasq.c:460
+#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr "accesarea serverului %s a eÅŸuat: %n"
@@ -529,7 +537,7 @@ msgstr "accesarea serverului %s a eÅŸuat: %n"
msgid "failed to load %s: %m"
msgstr "nu pot încărca %s: %n"
-#: isc.c:93 network.c:485
+#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr "citesc %s"
@@ -544,59 +552,59 @@ msgstr "nume invalid în %s"
msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
msgstr "ÃŽmprumutul DHCP pentru %s va fi ignorat deoarece are domeniu invalid"
-#: network.c:308 dnsmasq.c:129
+#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr "creearea socket-ului de ascultare a eÅŸuat: %s"
-#: network.c:315
+#: network.c:321
#, 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:333
+#: network.c:339
#, 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:341
+#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr "ascultarea pe socket a eÅŸuat: %s"
-#: network.c:411
+#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorăm serverul DNS %s - interfaţă locală"
-#: network.c:420
+#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr "ignorăm serverul DNS %s - nu pot creea/activa socket-ul: %s"
-#: network.c:434
+#: network.c:438
msgid "domain"
msgstr "domeniu"
-#: network.c:436
+#: network.c:440
msgid "unqualified"
msgstr "invalid"
-#: network.c:436
+#: network.c:440
msgid "domains"
msgstr "domenii"
-#: network.c:439
+#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr "folosim adresele locale doar pentru %S %s"
-#: network.c:441
+#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "folosim serverul DNS %s#%d pentru %s %s"
-#: network.c:444
+#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr "folosim serverul DNS %s#%d"
@@ -629,7 +637,7 @@ msgstr ""
"trebuie specificată exact o singură interfaţă pe sistemele defectece nu au "
"IP_RECVIF"
-#: dnsmasq.c:158 dnsmasq.c:536
+#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr "eroare DBus: %s"
@@ -638,67 +646,67 @@ msgstr "eroare DBus: %s"
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:196
+#: dnsmasq.c:192
#, fuzzy, c-format
msgid "cannot create pipe: %s"
msgstr "nu pot citi %s: %s"
-#: dnsmasq.c:331
+#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr "am ponit, versiunea %s memorie temporară %d"
-#: dnsmasq.c:333
+#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr "am pornit, versiunea %s memorie temporară dezactivată"
-#: dnsmasq.c:335
+#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr "compilat cu opţiunile: %s"
-#: dnsmasq.c:341
+#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr "suportul DBus activ: sunt conectat la magistrala sistem"
-#: dnsmasq.c:343
+#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr "suportul DBus activ: aştept conexiunea la magistrală"
-#: dnsmasq.c:348
+#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "specific opţiunea --bind-interfaces din cauza limitărilor SO"
-#: dnsmasq.c:353
+#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "atenţie: interfaţa %s nu există momentan"
-#: dnsmasq.c:365
+#: dnsmasq.c:370
#, 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:366
+#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, domeniu IP %s -- %s, timpul reînoirii %s"
-#: dnsmasq.c:376
+#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
-#: dnsmasq.c:378
+#: dnsmasq.c:383
msgid "running as root"
msgstr "rulez ca root"
-#: dnsmasq.c:511
+#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr "am primit SIGTERM, am terminat"
-#: dnsmasq.c:538
+#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr "magistrala sistem Dbus conectată"
@@ -707,169 +715,178 @@ msgstr "magistrala sistem Dbus conectată"
msgid "cannot create DHCP socket : %s"
msgstr "nu pot creea socket DHCP : %s"
-#: dhcp.c:42
+#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "configurarea opţiunilor socketului DHCP a eşuat: %s"
-#: dhcp.c:49
+#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr "configurarea SO_REUSEADDR pe socket-ul DHCP a eÅŸuat: %s"
-#: dhcp.c:59
+#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "activarea socket-ului server-ului DHCP a eÅŸuat: %s"
-#: dhcp.c:72
+#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "nu pot creea socket ICMP raw: %s."
-#: dhcp.c:84
+#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
-#: dhcp.c:307
+#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "domeniu DHCP %s -- %s nu este consistent cu masca de reţea %s"
-#: dhcp.c:623
+#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr "citirea %s:%n a eÅŸuat"
-#: dhcp.c:642
+#: dhcp.c:651
#, c-format
msgid "bad line at %s line %d"
msgstr "linie invalidă în %s rândul %d"
-#: dhcp.c:746
+#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "adresă IP duplicat %s (%s) în declaraţia dhcp-config."
-#: dhcp.c:782
+#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr "Ignor numele DHCP al maÅŸinii %s deoarece are domeniu DNS ilegal"
-#: lease.c:34
+#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr "nu pot creea sau deschide fişierul cu împrumuturi: %s"
-#: lease.c:71
+#: lease.c:59
msgid "too many stored leases"
msgstr "prea multe împrumuturi stocate"
-#: lease.c:118
+#: lease.c:175
#, fuzzy, c-format
-msgid "failed to write %s: %m (retry in %ds)"
+msgid "failed to write %s: %s (retry in %us)"
msgstr "nu pot citi %s: %n"
-#: rfc2131.c:247
+#: lease.c:436
+#, fuzzy, c-format
+msgid "failed to execute %s: %m"
+msgstr "accesarea serverului %s a eÅŸuat: %n"
+
+#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "nici un domeniu de adrese disponibil pentru cererea DHCP %s %s"
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "with subnet selector"
msgstr "cu selectorul de subreţea"
-#: rfc2131.c:248
+#: rfc2131.c:247
msgid "via"
msgstr "prin"
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr "dezactivat"
-#: rfc2131.c:310 rfc2131.c:731
+#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr "adresa este folosită"
-#: rfc2131.c:313
+#: rfc2131.c:312
msgid "no address configured"
msgstr "adresă lipsă"
-#: rfc2131.c:326 rfc2131.c:605
+#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr "nici o adresă disponibilă"
-#: rfc2131.c:333 rfc2131.c:734
+#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr "nu mai am de unde să împrumut"
-#: rfc2131.c:336 rfc2131.c:707
+#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr "reţea greşită"
-#: rfc2131.c:540
+#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr "dezactivăm adresele DHCP statice %s"
-#: rfc2131.c:558
+#: rfc2131.c:559
msgid "unknown lease"
msgstr "împrumut necunoscut"
-#: rfc2131.c:567 rfc2131.c:799
+#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr "ignorat"
-#: rfc2131.c:581
+#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
-#: rfc2131.c:590
+#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
-#: rfc2131.c:670
+#: rfc2131.c:671
msgid "wrong address"
msgstr "adresă greşită"
-#: rfc2131.c:683
+#: rfc2131.c:684
msgid "lease not found"
msgstr "împrumutul nu a fost găsit"
-#: rfc2131.c:715
+#: rfc2131.c:716
msgid "address not available"
msgstr "adresă indisponibilă"
-#: rfc2131.c:724
+#: rfc2131.c:725
msgid "static lease available"
msgstr "împrumut static este disponibil"
-#: rfc2131.c:728
+#: rfc2131.c:729
msgid "address reserved"
msgstr "adresă rezervată"
-#: rfc2131.c:946
+#: rfc2131.c:735
+msgid "no unique-id"
+msgstr ""
+
+#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr "nu pot trimite opţiunea DHCP %d: nu mai este loc în pachet"
-#: rfc2131.c:1247
+#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr "Se potrivesc mai multe clase de mărci de interfeţe, folosim %s"
#: netlink.c:51
#, fuzzy, c-format
-msgid "cannot create RTnetlink socket: %s"
+msgid "cannot create netlink socket: %s"
msgstr "nu pot să activez socket-ul netlink: %s"
-#: netlink.c:218
-#, c-format
-msgid "RTnetlink returns error: %s"
-msgstr ""
+#: netlink.c:224
+#, fuzzy, c-format
+msgid "netlink returns error: %s"
+msgstr "eroare DBus: %s"
#: dbus.c:112
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
@@ -883,12 +900,12 @@ msgstr "configurăm serverele superioare prin Dbus"
msgid "could not register a DBus message handler"
msgstr "nu pot activa o interfaţă de mesaje DBus"
-#: bpf.c:54
+#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "nu pot creea socket DHCP BPF: %s"
-#: bpf.c:74
+#: bpf.c:79
#, fuzzy, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "cerere DHCP pentru dispozitiv nesuportat (%d) recepţionată prin %s"
diff --git a/rpm/dnsmasq.rh b/rpm/dnsmasq.rh
deleted file mode 100644
index 9dae94c..0000000
--- a/rpm/dnsmasq.rh
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/sh
-#
-# Startup script for the DNS caching server
-#
-# chkconfig: 2345 99 01
-# description: This script starts your DNS caching server
-# processname: dnsmasq
-# pidfile: /var/run/dnsmasq.pid
-
-# Source function library.
-. /etc/rc.d/init.d/functions
-
-# Source networking configuration.
-. /etc/sysconfig/network
-
-# Check that networking is up.
-[ ${NETWORKING} = "no" ] && exit 0
-
-dnsmasq=/usr/sbin/dnsmasq
-[ -f $dnsmasq ] || exit 0
-
-# change this line if you want dnsmasq to serve an MX record for
-# the host it is running on.
-MAILHOSTNAME=""
-# change this line if you want dns to get its upstream servers from
-# somewhere other that /etc/resolv.conf
-RESOLV_CONF=""
-# change this if you want dnsmasq to cache any "hostname" or "client-hostname" from
-# a dhcpd's lease file
-DHCP_LEASE="/var/lib/dhcp/dhcpd.leases"
-DOMAIN_SUFFIX=`dnsdomainname`
-
-OPTIONS=""
-
-if [ ! -z "${MAILHOSTNAME}" ]; then
- OPTIONS="$OPTIONS -m $MAILHOSTNAME"
-fi
-
-if [ ! -z "${RESOLV_CONF}" ]; then
- OPTIONS="$OPTIONS -r $RESOLV_CONF"
-fi
-
-if [ ! -z "${DHCP_LEASE}" ]; then
- OPTIONS="$OPTIONS -l $DHCP_LEASE"
-fi
-
-if [ ! -z "${DOMAIN_SUFFIX}" ]; then
- OPTIONS="$OPTIONS -s $DOMAIN_SUFFIX"
-fi
-
-RETVAL=0
-
-# See how we were called.
-case "$1" in
- start)
- echo -n "Starting dnsmasq: "
- daemon $dnsmasq $OPTIONS
- RETVAL=$?
- echo
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dnsmasq
- ;;
- stop)
- if test "x`pidof dnsmasq`" != x; then
- echo -n "Shutting down dnsmasq: "
- killproc dnsmasq
- fi
- RETVAL=$?
- echo
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dnsmasq /var/run/dnsmasq.pid
- ;;
- status)
- status dnsmasq
- RETVAL=$?
- ;;
- restart|reload)
- $0 stop
- $0 start
- RETVAL=$?
- ;;
- condrestart)
- if test "x`/sbin/pidof dnsmasq`" != x; then
- $0 stop
- $0 start
- RETVAL=$?
- fi
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|reload|condrestart|status}"
- exit 1
-esac
-
-exit $RETVAL
-
diff --git a/src/bpf.c b/src/bpf.c
index 3d95d63..318eec6 100644
--- a/src/bpf.c
+++ b/src/bpf.c
@@ -48,7 +48,12 @@ void init_bpf(struct daemon *daemon)
{
sprintf(ifreq.iov_base, "/dev/bpf%d", i++);
if ((daemon->dhcp_raw_fd = open(ifreq.iov_base, O_RDWR, 0)) != -1)
- return;
+ {
+ int flags = fcntl(daemon->dhcp_raw_fd, F_GETFD);
+ if (flags != -1)
+ fcntl(daemon->dhcp_raw_fd, F_SETFD, flags | FD_CLOEXEC);
+ return;
+ }
}
if (errno != EBUSY)
die(_("cannot create DHCP BPF socket: %s"), NULL);
diff --git a/src/config.h b/src/config.h
index 7170c94..6845316 100644
--- a/src/config.h
+++ b/src/config.h
@@ -10,7 +10,7 @@
GNU General Public License for more details.
*/
-#define VERSION "2.30"
+#define VERSION "2.31"
#define FTABSIZ 150 /* max number of outstanding requests */
#define MAX_PROCS 20 /* max no children for TCP requests */
@@ -79,7 +79,8 @@
/* Get linux C library versions. */
#if defined(__linux__) && !defined(__UCLIBC__) && !defined(__uClinux__)
-# include <libio.h>
+/*# include <libio.h> */
+# include <features.h>
#endif
@@ -203,11 +204,13 @@ NOTES:
#define HAVE_DEV_URANDOM
#define HAVE_DEV_RANDOM
#undef HAVE_SOCKADDR_SA_LEN
-#if !defined(__UCLIBC_HAS_MMU__)
+#if !defined(__ARCH_HAS_MMU__) && !defined(__UCLIBC_HAS_MMU__)
# define NO_FORK
#endif
-#if !defined(__UCLIBC_HAS_IPV6__)
-# define NO_IPV6
+#if defined(__UCLIBC_HAS_IPV6__)
+# ifndef IPV6_V6ONLY
+# define IPV6_V6ONLY 26
+# endif
#endif
/* This is for glibc 2.x */
@@ -282,4 +285,3 @@ typedef unsigned long in_addr_t;
# define ADDRSTRLEN 16 /* 4*3 + 3 dots + NULL */
#endif
-
diff --git a/src/dbus.c b/src/dbus.c
index 7783cac..08200bd 100644
--- a/src/dbus.c
+++ b/src/dbus.c
@@ -240,7 +240,7 @@ DBusHandlerResult message_handler(DBusConnection *connection,
check_servers(daemon);
}
else if (strcmp(method, "ClearCache") == 0)
- clear_cache_and_reload(daemon);
+ clear_cache_and_reload(daemon, dnsmasq_time());
else
return (DBUS_HANDLER_RESULT_NOT_YET_HANDLED);
@@ -260,7 +260,7 @@ char *dbus_init(struct daemon *daemon)
dbus_error_init (&dbus_error);
if (!(connection = dbus_bus_get (DBUS_BUS_SYSTEM, &dbus_error)))
return NULL;
-
+
dbus_connection_set_exit_on_disconnect(connection, FALSE);
dbus_connection_set_watch_functions(connection, add_watch, remove_watch,
NULL, (void *)daemon, NULL);
diff --git a/src/dhcp.c b/src/dhcp.c
index b755c47..7c8e0e7 100644
--- a/src/dhcp.c
+++ b/src/dhcp.c
@@ -25,14 +25,13 @@ void dhcp_init(struct daemon *daemon)
{
int fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
struct sockaddr_in saddr;
- int flags, oneopt = 1;
+ int oneopt = 1;
struct dhcp_config *configs, *cp;
if (fd == -1)
die (_("cannot create DHCP socket : %s"), NULL);
- if ((flags = fcntl(fd, F_GETFL, 0)) == -1 ||
- fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1 ||
+ if (!fix_fd(fd) ||
#if defined(HAVE_LINUX_NETWORK)
setsockopt(fd, SOL_IP, IP_PKTINFO, &oneopt, sizeof(oneopt)) == -1 ||
#elif defined(IP_RECVIF)
@@ -203,8 +202,9 @@ void dhcp_packet(struct daemon *daemon, time_t now)
return;
lease_prune(NULL, now); /* lose any expired leases */
iov.iov_len = dhcp_reply(daemon, parm.current, ifr.ifr_name, (size_t)sz, now, unicast_dest);
- lease_update_file(daemon);
+ lease_update_file(daemon, now);
lease_update_dns(daemon);
+ lease_collect(daemon);
if (iov.iov_len == 0)
return;
@@ -258,9 +258,18 @@ void dhcp_packet(struct daemon *daemon, time_t now)
/* unicast to unconfigured client */
dest.sin_addr = mess->yiaddr;
dest.sin_port = htons(DHCP_CLIENT_PORT);
- if (mess->hlen != 0 && mess->htype != 0)
- arp_inject(daemon->netlinkfd, mess->yiaddr, iface_index,
- mess->chaddr, mess->hlen);
+ if (mess->hlen != 0 && mess->hlen <= 14 && mess->htype != 0)
+ {
+ /* inject mac address direct into ARP cache.
+ struct sockaddr limits size to 14 bytes. */
+ struct arpreq req;
+ *((struct sockaddr_in *)&req.arp_pa) = dest;
+ req.arp_ha.sa_family = mess->htype;
+ memcpy(req.arp_ha.sa_data, mess->chaddr, mess->hlen);
+ strncpy(req.arp_dev, ifr.ifr_name, 16);
+ req.arp_flags = ATF_COM;
+ ioctl(daemon->dhcpfd, SIOCSARP, &req);
+ }
}
#else
else
diff --git a/src/dnsmasq.c b/src/dnsmasq.c
index d7029ce..4d07b08 100644
--- a/src/dnsmasq.c
+++ b/src/dnsmasq.c
@@ -52,9 +52,9 @@ int main (int argc, char **argv)
time_t now, last = 0;
struct sigaction sigact;
struct iname *if_tmp;
- int flags, piperead, pipefd[2];
+ int piperead, pipefd[2];
unsigned char sig;
-
+
#ifndef NO_GETTEXT
setlocale(LC_ALL, "");
bindtextdomain("dnsmasq", LOCALEDIR);
@@ -188,11 +188,7 @@ int main (int argc, char **argv)
}
/* Use a pipe to carry signals back to the event loop in a race-free manner */
- if (pipe(pipefd) == -1 ||
- (flags = fcntl(pipefd[0], F_GETFL)) == -1 ||
- fcntl(pipefd[0], F_SETFL, flags | O_NONBLOCK) == -1 ||
- (flags = fcntl(pipefd[1], F_GETFL)) == -1 ||
- fcntl(pipefd[1], F_SETFL, flags | O_NONBLOCK) == -1)
+ if (pipe(pipefd) == -1 || !fix_fd(pipefd[0]) || !fix_fd(pipefd[1]))
die(_("cannot create pipe: %s"), NULL);
piperead = pipefd[0];
@@ -207,6 +203,7 @@ int main (int argc, char **argv)
struct passwd *ent_pw = daemon->username ? getpwnam(daemon->username) : NULL;
fd_set test_set;
int maxfd, i;
+ int nullfd = open("/dev/null", O_RDWR);
#ifdef HAVE_LINUX_NETWORK
cap_user_header_t hdr = NULL;
@@ -214,7 +211,7 @@ int main (int argc, char **argv)
/* On linux, we keep CAP_NETADMIN (for ARP-injection) and
CAP_NET_RAW (for icmp) if we're doing dhcp */
- if (ent_pw)
+ if (ent_pw && ent_pw->pw_uid != 0)
{
hdr = safe_malloc(sizeof(*hdr));
data = safe_malloc(sizeof(*data));
@@ -246,12 +243,12 @@ int main (int argc, char **argv)
if (!(daemon->options & OPT_NO_FORK))
{
if (fork() != 0 )
- exit(0);
+ _exit(0);
setsid();
if (fork() != 0)
- exit(0);
+ _exit(0);
}
#endif
@@ -289,25 +286,33 @@ int main (int argc, char **argv)
if (i <= maxfd && FD_ISSET(i, &test_set))
continue;
- close(i);
+ /* open stdout etc to /dev/null */
+ if (i == STDOUT_FILENO || i == STDERR_FILENO || i == STDIN_FILENO)
+ dup2(nullfd, i);
+ else
+ close(i);
}
- /* Change uid and gid for security */
- if (ent_pw)
+ if (daemon->groupname || ent_pw)
{
gid_t dummy;
struct group *gp;
-
- /* remove all supplimentary groups */
- setgroups(0, &dummy);
- /* change group for /etc/ppp/resolv.conf
- otherwise get the group for "nobody" */
+
+ /* change group for /etc/ppp/resolv.conf otherwise get the group for "nobody" */
if ((daemon->groupname && (gp = getgrnam(daemon->groupname))) ||
- (gp = getgrgid(ent_pw->pw_gid)))
- setgid(gp->gr_gid);
+ (ent_pw && (gp = getgrgid(ent_pw->pw_gid))))
+ {
+ /* remove all supplimentary groups */
+ setgroups(0, &dummy);
+ setgid(gp->gr_gid);
+ }
+ }
+
+ if (ent_pw && ent_pw->pw_uid != 0)
+ {
/* finally drop root */
setuid(ent_pw->pw_uid);
-
+
#ifdef HAVE_LINUX_NETWORK
data->effective = data->permitted =
(1 << CAP_NET_ADMIN) | (1 << CAP_NET_RAW);
@@ -379,9 +384,13 @@ int main (int argc, char **argv)
}
check_servers(daemon);
-
- pid = getpid();
+ pid = getpid();
+
+ /* Start lease-change script */
+ if (daemon->dhcp)
+ lease_collect(daemon);
+
while (1)
{
int maxfd;
@@ -486,11 +495,13 @@ int main (int argc, char **argv)
if (FD_ISSET(piperead, &rset))
{
+ pid_t p;
+
if (read(piperead, &sig, 1) == 1)
switch (sig)
{
case SIGHUP:
- clear_cache_and_reload(daemon);
+ clear_cache_and_reload(daemon, now);
if (daemon->resolv_files && (daemon->options & OPT_NO_POLL))
{
reload_servers(daemon->resolv_files->name, daemon);
@@ -504,24 +515,62 @@ int main (int argc, char **argv)
case SIGALRM:
if (daemon->dhcp)
- lease_update_file(daemon);
+ {
+ lease_prune(NULL, now);
+ lease_update_file(daemon, now);
+ lease_collect(daemon);
+ }
break;
case SIGTERM:
- syslog(LOG_INFO, _("exiting on receipt of SIGTERM"));
- if (daemon->dhcp)
- fclose(daemon->lease_stream);
- exit(0);
+ {
+ int i;
+ syslog(LOG_INFO, _("exiting on receipt of SIGTERM"));
+ /* Knock all our children on the head. */
+ for (i = 0; i < MAX_PROCS; i++)
+ if (daemon->tcp_pids[i] != 0)
+ kill(daemon->tcp_pids[i], SIGQUIT);
+
+ if (daemon->dhcp)
+ {
+ if (daemon->script_pid != 0)
+ kill(daemon->script_pid, SIGQUIT);
+ /* close this carefully */
+ fclose(daemon->lease_stream);
+ }
+
+ exit(0);
+ }
case SIGCHLD:
/* See Stevens 5.10 */
- while (waitpid(-1, NULL, WNOHANG) > 0)
- daemon->num_kids--;
+ /* Note that if a script process forks and then exits
+ without waiting for its child, we will reap that child.
+ It is not therefore safe to assume that any dieing children
+ whose pid != script_pid are TCP server threads. */
+ while ((p = waitpid(-1, NULL, WNOHANG)) > 0)
+ {
+ if (p == daemon->script_pid)
+ {
+ daemon->script_pid = 0;
+ lease_collect(daemon);
+ }
+ else
+ {
+ int i;
+ for (i = 0 ; i < MAX_PROCS; i++)
+ if (daemon->tcp_pids[i] == p)
+ {
+ daemon->tcp_pids[i] = 0;
+ daemon->num_kids--;
+ break;
+ }
+ }
+ }
break;
-
}
}
-
+
#ifdef HAVE_LINUX_NETWORK
if (FD_ISSET(daemon->netlinkfd, &rset))
netlink_multicast(daemon);
@@ -529,7 +578,7 @@ int main (int argc, char **argv)
#ifdef HAVE_DBUS
/* if we didn't create a DBus connection, retry now. */
- if ((daemon->options & OPT_DBUS) && !daemon->dbus)
+ if ((daemon->options & OPT_DBUS) && !daemon->dbus)
{
char *err;
if ((err = dbus_init(daemon)))
@@ -567,12 +616,12 @@ static void sig_handler(int sig)
{
/* alarm is used to kill children after a fixed time. */
if (sig == SIGALRM)
- exit(0);
+ _exit(0);
}
}
-void clear_cache_and_reload(struct daemon *daemon)
+void clear_cache_and_reload(struct daemon *daemon, time_t now)
{
cache_reload(daemon->options, daemon->namebuff, daemon->domain_suffix, daemon->addn_hosts);
if (daemon->dhcp)
@@ -581,7 +630,7 @@ void clear_cache_and_reload(struct daemon *daemon)
dhcp_read_ethers(daemon);
dhcp_update_configs(daemon->dhcp_conf);
lease_update_from_configs(daemon);
- lease_update_file(daemon);
+ lease_update_file(daemon, now);
lease_update_dns(daemon);
}
}
@@ -628,95 +677,115 @@ static void check_dns_listeners(struct daemon *daemon, fd_set *set, time_t now)
if (FD_ISSET(listener->tcpfd, set))
{
int confd;
-
+ struct irec *iface = NULL;
+ pid_t p;
+
while((confd = accept(listener->tcpfd, NULL, NULL)) == -1 && errno == EINTR);
- if (confd != -1)
+ if (confd == -1)
+ continue;
+
+ if (daemon->options & OPT_NOWILD)
+ iface = listener->iface;
+ else
{
- struct irec *iface = NULL;
-
- if (daemon->options & OPT_NOWILD)
- iface = listener->iface;
- else
- {
- union mysockaddr tcp_addr;
- socklen_t tcp_len = sizeof(union mysockaddr);
- /* Check for allowed interfaces when binding the wildcard address:
- we do this by looking for an interface with the same address as
- the local address of the TCP connection, then looking to see if that's
- an allowed interface. As a side effect, we get the netmask of the
- interface too, for localisation. */
-
- /* interface may be new since startup */
- if (enumerate_interfaces(daemon) &&
- getsockname(confd, (struct sockaddr *)&tcp_addr, &tcp_len) != -1)
- for (iface = daemon->interfaces; iface; iface = iface->next)
- if (sockaddr_isequal(&iface->addr, &tcp_addr))
- break;
- }
+ union mysockaddr tcp_addr;
+ socklen_t tcp_len = sizeof(union mysockaddr);
+ /* Check for allowed interfaces when binding the wildcard address:
+ we do this by looking for an interface with the same address as
+ the local address of the TCP connection, then looking to see if that's
+ an allowed interface. As a side effect, we get the netmask of the
+ interface too, for localisation. */
- if ((daemon->num_kids >= MAX_PROCS) || !iface)
- close(confd);
+ /* interface may be new since startup */
+ if (enumerate_interfaces(daemon) &&
+ getsockname(confd, (struct sockaddr *)&tcp_addr, &tcp_len) != -1)
+ for (iface = daemon->interfaces; iface; iface = iface->next)
+ if (sockaddr_isequal(&iface->addr, &tcp_addr))
+ break;
+ }
+
+ if ((daemon->num_kids >= MAX_PROCS) || !iface)
+ {
+ shutdown(confd, SHUT_RDWR);
+ close(confd);
+ }
#ifndef NO_FORK
- else if (!(daemon->options & OPT_DEBUG) && fork())
+ else if (!(daemon->options & OPT_DEBUG) && (p = fork()) != 0)
+ {
+ if (p != -1)
{
+ int i;
+ for (i = 0; i < MAX_PROCS; i++)
+ if (daemon->tcp_pids[i] == 0)
+ {
+ daemon->tcp_pids[i] = p;
+ break;
+ }
daemon->num_kids++;
- close(confd);
}
+ close(confd);
+ }
+#endif
+ else
+ {
+ unsigned char *buff;
+ struct server *s;
+ int flags;
+ struct in_addr dst_addr_4;
+
+ dst_addr_4.s_addr = 0;
+
+ /* Arrange for SIGALARM after CHILD_LIFETIME seconds to
+ terminate the process. */
+ if (!(daemon->options & OPT_DEBUG))
+ alarm(CHILD_LIFETIME);
+
+ /* start with no upstream connections. */
+ for (s = daemon->servers; s; s = s->next)
+ s->tcpfd = -1;
+
+ /* The connected socket inherits non-blocking
+ attribute from the listening socket.
+ Reset that here. */
+ if ((flags = fcntl(confd, F_GETFL, 0)) != -1)
+ fcntl(confd, F_SETFL, flags & ~O_NONBLOCK);
+
+ if (listener->family == AF_INET)
+ dst_addr_4 = iface->addr.in.sin_addr;
+
+ buff = tcp_request(daemon, confd, now, dst_addr_4, iface->netmask);
+
+ shutdown(confd, SHUT_RDWR);
+ close(confd);
+
+ if (buff)
+ free(buff);
+
+ for (s = daemon->servers; s; s = s->next)
+ if (s->tcpfd != -1)
+ {
+ shutdown(s->tcpfd, SHUT_RDWR);
+ close(s->tcpfd);
+ }
+#ifndef NO_FORK
+ if (!(daemon->options & OPT_DEBUG))
+ _exit(0);
#endif
- else
- {
- unsigned char *buff;
- struct server *s;
- int flags;
- struct in_addr dst_addr_4;
-
- dst_addr_4.s_addr = 0;
-
- /* Arrange for SIGALARM after CHILD_LIFETIME seconds to
- terminate the process. */
- if (!(daemon->options & OPT_DEBUG))
- alarm(CHILD_LIFETIME);
-
- /* start with no upstream connections. */
- for (s = daemon->servers; s; s = s->next)
- s->tcpfd = -1;
-
- /* The connected socket inherits non-blocking
- attribute from the listening socket.
- Reset that here. */
- if ((flags = fcntl(confd, F_GETFL, 0)) != -1)
- fcntl(confd, F_SETFL, flags & ~O_NONBLOCK);
-
- if (listener->family == AF_INET)
- dst_addr_4 = iface->addr.in.sin_addr;
-
- buff = tcp_request(daemon, confd, now, dst_addr_4, iface->netmask);
-
- if (!(daemon->options & OPT_DEBUG))
- exit(0);
-
- close(confd);
- if (buff)
- free(buff);
- for (s = daemon->servers; s; s = s->next)
- if (s->tcpfd != -1)
- close(s->tcpfd);
- }
}
}
}
}
+
int make_icmp_sock(void)
{
- int fd, flags;
+ int fd;
int zeroopt = 0;
if ((fd = socket (AF_INET, SOCK_RAW, IPPROTO_ICMP)) != -1)
{
- if ((flags = fcntl(fd, F_GETFL, 0)) == -1 ||
- fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1 ||
+ if (!fix_fd(fd) ||
setsockopt(fd, SOL_SOCKET, SO_DONTROUTE, &zeroopt, sizeof(zeroopt)) == -1)
{
close(fd);
diff --git a/src/dnsmasq.h b/src/dnsmasq.h
index 59a1a9e..6f4e91f 100644
--- a/src/dnsmasq.h
+++ b/src/dnsmasq.h
@@ -288,7 +288,9 @@ struct dhcp_lease {
int clid_len; /* length of client identifier */
unsigned char *clid; /* clientid */
char *hostname, *fqdn; /* name from client-hostname option or config */
- int auth_name; /* hostname came from config, not from client */
+ char auth_name; /* hostname came from config, not from client */
+ char new; /* newly created */
+ char old; /* read from leasefile */
time_t expires; /* lease expiry */
#ifdef HAVE_BROKEN_RTC
unsigned int length;
@@ -411,6 +413,7 @@ struct daemon {
char *username, *groupname;
char *domain_suffix;
char *runfile;
+ char *lease_change_command;
struct iname *if_names, *if_addrs, *if_except, *dhcp_except;
struct bogus_addr *bogus_addr;
struct server *servers;
@@ -440,6 +443,7 @@ struct daemon {
struct server *last_server;
struct server *srv_save; /* Used for resend on DoD */
size_t packet_len; /* " " */
+ pid_t script_pid, tcp_pids[MAX_PROCS];
int num_kids;
/* DHCP state */
@@ -522,6 +526,8 @@ int parse_hex(char *in, unsigned char *out, int maxlen,
int memcmp_masked(unsigned char *a, unsigned char *b, int len,
unsigned int mask);
int expand_buf(struct iovec *iov, size_t size);
+char *print_mac(struct daemon *daemon, unsigned char *mac, int len);
+
/* option.c */
struct daemon *read_opts (int argc, char **argv, char *compile_opts);
@@ -541,6 +547,7 @@ struct listener *create_wildcard_listeners(int port);
struct listener *create_bound_listeners(struct daemon *daemon);
int iface_check(struct daemon *daemon, int family,
struct all_addr *addr, char *name);
+int fix_fd(int fd);
/* dhcp.c */
void dhcp_init(struct daemon *daemon);
@@ -564,12 +571,11 @@ char *strip_hostname(struct daemon *daemon, char *hostname);
char *host_from_dns(struct daemon *daemon, struct in_addr addr);
/* lease.c */
-void lease_update_file(struct daemon *daemon);
+void lease_update_file(struct daemon *daemon, time_t now);
void lease_update_dns(struct daemon *daemon);
void lease_init(struct daemon *daemon, time_t now);
-struct dhcp_lease *lease_allocate(unsigned char *hwaddr, unsigned char *clid,
- int hw_len, int hw_type, int clid_len, struct in_addr addr);
-int lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
+struct dhcp_lease *lease_allocate(struct in_addr addr);
+void lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
unsigned char *clid, int hw_len, int hw_type, int clid_len);
void lease_set_hostname(struct dhcp_lease *lease, char *name,
char *suffix, int auth);
@@ -579,6 +585,7 @@ struct dhcp_lease *lease_find_by_client(unsigned char *hwaddr, int hw_len, int h
struct dhcp_lease *lease_find_by_addr(struct in_addr addr);
void lease_prune(struct dhcp_lease *target, time_t now);
void lease_update_from_configs(struct daemon *daemon);
+void lease_collect(struct daemon *daemon);
/* rfc2131.c */
size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *iface_name, size_t sz, time_t now, int unicast_dest);
@@ -586,7 +593,7 @@ size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *ifa
/* dnsmasq.c */
int make_icmp_sock(void);
int icmp_ping(struct daemon *daemon, struct in_addr addr);
-void clear_cache_and_reload(struct daemon *daemon);
+void clear_cache_and_reload(struct daemon *daemon, time_t now);
/* isc.c */
#ifdef HAVE_ISC_READER
@@ -599,8 +606,6 @@ void netlink_init(struct daemon *daemon);
int iface_enumerate(struct daemon *daemon, void *parm,
int (*ipv4_callback)(), int (*ipv6_callback)());
void netlink_multicast(struct daemon *daemon);
-void arp_inject(int fd, struct in_addr addr,
- int iface, unsigned char *mac, unsigned int mac_len);
#endif
/* bpf.c */
diff --git a/src/lease.c b/src/lease.c
index 38adf54..d584e28 100644
--- a/src/lease.c
+++ b/src/lease.c
@@ -12,64 +12,54 @@
#include "dnsmasq.h"
-static struct dhcp_lease *leases;
+static struct dhcp_lease *leases, *old_leases;
static int dns_dirty, file_dirty, leases_left;
void lease_init(struct daemon *daemon, time_t now)
{
- unsigned int a0, a1, a2, a3;
unsigned long ei;
unsigned char hwaddr[DHCP_CHADDR_MAX];
struct in_addr addr;
struct dhcp_lease *lease;
- int clid_len = 0, hw_len, hw_type;
+ int flags, clid_len, hw_len, hw_type;
- dns_dirty = 1;
- file_dirty = 0;
- leases = NULL;
+ leases = old_leases = NULL;
leases_left = daemon->dhcp_max;
/* NOTE: need a+ mode to create file if it doesn't exist */
if (!(daemon->lease_stream = fopen(daemon->lease_file, "a+")))
die(_("cannot open or create leases file: %s"), NULL);
-
+
+ flags = fcntl(fileno(daemon->lease_stream), F_GETFD);
+ if (flags != -1)
+ fcntl(fileno(daemon->lease_stream), F_SETFD, flags | FD_CLOEXEC);
+
/* a+ mode lease pointer at end. */
rewind(daemon->lease_stream);
/* client-id max length is 255 which is 255*2 digits + 254 colons
borrow DNS packet buffer which is always larger than 1000 bytes */
- while (fscanf(daemon->lease_stream, "%lu %255s %d.%d.%d.%d %255s %764s",
- &ei, daemon->dhcp_buff2, &a0, &a1, &a2, &a3,
- daemon->dhcp_buff, daemon->packet) == 8)
+ while (fscanf(daemon->lease_stream, "%lu %255s %16s %255s %764s",
+ &ei, daemon->dhcp_buff2, daemon->namebuff,
+ daemon->dhcp_buff, daemon->packet) == 5)
{
-#ifndef HAVE_BROKEN_RTC
- /* strictly time_t is opaque, but this hack should work on all sane systems,
- even when sizeof(time_t) == 8 */
- time_t expires = (time_t)ei;
-
- if (ei != 0 && difftime(now, expires) > 0)
- {
- file_dirty = 1;
- continue; /* expired */
- }
-#endif
-
hw_len = parse_hex(daemon->dhcp_buff2, hwaddr, DHCP_CHADDR_MAX, NULL, &hw_type);
/* For backwards compatibility, no explict MAC address type means ether. */
if (hw_type == 0 && hw_len != 0)
hw_type = ARPHRD_ETHER;
- addr.s_addr = htonl((a0<<24) + (a1<<16) + (a2<<8) + a3);
+ addr.s_addr = inet_addr(daemon->namebuff);
/* decode hex in place */
- if (strcmp(daemon->packet, "*") == 0)
- clid_len = 0;
- else
+ clid_len = 0;
+ if (strcmp(daemon->packet, "*") != 0)
clid_len = parse_hex(daemon->packet, (unsigned char *)daemon->packet, 255, NULL, NULL);
- if (!(lease = lease_allocate(hwaddr, (unsigned char *)daemon->packet, hw_len, hw_type, clid_len, addr)))
+ if (!(lease = lease_allocate(addr)))
die (_("too many stored leases"), NULL);
-
+ /* not actually new */
+ lease->new = 0;
+
#ifdef HAVE_BROKEN_RTC
if (ei != 0)
lease->expires = (time_t)ei + now;
@@ -77,12 +67,21 @@ void lease_init(struct daemon *daemon, time_t now)
lease->expires = (time_t)0;
lease->length = ei;
#else
- lease->expires = expires;
+ /* strictly time_t is opaque, but this hack should work on all sane systems,
+ even when sizeof(time_t) == 8 */
+ lease->expires = (time_t)ei;
#endif
+ lease_set_hwaddr(lease, hwaddr, (unsigned char *)daemon->packet, hw_len, hw_type, clid_len);
+
if (strcmp(daemon->dhcp_buff, "*") != 0)
lease_set_hostname(lease, daemon->dhcp_buff, daemon->domain_suffix, 0);
}
+
+ /* Some leases may have expired */
+ file_dirty = 0;
+ lease_prune(NULL, now);
+ dns_dirty = 1;
}
void lease_update_from_configs(struct daemon *daemon)
@@ -103,67 +102,83 @@ void lease_update_from_configs(struct daemon *daemon)
lease_set_hostname(lease, name, daemon->domain_suffix, 1); /* updates auth flag only */
}
-void lease_update_file(struct daemon *daemon)
+static void ourprintf(struct daemon *daemon, int *errp, char *format, ...)
{
- struct dhcp_lease *lease;
- int i;
+ va_list ap;
+ va_start(ap, format);
+ if (!(*errp) && vfprintf(daemon->lease_stream, format, ap) < 0)
+ *errp = errno;
+ va_end(ap);
+}
+
+void lease_update_file(struct daemon *daemon, time_t now)
+{
+ struct dhcp_lease *lease;
+ time_t next_event;
+ int i, err = 0;
+
if (file_dirty != 0)
{
errno = 0;
rewind(daemon->lease_stream);
if (errno != 0 || ftruncate(fileno(daemon->lease_stream), 0) != 0)
- {
- write_err:
- syslog(LOG_ERR, _("failed to write %s: %m (retry in %ds)"), daemon->lease_file, LEASE_RETRY);
- alarm(LEASE_RETRY);
- return;
- }
+ err = errno;
for (lease = leases; lease; lease = lease->next)
{
#ifdef HAVE_BROKEN_RTC
- if (fprintf(daemon->lease_stream, "%u ", lease->length) < 0)
- goto write_err;
+ ourprintf(daemon, &err, "%u ", lease->length);
#else
- if (fprintf(daemon->lease_stream, "%lu ", (unsigned long)lease->expires) < 0)
- goto write_err;
+ ourprintf(daemon, &err, "%lu ", (unsigned long)lease->expires);
#endif
- if ((lease->hwaddr_type != ARPHRD_ETHER || lease->hwaddr_len == 0) &&
- fprintf(daemon->lease_stream, "%.2x-", lease->hwaddr_type) < 0)
- goto write_err;
+ if (lease->hwaddr_type != ARPHRD_ETHER || lease->hwaddr_len == 0)
+ ourprintf(daemon, &err, "%.2x-", lease->hwaddr_type);
for (i = 0; i < lease->hwaddr_len; i++)
{
- if (fprintf(daemon->lease_stream, "%.2x", lease->hwaddr[i]) < 0)
- goto write_err;
- if (i != lease->hwaddr_len - 1 &&
- fprintf(daemon->lease_stream, ":") < 0)
- goto write_err;
+ ourprintf(daemon, &err, "%.2x", lease->hwaddr[i]);
+ if (i != lease->hwaddr_len - 1)
+ ourprintf(daemon, &err, ":");
}
- if (fprintf(daemon->lease_stream, " %s %s ", inet_ntoa(lease->addr),
- lease->hostname && strlen(lease->hostname) != 0 ? lease->hostname : "*") < 0)
- goto write_err;
+ ourprintf(daemon, &err, " %s %s ", inet_ntoa(lease->addr),
+ lease->hostname && strlen(lease->hostname) != 0 ? lease->hostname : "*");
if (lease->clid && lease->clid_len != 0)
{
for (i = 0; i < lease->clid_len - 1; i++)
- if (fprintf(daemon->lease_stream, "%.2x:", lease->clid[i]) < 0)
- goto write_err;
- if (fprintf(daemon->lease_stream, "%.2x\n", lease->clid[i]) < 0)
- goto write_err;
+ ourprintf(daemon, &err, "%.2x:", lease->clid[i]);
+ ourprintf(daemon, &err, "%.2x\n", lease->clid[i]);
}
else
- if (fprintf(daemon->lease_stream, "*\n") < 0)
- goto write_err;
-
+ ourprintf(daemon, &err, "*\n");
}
-
- if (fflush(daemon->lease_stream) != 0)
- goto write_err;
- if (fsync(fileno(daemon->lease_stream)) < 0)
- goto write_err;
- file_dirty = 0;
+
+ if (fflush(daemon->lease_stream) != 0 ||
+ fsync(fileno(daemon->lease_stream)) < 0)
+ err = errno;
+
+ if (!err)
+ file_dirty = 0;
+ }
+
+ /* Set alarm for when the first lease expires + slop. */
+ for (next_event = 0, lease = leases; lease; lease = lease->next)
+ if (lease->expires != 0 &&
+ (next_event == 0 || difftime(next_event, lease->expires + 10) > 0.0))
+ next_event = lease->expires + 10;
+
+ if (err)
+ {
+ if (next_event == 0 || difftime(next_event, LEASE_RETRY + now) > 0.0)
+ next_event = LEASE_RETRY + now;
+
+ syslog(LOG_ERR, _("failed to write %s: %s (retry in %us)"),
+ daemon->lease_file, strerror(err),
+ (unsigned int)difftime(next_event, now));
}
+
+ if (next_event != 0)
+ alarm((unsigned)difftime(next_event, now));
}
void lease_update_dns(struct daemon *daemon)
@@ -194,18 +209,16 @@ void lease_prune(struct dhcp_lease *target, time_t now)
if ((lease->expires != 0 && difftime(now, lease->expires) > 0) || lease == target)
{
file_dirty = 1;
-
- *up = lease->next; /* unlink */
if (lease->hostname)
- {
- free(lease->hostname);
- dns_dirty = 1;
- }
- if (lease->fqdn)
- free(lease->fqdn);
- if (lease->clid)
- free(lease->clid);
- free(lease);
+ dns_dirty = 1;
+
+ *up = lease->next; /* unlink */
+
+ /* Put on old_leases list 'till we
+ can run the script */
+ lease->next = old_leases;
+ old_leases = lease;
+
leases_left++;
}
else
@@ -248,30 +261,20 @@ struct dhcp_lease *lease_find_by_addr(struct in_addr addr)
}
-struct dhcp_lease *lease_allocate(unsigned char *hwaddr, unsigned char *clid,
- int hw_len, int hw_type, int clid_len, struct in_addr addr)
+struct dhcp_lease *lease_allocate(struct in_addr addr)
{
struct dhcp_lease *lease;
if (!leases_left || !(lease = malloc(sizeof(struct dhcp_lease))))
return NULL;
- lease->clid = NULL;
- lease->hostname = lease->fqdn = NULL;
+ memset(lease, 0, sizeof(struct dhcp_lease));
+ lease->new = 1;
lease->addr = addr;
- memset(lease->hwaddr, 0, DHCP_CHADDR_MAX);
- lease->hwaddr_len = 0;
- lease->hwaddr_type = 0;
+ lease->hwaddr_len = 225; /* illegal value */
lease->expires = 1;
#ifdef HAVE_BROKEN_RTC
lease->length = 0xffffffff; /* illegal value */
#endif
-
- if (!lease_set_hwaddr(lease, hwaddr, clid, hw_len, hw_type, clid_len))
- {
- free(lease);
- return NULL;
- }
-
lease->next = leases;
leases = lease;
@@ -309,22 +312,18 @@ void lease_set_expires(struct dhcp_lease *lease, unsigned int len, time_t now)
#endif
}
-int lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
+void lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
unsigned char *clid, int hw_len, int hw_type, int clid_len)
{
- /* must have some sort of unique-id */
- if (hw_len == 0 && (clid_len == 0 || !clid))
- return 0;
-
if (hw_len != lease->hwaddr_len ||
hw_type != lease->hwaddr_type ||
- hw_len == 0 ||
- memcmp(lease->hwaddr, hwaddr, hw_len) != 0)
+ (hw_len != 0 && memcmp(lease->hwaddr, hwaddr, hw_len) != 0))
{
file_dirty = 1;
memcpy(lease->hwaddr, hwaddr, hw_len);
lease->hwaddr_len = hw_len;
lease->hwaddr_type = hw_type;
+ lease->old = 1; /* run script on change */
}
/* only update clid when one is available, stops packets
@@ -341,7 +340,7 @@ int lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
if (lease->clid)
free(lease->clid);
if (!(lease->clid = malloc(clid_len)))
- return 0;
+ return;
}
else if (memcmp(lease->clid, clid, clid_len) != 0)
file_dirty = 1;
@@ -349,8 +348,6 @@ int lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
lease->clid_len = clid_len;
memcpy(lease->clid, clid, clid_len);
}
-
- return 1;
}
void lease_set_hostname(struct dhcp_lease *lease, char *name, char *suffix, int auth)
@@ -363,7 +360,7 @@ void lease_set_hostname(struct dhcp_lease *lease, char *name, char *suffix, int
lease->auth_name = auth;
return;
}
-
+
if (!name && !lease->hostname)
return;
@@ -379,6 +376,7 @@ void lease_set_hostname(struct dhcp_lease *lease, char *name, char *suffix, int
{
if (lease_tmp->auth_name && !auth)
return;
+ lease_tmp->old = 1; /* call script on change */
new_name = lease_tmp->hostname;
lease_tmp->hostname = NULL;
if (lease_tmp->fqdn)
@@ -410,8 +408,82 @@ void lease_set_hostname(struct dhcp_lease *lease, char *name, char *suffix, int
lease->auth_name = auth;
file_dirty = 1;
- dns_dirty = 1;
+ dns_dirty = 1;
+ lease->old = 1; /* run script on change */
+}
+
+
+#ifndef NO_FORK
+static pid_t run_script(struct daemon *daemon, char *action, struct dhcp_lease *lease)
+{
+ if (daemon->lease_change_command)
+ {
+ char *mac = print_mac(daemon, lease->hwaddr, lease->hwaddr_len);
+ char *addr = inet_ntoa(lease->addr);
+ char *com = strrchr(daemon->lease_change_command, '/');
+ pid_t pid = fork();
+
+ if (pid == -1)
+ return 0; /* fork error */
+ else if (pid != 0)
+ return pid;
+
+ execl(daemon->lease_change_command,
+ com ? com+1 : daemon->lease_change_command,
+ action, mac, addr, lease->hostname, (char*)NULL);
+
+ /* log socket should still be open, right? */
+ syslog(LOG_ERR, _("failed to execute %s: %m"),
+ daemon->lease_change_command);
+ _exit(0);
+ }
+
+ return 0;
}
+#endif
+/* deleted leases get transferred to the old_leases list.
+ remove them here, after calling the lease change
+ script. Also run the lease change script on new leases */
+void lease_collect(struct daemon *daemon)
+{
+ struct dhcp_lease *lease;
+ while (old_leases)
+ {
+ if (daemon->script_pid != 0)
+ return; /* busy */
+
+ lease = old_leases;
+ old_leases = lease->next;
+
+#ifndef NO_FORK
+ daemon->script_pid = run_script(daemon, "del", lease);
+#endif
+
+ if (lease->hostname)
+ free(lease->hostname);
+ if (lease->fqdn)
+ free(lease->fqdn);
+ if (lease->clid)
+ free(lease->clid);
+ free(lease);
+ }
+
+ for (lease = leases; lease; lease = lease->next)
+ if (lease->new || lease->old)
+ {
+ if (daemon->script_pid != 0)
+ return; /* busy */
+
+#ifndef NO_FORK
+ daemon->script_pid = run_script(daemon, lease->new ? "add" : "old", lease);
+#endif
+
+ lease->new = lease->old = 0;
+ }
+}
+
+
+
diff --git a/src/netlink.c b/src/netlink.c
index a396bb2..1be6c9a 100644
--- a/src/netlink.c
+++ b/src/netlink.c
@@ -48,8 +48,14 @@ void netlink_init(struct daemon *daemon)
}
if (daemon->netlinkfd == -1)
- die(_("cannot create RTnetlink socket: %s"), NULL);
-
+ die(_("cannot create netlink socket: %s"), NULL);
+ else
+ {
+ int flags = fcntl(daemon->netlinkfd, F_GETFD);
+ if (flags != -1)
+ fcntl(daemon->netlinkfd, F_SETFD, flags | FD_CLOEXEC);
+ }
+
iov.iov_len = 200;
iov.iov_base = safe_malloc(iov.iov_len);
}
@@ -114,7 +120,7 @@ int iface_enumerate(struct daemon *daemon, void *parm, int (*ipv4_callback)(), i
again:
req.nlh.nlmsg_len = sizeof(req);
req.nlh.nlmsg_type = RTM_GETADDR;
- req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
+ req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST | NLM_F_ACK;
req.nlh.nlmsg_pid = 0;
req.nlh.nlmsg_seq = ++seq;
req.g.rtgen_family = family;
@@ -215,7 +221,7 @@ static void nl_err(struct nlmsghdr *h)
{
struct nlmsgerr *err = NLMSG_DATA(h);
if (err->error != 0)
- syslog(LOG_ERR, _("RTnetlink returns error: %s"), strerror(-(err->error)));
+ syslog(LOG_ERR, _("netlink returns error: %s"), strerror(-(err->error)));
}
/* We arrange to receive netlink multicast messages whenever the network route is added.
@@ -234,45 +240,6 @@ static void nl_routechange(struct daemon *daemon, struct nlmsghdr *h)
&daemon->srv_save->addr.sa, sa_len(&daemon->srv_save->addr)) == -1 && retry_send());
}
}
-
-void arp_inject(int fd, struct in_addr ip_addr, int iface,
- unsigned char *mac, unsigned int mac_len)
-{
- struct sockaddr_nl addr;
- struct {
- struct nlmsghdr nlh;
- struct ndmsg m;
- struct rtattr addr_attr;
- struct in_addr addr;
- struct rtattr ll_attr;
- char mac[DHCP_CHADDR_MAX];
- } req;
-
- memset(&req, 0, sizeof(req));
- memset(&addr, 0, sizeof(addr));
-
- addr.nl_family = AF_NETLINK;
-
- req.nlh.nlmsg_len = sizeof(req);
- req.nlh.nlmsg_type = RTM_NEWNEIGH;
- req.nlh.nlmsg_flags = NLM_F_REQUEST | NLM_F_REPLACE | NLM_F_CREATE;
-
- req.m.ndm_family = AF_INET;
- req.m.ndm_ifindex = iface;
- req.m.ndm_state = NUD_REACHABLE;
-
- req.addr_attr.rta_type = NDA_DST;
- req.addr_attr.rta_len = RTA_LENGTH(sizeof(struct in_addr));
- req.addr = ip_addr;
-
- req.ll_attr.rta_type = NDA_LLADDR;
- req.ll_attr.rta_len = RTA_LENGTH(mac_len);
- memcpy(req.mac, mac, mac_len);
-
- while(sendto(fd, (void *)&req, sizeof(req), 0, (struct sockaddr *)&addr, sizeof(addr)) == -1 &&
- retry_send());
-}
-
#endif
diff --git a/src/network.c b/src/network.c
index f35f42a..b819e9b 100644
--- a/src/network.c
+++ b/src/network.c
@@ -180,11 +180,25 @@ int enumerate_interfaces(struct daemon *daemon)
#endif
}
+/* set NONBLOCK and CLOEXEC bits on fd: See Stevens 16.6 */
+int fix_fd(int fd)
+{
+ int flags;
+
+ if ((flags = fcntl(fd, F_GETFL)) == -1 ||
+ fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1 ||
+ (flags = fcntl(fd, F_GETFD)) == -1 ||
+ fcntl(fd, F_SETFD, flags | FD_CLOEXEC) == -1)
+ return 0;
+
+ return 1;
+}
+
#if defined(HAVE_IPV6)
static int create_ipv6_listener(struct listener **link, int port)
{
union mysockaddr addr;
- int tcpfd, fd, flags;
+ int tcpfd, fd;
struct listener *l;
int opt = 1;
@@ -210,10 +224,8 @@ static int create_ipv6_listener(struct listener **link, int port)
setsockopt(tcpfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1 ||
setsockopt(fd, IPV6_LEVEL, IPV6_V6ONLY, &opt, sizeof(opt)) == -1 ||
setsockopt(tcpfd, IPV6_LEVEL, IPV6_V6ONLY, &opt, sizeof(opt)) == -1 ||
- (flags = fcntl(fd, F_GETFL, 0)) == -1 ||
- fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1 ||
- (flags = fcntl(tcpfd, F_GETFL, 0)) == -1 ||
- fcntl(tcpfd, F_SETFL, flags | O_NONBLOCK) == -1 ||
+ !fix_fd(fd) ||
+ !fix_fd(tcpfd) ||
#ifdef IPV6_RECVPKTINFO
setsockopt(fd, IPV6_LEVEL, IPV6_RECVPKTINFO, &opt, sizeof(opt)) == -1 ||
#else
@@ -240,7 +252,6 @@ struct listener *create_wildcard_listeners(int port)
union mysockaddr addr;
int opt = 1;
struct listener *l, *l6 = NULL;
- int flags;
int tcpfd, fd;
addr.in.sin_family = AF_INET;
@@ -257,14 +268,12 @@ struct listener *create_wildcard_listeners(int port)
if (setsockopt(tcpfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1 ||
bind(tcpfd, (struct sockaddr *)&addr, sa_len(&addr)) == -1 ||
listen(tcpfd, 5) == -1 ||
- (flags = fcntl(tcpfd, F_GETFL, 0)) == -1 ||
- fcntl(tcpfd, F_SETFL, flags | O_NONBLOCK) == -1 ||
+ !fix_fd(tcpfd) ||
#ifdef HAVE_IPV6
!create_ipv6_listener(&l6, port) ||
#endif
setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1 ||
- (flags = fcntl(fd, F_GETFL, 0)) == -1 ||
- fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1 ||
+ !fix_fd(fd) ||
#if defined(HAVE_LINUX_NETWORK)
setsockopt(fd, SOL_IP, IP_PKTINFO, &opt, sizeof(opt)) == -1 ||
#elif defined(IP_RECVDSTADDR) && defined(IP_RECVIF)
@@ -288,7 +297,7 @@ struct listener *create_bound_listeners(struct daemon *daemon)
struct listener *listeners = NULL;
struct irec *iface;
- int flags, opt = 1;
+ int opt = 1;
for (iface = daemon->interfaces; iface; iface = iface->next)
{
@@ -300,11 +309,8 @@ struct listener *create_bound_listeners(struct daemon *daemon)
(new->fd = socket(iface->addr.sa.sa_family, SOCK_DGRAM, 0)) == -1 ||
setsockopt(new->fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1 ||
setsockopt(new->tcpfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1 ||
- /* See Stevens 16.6 */
- (flags = fcntl(new->tcpfd, F_GETFL, 0)) == -1 ||
- fcntl(new->tcpfd, F_SETFL, flags | O_NONBLOCK) == -1 ||
- (flags = fcntl(new->fd, F_GETFL, 0)) == -1 ||
- fcntl(new->fd, F_SETFL, flags | O_NONBLOCK) == -1)
+ !fix_fd(new->tcpfd) ||
+ !fix_fd(new->fd))
die(_("failed to create listening socket: %s"), NULL);
#ifdef HAVE_IPV6
@@ -348,7 +354,6 @@ struct listener *create_bound_listeners(struct daemon *daemon)
struct serverfd *allocate_sfd(union mysockaddr *addr, struct serverfd **sfds)
{
struct serverfd *sfd;
- int flags;
/* may have a suitable one already */
for (sfd = *sfds; sfd; sfd = sfd->next )
@@ -367,8 +372,7 @@ struct serverfd *allocate_sfd(union mysockaddr *addr, struct serverfd **sfds)
}
if (bind(sfd->fd, (struct sockaddr *)addr, sa_len(addr)) == -1 ||
- (flags = fcntl(sfd->fd, F_GETFL, 0)) == -1 ||
- fcntl(sfd->fd, F_SETFL, flags | O_NONBLOCK) == -1)
+ !fix_fd(sfd->fd))
{
int errsave = errno; /* save error from bind. */
close(sfd->fd);
diff --git a/src/option.c b/src/option.c
index 0457f7c..695a249 100644
--- a/src/option.c
+++ b/src/option.c
@@ -19,7 +19,7 @@ struct myoption {
int val;
};
-#define OPTSTRING "531yZDNLERKzowefnbvhdkqr:m:p:c:l:s:i:t:u:g:a:x:S:C:A:T:H:Q:I:B:F:G:O:M:X:V:U:j:P:J:W:Y:2:4:"
+#define OPTSTRING "531yZDNLERKzowefnbvhdkqr:m:p:c:l:s:i:t:u:g:a:x:S:C:A:T:H:Q:I:B:F:G:O:M:X:V:U:j:P:J:W:Y:2:4:6:"
static const struct myoption opts[] = {
{"version", 0, 0, 'v'},
@@ -82,6 +82,7 @@ static const struct myoption opts[] = {
{"bootp-dynamic", 0, 0, '3'},
{"dhcp-mac", 1, 0, '4'},
{"no-ping", 0, 0, '5'},
+ {"dhcp-script", 1, 0, '6'},
{0, 0, 0, 0}
};
@@ -180,6 +181,7 @@ static const struct {
{ "-3, --bootp-dynamic", gettext_noop("Enable dynamic address allocation for bootp."), NULL },
{ "-4, --dhcp-mac=<id>,<mac address>", gettext_noop("Map MAC address (with wildcards) to option set."), NULL },
{ "-5, --no-ping", gettext_noop("Disable ICMP echo address checking in the DHCP server."), NULL },
+ { "-6, --dhcp-script=path", gettext_noop("Script to run on DHCP lease creation and destruction."), NULL },
{ NULL, NULL, NULL }
};
@@ -609,6 +611,15 @@ struct daemon *read_opts (int argc, char **argv, char *compile_opts)
case 'l':
daemon->lease_file = safe_string_alloc(arg);
break;
+
+ case '6':
+#ifdef NO_FORK
+ problem = _("cannot run scripts under uClinux");
+ option = '?';
+#else
+ daemon->lease_change_command = safe_string_alloc(arg);
+#endif
+ break;
case 'H':
{
diff --git a/src/rfc2131.c b/src/rfc2131.c
index 80ae761..abb4239 100644
--- a/src/rfc2131.c
+++ b/src/rfc2131.c
@@ -72,7 +72,6 @@ static void bootp_option_put(struct dhcp_packet *mess,
struct dhcp_boot *boot_opts, struct dhcp_netid *netids);
static struct in_addr option_addr(unsigned char *opt);
static unsigned int option_uint(unsigned char *opt, int size);
-static char *print_mac(struct daemon *daemon, unsigned char *mac, int len);
static void log_packet(struct daemon *daemon, char *type, struct in_addr *addr,
struct dhcp_packet *mess, char *interface, char *string);
static unsigned char *option_find(struct dhcp_packet *mess, size_t size, int opt_type, int minsize);
@@ -329,7 +328,9 @@ size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *ifa
mess->yiaddr = lease->addr;
}
- if (!message && !lease && (!(lease = lease_allocate(mess->chaddr, NULL, mess->hlen, mess->htype, 0, mess->yiaddr))))
+ if (!message &&
+ !lease &&
+ (!(lease = lease_allocate(mess->yiaddr))))
message = _("no leases left");
if (!message && !(context = narrow_context(context, mess->yiaddr)))
@@ -730,7 +731,11 @@ size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *ifa
else if ((ltmp = lease_find_by_addr(mess->yiaddr)) && ltmp != lease)
message = _("address in use");
- else if (!lease && !(lease = lease_allocate(mess->chaddr, clid, mess->hlen, mess->htype, clid_len, mess->yiaddr)))
+ else if (!clid && mess->hlen == 0)
+ message = _("no unique-id");
+
+ else if (!lease &&
+ !(lease = lease_allocate(mess->yiaddr)))
message = _("no leases left");
}
@@ -855,25 +860,10 @@ static unsigned int calc_time(struct dhcp_context *context, struct dhcp_config *
return time;
}
-static char *print_mac(struct daemon *daemon, unsigned char *mac, int len)
-{
- char *p = daemon->namebuff;
- int i;
-
- if (len == 0)
- sprintf(p, "<null> ");
- else
- for (i = 0; i < len; i++)
- p += sprintf(p, "%.2x%s", mac[i], (i == len - 1) ? " " : ":");
-
- return daemon->namebuff;
-}
-
-
static void log_packet(struct daemon *daemon, char *type, struct in_addr *addr,
struct dhcp_packet *mess, char *interface, char *string)
{
- syslog(LOG_INFO, "%s%s(%s) %s%s%s%s",
+ syslog(LOG_INFO, "%s%s(%s) %s%s%s %s",
type ? "DHCP" : "BOOTP",
type ? type : "",
interface,
diff --git a/src/util.c b/src/util.c
index 4da4c92..bb6e349 100644
--- a/src/util.c
+++ b/src/util.c
@@ -396,3 +396,17 @@ int expand_buf(struct iovec *iov, size_t size)
return 1;
}
+
+char *print_mac(struct daemon *daemon, unsigned char *mac, int len)
+{
+ char *p = daemon->namebuff;
+ int i;
+
+ if (len == 0)
+ sprintf(p, "<null>");
+ else
+ for (i = 0; i < len; i++)
+ p += sprintf(p, "%.2x%s", mac[i], (i == len - 1) ? "" : ":");
+
+ return daemon->namebuff;
+}