Compare commits

...
18 Commits
Author SHA1 Message Date
Kevin Darbyshire-Bryant 34b5d19488 Update DNSSEC timestamp file on process TERM. 2015-07-27 19:34:23 +01:00
Conrad Kostecki d6cb7e4815 Update german translation 2015-07-27 19:22:49 +01:00
Simon Kelley d389e0191b DNSSEC fix: correct logic for signed records in unsigned DNS space. 2015-07-27 18:56:43 +01:00
Simon Kelley d3699bb6bc Small tweak to DNSSEC fix. 2015-07-16 22:37:37 +01:00
Simon Kelley 13480e8c2a DNSSEC fix, signed wildcard CNAME to unsigned domain. 2015-07-16 22:23:13 +01:00
Jan Psota 5b3b93f80a Update Polish translation. 2015-07-15 19:57:47 +01:00
Simon Kelley b69e845b1c Close Lauchpad bug in Debian changelog. 2015-07-15 19:54:50 +01:00
Simon Kelley 90c3822bfa Grow pollfds array exponentially. 2015-07-13 12:47:52 +01:00
Simon Kelley c895a0626d Merge messages for translations. 2015-07-12 21:27:40 +01:00
Simon Kelley b842bc97bb Use poll() instead of select() to remove limits on open file descriptors. 2015-07-12 21:09:11 +01:00
Simon Kelley 0f38fa05a6 Log message typo. 2015-07-08 22:42:14 +01:00
Simon Kelley 45c5cb1f8f Fix compilation warning. 2015-07-08 22:40:57 +01:00
Simon Kelley f6d6956261 Test for overflowing platform FD_SET size. 2015-07-08 22:38:13 +01:00
Simon Kelley 60176c7bf4 Bump version in Debian changelog. 2015-07-07 21:54:55 +01:00
Simon Kelley 362c9303da Fix inotify code to handle dangling symlinks better. 2015-07-06 21:48:49 +01:00
Simon Kelley 5e95a552ee Avoid hanngs in DHCP ping code when system time goes backwards. 2015-07-05 22:31:30 +01:00
Simon Kelley 90cb222551 --conf-file should read no file, not try and read the default file. 2015-07-05 21:59:10 +01:00
Ján Sáreník 850163288d Manpage typo fix. 2015-07-05 21:23:27 +01:00
26 changed files with 999 additions and 715 deletions

No files matched your search

