Compare commits

...
9 Commits
8 changed files with 258 additions and 173 deletions

No files matched your search

+10
View File
@@ -1,3 +1,9 @@
version 2.75
Fix reversion on 2.74 which caused 100% CPU use when a
dhcp-script is configured. Thanks to Adrian Davey for
reporting the bug and testing the fix.
version 2.74
Fix reversion in 2.73 where --conf-file would attempt to
read the default file, rather than no file.
@@ -5,6 +11,10 @@ version 2.74
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
Fix crash at startup when an empty suffix is supplied to
+8 -2
View File
@@ -1,8 +1,14 @@
dnsmasq (2.75-1) unstable; urgency=low
* New upstream. (closes: #794095)
-- Simon Kelley <simon@thekelleys.org.uk> Thur, 30 Jul 2015 20:58:31 +0000
dnsmasq (2.74-1) unstable; urgency=low
* New upstream.
* New upstream. (LP: #1468611)
-- Simon Kelley <simon@thekelleys.org.uk> Thu, 7 Jul 2015 21:54:11 +0000
-- Simon Kelley <simon@thekelleys.org.uk> Wed, 15 Jul 2015 21:54:11 +0000
dnsmasq (2.73-2) unstable; urgency=low
+78 -98
View File
@@ -9,10 +9,10 @@
# Simon Kelley <simon@thekelleys.org.uk>, 2005.
msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.73\n"
"Project-Id-Version: dnsmasq 2.74\n"
"Report-Msgid-Bugs-To: \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"
"Language-Team: German <de@li.org>\n"
"Language: de\n"
@@ -20,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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"
#: cache.c:523
@@ -191,14 +191,12 @@ msgid "Read DHCP option specs from file."
msgstr "DHCP-Optionen aus Datei lesen."
#: option.c:348
#, fuzzy
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
#, fuzzy
msgid "Read DHCP options from a directory."
msgstr "DHCP-Optionen aus Datei lesen."
msgstr "DHCP-Optionen aus einem Verzeichnis lesen."
#: option.c:350
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."
#: option.c:353
#, fuzzy
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
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."
#: option.c:388
#, fuzzy
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
#, fuzzy
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
#, c-format
@@ -514,7 +509,7 @@ msgstr "Zugriff nur auf Dateien gestatten, die dem dnsmasq aufrufenden Benutzer
#: option.c:424
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
#, c-format
@@ -704,7 +699,7 @@ msgstr "DNSSEC Signatur-Zeitstempel nicht prüfen, bis erstmalig der Cache neuge
#: option.c:471
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
msgid "Specify DHCPv6 prefix class"
@@ -736,7 +731,7 @@ msgstr "Erkennen und Entfernen von DNS-Weiterleitungsschleifen"
#: option.c:481
msgid "Ignore DNS responses containing ipaddr."
msgstr ""
msgstr "Ignoriere DNS-Antworten, welche ipaddr enthalten."
#: option.c:683
#, c-format
@@ -1090,34 +1085,34 @@ msgstr "versuchen Sie -w"
msgid "bad command line options: %s"
msgstr "unzulässige Optionen auf der Befehlszeile: %s"
#: option.c:4541
#: option.c:4544
#, c-format
msgid "cannot get host-name: %s"
msgstr "kann Hostnamen nicht ermitteln: %s"
#: option.c:4569
#: option.c:4572
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "mit -n/--no-poll ist nur eine resolv.conf-Datei zulässig."
#: option.c:4579
#: option.c:4582
msgid "must have exactly one resolv.conf to read domain from."
msgstr "Um die Domäne zu lesen, muss genau eine resolv.conf-Datei verwendet werden."
#: option.c:4582 network.c:1507 dhcp.c:777
#: option.c:4585 network.c:1507 dhcp.c:777
#, c-format
msgid "failed to read %s: %s"
msgstr "konnte %s nicht lesen: %s"
#: option.c:4599
#: option.c:4602
#, c-format
msgid "no search directive found in %s"
msgstr "keine \"search\"-Anweisung in %s gefunden"
#: option.c:4620
#: option.c:4623
msgid "there must be a default domain when --dhcp-fqdn is set"
msgstr "Es muss eine standard Domain gesetzt sein, wenn --dhcp-fqdn gesetzt ist"
#: option.c:4629
#: option.c:4632
msgid "syntax check OK"
msgstr "Syntaxprüfung OK"
@@ -1140,11 +1135,11 @@ msgstr "Namensserver %s hat eine rekursive Anfrage verweigert"
msgid "possible DNS-rebind attack detected: %s"
msgstr "möglichen DNS-Rebind-Angriff entdeckt: %s"
#: forward.c:1209 forward.c:1815
#: forward.c:1209 forward.c:1785
msgid "Ignoring query from non-local network"
msgstr "Ignoriere Anfragen vom nicht lokalen Netzwerk"
#: forward.c:2286
#: forward.c:2256
#, c-format
msgid "Maximum number of concurrent DNS queries reached (max: %d)"
msgstr "Maximale Anzahl an nebenläufiger DNS-Anfragen erreicht (Max: %d)"
@@ -1237,15 +1232,13 @@ msgstr "Benutze Namensserver %s#%d"
#: dnsmasq.c:163
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
#, fuzzy
msgid "no trust anchors provided for DNSSEC"
msgstr "Keine Vertrauensursprünge (Trust Anchor) für DNSSEC verfügbar"
#: dnsmasq.c:173
#, fuzzy
msgid "cannot reduce cache size from default when DNSSEC enabled"
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"
#: dnsmasq.c:186
#, fuzzy
msgid "cannot use --conntrack AND --query-port"
msgstr "Kann nicht --conntrack UND --query-port einsetzen"
#: dnsmasq.c:189
#, fuzzy
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
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"
#: dnsmasq.c:209
#, fuzzy
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
msgid "zone serial must be configured in --auth-soa"
@@ -1306,7 +1296,7 @@ msgstr "konnte Schnitstellenliste nicht beziehen: %s"
msgid "unknown interface %s"
msgstr "unbekannte Schnittstelle %s"
#: dnsmasq.c:354 dnsmasq.c:997
#: dnsmasq.c:354 dnsmasq.c:1037
#, c-format
msgid "DBus error: %s"
msgstr "DBus-Fehler: %s"
@@ -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"
#: dnsmasq.c:733
#, fuzzy
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
#, c-format
@@ -1408,121 +1397,121 @@ msgid "DHCP, sockets bound exclusively to interface %s"
msgstr "DHCP, Sockets exklusiv an das Interface %s gebunden"
# FIXME: this and the next few must be full strings to be translatable - do not assemble in code"
#: dnsmasq.c:804
#: dnsmasq.c:808
msgid "root is "
msgstr "Wurzel ist "
#: dnsmasq.c:804
#: dnsmasq.c:808
msgid "enabled"
msgstr "Aktiviert"
#: dnsmasq.c:806
#: dnsmasq.c:810
msgid "secure mode"
msgstr "sicherer Modus"
#: dnsmasq.c:809
#: dnsmasq.c:813
#, c-format
msgid "warning: %s inaccessible"
msgstr ""
msgstr "Warnung: %s nicht zugreifbar"
#: dnsmasq.c:813
#, fuzzy, c-format
#: dnsmasq.c:817
#, c-format
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:839
#: dnsmasq.c:843
#, c-format
msgid "restricting maximum simultaneous TFTP transfers to %d"
msgstr "Begrenze gleichzeitige TFTP-Übertragungen auf maximal %d"
#: dnsmasq.c:999
#: dnsmasq.c:1039
msgid "connected to system DBus"
msgstr "Mit System-DBus verbunden"
#: dnsmasq.c:1149
#: dnsmasq.c:1189
#, c-format
msgid "cannot fork into background: %s"
msgstr "kann nicht in den Hintergrund abspalten: %s"
#: dnsmasq.c:1152
#: dnsmasq.c:1192
#, c-format
msgid "failed to create helper: %s"
msgstr "kann Helfer nicht erzeugen: %s"
#: dnsmasq.c:1155
#: dnsmasq.c:1195
#, c-format
msgid "setting capabilities failed: %s"
msgstr "kann \"capabilities\" nicht setzen: %s"
#: dnsmasq.c:1158
#: dnsmasq.c:1198
#, c-format
msgid "failed to change user-id to %s: %s"
msgstr "Kann nicht Benutzerrechte %s annehmen: %s"
#: dnsmasq.c:1161
#: dnsmasq.c:1201
#, c-format
msgid "failed to change group-id to %s: %s"
msgstr "Kann nicht Gruppenrechte %s annehmen: %s"
#: dnsmasq.c:1164
#: dnsmasq.c:1204
#, c-format
msgid "failed to open pidfile %s: %s"
msgstr "kann die Prozessidentifikations-(PID)-Datei %s nicht öffnen: %s"
#: dnsmasq.c:1167
#: dnsmasq.c:1207
#, c-format
msgid "cannot open log %s: %s"
msgstr "Kann Logdatei %s nicht öffnen: %s"
#: dnsmasq.c:1170
#: dnsmasq.c:1210
#, c-format
msgid "failed to load Lua script: %s"
msgstr "Konnte Lua-Script nicht laden: %s"
#: dnsmasq.c:1173
#: dnsmasq.c:1213
#, c-format
msgid "TFTP directory %s inaccessible: %s"
msgstr "Das TFTP-Verzeichnis %s ist nicht zugreifbar: %s"
#: dnsmasq.c:1176
#, fuzzy, c-format
#: dnsmasq.c:1216
#, c-format
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:1197
#: dnsmasq.c:1237
msgid "now checking DNSSEC signature timestamps"
msgstr "Prüfe jetzt DNSSEC Signatur-Zeitstempel"
#: dnsmasq.c:1264
#: dnsmasq.c:1304
#, c-format
msgid "script process killed by signal %d"
msgstr "Scriptprozess durch Signal %d getötet"
#: dnsmasq.c:1268
#: dnsmasq.c:1308
#, c-format
msgid "script process exited with status %d"
msgstr "Scriptprozess hat sich mit Status %d beendet"
#: dnsmasq.c:1272
#: dnsmasq.c:1312
#, c-format
msgid "failed to execute %s: %s"
msgstr "konnte %s nicht ausführen: %s"
#: dnsmasq.c:1327
#: dnsmasq.c:1367
msgid "exiting on receipt of SIGTERM"
msgstr "beende nach Empfang von SIGTERM"
#: dnsmasq.c:1355
#: dnsmasq.c:1395
#, c-format
msgid "failed to access %s: %s"
msgstr "konnte auf %s nicht zugreifen: %s"
#: dnsmasq.c:1385
#: dnsmasq.c:1425
#, c-format
msgid "reading %s"
msgstr "lese %s"
#: dnsmasq.c:1396
#: dnsmasq.c:1436
#, c-format
msgid "no servers found in %s, will retry"
msgstr "keine Server in %s gefunden, werde es später neu versuchen"
@@ -1806,12 +1795,12 @@ msgstr "Versuch, via DBus eine IPv6-Serveradresse zu setzen: keine IPv6-Unterst
#: dbus.c:439
#, c-format
msgid "Enabling --%s option from D-Bus"
msgstr ""
msgstr "Aktiviere --%s Option von D-Bus"
#: dbus.c:444
#, c-format
msgid "Disabling --%s option from D-Bus"
msgstr ""
msgstr "Deaktiviere --%s Option von D-Bus"
#: dbus.c:691
msgid "setting upstream servers from DBus"
@@ -1883,7 +1872,7 @@ msgstr "Überlauf: %d Protokolleinträge verloren"
msgid "log failed: %s"
msgstr "Protokollierung fehlgeschlagen: %s"
#: log.c:469
#: log.c:472
msgid "FAILED to start up"
msgstr "Start fehlgeschlagen"
@@ -2087,9 +2076,9 @@ msgid "failed to create IPset control socket: %s"
msgstr "konnte IPset-Kontroll-Socket nicht erzeugen: %s"
#: dnssec.c:449 dnssec.c:493
#, fuzzy, c-format
#, c-format
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
#, c-format
@@ -2139,44 +2128,35 @@ msgstr "Warnung: DIOCR%sADDRS: %s"
msgid "%d addresses %s"
msgstr "%d Adressen %s"
#: inotify.c:59
#, fuzzy, c-format
msgid "cannot access path %s: %s"
msgstr "Kann auf %s nicht zugreifen: %s"
#: inotify.c:92
#, fuzzy, c-format
msgid "failed to create inotify: %s"
msgstr "kann Helfer nicht erzeugen: %s"
#: inotify.c:105
#: inotify.c:46
#, c-format
msgid "too many symlinks following %s"
msgstr ""
msgid "failed to create inotify: %s"
msgstr "Kann kein inotify erzeugen: %s"
#: inotify.c:121
#: inotify.c:60
#, c-format
msgid "cannot cannonicalise resolv-file %s: %s"
msgstr "Kann die resolv-file %s nicht kanonisieren: %s"
#: inotify.c:72
#, c-format
msgid "directory %s for resolv-file is missing, cannot poll"
msgstr ""
msgstr "Verzeichnis %s für resolv-file fehlt, kann nicht pollen"
#: inotify.c:125 inotify.c:162
#, fuzzy, c-format
#: inotify.c:75 inotify.c:112
#, c-format
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:147
#, fuzzy, c-format
#: inotify.c:97
#, c-format
msgid "bad dynamic directory %s: %s"
msgstr "Kann auf Verzeichnis %s nicht zugreifen: %s"
msgstr "fehlerhaftes dynamisches Verzeichnis %s: %s"
#: inotify.c:247
#: inotify.c:197
#, c-format
msgid "inotify, new or changed file %s"
msgstr ""
#, fuzzy
#~ msgid "cannot cannonicalise resolv-file %s: %s"
#~ msgstr "kann Lease-Datei %s nicht öffnen: %s"
msgstr "inotify, neue oder geänderte Datei %s"
#~ msgid "no interface with address %s"
#~ msgstr "keine Schnittstelle mit Adresse %s"
+39 -50
View File
@@ -3,14 +3,14 @@
# This file is put in the public domain.
#
# 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 ""
msgstr ""
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: \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"
"Language-Team: polski <>\n"
"Language: pl\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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"
#: cache.c:523
@@ -185,14 +185,12 @@ msgid "Read DHCP option specs from file."
msgstr "Wskazanie pliku z wartościami 'dhcp-option='."
#: option.c:348
#, fuzzy
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
#, fuzzy
msgid "Read DHCP options from a directory."
msgstr "Wskazanie pliku z wartościami 'dhcp-option='."
msgstr "Odczyt opcji DHCP z katalogu."
#: option.c:350
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."
#: option.c:353
#, fuzzy
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
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]."
#: option.c:388
#, fuzzy
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
#, fuzzy
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
#, 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
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
#, c-format
@@ -697,7 +692,7 @@ msgstr "Wyłączenie sprawdzania sygnatur czasowych DNSSEC do pierwszego przeła
#: option.c:471
msgid "Timestamp file to verify system clock for DNSSEC"
msgstr ""
msgstr "Plik znacznika czasu do weryfikacji zegara systemowego dla potrzeb DNSSEC."
#: option.c:473
msgid "Specify DHCPv6 prefix class"
@@ -729,7 +724,7 @@ msgstr "Wykrywanie i usuwanie pętli zapytań DNS."
#: option.c:481
msgid "Ignore DNS responses containing ipaddr."
msgstr ""
msgstr "Ignorowanie odpowiedzi DNS zawierających ipaddr."
#: option.c:683
#, c-format
@@ -1228,17 +1223,15 @@ msgstr "używam serwera nazw %s#%d"
#: dnsmasq.c:163
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
#, fuzzy
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
#, fuzzy
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
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"
#: dnsmasq.c:186
#, fuzzy
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
#, fuzzy
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
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"
#: dnsmasq.c:209
#, fuzzy
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
msgid "zone serial must be configured in --auth-soa"
@@ -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"
#: dnsmasq.c:733
#, fuzzy
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
#, c-format
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
msgid "setting --bind-interfaces option because of OS limitations"
@@ -1412,12 +1401,12 @@ msgstr "w trybie bezpiecznym"
#: dnsmasq.c:809
#, c-format
msgid "warning: %s inaccessible"
msgstr ""
msgstr "uwaga: %s niedostępny"
#: dnsmasq.c:813
#, fuzzy, c-format
#, c-format
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:839
#, c-format
@@ -1474,9 +1463,9 @@ msgid "TFTP directory %s inaccessible: %s"
msgstr "katalog TFTP %s nie jest dostępny: %s"
#: dnsmasq.c:1176
#, fuzzy, c-format
#, c-format
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:1197
msgid "now checking DNSSEC signature timestamps"
@@ -1789,12 +1778,12 @@ msgstr "próba ustawienia adresu IPv6 serwera przez DBus, ale brak obsługi IPv6
#: dbus.c:439
#, c-format
msgid "Enabling --%s option from D-Bus"
msgstr ""
msgstr "opcja --%s została właśnie aktywowana za pomocą D-Bus"
#: dbus.c:444
#, c-format
msgid "Disabling --%s option from D-Bus"
msgstr ""
msgstr "opcja --%s została właśnie dezaktywowana za pomocą D-Bus"
#: dbus.c:691
msgid "setting upstream servers from DBus"
@@ -2069,9 +2058,9 @@ msgid "failed to create IPset control socket: %s"
msgstr "nie powiodło się otwieranie gniazda sterującego IPset: %s"
#: dnssec.c:449 dnssec.c:493
#, fuzzy, c-format
#, c-format
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
#, c-format
@@ -2122,39 +2111,39 @@ msgid "%d addresses %s"
msgstr "%d adresów %s"
#: inotify.c:59
#, fuzzy, c-format
#, c-format
msgid "cannot access path %s: %s"
msgstr "brak dostępu do %s: %s"
msgstr "brak dostępu do katalogu %s: %s"
#: inotify.c:92
#, fuzzy, c-format
#, c-format
msgid "failed to create inotify: %s"
msgstr "nie udało się utworzyć procesu pomocniczego: %s"
msgstr "nie udało się uruchomić powiadamiania inotify: %s"
#: inotify.c:105
#, c-format
msgid "too many symlinks following %s"
msgstr ""
msgstr "zbyt wiele odniesień począwszy od %s"
#: inotify.c:121
#, c-format
msgid "directory %s for resolv-file is missing, cannot poll"
msgstr ""
msgstr "katalog %s z resolv-file nie istnieje - nie ma czego odpytywać"
#: inotify.c:125 inotify.c:162
#, fuzzy, c-format
#, c-format
msgid "failed to create inotify for %s: %s"
msgstr "nie udało się otworzyć gniazda %s: %s"
msgstr "nie udało się utworzyć powiadamiania dla %s: %s"
#: inotify.c:147
#, fuzzy, c-format
#, c-format
msgid "bad dynamic directory %s: %s"
msgstr "brak dostępu do katalogu %s: %s"
msgstr "zły katalog dynamiczny %s: %s"
#: inotify.c:247
#, c-format
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"
+10 -1
View File
@@ -1025,7 +1025,7 @@ int main (int argc, char **argv)
#endif
# ifdef HAVE_SCRIPT
if (daemon->helperfd != -1 && poll_check(daemon->helperfd, POLLIN))
if (daemon->helperfd != -1 && poll_check(daemon->helperfd, POLLOUT))
helper_write();
# endif
#endif
@@ -1321,6 +1321,15 @@ static void async_event(int pipe, time_t now)
if (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)
unlink(daemon->runfile);
+2
View File
@@ -117,6 +117,7 @@ typedef unsigned long long u64;
#include <sys/uio.h>
#include <syslog.h>
#include <dirent.h>
#include <utime.h>
#ifndef HAVE_LINUX_NETWORK
# include <net/if_dl.h>
#endif
@@ -992,6 +993,7 @@ extern struct daemon {
#endif
#ifdef HAVE_DNSSEC
struct ds_config *ds;
int back_to_the_future;
char *timestamp_file;
#endif
+58 -13
View File
@@ -34,8 +34,6 @@
#include <nettle/dsa-compat.h>
#endif
#include <utime.h>
#define SERIAL_UNDEF -100
#define SERIAL_EQ 0
#define SERIAL_LT -1
@@ -427,13 +425,12 @@ static int serial_compare_32(unsigned long s1, unsigned long s2)
*/
static time_t timestamp_time;
static int back_to_the_future;
int setup_timestamp(void)
{
struct stat statbuf;
back_to_the_future = 0;
daemon->back_to_the_future = 0;
if (!daemon->timestamp_file)
return 0;
@@ -447,7 +444,7 @@ int setup_timestamp(void)
/* time already OK, update timestamp, and do key checking from the start. */
if (utime(daemon->timestamp_file, NULL) == -1)
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 1;
@@ -487,17 +484,17 @@ static int check_date_range(unsigned long date_start, unsigned long date_end)
and start checking keys */
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)
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);
queue_event(EVENT_RELOAD); /* purge cache */
}
if (back_to_the_future == 0)
if (daemon->back_to_the_future == 0)
return 1;
}
else if (option_bool(OPT_DNSSEC_TIME))
@@ -1226,16 +1223,20 @@ int dnssec_validate_ds(time_t now, struct dns_header *header, size_t plen, char
if (val == STAT_INSECURE)
val = STAT_BOGUS;
if (val == STAT_NO_SIG)
return val;
p = (unsigned char *)(header+1);
extract_name(header, plen, &p, name, 1, 4);
p += 4; /* qtype, qclass */
if (!(p = skip_section(p, ntohs(header->ancount), header, plen)))
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
loop getting nowhere. Stop that now. This can happen of the DS answer comes
from the DS's zone, and not the parent zone. */
@@ -2112,6 +2113,7 @@ int dnssec_chase_cname(time_t now, struct dns_header *header, size_t plen, char
unsigned char *p = (unsigned char *)(header+1);
int type, class, qclass, rdlen, j, rc;
int cname_count = CNAME_CHAIN;
char *wildname;
/* Get question */
if (!extract_name(header, plen, &p, name, 1, 4))
@@ -2145,7 +2147,50 @@ int dnssec_chase_cname(time_t now, struct dns_header *header, size_t plen, char
return STAT_INSECURE;
/* 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_NO_SIG)
+53 -9
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.
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. */
status = STAT_INSECURE_DS;
else if (status == STAT_NO_NS || status == STAT_NO_SIG)
status = STAT_INSECURE_DS;
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;
}
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
DS chain, so we don't return replies from cache missing sigs. */
status = STAT_INSECURE_DS;
else if (status == STAT_NO_NS || status == STAT_NO_SIG)
status = STAT_BOGUS;
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;
}
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)
{
/* 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;
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. */
if (status == STAT_NO_DS)
return STAT_INSECURE;
return forward->dependent ? STAT_INSECURE_DS : STAT_INSECURE;
if (status == 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)
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;
}
}
@@ -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)
new_status = STAT_INSECURE_DS;
else if (new_status == STAT_NO_NS || new_status == STAT_NO_SIG)
new_status = STAT_BOGUS; /* Validated no DS */
else 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;
}
}
else if (status == STAT_CHASE_CNAME)