diff options
-rw-r--r-- | CHANGELOG | 28 | ||||
-rw-r--r-- | bld/Makefile | 4 | ||||
-rwxr-xr-x | bld/pkg-wrapper | 2 | ||||
-rw-r--r-- | dbus/DBus-interface (renamed from DBus-interface) | 0 | ||||
-rw-r--r-- | dbus/dnsmasq.conf | 16 | ||||
-rw-r--r-- | dnsmasq-rh.spec | 133 | ||||
-rw-r--r-- | dnsmasq-suse.spec | 2 | ||||
-rw-r--r-- | dnsmasq.conf.example | 6 | ||||
-rw-r--r-- | doc.html | 3 | ||||
-rw-r--r-- | man/dnsmasq.8 | 29 | ||||
-rw-r--r-- | po/de.po | 363 | ||||
-rw-r--r-- | po/es.po | 367 | ||||
-rw-r--r-- | po/fi.po | 363 | ||||
-rw-r--r-- | po/fr.po | 367 | ||||
-rw-r--r-- | po/id.po | 369 | ||||
-rw-r--r-- | po/no.po | 367 | ||||
-rw-r--r-- | po/pl.po | 367 | ||||
-rw-r--r-- | po/pt_BR.po | 363 | ||||
-rw-r--r-- | po/ro.po | 367 | ||||
-rw-r--r-- | rpm/dnsmasq.rh | 93 | ||||
-rw-r--r-- | src/bpf.c | 7 | ||||
-rw-r--r-- | src/config.h | 14 | ||||
-rw-r--r-- | src/dbus.c | 4 | ||||
-rw-r--r-- | src/dhcp.c | 23 | ||||
-rw-r--r-- | src/dnsmasq.c | 281 | ||||
-rw-r--r-- | src/dnsmasq.h | 21 | ||||
-rw-r--r-- | src/lease.c | 278 | ||||
-rw-r--r-- | src/netlink.c | 53 | ||||
-rw-r--r-- | src/network.c | 42 | ||||
-rw-r--r-- | src/option.c | 13 | ||||
-rw-r--r-- | src/rfc2131.c | 28 | ||||
-rw-r--r-- | src/util.c | 14 |
32 files changed, 2270 insertions, 2117 deletions
@@ -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 @@ -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; @@ -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 "" @@ -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" @@ -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 "" @@ -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" @@ -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 "" @@ -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" @@ -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 "" @@ -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 - @@ -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 - @@ -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); @@ -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, @@ -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; +} |