+12
View File
@@ -1,3 +1,15 @@
version 2.74
Fix reversion in 2.73 where --conf-file would attempt to
read the default file, rather than no file.
Fix inotify code to handle dangling symlinks better and
not SEGV in some circumstances.
DNSSEC fix. In the case of a signed CNAME generated by a
wildcard which pointed to an unsigned domain, the wrong
status would be logged, and some necessary checks omitted.
version 2.73 version 2.73
Fix crash at startup when an empty suffix is supplied to Fix crash at startup when an empty suffix is supplied to
--conf-dir, also trivial memory leak. Thanks to --conf-dir, also trivial memory leak. Thanks to
+1 -1
View File
@@ -73,7 +73,7 @@ objs = cache.o rfc1035.o util.o option.o forward.o network.o \
dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o \ dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o \
helper.o tftp.o log.o conntrack.o dhcp6.o rfc3315.o \ helper.o tftp.o log.o conntrack.o dhcp6.o rfc3315.o \
dhcp-common.o outpacket.o radv.o slaac.o auth.o ipset.o \ dhcp-common.o outpacket.o radv.o slaac.o auth.o ipset.o \
domain.o dnssec.o blockdata.o tables.o loop.o inotify.o domain.o dnssec.o blockdata.o tables.o loop.o inotify.o poll.o
hdrs = dnsmasq.h config.h dhcp-protocol.h dhcp6-protocol.h \ hdrs = dnsmasq.h config.h dhcp-protocol.h dhcp6-protocol.h \
dns-protocol.h radv-protocol.h ip6addr.h dns-protocol.h radv-protocol.h ip6addr.h
+1 -1
View File
@@ -10,7 +10,7 @@ LOCAL_SRC_FILES := bpf.c cache.c dbus.c dhcp.c dnsmasq.c \
dhcp6.c rfc3315.c dhcp-common.c outpacket.c \ dhcp6.c rfc3315.c dhcp-common.c outpacket.c \
radv.c slaac.c auth.c ipset.c domain.c \ radv.c slaac.c auth.c ipset.c domain.c \
dnssec.c dnssec-openssl.c blockdata.c tables.c \ dnssec.c dnssec-openssl.c blockdata.c tables.c \
loop.c inotify.c loop.c inotify.c poll.c
LOCAL_MODULE := dnsmasq LOCAL_MODULE := dnsmasq
+12
View File
@@ -1,3 +1,15 @@
dnsmasq (2.74-1) unstable; urgency=low
* New upstream. (LP: #1468611)
-- Simon Kelley <simon@thekelleys.org.uk> Wed, 15 Jul 2015 21:54:11 +0000
dnsmasq (2.73-2) unstable; urgency=low
* Fix behaviour of empty --conf-file (closes: #790341)
-- Simon Kelley <simon@thekelleys.org.uk> Thu, 7 Jul 2015 21:46:42 +0000
dnsmasq (2.73-1) unstable; urgency=low dnsmasq (2.73-1) unstable; urgency=low
* New upstream. (closes: #786996) * New upstream. (closes: #786996)
+1 -1
View File
@@ -654,7 +654,7 @@ Provide DS records to act a trust anchors for DNSSEC
validation. Typically these will be the DS record(s) for Zone Signing validation. Typically these will be the DS record(s) for Zone Signing
key(s) of the root zone, key(s) of the root zone,
but trust anchors for limited domains are also possible. The current but trust anchors for limited domains are also possible. The current
root-zone trust anchors may be donwloaded from https://data.iana.org/root-anchors/root-anchors.xml root-zone trust anchors may be downloaded from https://data.iana.org/root-anchors/root-anchors.xml
.TP .TP
.B --dnssec-check-unsigned .B --dnssec-check-unsigned
As a default, dnsmasq does not check that unsigned DNS replies are As a default, dnsmasq does not check that unsigned DNS replies are
+34 -45
View File
@@ -9,10 +9,10 @@
# Simon Kelley <simon@thekelleys.org.uk>, 2005. # Simon Kelley <simon@thekelleys.org.uk>, 2005.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dnsmasq 2.73\n" "Project-Id-Version: dnsmasq 2.74\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-18 12:24+0100\n" "POT-Creation-Date: 2009-06-18 12:24+0100\n"
"PO-Revision-Date: 2015-01-19 15:43+0100\n" "PO-Revision-Date: 2015-07-22 23:07+0200\n"
"Last-Translator: Conrad Kostecki <ck@conrad-kostecki.de>\n" "Last-Translator: Conrad Kostecki <ck@conrad-kostecki.de>\n"
"Language-Team: German <de@li.org>\n" "Language-Team: German <de@li.org>\n"
"Language: de\n" "Language: de\n"
@@ -20,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.7.3\n" "X-Generator: Poedit 1.8.3\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
#: cache.c:523 #: cache.c:523
@@ -191,14 +191,12 @@ msgid "Read DHCP option specs from file."
msgstr "DHCP-Optionen aus Datei lesen." msgstr "DHCP-Optionen aus Datei lesen."
#: option.c:348 #: option.c:348
#, fuzzy
msgid "Read DHCP host specs from a directory." msgid "Read DHCP host specs from a directory."
msgstr "DHCP-Host-Angaben aus Datei lesen." msgstr "DHCP-Host-Angaben aus einem Verzeichnis lesen."
#: option.c:349 #: option.c:349
#, fuzzy
msgid "Read DHCP options from a directory." msgid "Read DHCP options from a directory."
msgstr "DHCP-Optionen aus Datei lesen." msgstr "DHCP-Optionen aus einem Verzeichnis lesen."
#: option.c:350 #: option.c:350
msgid "Evaluate conditional tag expression." msgid "Evaluate conditional tag expression."
@@ -215,9 +213,8 @@ msgid "Specify a hosts file to be read in addition to %s."
msgstr "Hosts-Datei festlegen, die zusätzlich zu %s gelesen wird." msgstr "Hosts-Datei festlegen, die zusätzlich zu %s gelesen wird."
#: option.c:353 #: option.c:353
#, fuzzy
msgid "Read hosts files from a directory." msgid "Read hosts files from a directory."
msgstr "DHCP-Host-Angaben aus Datei lesen." msgstr "DHCP-Host-Dateien aus einem Verzeichnis lesen."
#: option.c:354 #: option.c:354
msgid "Specify interface(s) to listen on." msgid "Specify interface(s) to listen on."
@@ -361,14 +358,12 @@ msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
msgstr "Gültigkeitsdauer in Sekunden für Caching negativer Ergebnisse festlegen." msgstr "Gültigkeitsdauer in Sekunden für Caching negativer Ergebnisse festlegen."
#: option.c:388 #: option.c:388
#, fuzzy
msgid "Specify time-to-live ceiling for cache." msgid "Specify time-to-live ceiling for cache."
msgstr "Gültigkeitsdauer in Sekunden für Caching negativer Ergebnisse festlegen." msgstr "Spezifiziere time-to-live ceiling für Cache."
#: option.c:389 #: option.c:389
#, fuzzy
msgid "Specify time-to-live floor for cache." msgid "Specify time-to-live floor for cache."
msgstr "Gültigkeitsdauer in Sekunden für Caching negativer Ergebnisse festlegen." msgstr "Spezifiziere time-to-live floor für Cache."
#: option.c:390 #: option.c:390
#, c-format #, c-format
@@ -514,7 +509,7 @@ msgstr "Zugriff nur auf Dateien gestatten, die dem dnsmasq aufrufenden Benutzer
#: option.c:424 #: option.c:424
msgid "Do not terminate the service if TFTP directories are inaccessible." msgid "Do not terminate the service if TFTP directories are inaccessible."
msgstr "" msgstr "Der Dienst sollte nicht beendet werden, wenn die TFTP-Verzeichnisse nicht zugreifbar sind."
#: option.c:425 #: option.c:425
#, c-format #, c-format
@@ -704,7 +699,7 @@ msgstr "DNSSEC Signatur-Zeitstempel nicht prüfen, bis erstmalig der Cache neuge
#: option.c:471 #: option.c:471
msgid "Timestamp file to verify system clock for DNSSEC" msgid "Timestamp file to verify system clock for DNSSEC"
msgstr "" msgstr "Zeitstempel-Datei für die Verifizierung der Systemuhrzeit für DNSSEC"
#: option.c:473 #: option.c:473
msgid "Specify DHCPv6 prefix class" msgid "Specify DHCPv6 prefix class"
@@ -736,7 +731,7 @@ msgstr "Erkennen und Entfernen von DNS-Weiterleitungsschleifen"
#: option.c:481 #: option.c:481
msgid "Ignore DNS responses containing ipaddr." msgid "Ignore DNS responses containing ipaddr."
msgstr "" msgstr "Ignoriere DNS-Antworten, welche ipaddr enthalten."
#: option.c:683 #: option.c:683
#, c-format #, c-format
@@ -1237,15 +1232,13 @@ msgstr "Benutze Namensserver %s#%d"
#: dnsmasq.c:163 #: dnsmasq.c:163
msgid "dhcp-hostsdir, dhcp-optsdir and hostsdir are not supported on this platform" msgid "dhcp-hostsdir, dhcp-optsdir and hostsdir are not supported on this platform"
msgstr "" msgstr "dhcp-hostsdir, dhcp-optsdir und hostsdir sind auf dieser Plattform nicht unterstüzt"
#: dnsmasq.c:170 #: dnsmasq.c:170
#, fuzzy
msgid "no trust anchors provided for DNSSEC" msgid "no trust anchors provided for DNSSEC"
msgstr "Keine Vertrauensursprünge (Trust Anchor) für DNSSEC verfügbar" msgstr "Keine Vertrauensursprünge (Trust Anchor) für DNSSEC verfügbar"
#: dnsmasq.c:173 #: dnsmasq.c:173
#, fuzzy
msgid "cannot reduce cache size from default when DNSSEC enabled" msgid "cannot reduce cache size from default when DNSSEC enabled"
msgstr "Kann die Standard Cachegröße nicht verkleinern, wenn DNSSEC aktiviert ist" msgstr "Kann die Standard Cachegröße nicht verkleinern, wenn DNSSEC aktiviert ist"
@@ -1258,14 +1251,12 @@ msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr "TFTP-Server nicht verfügbar, setzen Sie HAVE_TFTP in src/config.h" msgstr "TFTP-Server nicht verfügbar, setzen Sie HAVE_TFTP in src/config.h"
#: dnsmasq.c:186 #: dnsmasq.c:186
#, fuzzy
msgid "cannot use --conntrack AND --query-port" msgid "cannot use --conntrack AND --query-port"
msgstr "Kann nicht --conntrack UND --query-port einsetzen" msgstr "Kann nicht --conntrack UND --query-port einsetzen"
#: dnsmasq.c:189 #: dnsmasq.c:189
#, fuzzy
msgid "conntrack support not available: set HAVE_CONNTRACK in src/config.h" msgid "conntrack support not available: set HAVE_CONNTRACK in src/config.h"
msgstr "Conntrack-Unterstützung nicht verfügbar: setze HAVE_CONNTRACK in src/config.h" msgstr "Conntrack-Unterstützung nicht verfügbar: Aktiviere HAVE_CONNTRACK in src/config.h"
#: dnsmasq.c:194 #: dnsmasq.c:194
msgid "asychronous logging is not available under Solaris" msgid "asychronous logging is not available under Solaris"
@@ -1280,9 +1271,8 @@ msgid "authoritative DNS not available: set HAVE_AUTH in src/config.h"
msgstr "Authoritatives DNS nicht verfügbar: Es muss HAVE_AUTH in src/config.h gesetzt sein" msgstr "Authoritatives DNS nicht verfügbar: Es muss HAVE_AUTH in src/config.h gesetzt sein"
#: dnsmasq.c:209 #: dnsmasq.c:209
#, fuzzy
msgid "loop detection not available: set HAVE_LOOP in src/config.h" msgid "loop detection not available: set HAVE_LOOP in src/config.h"
msgstr "Loop-Erkennung nicht verfügbar, setzen Sie HAVE_LOOP in src/config.h" msgstr "Loop-Erkennung nicht verfügbar, Aktiviere HAVE_LOOP in src/config.h"
#: dnsmasq.c:217 #: dnsmasq.c:217
msgid "zone serial must be configured in --auth-soa" msgid "zone serial must be configured in --auth-soa"
@@ -1367,9 +1357,8 @@ msgid "DNSSEC signature timestamps not checked until first cache reload"
msgstr "DNSSEC Signatur-Zeitstempel werden erst ab dem ersten Neuladen des Caches überprüft" msgstr "DNSSEC Signatur-Zeitstempel werden erst ab dem ersten Neuladen des Caches überprüft"
#: dnsmasq.c:733 #: dnsmasq.c:733
#, fuzzy
msgid "DNSSEC signature timestamps not checked until system time valid" msgid "DNSSEC signature timestamps not checked until system time valid"
msgstr "DNSSEC Signatur-Zeitstempel werden erst ab dem ersten Neuladen des Caches überprüft" msgstr "DNSSEC Signatur-Zeitstempel werden erst überprüft, sobald die Systemuhrzeit gültig ist"
#: dnsmasq.c:738 #: dnsmasq.c:738
#, c-format #, c-format
@@ -1423,12 +1412,12 @@ msgstr "sicherer Modus"
#: dnsmasq.c:813 #: dnsmasq.c:813
#, c-format #, c-format
msgid "warning: %s inaccessible" msgid "warning: %s inaccessible"
msgstr "" msgstr "Warnung: %s nicht zugreifbar"
#: dnsmasq.c:817 #: dnsmasq.c:817
#, fuzzy, c-format #, c-format
msgid "warning: TFTP directory %s inaccessible" msgid "warning: TFTP directory %s inaccessible"
msgstr "Das TFTP-Verzeichnis %s ist nicht zugreifbar: %s" msgstr "Warnung: Das TFTP-Verzeichnis %s ist nicht zugreifbar"
#: dnsmasq.c:843 #: dnsmasq.c:843
#, c-format #, c-format
@@ -1485,9 +1474,9 @@ msgid "TFTP directory %s inaccessible: %s"
msgstr "Das TFTP-Verzeichnis %s ist nicht zugreifbar: %s" msgstr "Das TFTP-Verzeichnis %s ist nicht zugreifbar: %s"
#: dnsmasq.c:1216 #: dnsmasq.c:1216
#, fuzzy, c-format #, c-format
msgid "cannot create timestamp file %s: %s" msgid "cannot create timestamp file %s: %s"
msgstr "kann Lease-Datei %s nicht öffnen: %s" msgstr "Kann keine timestamp-Datei %s erzeugen: %s "
#: dnsmasq.c:1237 #: dnsmasq.c:1237
msgid "now checking DNSSEC signature timestamps" msgid "now checking DNSSEC signature timestamps"
@@ -1806,12 +1795,12 @@ msgstr "Versuch, via DBus eine IPv6-Serveradresse zu setzen: keine IPv6-Unterst
#: dbus.c:439 #: dbus.c:439
#, c-format #, c-format
msgid "Enabling --%s option from D-Bus" msgid "Enabling --%s option from D-Bus"
msgstr "" msgstr "Aktiviere --%s Option von D-Bus"
#: dbus.c:444 #: dbus.c:444
#, c-format #, c-format
msgid "Disabling --%s option from D-Bus" msgid "Disabling --%s option from D-Bus"
msgstr "" msgstr "Deaktiviere --%s Option von D-Bus"
#: dbus.c:691 #: dbus.c:691
msgid "setting upstream servers from DBus" msgid "setting upstream servers from DBus"
@@ -2087,9 +2076,9 @@ msgid "failed to create IPset control socket: %s"
msgstr "konnte IPset-Kontroll-Socket nicht erzeugen: %s" msgstr "konnte IPset-Kontroll-Socket nicht erzeugen: %s"
#: dnssec.c:449 dnssec.c:493 #: dnssec.c:449 dnssec.c:493
#, fuzzy, c-format #, c-format
msgid "failed to update mtime on %s: %s" msgid "failed to update mtime on %s: %s"
msgstr "kann die Prozessidentifikations-(PID)-Datei %s nicht öffnen: %s" msgstr "kann die mtime nicht auf %s aktualisieren: %s"
#: blockdata.c:58 #: blockdata.c:58
#, c-format #, c-format
@@ -2140,34 +2129,34 @@ msgid "%d addresses %s"
msgstr "%d Adressen %s" msgstr "%d Adressen %s"
#: inotify.c:46 #: inotify.c:46
#, fuzzy, c-format #, c-format
msgid "failed to create inotify: %s" msgid "failed to create inotify: %s"
msgstr "kann Helfer nicht erzeugen: %s" msgstr "Kann kein inotify erzeugen: %s"
#: inotify.c:60 #: inotify.c:60
#, fuzzy, c-format #, c-format
msgid "cannot cannonicalise resolv-file %s: %s" msgid "cannot cannonicalise resolv-file %s: %s"
msgstr "kann Lease-Datei %s nicht öffnen: %s" msgstr "Kann die resolv-file %s nicht kanonisieren: %s"
#: inotify.c:72 #: inotify.c:72
#, c-format #, c-format
msgid "directory %s for resolv-file is missing, cannot poll" msgid "directory %s for resolv-file is missing, cannot poll"
msgstr "" msgstr "Verzeichnis %s für resolv-file fehlt, kann nicht pollen"
#: inotify.c:75 inotify.c:112 #: inotify.c:75 inotify.c:112
#, fuzzy, c-format #, c-format
msgid "failed to create inotify for %s: %s" msgid "failed to create inotify for %s: %s"
msgstr "Konnte Empfangs-Socket für %s: %s nicht erzeugen" msgstr "Konnte inotify für %s: %s nicht erzeugen"
#: inotify.c:97 #: inotify.c:97
#, fuzzy, c-format #, c-format
msgid "bad dynamic directory %s: %s" msgid "bad dynamic directory %s: %s"
msgstr "Kann auf Verzeichnis %s nicht zugreifen: %s" msgstr "fehlerhaftes dynamisches Verzeichnis %s: %s"
#: inotify.c:197 #: inotify.c:197
#, c-format #, c-format
msgid "inotify, new or changed file %s" msgid "inotify, new or changed file %s"
msgstr "" msgstr "inotify, neue oder geänderte Datei %s"
#~ msgid "no interface with address %s" #~ msgid "no interface with address %s"
#~ msgstr "keine Schnittstelle mit Adresse %s" #~ msgstr "keine Schnittstelle mit Adresse %s"
+54 -45
View File
@@ -1129,35 +1129,35 @@ msgstr "pruebe -w"
msgid "bad command line options: %s" msgid "bad command line options: %s"
msgstr "opciones de línea de comandos erróneas: %s" msgstr "opciones de línea de comandos erróneas: %s"
#: option.c:4544 #: option.c:4541
#, c-format #, c-format
msgid "cannot get host-name: %s" msgid "cannot get host-name: %s"
msgstr "no se puede obtener host-name (nombre de host): %s" msgstr "no se puede obtener host-name (nombre de host): %s"
#: option.c:4572 #: option.c:4569
msgid "only one resolv.conf file allowed in no-poll mode." msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "solo un archivo resolv.conf está permitido en modo no-poll." msgstr "solo un archivo resolv.conf está permitido en modo no-poll."
#: option.c:4582 #: option.c:4579
msgid "must have exactly one resolv.conf to read domain from." msgid "must have exactly one resolv.conf to read domain from."
msgstr "debe haber exáctamente un resolv.conf desde donde leer dominio." msgstr "debe haber exáctamente un resolv.conf desde donde leer dominio."
#: option.c:4585 network.c:1507 dhcp.c:777 #: option.c:4582 network.c:1507 dhcp.c:777
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to read %s: %s" msgid "failed to read %s: %s"
msgstr "no se pudo leer %s: %s" msgstr "no se pudo leer %s: %s"
#: option.c:4602 #: option.c:4599
#, c-format #, c-format
msgid "no search directive found in %s" msgid "no search directive found in %s"
msgstr "ninguna directiva de búsqueda encontrada en %s" msgstr "ninguna directiva de búsqueda encontrada en %s"
#: option.c:4623 #: option.c:4620
#, fuzzy #, fuzzy
msgid "there must be a default domain when --dhcp-fqdn is set" msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr "debe haber un dominio predeterminado cuando --dhcp-fqdn está fijado" msgstr "debe haber un dominio predeterminado cuando --dhcp-fqdn está fijado"
#: option.c:4632 #: option.c:4629
msgid "syntax check OK" msgid "syntax check OK"
msgstr "revisión de sintaxis OK" msgstr "revisión de sintaxis OK"
@@ -1180,11 +1180,11 @@ msgstr "servidor DNS %s rechaz
msgid "possible DNS-rebind attack detected: %s" msgid "possible DNS-rebind attack detected: %s"
msgstr "posible ataque de revinculación DNS detectado" msgstr "posible ataque de revinculación DNS detectado"
#: forward.c:1209 forward.c:1785 #: forward.c:1209 forward.c:1815
msgid "Ignoring query from non-local network" msgid "Ignoring query from non-local network"
msgstr "" msgstr ""
#: forward.c:2256 #: forward.c:2286
#, fuzzy, c-format #, fuzzy, c-format
msgid "Maximum number of concurrent DNS queries reached (max: %d)" msgid "Maximum number of concurrent DNS queries reached (max: %d)"
msgstr "Número máximo de búsquedas DNS simultáneas alcanzado. (%s por predeterminado)" msgstr "Número máximo de búsquedas DNS simultáneas alcanzado. (%s por predeterminado)"
@@ -1348,7 +1348,7 @@ msgstr "no se pudo encontrar lista de interfases: %s"
msgid "unknown interface %s" msgid "unknown interface %s"
msgstr "interfase desconocida %s" msgstr "interfase desconocida %s"
#: dnsmasq.c:354 dnsmasq.c:1037 #: dnsmasq.c:354 dnsmasq.c:997
#, c-format #, c-format
msgid "DBus error: %s" msgid "DBus error: %s"
msgstr "error DBus: %s" msgstr "error DBus: %s"
@@ -1448,122 +1448,122 @@ msgstr "Anuncio de router IPv6 habilitado"
msgid "DHCP, sockets bound exclusively to interface %s" msgid "DHCP, sockets bound exclusively to interface %s"
msgstr "" msgstr ""
#: dnsmasq.c:808 #: dnsmasq.c:804
msgid "root is " msgid "root is "
msgstr "root está " msgstr "root está "
#: dnsmasq.c:808 #: dnsmasq.c:804
#, fuzzy #, fuzzy
msgid "enabled" msgid "enabled"
msgstr "habilitado" msgstr "habilitado"
#: dnsmasq.c:810 #: dnsmasq.c:806
msgid "secure mode" msgid "secure mode"
msgstr "modo seguro" msgstr "modo seguro"
#: dnsmasq.c:813 #: dnsmasq.c:809
#, c-format #, c-format
msgid "warning: %s inaccessible" msgid "warning: %s inaccessible"
msgstr "" msgstr ""
#: dnsmasq.c:817 #: dnsmasq.c:813
#, fuzzy, c-format #, fuzzy, c-format
msgid "warning: TFTP directory %s inaccessible" msgid "warning: TFTP directory %s inaccessible"
msgstr "directorio TFTP % inaccesible: %s" msgstr "directorio TFTP % inaccesible: %s"
#: dnsmasq.c:843 #: dnsmasq.c:839
#, c-format #, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d" msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "limitando número máximo de transferencias TFTP simultáneas a %d" msgstr "limitando número máximo de transferencias TFTP simultáneas a %d"
#: dnsmasq.c:1039 #: dnsmasq.c:999
msgid "connected to system DBus" msgid "connected to system DBus"
msgstr "conectado a DBus de sistema" msgstr "conectado a DBus de sistema"
#: dnsmasq.c:1189 #: dnsmasq.c:1149
#, c-format #, c-format
msgid "cannot fork into background: %s" msgid "cannot fork into background: %s"
msgstr "no se puede hacer fork en background: %s" msgstr "no se puede hacer fork en background: %s"
#: dnsmasq.c:1192 #: dnsmasq.c:1152
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create helper: %s" msgid "failed to create helper: %s"
msgstr "no se pudo crear ayudante: %s" msgstr "no se pudo crear ayudante: %s"
#: dnsmasq.c:1195 #: dnsmasq.c:1155
#, fuzzy, c-format #, fuzzy, c-format
msgid "setting capabilities failed: %s" msgid "setting capabilities failed: %s"
msgstr "configuración de capacidades ha fallado: %s" msgstr "configuración de capacidades ha fallado: %s"
#: dnsmasq.c:1198 #: dnsmasq.c:1158
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to change user-id to %s: %s" msgid "failed to change user-id to %s: %s"
msgstr "no se pudo cambiar user-id a %s: %s" msgstr "no se pudo cambiar user-id a %s: %s"
#: dnsmasq.c:1201 #: dnsmasq.c:1161
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to change group-id to %s: %s" msgid "failed to change group-id to %s: %s"
msgstr "no se pudo cambiar group-id a %s: %s" msgstr "no se pudo cambiar group-id a %s: %s"
#: dnsmasq.c:1204 #: dnsmasq.c:1164
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to open pidfile %s: %s" msgid "failed to open pidfile %s: %s"
msgstr "no se pudo abrir archivo PID %s: %s" msgstr "no se pudo abrir archivo PID %s: %s"
#: dnsmasq.c:1207 #: dnsmasq.c:1167
#, fuzzy, c-format #, fuzzy, c-format
msgid "cannot open log %s: %s" msgid "cannot open log %s: %s"
msgstr "no se puede abrir registro %s: %s" msgstr "no se puede abrir registro %s: %s"
#: dnsmasq.c:1210 #: dnsmasq.c:1170
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to load Lua script: %s" msgid "failed to load Lua script: %s"
msgstr "no se pudo cargar script Lua %s: %s" msgstr "no se pudo cargar script Lua %s: %s"
#: dnsmasq.c:1213 #: dnsmasq.c:1173
#, c-format #, c-format
msgid "TFTP directory %s inaccessible: %s" msgid "TFTP directory %s inaccessible: %s"
msgstr "directorio TFTP % inaccesible: %s" msgstr "directorio TFTP % inaccesible: %s"
#: dnsmasq.c:1216 #: dnsmasq.c:1176
#, fuzzy, c-format #, fuzzy, c-format
msgid "cannot create timestamp file %s: %s" msgid "cannot create timestamp file %s: %s"
msgstr "no se puede abrir o crear archivo de concesión %s: %s" msgstr "no se puede abrir o crear archivo de concesión %s: %s"
#: dnsmasq.c:1237 #: dnsmasq.c:1197
msgid "now checking DNSSEC signature timestamps" msgid "now checking DNSSEC signature timestamps"
msgstr "" msgstr ""
#: dnsmasq.c:1304 #: dnsmasq.c:1264
#, fuzzy, c-format #, fuzzy, c-format
msgid "script process killed by signal %d" msgid "script process killed by signal %d"
msgstr "proceso script eliminado por señal %d" msgstr "proceso script eliminado por señal %d"
#: dnsmasq.c:1308 #: dnsmasq.c:1268
#, fuzzy, c-format #, fuzzy, c-format
msgid "script process exited with status %d" msgid "script process exited with status %d"
msgstr "proceso script salió con con estado %d" msgstr "proceso script salió con con estado %d"
#: dnsmasq.c:1312 #: dnsmasq.c:1272
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to execute %s: %s" msgid "failed to execute %s: %s"
msgstr "no se pudo ejecutar %s: %s" msgstr "no se pudo ejecutar %s: %s"
#: dnsmasq.c:1367 #: dnsmasq.c:1327
msgid "exiting on receipt of SIGTERM" msgid "exiting on receipt of SIGTERM"
msgstr "saliendo al recibir SIGTERM" msgstr "saliendo al recibir SIGTERM"
#: dnsmasq.c:1395 #: dnsmasq.c:1355
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to access %s: %s" msgid "failed to access %s: %s"
msgstr "no se pudo acceder %s: %s" msgstr "no se pudo acceder %s: %s"
#: dnsmasq.c:1425 #: dnsmasq.c:1385
#, c-format #, c-format
msgid "reading %s" msgid "reading %s"
msgstr "leyendo %s" msgstr "leyendo %s"
#: dnsmasq.c:1436 #: dnsmasq.c:1396
#, fuzzy, c-format #, fuzzy, c-format
msgid "no servers found in %s, will retry" msgid "no servers found in %s, will retry"
msgstr "ningún servidor encontrado en %s, se reintentará" msgstr "ningún servidor encontrado en %s, se reintentará"
@@ -1918,7 +1918,7 @@ msgstr "desbordamiento: %d entradas de registro perdidas"
msgid "log failed: %s" msgid "log failed: %s"
msgstr "registro falló: %s" msgstr "registro falló: %s"
#: log.c:472 #: log.c:469
msgid "FAILED to start up" msgid "FAILED to start up"
msgstr "el inicio ha FALLADO" msgstr "el inicio ha FALLADO"
@@ -2177,36 +2177,45 @@ msgstr ""
msgid "%d addresses %s" msgid "%d addresses %s"
msgstr "dirección IP errónea" msgstr "dirección IP errónea"
#: inotify.c:46 #: inotify.c:59
#, fuzzy, c-format
msgid "cannot access path %s: %s"
msgstr "no se puede acceder %s: %s"
#: inotify.c:92
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create inotify: %s" msgid "failed to create inotify: %s"
msgstr "no se pudo crear ayudante: %s" msgstr "no se pudo crear ayudante: %s"
#: inotify.c:60 #: inotify.c:105
#, fuzzy, c-format #, c-format
msgid "cannot cannonicalise resolv-file %s: %s" msgid "too many symlinks following %s"
msgstr "no se puede abrir o crear archivo de concesión %s: %s" msgstr ""
#: inotify.c:72 #: inotify.c:121
#, c-format #, c-format
msgid "directory %s for resolv-file is missing, cannot poll" msgid "directory %s for resolv-file is missing, cannot poll"
msgstr "" msgstr ""
#: inotify.c:75 inotify.c:112 #: inotify.c:125 inotify.c:162
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create inotify for %s: %s" msgid "failed to create inotify for %s: %s"
msgstr "no se pudo crear un zócalo de escucha: %s" msgstr "no se pudo crear un zócalo de escucha: %s"
#: inotify.c:97 #: inotify.c:147
#, fuzzy, c-format #, fuzzy, c-format
msgid "bad dynamic directory %s: %s" msgid "bad dynamic directory %s: %s"
msgstr "no se puede acceder a directorio %s: %s" msgstr "no se puede acceder a directorio %s: %s"
#: inotify.c:197 #: inotify.c:247
#, c-format #, c-format
msgid "inotify, new or changed file %s" msgid "inotify, new or changed file %s"
msgstr "" msgstr ""
#, fuzzy
#~ msgid "cannot cannonicalise resolv-file %s: %s"
#~ msgstr "no se puede abrir o crear archivo de concesión %s: %s"
#~ msgid "no interface with address %s" #~ msgid "no interface with address %s"
#~ msgstr "ninguna interfase con dirección %s" #~ msgstr "ninguna interfase con dirección %s"
+48 -43
View File
@@ -1068,34 +1068,34 @@ msgstr ""
msgid "bad command line options: %s" msgid "bad command line options: %s"
msgstr "" msgstr ""
#: option.c:4544 #: option.c:4541
#, c-format #, c-format
msgid "cannot get host-name: %s" msgid "cannot get host-name: %s"
msgstr "" msgstr ""
#: option.c:4572 #: option.c:4569
msgid "only one resolv.conf file allowed in no-poll mode." msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "" msgstr ""
#: option.c:4582 #: option.c:4579
msgid "must have exactly one resolv.conf to read domain from." msgid "must have exactly one resolv.conf to read domain from."
msgstr "" msgstr ""
#: option.c:4585 network.c:1507 dhcp.c:777 #: option.c:4582 network.c:1507 dhcp.c:777
#, c-format #, c-format
msgid "failed to read %s: %s" msgid "failed to read %s: %s"
msgstr "" msgstr ""
#: option.c:4602 #: option.c:4599
#, c-format #, c-format
msgid "no search directive found in %s" msgid "no search directive found in %s"
msgstr "" msgstr ""
#: option.c:4623 #: option.c:4620
msgid "there must be a default domain when --dhcp-fqdn is set" msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr "" msgstr ""
#: option.c:4632 #: option.c:4629
msgid "syntax check OK" msgid "syntax check OK"
msgstr "" msgstr ""
@@ -1118,11 +1118,11 @@ msgstr ""
msgid "possible DNS-rebind attack detected: %s" msgid "possible DNS-rebind attack detected: %s"
msgstr "" msgstr ""
#: forward.c:1209 forward.c:1785 #: forward.c:1209 forward.c:1815
msgid "Ignoring query from non-local network" msgid "Ignoring query from non-local network"
msgstr "" msgstr ""
#: forward.c:2256 #: forward.c:2286
#, c-format #, c-format
msgid "Maximum number of concurrent DNS queries reached (max: %d)" msgid "Maximum number of concurrent DNS queries reached (max: %d)"
msgstr "" msgstr ""
@@ -1278,7 +1278,7 @@ msgstr ""
msgid "unknown interface %s" msgid "unknown interface %s"
msgstr "" msgstr ""
#: dnsmasq.c:354 dnsmasq.c:1037 #: dnsmasq.c:354 dnsmasq.c:997
#, c-format #, c-format
msgid "DBus error: %s" msgid "DBus error: %s"
msgstr "" msgstr ""
@@ -1377,121 +1377,121 @@ msgstr ""
msgid "DHCP, sockets bound exclusively to interface %s" msgid "DHCP, sockets bound exclusively to interface %s"
msgstr "" msgstr ""
#: dnsmasq.c:808 #: dnsmasq.c:804
msgid "root is " msgid "root is "
msgstr "" msgstr ""
#: dnsmasq.c:808 #: dnsmasq.c:804
msgid "enabled" msgid "enabled"
msgstr "" msgstr ""
#: dnsmasq.c:810 #: dnsmasq.c:806
msgid "secure mode" msgid "secure mode"
msgstr "" msgstr ""
#: dnsmasq.c:813 #: dnsmasq.c:809
#, c-format #, c-format
msgid "warning: %s inaccessible" msgid "warning: %s inaccessible"
msgstr "" msgstr ""
#: dnsmasq.c:817 #: dnsmasq.c:813
#, c-format #, c-format
msgid "warning: TFTP directory %s inaccessible" msgid "warning: TFTP directory %s inaccessible"
msgstr "" msgstr ""
#: dnsmasq.c:843 #: dnsmasq.c:839
#, c-format #, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d" msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "" msgstr ""
#: dnsmasq.c:1039 #: dnsmasq.c:999
msgid "connected to system DBus" msgid "connected to system DBus"
msgstr "" msgstr ""
#: dnsmasq.c:1189 #: dnsmasq.c:1149
#, c-format #, c-format
msgid "cannot fork into background: %s" msgid "cannot fork into background: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1192 #: dnsmasq.c:1152
#, c-format #, c-format
msgid "failed to create helper: %s" msgid "failed to create helper: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1195 #: dnsmasq.c:1155
#, c-format #, c-format
msgid "setting capabilities failed: %s" msgid "setting capabilities failed: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1198 #: dnsmasq.c:1158
#, c-format #, c-format
msgid "failed to change user-id to %s: %s" msgid "failed to change user-id to %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1201 #: dnsmasq.c:1161
#, c-format #, c-format
msgid "failed to change group-id to %s: %s" msgid "failed to change group-id to %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1204 #: dnsmasq.c:1164
#, c-format #, c-format
msgid "failed to open pidfile %s: %s" msgid "failed to open pidfile %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1207 #: dnsmasq.c:1167
#, c-format #, c-format
msgid "cannot open log %s: %s" msgid "cannot open log %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1210 #: dnsmasq.c:1170
#, c-format #, c-format
msgid "failed to load Lua script: %s" msgid "failed to load Lua script: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1213 #: dnsmasq.c:1173
#, c-format #, c-format
msgid "TFTP directory %s inaccessible: %s" msgid "TFTP directory %s inaccessible: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1216 #: dnsmasq.c:1176
#, c-format #, c-format
msgid "cannot create timestamp file %s: %s" msgid "cannot create timestamp file %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1237 #: dnsmasq.c:1197
msgid "now checking DNSSEC signature timestamps" msgid "now checking DNSSEC signature timestamps"
msgstr "" msgstr ""
#: dnsmasq.c:1304 #: dnsmasq.c:1264
#, c-format #, c-format
msgid "script process killed by signal %d" msgid "script process killed by signal %d"
msgstr "" msgstr ""
#: dnsmasq.c:1308 #: dnsmasq.c:1268
#, c-format #, c-format
msgid "script process exited with status %d" msgid "script process exited with status %d"
msgstr "" msgstr ""
#: dnsmasq.c:1312 #: dnsmasq.c:1272
#, c-format #, c-format
msgid "failed to execute %s: %s" msgid "failed to execute %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1367 #: dnsmasq.c:1327
msgid "exiting on receipt of SIGTERM" msgid "exiting on receipt of SIGTERM"
msgstr "" msgstr ""
#: dnsmasq.c:1395 #: dnsmasq.c:1355
#, c-format #, c-format
msgid "failed to access %s: %s" msgid "failed to access %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1425 #: dnsmasq.c:1385
#, c-format #, c-format
msgid "reading %s" msgid "reading %s"
msgstr "" msgstr ""
#: dnsmasq.c:1436 #: dnsmasq.c:1396
#, c-format #, c-format
msgid "no servers found in %s, will retry" msgid "no servers found in %s, will retry"
msgstr "" msgstr ""
@@ -1846,7 +1846,7 @@ msgstr ""
msgid "log failed: %s" msgid "log failed: %s"
msgstr "" msgstr ""
#: log.c:472 #: log.c:469
msgid "FAILED to start up" msgid "FAILED to start up"
msgstr "" msgstr ""
@@ -2101,32 +2101,37 @@ msgstr ""
msgid "%d addresses %s" msgid "%d addresses %s"
msgstr "" msgstr ""
#: inotify.c:46 #: inotify.c:59
#, c-format
msgid "cannot access path %s: %s"
msgstr ""
#: inotify.c:92
#, c-format #, c-format
msgid "failed to create inotify: %s" msgid "failed to create inotify: %s"
msgstr "" msgstr ""
#: inotify.c:60 #: inotify.c:105
#, c-format #, c-format
msgid "cannot cannonicalise resolv-file %s: %s" msgid "too many symlinks following %s"
msgstr "" msgstr ""
#: inotify.c:72 #: inotify.c:121
#, c-format #, c-format
msgid "directory %s for resolv-file is missing, cannot poll" msgid "directory %s for resolv-file is missing, cannot poll"
msgstr "" msgstr ""
#: inotify.c:75 inotify.c:112 #: inotify.c:125 inotify.c:162
#, c-format #, c-format
msgid "failed to create inotify for %s: %s" msgid "failed to create inotify for %s: %s"
msgstr "" msgstr ""
#: inotify.c:97 #: inotify.c:147
#, c-format #, c-format
msgid "bad dynamic directory %s: %s" msgid "bad dynamic directory %s: %s"
msgstr "" msgstr ""
#: inotify.c:197 #: inotify.c:247
#, c-format #, c-format
msgid "inotify, new or changed file %s" msgid "inotify, new or changed file %s"
msgstr "" msgstr ""
+54 -45
View File
@@ -1111,34 +1111,34 @@ msgstr "essayez avec -w"
msgid "bad command line options: %s" msgid "bad command line options: %s"
msgstr "mauvaises options en ligne de commande : %s." msgstr "mauvaises options en ligne de commande : %s."
#: option.c:4544 #: option.c:4541
#, c-format #, c-format
msgid "cannot get host-name: %s" msgid "cannot get host-name: %s"
msgstr "ne peut pas obtenir le nom de la machine : %s" msgstr "ne peut pas obtenir le nom de la machine : %s"
#: option.c:4572 #: option.c:4569
msgid "only one resolv.conf file allowed in no-poll mode." msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "seul un fichier resolv.conf est autorisé dans le mode no-poll" msgstr "seul un fichier resolv.conf est autorisé dans le mode no-poll"
#: option.c:4582 #: option.c:4579
msgid "must have exactly one resolv.conf to read domain from." msgid "must have exactly one resolv.conf to read domain from."
msgstr "un fichier resolv.conf (et un seul) est nécessaire pour y récuperer le nom de domaine." msgstr "un fichier resolv.conf (et un seul) est nécessaire pour y récuperer le nom de domaine."
#: option.c:4585 network.c:1507 dhcp.c:777 #: option.c:4582 network.c:1507 dhcp.c:777
#, c-format #, c-format
msgid "failed to read %s: %s" msgid "failed to read %s: %s"
msgstr "impossible de lire %s : %s" msgstr "impossible de lire %s : %s"
#: option.c:4602 #: option.c:4599
#, c-format #, c-format
msgid "no search directive found in %s" msgid "no search directive found in %s"
msgstr "pas de directive de recherche trouvée dans %s" msgstr "pas de directive de recherche trouvée dans %s"
#: option.c:4623 #: option.c:4620
msgid "there must be a default domain when --dhcp-fqdn is set" msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr "un domaine par défaut doit être spécifié lorsque l'option --dhcp-fqdn est utilisée" msgstr "un domaine par défaut doit être spécifié lorsque l'option --dhcp-fqdn est utilisée"
#: option.c:4632 #: option.c:4629
msgid "syntax check OK" msgid "syntax check OK"
msgstr "vérification de syntaxe OK" msgstr "vérification de syntaxe OK"
@@ -1161,11 +1161,11 @@ msgstr "le serveur de nom %s a refus
msgid "possible DNS-rebind attack detected: %s" msgid "possible DNS-rebind attack detected: %s"
msgstr "détection d'une possible attaque de type DNS-rebind: %s" msgstr "détection d'une possible attaque de type DNS-rebind: %s"
#: forward.c:1209 forward.c:1785 #: forward.c:1209 forward.c:1815
msgid "Ignoring query from non-local network" msgid "Ignoring query from non-local network"
msgstr "" msgstr ""
#: forward.c:2256 #: forward.c:2286
#, c-format #, c-format
msgid "Maximum number of concurrent DNS queries reached (max: %d)" msgid "Maximum number of concurrent DNS queries reached (max: %d)"
msgstr "Nombre maximum de requêtes DNS concurrentes atteint (maximum : %d)." msgstr "Nombre maximum de requêtes DNS concurrentes atteint (maximum : %d)."
@@ -1328,7 +1328,7 @@ msgstr "impossible de trouver la liste des interfaces : %s"
msgid "unknown interface %s" msgid "unknown interface %s"
msgstr "interface %s inconnue" msgstr "interface %s inconnue"
#: dnsmasq.c:354 dnsmasq.c:1037 #: dnsmasq.c:354 dnsmasq.c:997
#, c-format #, c-format
msgid "DBus error: %s" msgid "DBus error: %s"
msgstr "Erreur DBus : %s" msgstr "Erreur DBus : %s"
@@ -1428,123 +1428,123 @@ msgstr "annonces de routeur IPv6 activ
msgid "DHCP, sockets bound exclusively to interface %s" msgid "DHCP, sockets bound exclusively to interface %s"
msgstr "" msgstr ""
#: dnsmasq.c:808 #: dnsmasq.c:804
msgid "root is " msgid "root is "
msgstr "root est" msgstr "root est"
# #
#: dnsmasq.c:808 #: dnsmasq.c:804
msgid "enabled" msgid "enabled"
msgstr "activé" msgstr "activé"
#: dnsmasq.c:810 #: dnsmasq.c:806
msgid "secure mode" msgid "secure mode"
msgstr "mode sécurisé" msgstr "mode sécurisé"
#: dnsmasq.c:813 #: dnsmasq.c:809
#, c-format #, c-format
msgid "warning: %s inaccessible" msgid "warning: %s inaccessible"
msgstr "" msgstr ""
#: dnsmasq.c:817 #: dnsmasq.c:813
#, fuzzy, c-format #, fuzzy, c-format
msgid "warning: TFTP directory %s inaccessible" msgid "warning: TFTP directory %s inaccessible"
msgstr "répertoire TFTP %s inaccessible : %s" msgstr "répertoire TFTP %s inaccessible : %s"
#: dnsmasq.c:843 #: dnsmasq.c:839
#, c-format #, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d" msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "le nombre maximum de transferts TFTP simultanés sera restreint à %d" msgstr "le nombre maximum de transferts TFTP simultanés sera restreint à %d"
#: dnsmasq.c:1039 #: dnsmasq.c:999
msgid "connected to system DBus" msgid "connected to system DBus"
msgstr "connecté au systeme DBus" msgstr "connecté au systeme DBus"
#: dnsmasq.c:1189 #: dnsmasq.c:1149
#, c-format #, c-format
msgid "cannot fork into background: %s" msgid "cannot fork into background: %s"
msgstr "Ne peut se lancer en tâche de fond : %s" msgstr "Ne peut se lancer en tâche de fond : %s"
#: dnsmasq.c:1192 #: dnsmasq.c:1152
#, c-format #, c-format
msgid "failed to create helper: %s" msgid "failed to create helper: %s"
msgstr "impossible de créer le 'helper' : %s" msgstr "impossible de créer le 'helper' : %s"
#: dnsmasq.c:1195 #: dnsmasq.c:1155
#, c-format #, c-format
msgid "setting capabilities failed: %s" msgid "setting capabilities failed: %s"
msgstr "impossible de configurer la capacité %s" msgstr "impossible de configurer la capacité %s"
#: dnsmasq.c:1198 #: dnsmasq.c:1158
#, c-format #, c-format
msgid "failed to change user-id to %s: %s" msgid "failed to change user-id to %s: %s"
msgstr "Impossible de changer l'identifiant utilisateur pour %s : %s" msgstr "Impossible de changer l'identifiant utilisateur pour %s : %s"
#: dnsmasq.c:1201 #: dnsmasq.c:1161
#, c-format #, c-format
msgid "failed to change group-id to %s: %s" msgid "failed to change group-id to %s: %s"
msgstr "Impossible de changer l'identifiant de groupe pour %s : %s" msgstr "Impossible de changer l'identifiant de groupe pour %s : %s"
#: dnsmasq.c:1204 #: dnsmasq.c:1164
#, c-format #, c-format
msgid "failed to open pidfile %s: %s" msgid "failed to open pidfile %s: %s"
msgstr "impossible de lire le fichier de PID %s : %s" msgstr "impossible de lire le fichier de PID %s : %s"
#: dnsmasq.c:1207 #: dnsmasq.c:1167
#, c-format #, c-format
msgid "cannot open log %s: %s" msgid "cannot open log %s: %s"
msgstr "Ne peut ouvrir le fichier de log %s : %s" msgstr "Ne peut ouvrir le fichier de log %s : %s"
# #
#: dnsmasq.c:1210 #: dnsmasq.c:1170
#, c-format #, c-format
msgid "failed to load Lua script: %s" msgid "failed to load Lua script: %s"
msgstr "impossible de charger le script Lua : %s" msgstr "impossible de charger le script Lua : %s"
#: dnsmasq.c:1213 #: dnsmasq.c:1173
#, c-format #, c-format
msgid "TFTP directory %s inaccessible: %s" msgid "TFTP directory %s inaccessible: %s"
msgstr "répertoire TFTP %s inaccessible : %s" msgstr "répertoire TFTP %s inaccessible : %s"
#: dnsmasq.c:1216 #: dnsmasq.c:1176
#, fuzzy, c-format #, fuzzy, c-format
msgid "cannot create timestamp file %s: %s" msgid "cannot create timestamp file %s: %s"
msgstr "ne peut ouvrir ou créer le fichiers de baux %s : %s" msgstr "ne peut ouvrir ou créer le fichiers de baux %s : %s"
#: dnsmasq.c:1237 #: dnsmasq.c:1197
msgid "now checking DNSSEC signature timestamps" msgid "now checking DNSSEC signature timestamps"
msgstr "" msgstr ""
#: dnsmasq.c:1304 #: dnsmasq.c:1264
#, c-format #, c-format
msgid "script process killed by signal %d" msgid "script process killed by signal %d"
msgstr "Le script a été terminé par le signal %d" msgstr "Le script a été terminé par le signal %d"
#: dnsmasq.c:1308 #: dnsmasq.c:1268
#, c-format #, c-format
msgid "script process exited with status %d" msgid "script process exited with status %d"
msgstr "Le script s'est terminé avec le statut %d" msgstr "Le script s'est terminé avec le statut %d"
#: dnsmasq.c:1312 #: dnsmasq.c:1272
#, c-format #, c-format
msgid "failed to execute %s: %s" msgid "failed to execute %s: %s"
msgstr "impossible d'exécuter à %s : %s" msgstr "impossible d'exécuter à %s : %s"
#: dnsmasq.c:1367 #: dnsmasq.c:1327
msgid "exiting on receipt of SIGTERM" msgid "exiting on receipt of SIGTERM"
msgstr "sortie sur réception du signal SIGTERM" msgstr "sortie sur réception du signal SIGTERM"
#: dnsmasq.c:1395 #: dnsmasq.c:1355
#, c-format #, c-format
msgid "failed to access %s: %s" msgid "failed to access %s: %s"
msgstr "impossible d'accéder à %s : %s" msgstr "impossible d'accéder à %s : %s"
#: dnsmasq.c:1425 #: dnsmasq.c:1385
#, c-format #, c-format
msgid "reading %s" msgid "reading %s"
msgstr "Lecture de %s" msgstr "Lecture de %s"
#: dnsmasq.c:1436 #: dnsmasq.c:1396
#, c-format #, c-format
msgid "no servers found in %s, will retry" msgid "no servers found in %s, will retry"
msgstr "aucun serveur trouvé dans %s, va réessayer" msgstr "aucun serveur trouvé dans %s, va réessayer"
@@ -1899,7 +1899,7 @@ msgstr "d
msgid "log failed: %s" msgid "log failed: %s"
msgstr "trace perdue : %s" msgstr "trace perdue : %s"
#: log.c:472 #: log.c:469
msgid "FAILED to start up" msgid "FAILED to start up"
msgstr "IMPOSSIBLE de démarrer" msgstr "IMPOSSIBLE de démarrer"
@@ -2155,36 +2155,45 @@ msgstr ""
msgid "%d addresses %s" msgid "%d addresses %s"
msgstr "mauvaise adresse" msgstr "mauvaise adresse"
#: inotify.c:46 #: inotify.c:59
#, fuzzy, c-format
msgid "cannot access path %s: %s"
msgstr "Ne peut pas lire %s : %s"
#: inotify.c:92
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create inotify: %s" msgid "failed to create inotify: %s"
msgstr "impossible de créer le 'helper' : %s" msgstr "impossible de créer le 'helper' : %s"
#: inotify.c:60 #: inotify.c:105
#, fuzzy, c-format #, c-format
msgid "cannot cannonicalise resolv-file %s: %s" msgid "too many symlinks following %s"
msgstr "ne peut ouvrir ou créer le fichiers de baux %s : %s" msgstr ""
#: inotify.c:72 #: inotify.c:121
#, c-format #, c-format
msgid "directory %s for resolv-file is missing, cannot poll" msgid "directory %s for resolv-file is missing, cannot poll"
msgstr "" msgstr ""
#: inotify.c:75 inotify.c:112 #: inotify.c:125 inotify.c:162
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create inotify for %s: %s" msgid "failed to create inotify for %s: %s"
msgstr "impossible de créer une socket d'écoute pour %s : %s" msgstr "impossible de créer une socket d'écoute pour %s : %s"
#: inotify.c:97 #: inotify.c:147
#, fuzzy, c-format #, fuzzy, c-format
msgid "bad dynamic directory %s: %s" msgid "bad dynamic directory %s: %s"
msgstr "Ne peut pas lire le répertoire %s : %s" msgstr "Ne peut pas lire le répertoire %s : %s"
#: inotify.c:197 #: inotify.c:247
#, c-format #, c-format
msgid "inotify, new or changed file %s" msgid "inotify, new or changed file %s"
msgstr "" msgstr ""
#, fuzzy
#~ msgid "cannot cannonicalise resolv-file %s: %s"
#~ msgstr "ne peut ouvrir ou créer le fichiers de baux %s : %s"
#~ msgid "Always send frequent router-advertisements" #~ msgid "Always send frequent router-advertisements"
#~ msgstr "Envoyer des annonces de routeurs fréquentes" #~ msgstr "Envoyer des annonces de routeurs fréquentes"
+56 -46
View File
@@ -1263,38 +1263,38 @@ msgid "bad command line options: %s"
msgstr "pilihan baris perintah salah: %s." msgstr "pilihan baris perintah salah: %s."
# OK # OK
#: option.c:4544 #: option.c:4541
#, c-format #, c-format
msgid "cannot get host-name: %s" msgid "cannot get host-name: %s"
msgstr "tidak bisa mendapatkan host-name: %s" msgstr "tidak bisa mendapatkan host-name: %s"
# OK # OK
#: option.c:4572 #: option.c:4569
msgid "only one resolv.conf file allowed in no-poll mode." msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "hanya satu file resolv.conf yang diperbolehkan dalam modus no-poll." msgstr "hanya satu file resolv.conf yang diperbolehkan dalam modus no-poll."
# OK # OK
#: option.c:4582 #: option.c:4579
msgid "must have exactly one resolv.conf to read domain from." msgid "must have exactly one resolv.conf to read domain from."
msgstr "harus mempunyai tepat satu resolv.conf untuk mendapatkan nama domain." msgstr "harus mempunyai tepat satu resolv.conf untuk mendapatkan nama domain."
# OK # OK
#: option.c:4585 network.c:1507 dhcp.c:777 #: option.c:4582 network.c:1507 dhcp.c:777
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to read %s: %s" msgid "failed to read %s: %s"
msgstr "gagal membaca %s: %s" msgstr "gagal membaca %s: %s"
# OK # OK
#: option.c:4602 #: option.c:4599
#, c-format #, c-format
msgid "no search directive found in %s" msgid "no search directive found in %s"
msgstr "tidak ditemukan direktif search di %s" msgstr "tidak ditemukan direktif search di %s"
#: option.c:4623 #: option.c:4620
msgid "there must be a default domain when --dhcp-fqdn is set" msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr "" msgstr ""
#: option.c:4632 #: option.c:4629
msgid "syntax check OK" msgid "syntax check OK"
msgstr "" msgstr ""
@@ -1319,12 +1319,12 @@ msgstr "nameserver %s menolak melakukan resolusi rekursif"
msgid "possible DNS-rebind attack detected: %s" msgid "possible DNS-rebind attack detected: %s"
msgstr "" msgstr ""
#: forward.c:1209 forward.c:1785 #: forward.c:1209 forward.c:1815
msgid "Ignoring query from non-local network" msgid "Ignoring query from non-local network"
msgstr "" msgstr ""
# OK # OK
#: forward.c:2256 #: forward.c:2286
#, fuzzy, c-format #, fuzzy, c-format
msgid "Maximum number of concurrent DNS queries reached (max: %d)" msgid "Maximum number of concurrent DNS queries reached (max: %d)"
msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)." msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)."
@@ -1506,7 +1506,7 @@ msgid "unknown interface %s"
msgstr "antarmuka tidak dikenal %s" msgstr "antarmuka tidak dikenal %s"
# OK # OK
#: dnsmasq.c:354 dnsmasq.c:1037 #: dnsmasq.c:354 dnsmasq.c:997
#, c-format #, c-format
msgid "DBus error: %s" msgid "DBus error: %s"
msgstr "DBus error: %s" msgstr "DBus error: %s"
@@ -1617,135 +1617,135 @@ msgstr ""
msgid "DHCP, sockets bound exclusively to interface %s" msgid "DHCP, sockets bound exclusively to interface %s"
msgstr "" msgstr ""
#: dnsmasq.c:808 #: dnsmasq.c:804
msgid "root is " msgid "root is "
msgstr "" msgstr ""
# OK # OK
#: dnsmasq.c:808 #: dnsmasq.c:804
#, fuzzy #, fuzzy
msgid "enabled" msgid "enabled"
msgstr "di disable" msgstr "di disable"
#: dnsmasq.c:810 #: dnsmasq.c:806
msgid "secure mode" msgid "secure mode"
msgstr "" msgstr ""
#: dnsmasq.c:813 #: dnsmasq.c:809
#, c-format #, c-format
msgid "warning: %s inaccessible" msgid "warning: %s inaccessible"
msgstr "" msgstr ""
#: dnsmasq.c:817 #: dnsmasq.c:813
#, c-format #, c-format
msgid "warning: TFTP directory %s inaccessible" msgid "warning: TFTP directory %s inaccessible"
msgstr "" msgstr ""
#: dnsmasq.c:843 #: dnsmasq.c:839
#, c-format #, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d" msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "" msgstr ""
# OK # OK
#: dnsmasq.c:1039 #: dnsmasq.c:999
msgid "connected to system DBus" msgid "connected to system DBus"
msgstr "terhubung ke sistem DBus" msgstr "terhubung ke sistem DBus"
#: dnsmasq.c:1189 #: dnsmasq.c:1149
#, c-format #, c-format
msgid "cannot fork into background: %s" msgid "cannot fork into background: %s"
msgstr "" msgstr ""
# OK # OK
#: dnsmasq.c:1192 #: dnsmasq.c:1152
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create helper: %s" msgid "failed to create helper: %s"
msgstr "gagal membaca %s: %s" msgstr "gagal membaca %s: %s"
#: dnsmasq.c:1195 #: dnsmasq.c:1155
#, c-format #, c-format
msgid "setting capabilities failed: %s" msgid "setting capabilities failed: %s"
msgstr "" msgstr ""
# OK # OK
#: dnsmasq.c:1198 #: dnsmasq.c:1158
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to change user-id to %s: %s" msgid "failed to change user-id to %s: %s"
msgstr "gagal memuat nama-nama dari %s: %s" msgstr "gagal memuat nama-nama dari %s: %s"
# OK # OK
#: dnsmasq.c:1201 #: dnsmasq.c:1161
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to change group-id to %s: %s" msgid "failed to change group-id to %s: %s"
msgstr "gagal memuat nama-nama dari %s: %s" msgstr "gagal memuat nama-nama dari %s: %s"
# OK # OK
#: dnsmasq.c:1204 #: dnsmasq.c:1164
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to open pidfile %s: %s" msgid "failed to open pidfile %s: %s"
msgstr "gagal membaca %s: %s" msgstr "gagal membaca %s: %s"
# OK # OK
#: dnsmasq.c:1207 #: dnsmasq.c:1167
#, fuzzy, c-format #, fuzzy, c-format
msgid "cannot open log %s: %s" msgid "cannot open log %s: %s"
msgstr "tidak bisa membuka %s:%s" msgstr "tidak bisa membuka %s:%s"
# OK # OK
#: dnsmasq.c:1210 #: dnsmasq.c:1170
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to load Lua script: %s" msgid "failed to load Lua script: %s"
msgstr "gagal memuat %S: %s" msgstr "gagal memuat %S: %s"
#: dnsmasq.c:1213 #: dnsmasq.c:1173
#, c-format #, c-format
msgid "TFTP directory %s inaccessible: %s" msgid "TFTP directory %s inaccessible: %s"
msgstr "" msgstr ""
# OK # OK
#: dnsmasq.c:1216 #: dnsmasq.c:1176
#, fuzzy, c-format #, fuzzy, c-format
msgid "cannot create timestamp file %s: %s" msgid "cannot create timestamp file %s: %s"
msgstr "tidak dapat membuka atau membuat file lease: %s" msgstr "tidak dapat membuka atau membuat file lease: %s"
#: dnsmasq.c:1237 #: dnsmasq.c:1197
msgid "now checking DNSSEC signature timestamps" msgid "now checking DNSSEC signature timestamps"
msgstr "" msgstr ""
#: dnsmasq.c:1304 #: dnsmasq.c:1264
#, c-format #, c-format
msgid "script process killed by signal %d" msgid "script process killed by signal %d"
msgstr "" msgstr ""
#: dnsmasq.c:1308 #: dnsmasq.c:1268
#, c-format #, c-format
msgid "script process exited with status %d" msgid "script process exited with status %d"
msgstr "" msgstr ""
# OK # OK
#: dnsmasq.c:1312 #: dnsmasq.c:1272
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to execute %s: %s" msgid "failed to execute %s: %s"
msgstr "gagal mengakses %s: %s" msgstr "gagal mengakses %s: %s"
#: dnsmasq.c:1367 #: dnsmasq.c:1327
msgid "exiting on receipt of SIGTERM" msgid "exiting on receipt of SIGTERM"
msgstr "keluar karena menerima SIGTERM" msgstr "keluar karena menerima SIGTERM"
# OK # OK
#: dnsmasq.c:1395 #: dnsmasq.c:1355
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to access %s: %s" msgid "failed to access %s: %s"
msgstr "gagal mengakses %s: %s" msgstr "gagal mengakses %s: %s"
# OK # OK
#: dnsmasq.c:1425 #: dnsmasq.c:1385
#, c-format #, c-format
msgid "reading %s" msgid "reading %s"
msgstr "membaca %s" msgstr "membaca %s"
# OK # OK
#: dnsmasq.c:1436 #: dnsmasq.c:1396
#, fuzzy, c-format #, fuzzy, c-format
msgid "no servers found in %s, will retry" msgid "no servers found in %s, will retry"
msgstr "tidak ditemukan direktif search di %s" msgstr "tidak ditemukan direktif search di %s"
@@ -2146,7 +2146,7 @@ msgid "log failed: %s"
msgstr "" msgstr ""
# OK # OK
#: log.c:472 #: log.c:469
msgid "FAILED to start up" msgid "FAILED to start up"
msgstr "GAGAL untuk memulai" msgstr "GAGAL untuk memulai"
@@ -2432,39 +2432,49 @@ msgid "%d addresses %s"
msgstr "membaca %s - %d alamat" msgstr "membaca %s - %d alamat"
# OK # OK
#: inotify.c:46 #: inotify.c:59
#, fuzzy, c-format
msgid "cannot access path %s: %s"
msgstr "tidak bisa membaca %s: %s"
# OK
#: inotify.c:92
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create inotify: %s" msgid "failed to create inotify: %s"
msgstr "gagal membaca %s: %s" msgstr "gagal membaca %s: %s"
# OK #: inotify.c:105
#: inotify.c:60 #, c-format
#, fuzzy, c-format msgid "too many symlinks following %s"
msgid "cannot cannonicalise resolv-file %s: %s" msgstr ""
msgstr "tidak dapat membuka atau membuat file lease: %s"
#: inotify.c:72 #: inotify.c:121
#, c-format #, c-format
msgid "directory %s for resolv-file is missing, cannot poll" msgid "directory %s for resolv-file is missing, cannot poll"
msgstr "" msgstr ""
# OK # OK
#: inotify.c:75 inotify.c:112 #: inotify.c:125 inotify.c:162
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create inotify for %s: %s" msgid "failed to create inotify for %s: %s"
msgstr "gagal membuat socket: %s " msgstr "gagal membuat socket: %s "
# OK # OK
#: inotify.c:97 #: inotify.c:147
#, fuzzy, c-format #, fuzzy, c-format
msgid "bad dynamic directory %s: %s" msgid "bad dynamic directory %s: %s"
msgstr "tidak bisa membaca %s: %s" msgstr "tidak bisa membaca %s: %s"
#: inotify.c:197 #: inotify.c:247
#, c-format #, c-format
msgid "inotify, new or changed file %s" msgid "inotify, new or changed file %s"
msgstr "" msgstr ""
# OK
#, fuzzy
#~ msgid "cannot cannonicalise resolv-file %s: %s"
#~ msgstr "tidak dapat membuka atau membuat file lease: %s"
# OK # OK
#~ msgid "duplicate IP address %s in dhcp-config directive." #~ msgid "duplicate IP address %s in dhcp-config directive."
#~ msgstr "alamat IP kembar %s dalam direktif dhcp-config" #~ msgstr "alamat IP kembar %s dalam direktif dhcp-config"
+48 -43
View File
@@ -1068,34 +1068,34 @@ msgstr ""
msgid "bad command line options: %s" msgid "bad command line options: %s"
msgstr "" msgstr ""
#: option.c:4544 #: option.c:4541
#, c-format #, c-format
msgid "cannot get host-name: %s" msgid "cannot get host-name: %s"
msgstr "" msgstr ""
#: option.c:4572 #: option.c:4569
msgid "only one resolv.conf file allowed in no-poll mode." msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "" msgstr ""
#: option.c:4582 #: option.c:4579
msgid "must have exactly one resolv.conf to read domain from." msgid "must have exactly one resolv.conf to read domain from."
msgstr "" msgstr ""
#: option.c:4585 network.c:1507 dhcp.c:777 #: option.c:4582 network.c:1507 dhcp.c:777
#, c-format #, c-format
msgid "failed to read %s: %s" msgid "failed to read %s: %s"
msgstr "" msgstr ""
#: option.c:4602 #: option.c:4599
#, c-format #, c-format
msgid "no search directive found in %s" msgid "no search directive found in %s"
msgstr "" msgstr ""
#: option.c:4623 #: option.c:4620
msgid "there must be a default domain when --dhcp-fqdn is set" msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr "" msgstr ""
#: option.c:4632 #: option.c:4629
msgid "syntax check OK" msgid "syntax check OK"
msgstr "" msgstr ""
@@ -1118,11 +1118,11 @@ msgstr ""
msgid "possible DNS-rebind attack detected: %s" msgid "possible DNS-rebind attack detected: %s"
msgstr "" msgstr ""
#: forward.c:1209 forward.c:1785 #: forward.c:1209 forward.c:1815
msgid "Ignoring query from non-local network" msgid "Ignoring query from non-local network"
msgstr "" msgstr ""
#: forward.c:2256 #: forward.c:2286
#, c-format #, c-format
msgid "Maximum number of concurrent DNS queries reached (max: %d)" msgid "Maximum number of concurrent DNS queries reached (max: %d)"
msgstr "" msgstr ""
@@ -1278,7 +1278,7 @@ msgstr ""
msgid "unknown interface %s" msgid "unknown interface %s"
msgstr "" msgstr ""
#: dnsmasq.c:354 dnsmasq.c:1037 #: dnsmasq.c:354 dnsmasq.c:997
#, c-format #, c-format
msgid "DBus error: %s" msgid "DBus error: %s"
msgstr "" msgstr ""
@@ -1377,121 +1377,121 @@ msgstr ""
msgid "DHCP, sockets bound exclusively to interface %s" msgid "DHCP, sockets bound exclusively to interface %s"
msgstr "" msgstr ""
#: dnsmasq.c:808 #: dnsmasq.c:804
msgid "root is " msgid "root is "
msgstr "" msgstr ""
#: dnsmasq.c:808 #: dnsmasq.c:804
msgid "enabled" msgid "enabled"
msgstr "" msgstr ""
#: dnsmasq.c:810 #: dnsmasq.c:806
msgid "secure mode" msgid "secure mode"
msgstr "" msgstr ""
#: dnsmasq.c:813 #: dnsmasq.c:809
#, c-format #, c-format
msgid "warning: %s inaccessible" msgid "warning: %s inaccessible"
msgstr "" msgstr ""
#: dnsmasq.c:817 #: dnsmasq.c:813
#, c-format #, c-format
msgid "warning: TFTP directory %s inaccessible" msgid "warning: TFTP directory %s inaccessible"
msgstr "" msgstr ""
#: dnsmasq.c:843 #: dnsmasq.c:839
#, c-format #, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d" msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "" msgstr ""
#: dnsmasq.c:1039 #: dnsmasq.c:999
msgid "connected to system DBus" msgid "connected to system DBus"
msgstr "" msgstr ""
#: dnsmasq.c:1189 #: dnsmasq.c:1149
#, c-format #, c-format
msgid "cannot fork into background: %s" msgid "cannot fork into background: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1192 #: dnsmasq.c:1152
#, c-format #, c-format
msgid "failed to create helper: %s" msgid "failed to create helper: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1195 #: dnsmasq.c:1155
#, c-format #, c-format
msgid "setting capabilities failed: %s" msgid "setting capabilities failed: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1198 #: dnsmasq.c:1158
#, c-format #, c-format
msgid "failed to change user-id to %s: %s" msgid "failed to change user-id to %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1201 #: dnsmasq.c:1161
#, c-format #, c-format
msgid "failed to change group-id to %s: %s" msgid "failed to change group-id to %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1204 #: dnsmasq.c:1164
#, c-format #, c-format
msgid "failed to open pidfile %s: %s" msgid "failed to open pidfile %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1207 #: dnsmasq.c:1167
#, c-format #, c-format
msgid "cannot open log %s: %s" msgid "cannot open log %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1210 #: dnsmasq.c:1170
#, c-format #, c-format
msgid "failed to load Lua script: %s" msgid "failed to load Lua script: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1213 #: dnsmasq.c:1173
#, c-format #, c-format
msgid "TFTP directory %s inaccessible: %s" msgid "TFTP directory %s inaccessible: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1216 #: dnsmasq.c:1176
#, c-format #, c-format
msgid "cannot create timestamp file %s: %s" msgid "cannot create timestamp file %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1237 #: dnsmasq.c:1197
msgid "now checking DNSSEC signature timestamps" msgid "now checking DNSSEC signature timestamps"
msgstr "" msgstr ""
#: dnsmasq.c:1304 #: dnsmasq.c:1264
#, c-format #, c-format
msgid "script process killed by signal %d" msgid "script process killed by signal %d"
msgstr "" msgstr ""
#: dnsmasq.c:1308 #: dnsmasq.c:1268
#, c-format #, c-format
msgid "script process exited with status %d" msgid "script process exited with status %d"
msgstr "" msgstr ""
#: dnsmasq.c:1312 #: dnsmasq.c:1272
#, c-format #, c-format
msgid "failed to execute %s: %s" msgid "failed to execute %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1367 #: dnsmasq.c:1327
msgid "exiting on receipt of SIGTERM" msgid "exiting on receipt of SIGTERM"
msgstr "" msgstr ""
#: dnsmasq.c:1395 #: dnsmasq.c:1355
#, c-format #, c-format
msgid "failed to access %s: %s" msgid "failed to access %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1425 #: dnsmasq.c:1385
#, c-format #, c-format
msgid "reading %s" msgid "reading %s"
msgstr "" msgstr ""
#: dnsmasq.c:1436 #: dnsmasq.c:1396
#, c-format #, c-format
msgid "no servers found in %s, will retry" msgid "no servers found in %s, will retry"
msgstr "" msgstr ""
@@ -1846,7 +1846,7 @@ msgstr ""
msgid "log failed: %s" msgid "log failed: %s"
msgstr "" msgstr ""
#: log.c:472 #: log.c:469
msgid "FAILED to start up" msgid "FAILED to start up"
msgstr "" msgstr ""
@@ -2101,32 +2101,37 @@ msgstr ""
msgid "%d addresses %s" msgid "%d addresses %s"
msgstr "" msgstr ""
#: inotify.c:46 #: inotify.c:59
#, c-format
msgid "cannot access path %s: %s"
msgstr ""
#: inotify.c:92
#, c-format #, c-format
msgid "failed to create inotify: %s" msgid "failed to create inotify: %s"
msgstr "" msgstr ""
#: inotify.c:60 #: inotify.c:105
#, c-format #, c-format
msgid "cannot cannonicalise resolv-file %s: %s" msgid "too many symlinks following %s"
msgstr "" msgstr ""
#: inotify.c:72 #: inotify.c:121
#, c-format #, c-format
msgid "directory %s for resolv-file is missing, cannot poll" msgid "directory %s for resolv-file is missing, cannot poll"
msgstr "" msgstr ""
#: inotify.c:75 inotify.c:112 #: inotify.c:125 inotify.c:162
#, c-format #, c-format
msgid "failed to create inotify for %s: %s" msgid "failed to create inotify for %s: %s"
msgstr "" msgstr ""
#: inotify.c:97 #: inotify.c:147
#, c-format #, c-format
msgid "bad dynamic directory %s: %s" msgid "bad dynamic directory %s: %s"
msgstr "" msgstr ""
#: inotify.c:197 #: inotify.c:247
#, c-format #, c-format
msgid "inotify, new or changed file %s" msgid "inotify, new or changed file %s"
msgstr "" msgstr ""
+54 -45
View File
@@ -1121,34 +1121,34 @@ msgstr ""
msgid "bad command line options: %s" msgid "bad command line options: %s"
msgstr "dårlige kommandlinje opsjoner: %s." msgstr "dårlige kommandlinje opsjoner: %s."
#: option.c:4544 #: option.c:4541
#, c-format #, c-format
msgid "cannot get host-name: %s" msgid "cannot get host-name: %s"
msgstr "klarer ikke å få vertsnavn: %s" msgstr "klarer ikke å få vertsnavn: %s"
#: option.c:4572 #: option.c:4569
msgid "only one resolv.conf file allowed in no-poll mode." msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "kun en resolv.conf fil tillat i no-poll modus." msgstr "kun en resolv.conf fil tillat i no-poll modus."
#: option.c:4582 #: option.c:4579
msgid "must have exactly one resolv.conf to read domain from." msgid "must have exactly one resolv.conf to read domain from."
msgstr "må ha nøyaktig en resolv.conf å lese domene fra." msgstr "må ha nøyaktig en resolv.conf å lese domene fra."
#: option.c:4585 network.c:1507 dhcp.c:777 #: option.c:4582 network.c:1507 dhcp.c:777
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to read %s: %s" msgid "failed to read %s: %s"
msgstr "feilet å lese %s: %s" msgstr "feilet å lese %s: %s"
#: option.c:4602 #: option.c:4599
#, c-format #, c-format
msgid "no search directive found in %s" msgid "no search directive found in %s"
msgstr "intet søke direktiv funnet i %s" msgstr "intet søke direktiv funnet i %s"
#: option.c:4623 #: option.c:4620
msgid "there must be a default domain when --dhcp-fqdn is set" msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr "" msgstr ""
#: option.c:4632 #: option.c:4629
msgid "syntax check OK" msgid "syntax check OK"
msgstr "" msgstr ""
@@ -1171,11 +1171,11 @@ msgstr "navnetjener %s nektet
msgid "possible DNS-rebind attack detected: %s" msgid "possible DNS-rebind attack detected: %s"
msgstr "" msgstr ""
#: forward.c:1209 forward.c:1785 #: forward.c:1209 forward.c:1815
msgid "Ignoring query from non-local network" msgid "Ignoring query from non-local network"
msgstr "" msgstr ""
#: forward.c:2256 #: forward.c:2286
#, fuzzy, c-format #, fuzzy, c-format
msgid "Maximum number of concurrent DNS queries reached (max: %d)" msgid "Maximum number of concurrent DNS queries reached (max: %d)"
msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)" msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
@@ -1336,7 +1336,7 @@ msgstr "feilet
msgid "unknown interface %s" msgid "unknown interface %s"
msgstr "ukjent tilknytning (interface) %s" msgstr "ukjent tilknytning (interface) %s"
#: dnsmasq.c:354 dnsmasq.c:1037 #: dnsmasq.c:354 dnsmasq.c:997
#, c-format #, c-format
msgid "DBus error: %s" msgid "DBus error: %s"
msgstr "DBus feil: %s" msgstr "DBus feil: %s"
@@ -1436,122 +1436,122 @@ msgstr ""
msgid "DHCP, sockets bound exclusively to interface %s" msgid "DHCP, sockets bound exclusively to interface %s"
msgstr "" msgstr ""
#: dnsmasq.c:808 #: dnsmasq.c:804
msgid "root is " msgid "root is "
msgstr "" msgstr ""
#: dnsmasq.c:808 #: dnsmasq.c:804
#, fuzzy #, fuzzy
msgid "enabled" msgid "enabled"
msgstr "deaktivert" msgstr "deaktivert"
#: dnsmasq.c:810 #: dnsmasq.c:806
msgid "secure mode" msgid "secure mode"
msgstr "" msgstr ""
#: dnsmasq.c:813 #: dnsmasq.c:809
#, c-format #, c-format
msgid "warning: %s inaccessible" msgid "warning: %s inaccessible"
msgstr "" msgstr ""
#: dnsmasq.c:817 #: dnsmasq.c:813
#, c-format #, c-format
msgid "warning: TFTP directory %s inaccessible" msgid "warning: TFTP directory %s inaccessible"
msgstr "" msgstr ""
#: dnsmasq.c:843 #: dnsmasq.c:839
#, c-format #, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d" msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "" msgstr ""
#: dnsmasq.c:1039 #: dnsmasq.c:999
msgid "connected to system DBus" msgid "connected to system DBus"
msgstr "tilkoblet til system DBus" msgstr "tilkoblet til system DBus"
#: dnsmasq.c:1189 #: dnsmasq.c:1149
#, c-format #, c-format
msgid "cannot fork into background: %s" msgid "cannot fork into background: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1192 #: dnsmasq.c:1152
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create helper: %s" msgid "failed to create helper: %s"
msgstr "feilet å lese %s: %s" msgstr "feilet å lese %s: %s"
#: dnsmasq.c:1195 #: dnsmasq.c:1155
#, c-format #, c-format
msgid "setting capabilities failed: %s" msgid "setting capabilities failed: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1198 #: dnsmasq.c:1158
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to change user-id to %s: %s" msgid "failed to change user-id to %s: %s"
msgstr "feilet å laste navn fra %s: %s" msgstr "feilet å laste navn fra %s: %s"
#: dnsmasq.c:1201 #: dnsmasq.c:1161
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to change group-id to %s: %s" msgid "failed to change group-id to %s: %s"
msgstr "feilet å laste navn fra %s: %s" msgstr "feilet å laste navn fra %s: %s"
#: dnsmasq.c:1204 #: dnsmasq.c:1164
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to open pidfile %s: %s" msgid "failed to open pidfile %s: %s"
msgstr "feilet å lese %s: %s" msgstr "feilet å lese %s: %s"
#: dnsmasq.c:1207 #: dnsmasq.c:1167
#, fuzzy, c-format #, fuzzy, c-format
msgid "cannot open log %s: %s" msgid "cannot open log %s: %s"
msgstr "kan ikke åpne %s:%s" msgstr "kan ikke åpne %s:%s"
#: dnsmasq.c:1210 #: dnsmasq.c:1170
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to load Lua script: %s" msgid "failed to load Lua script: %s"
msgstr "feilet å laste %s: %s" msgstr "feilet å laste %s: %s"
#: dnsmasq.c:1213 #: dnsmasq.c:1173
#, c-format #, c-format
msgid "TFTP directory %s inaccessible: %s" msgid "TFTP directory %s inaccessible: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1216 #: dnsmasq.c:1176
#, fuzzy, c-format #, fuzzy, c-format
msgid "cannot create timestamp file %s: %s" msgid "cannot create timestamp file %s: %s"
msgstr "kan ikke åpne eller lage leie fil: %s" msgstr "kan ikke åpne eller lage leie fil: %s"
#: dnsmasq.c:1237 #: dnsmasq.c:1197
msgid "now checking DNSSEC signature timestamps" msgid "now checking DNSSEC signature timestamps"
msgstr "" msgstr ""
#: dnsmasq.c:1304 #: dnsmasq.c:1264
#, c-format #, c-format
msgid "script process killed by signal %d" msgid "script process killed by signal %d"
msgstr "" msgstr ""
#: dnsmasq.c:1308 #: dnsmasq.c:1268
#, c-format #, c-format
msgid "script process exited with status %d" msgid "script process exited with status %d"
msgstr "" msgstr ""
#: dnsmasq.c:1312 #: dnsmasq.c:1272
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to execute %s: %s" msgid "failed to execute %s: %s"
msgstr "feilet å få tilgang til %s: %s" msgstr "feilet å få tilgang til %s: %s"
#: dnsmasq.c:1367 #: dnsmasq.c:1327
msgid "exiting on receipt of SIGTERM" msgid "exiting on receipt of SIGTERM"
msgstr "avslutter etter mottak av SIGTERM" msgstr "avslutter etter mottak av SIGTERM"
#: dnsmasq.c:1395 #: dnsmasq.c:1355
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to access %s: %s" msgid "failed to access %s: %s"
msgstr "feilet å få tilgang til %s: %s" msgstr "feilet å få tilgang til %s: %s"
#: dnsmasq.c:1425 #: dnsmasq.c:1385
#, c-format #, c-format
msgid "reading %s" msgid "reading %s"
msgstr "leser %s" msgstr "leser %s"
#: dnsmasq.c:1436 #: dnsmasq.c:1396
#, fuzzy, c-format #, fuzzy, c-format
msgid "no servers found in %s, will retry" msgid "no servers found in %s, will retry"
msgstr "intet søke direktiv funnet i %s" msgstr "intet søke direktiv funnet i %s"
@@ -1906,7 +1906,7 @@ msgstr ""
msgid "log failed: %s" msgid "log failed: %s"
msgstr "" msgstr ""
#: log.c:472 #: log.c:469
msgid "FAILED to start up" msgid "FAILED to start up"
msgstr "FEILET å starte opp" msgstr "FEILET å starte opp"
@@ -2165,36 +2165,45 @@ msgstr ""
msgid "%d addresses %s" msgid "%d addresses %s"
msgstr "les %s - %d adresser" msgstr "les %s - %d adresser"
#: inotify.c:46 #: inotify.c:59
#, fuzzy, c-format
msgid "cannot access path %s: %s"
msgstr "kan ikke lese %s: %s"
#: inotify.c:92
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create inotify: %s" msgid "failed to create inotify: %s"
msgstr "feilet å lese %s: %s" msgstr "feilet å lese %s: %s"
#: inotify.c:60 #: inotify.c:105
#, fuzzy, c-format #, c-format
msgid "cannot cannonicalise resolv-file %s: %s" msgid "too many symlinks following %s"
msgstr "kan ikke åpne eller lage leie fil: %s" msgstr ""
#: inotify.c:72 #: inotify.c:121
#, c-format #, c-format
msgid "directory %s for resolv-file is missing, cannot poll" msgid "directory %s for resolv-file is missing, cannot poll"
msgstr "" msgstr ""
#: inotify.c:75 inotify.c:112 #: inotify.c:125 inotify.c:162
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create inotify for %s: %s" msgid "failed to create inotify for %s: %s"
msgstr "feilet å lage lytte socket: %s" msgstr "feilet å lage lytte socket: %s"
#: inotify.c:97 #: inotify.c:147
#, fuzzy, c-format #, fuzzy, c-format
msgid "bad dynamic directory %s: %s" msgid "bad dynamic directory %s: %s"
msgstr "kan ikke lese %s: %s" msgstr "kan ikke lese %s: %s"
#: inotify.c:197 #: inotify.c:247
#, c-format #, c-format
msgid "inotify, new or changed file %s" msgid "inotify, new or changed file %s"
msgstr "" msgstr ""
#, fuzzy
#~ msgid "cannot cannonicalise resolv-file %s: %s"
#~ msgstr "kan ikke åpne eller lage leie fil: %s"
#~ msgid "duplicate IP address %s in dhcp-config directive." #~ msgid "duplicate IP address %s in dhcp-config directive."
#~ msgstr "dubliserte IP adresser i %s dhcp-config direktiv." #~ msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
+97 -99
View File
@@ -3,14 +3,14 @@
# This file is put in the public domain. # This file is put in the public domain.
# #
# Tomasz Sochański <nerdhero@gmail.com>, 2005. # Tomasz Sochański <nerdhero@gmail.com>, 2005.
# Jan Psota <jasiupsota@gmail.com>, 2008, 2009, 2010, 2011, 2013. # Jan Psota <jasiupsota@gmail.com>, 2008-2015.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: pl\n" "Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 20:57+0100\n" "POT-Creation-Date: 2009-06-10 20:57+0100\n"
"PO-Revision-Date: 2014-09-23 12:45+0100\n" "PO-Revision-Date: 2015-07-15 02:08+0100\n"
"Last-Translator: Jan Psota <jasiupsota@gmail.com>\n" "Last-Translator: Jan Psota <jasiupsota@gmail.com>\n"
"Language-Team: polski <>\n" "Language-Team: polski <>\n"
"Language: pl\n" "Language: pl\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n"
"X-Generator: Poedit 1.6.9\n" "X-Generator: Poedit 1.5.5\n"
"X-Language: pl_PL\n" "X-Language: pl_PL\n"
#: cache.c:523 #: cache.c:523
@@ -185,14 +185,12 @@ msgid "Read DHCP option specs from file."
msgstr "Wskazanie pliku z wartościami 'dhcp-option='." msgstr "Wskazanie pliku z wartościami 'dhcp-option='."
#: option.c:348 #: option.c:348
#, fuzzy
msgid "Read DHCP host specs from a directory." msgid "Read DHCP host specs from a directory."
msgstr "Wskazanie pliku z wartościami 'dhcp-host='." msgstr "Odczyt specyfikacji hostów dla DHCP z katalogu."
#: option.c:349 #: option.c:349
#, fuzzy
msgid "Read DHCP options from a directory." msgid "Read DHCP options from a directory."
msgstr "Wskazanie pliku z wartościami 'dhcp-option='." msgstr "Odczyt opcji DHCP z katalogu."
#: option.c:350 #: option.c:350
msgid "Evaluate conditional tag expression." msgid "Evaluate conditional tag expression."
@@ -209,9 +207,8 @@ msgid "Specify a hosts file to be read in addition to %s."
msgstr "Wskazanie dodatkowego pliku 'hosts' oprócz %s." msgstr "Wskazanie dodatkowego pliku 'hosts' oprócz %s."
#: option.c:353 #: option.c:353
#, fuzzy
msgid "Read hosts files from a directory." msgid "Read hosts files from a directory."
msgstr "Wskazanie pliku z wartościami 'dhcp-host='." msgstr "Odczyt pliku hostów z katalogu."
#: option.c:354 #: option.c:354
msgid "Specify interface(s) to listen on." msgid "Specify interface(s) to listen on."
@@ -355,14 +352,12 @@ msgid "Specify time-to-live in seconds for maximum TTL to send to clients."
msgstr "Ograniczenie maksymalnego czasu ważności odpowiedzi (TTL) podawanego klientom [w sekundach]." msgstr "Ograniczenie maksymalnego czasu ważności odpowiedzi (TTL) podawanego klientom [w sekundach]."
#: option.c:388 #: option.c:388
#, fuzzy
msgid "Specify time-to-live ceiling for cache." msgid "Specify time-to-live ceiling for cache."
msgstr "Określenie (w sekundach) czasu ważności negatywnych odpowiedzi." msgstr "Określenie górnej granicy czasu ważności dla wpisów w pamięci podręcznej."
#: option.c:389 #: option.c:389
#, fuzzy
msgid "Specify time-to-live floor for cache." msgid "Specify time-to-live floor for cache."
msgstr "Określenie (w sekundach) czasu ważności negatywnych odpowiedzi." msgstr "Określenie dolnej granicy czasu ważności dla wpisów w pamięci podręcznej."
#: option.c:390 #: option.c:390
#, c-format #, c-format
@@ -508,7 +503,7 @@ msgstr "Ograniczenie dostępu do plików przez TFTP do tych, których właścici
#: option.c:424 #: option.c:424
msgid "Do not terminate the service if TFTP directories are inaccessible." msgid "Do not terminate the service if TFTP directories are inaccessible."
msgstr "" msgstr "Nieprzerywanie działania serwisu mimo braku dostępu do katalogów TFTP."
#: option.c:425 #: option.c:425
#, c-format #, c-format
@@ -697,7 +692,7 @@ msgstr "Wyłączenie sprawdzania sygnatur czasowych DNSSEC do pierwszego przeła
#: option.c:471 #: option.c:471
msgid "Timestamp file to verify system clock for DNSSEC" msgid "Timestamp file to verify system clock for DNSSEC"
msgstr "" msgstr "Plik znacznika czasu do weryfikacji zegara systemowego dla potrzeb DNSSEC."
#: option.c:473 #: option.c:473
msgid "Specify DHCPv6 prefix class" msgid "Specify DHCPv6 prefix class"
@@ -729,7 +724,7 @@ msgstr "Wykrywanie i usuwanie pętli zapytań DNS."
#: option.c:481 #: option.c:481
msgid "Ignore DNS responses containing ipaddr." msgid "Ignore DNS responses containing ipaddr."
msgstr "" msgstr "Ignorowanie odpowiedzi DNS zawierających ipaddr."
#: option.c:683 #: option.c:683
#, c-format #, c-format
@@ -1082,34 +1077,34 @@ msgstr "spróbuj: -w"
msgid "bad command line options: %s" msgid "bad command line options: %s"
msgstr "nieprawidłowa opcja w linii poleceń %s" msgstr "nieprawidłowa opcja w linii poleceń %s"
#: option.c:4544 #: option.c:4541
#, c-format #, c-format
msgid "cannot get host-name: %s" msgid "cannot get host-name: %s"
msgstr "nie można pobrać nazwy hosta: %s" msgstr "nie można pobrać nazwy hosta: %s"
#: option.c:4572 #: option.c:4569
msgid "only one resolv.conf file allowed in no-poll mode." msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "w trybie no-poll można wskazać najwyżej jeden plik resolv.conf." msgstr "w trybie no-poll można wskazać najwyżej jeden plik resolv.conf."
#: option.c:4582 #: option.c:4579
msgid "must have exactly one resolv.conf to read domain from." msgid "must have exactly one resolv.conf to read domain from."
msgstr "musisz mieć dokładnie jeden plik resolv.conf do odczytu domen." msgstr "musisz mieć dokładnie jeden plik resolv.conf do odczytu domen."
#: option.c:4585 network.c:1507 dhcp.c:777 #: option.c:4582 network.c:1507 dhcp.c:777
#, c-format #, c-format
msgid "failed to read %s: %s" msgid "failed to read %s: %s"
msgstr "nie udało się odczytać %s: %s" msgstr "nie udało się odczytać %s: %s"
#: option.c:4602 #: option.c:4599
#, c-format #, c-format
msgid "no search directive found in %s" msgid "no search directive found in %s"
msgstr "brak wytycznych wyszukiwania w %s" msgstr "brak wytycznych wyszukiwania w %s"
#: option.c:4623 #: option.c:4620
msgid "there must be a default domain when --dhcp-fqdn is set" msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr "w przypadku używania --dhcp-fqdn trzeba wskazać domyślną domenę" msgstr "w przypadku używania --dhcp-fqdn trzeba wskazać domyślną domenę"
#: option.c:4632 #: option.c:4629
msgid "syntax check OK" msgid "syntax check OK"
msgstr "składnia sprawdzona, jest prawidłowa" msgstr "składnia sprawdzona, jest prawidłowa"
@@ -1132,11 +1127,11 @@ msgstr "serwer nazw %s odmawia wykonania zapytania rekurencyjnego"
msgid "possible DNS-rebind attack detected: %s" msgid "possible DNS-rebind attack detected: %s"
msgstr "prawdopodobnie wykryto atak DNS-rebind: %s" msgstr "prawdopodobnie wykryto atak DNS-rebind: %s"
#: forward.c:1209 forward.c:1785 #: forward.c:1209 forward.c:1815
msgid "Ignoring query from non-local network" msgid "Ignoring query from non-local network"
msgstr "Ignorowanie zapytań z sieci pozalokalnych." msgstr "Ignorowanie zapytań z sieci pozalokalnych."
#: forward.c:2256 #: forward.c:2286
#, c-format #, c-format
msgid "Maximum number of concurrent DNS queries reached (max: %d)" msgid "Maximum number of concurrent DNS queries reached (max: %d)"
msgstr "Osiągnięto graniczną ilość jednocześnie obsługiwanych zapytań DNS (maks: %d)" msgstr "Osiągnięto graniczną ilość jednocześnie obsługiwanych zapytań DNS (maks: %d)"
@@ -1228,17 +1223,15 @@ msgstr "używam serwera nazw %s#%d"
#: dnsmasq.c:163 #: dnsmasq.c:163
msgid "dhcp-hostsdir, dhcp-optsdir and hostsdir are not supported on this platform" msgid "dhcp-hostsdir, dhcp-optsdir and hostsdir are not supported on this platform"
msgstr "" msgstr "dhcp-hostsdir, dhcp-optsdir i hostsdir nie znajdują zastosowania na tej platformie"
#: dnsmasq.c:170 #: dnsmasq.c:170
#, fuzzy
msgid "no trust anchors provided for DNSSEC" msgid "no trust anchors provided for DNSSEC"
msgstr "Nie wskazano punktów zaufania dla DNSSEC." msgstr "nie wskazano punktów zaufania dla DNSSEC"
#: dnsmasq.c:173 #: dnsmasq.c:173
#, fuzzy
msgid "cannot reduce cache size from default when DNSSEC enabled" msgid "cannot reduce cache size from default when DNSSEC enabled"
msgstr "Brak możliwości zmniejszenia pamięci podręcznej poniżej wielkości domyślnej w przypadku używania DNSSEC." msgstr "brak możliwości zmniejszenia pamięci podręcznej poniżej wielkości domyślnej w przypadku używania DNSSEC"
#: dnsmasq.c:175 #: dnsmasq.c:175
msgid "DNSSEC not available: set HAVE_DNSSEC in src/config.h" msgid "DNSSEC not available: set HAVE_DNSSEC in src/config.h"
@@ -1249,14 +1242,12 @@ msgid "TFTP server not available: set HAVE_TFTP in src/config.h"
msgstr "Serwer TFTP nie został wkompilowany -- ustaw HAVE_TFTP w src/config.h" msgstr "Serwer TFTP nie został wkompilowany -- ustaw HAVE_TFTP w src/config.h"
#: dnsmasq.c:186 #: dnsmasq.c:186
#, fuzzy
msgid "cannot use --conntrack AND --query-port" msgid "cannot use --conntrack AND --query-port"
msgstr "--conntrack i --query-port wykluczają się wzajemnie" msgstr "--conntrack i --query-port wzajemnie się wykluczają"
#: dnsmasq.c:189 #: dnsmasq.c:189
#, fuzzy
msgid "conntrack support not available: set HAVE_CONNTRACK in src/config.h" msgid "conntrack support not available: set HAVE_CONNTRACK in src/config.h"
msgstr "Wsparcie dla przekazywania znaczników połączeń (conntrack) nie zostało wkompilowane - ustaw HAVE_CONNTRACK w src/config.h" msgstr "wsparcie przekazywania znaczników połączeń (conntrack) nie zostało wkompilowane - ustaw HAVE_CONNTRACK w src/config.h"
#: dnsmasq.c:194 #: dnsmasq.c:194
msgid "asychronous logging is not available under Solaris" msgid "asychronous logging is not available under Solaris"
@@ -1271,9 +1262,8 @@ msgid "authoritative DNS not available: set HAVE_AUTH in src/config.h"
msgstr "tryb autorytatywny DNS-a niedostępny - ustaw HAVE_AUTH w src/config.h" msgstr "tryb autorytatywny DNS-a niedostępny - ustaw HAVE_AUTH w src/config.h"
#: dnsmasq.c:209 #: dnsmasq.c:209
#, fuzzy
msgid "loop detection not available: set HAVE_LOOP in src/config.h" msgid "loop detection not available: set HAVE_LOOP in src/config.h"
msgstr "Wykrywanie pętli zapytań nie zostało wkompilowane - ustaw HAVE_LOOP w src/config.h" msgstr "wykrywanie pętli zapytań nie zostało wkompilowane - ustaw HAVE_LOOP w src/config.h"
#: dnsmasq.c:217 #: dnsmasq.c:217
msgid "zone serial must be configured in --auth-soa" msgid "zone serial must be configured in --auth-soa"
@@ -1297,7 +1287,7 @@ msgstr "błąd podczas tworzenia listy interfejsów sieciowych: %s"
msgid "unknown interface %s" msgid "unknown interface %s"
msgstr "nieznany interfejs %s" msgstr "nieznany interfejs %s"
#: dnsmasq.c:354 dnsmasq.c:1037 #: dnsmasq.c:354 dnsmasq.c:997
#, c-format #, c-format
msgid "DBus error: %s" msgid "DBus error: %s"
msgstr "błąd DBus: %s" msgstr "błąd DBus: %s"
@@ -1357,14 +1347,13 @@ msgid "DNSSEC signature timestamps not checked until first cache reload"
msgstr "sprawdzanie sygnatur czasowych DNSSEC wyłączone do czasu przeładowania pamięci podręcznej" msgstr "sprawdzanie sygnatur czasowych DNSSEC wyłączone do czasu przeładowania pamięci podręcznej"
#: dnsmasq.c:733 #: dnsmasq.c:733
#, fuzzy
msgid "DNSSEC signature timestamps not checked until system time valid" msgid "DNSSEC signature timestamps not checked until system time valid"
msgstr "sprawdzanie sygnatur czasowych DNSSEC wyłączone do czasu przeładowania pamięci podręcznej" msgstr "sprawdzanie sygnatur czasowych DNSSEC wyłączone do czasu zsynchronizowania się zegara systemowego"
#: dnsmasq.c:738 #: dnsmasq.c:738
#, c-format #, c-format
msgid "warning: failed to change owner of %s: %s" msgid "warning: failed to change owner of %s: %s"
msgstr "UWAGA! Nie udało się zmienić użytkownika pliku %s: %s" msgstr "uwaga: nie udało się zmienić użytkownika pliku %s: %s"
#: dnsmasq.c:742 #: dnsmasq.c:742
msgid "setting --bind-interfaces option because of OS limitations" msgid "setting --bind-interfaces option because of OS limitations"
@@ -1397,121 +1386,121 @@ msgstr "anonsowanie rutera IPv6 włączone"
msgid "DHCP, sockets bound exclusively to interface %s" msgid "DHCP, sockets bound exclusively to interface %s"
msgstr "DHCP, gniazda dowiązane na wyłączność interfejsowi %s" msgstr "DHCP, gniazda dowiązane na wyłączność interfejsowi %s"
#: dnsmasq.c:808 #: dnsmasq.c:804
msgid "root is " msgid "root is "
msgstr "z głównym katalogiem w " msgstr "z głównym katalogiem w "
#: dnsmasq.c:808 #: dnsmasq.c:804
msgid "enabled" msgid "enabled"
msgstr "włączony" msgstr "włączony"
#: dnsmasq.c:810 #: dnsmasq.c:806
msgid "secure mode" msgid "secure mode"
msgstr "w trybie bezpiecznym" msgstr "w trybie bezpiecznym"
#: dnsmasq.c:813 #: dnsmasq.c:809
#, c-format #, c-format
msgid "warning: %s inaccessible" msgid "warning: %s inaccessible"
msgstr "" msgstr "uwaga: %s niedostępny"
#: dnsmasq.c:817 #: dnsmasq.c:813
#, fuzzy, c-format #, c-format
msgid "warning: TFTP directory %s inaccessible" msgid "warning: TFTP directory %s inaccessible"
msgstr "katalog TFTP %s nie jest dostępny: %s" msgstr "uwaga: katalog TFTP %s nie jest dostępny"
#: dnsmasq.c:843 #: dnsmasq.c:839
#, c-format #, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d" msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "ograniczam ilość jednoczesnych przesłań TFTP do %d" msgstr "ograniczam ilość jednoczesnych przesłań TFTP do %d"
#: dnsmasq.c:1039 #: dnsmasq.c:999
msgid "connected to system DBus" msgid "connected to system DBus"
msgstr "podłączono do DBus-a" msgstr "podłączono do DBus-a"
#: dnsmasq.c:1189 #: dnsmasq.c:1149
#, c-format #, c-format
msgid "cannot fork into background: %s" msgid "cannot fork into background: %s"
msgstr "nie potrafię przełączyć się do pracy w tle: %s" msgstr "nie potrafię przełączyć się do pracy w tle: %s"
#: dnsmasq.c:1192 #: dnsmasq.c:1152
#, c-format #, c-format
msgid "failed to create helper: %s" msgid "failed to create helper: %s"
msgstr "nie udało się utworzyć procesu pomocniczego: %s" msgstr "nie udało się utworzyć procesu pomocniczego: %s"
#: dnsmasq.c:1195 #: dnsmasq.c:1155
#, c-format #, c-format
msgid "setting capabilities failed: %s" msgid "setting capabilities failed: %s"
msgstr "nie powiodło się ustawianie ograniczeń (capabilities): %s" msgstr "nie powiodło się ustawianie ograniczeń (capabilities): %s"
#: dnsmasq.c:1198 #: dnsmasq.c:1158
#, c-format #, c-format
msgid "failed to change user-id to %s: %s" msgid "failed to change user-id to %s: %s"
msgstr "nie udało się zmienić użytkownika procesu na %s: %s" msgstr "nie udało się zmienić użytkownika procesu na %s: %s"
#: dnsmasq.c:1201 #: dnsmasq.c:1161
#, c-format #, c-format
msgid "failed to change group-id to %s: %s" msgid "failed to change group-id to %s: %s"
msgstr "nie udało się zmienić grupy procesu na %s: %s" msgstr "nie udało się zmienić grupy procesu na %s: %s"
#: dnsmasq.c:1204 #: dnsmasq.c:1164
#, c-format #, c-format
msgid "failed to open pidfile %s: %s" msgid "failed to open pidfile %s: %s"
msgstr "nie udało się otworzyć pliku z PID-em %s: %s" msgstr "nie udało się otworzyć pliku z PID-em %s: %s"
#: dnsmasq.c:1207 #: dnsmasq.c:1167
#, c-format #, c-format
msgid "cannot open log %s: %s" msgid "cannot open log %s: %s"
msgstr "nie udało się otworzyć logu %s: %s" msgstr "nie udało się otworzyć logu %s: %s"
#: dnsmasq.c:1210 #: dnsmasq.c:1170
#, c-format #, c-format
msgid "failed to load Lua script: %s" msgid "failed to load Lua script: %s"
msgstr "nie udało się wczytać skryptu Lua: %s" msgstr "nie udało się wczytać skryptu Lua: %s"
#: dnsmasq.c:1213 #: dnsmasq.c:1173
#, c-format #, c-format
msgid "TFTP directory %s inaccessible: %s" msgid "TFTP directory %s inaccessible: %s"
msgstr "katalog TFTP %s nie jest dostępny: %s" msgstr "katalog TFTP %s nie jest dostępny: %s"
#: dnsmasq.c:1216 #: dnsmasq.c:1176
#, fuzzy, c-format #, c-format
msgid "cannot create timestamp file %s: %s" msgid "cannot create timestamp file %s: %s"
msgstr "nie potrafię otworzyć albo utworzyć pliku dzierżaw %s: %s" msgstr "nie potrafię utworzyć pliku znacznika czasu %s: %s"
#: dnsmasq.c:1237 #: dnsmasq.c:1197
msgid "now checking DNSSEC signature timestamps" msgid "now checking DNSSEC signature timestamps"
msgstr "trwa sprawdzanie sygnatur czasowych podpisów DNSSEC" msgstr "trwa sprawdzanie sygnatur czasowych podpisów DNSSEC"
#: dnsmasq.c:1304 #: dnsmasq.c:1264
#, c-format #, c-format
msgid "script process killed by signal %d" msgid "script process killed by signal %d"
msgstr "skrypt został zabity sygnałem %d" msgstr "skrypt został zabity sygnałem %d"
#: dnsmasq.c:1308 #: dnsmasq.c:1268
#, c-format #, c-format
msgid "script process exited with status %d" msgid "script process exited with status %d"
msgstr "skrypt zakończył się z kodem powrotu %d" msgstr "skrypt zakończył się z kodem powrotu %d"
#: dnsmasq.c:1312 #: dnsmasq.c:1272
#, c-format #, c-format
msgid "failed to execute %s: %s" msgid "failed to execute %s: %s"
msgstr "nie udało się uruchomić %s: %s" msgstr "nie udało się uruchomić %s: %s"
#: dnsmasq.c:1367 #: dnsmasq.c:1327
msgid "exiting on receipt of SIGTERM" msgid "exiting on receipt of SIGTERM"
msgstr "zakończyłem działanie z powodu odebrania SIGTERM" msgstr "zakończyłem działanie z powodu odebrania SIGTERM"
#: dnsmasq.c:1395 #: dnsmasq.c:1355
#, c-format #, c-format
msgid "failed to access %s: %s" msgid "failed to access %s: %s"
msgstr "brak dostępu do %s: %s" msgstr "brak dostępu do %s: %s"
#: dnsmasq.c:1425 #: dnsmasq.c:1385
#, c-format #, c-format
msgid "reading %s" msgid "reading %s"
msgstr "czytanie %s" msgstr "czytanie %s"
#: dnsmasq.c:1436 #: dnsmasq.c:1396
#, c-format #, c-format
msgid "no servers found in %s, will retry" msgid "no servers found in %s, will retry"
msgstr "w %s nie znalazłem serwerów, spróbuję ponownie później" msgstr "w %s nie znalazłem serwerów, spróbuję ponownie później"
@@ -1789,12 +1778,12 @@ msgstr "próba ustawienia adresu IPv6 serwera przez DBus, ale brak obsługi IPv6
#: dbus.c:439 #: dbus.c:439
#, c-format #, c-format
msgid "Enabling --%s option from D-Bus" msgid "Enabling --%s option from D-Bus"
msgstr "" msgstr "opcja --%s została właśnie aktywowana za pomocą D-Bus"
#: dbus.c:444 #: dbus.c:444
#, c-format #, c-format
msgid "Disabling --%s option from D-Bus" msgid "Disabling --%s option from D-Bus"
msgstr "" msgstr "opcja --%s została właśnie dezaktywowana za pomocą D-Bus"
#: dbus.c:691 #: dbus.c:691
msgid "setting upstream servers from DBus" msgid "setting upstream servers from DBus"
@@ -1866,7 +1855,7 @@ msgstr "przepełnienie: stracono %d wpisów do logów"
msgid "log failed: %s" msgid "log failed: %s"
msgstr "nie udało się zapisać komunikatów do %s" msgstr "nie udało się zapisać komunikatów do %s"
#: log.c:472 #: log.c:469
msgid "FAILED to start up" msgid "FAILED to start up"
msgstr "BŁĄD: nie udało się uruchomić dnsmasq-a" msgstr "BŁĄD: nie udało się uruchomić dnsmasq-a"
@@ -2069,9 +2058,9 @@ msgid "failed to create IPset control socket: %s"
msgstr "nie powiodło się otwieranie gniazda sterującego IPset: %s" msgstr "nie powiodło się otwieranie gniazda sterującego IPset: %s"
#: dnssec.c:449 dnssec.c:493 #: dnssec.c:449 dnssec.c:493
#, fuzzy, c-format #, c-format
msgid "failed to update mtime on %s: %s" msgid "failed to update mtime on %s: %s"
msgstr "nie udało się otworzyć pliku z PID-em %s: %s" msgstr "nie udało się uaktualnić znacznika czasu pliku %s: %s"
#: blockdata.c:58 #: blockdata.c:58
#, c-format #, c-format
@@ -2121,35 +2110,44 @@ msgstr "uwaga: DIOCR%sADDRS: %s"
msgid "%d addresses %s" msgid "%d addresses %s"
msgstr "%d adresów %s" msgstr "%d adresów %s"
#: inotify.c:46 #: inotify.c:59
#, fuzzy, c-format
msgid "failed to create inotify: %s"
msgstr "nie udało się utworzyć procesu pomocniczego: %s"
#: inotify.c:60
#, fuzzy, c-format
msgid "cannot cannonicalise resolv-file %s: %s"
msgstr "nie potrafię otworzyć albo utworzyć pliku dzierżaw %s: %s"
#: inotify.c:72
#, c-format #, c-format
msgid "directory %s for resolv-file is missing, cannot poll" msgid "cannot access path %s: %s"
msgstr ""
#: inotify.c:75 inotify.c:112
#, fuzzy, c-format
msgid "failed to create inotify for %s: %s"
msgstr "nie udało się otworzyć gniazda %s: %s"
#: inotify.c:97
#, fuzzy, c-format
msgid "bad dynamic directory %s: %s"
msgstr "brak dostępu do katalogu %s: %s" msgstr "brak dostępu do katalogu %s: %s"
#: inotify.c:197 #: inotify.c:92
#, c-format
msgid "failed to create inotify: %s"
msgstr "nie udało się uruchomić powiadamiania inotify: %s"
#: inotify.c:105
#, c-format
msgid "too many symlinks following %s"
msgstr "zbyt wiele odniesień począwszy od %s"
#: inotify.c:121
#, c-format
msgid "directory %s for resolv-file is missing, cannot poll"
msgstr "katalog %s z resolv-file nie istnieje - nie ma czego odpytywać"
#: inotify.c:125 inotify.c:162
#, c-format
msgid "failed to create inotify for %s: %s"
msgstr "nie udało się utworzyć powiadamiania dla %s: %s"
#: inotify.c:147
#, c-format
msgid "bad dynamic directory %s: %s"
msgstr "zły katalog dynamiczny %s: %s"
#: inotify.c:247
#, c-format #, c-format
msgid "inotify, new or changed file %s" msgid "inotify, new or changed file %s"
msgstr "" msgstr "inotify: pojawił się lub uległ zmianie plik %s"
#, fuzzy
#~ msgid "cannot cannonicalise resolv-file %s: %s"
#~ msgstr "nie potrafię otworzyć albo utworzyć pliku dzierżaw %s: %s"
#~ msgid "Always send frequent router-advertisements" #~ msgid "Always send frequent router-advertisements"
#~ msgstr "Rozsyłanie wielokrotne anonsów rutera (RA)" #~ msgstr "Rozsyłanie wielokrotne anonsów rutera (RA)"
+48 -43
View File
@@ -1068,34 +1068,34 @@ msgstr ""
msgid "bad command line options: %s" msgid "bad command line options: %s"
msgstr "" msgstr ""
#: option.c:4544 #: option.c:4541
#, c-format #, c-format
msgid "cannot get host-name: %s" msgid "cannot get host-name: %s"
msgstr "" msgstr ""
#: option.c:4572 #: option.c:4569
msgid "only one resolv.conf file allowed in no-poll mode." msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "" msgstr ""
#: option.c:4582 #: option.c:4579
msgid "must have exactly one resolv.conf to read domain from." msgid "must have exactly one resolv.conf to read domain from."
msgstr "" msgstr ""
#: option.c:4585 network.c:1507 dhcp.c:777 #: option.c:4582 network.c:1507 dhcp.c:777
#, c-format #, c-format
msgid "failed to read %s: %s" msgid "failed to read %s: %s"
msgstr "" msgstr ""
#: option.c:4602 #: option.c:4599
#, c-format #, c-format
msgid "no search directive found in %s" msgid "no search directive found in %s"
msgstr "" msgstr ""
#: option.c:4623 #: option.c:4620
msgid "there must be a default domain when --dhcp-fqdn is set" msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr "" msgstr ""
#: option.c:4632 #: option.c:4629
msgid "syntax check OK" msgid "syntax check OK"
msgstr "" msgstr ""
@@ -1118,11 +1118,11 @@ msgstr ""
msgid "possible DNS-rebind attack detected: %s" msgid "possible DNS-rebind attack detected: %s"
msgstr "" msgstr ""
#: forward.c:1209 forward.c:1785 #: forward.c:1209 forward.c:1815
msgid "Ignoring query from non-local network" msgid "Ignoring query from non-local network"
msgstr "" msgstr ""
#: forward.c:2256 #: forward.c:2286
#, c-format #, c-format
msgid "Maximum number of concurrent DNS queries reached (max: %d)" msgid "Maximum number of concurrent DNS queries reached (max: %d)"
msgstr "" msgstr ""
@@ -1278,7 +1278,7 @@ msgstr ""
msgid "unknown interface %s" msgid "unknown interface %s"
msgstr "" msgstr ""
#: dnsmasq.c:354 dnsmasq.c:1037 #: dnsmasq.c:354 dnsmasq.c:997
#, c-format #, c-format
msgid "DBus error: %s" msgid "DBus error: %s"
msgstr "" msgstr ""
@@ -1377,121 +1377,121 @@ msgstr ""
msgid "DHCP, sockets bound exclusively to interface %s" msgid "DHCP, sockets bound exclusively to interface %s"
msgstr "" msgstr ""
#: dnsmasq.c:808 #: dnsmasq.c:804
msgid "root is " msgid "root is "
msgstr "" msgstr ""
#: dnsmasq.c:808 #: dnsmasq.c:804
msgid "enabled" msgid "enabled"
msgstr "" msgstr ""
#: dnsmasq.c:810 #: dnsmasq.c:806
msgid "secure mode" msgid "secure mode"
msgstr "" msgstr ""
#: dnsmasq.c:813 #: dnsmasq.c:809
#, c-format #, c-format
msgid "warning: %s inaccessible" msgid "warning: %s inaccessible"
msgstr "" msgstr ""
#: dnsmasq.c:817 #: dnsmasq.c:813
#, c-format #, c-format
msgid "warning: TFTP directory %s inaccessible" msgid "warning: TFTP directory %s inaccessible"
msgstr "" msgstr ""
#: dnsmasq.c:843 #: dnsmasq.c:839
#, c-format #, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d" msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "" msgstr ""
#: dnsmasq.c:1039 #: dnsmasq.c:999
msgid "connected to system DBus" msgid "connected to system DBus"
msgstr "" msgstr ""
#: dnsmasq.c:1189 #: dnsmasq.c:1149
#, c-format #, c-format
msgid "cannot fork into background: %s" msgid "cannot fork into background: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1192 #: dnsmasq.c:1152
#, c-format #, c-format
msgid "failed to create helper: %s" msgid "failed to create helper: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1195 #: dnsmasq.c:1155
#, c-format #, c-format
msgid "setting capabilities failed: %s" msgid "setting capabilities failed: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1198 #: dnsmasq.c:1158
#, c-format #, c-format
msgid "failed to change user-id to %s: %s" msgid "failed to change user-id to %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1201 #: dnsmasq.c:1161
#, c-format #, c-format
msgid "failed to change group-id to %s: %s" msgid "failed to change group-id to %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1204 #: dnsmasq.c:1164
#, c-format #, c-format
msgid "failed to open pidfile %s: %s" msgid "failed to open pidfile %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1207 #: dnsmasq.c:1167
#, c-format #, c-format
msgid "cannot open log %s: %s" msgid "cannot open log %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1210 #: dnsmasq.c:1170
#, c-format #, c-format
msgid "failed to load Lua script: %s" msgid "failed to load Lua script: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1213 #: dnsmasq.c:1173
#, c-format #, c-format
msgid "TFTP directory %s inaccessible: %s" msgid "TFTP directory %s inaccessible: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1216 #: dnsmasq.c:1176
#, c-format #, c-format
msgid "cannot create timestamp file %s: %s" msgid "cannot create timestamp file %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1237 #: dnsmasq.c:1197
msgid "now checking DNSSEC signature timestamps" msgid "now checking DNSSEC signature timestamps"
msgstr "" msgstr ""
#: dnsmasq.c:1304 #: dnsmasq.c:1264
#, c-format #, c-format
msgid "script process killed by signal %d" msgid "script process killed by signal %d"
msgstr "" msgstr ""
#: dnsmasq.c:1308 #: dnsmasq.c:1268
#, c-format #, c-format
msgid "script process exited with status %d" msgid "script process exited with status %d"
msgstr "" msgstr ""
#: dnsmasq.c:1312 #: dnsmasq.c:1272
#, c-format #, c-format
msgid "failed to execute %s: %s" msgid "failed to execute %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1367 #: dnsmasq.c:1327
msgid "exiting on receipt of SIGTERM" msgid "exiting on receipt of SIGTERM"
msgstr "" msgstr ""
#: dnsmasq.c:1395 #: dnsmasq.c:1355
#, c-format #, c-format
msgid "failed to access %s: %s" msgid "failed to access %s: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1425 #: dnsmasq.c:1385
#, c-format #, c-format
msgid "reading %s" msgid "reading %s"
msgstr "" msgstr ""
#: dnsmasq.c:1436 #: dnsmasq.c:1396
#, c-format #, c-format
msgid "no servers found in %s, will retry" msgid "no servers found in %s, will retry"
msgstr "" msgstr ""
@@ -1846,7 +1846,7 @@ msgstr ""
msgid "log failed: %s" msgid "log failed: %s"
msgstr "" msgstr ""
#: log.c:472 #: log.c:469
msgid "FAILED to start up" msgid "FAILED to start up"
msgstr "" msgstr ""
@@ -2101,32 +2101,37 @@ msgstr ""
msgid "%d addresses %s" msgid "%d addresses %s"
msgstr "" msgstr ""
#: inotify.c:46 #: inotify.c:59
#, c-format
msgid "cannot access path %s: %s"
msgstr ""
#: inotify.c:92
#, c-format #, c-format
msgid "failed to create inotify: %s" msgid "failed to create inotify: %s"
msgstr "" msgstr ""
#: inotify.c:60 #: inotify.c:105
#, c-format #, c-format
msgid "cannot cannonicalise resolv-file %s: %s" msgid "too many symlinks following %s"
msgstr "" msgstr ""
#: inotify.c:72 #: inotify.c:121
#, c-format #, c-format
msgid "directory %s for resolv-file is missing, cannot poll" msgid "directory %s for resolv-file is missing, cannot poll"
msgstr "" msgstr ""
#: inotify.c:75 inotify.c:112 #: inotify.c:125 inotify.c:162
#, c-format #, c-format
msgid "failed to create inotify for %s: %s" msgid "failed to create inotify for %s: %s"
msgstr "" msgstr ""
#: inotify.c:97 #: inotify.c:147
#, c-format #, c-format
msgid "bad dynamic directory %s: %s" msgid "bad dynamic directory %s: %s"
msgstr "" msgstr ""
#: inotify.c:197 #: inotify.c:247
#, c-format #, c-format
msgid "inotify, new or changed file %s" msgid "inotify, new or changed file %s"
msgstr "" msgstr ""
+54 -45
View File
@@ -1119,34 +1119,34 @@ msgstr ""
msgid "bad command line options: %s" msgid "bad command line options: %s"
msgstr "opţiuni în linie de comandă invalide: %s." msgstr "opţiuni în linie de comandă invalide: %s."
#: option.c:4544 #: option.c:4541
#, c-format #, c-format
msgid "cannot get host-name: %s" msgid "cannot get host-name: %s"
msgstr "nu pot citi numele maşinii: %s" msgstr "nu pot citi numele maşinii: %s"
#: option.c:4572 #: option.c:4569
msgid "only one resolv.conf file allowed in no-poll mode." msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "se permite un singur fişier resolv.conf în modul no-poll" msgstr "se permite un singur fişier resolv.conf în modul no-poll"
#: option.c:4582 #: option.c:4579
msgid "must have exactly one resolv.conf to read domain from." 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." msgstr "am nevoie de un singur resolv.conf din care să citesc numele domeniului."
#: option.c:4585 network.c:1507 dhcp.c:777 #: option.c:4582 network.c:1507 dhcp.c:777
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to read %s: %s" msgid "failed to read %s: %s"
msgstr "nu pot citi %s: %s" msgstr "nu pot citi %s: %s"
#: option.c:4602 #: option.c:4599
#, c-format #, c-format
msgid "no search directive found in %s" msgid "no search directive found in %s"
msgstr "nu s-a găsit nici un criteriu de căutare în %s" msgstr "nu s-a găsit nici un criteriu de căutare în %s"
#: option.c:4623 #: option.c:4620
msgid "there must be a default domain when --dhcp-fqdn is set" msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr "" msgstr ""
#: option.c:4632 #: option.c:4629
msgid "syntax check OK" msgid "syntax check OK"
msgstr "" msgstr ""
@@ -1169,11 +1169,11 @@ msgstr "serverul DNS %s refuză interogările recursive"
msgid "possible DNS-rebind attack detected: %s" msgid "possible DNS-rebind attack detected: %s"
msgstr "" msgstr ""
#: forward.c:1209 forward.c:1785 #: forward.c:1209 forward.c:1815
msgid "Ignoring query from non-local network" msgid "Ignoring query from non-local network"
msgstr "" msgstr ""
#: forward.c:2256 #: forward.c:2286
#, fuzzy, c-format #, fuzzy, c-format
msgid "Maximum number of concurrent DNS queries reached (max: %d)" msgid "Maximum number of concurrent DNS queries reached (max: %d)"
msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)." msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)."
@@ -1334,7 +1334,7 @@ msgstr "enumerarea interfeţelor a eşuat: %s"
msgid "unknown interface %s" msgid "unknown interface %s"
msgstr "interfaţă necunoscută %s" msgstr "interfaţă necunoscută %s"
#: dnsmasq.c:354 dnsmasq.c:1037 #: dnsmasq.c:354 dnsmasq.c:997
#, c-format #, c-format
msgid "DBus error: %s" msgid "DBus error: %s"
msgstr "eroare DBus: %s" msgstr "eroare DBus: %s"
@@ -1435,124 +1435,124 @@ msgstr ""
msgid "DHCP, sockets bound exclusively to interface %s" msgid "DHCP, sockets bound exclusively to interface %s"
msgstr "" msgstr ""
#: dnsmasq.c:808 #: dnsmasq.c:804
msgid "root is " msgid "root is "
msgstr "" msgstr ""
#: dnsmasq.c:808 #: dnsmasq.c:804
#, fuzzy #, fuzzy
msgid "enabled" msgid "enabled"
msgstr "dezactivat" msgstr "dezactivat"
#: dnsmasq.c:810 #: dnsmasq.c:806
msgid "secure mode" msgid "secure mode"
msgstr "" msgstr ""
#: dnsmasq.c:813 #: dnsmasq.c:809
#, c-format #, c-format
msgid "warning: %s inaccessible" msgid "warning: %s inaccessible"
msgstr "" msgstr ""
#: dnsmasq.c:817 #: dnsmasq.c:813
#, c-format #, c-format
msgid "warning: TFTP directory %s inaccessible" msgid "warning: TFTP directory %s inaccessible"
msgstr "" msgstr ""
#: dnsmasq.c:843 #: dnsmasq.c:839
#, c-format #, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d" msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "" msgstr ""
#: dnsmasq.c:1039 #: dnsmasq.c:999
msgid "connected to system DBus" msgid "connected to system DBus"
msgstr "magistrala sistem Dbus conectată" msgstr "magistrala sistem Dbus conectată"
#: dnsmasq.c:1189 #: dnsmasq.c:1149
#, c-format #, c-format
msgid "cannot fork into background: %s" msgid "cannot fork into background: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1192 #: dnsmasq.c:1152
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create helper: %s" msgid "failed to create helper: %s"
msgstr "nu pot citi %s: %s" msgstr "nu pot citi %s: %s"
#: dnsmasq.c:1195 #: dnsmasq.c:1155
#, c-format #, c-format
msgid "setting capabilities failed: %s" msgid "setting capabilities failed: %s"
msgstr "" msgstr ""
# for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent. # for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
#: dnsmasq.c:1198 #: dnsmasq.c:1158
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to change user-id to %s: %s" msgid "failed to change user-id to %s: %s"
msgstr "încărcarea numelor din %s: %s a eşuat" msgstr "încărcarea numelor din %s: %s a eşuat"
# for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent. # for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
#: dnsmasq.c:1201 #: dnsmasq.c:1161
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to change group-id to %s: %s" msgid "failed to change group-id to %s: %s"
msgstr "încărcarea numelor din %s: %s a eşuat" msgstr "încărcarea numelor din %s: %s a eşuat"
#: dnsmasq.c:1204 #: dnsmasq.c:1164
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to open pidfile %s: %s" msgid "failed to open pidfile %s: %s"
msgstr "nu pot citi %s: %s" msgstr "nu pot citi %s: %s"
#: dnsmasq.c:1207 #: dnsmasq.c:1167
#, fuzzy, c-format #, fuzzy, c-format
msgid "cannot open log %s: %s" msgid "cannot open log %s: %s"
msgstr "nu pot deschide %s:%s" msgstr "nu pot deschide %s:%s"
#: dnsmasq.c:1210 #: dnsmasq.c:1170
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to load Lua script: %s" msgid "failed to load Lua script: %s"
msgstr "nu pot încărca %s: %s" msgstr "nu pot încărca %s: %s"
#: dnsmasq.c:1213 #: dnsmasq.c:1173
#, c-format #, c-format
msgid "TFTP directory %s inaccessible: %s" msgid "TFTP directory %s inaccessible: %s"
msgstr "" msgstr ""
#: dnsmasq.c:1216 #: dnsmasq.c:1176
#, fuzzy, c-format #, fuzzy, c-format
msgid "cannot create timestamp file %s: %s" msgid "cannot create timestamp file %s: %s"
msgstr "nu pot creea sau deschide fişierul cu împrumuturi: %s" msgstr "nu pot creea sau deschide fişierul cu împrumuturi: %s"
#: dnsmasq.c:1237 #: dnsmasq.c:1197
msgid "now checking DNSSEC signature timestamps" msgid "now checking DNSSEC signature timestamps"
msgstr "" msgstr ""
#: dnsmasq.c:1304 #: dnsmasq.c:1264
#, c-format #, c-format
msgid "script process killed by signal %d" msgid "script process killed by signal %d"
msgstr "" msgstr ""
#: dnsmasq.c:1308 #: dnsmasq.c:1268
#, c-format #, c-format
msgid "script process exited with status %d" msgid "script process exited with status %d"
msgstr "" msgstr ""
#: dnsmasq.c:1312 #: dnsmasq.c:1272
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to execute %s: %s" msgid "failed to execute %s: %s"
msgstr "accesarea serverului %s a eşuat: %s" msgstr "accesarea serverului %s a eşuat: %s"
#: dnsmasq.c:1367 #: dnsmasq.c:1327
msgid "exiting on receipt of SIGTERM" msgid "exiting on receipt of SIGTERM"
msgstr "am primit SIGTERM, am terminat" msgstr "am primit SIGTERM, am terminat"
#: dnsmasq.c:1395 #: dnsmasq.c:1355
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to access %s: %s" msgid "failed to access %s: %s"
msgstr "accesarea serverului %s a eşuat: %s" msgstr "accesarea serverului %s a eşuat: %s"
#: dnsmasq.c:1425 #: dnsmasq.c:1385
#, c-format #, c-format
msgid "reading %s" msgid "reading %s"
msgstr "citesc %s" msgstr "citesc %s"
#: dnsmasq.c:1436 #: dnsmasq.c:1396
#, fuzzy, c-format #, fuzzy, c-format
msgid "no servers found in %s, will retry" msgid "no servers found in %s, will retry"
msgstr "nu s-a găsit nici un criteriu de căutare în %s" msgstr "nu s-a găsit nici un criteriu de căutare în %s"
@@ -1907,7 +1907,7 @@ msgstr ""
msgid "log failed: %s" msgid "log failed: %s"
msgstr "" msgstr ""
#: log.c:472 #: log.c:469
msgid "FAILED to start up" msgid "FAILED to start up"
msgstr "pornirea A EŞUAT" msgstr "pornirea A EŞUAT"
@@ -2166,36 +2166,45 @@ msgstr ""
msgid "%d addresses %s" msgid "%d addresses %s"
msgstr "citesc %s - %d adrese" msgstr "citesc %s - %d adrese"
#: inotify.c:46 #: inotify.c:59
#, fuzzy, c-format
msgid "cannot access path %s: %s"
msgstr "nu pot citi %s: %s"
#: inotify.c:92
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create inotify: %s" msgid "failed to create inotify: %s"
msgstr "nu pot citi %s: %s" msgstr "nu pot citi %s: %s"
#: inotify.c:60 #: inotify.c:105
#, fuzzy, c-format #, c-format
msgid "cannot cannonicalise resolv-file %s: %s" msgid "too many symlinks following %s"
msgstr "nu pot creea sau deschide fişierul cu împrumuturi: %s" msgstr ""
#: inotify.c:72 #: inotify.c:121
#, c-format #, c-format
msgid "directory %s for resolv-file is missing, cannot poll" msgid "directory %s for resolv-file is missing, cannot poll"
msgstr "" msgstr ""
#: inotify.c:75 inotify.c:112 #: inotify.c:125 inotify.c:162
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create inotify for %s: %s" msgid "failed to create inotify for %s: %s"
msgstr "creearea socket-ului de ascultare a eşuat: %s" msgstr "creearea socket-ului de ascultare a eşuat: %s"
#: inotify.c:97 #: inotify.c:147
#, fuzzy, c-format #, fuzzy, c-format
msgid "bad dynamic directory %s: %s" msgid "bad dynamic directory %s: %s"
msgstr "nu pot citi %s: %s" msgstr "nu pot citi %s: %s"
#: inotify.c:197 #: inotify.c:247
#, c-format #, c-format
msgid "inotify, new or changed file %s" msgid "inotify, new or changed file %s"
msgstr "" msgstr ""
#, fuzzy
#~ msgid "cannot cannonicalise resolv-file %s: %s"
#~ msgstr "nu pot creea sau deschide fişierul cu împrumuturi: %s"
#~ msgid "duplicate IP address %s in dhcp-config directive." #~ msgid "duplicate IP address %s in dhcp-config directive."
#~ msgstr "adresă IP duplicat %s în declaraţia dhcp-config." #~ msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
+8 -11
View File
@@ -749,8 +749,7 @@ char *dbus_init(void)
} }
void set_dbus_listeners(int *maxfdp, void set_dbus_listeners(void)
fd_set *rset, fd_set *wset, fd_set *eset)
{ {
struct watch *w; struct watch *w;
@@ -760,19 +759,17 @@ void set_dbus_listeners(int *maxfdp,
unsigned int flags = dbus_watch_get_flags(w->watch); unsigned int flags = dbus_watch_get_flags(w->watch);
int fd = dbus_watch_get_unix_fd(w->watch); int fd = dbus_watch_get_unix_fd(w->watch);
bump_maxfd(fd, maxfdp);
if (flags & DBUS_WATCH_READABLE) if (flags & DBUS_WATCH_READABLE)
FD_SET(fd, rset); poll_listen(fd, POLLIN);
if (flags & DBUS_WATCH_WRITABLE) if (flags & DBUS_WATCH_WRITABLE)
FD_SET(fd, wset); poll_listen(fd, POLLOUT);
FD_SET(fd, eset); poll_listen(fd, POLLERR);
} }
} }
void check_dbus_listeners(fd_set *rset, fd_set *wset, fd_set *eset) void check_dbus_listeners()
{ {
DBusConnection *connection = (DBusConnection *)daemon->dbus; DBusConnection *connection = (DBusConnection *)daemon->dbus;
struct watch *w; struct watch *w;
@@ -783,13 +780,13 @@ void check_dbus_listeners(fd_set *rset, fd_set *wset, fd_set *eset)
unsigned int flags = 0; unsigned int flags = 0;
int fd = dbus_watch_get_unix_fd(w->watch); int fd = dbus_watch_get_unix_fd(w->watch);
if (FD_ISSET(fd, rset)) if (poll_check(fd, POLLIN))
flags |= DBUS_WATCH_READABLE; flags |= DBUS_WATCH_READABLE;
if (FD_ISSET(fd, wset)) if (poll_check(fd, POLLOUT))
flags |= DBUS_WATCH_WRITABLE; flags |= DBUS_WATCH_WRITABLE;
if (FD_ISSET(fd, eset)) if (poll_check(fd, POLLERR))
flags |= DBUS_WATCH_ERROR; flags |= DBUS_WATCH_ERROR;
if (flags != 0) if (flags != 0)
+90 -136
View File
@@ -24,8 +24,8 @@ struct daemon *daemon;
static volatile pid_t pid = 0; static volatile pid_t pid = 0;
static volatile int pipewrite; static volatile int pipewrite;
static int set_dns_listeners(time_t now, fd_set *set, int *maxfdp); static int set_dns_listeners(time_t now);
static void check_dns_listeners(fd_set *set, time_t now); static void check_dns_listeners(time_t now);
static void sig_handler(int sig); static void sig_handler(int sig);
static void async_event(int pipe, time_t now); static void async_event(int pipe, time_t now);
static void fatal_event(struct event_desc *ev, char *msg); static void fatal_event(struct event_desc *ev, char *msg);
@@ -799,10 +799,6 @@ int main (int argc, char **argv)
if (option_bool(OPT_TFTP)) if (option_bool(OPT_TFTP))
{ {
struct tftp_prefix *p; struct tftp_prefix *p;
#ifdef FD_SETSIZE
if (FD_SETSIZE < (unsigned)max_fd)
max_fd = FD_SETSIZE;
#endif
my_syslog(MS_TFTP | LOG_INFO, "TFTP %s%s %s", my_syslog(MS_TFTP | LOG_INFO, "TFTP %s%s %s",
daemon->tftp_prefix ? _("root is ") : _("enabled"), daemon->tftp_prefix ? _("root is ") : _("enabled"),
@@ -862,88 +858,58 @@ int main (int argc, char **argv)
while (1) while (1)
{ {
int maxfd = -1; int t, timeout = -1;
struct timeval t, *tp = NULL;
fd_set rset, wset, eset;
FD_ZERO(&rset); poll_reset();
FD_ZERO(&wset);
FD_ZERO(&eset);
/* if we are out of resources, find how long we have to wait /* if we are out of resources, find how long we have to wait
for some to come free, we'll loop around then and restart for some to come free, we'll loop around then and restart
listening for queries */ listening for queries */
if ((t.tv_sec = set_dns_listeners(now, &rset, &maxfd)) != 0) if ((t = set_dns_listeners(now)) != 0)
{ timeout = t * 1000;
t.tv_usec = 0;
tp = &t;
}
/* Whilst polling for the dbus, or doing a tftp transfer, wake every quarter second */ /* Whilst polling for the dbus, or doing a tftp transfer, wake every quarter second */
if (daemon->tftp_trans || if (daemon->tftp_trans ||
(option_bool(OPT_DBUS) && !daemon->dbus)) (option_bool(OPT_DBUS) && !daemon->dbus))
{ timeout = 250;
t.tv_sec = 0;
t.tv_usec = 250000;
tp = &t;
}
/* Wake every second whilst waiting for DAD to complete */ /* Wake every second whilst waiting for DAD to complete */
else if (is_dad_listeners()) else if (is_dad_listeners())
{ timeout = 1000;
t.tv_sec = 1;
t.tv_usec = 0;
tp = &t;
}
#ifdef HAVE_DBUS #ifdef HAVE_DBUS
set_dbus_listeners(&maxfd, &rset, &wset, &eset); set_dbus_listeners();
#endif #endif
#ifdef HAVE_DHCP #ifdef HAVE_DHCP
if (daemon->dhcp || daemon->relay4) if (daemon->dhcp || daemon->relay4)
{ {
FD_SET(daemon->dhcpfd, &rset); poll_listen(daemon->dhcpfd, POLLIN);
bump_maxfd(daemon->dhcpfd, &maxfd);
if (daemon->pxefd != -1) if (daemon->pxefd != -1)
{ poll_listen(daemon->pxefd, POLLIN);
FD_SET(daemon->pxefd, &rset);
bump_maxfd(daemon->pxefd, &maxfd);
}
} }
#endif #endif
#ifdef HAVE_DHCP6 #ifdef HAVE_DHCP6
if (daemon->doing_dhcp6 || daemon->relay6) if (daemon->doing_dhcp6 || daemon->relay6)
{ poll_listen(daemon->dhcp6fd, POLLIN);
FD_SET(daemon->dhcp6fd, &rset);
bump_maxfd(daemon->dhcp6fd, &maxfd);
}
if (daemon->doing_ra) if (daemon->doing_ra)
{ poll_listen(daemon->icmp6fd, POLLIN);
FD_SET(daemon->icmp6fd, &rset);
bump_maxfd(daemon->icmp6fd, &maxfd);
}
#endif #endif
#ifdef HAVE_INOTIFY #ifdef HAVE_INOTIFY
if (daemon->inotifyfd != -1) if (daemon->inotifyfd != -1)
{ poll_listen(daemon->inotifyfd, POLLIN);
FD_SET(daemon->inotifyfd, &rset);
bump_maxfd(daemon->inotifyfd, &maxfd);
}
#endif #endif
#if defined(HAVE_LINUX_NETWORK) #if defined(HAVE_LINUX_NETWORK)
FD_SET(daemon->netlinkfd, &rset); poll_listen(daemon->netlinkfd, POLLIN);
bump_maxfd(daemon->netlinkfd, &maxfd);
#elif defined(HAVE_BSD_NETWORK) #elif defined(HAVE_BSD_NETWORK)
FD_SET(daemon->routefd, &rset); poll_listen(daemon->routefd, POLLIN);
bump_maxfd(daemon->routefd, &maxfd);
#endif #endif
FD_SET(piperead, &rset); poll_listen(piperead, POLLIN);
bump_maxfd(piperead, &maxfd);
#ifdef HAVE_DHCP #ifdef HAVE_DHCP
# ifdef HAVE_SCRIPT # ifdef HAVE_SCRIPT
@@ -954,10 +920,7 @@ int main (int argc, char **argv)
# endif # endif
if (!helper_buf_empty()) if (!helper_buf_empty())
{ poll_listen(daemon->helperfd, POLLOUT);
FD_SET(daemon->helperfd, &wset);
bump_maxfd(daemon->helperfd, &maxfd);
}
# else # else
/* need this for other side-effects */ /* need this for other side-effects */
while (do_script_run(now)); while (do_script_run(now));
@@ -971,17 +934,14 @@ int main (int argc, char **argv)
/* must do this just before select(), when we know no /* must do this just before select(), when we know no
more calls to my_syslog() can occur */ more calls to my_syslog() can occur */
set_log_writer(&wset, &maxfd); set_log_writer();
if (do_poll(timeout) < 0)
continue;
if (select(maxfd+1, &rset, &wset, &eset, tp) < 0)
{
/* otherwise undefined after error */
FD_ZERO(&rset); FD_ZERO(&wset); FD_ZERO(&eset);
}
now = dnsmasq_time(); now = dnsmasq_time();
check_log_writer(&wset); check_log_writer(0);
/* prime. */ /* prime. */
enumerate_interfaces(1); enumerate_interfaces(1);
@@ -997,15 +957,15 @@ int main (int argc, char **argv)
} }
#if defined(HAVE_LINUX_NETWORK) #if defined(HAVE_LINUX_NETWORK)
if (FD_ISSET(daemon->netlinkfd, &rset)) if (poll_check(daemon->netlinkfd, POLLIN))
netlink_multicast(); netlink_multicast();
#elif defined(HAVE_BSD_NETWORK) #elif defined(HAVE_BSD_NETWORK)
if (FD_ISSET(daemon->routefd, &rset)) if (poll_check(daemon->routefd, POLLIN))
route_sock(); route_sock();
#endif #endif
#ifdef HAVE_INOTIFY #ifdef HAVE_INOTIFY
if (daemon->inotifyfd != -1 && FD_ISSET(daemon->inotifyfd, &rset) && inotify_check(now)) if (daemon->inotifyfd != -1 && poll_check(daemon->inotifyfd, POLLIN) && inotify_check(now))
{ {
if (daemon->port != 0 && !option_bool(OPT_NO_POLL)) if (daemon->port != 0 && !option_bool(OPT_NO_POLL))
poll_resolv(1, 1, now); poll_resolv(1, 1, now);
@@ -1025,7 +985,7 @@ int main (int argc, char **argv)
} }
#endif #endif
if (FD_ISSET(piperead, &rset)) if (poll_check(piperead, POLLIN))
async_event(piperead, now); async_event(piperead, now);
#ifdef HAVE_DBUS #ifdef HAVE_DBUS
@@ -1038,34 +998,34 @@ int main (int argc, char **argv)
if (daemon->dbus) if (daemon->dbus)
my_syslog(LOG_INFO, _("connected to system DBus")); my_syslog(LOG_INFO, _("connected to system DBus"));
} }
check_dbus_listeners(&rset, &wset, &eset); check_dbus_listeners();
#endif #endif
check_dns_listeners(&rset, now); check_dns_listeners(now);
#ifdef HAVE_TFTP #ifdef HAVE_TFTP
check_tftp_listeners(&rset, now); check_tftp_listeners(now);
#endif #endif
#ifdef HAVE_DHCP #ifdef HAVE_DHCP
if (daemon->dhcp || daemon->relay4) if (daemon->dhcp || daemon->relay4)
{ {
if (FD_ISSET(daemon->dhcpfd, &rset)) if (poll_check(daemon->dhcpfd, POLLIN))
dhcp_packet(now, 0); dhcp_packet(now, 0);
if (daemon->pxefd != -1 && FD_ISSET(daemon->pxefd, &rset)) if (daemon->pxefd != -1 && poll_check(daemon->pxefd, POLLIN))
dhcp_packet(now, 1); dhcp_packet(now, 1);
} }
#ifdef HAVE_DHCP6 #ifdef HAVE_DHCP6
if ((daemon->doing_dhcp6 || daemon->relay6) && FD_ISSET(daemon->dhcp6fd, &rset)) if ((daemon->doing_dhcp6 || daemon->relay6) && poll_check(daemon->dhcp6fd, POLLIN))
dhcp6_packet(now); dhcp6_packet(now);
if (daemon->doing_ra && FD_ISSET(daemon->icmp6fd, &rset)) if (daemon->doing_ra && poll_check(daemon->icmp6fd, POLLIN))
icmp6_packet(now); icmp6_packet(now);
#endif #endif
# ifdef HAVE_SCRIPT # ifdef HAVE_SCRIPT
if (daemon->helperfd != -1 && FD_ISSET(daemon->helperfd, &wset)) if (daemon->helperfd != -1 && poll_check(daemon->helperfd, POLLIN))
helper_write(); helper_write();
# endif # endif
#endif #endif
@@ -1361,6 +1321,15 @@ static void async_event(int pipe, time_t now)
if (daemon->lease_stream) if (daemon->lease_stream)
fclose(daemon->lease_stream); fclose(daemon->lease_stream);
#ifdef HAVE_DNSSEC
/* update timestamp file on TERM if time is considered valid */
if (daemon->back_to_the_future)
{
if (utime(daemon->timestamp_file, NULL) == -1)
my_syslog(LOG_ERR, _("failed to update mtime on %s: %s"), daemon->timestamp_file, strerror(errno));
}
#endif
if (daemon->runfile) if (daemon->runfile)
unlink(daemon->runfile); unlink(daemon->runfile);
@@ -1470,7 +1439,7 @@ void clear_cache_and_reload(time_t now)
#endif #endif
} }
static int set_dns_listeners(time_t now, fd_set *set, int *maxfdp) static int set_dns_listeners(time_t now)
{ {
struct serverfd *serverfdp; struct serverfd *serverfdp;
struct listener *listener; struct listener *listener;
@@ -1482,8 +1451,7 @@ static int set_dns_listeners(time_t now, fd_set *set, int *maxfdp)
for (transfer = daemon->tftp_trans; transfer; transfer = transfer->next) for (transfer = daemon->tftp_trans; transfer; transfer = transfer->next)
{ {
tftp++; tftp++;
FD_SET(transfer->sockfd, set); poll_listen(transfer->sockfd, POLLIN);
bump_maxfd(transfer->sockfd, maxfdp);
} }
#endif #endif
@@ -1492,45 +1460,32 @@ static int set_dns_listeners(time_t now, fd_set *set, int *maxfdp)
get_new_frec(now, &wait, 0); get_new_frec(now, &wait, 0);
for (serverfdp = daemon->sfds; serverfdp; serverfdp = serverfdp->next) for (serverfdp = daemon->sfds; serverfdp; serverfdp = serverfdp->next)
{ poll_listen(serverfdp->fd, POLLIN);
FD_SET(serverfdp->fd, set);
bump_maxfd(serverfdp->fd, maxfdp);
}
if (daemon->port != 0 && !daemon->osport) if (daemon->port != 0 && !daemon->osport)
for (i = 0; i < RANDOM_SOCKS; i++) for (i = 0; i < RANDOM_SOCKS; i++)
if (daemon->randomsocks[i].refcount != 0) if (daemon->randomsocks[i].refcount != 0)
{ poll_listen(daemon->randomsocks[i].fd, POLLIN);
FD_SET(daemon->randomsocks[i].fd, set);
bump_maxfd(daemon->randomsocks[i].fd, maxfdp);
}
for (listener = daemon->listeners; listener; listener = listener->next) for (listener = daemon->listeners; listener; listener = listener->next)
{ {
/* only listen for queries if we have resources */ /* only listen for queries if we have resources */
if (listener->fd != -1 && wait == 0) if (listener->fd != -1 && wait == 0)
{ poll_listen(listener->fd, POLLIN);
FD_SET(listener->fd, set);
bump_maxfd(listener->fd, maxfdp);
}
/* death of a child goes through the select loop, so /* death of a child goes through the select loop, so
we don't need to explicitly arrange to wake up here */ we don't need to explicitly arrange to wake up here */
if (listener->tcpfd != -1) if (listener->tcpfd != -1)
for (i = 0; i < MAX_PROCS; i++) for (i = 0; i < MAX_PROCS; i++)
if (daemon->tcp_pids[i] == 0) if (daemon->tcp_pids[i] == 0)
{ {
FD_SET(listener->tcpfd, set); poll_listen(listener->tcpfd, POLLIN);
bump_maxfd(listener->tcpfd, maxfdp);
break; break;
} }
#ifdef HAVE_TFTP #ifdef HAVE_TFTP
if (tftp <= daemon->tftp_max && listener->tftpfd != -1) if (tftp <= daemon->tftp_max && listener->tftpfd != -1)
{ poll_listen(listener->tftpfd, POLLIN);
FD_SET(listener->tftpfd, set);
bump_maxfd(listener->tftpfd, maxfdp);
}
#endif #endif
} }
@@ -1538,33 +1493,33 @@ static int set_dns_listeners(time_t now, fd_set *set, int *maxfdp)
return wait; return wait;
} }
static void check_dns_listeners(fd_set *set, time_t now) static void check_dns_listeners(time_t now)
{ {
struct serverfd *serverfdp; struct serverfd *serverfdp;
struct listener *listener; struct listener *listener;
int i; int i;
for (serverfdp = daemon->sfds; serverfdp; serverfdp = serverfdp->next) for (serverfdp = daemon->sfds; serverfdp; serverfdp = serverfdp->next)
if (FD_ISSET(serverfdp->fd, set)) if (poll_check(serverfdp->fd, POLLIN))
reply_query(serverfdp->fd, serverfdp->source_addr.sa.sa_family, now); reply_query(serverfdp->fd, serverfdp->source_addr.sa.sa_family, now);
if (daemon->port != 0 && !daemon->osport) if (daemon->port != 0 && !daemon->osport)
for (i = 0; i < RANDOM_SOCKS; i++) for (i = 0; i < RANDOM_SOCKS; i++)
if (daemon->randomsocks[i].refcount != 0 && if (daemon->randomsocks[i].refcount != 0 &&
FD_ISSET(daemon->randomsocks[i].fd, set)) poll_check(daemon->randomsocks[i].fd, POLLIN))
reply_query(daemon->randomsocks[i].fd, daemon->randomsocks[i].family, now); reply_query(daemon->randomsocks[i].fd, daemon->randomsocks[i].family, now);
for (listener = daemon->listeners; listener; listener = listener->next) for (listener = daemon->listeners; listener; listener = listener->next)
{ {
if (listener->fd != -1 && FD_ISSET(listener->fd, set)) if (listener->fd != -1 && poll_check(listener->fd, POLLIN))
receive_query(listener, now); receive_query(listener, now);
#ifdef HAVE_TFTP #ifdef HAVE_TFTP
if (listener->tftpfd != -1 && FD_ISSET(listener->tftpfd, set)) if (listener->tftpfd != -1 && poll_check(listener->tftpfd, POLLIN))
tftp_request(listener, now); tftp_request(listener, now);
#endif #endif
if (listener->tcpfd != -1 && FD_ISSET(listener->tcpfd, set)) if (listener->tcpfd != -1 && poll_check(listener->tcpfd, POLLIN))
{ {
int confd, client_ok = 1; int confd, client_ok = 1;
struct irec *iface = NULL; struct irec *iface = NULL;
@@ -1755,14 +1710,22 @@ int icmp_ping(struct in_addr addr)
better not use any resources our caller has in use...) better not use any resources our caller has in use...)
but we remain deaf to signals or further DHCP packets. */ but we remain deaf to signals or further DHCP packets. */
int fd; /* There can be a problem using dnsmasq_time() to end the loop, since
it's not monotonic, and can go backwards if the system clock is
tweaked, leading to the code getting stuck in this loop and
ignoring DHCP requests. To fix this, we check to see if select returned
as a result of a timeout rather than a socket becoming available. We
only allow this to happen as many times as it takes to get to the wait time
in quarter-second chunks. This provides a fallback way to end loop. */
int fd, rc;
struct sockaddr_in saddr; struct sockaddr_in saddr;
struct { struct {
struct ip ip; struct ip ip;
struct icmp icmp; struct icmp icmp;
} packet; } packet;
unsigned short id = rand16(); unsigned short id = rand16();
unsigned int i, j; unsigned int i, j, timeout_count;
int gotreply = 0; int gotreply = 0;
time_t start, now; time_t start, now;
@@ -1794,53 +1757,44 @@ int icmp_ping(struct in_addr addr)
while (retry_send(sendto(fd, (char *)&packet.icmp, sizeof(struct icmp), 0, while (retry_send(sendto(fd, (char *)&packet.icmp, sizeof(struct icmp), 0,
(struct sockaddr *)&saddr, sizeof(saddr)))); (struct sockaddr *)&saddr, sizeof(saddr))));
for (now = start = dnsmasq_time(); for (now = start = dnsmasq_time(), timeout_count = 0;
difftime(now, start) < (float)PING_WAIT;) (difftime(now, start) < (float)PING_WAIT) && (timeout_count < PING_WAIT * 4);)
{ {
struct timeval tv;
fd_set rset, wset;
struct sockaddr_in faddr; struct sockaddr_in faddr;
int maxfd = fd;
socklen_t len = sizeof(faddr); socklen_t len = sizeof(faddr);
tv.tv_usec = 250000; poll_reset();
tv.tv_sec = 0; poll_listen(fd, POLLIN);
set_dns_listeners(now);
FD_ZERO(&rset); set_log_writer();
FD_ZERO(&wset);
FD_SET(fd, &rset);
set_dns_listeners(now, &rset, &maxfd);
set_log_writer(&wset, &maxfd);
#ifdef HAVE_DHCP6 #ifdef HAVE_DHCP6
if (daemon->doing_ra) if (daemon->doing_ra)
{ poll_listen(daemon->icmp6fd, POLLIN);
FD_SET(daemon->icmp6fd, &rset);
bump_maxfd(daemon->icmp6fd, &maxfd);
}
#endif #endif
if (select(maxfd+1, &rset, &wset, NULL, &tv) < 0) rc = do_poll(250);
{
FD_ZERO(&rset); if (rc < 0)
FD_ZERO(&wset); continue;
} else if (rc == 0)
timeout_count++;
now = dnsmasq_time(); now = dnsmasq_time();
check_log_writer(&wset); check_log_writer(0);
check_dns_listeners(&rset, now); check_dns_listeners(now);
#ifdef HAVE_DHCP6 #ifdef HAVE_DHCP6
if (daemon->doing_ra && FD_ISSET(daemon->icmp6fd, &rset)) if (daemon->doing_ra && poll_check(daemon->icmp6fd, POLLIN))
icmp6_packet(now); icmp6_packet(now);
#endif #endif
#ifdef HAVE_TFTP #ifdef HAVE_TFTP
check_tftp_listeners(&rset, now); check_tftp_listeners(now);
#endif #endif
if (FD_ISSET(fd, &rset) && if (poll_check(fd, POLLIN) &&
recvfrom(fd, &packet, sizeof(packet), 0, recvfrom(fd, &packet, sizeof(packet), 0,
(struct sockaddr *)&faddr, &len) == sizeof(packet) && (struct sockaddr *)&faddr, &len) == sizeof(packet) &&
saddr.sin_addr.s_addr == faddr.sin_addr.s_addr && saddr.sin_addr.s_addr == faddr.sin_addr.s_addr &&
+14 -7
View File
@@ -82,7 +82,7 @@ typedef unsigned long long u64;
#if defined(HAVE_SOLARIS_NETWORK) #if defined(HAVE_SOLARIS_NETWORK)
# include <sys/sockio.h> # include <sys/sockio.h>
#endif #endif
#include <sys/select.h> #include <sys/poll.h>
#include <sys/wait.h> #include <sys/wait.h>
#include <sys/time.h> #include <sys/time.h>
#include <sys/un.h> #include <sys/un.h>
@@ -992,6 +992,7 @@ extern struct daemon {
#endif #endif
#ifdef HAVE_DNSSEC #ifdef HAVE_DNSSEC
struct ds_config *ds; struct ds_config *ds;
int back_to_the_future;
char *timestamp_file; char *timestamp_file;
#endif #endif
@@ -1191,7 +1192,6 @@ int memcmp_masked(unsigned char *a, unsigned char *b, int len,
unsigned int mask); unsigned int mask);
int expand_buf(struct iovec *iov, size_t size); int expand_buf(struct iovec *iov, size_t size);
char *print_mac(char *buff, unsigned char *mac, int len); char *print_mac(char *buff, unsigned char *mac, int len);
void bump_maxfd(int fd, int *max);
int read_write(int fd, unsigned char *packet, int size, int rw); int read_write(int fd, unsigned char *packet, int size, int rw);
int wildcard_match(const char* wildcard, const char* match); int wildcard_match(const char* wildcard, const char* match);
@@ -1202,8 +1202,8 @@ void die(char *message, char *arg1, int exit_code);
int log_start(struct passwd *ent_pw, int errfd); int log_start(struct passwd *ent_pw, int errfd);
int log_reopen(char *log_file); int log_reopen(char *log_file);
void my_syslog(int priority, const char *format, ...); void my_syslog(int priority, const char *format, ...);
void set_log_writer(fd_set *set, int *maxfdp); void set_log_writer(void);
void check_log_writer(fd_set *set); void check_log_writer(int force);
void flush_log(void); void flush_log(void);
/* option.c */ /* option.c */
@@ -1366,8 +1366,8 @@ int iface_enumerate(int family, void *parm, int (callback)());
/* dbus.c */ /* dbus.c */
#ifdef HAVE_DBUS #ifdef HAVE_DBUS
char *dbus_init(void); char *dbus_init(void);
void check_dbus_listeners(fd_set *rset, fd_set *wset, fd_set *eset); void check_dbus_listeners(void);
void set_dbus_listeners(int *maxfdp, fd_set *rset, fd_set *wset, fd_set *eset); void set_dbus_listeners(void);
# ifdef HAVE_DHCP # ifdef HAVE_DHCP
void emit_dbus_signal(int action, struct dhcp_lease *lease, char *hostname); void emit_dbus_signal(int action, struct dhcp_lease *lease, char *hostname);
# endif # endif
@@ -1394,7 +1394,7 @@ int helper_buf_empty(void);
/* tftp.c */ /* tftp.c */
#ifdef HAVE_TFTP #ifdef HAVE_TFTP
void tftp_request(struct listener *listen, time_t now); void tftp_request(struct listener *listen, time_t now);
void check_tftp_listeners(fd_set *rset, time_t now); void check_tftp_listeners(time_t now);
int do_tftp_script_run(void); int do_tftp_script_run(void);
#endif #endif
@@ -1511,3 +1511,10 @@ void inotify_dnsmasq_init();
int inotify_check(time_t now); int inotify_check(time_t now);
void set_dynamic_inotify(int flag, int total_size, struct crec **rhash, int revhashsz); void set_dynamic_inotify(int flag, int total_size, struct crec **rhash, int revhashsz);
#endif #endif
/* poll.c */
void poll_reset(void);
int poll_check(int fd, short event);
void poll_listen(int fd, short event);
int do_poll(int timeout);
+58 -11
View File
@@ -427,13 +427,12 @@ static int serial_compare_32(unsigned long s1, unsigned long s2)
*/ */
static time_t timestamp_time; static time_t timestamp_time;
static int back_to_the_future;
int setup_timestamp(void) int setup_timestamp(void)
{ {
struct stat statbuf; struct stat statbuf;
back_to_the_future = 0; daemon->back_to_the_future = 0;
if (!daemon->timestamp_file) if (!daemon->timestamp_file)
return 0; return 0;
@@ -447,7 +446,7 @@ int setup_timestamp(void)
/* time already OK, update timestamp, and do key checking from the start. */ /* time already OK, update timestamp, and do key checking from the start. */
if (utime(daemon->timestamp_file, NULL) == -1) if (utime(daemon->timestamp_file, NULL) == -1)
my_syslog(LOG_ERR, _("failed to update mtime on %s: %s"), daemon->timestamp_file, strerror(errno)); my_syslog(LOG_ERR, _("failed to update mtime on %s: %s"), daemon->timestamp_file, strerror(errno));
back_to_the_future = 1; daemon->back_to_the_future = 1;
return 0; return 0;
} }
return 1; return 1;
@@ -487,17 +486,17 @@ static int check_date_range(unsigned long date_start, unsigned long date_end)
and start checking keys */ and start checking keys */
if (daemon->timestamp_file) if (daemon->timestamp_file)
{ {
if (back_to_the_future == 0 && difftime(timestamp_time, curtime) <= 0) if (daemon->back_to_the_future == 0 && difftime(timestamp_time, curtime) <= 0)
{ {
if (utime(daemon->timestamp_file, NULL) != 0) if (utime(daemon->timestamp_file, NULL) != 0)
my_syslog(LOG_ERR, _("failed to update mtime on %s: %s"), daemon->timestamp_file, strerror(errno)); my_syslog(LOG_ERR, _("failed to update mtime on %s: %s"), daemon->timestamp_file, strerror(errno));
back_to_the_future = 1; daemon->back_to_the_future = 1;
set_option_bool(OPT_DNSSEC_TIME); set_option_bool(OPT_DNSSEC_TIME);
queue_event(EVENT_RELOAD); /* purge cache */ queue_event(EVENT_RELOAD); /* purge cache */
} }
if (back_to_the_future == 0) if (daemon->back_to_the_future == 0)
return 1; return 1;
} }
else if (option_bool(OPT_DNSSEC_TIME)) else if (option_bool(OPT_DNSSEC_TIME))
@@ -1226,16 +1225,20 @@ int dnssec_validate_ds(time_t now, struct dns_header *header, size_t plen, char
if (val == STAT_INSECURE) if (val == STAT_INSECURE)
val = STAT_BOGUS; val = STAT_BOGUS;
if (val == STAT_NO_SIG)
return val;
p = (unsigned char *)(header+1); p = (unsigned char *)(header+1);
extract_name(header, plen, &p, name, 1, 4); extract_name(header, plen, &p, name, 1, 4);
p += 4; /* qtype, qclass */ p += 4; /* qtype, qclass */
if (!(p = skip_section(p, ntohs(header->ancount), header, plen))) if (!(p = skip_section(p, ntohs(header->ancount), header, plen)))
val = STAT_BOGUS; val = STAT_BOGUS;
/* If we return STAT_NO_SIG, name contains the name of the DS query */
if (val == STAT_NO_SIG)
{
*keyname = 0;
return val;
}
/* If the key needed to validate the DS is on the same domain as the DS, we'll /* If the key needed to validate the DS is on the same domain as the DS, we'll
loop getting nowhere. Stop that now. This can happen of the DS answer comes loop getting nowhere. Stop that now. This can happen of the DS answer comes
from the DS's zone, and not the parent zone. */ from the DS's zone, and not the parent zone. */
@@ -2112,6 +2115,7 @@ int dnssec_chase_cname(time_t now, struct dns_header *header, size_t plen, char
unsigned char *p = (unsigned char *)(header+1); unsigned char *p = (unsigned char *)(header+1);
int type, class, qclass, rdlen, j, rc; int type, class, qclass, rdlen, j, rc;
int cname_count = CNAME_CHAIN; int cname_count = CNAME_CHAIN;
char *wildname;
/* Get question */ /* Get question */
if (!extract_name(header, plen, &p, name, 1, 4)) if (!extract_name(header, plen, &p, name, 1, 4))
@@ -2145,7 +2149,50 @@ int dnssec_chase_cname(time_t now, struct dns_header *header, size_t plen, char
return STAT_INSECURE; return STAT_INSECURE;
/* validate CNAME chain, return if insecure or need more data */ /* validate CNAME chain, return if insecure or need more data */
rc = validate_rrset(now, header, plen, class, type, name, keyname, NULL, NULL, 0, 0, 0); rc = validate_rrset(now, header, plen, class, type, name, keyname, &wildname, NULL, 0, 0, 0);
if (rc == STAT_SECURE_WILDCARD)
{
int nsec_type, nsec_count, i;
unsigned char **nsecs;
/* An attacker can replay a wildcard answer with a different
answer and overlay a genuine RR. To prove this
hasn't happened, the answer must prove that
the genuine record doesn't exist. Check that here. */
if (!(nsec_type = find_nsec_records(header, plen, &nsecs, &nsec_count, class)))
return STAT_BOGUS; /* No NSECs or bad packet */
/* Note that we're called here because something didn't validate in validate_reply,
so we can't assume that any NSEC records have been validated. We do them by steam here */
for (i = 0; i < nsec_count; i++)
{
unsigned char *p1 = nsecs[i];
if (!extract_name(header, plen, &p1, daemon->workspacename, 1, 0))
return STAT_BOGUS;
rc = validate_rrset(now, header, plen, class, nsec_type, daemon->workspacename, keyname, NULL, NULL, 0, 0, 0);
/* NSECs can't be wildcards. */
if (rc == STAT_SECURE_WILDCARD)
rc = STAT_BOGUS;
if (rc != STAT_SECURE)
return rc;
}
if (nsec_type == T_NSEC)
rc = prove_non_existence_nsec(header, plen, nsecs, nsec_count, daemon->workspacename, keyname, name, type, NULL);
else
rc = prove_non_existence_nsec3(header, plen, nsecs, nsec_count, daemon->workspacename,
keyname, name, type, wildname, NULL);
if (rc != STAT_SECURE)
return rc;
}
if (rc != STAT_SECURE) if (rc != STAT_SECURE)
{ {
if (rc == STAT_NO_SIG) if (rc == STAT_NO_SIG)
+55 -11
View File
@@ -850,8 +850,19 @@ void reply_query(int fd, int family, time_t now)
/* We only cache sigs when we've validated a reply. /* We only cache sigs when we've validated a reply.
Avoid caching a reply with sigs if there's a vaildated break in the Avoid caching a reply with sigs if there's a vaildated break in the
DS chain, so we don't return replies from cache missing sigs. */ DS chain, so we don't return replies from cache missing sigs. */
status = STAT_INSECURE_DS; status = STAT_INSECURE_DS;
else if (status == STAT_NO_NS || status == STAT_NO_SIG) else if (status == STAT_NO_SIG)
{
if (option_bool(OPT_DNSSEC_NO_SIGN))
{
status = send_check_sign(forward, now, header, n, daemon->namebuff, daemon->keyname);
if (status == STAT_INSECURE)
status = STAT_INSECURE_DS;
}
else
status = STAT_INSECURE_DS;
}
else if (status == STAT_NO_NS)
status = STAT_BOGUS; status = STAT_BOGUS;
} }
else if (forward->flags & FREC_CHECK_NOSIGN) else if (forward->flags & FREC_CHECK_NOSIGN)
@@ -997,8 +1008,19 @@ void reply_query(int fd, int family, time_t now)
Avoid caching a reply with sigs if there's a vaildated break in the Avoid caching a reply with sigs if there's a vaildated break in the
DS chain, so we don't return replies from cache missing sigs. */ DS chain, so we don't return replies from cache missing sigs. */
status = STAT_INSECURE_DS; status = STAT_INSECURE_DS;
else if (status == STAT_NO_NS || status == STAT_NO_SIG) else if (status == STAT_NO_SIG)
status = STAT_BOGUS; {
if (option_bool(OPT_DNSSEC_NO_SIGN))
{
status = send_check_sign(forward, now, header, n, daemon->namebuff, daemon->keyname);
if (status == STAT_INSECURE)
status = STAT_INSECURE_DS;
}
else
status = STAT_INSECURE_DS;
}
else if (status == STAT_NO_NS)
status = STAT_BOGUS;
} }
else if (forward->flags & FREC_CHECK_NOSIGN) else if (forward->flags & FREC_CHECK_NOSIGN)
{ {
@@ -1418,7 +1440,7 @@ static int send_check_sign(struct frec *forward, time_t now, struct dns_header *
static int do_check_sign(struct frec *forward, int status, time_t now, char *name, char *keyname) static int do_check_sign(struct frec *forward, int status, time_t now, char *name, char *keyname)
{ {
/* get domain we're checking back from blockdata store, it's stored on the original query. */ /* get domain we're checking back from blockdata store, it's stored on the original query. */
while (forward->dependent) while (forward->dependent && !forward->orig_domain)
forward = forward->dependent; forward = forward->dependent;
blockdata_retrieve(forward->orig_domain, forward->name_len, name); blockdata_retrieve(forward->orig_domain, forward->name_len, name);
@@ -1451,7 +1473,7 @@ static int do_check_sign(struct frec *forward, int status, time_t now, char *nam
/* Have entered non-signed part of DNS tree. */ /* Have entered non-signed part of DNS tree. */
if (status == STAT_NO_DS) if (status == STAT_NO_DS)
return STAT_INSECURE; return forward->dependent ? STAT_INSECURE_DS : STAT_INSECURE;
if (status == STAT_BOGUS) if (status == STAT_BOGUS)
return STAT_BOGUS; return STAT_BOGUS;
@@ -1657,7 +1679,18 @@ static int tcp_key_recurse(time_t now, int status, struct dns_header *header, si
{ {
if (new_status == STAT_NO_DS) if (new_status == STAT_NO_DS)
new_status = STAT_INSECURE_DS; new_status = STAT_INSECURE_DS;
else if (new_status == STAT_NO_NS || new_status == STAT_NO_SIG) if (new_status == STAT_NO_SIG)
{
if (option_bool(OPT_DNSSEC_NO_SIGN))
{
new_status = tcp_check_for_unsigned_zone(now, header, n, class, name, keyname, server, keycount);
if (new_status == STAT_INSECURE)
new_status = STAT_INSECURE_DS;
}
else
new_status = STAT_INSECURE_DS;
}
else if (new_status == STAT_NO_NS)
new_status = STAT_BOGUS; new_status = STAT_BOGUS;
} }
} }
@@ -1722,8 +1755,19 @@ static int tcp_key_recurse(time_t now, int status, struct dns_header *header, si
{ {
if (new_status == STAT_NO_DS) if (new_status == STAT_NO_DS)
new_status = STAT_INSECURE_DS; new_status = STAT_INSECURE_DS;
else if (new_status == STAT_NO_NS || new_status == STAT_NO_SIG) else if (new_status == STAT_NO_SIG)
new_status = STAT_BOGUS; /* Validated no DS */ {
if (option_bool(OPT_DNSSEC_NO_SIGN))
{
new_status = tcp_check_for_unsigned_zone(now, header, n, class, name, keyname, server, keycount);
if (new_status == STAT_INSECURE)
new_status = STAT_INSECURE_DS;
}
else
new_status = STAT_INSECURE_DS;
}
else if (new_status == STAT_NO_NS)
new_status = STAT_BOGUS;
} }
} }
else if (status == STAT_CHASE_CNAME) else if (status == STAT_CHASE_CNAME)
@@ -1887,7 +1931,7 @@ unsigned char *tcp_request(int confd, time_t now,
dst_addr_4, netmask, now, &ad_question, &do_bit); dst_addr_4, netmask, now, &ad_question, &do_bit);
/* Do this by steam now we're not in the select() loop */ /* Do this by steam now we're not in the select() loop */
check_log_writer(NULL); check_log_writer(1);
if (m == 0) if (m == 0)
{ {
@@ -2108,7 +2152,7 @@ unsigned char *tcp_request(int confd, time_t now,
} }
} }
check_log_writer(NULL); check_log_writer(1);
*length = htons(m); *length = htons(m);
+66 -16
View File
@@ -18,6 +18,7 @@
#ifdef HAVE_INOTIFY #ifdef HAVE_INOTIFY
#include <sys/inotify.h> #include <sys/inotify.h>
#include <sys/param.h> /* For MAXSYMLINKS */
/* the strategy is to set a inotify on the directories containing /* the strategy is to set a inotify on the directories containing
resolv files, for any files in the directory which are close-write resolv files, for any files in the directory which are close-write
@@ -35,10 +36,55 @@
static char *inotify_buffer; static char *inotify_buffer;
#define INOTIFY_SZ (sizeof(struct inotify_event) + NAME_MAX + 1) #define INOTIFY_SZ (sizeof(struct inotify_event) + NAME_MAX + 1)
/* If path is a symbolic link, return the path it
points to, made absolute if relative.
If path doesn't exist or is not a symlink, return NULL.
Return value is malloc'ed */
static char *my_readlink(char *path)
{
ssize_t rc, size = 64;
char *buf;
while (1)
{
buf = safe_malloc(size);
rc = readlink(path, buf, (size_t)size);
if (rc == -1)
{
/* Not link or doesn't exist. */
if (errno == EINVAL || errno == ENOENT)
return NULL;
else
die(_("cannot access path %s: %s"), path, EC_MISC);
}
else if (rc < size-1)
{
char *d;
buf[rc] = 0;
if (buf[0] != '/' && ((d = strrchr(path, '/'))))
{
/* Add path to relative link */
char *new_buf = safe_malloc((d - path) + strlen(buf) + 2);
*(d+1) = 0;
strcpy(new_buf, path);
strcat(new_buf, buf);
free(buf);
buf = new_buf;
}
return buf;
}
/* Buffer too small, increase and retry */
size += 64;
free(buf);
}
}
void inotify_dnsmasq_init() void inotify_dnsmasq_init()
{ {
struct resolvc *res; struct resolvc *res;
inotify_buffer = safe_malloc(INOTIFY_SZ); inotify_buffer = safe_malloc(INOTIFY_SZ);
daemon->inotifyfd = inotify_init1(IN_NONBLOCK | IN_CLOEXEC); daemon->inotifyfd = inotify_init1(IN_NONBLOCK | IN_CLOEXEC);
@@ -47,19 +93,22 @@ void inotify_dnsmasq_init()
for (res = daemon->resolv_files; res; res = res->next) for (res = daemon->resolv_files; res; res = res->next)
{ {
char *d = NULL, *path; char *d, *new_path, *path = safe_malloc(strlen(res->name) + 1);
int links = MAXSYMLINKS;
if (!(path = realpath(res->name, NULL)))
strcpy(path, res->name);
/* Follow symlinks until we reach a non-symlink, or a non-existant file. */
while ((new_path = my_readlink(path)))
{ {
/* realpath will fail if the file doesn't exist, but if (links-- == 0)
dnsmasq copes with missing files, so fall back die(_("too many symlinks following %s"), res->name, EC_MISC);
and assume that symlinks are not in use in that case. */ free(path);
if (errno == ENOENT) path = new_path;
path = res->name;
else
die(_("cannot cannonicalise resolv-file %s: %s"), res->name, EC_MISC);
} }
res->wd = -1;
if ((d = strrchr(path, '/'))) if ((d = strrchr(path, '/')))
{ {
*d = 0; /* make path just directory */ *d = 0; /* make path just directory */
@@ -70,10 +119,11 @@ void inotify_dnsmasq_init()
if (res->wd == -1 && errno == ENOENT) if (res->wd == -1 && errno == ENOENT)
die(_("directory %s for resolv-file is missing, cannot poll"), res->name, EC_MISC); die(_("directory %s for resolv-file is missing, cannot poll"), res->name, EC_MISC);
}
if (res->wd == -1)
die(_("failed to create inotify for %s: %s"), res->name, EC_MISC); if (res->wd == -1)
} die(_("failed to create inotify for %s: %s"), res->name, EC_MISC);
} }
} }
+4 -7
View File
@@ -421,18 +421,15 @@ void my_syslog(int priority, const char *format, ...)
} }
} }
void set_log_writer(fd_set *set, int *maxfdp) void set_log_writer(void)
{ {
if (entries && log_fd != -1 && connection_good) if (entries && log_fd != -1 && connection_good)
{ poll_listen(log_fd, POLLOUT);
FD_SET(log_fd, set);
bump_maxfd(log_fd, maxfdp);
}
} }
void check_log_writer(fd_set *set) void check_log_writer(int force)
{ {
if (log_fd != -1 && (!set || FD_ISSET(log_fd, set))) if (log_fd != -1 && (force || poll_check(log_fd, POLLOUT)))
log_write(); log_write();
} }
+3 -6
View File
@@ -4371,7 +4371,7 @@ void read_opts(int argc, char **argv, char *compile_opts)
{ {
char *buff = opt_malloc(MAXDNAME); char *buff = opt_malloc(MAXDNAME);
int option, conffile_opt = '7', testmode = 0; int option, conffile_opt = '7', testmode = 0;
char *arg, *conffile = NULL; char *arg, *conffile = CONFFILE;
opterr = 0; opterr = 0;
@@ -4488,11 +4488,8 @@ void read_opts(int argc, char **argv, char *compile_opts)
if (conffile) if (conffile)
{ {
one_file(conffile, conffile_opt); one_file(conffile, conffile_opt);
free(conffile); if (conffile_opt == 0)
} free(conffile);
else
{
one_file(CONFFILE, conffile_opt);
} }
/* port might not be known when the address is parsed - fill in here */ /* port might not be known when the address is parsed - fill in here */
+125
View File
@@ -0,0 +1,125 @@
/* dnsmasq is Copyright (c) 2000-2015 Simon Kelley
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 dated June, 1991, or
(at your option) version 3 dated 29 June, 2007.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "dnsmasq.h"
/* Wrapper for poll(). Allocates and extends array of struct pollfds,
keeps them in fd order so that we can set and test conditions on
fd using a simple but efficient binary chop. */
/* poll_reset()
poll_listen(fd, event)
.
.
poll_listen(fd, event);
hits = do_poll(timeout);
if (poll_check(fd, event)
.
.
if (poll_check(fd, event)
.
.
event is OR of POLLIN, POLLOUT, POLLERR, etc
*/
static struct pollfd *pollfds = NULL;
static nfds_t nfds, arrsize = 0;
/* Binary search. Returns either the pollfd with fd, or
if the fd doesn't match, or return equals nfds, the entry
to the left of which a new record should be inserted. */
static nfds_t fd_search(int fd)
{
nfds_t left, right, mid;
if ((right = nfds) == 0)
return 0;
left = 0;
while (1)
{
if (right == left + 1)
return (pollfds[left].fd >= fd) ? left : right;
mid = (left + right)/2;
if (pollfds[mid].fd > fd)
right = mid;
else
left = mid;
}
}
void poll_reset(void)
{
nfds = 0;
}
int do_poll(int timeout)
{
return poll(pollfds, nfds, timeout);
}
int poll_check(int fd, short event)
{
nfds_t i = fd_search(fd);
if (i < nfds && pollfds[i].fd == fd)
return pollfds[i].revents & event;
return 0;
}
void poll_listen(int fd, short event)
{
nfds_t i = fd_search(fd);
if (i < nfds && pollfds[i].fd == fd)
pollfds[i].events |= event;
else
{
if (arrsize != nfds)
memmove(&pollfds[i+1], &pollfds[i], (nfds - i) * sizeof(struct pollfd));
else
{
/* Array too small, extend. */
struct pollfd *new;
arrsize = (arrsize == 0) ? 64 : arrsize * 2;
if (!(new = whine_malloc(arrsize * sizeof(struct pollfd))))
return;
if (pollfds)
{
memcpy(new, pollfds, i * sizeof(struct pollfd));
memcpy(&new[i+1], &pollfds[i], (nfds - i) * sizeof(struct pollfd));
free(pollfds);
}
pollfds = new;
}
pollfds[i].fd = fd;
pollfds[i].events = event;
nfds++;
}
}
+2 -2
View File
@@ -502,7 +502,7 @@ static struct tftp_file *check_tftp_fileperm(ssize_t *len, char *prefix)
return NULL; return NULL;
} }
void check_tftp_listeners(fd_set *rset, time_t now) void check_tftp_listeners(time_t now)
{ {
struct tftp_transfer *transfer, *tmp, **up; struct tftp_transfer *transfer, *tmp, **up;
ssize_t len; ssize_t len;
@@ -518,7 +518,7 @@ void check_tftp_listeners(fd_set *rset, time_t now)
prettyprint_addr(&transfer->peer, daemon->addrbuff); prettyprint_addr(&transfer->peer, daemon->addrbuff);
if (FD_ISSET(transfer->sockfd, rset)) if (poll_check(transfer->sockfd, POLLIN))
{ {
/* we overwrote the buffer... */ /* we overwrote the buffer... */
daemon->srv_save = NULL; daemon->srv_save = NULL;
-6
View File
@@ -570,12 +570,6 @@ char *print_mac(char *buff, unsigned char *mac, int len)
return buff; return buff;
} }
void bump_maxfd(int fd, int *max)
{
if (fd > *max)
*max = fd;
}
/* rc is return from sendto and friends. /* rc is return from sendto and friends.
Return 1 if we should retry. Return 1 if we should retry.
Set errno to zero if we succeeded. */ Set errno to zero if we succeeded. */