Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f6381cf482 | ||
|
|
34b5d19488 | ||
|
|
d6cb7e4815 | ||
|
|
d389e0191b | ||
|
|
d3699bb6bc | ||
|
|
13480e8c2a | ||
|
|
5b3b93f80a | ||
|
|
b69e845b1c | ||
|
|
90c3822bfa | ||
|
|
c895a0626d | ||
|
|
b842bc97bb | ||
|
|
0f38fa05a6 | ||
|
|
45c5cb1f8f | ||
|
|
f6d6956261 | ||
|
|
60176c7bf4 | ||
|
|
362c9303da | ||
|
|
5e95a552ee | ||
|
|
90cb222551 | ||
|
|
850163288d |
12
CHANGELOG
12
CHANGELOG
@@ -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
|
||||
Fix crash at startup when an empty suffix is supplied to
|
||||
--conf-dir, also trivial memory leak. Thanks to
|
||||
|
||||
2
Makefile
2
Makefile
@@ -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 \
|
||||
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 \
|
||||
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 \
|
||||
dns-protocol.h radv-protocol.h ip6addr.h
|
||||
|
||||
@@ -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 \
|
||||
radv.c slaac.c auth.c ipset.c domain.c \
|
||||
dnssec.c dnssec-openssl.c blockdata.c tables.c \
|
||||
loop.c inotify.c
|
||||
loop.c inotify.c poll.c
|
||||
|
||||
LOCAL_MODULE := dnsmasq
|
||||
|
||||
|
||||
12
debian/changelog
vendored
12
debian/changelog
vendored
@@ -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
|
||||
|
||||
* New upstream. (closes: #786996)
|
||||
|
||||
@@ -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
|
||||
key(s) of the root zone,
|
||||
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
|
||||
.B --dnssec-check-unsigned
|
||||
As a default, dnsmasq does not check that unsigned DNS replies are
|
||||
|
||||
79
po/de.po
79
po/de.po
@@ -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
|
||||
@@ -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"
|
||||
@@ -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
|
||||
@@ -1423,12 +1412,12 @@ msgstr "sicherer Modus"
|
||||
#: dnsmasq.c:813
|
||||
#, c-format
|
||||
msgid "warning: %s inaccessible"
|
||||
msgstr ""
|
||||
msgstr "Warnung: %s nicht zugreifbar"
|
||||
|
||||
#: dnsmasq.c:817
|
||||
#, fuzzy, c-format
|
||||
#, 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:843
|
||||
#, c-format
|
||||
@@ -1485,9 +1474,9 @@ msgid "TFTP directory %s inaccessible: %s"
|
||||
msgstr "Das TFTP-Verzeichnis %s ist nicht zugreifbar: %s"
|
||||
|
||||
#: dnsmasq.c:1216
|
||||
#, fuzzy, c-format
|
||||
#, 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:1237
|
||||
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
|
||||
#, 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"
|
||||
@@ -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
|
||||
@@ -2140,34 +2129,34 @@ msgid "%d addresses %s"
|
||||
msgstr "%d Adressen %s"
|
||||
|
||||
#: inotify.c:46
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "failed to create inotify: %s"
|
||||
msgstr "kann Helfer nicht erzeugen: %s"
|
||||
msgstr "Kann kein inotify erzeugen: %s"
|
||||
|
||||
#: inotify.c:60
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
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
|
||||
#, 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:75 inotify.c:112
|
||||
#, fuzzy, c-format
|
||||
#, 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:97
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "bad dynamic directory %s: %s"
|
||||
msgstr "Kann auf Verzeichnis %s nicht zugreifen: %s"
|
||||
msgstr "fehlerhaftes dynamisches Verzeichnis %s: %s"
|
||||
|
||||
#: inotify.c:197
|
||||
#, c-format
|
||||
msgid "inotify, new or changed file %s"
|
||||
msgstr ""
|
||||
msgstr "inotify, neue oder geänderte Datei %s"
|
||||
|
||||
#~ msgid "no interface with address %s"
|
||||
#~ msgstr "keine Schnittstelle mit Adresse %s"
|
||||
|
||||
99
po/es.po
99
po/es.po
@@ -1129,35 +1129,35 @@ msgstr "pruebe -w"
|
||||
msgid "bad command line options: %s"
|
||||
msgstr "opciones de línea de comandos erróneas: %s"
|
||||
|
||||
#: option.c:4544
|
||||
#: option.c:4541
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %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."
|
||||
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."
|
||||
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
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr "no se pudo leer %s: %s"
|
||||
|
||||
#: option.c:4602
|
||||
#: option.c:4599
|
||||
#, c-format
|
||||
msgid "no search directive found in %s"
|
||||
msgstr "ninguna directiva de búsqueda encontrada en %s"
|
||||
|
||||
#: option.c:4623
|
||||
#: option.c:4620
|
||||
#, fuzzy
|
||||
msgid "there must be a default domain when --dhcp-fqdn is set"
|
||||
msgstr "debe haber un dominio predeterminado cuando --dhcp-fqdn está fijado"
|
||||
|
||||
#: option.c:4632
|
||||
#: option.c:4629
|
||||
msgid "syntax check OK"
|
||||
msgstr "revisión de sintaxis OK"
|
||||
|
||||
@@ -1180,11 +1180,11 @@ msgstr "servidor DNS %s rechaz
|
||||
msgid "possible DNS-rebind attack detected: %s"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: forward.c:2256
|
||||
#: forward.c:2286
|
||||
#, fuzzy, c-format
|
||||
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)"
|
||||
@@ -1348,7 +1348,7 @@ msgstr "no se pudo encontrar lista de interfases: %s"
|
||||
msgid "unknown interface %s"
|
||||
msgstr "interfase desconocida %s"
|
||||
|
||||
#: dnsmasq.c:354 dnsmasq.c:1037
|
||||
#: dnsmasq.c:354 dnsmasq.c:997
|
||||
#, c-format
|
||||
msgid "DBus error: %s"
|
||||
msgstr "error DBus: %s"
|
||||
@@ -1448,122 +1448,122 @@ msgstr "Anuncio de router IPv6 habilitado"
|
||||
msgid "DHCP, sockets bound exclusively to interface %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
msgid "root is "
|
||||
msgstr "root está "
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
#, fuzzy
|
||||
msgid "enabled"
|
||||
msgstr "habilitado"
|
||||
|
||||
#: dnsmasq.c:810
|
||||
#: dnsmasq.c:806
|
||||
msgid "secure mode"
|
||||
msgstr "modo seguro"
|
||||
|
||||
#: dnsmasq.c:813
|
||||
#: dnsmasq.c:809
|
||||
#, c-format
|
||||
msgid "warning: %s inaccessible"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:817
|
||||
#: dnsmasq.c:813
|
||||
#, fuzzy, c-format
|
||||
msgid "warning: TFTP directory %s inaccessible"
|
||||
msgstr "directorio TFTP % inaccesible: %s"
|
||||
|
||||
#: dnsmasq.c:843
|
||||
#: dnsmasq.c:839
|
||||
#, c-format
|
||||
msgid "restricting maximum simultaneous TFTP transfers to %d"
|
||||
msgstr "limitando número máximo de transferencias TFTP simultáneas a %d"
|
||||
|
||||
#: dnsmasq.c:1039
|
||||
#: dnsmasq.c:999
|
||||
msgid "connected to system DBus"
|
||||
msgstr "conectado a DBus de sistema"
|
||||
|
||||
#: dnsmasq.c:1189
|
||||
#: dnsmasq.c:1149
|
||||
#, c-format
|
||||
msgid "cannot fork into background: %s"
|
||||
msgstr "no se puede hacer fork en background: %s"
|
||||
|
||||
#: dnsmasq.c:1192
|
||||
#: dnsmasq.c:1152
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to create helper: %s"
|
||||
msgstr "no se pudo crear ayudante: %s"
|
||||
|
||||
#: dnsmasq.c:1195
|
||||
#: dnsmasq.c:1155
|
||||
#, fuzzy, c-format
|
||||
msgid "setting capabilities failed: %s"
|
||||
msgstr "configuración de capacidades ha fallado: %s"
|
||||
|
||||
#: dnsmasq.c:1198
|
||||
#: dnsmasq.c:1158
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to change user-id to %s: %s"
|
||||
msgstr "no se pudo cambiar user-id a %s: %s"
|
||||
|
||||
#: dnsmasq.c:1201
|
||||
#: dnsmasq.c:1161
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to change group-id to %s: %s"
|
||||
msgstr "no se pudo cambiar group-id a %s: %s"
|
||||
|
||||
#: dnsmasq.c:1204
|
||||
#: dnsmasq.c:1164
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to open pidfile %s: %s"
|
||||
msgstr "no se pudo abrir archivo PID %s: %s"
|
||||
|
||||
#: dnsmasq.c:1207
|
||||
#: dnsmasq.c:1167
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot open log %s: %s"
|
||||
msgstr "no se puede abrir registro %s: %s"
|
||||
|
||||
#: dnsmasq.c:1210
|
||||
#: dnsmasq.c:1170
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to load Lua script: %s"
|
||||
msgstr "no se pudo cargar script Lua %s: %s"
|
||||
|
||||
#: dnsmasq.c:1213
|
||||
#: dnsmasq.c:1173
|
||||
#, c-format
|
||||
msgid "TFTP directory %s inaccessible: %s"
|
||||
msgstr "directorio TFTP % inaccesible: %s"
|
||||
|
||||
#: dnsmasq.c:1216
|
||||
#: dnsmasq.c:1176
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot create timestamp file %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"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1304
|
||||
#: dnsmasq.c:1264
|
||||
#, fuzzy, c-format
|
||||
msgid "script process killed by signal %d"
|
||||
msgstr "proceso script eliminado por señal %d"
|
||||
|
||||
#: dnsmasq.c:1308
|
||||
#: dnsmasq.c:1268
|
||||
#, fuzzy, c-format
|
||||
msgid "script process exited with status %d"
|
||||
msgstr "proceso script salió con con estado %d"
|
||||
|
||||
#: dnsmasq.c:1312
|
||||
#: dnsmasq.c:1272
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr "no se pudo ejecutar %s: %s"
|
||||
|
||||
#: dnsmasq.c:1367
|
||||
#: dnsmasq.c:1327
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr "saliendo al recibir SIGTERM"
|
||||
|
||||
#: dnsmasq.c:1395
|
||||
#: dnsmasq.c:1355
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr "no se pudo acceder %s: %s"
|
||||
|
||||
#: dnsmasq.c:1425
|
||||
#: dnsmasq.c:1385
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr "leyendo %s"
|
||||
|
||||
#: dnsmasq.c:1436
|
||||
#: dnsmasq.c:1396
|
||||
#, fuzzy, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr "ningún servidor encontrado en %s, se reintentará"
|
||||
@@ -1918,7 +1918,7 @@ msgstr "desbordamiento: %d entradas de registro perdidas"
|
||||
msgid "log failed: %s"
|
||||
msgstr "registro falló: %s"
|
||||
|
||||
#: log.c:472
|
||||
#: log.c:469
|
||||
msgid "FAILED to start up"
|
||||
msgstr "el inicio ha FALLADO"
|
||||
|
||||
@@ -2177,36 +2177,45 @@ msgstr ""
|
||||
msgid "%d addresses %s"
|
||||
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
|
||||
msgid "failed to create inotify: %s"
|
||||
msgstr "no se pudo crear ayudante: %s"
|
||||
|
||||
#: inotify.c:60
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot cannonicalise resolv-file %s: %s"
|
||||
msgstr "no se puede abrir o crear archivo de concesión %s: %s"
|
||||
#: inotify.c:105
|
||||
#, c-format
|
||||
msgid "too many symlinks following %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:72
|
||||
#: inotify.c:121
|
||||
#, c-format
|
||||
msgid "directory %s for resolv-file is missing, cannot poll"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:75 inotify.c:112
|
||||
#: inotify.c:125 inotify.c:162
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to create inotify for %s: %s"
|
||||
msgstr "no se pudo crear un zócalo de escucha: %s"
|
||||
|
||||
#: inotify.c:97
|
||||
#: inotify.c:147
|
||||
#, fuzzy, c-format
|
||||
msgid "bad dynamic directory %s: %s"
|
||||
msgstr "no se puede acceder a directorio %s: %s"
|
||||
|
||||
#: inotify.c:197
|
||||
#: inotify.c:247
|
||||
#, c-format
|
||||
msgid "inotify, new or changed file %s"
|
||||
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"
|
||||
#~ msgstr "ninguna interfase con dirección %s"
|
||||
|
||||
|
||||
91
po/fi.po
91
po/fi.po
@@ -1068,34 +1068,34 @@ msgstr ""
|
||||
msgid "bad command line options: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4544
|
||||
#: option.c:4541
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4572
|
||||
#: option.c:4569
|
||||
msgid "only one resolv.conf file allowed in no-poll mode."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4582
|
||||
#: option.c:4579
|
||||
msgid "must have exactly one resolv.conf to read domain from."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4585 network.c:1507 dhcp.c:777
|
||||
#: option.c:4582 network.c:1507 dhcp.c:777
|
||||
#, c-format
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4602
|
||||
#: option.c:4599
|
||||
#, c-format
|
||||
msgid "no search directive found in %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4623
|
||||
#: option.c:4620
|
||||
msgid "there must be a default domain when --dhcp-fqdn is set"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4632
|
||||
#: option.c:4629
|
||||
msgid "syntax check OK"
|
||||
msgstr ""
|
||||
|
||||
@@ -1118,11 +1118,11 @@ msgstr ""
|
||||
msgid "possible DNS-rebind attack detected: %s"
|
||||
msgstr ""
|
||||
|
||||
#: forward.c:1209 forward.c:1785
|
||||
#: forward.c:1209 forward.c:1815
|
||||
msgid "Ignoring query from non-local network"
|
||||
msgstr ""
|
||||
|
||||
#: forward.c:2256
|
||||
#: forward.c:2286
|
||||
#, c-format
|
||||
msgid "Maximum number of concurrent DNS queries reached (max: %d)"
|
||||
msgstr ""
|
||||
@@ -1278,7 +1278,7 @@ msgstr ""
|
||||
msgid "unknown interface %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:354 dnsmasq.c:1037
|
||||
#: dnsmasq.c:354 dnsmasq.c:997
|
||||
#, c-format
|
||||
msgid "DBus error: %s"
|
||||
msgstr ""
|
||||
@@ -1377,121 +1377,121 @@ msgstr ""
|
||||
msgid "DHCP, sockets bound exclusively to interface %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
msgid "root is "
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
msgid "enabled"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:810
|
||||
#: dnsmasq.c:806
|
||||
msgid "secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:813
|
||||
#: dnsmasq.c:809
|
||||
#, c-format
|
||||
msgid "warning: %s inaccessible"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:817
|
||||
#: dnsmasq.c:813
|
||||
#, c-format
|
||||
msgid "warning: TFTP directory %s inaccessible"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:843
|
||||
#: dnsmasq.c:839
|
||||
#, c-format
|
||||
msgid "restricting maximum simultaneous TFTP transfers to %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1039
|
||||
#: dnsmasq.c:999
|
||||
msgid "connected to system DBus"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1189
|
||||
#: dnsmasq.c:1149
|
||||
#, c-format
|
||||
msgid "cannot fork into background: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1192
|
||||
#: dnsmasq.c:1152
|
||||
#, c-format
|
||||
msgid "failed to create helper: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1195
|
||||
#: dnsmasq.c:1155
|
||||
#, c-format
|
||||
msgid "setting capabilities failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1198
|
||||
#: dnsmasq.c:1158
|
||||
#, c-format
|
||||
msgid "failed to change user-id to %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1201
|
||||
#: dnsmasq.c:1161
|
||||
#, c-format
|
||||
msgid "failed to change group-id to %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1204
|
||||
#: dnsmasq.c:1164
|
||||
#, c-format
|
||||
msgid "failed to open pidfile %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1207
|
||||
#: dnsmasq.c:1167
|
||||
#, c-format
|
||||
msgid "cannot open log %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1210
|
||||
#: dnsmasq.c:1170
|
||||
#, c-format
|
||||
msgid "failed to load Lua script: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1213
|
||||
#: dnsmasq.c:1173
|
||||
#, c-format
|
||||
msgid "TFTP directory %s inaccessible: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1216
|
||||
#: dnsmasq.c:1176
|
||||
#, c-format
|
||||
msgid "cannot create timestamp file %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1237
|
||||
#: dnsmasq.c:1197
|
||||
msgid "now checking DNSSEC signature timestamps"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1304
|
||||
#: dnsmasq.c:1264
|
||||
#, c-format
|
||||
msgid "script process killed by signal %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1308
|
||||
#: dnsmasq.c:1268
|
||||
#, c-format
|
||||
msgid "script process exited with status %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1312
|
||||
#: dnsmasq.c:1272
|
||||
#, c-format
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1367
|
||||
#: dnsmasq.c:1327
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1395
|
||||
#: dnsmasq.c:1355
|
||||
#, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1425
|
||||
#: dnsmasq.c:1385
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1436
|
||||
#: dnsmasq.c:1396
|
||||
#, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr ""
|
||||
@@ -1846,7 +1846,7 @@ msgstr ""
|
||||
msgid "log failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: log.c:472
|
||||
#: log.c:469
|
||||
msgid "FAILED to start up"
|
||||
msgstr ""
|
||||
|
||||
@@ -2101,32 +2101,37 @@ msgstr ""
|
||||
msgid "%d addresses %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:46
|
||||
#: inotify.c:59
|
||||
#, c-format
|
||||
msgid "cannot access path %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:92
|
||||
#, c-format
|
||||
msgid "failed to create inotify: %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:60
|
||||
#: inotify.c:105
|
||||
#, c-format
|
||||
msgid "cannot cannonicalise resolv-file %s: %s"
|
||||
msgid "too many symlinks following %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:72
|
||||
#: inotify.c:121
|
||||
#, c-format
|
||||
msgid "directory %s for resolv-file is missing, cannot poll"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:75 inotify.c:112
|
||||
#: inotify.c:125 inotify.c:162
|
||||
#, c-format
|
||||
msgid "failed to create inotify for %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:97
|
||||
#: inotify.c:147
|
||||
#, c-format
|
||||
msgid "bad dynamic directory %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:197
|
||||
#: inotify.c:247
|
||||
#, c-format
|
||||
msgid "inotify, new or changed file %s"
|
||||
msgstr ""
|
||||
|
||||
99
po/fr.po
99
po/fr.po
@@ -1111,34 +1111,34 @@ msgstr "essayez avec -w"
|
||||
msgid "bad command line options: %s"
|
||||
msgstr "mauvaises options en ligne de commande : %s."
|
||||
|
||||
#: option.c:4544
|
||||
#: option.c:4541
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %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."
|
||||
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."
|
||||
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
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr "impossible de lire %s : %s"
|
||||
|
||||
#: option.c:4602
|
||||
#: option.c:4599
|
||||
#, c-format
|
||||
msgid "no search directive found in %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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: forward.c:2256
|
||||
#: forward.c:2286
|
||||
#, c-format
|
||||
msgid "Maximum number of concurrent DNS queries reached (max: %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"
|
||||
msgstr "interface %s inconnue"
|
||||
|
||||
#: dnsmasq.c:354 dnsmasq.c:1037
|
||||
#: dnsmasq.c:354 dnsmasq.c:997
|
||||
#, c-format
|
||||
msgid "DBus error: %s"
|
||||
msgstr "Erreur DBus : %s"
|
||||
@@ -1428,123 +1428,123 @@ msgstr "annonces de routeur IPv6 activ
|
||||
msgid "DHCP, sockets bound exclusively to interface %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
msgid "root is "
|
||||
msgstr "root est"
|
||||
|
||||
#
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
msgid "enabled"
|
||||
msgstr "activé"
|
||||
|
||||
#: dnsmasq.c:810
|
||||
#: dnsmasq.c:806
|
||||
msgid "secure mode"
|
||||
msgstr "mode sécurisé"
|
||||
|
||||
#: dnsmasq.c:813
|
||||
#: dnsmasq.c:809
|
||||
#, c-format
|
||||
msgid "warning: %s inaccessible"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:817
|
||||
#: dnsmasq.c:813
|
||||
#, fuzzy, c-format
|
||||
msgid "warning: TFTP directory %s inaccessible"
|
||||
msgstr "répertoire TFTP %s inaccessible : %s"
|
||||
|
||||
#: dnsmasq.c:843
|
||||
#: dnsmasq.c:839
|
||||
#, c-format
|
||||
msgid "restricting maximum simultaneous TFTP transfers to %d"
|
||||
msgstr "le nombre maximum de transferts TFTP simultanés sera restreint à %d"
|
||||
|
||||
#: dnsmasq.c:1039
|
||||
#: dnsmasq.c:999
|
||||
msgid "connected to system DBus"
|
||||
msgstr "connecté au systeme DBus"
|
||||
|
||||
#: dnsmasq.c:1189
|
||||
#: dnsmasq.c:1149
|
||||
#, c-format
|
||||
msgid "cannot fork into background: %s"
|
||||
msgstr "Ne peut se lancer en tâche de fond : %s"
|
||||
|
||||
#: dnsmasq.c:1192
|
||||
#: dnsmasq.c:1152
|
||||
#, c-format
|
||||
msgid "failed to create helper: %s"
|
||||
msgstr "impossible de créer le 'helper' : %s"
|
||||
|
||||
#: dnsmasq.c:1195
|
||||
#: dnsmasq.c:1155
|
||||
#, c-format
|
||||
msgid "setting capabilities failed: %s"
|
||||
msgstr "impossible de configurer la capacité %s"
|
||||
|
||||
#: dnsmasq.c:1198
|
||||
#: dnsmasq.c:1158
|
||||
#, c-format
|
||||
msgid "failed to change user-id to %s: %s"
|
||||
msgstr "Impossible de changer l'identifiant utilisateur pour %s : %s"
|
||||
|
||||
#: dnsmasq.c:1201
|
||||
#: dnsmasq.c:1161
|
||||
#, c-format
|
||||
msgid "failed to change group-id to %s: %s"
|
||||
msgstr "Impossible de changer l'identifiant de groupe pour %s : %s"
|
||||
|
||||
#: dnsmasq.c:1204
|
||||
#: dnsmasq.c:1164
|
||||
#, c-format
|
||||
msgid "failed to open pidfile %s: %s"
|
||||
msgstr "impossible de lire le fichier de PID %s : %s"
|
||||
|
||||
#: dnsmasq.c:1207
|
||||
#: dnsmasq.c:1167
|
||||
#, c-format
|
||||
msgid "cannot open log %s: %s"
|
||||
msgstr "Ne peut ouvrir le fichier de log %s : %s"
|
||||
|
||||
#
|
||||
#: dnsmasq.c:1210
|
||||
#: dnsmasq.c:1170
|
||||
#, c-format
|
||||
msgid "failed to load Lua script: %s"
|
||||
msgstr "impossible de charger le script Lua : %s"
|
||||
|
||||
#: dnsmasq.c:1213
|
||||
#: dnsmasq.c:1173
|
||||
#, c-format
|
||||
msgid "TFTP directory %s inaccessible: %s"
|
||||
msgstr "répertoire TFTP %s inaccessible : %s"
|
||||
|
||||
#: dnsmasq.c:1216
|
||||
#: dnsmasq.c:1176
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot create timestamp file %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"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1304
|
||||
#: dnsmasq.c:1264
|
||||
#, c-format
|
||||
msgid "script process killed by signal %d"
|
||||
msgstr "Le script a été terminé par le signal %d"
|
||||
|
||||
#: dnsmasq.c:1308
|
||||
#: dnsmasq.c:1268
|
||||
#, c-format
|
||||
msgid "script process exited with status %d"
|
||||
msgstr "Le script s'est terminé avec le statut %d"
|
||||
|
||||
#: dnsmasq.c:1312
|
||||
#: dnsmasq.c:1272
|
||||
#, c-format
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr "impossible d'exécuter à %s : %s"
|
||||
|
||||
#: dnsmasq.c:1367
|
||||
#: dnsmasq.c:1327
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr "sortie sur réception du signal SIGTERM"
|
||||
|
||||
#: dnsmasq.c:1395
|
||||
#: dnsmasq.c:1355
|
||||
#, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr "impossible d'accéder à %s : %s"
|
||||
|
||||
#: dnsmasq.c:1425
|
||||
#: dnsmasq.c:1385
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr "Lecture de %s"
|
||||
|
||||
#: dnsmasq.c:1436
|
||||
#: dnsmasq.c:1396
|
||||
#, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr "aucun serveur trouvé dans %s, va réessayer"
|
||||
@@ -1899,7 +1899,7 @@ msgstr "d
|
||||
msgid "log failed: %s"
|
||||
msgstr "trace perdue : %s"
|
||||
|
||||
#: log.c:472
|
||||
#: log.c:469
|
||||
msgid "FAILED to start up"
|
||||
msgstr "IMPOSSIBLE de démarrer"
|
||||
|
||||
@@ -2155,36 +2155,45 @@ msgstr ""
|
||||
msgid "%d addresses %s"
|
||||
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
|
||||
msgid "failed to create inotify: %s"
|
||||
msgstr "impossible de créer le 'helper' : %s"
|
||||
|
||||
#: inotify.c:60
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot cannonicalise resolv-file %s: %s"
|
||||
msgstr "ne peut ouvrir ou créer le fichiers de baux %s : %s"
|
||||
#: inotify.c:105
|
||||
#, c-format
|
||||
msgid "too many symlinks following %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:72
|
||||
#: inotify.c:121
|
||||
#, c-format
|
||||
msgid "directory %s for resolv-file is missing, cannot poll"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:75 inotify.c:112
|
||||
#: inotify.c:125 inotify.c:162
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to create inotify for %s: %s"
|
||||
msgstr "impossible de créer une socket d'écoute pour %s : %s"
|
||||
|
||||
#: inotify.c:97
|
||||
#: inotify.c:147
|
||||
#, fuzzy, c-format
|
||||
msgid "bad dynamic directory %s: %s"
|
||||
msgstr "Ne peut pas lire le répertoire %s : %s"
|
||||
|
||||
#: inotify.c:197
|
||||
#: inotify.c:247
|
||||
#, c-format
|
||||
msgid "inotify, new or changed file %s"
|
||||
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"
|
||||
#~ msgstr "Envoyer des annonces de routeurs fréquentes"
|
||||
|
||||
|
||||
102
po/id.po
102
po/id.po
@@ -1263,38 +1263,38 @@ msgid "bad command line options: %s"
|
||||
msgstr "pilihan baris perintah salah: %s."
|
||||
|
||||
# OK
|
||||
#: option.c:4544
|
||||
#: option.c:4541
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %s"
|
||||
msgstr "tidak bisa mendapatkan host-name: %s"
|
||||
|
||||
# OK
|
||||
#: option.c:4572
|
||||
#: option.c:4569
|
||||
msgid "only one resolv.conf file allowed in no-poll mode."
|
||||
msgstr "hanya satu file resolv.conf yang diperbolehkan dalam modus no-poll."
|
||||
|
||||
# OK
|
||||
#: option.c:4582
|
||||
#: option.c:4579
|
||||
msgid "must have exactly one resolv.conf to read domain from."
|
||||
msgstr "harus mempunyai tepat satu resolv.conf untuk mendapatkan nama domain."
|
||||
|
||||
# OK
|
||||
#: option.c:4585 network.c:1507 dhcp.c:777
|
||||
#: option.c:4582 network.c:1507 dhcp.c:777
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr "gagal membaca %s: %s"
|
||||
|
||||
# OK
|
||||
#: option.c:4602
|
||||
#: option.c:4599
|
||||
#, c-format
|
||||
msgid "no search directive found in %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"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4632
|
||||
#: option.c:4629
|
||||
msgid "syntax check OK"
|
||||
msgstr ""
|
||||
|
||||
@@ -1319,12 +1319,12 @@ msgstr "nameserver %s menolak melakukan resolusi rekursif"
|
||||
msgid "possible DNS-rebind attack detected: %s"
|
||||
msgstr ""
|
||||
|
||||
#: forward.c:1209 forward.c:1785
|
||||
#: forward.c:1209 forward.c:1815
|
||||
msgid "Ignoring query from non-local network"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: forward.c:2256
|
||||
#: forward.c:2286
|
||||
#, fuzzy, c-format
|
||||
msgid "Maximum number of concurrent DNS queries reached (max: %d)"
|
||||
msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)."
|
||||
@@ -1506,7 +1506,7 @@ msgid "unknown interface %s"
|
||||
msgstr "antarmuka tidak dikenal %s"
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:354 dnsmasq.c:1037
|
||||
#: dnsmasq.c:354 dnsmasq.c:997
|
||||
#, c-format
|
||||
msgid "DBus error: %s"
|
||||
msgstr "DBus error: %s"
|
||||
@@ -1617,135 +1617,135 @@ msgstr ""
|
||||
msgid "DHCP, sockets bound exclusively to interface %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
msgid "root is "
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
#, fuzzy
|
||||
msgid "enabled"
|
||||
msgstr "di disable"
|
||||
|
||||
#: dnsmasq.c:810
|
||||
#: dnsmasq.c:806
|
||||
msgid "secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:813
|
||||
#: dnsmasq.c:809
|
||||
#, c-format
|
||||
msgid "warning: %s inaccessible"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:817
|
||||
#: dnsmasq.c:813
|
||||
#, c-format
|
||||
msgid "warning: TFTP directory %s inaccessible"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:843
|
||||
#: dnsmasq.c:839
|
||||
#, c-format
|
||||
msgid "restricting maximum simultaneous TFTP transfers to %d"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:1039
|
||||
#: dnsmasq.c:999
|
||||
msgid "connected to system DBus"
|
||||
msgstr "terhubung ke sistem DBus"
|
||||
|
||||
#: dnsmasq.c:1189
|
||||
#: dnsmasq.c:1149
|
||||
#, c-format
|
||||
msgid "cannot fork into background: %s"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:1192
|
||||
#: dnsmasq.c:1152
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to create helper: %s"
|
||||
msgstr "gagal membaca %s: %s"
|
||||
|
||||
#: dnsmasq.c:1195
|
||||
#: dnsmasq.c:1155
|
||||
#, c-format
|
||||
msgid "setting capabilities failed: %s"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:1198
|
||||
#: dnsmasq.c:1158
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to change user-id to %s: %s"
|
||||
msgstr "gagal memuat nama-nama dari %s: %s"
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:1201
|
||||
#: dnsmasq.c:1161
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to change group-id to %s: %s"
|
||||
msgstr "gagal memuat nama-nama dari %s: %s"
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:1204
|
||||
#: dnsmasq.c:1164
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to open pidfile %s: %s"
|
||||
msgstr "gagal membaca %s: %s"
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:1207
|
||||
#: dnsmasq.c:1167
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot open log %s: %s"
|
||||
msgstr "tidak bisa membuka %s:%s"
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:1210
|
||||
#: dnsmasq.c:1170
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to load Lua script: %s"
|
||||
msgstr "gagal memuat %S: %s"
|
||||
|
||||
#: dnsmasq.c:1213
|
||||
#: dnsmasq.c:1173
|
||||
#, c-format
|
||||
msgid "TFTP directory %s inaccessible: %s"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:1216
|
||||
#: dnsmasq.c:1176
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot create timestamp file %s: %s"
|
||||
msgstr "tidak dapat membuka atau membuat file lease: %s"
|
||||
|
||||
#: dnsmasq.c:1237
|
||||
#: dnsmasq.c:1197
|
||||
msgid "now checking DNSSEC signature timestamps"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1304
|
||||
#: dnsmasq.c:1264
|
||||
#, c-format
|
||||
msgid "script process killed by signal %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1308
|
||||
#: dnsmasq.c:1268
|
||||
#, c-format
|
||||
msgid "script process exited with status %d"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:1312
|
||||
#: dnsmasq.c:1272
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr "gagal mengakses %s: %s"
|
||||
|
||||
#: dnsmasq.c:1367
|
||||
#: dnsmasq.c:1327
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr "keluar karena menerima SIGTERM"
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:1395
|
||||
#: dnsmasq.c:1355
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr "gagal mengakses %s: %s"
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:1425
|
||||
#: dnsmasq.c:1385
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr "membaca %s"
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:1436
|
||||
#: dnsmasq.c:1396
|
||||
#, fuzzy, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr "tidak ditemukan direktif search di %s"
|
||||
@@ -2146,7 +2146,7 @@ msgid "log failed: %s"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: log.c:472
|
||||
#: log.c:469
|
||||
msgid "FAILED to start up"
|
||||
msgstr "GAGAL untuk memulai"
|
||||
|
||||
@@ -2432,39 +2432,49 @@ msgid "%d addresses %s"
|
||||
msgstr "membaca %s - %d alamat"
|
||||
|
||||
# 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
|
||||
msgid "failed to create inotify: %s"
|
||||
msgstr "gagal membaca %s: %s"
|
||||
|
||||
# OK
|
||||
#: inotify.c:60
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot cannonicalise resolv-file %s: %s"
|
||||
msgstr "tidak dapat membuka atau membuat file lease: %s"
|
||||
#: inotify.c:105
|
||||
#, c-format
|
||||
msgid "too many symlinks following %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:72
|
||||
#: inotify.c:121
|
||||
#, c-format
|
||||
msgid "directory %s for resolv-file is missing, cannot poll"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: inotify.c:75 inotify.c:112
|
||||
#: inotify.c:125 inotify.c:162
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to create inotify for %s: %s"
|
||||
msgstr "gagal membuat socket: %s "
|
||||
|
||||
# OK
|
||||
#: inotify.c:97
|
||||
#: inotify.c:147
|
||||
#, fuzzy, c-format
|
||||
msgid "bad dynamic directory %s: %s"
|
||||
msgstr "tidak bisa membaca %s: %s"
|
||||
|
||||
#: inotify.c:197
|
||||
#: inotify.c:247
|
||||
#, c-format
|
||||
msgid "inotify, new or changed file %s"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#, fuzzy
|
||||
#~ msgid "cannot cannonicalise resolv-file %s: %s"
|
||||
#~ msgstr "tidak dapat membuka atau membuat file lease: %s"
|
||||
|
||||
# OK
|
||||
#~ msgid "duplicate IP address %s in dhcp-config directive."
|
||||
#~ msgstr "alamat IP kembar %s dalam direktif dhcp-config"
|
||||
|
||||
91
po/it.po
91
po/it.po
@@ -1068,34 +1068,34 @@ msgstr ""
|
||||
msgid "bad command line options: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4544
|
||||
#: option.c:4541
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4572
|
||||
#: option.c:4569
|
||||
msgid "only one resolv.conf file allowed in no-poll mode."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4582
|
||||
#: option.c:4579
|
||||
msgid "must have exactly one resolv.conf to read domain from."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4585 network.c:1507 dhcp.c:777
|
||||
#: option.c:4582 network.c:1507 dhcp.c:777
|
||||
#, c-format
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4602
|
||||
#: option.c:4599
|
||||
#, c-format
|
||||
msgid "no search directive found in %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4623
|
||||
#: option.c:4620
|
||||
msgid "there must be a default domain when --dhcp-fqdn is set"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4632
|
||||
#: option.c:4629
|
||||
msgid "syntax check OK"
|
||||
msgstr ""
|
||||
|
||||
@@ -1118,11 +1118,11 @@ msgstr ""
|
||||
msgid "possible DNS-rebind attack detected: %s"
|
||||
msgstr ""
|
||||
|
||||
#: forward.c:1209 forward.c:1785
|
||||
#: forward.c:1209 forward.c:1815
|
||||
msgid "Ignoring query from non-local network"
|
||||
msgstr ""
|
||||
|
||||
#: forward.c:2256
|
||||
#: forward.c:2286
|
||||
#, c-format
|
||||
msgid "Maximum number of concurrent DNS queries reached (max: %d)"
|
||||
msgstr ""
|
||||
@@ -1278,7 +1278,7 @@ msgstr ""
|
||||
msgid "unknown interface %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:354 dnsmasq.c:1037
|
||||
#: dnsmasq.c:354 dnsmasq.c:997
|
||||
#, c-format
|
||||
msgid "DBus error: %s"
|
||||
msgstr ""
|
||||
@@ -1377,121 +1377,121 @@ msgstr ""
|
||||
msgid "DHCP, sockets bound exclusively to interface %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
msgid "root is "
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
msgid "enabled"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:810
|
||||
#: dnsmasq.c:806
|
||||
msgid "secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:813
|
||||
#: dnsmasq.c:809
|
||||
#, c-format
|
||||
msgid "warning: %s inaccessible"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:817
|
||||
#: dnsmasq.c:813
|
||||
#, c-format
|
||||
msgid "warning: TFTP directory %s inaccessible"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:843
|
||||
#: dnsmasq.c:839
|
||||
#, c-format
|
||||
msgid "restricting maximum simultaneous TFTP transfers to %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1039
|
||||
#: dnsmasq.c:999
|
||||
msgid "connected to system DBus"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1189
|
||||
#: dnsmasq.c:1149
|
||||
#, c-format
|
||||
msgid "cannot fork into background: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1192
|
||||
#: dnsmasq.c:1152
|
||||
#, c-format
|
||||
msgid "failed to create helper: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1195
|
||||
#: dnsmasq.c:1155
|
||||
#, c-format
|
||||
msgid "setting capabilities failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1198
|
||||
#: dnsmasq.c:1158
|
||||
#, c-format
|
||||
msgid "failed to change user-id to %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1201
|
||||
#: dnsmasq.c:1161
|
||||
#, c-format
|
||||
msgid "failed to change group-id to %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1204
|
||||
#: dnsmasq.c:1164
|
||||
#, c-format
|
||||
msgid "failed to open pidfile %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1207
|
||||
#: dnsmasq.c:1167
|
||||
#, c-format
|
||||
msgid "cannot open log %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1210
|
||||
#: dnsmasq.c:1170
|
||||
#, c-format
|
||||
msgid "failed to load Lua script: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1213
|
||||
#: dnsmasq.c:1173
|
||||
#, c-format
|
||||
msgid "TFTP directory %s inaccessible: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1216
|
||||
#: dnsmasq.c:1176
|
||||
#, c-format
|
||||
msgid "cannot create timestamp file %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1237
|
||||
#: dnsmasq.c:1197
|
||||
msgid "now checking DNSSEC signature timestamps"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1304
|
||||
#: dnsmasq.c:1264
|
||||
#, c-format
|
||||
msgid "script process killed by signal %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1308
|
||||
#: dnsmasq.c:1268
|
||||
#, c-format
|
||||
msgid "script process exited with status %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1312
|
||||
#: dnsmasq.c:1272
|
||||
#, c-format
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1367
|
||||
#: dnsmasq.c:1327
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1395
|
||||
#: dnsmasq.c:1355
|
||||
#, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1425
|
||||
#: dnsmasq.c:1385
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1436
|
||||
#: dnsmasq.c:1396
|
||||
#, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr ""
|
||||
@@ -1846,7 +1846,7 @@ msgstr ""
|
||||
msgid "log failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: log.c:472
|
||||
#: log.c:469
|
||||
msgid "FAILED to start up"
|
||||
msgstr ""
|
||||
|
||||
@@ -2101,32 +2101,37 @@ msgstr ""
|
||||
msgid "%d addresses %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:46
|
||||
#: inotify.c:59
|
||||
#, c-format
|
||||
msgid "cannot access path %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:92
|
||||
#, c-format
|
||||
msgid "failed to create inotify: %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:60
|
||||
#: inotify.c:105
|
||||
#, c-format
|
||||
msgid "cannot cannonicalise resolv-file %s: %s"
|
||||
msgid "too many symlinks following %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:72
|
||||
#: inotify.c:121
|
||||
#, c-format
|
||||
msgid "directory %s for resolv-file is missing, cannot poll"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:75 inotify.c:112
|
||||
#: inotify.c:125 inotify.c:162
|
||||
#, c-format
|
||||
msgid "failed to create inotify for %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:97
|
||||
#: inotify.c:147
|
||||
#, c-format
|
||||
msgid "bad dynamic directory %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:197
|
||||
#: inotify.c:247
|
||||
#, c-format
|
||||
msgid "inotify, new or changed file %s"
|
||||
msgstr ""
|
||||
|
||||
99
po/no.po
99
po/no.po
@@ -1121,34 +1121,34 @@ msgstr ""
|
||||
msgid "bad command line options: %s"
|
||||
msgstr "dårlige kommandlinje opsjoner: %s."
|
||||
|
||||
#: option.c:4544
|
||||
#: option.c:4541
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %s"
|
||||
msgstr "klarer ikke å få vertsnavn: %s"
|
||||
|
||||
#: option.c:4572
|
||||
#: option.c:4569
|
||||
msgid "only one resolv.conf file allowed in no-poll mode."
|
||||
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."
|
||||
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
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr "feilet å lese %s: %s"
|
||||
|
||||
#: option.c:4602
|
||||
#: option.c:4599
|
||||
#, c-format
|
||||
msgid "no search directive found in %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"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4632
|
||||
#: option.c:4629
|
||||
msgid "syntax check OK"
|
||||
msgstr ""
|
||||
|
||||
@@ -1171,11 +1171,11 @@ msgstr "navnetjener %s nektet
|
||||
msgid "possible DNS-rebind attack detected: %s"
|
||||
msgstr ""
|
||||
|
||||
#: forward.c:1209 forward.c:1785
|
||||
#: forward.c:1209 forward.c:1815
|
||||
msgid "Ignoring query from non-local network"
|
||||
msgstr ""
|
||||
|
||||
#: forward.c:2256
|
||||
#: forward.c:2286
|
||||
#, fuzzy, c-format
|
||||
msgid "Maximum number of concurrent DNS queries reached (max: %d)"
|
||||
msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
|
||||
@@ -1336,7 +1336,7 @@ msgstr "feilet
|
||||
msgid "unknown interface %s"
|
||||
msgstr "ukjent tilknytning (interface) %s"
|
||||
|
||||
#: dnsmasq.c:354 dnsmasq.c:1037
|
||||
#: dnsmasq.c:354 dnsmasq.c:997
|
||||
#, c-format
|
||||
msgid "DBus error: %s"
|
||||
msgstr "DBus feil: %s"
|
||||
@@ -1436,122 +1436,122 @@ msgstr ""
|
||||
msgid "DHCP, sockets bound exclusively to interface %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
msgid "root is "
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
#, fuzzy
|
||||
msgid "enabled"
|
||||
msgstr "deaktivert"
|
||||
|
||||
#: dnsmasq.c:810
|
||||
#: dnsmasq.c:806
|
||||
msgid "secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:813
|
||||
#: dnsmasq.c:809
|
||||
#, c-format
|
||||
msgid "warning: %s inaccessible"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:817
|
||||
#: dnsmasq.c:813
|
||||
#, c-format
|
||||
msgid "warning: TFTP directory %s inaccessible"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:843
|
||||
#: dnsmasq.c:839
|
||||
#, c-format
|
||||
msgid "restricting maximum simultaneous TFTP transfers to %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1039
|
||||
#: dnsmasq.c:999
|
||||
msgid "connected to system DBus"
|
||||
msgstr "tilkoblet til system DBus"
|
||||
|
||||
#: dnsmasq.c:1189
|
||||
#: dnsmasq.c:1149
|
||||
#, c-format
|
||||
msgid "cannot fork into background: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1192
|
||||
#: dnsmasq.c:1152
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to create helper: %s"
|
||||
msgstr "feilet å lese %s: %s"
|
||||
|
||||
#: dnsmasq.c:1195
|
||||
#: dnsmasq.c:1155
|
||||
#, c-format
|
||||
msgid "setting capabilities failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1198
|
||||
#: dnsmasq.c:1158
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to change user-id to %s: %s"
|
||||
msgstr "feilet å laste navn fra %s: %s"
|
||||
|
||||
#: dnsmasq.c:1201
|
||||
#: dnsmasq.c:1161
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to change group-id to %s: %s"
|
||||
msgstr "feilet å laste navn fra %s: %s"
|
||||
|
||||
#: dnsmasq.c:1204
|
||||
#: dnsmasq.c:1164
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to open pidfile %s: %s"
|
||||
msgstr "feilet å lese %s: %s"
|
||||
|
||||
#: dnsmasq.c:1207
|
||||
#: dnsmasq.c:1167
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot open log %s: %s"
|
||||
msgstr "kan ikke åpne %s:%s"
|
||||
|
||||
#: dnsmasq.c:1210
|
||||
#: dnsmasq.c:1170
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to load Lua script: %s"
|
||||
msgstr "feilet å laste %s: %s"
|
||||
|
||||
#: dnsmasq.c:1213
|
||||
#: dnsmasq.c:1173
|
||||
#, c-format
|
||||
msgid "TFTP directory %s inaccessible: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1216
|
||||
#: dnsmasq.c:1176
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot create timestamp file %s: %s"
|
||||
msgstr "kan ikke åpne eller lage leie fil: %s"
|
||||
|
||||
#: dnsmasq.c:1237
|
||||
#: dnsmasq.c:1197
|
||||
msgid "now checking DNSSEC signature timestamps"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1304
|
||||
#: dnsmasq.c:1264
|
||||
#, c-format
|
||||
msgid "script process killed by signal %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1308
|
||||
#: dnsmasq.c:1268
|
||||
#, c-format
|
||||
msgid "script process exited with status %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1312
|
||||
#: dnsmasq.c:1272
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr "feilet å få tilgang til %s: %s"
|
||||
|
||||
#: dnsmasq.c:1367
|
||||
#: dnsmasq.c:1327
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr "avslutter etter mottak av SIGTERM"
|
||||
|
||||
#: dnsmasq.c:1395
|
||||
#: dnsmasq.c:1355
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr "feilet å få tilgang til %s: %s"
|
||||
|
||||
#: dnsmasq.c:1425
|
||||
#: dnsmasq.c:1385
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr "leser %s"
|
||||
|
||||
#: dnsmasq.c:1436
|
||||
#: dnsmasq.c:1396
|
||||
#, fuzzy, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr "intet søke direktiv funnet i %s"
|
||||
@@ -1906,7 +1906,7 @@ msgstr ""
|
||||
msgid "log failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: log.c:472
|
||||
#: log.c:469
|
||||
msgid "FAILED to start up"
|
||||
msgstr "FEILET å starte opp"
|
||||
|
||||
@@ -2165,36 +2165,45 @@ msgstr ""
|
||||
msgid "%d addresses %s"
|
||||
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
|
||||
msgid "failed to create inotify: %s"
|
||||
msgstr "feilet å lese %s: %s"
|
||||
|
||||
#: inotify.c:60
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot cannonicalise resolv-file %s: %s"
|
||||
msgstr "kan ikke åpne eller lage leie fil: %s"
|
||||
#: inotify.c:105
|
||||
#, c-format
|
||||
msgid "too many symlinks following %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:72
|
||||
#: inotify.c:121
|
||||
#, c-format
|
||||
msgid "directory %s for resolv-file is missing, cannot poll"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:75 inotify.c:112
|
||||
#: inotify.c:125 inotify.c:162
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to create inotify for %s: %s"
|
||||
msgstr "feilet å lage lytte socket: %s"
|
||||
|
||||
#: inotify.c:97
|
||||
#: inotify.c:147
|
||||
#, fuzzy, c-format
|
||||
msgid "bad dynamic directory %s: %s"
|
||||
msgstr "kan ikke lese %s: %s"
|
||||
|
||||
#: inotify.c:197
|
||||
#: inotify.c:247
|
||||
#, c-format
|
||||
msgid "inotify, new or changed file %s"
|
||||
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."
|
||||
#~ msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
|
||||
|
||||
|
||||
196
po/pl.po
196
po/pl.po
@@ -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
|
||||
@@ -1082,34 +1077,34 @@ msgstr "spróbuj: -w"
|
||||
msgid "bad command line options: %s"
|
||||
msgstr "nieprawidłowa opcja w linii poleceń %s"
|
||||
|
||||
#: option.c:4544
|
||||
#: option.c:4541
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %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."
|
||||
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."
|
||||
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
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr "nie udało się odczytać %s: %s"
|
||||
|
||||
#: option.c:4602
|
||||
#: option.c:4599
|
||||
#, c-format
|
||||
msgid "no search directive found in %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"
|
||||
msgstr "w przypadku używania --dhcp-fqdn trzeba wskazać domyślną domenę"
|
||||
|
||||
#: option.c:4632
|
||||
#: option.c:4629
|
||||
msgid "syntax check OK"
|
||||
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"
|
||||
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"
|
||||
msgstr "Ignorowanie zapytań z sieci pozalokalnych."
|
||||
|
||||
#: forward.c:2256
|
||||
#: forward.c:2286
|
||||
#, c-format
|
||||
msgid "Maximum number of concurrent DNS queries reached (max: %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
|
||||
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"
|
||||
@@ -1297,7 +1287,7 @@ msgstr "błąd podczas tworzenia listy interfejsów sieciowych: %s"
|
||||
msgid "unknown interface %s"
|
||||
msgstr "nieznany interfejs %s"
|
||||
|
||||
#: dnsmasq.c:354 dnsmasq.c:1037
|
||||
#: dnsmasq.c:354 dnsmasq.c:997
|
||||
#, c-format
|
||||
msgid "DBus error: %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"
|
||||
|
||||
#: 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"
|
||||
@@ -1397,121 +1386,121 @@ msgstr "anonsowanie rutera IPv6 włączone"
|
||||
msgid "DHCP, sockets bound exclusively to interface %s"
|
||||
msgstr "DHCP, gniazda dowiązane na wyłączność interfejsowi %s"
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
msgid "root is "
|
||||
msgstr "z głównym katalogiem w "
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
msgid "enabled"
|
||||
msgstr "włączony"
|
||||
|
||||
#: dnsmasq.c:810
|
||||
#: dnsmasq.c:806
|
||||
msgid "secure mode"
|
||||
msgstr "w trybie bezpiecznym"
|
||||
|
||||
#: dnsmasq.c:813
|
||||
#: dnsmasq.c:809
|
||||
#, c-format
|
||||
msgid "warning: %s inaccessible"
|
||||
msgstr ""
|
||||
msgstr "uwaga: %s niedostępny"
|
||||
|
||||
#: dnsmasq.c:817
|
||||
#, fuzzy, c-format
|
||||
#: dnsmasq.c:813
|
||||
#, 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:843
|
||||
#: dnsmasq.c:839
|
||||
#, c-format
|
||||
msgid "restricting maximum simultaneous TFTP transfers to %d"
|
||||
msgstr "ograniczam ilość jednoczesnych przesłań TFTP do %d"
|
||||
|
||||
#: dnsmasq.c:1039
|
||||
#: dnsmasq.c:999
|
||||
msgid "connected to system DBus"
|
||||
msgstr "podłączono do DBus-a"
|
||||
|
||||
#: dnsmasq.c:1189
|
||||
#: dnsmasq.c:1149
|
||||
#, c-format
|
||||
msgid "cannot fork into background: %s"
|
||||
msgstr "nie potrafię przełączyć się do pracy w tle: %s"
|
||||
|
||||
#: dnsmasq.c:1192
|
||||
#: dnsmasq.c:1152
|
||||
#, c-format
|
||||
msgid "failed to create helper: %s"
|
||||
msgstr "nie udało się utworzyć procesu pomocniczego: %s"
|
||||
|
||||
#: dnsmasq.c:1195
|
||||
#: dnsmasq.c:1155
|
||||
#, c-format
|
||||
msgid "setting capabilities failed: %s"
|
||||
msgstr "nie powiodło się ustawianie ograniczeń (capabilities): %s"
|
||||
|
||||
#: dnsmasq.c:1198
|
||||
#: dnsmasq.c:1158
|
||||
#, c-format
|
||||
msgid "failed to change user-id to %s: %s"
|
||||
msgstr "nie udało się zmienić użytkownika procesu na %s: %s"
|
||||
|
||||
#: dnsmasq.c:1201
|
||||
#: dnsmasq.c:1161
|
||||
#, c-format
|
||||
msgid "failed to change group-id to %s: %s"
|
||||
msgstr "nie udało się zmienić grupy procesu na %s: %s"
|
||||
|
||||
#: dnsmasq.c:1204
|
||||
#: dnsmasq.c:1164
|
||||
#, c-format
|
||||
msgid "failed to open pidfile %s: %s"
|
||||
msgstr "nie udało się otworzyć pliku z PID-em %s: %s"
|
||||
|
||||
#: dnsmasq.c:1207
|
||||
#: dnsmasq.c:1167
|
||||
#, c-format
|
||||
msgid "cannot open log %s: %s"
|
||||
msgstr "nie udało się otworzyć logu %s: %s"
|
||||
|
||||
#: dnsmasq.c:1210
|
||||
#: dnsmasq.c:1170
|
||||
#, c-format
|
||||
msgid "failed to load Lua script: %s"
|
||||
msgstr "nie udało się wczytać skryptu Lua: %s"
|
||||
|
||||
#: dnsmasq.c:1213
|
||||
#: dnsmasq.c:1173
|
||||
#, c-format
|
||||
msgid "TFTP directory %s inaccessible: %s"
|
||||
msgstr "katalog TFTP %s nie jest dostępny: %s"
|
||||
|
||||
#: dnsmasq.c:1216
|
||||
#, fuzzy, c-format
|
||||
#: dnsmasq.c:1176
|
||||
#, 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:1237
|
||||
#: dnsmasq.c:1197
|
||||
msgid "now checking DNSSEC signature timestamps"
|
||||
msgstr "trwa sprawdzanie sygnatur czasowych podpisów DNSSEC"
|
||||
|
||||
#: dnsmasq.c:1304
|
||||
#: dnsmasq.c:1264
|
||||
#, c-format
|
||||
msgid "script process killed by signal %d"
|
||||
msgstr "skrypt został zabity sygnałem %d"
|
||||
|
||||
#: dnsmasq.c:1308
|
||||
#: dnsmasq.c:1268
|
||||
#, c-format
|
||||
msgid "script process exited with status %d"
|
||||
msgstr "skrypt zakończył się z kodem powrotu %d"
|
||||
|
||||
#: dnsmasq.c:1312
|
||||
#: dnsmasq.c:1272
|
||||
#, c-format
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr "nie udało się uruchomić %s: %s"
|
||||
|
||||
#: dnsmasq.c:1367
|
||||
#: dnsmasq.c:1327
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr "zakończyłem działanie z powodu odebrania SIGTERM"
|
||||
|
||||
#: dnsmasq.c:1395
|
||||
#: dnsmasq.c:1355
|
||||
#, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr "brak dostępu do %s: %s"
|
||||
|
||||
#: dnsmasq.c:1425
|
||||
#: dnsmasq.c:1385
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr "czytanie %s"
|
||||
|
||||
#: dnsmasq.c:1436
|
||||
#: dnsmasq.c:1396
|
||||
#, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
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
|
||||
#, 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"
|
||||
@@ -1866,7 +1855,7 @@ msgstr "przepełnienie: stracono %d wpisów do logów"
|
||||
msgid "log failed: %s"
|
||||
msgstr "nie udało się zapisać komunikatów do %s"
|
||||
|
||||
#: log.c:472
|
||||
#: log.c:469
|
||||
msgid "FAILED to start up"
|
||||
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"
|
||||
|
||||
#: 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
|
||||
@@ -2121,35 +2110,44 @@ msgstr "uwaga: DIOCR%sADDRS: %s"
|
||||
msgid "%d addresses %s"
|
||||
msgstr "%d adresów %s"
|
||||
|
||||
#: inotify.c:46
|
||||
#, 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
|
||||
#: inotify.c:59
|
||||
#, c-format
|
||||
msgid "directory %s for resolv-file is missing, cannot poll"
|
||||
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"
|
||||
msgid "cannot access path %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
|
||||
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"
|
||||
#~ msgstr "Rozsyłanie wielokrotne anonsów rutera (RA)"
|
||||
|
||||
91
po/pt_BR.po
91
po/pt_BR.po
@@ -1068,34 +1068,34 @@ msgstr ""
|
||||
msgid "bad command line options: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4544
|
||||
#: option.c:4541
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4572
|
||||
#: option.c:4569
|
||||
msgid "only one resolv.conf file allowed in no-poll mode."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4582
|
||||
#: option.c:4579
|
||||
msgid "must have exactly one resolv.conf to read domain from."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4585 network.c:1507 dhcp.c:777
|
||||
#: option.c:4582 network.c:1507 dhcp.c:777
|
||||
#, c-format
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4602
|
||||
#: option.c:4599
|
||||
#, c-format
|
||||
msgid "no search directive found in %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4623
|
||||
#: option.c:4620
|
||||
msgid "there must be a default domain when --dhcp-fqdn is set"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4632
|
||||
#: option.c:4629
|
||||
msgid "syntax check OK"
|
||||
msgstr ""
|
||||
|
||||
@@ -1118,11 +1118,11 @@ msgstr ""
|
||||
msgid "possible DNS-rebind attack detected: %s"
|
||||
msgstr ""
|
||||
|
||||
#: forward.c:1209 forward.c:1785
|
||||
#: forward.c:1209 forward.c:1815
|
||||
msgid "Ignoring query from non-local network"
|
||||
msgstr ""
|
||||
|
||||
#: forward.c:2256
|
||||
#: forward.c:2286
|
||||
#, c-format
|
||||
msgid "Maximum number of concurrent DNS queries reached (max: %d)"
|
||||
msgstr ""
|
||||
@@ -1278,7 +1278,7 @@ msgstr ""
|
||||
msgid "unknown interface %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:354 dnsmasq.c:1037
|
||||
#: dnsmasq.c:354 dnsmasq.c:997
|
||||
#, c-format
|
||||
msgid "DBus error: %s"
|
||||
msgstr ""
|
||||
@@ -1377,121 +1377,121 @@ msgstr ""
|
||||
msgid "DHCP, sockets bound exclusively to interface %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
msgid "root is "
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
msgid "enabled"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:810
|
||||
#: dnsmasq.c:806
|
||||
msgid "secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:813
|
||||
#: dnsmasq.c:809
|
||||
#, c-format
|
||||
msgid "warning: %s inaccessible"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:817
|
||||
#: dnsmasq.c:813
|
||||
#, c-format
|
||||
msgid "warning: TFTP directory %s inaccessible"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:843
|
||||
#: dnsmasq.c:839
|
||||
#, c-format
|
||||
msgid "restricting maximum simultaneous TFTP transfers to %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1039
|
||||
#: dnsmasq.c:999
|
||||
msgid "connected to system DBus"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1189
|
||||
#: dnsmasq.c:1149
|
||||
#, c-format
|
||||
msgid "cannot fork into background: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1192
|
||||
#: dnsmasq.c:1152
|
||||
#, c-format
|
||||
msgid "failed to create helper: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1195
|
||||
#: dnsmasq.c:1155
|
||||
#, c-format
|
||||
msgid "setting capabilities failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1198
|
||||
#: dnsmasq.c:1158
|
||||
#, c-format
|
||||
msgid "failed to change user-id to %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1201
|
||||
#: dnsmasq.c:1161
|
||||
#, c-format
|
||||
msgid "failed to change group-id to %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1204
|
||||
#: dnsmasq.c:1164
|
||||
#, c-format
|
||||
msgid "failed to open pidfile %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1207
|
||||
#: dnsmasq.c:1167
|
||||
#, c-format
|
||||
msgid "cannot open log %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1210
|
||||
#: dnsmasq.c:1170
|
||||
#, c-format
|
||||
msgid "failed to load Lua script: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1213
|
||||
#: dnsmasq.c:1173
|
||||
#, c-format
|
||||
msgid "TFTP directory %s inaccessible: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1216
|
||||
#: dnsmasq.c:1176
|
||||
#, c-format
|
||||
msgid "cannot create timestamp file %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1237
|
||||
#: dnsmasq.c:1197
|
||||
msgid "now checking DNSSEC signature timestamps"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1304
|
||||
#: dnsmasq.c:1264
|
||||
#, c-format
|
||||
msgid "script process killed by signal %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1308
|
||||
#: dnsmasq.c:1268
|
||||
#, c-format
|
||||
msgid "script process exited with status %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1312
|
||||
#: dnsmasq.c:1272
|
||||
#, c-format
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1367
|
||||
#: dnsmasq.c:1327
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1395
|
||||
#: dnsmasq.c:1355
|
||||
#, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1425
|
||||
#: dnsmasq.c:1385
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1436
|
||||
#: dnsmasq.c:1396
|
||||
#, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr ""
|
||||
@@ -1846,7 +1846,7 @@ msgstr ""
|
||||
msgid "log failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: log.c:472
|
||||
#: log.c:469
|
||||
msgid "FAILED to start up"
|
||||
msgstr ""
|
||||
|
||||
@@ -2101,32 +2101,37 @@ msgstr ""
|
||||
msgid "%d addresses %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:46
|
||||
#: inotify.c:59
|
||||
#, c-format
|
||||
msgid "cannot access path %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:92
|
||||
#, c-format
|
||||
msgid "failed to create inotify: %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:60
|
||||
#: inotify.c:105
|
||||
#, c-format
|
||||
msgid "cannot cannonicalise resolv-file %s: %s"
|
||||
msgid "too many symlinks following %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:72
|
||||
#: inotify.c:121
|
||||
#, c-format
|
||||
msgid "directory %s for resolv-file is missing, cannot poll"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:75 inotify.c:112
|
||||
#: inotify.c:125 inotify.c:162
|
||||
#, c-format
|
||||
msgid "failed to create inotify for %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:97
|
||||
#: inotify.c:147
|
||||
#, c-format
|
||||
msgid "bad dynamic directory %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:197
|
||||
#: inotify.c:247
|
||||
#, c-format
|
||||
msgid "inotify, new or changed file %s"
|
||||
msgstr ""
|
||||
|
||||
99
po/ro.po
99
po/ro.po
@@ -1119,34 +1119,34 @@ msgstr ""
|
||||
msgid "bad command line options: %s"
|
||||
msgstr "opţiuni în linie de comandă invalide: %s."
|
||||
|
||||
#: option.c:4544
|
||||
#: option.c:4541
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %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."
|
||||
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."
|
||||
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
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr "nu pot citi %s: %s"
|
||||
|
||||
#: option.c:4602
|
||||
#: option.c:4599
|
||||
#, c-format
|
||||
msgid "no search directive found in %s"
|
||||
msgstr "nu s-a găsit nici un criteriu de căutare în %s"
|
||||
|
||||
#: option.c:4623
|
||||
#: option.c:4620
|
||||
msgid "there must be a default domain when --dhcp-fqdn is set"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:4632
|
||||
#: option.c:4629
|
||||
msgid "syntax check OK"
|
||||
msgstr ""
|
||||
|
||||
@@ -1169,11 +1169,11 @@ msgstr "serverul DNS %s refuză interogările recursive"
|
||||
msgid "possible DNS-rebind attack detected: %s"
|
||||
msgstr ""
|
||||
|
||||
#: forward.c:1209 forward.c:1785
|
||||
#: forward.c:1209 forward.c:1815
|
||||
msgid "Ignoring query from non-local network"
|
||||
msgstr ""
|
||||
|
||||
#: forward.c:2256
|
||||
#: forward.c:2286
|
||||
#, fuzzy, c-format
|
||||
msgid "Maximum number of concurrent DNS queries reached (max: %d)"
|
||||
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"
|
||||
msgstr "interfaţă necunoscută %s"
|
||||
|
||||
#: dnsmasq.c:354 dnsmasq.c:1037
|
||||
#: dnsmasq.c:354 dnsmasq.c:997
|
||||
#, c-format
|
||||
msgid "DBus error: %s"
|
||||
msgstr "eroare DBus: %s"
|
||||
@@ -1435,124 +1435,124 @@ msgstr ""
|
||||
msgid "DHCP, sockets bound exclusively to interface %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
msgid "root is "
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:808
|
||||
#: dnsmasq.c:804
|
||||
#, fuzzy
|
||||
msgid "enabled"
|
||||
msgstr "dezactivat"
|
||||
|
||||
#: dnsmasq.c:810
|
||||
#: dnsmasq.c:806
|
||||
msgid "secure mode"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:813
|
||||
#: dnsmasq.c:809
|
||||
#, c-format
|
||||
msgid "warning: %s inaccessible"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:817
|
||||
#: dnsmasq.c:813
|
||||
#, c-format
|
||||
msgid "warning: TFTP directory %s inaccessible"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:843
|
||||
#: dnsmasq.c:839
|
||||
#, c-format
|
||||
msgid "restricting maximum simultaneous TFTP transfers to %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1039
|
||||
#: dnsmasq.c:999
|
||||
msgid "connected to system DBus"
|
||||
msgstr "magistrala sistem Dbus conectată"
|
||||
|
||||
#: dnsmasq.c:1189
|
||||
#: dnsmasq.c:1149
|
||||
#, c-format
|
||||
msgid "cannot fork into background: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1192
|
||||
#: dnsmasq.c:1152
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to create helper: %s"
|
||||
msgstr "nu pot citi %s: %s"
|
||||
|
||||
#: dnsmasq.c:1195
|
||||
#: dnsmasq.c:1155
|
||||
#, c-format
|
||||
msgid "setting capabilities failed: %s"
|
||||
msgstr ""
|
||||
|
||||
# for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
|
||||
#: dnsmasq.c:1198
|
||||
#: dnsmasq.c:1158
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to change user-id to %s: %s"
|
||||
msgstr "încărcarea numelor din %s: %s a eşuat"
|
||||
|
||||
# for compatibility purposes the letters â, ă, ş, ţ and î can be written as their look-alike correspondent.
|
||||
#: dnsmasq.c:1201
|
||||
#: dnsmasq.c:1161
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to change group-id to %s: %s"
|
||||
msgstr "încărcarea numelor din %s: %s a eşuat"
|
||||
|
||||
#: dnsmasq.c:1204
|
||||
#: dnsmasq.c:1164
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to open pidfile %s: %s"
|
||||
msgstr "nu pot citi %s: %s"
|
||||
|
||||
#: dnsmasq.c:1207
|
||||
#: dnsmasq.c:1167
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot open log %s: %s"
|
||||
msgstr "nu pot deschide %s:%s"
|
||||
|
||||
#: dnsmasq.c:1210
|
||||
#: dnsmasq.c:1170
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to load Lua script: %s"
|
||||
msgstr "nu pot încărca %s: %s"
|
||||
|
||||
#: dnsmasq.c:1213
|
||||
#: dnsmasq.c:1173
|
||||
#, c-format
|
||||
msgid "TFTP directory %s inaccessible: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1216
|
||||
#: dnsmasq.c:1176
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot create timestamp file %s: %s"
|
||||
msgstr "nu pot creea sau deschide fişierul cu împrumuturi: %s"
|
||||
|
||||
#: dnsmasq.c:1237
|
||||
#: dnsmasq.c:1197
|
||||
msgid "now checking DNSSEC signature timestamps"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1304
|
||||
#: dnsmasq.c:1264
|
||||
#, c-format
|
||||
msgid "script process killed by signal %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1308
|
||||
#: dnsmasq.c:1268
|
||||
#, c-format
|
||||
msgid "script process exited with status %d"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:1312
|
||||
#: dnsmasq.c:1272
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr "accesarea serverului %s a eşuat: %s"
|
||||
|
||||
#: dnsmasq.c:1367
|
||||
#: dnsmasq.c:1327
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr "am primit SIGTERM, am terminat"
|
||||
|
||||
#: dnsmasq.c:1395
|
||||
#: dnsmasq.c:1355
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr "accesarea serverului %s a eşuat: %s"
|
||||
|
||||
#: dnsmasq.c:1425
|
||||
#: dnsmasq.c:1385
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr "citesc %s"
|
||||
|
||||
#: dnsmasq.c:1436
|
||||
#: dnsmasq.c:1396
|
||||
#, fuzzy, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr "nu s-a găsit nici un criteriu de căutare în %s"
|
||||
@@ -1907,7 +1907,7 @@ msgstr ""
|
||||
msgid "log failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: log.c:472
|
||||
#: log.c:469
|
||||
msgid "FAILED to start up"
|
||||
msgstr "pornirea A EŞUAT"
|
||||
|
||||
@@ -2166,36 +2166,45 @@ msgstr ""
|
||||
msgid "%d addresses %s"
|
||||
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
|
||||
msgid "failed to create inotify: %s"
|
||||
msgstr "nu pot citi %s: %s"
|
||||
|
||||
#: inotify.c:60
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot cannonicalise resolv-file %s: %s"
|
||||
msgstr "nu pot creea sau deschide fişierul cu împrumuturi: %s"
|
||||
#: inotify.c:105
|
||||
#, c-format
|
||||
msgid "too many symlinks following %s"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:72
|
||||
#: inotify.c:121
|
||||
#, c-format
|
||||
msgid "directory %s for resolv-file is missing, cannot poll"
|
||||
msgstr ""
|
||||
|
||||
#: inotify.c:75 inotify.c:112
|
||||
#: inotify.c:125 inotify.c:162
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to create inotify for %s: %s"
|
||||
msgstr "creearea socket-ului de ascultare a eşuat: %s"
|
||||
|
||||
#: inotify.c:97
|
||||
#: inotify.c:147
|
||||
#, fuzzy, c-format
|
||||
msgid "bad dynamic directory %s: %s"
|
||||
msgstr "nu pot citi %s: %s"
|
||||
|
||||
#: inotify.c:197
|
||||
#: inotify.c:247
|
||||
#, c-format
|
||||
msgid "inotify, new or changed file %s"
|
||||
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."
|
||||
#~ msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
|
||||
|
||||
|
||||
19
src/dbus.c
19
src/dbus.c
@@ -749,8 +749,7 @@ char *dbus_init(void)
|
||||
}
|
||||
|
||||
|
||||
void set_dbus_listeners(int *maxfdp,
|
||||
fd_set *rset, fd_set *wset, fd_set *eset)
|
||||
void set_dbus_listeners(void)
|
||||
{
|
||||
struct watch *w;
|
||||
|
||||
@@ -760,19 +759,17 @@ void set_dbus_listeners(int *maxfdp,
|
||||
unsigned int flags = dbus_watch_get_flags(w->watch);
|
||||
int fd = dbus_watch_get_unix_fd(w->watch);
|
||||
|
||||
bump_maxfd(fd, maxfdp);
|
||||
|
||||
if (flags & DBUS_WATCH_READABLE)
|
||||
FD_SET(fd, rset);
|
||||
poll_listen(fd, POLLIN);
|
||||
|
||||
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;
|
||||
struct watch *w;
|
||||
@@ -783,13 +780,13 @@ void check_dbus_listeners(fd_set *rset, fd_set *wset, fd_set *eset)
|
||||
unsigned int flags = 0;
|
||||
int fd = dbus_watch_get_unix_fd(w->watch);
|
||||
|
||||
if (FD_ISSET(fd, rset))
|
||||
if (poll_check(fd, POLLIN))
|
||||
flags |= DBUS_WATCH_READABLE;
|
||||
|
||||
if (FD_ISSET(fd, wset))
|
||||
if (poll_check(fd, POLLOUT))
|
||||
flags |= DBUS_WATCH_WRITABLE;
|
||||
|
||||
if (FD_ISSET(fd, eset))
|
||||
if (poll_check(fd, POLLERR))
|
||||
flags |= DBUS_WATCH_ERROR;
|
||||
|
||||
if (flags != 0)
|
||||
|
||||
226
src/dnsmasq.c
226
src/dnsmasq.c
@@ -24,8 +24,8 @@ struct daemon *daemon;
|
||||
static volatile pid_t pid = 0;
|
||||
static volatile int pipewrite;
|
||||
|
||||
static int set_dns_listeners(time_t now, fd_set *set, int *maxfdp);
|
||||
static void check_dns_listeners(fd_set *set, time_t now);
|
||||
static int set_dns_listeners(time_t now);
|
||||
static void check_dns_listeners(time_t now);
|
||||
static void sig_handler(int sig);
|
||||
static void async_event(int pipe, time_t now);
|
||||
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))
|
||||
{
|
||||
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",
|
||||
daemon->tftp_prefix ? _("root is ") : _("enabled"),
|
||||
@@ -862,88 +858,58 @@ int main (int argc, char **argv)
|
||||
|
||||
while (1)
|
||||
{
|
||||
int maxfd = -1;
|
||||
struct timeval t, *tp = NULL;
|
||||
fd_set rset, wset, eset;
|
||||
int t, timeout = -1;
|
||||
|
||||
FD_ZERO(&rset);
|
||||
FD_ZERO(&wset);
|
||||
FD_ZERO(&eset);
|
||||
poll_reset();
|
||||
|
||||
/* 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
|
||||
listening for queries */
|
||||
if ((t.tv_sec = set_dns_listeners(now, &rset, &maxfd)) != 0)
|
||||
{
|
||||
t.tv_usec = 0;
|
||||
tp = &t;
|
||||
}
|
||||
if ((t = set_dns_listeners(now)) != 0)
|
||||
timeout = t * 1000;
|
||||
|
||||
/* Whilst polling for the dbus, or doing a tftp transfer, wake every quarter second */
|
||||
if (daemon->tftp_trans ||
|
||||
(option_bool(OPT_DBUS) && !daemon->dbus))
|
||||
{
|
||||
t.tv_sec = 0;
|
||||
t.tv_usec = 250000;
|
||||
tp = &t;
|
||||
}
|
||||
timeout = 250;
|
||||
|
||||
/* Wake every second whilst waiting for DAD to complete */
|
||||
else if (is_dad_listeners())
|
||||
{
|
||||
t.tv_sec = 1;
|
||||
t.tv_usec = 0;
|
||||
tp = &t;
|
||||
}
|
||||
timeout = 1000;
|
||||
|
||||
#ifdef HAVE_DBUS
|
||||
set_dbus_listeners(&maxfd, &rset, &wset, &eset);
|
||||
set_dbus_listeners();
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_DHCP
|
||||
if (daemon->dhcp || daemon->relay4)
|
||||
{
|
||||
FD_SET(daemon->dhcpfd, &rset);
|
||||
bump_maxfd(daemon->dhcpfd, &maxfd);
|
||||
poll_listen(daemon->dhcpfd, POLLIN);
|
||||
if (daemon->pxefd != -1)
|
||||
{
|
||||
FD_SET(daemon->pxefd, &rset);
|
||||
bump_maxfd(daemon->pxefd, &maxfd);
|
||||
}
|
||||
poll_listen(daemon->pxefd, POLLIN);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_DHCP6
|
||||
if (daemon->doing_dhcp6 || daemon->relay6)
|
||||
{
|
||||
FD_SET(daemon->dhcp6fd, &rset);
|
||||
bump_maxfd(daemon->dhcp6fd, &maxfd);
|
||||
}
|
||||
|
||||
poll_listen(daemon->dhcp6fd, POLLIN);
|
||||
|
||||
if (daemon->doing_ra)
|
||||
{
|
||||
FD_SET(daemon->icmp6fd, &rset);
|
||||
bump_maxfd(daemon->icmp6fd, &maxfd);
|
||||
}
|
||||
poll_listen(daemon->icmp6fd, POLLIN);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_INOTIFY
|
||||
if (daemon->inotifyfd != -1)
|
||||
{
|
||||
FD_SET(daemon->inotifyfd, &rset);
|
||||
bump_maxfd(daemon->inotifyfd, &maxfd);
|
||||
}
|
||||
poll_listen(daemon->inotifyfd, POLLIN);
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_LINUX_NETWORK)
|
||||
FD_SET(daemon->netlinkfd, &rset);
|
||||
bump_maxfd(daemon->netlinkfd, &maxfd);
|
||||
poll_listen(daemon->netlinkfd, POLLIN);
|
||||
#elif defined(HAVE_BSD_NETWORK)
|
||||
FD_SET(daemon->routefd, &rset);
|
||||
bump_maxfd(daemon->routefd, &maxfd);
|
||||
poll_listen(daemon->routefd, POLLIN);
|
||||
#endif
|
||||
|
||||
FD_SET(piperead, &rset);
|
||||
bump_maxfd(piperead, &maxfd);
|
||||
poll_listen(piperead, POLLIN);
|
||||
|
||||
#ifdef HAVE_DHCP
|
||||
# ifdef HAVE_SCRIPT
|
||||
@@ -954,10 +920,7 @@ int main (int argc, char **argv)
|
||||
# endif
|
||||
|
||||
if (!helper_buf_empty())
|
||||
{
|
||||
FD_SET(daemon->helperfd, &wset);
|
||||
bump_maxfd(daemon->helperfd, &maxfd);
|
||||
}
|
||||
poll_listen(daemon->helperfd, POLLOUT);
|
||||
# else
|
||||
/* need this for other side-effects */
|
||||
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
|
||||
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();
|
||||
|
||||
check_log_writer(&wset);
|
||||
check_log_writer(0);
|
||||
|
||||
/* prime. */
|
||||
enumerate_interfaces(1);
|
||||
@@ -997,15 +957,15 @@ int main (int argc, char **argv)
|
||||
}
|
||||
|
||||
#if defined(HAVE_LINUX_NETWORK)
|
||||
if (FD_ISSET(daemon->netlinkfd, &rset))
|
||||
if (poll_check(daemon->netlinkfd, POLLIN))
|
||||
netlink_multicast();
|
||||
#elif defined(HAVE_BSD_NETWORK)
|
||||
if (FD_ISSET(daemon->routefd, &rset))
|
||||
if (poll_check(daemon->routefd, POLLIN))
|
||||
route_sock();
|
||||
#endif
|
||||
|
||||
#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))
|
||||
poll_resolv(1, 1, now);
|
||||
@@ -1025,7 +985,7 @@ int main (int argc, char **argv)
|
||||
}
|
||||
#endif
|
||||
|
||||
if (FD_ISSET(piperead, &rset))
|
||||
if (poll_check(piperead, POLLIN))
|
||||
async_event(piperead, now);
|
||||
|
||||
#ifdef HAVE_DBUS
|
||||
@@ -1038,34 +998,34 @@ int main (int argc, char **argv)
|
||||
if (daemon->dbus)
|
||||
my_syslog(LOG_INFO, _("connected to system DBus"));
|
||||
}
|
||||
check_dbus_listeners(&rset, &wset, &eset);
|
||||
check_dbus_listeners();
|
||||
#endif
|
||||
|
||||
check_dns_listeners(&rset, now);
|
||||
check_dns_listeners(now);
|
||||
|
||||
#ifdef HAVE_TFTP
|
||||
check_tftp_listeners(&rset, now);
|
||||
check_tftp_listeners(now);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_DHCP
|
||||
if (daemon->dhcp || daemon->relay4)
|
||||
{
|
||||
if (FD_ISSET(daemon->dhcpfd, &rset))
|
||||
if (poll_check(daemon->dhcpfd, POLLIN))
|
||||
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);
|
||||
}
|
||||
|
||||
#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);
|
||||
|
||||
if (daemon->doing_ra && FD_ISSET(daemon->icmp6fd, &rset))
|
||||
if (daemon->doing_ra && poll_check(daemon->icmp6fd, POLLIN))
|
||||
icmp6_packet(now);
|
||||
#endif
|
||||
|
||||
# ifdef HAVE_SCRIPT
|
||||
if (daemon->helperfd != -1 && FD_ISSET(daemon->helperfd, &wset))
|
||||
if (daemon->helperfd != -1 && poll_check(daemon->helperfd, POLLIN))
|
||||
helper_write();
|
||||
# endif
|
||||
#endif
|
||||
@@ -1361,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);
|
||||
|
||||
@@ -1470,7 +1439,7 @@ void clear_cache_and_reload(time_t now)
|
||||
#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 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)
|
||||
{
|
||||
tftp++;
|
||||
FD_SET(transfer->sockfd, set);
|
||||
bump_maxfd(transfer->sockfd, maxfdp);
|
||||
poll_listen(transfer->sockfd, POLLIN);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1492,45 +1460,32 @@ static int set_dns_listeners(time_t now, fd_set *set, int *maxfdp)
|
||||
get_new_frec(now, &wait, 0);
|
||||
|
||||
for (serverfdp = daemon->sfds; serverfdp; serverfdp = serverfdp->next)
|
||||
{
|
||||
FD_SET(serverfdp->fd, set);
|
||||
bump_maxfd(serverfdp->fd, maxfdp);
|
||||
}
|
||||
|
||||
poll_listen(serverfdp->fd, POLLIN);
|
||||
|
||||
if (daemon->port != 0 && !daemon->osport)
|
||||
for (i = 0; i < RANDOM_SOCKS; i++)
|
||||
if (daemon->randomsocks[i].refcount != 0)
|
||||
{
|
||||
FD_SET(daemon->randomsocks[i].fd, set);
|
||||
bump_maxfd(daemon->randomsocks[i].fd, maxfdp);
|
||||
}
|
||||
|
||||
poll_listen(daemon->randomsocks[i].fd, POLLIN);
|
||||
|
||||
for (listener = daemon->listeners; listener; listener = listener->next)
|
||||
{
|
||||
/* only listen for queries if we have resources */
|
||||
if (listener->fd != -1 && wait == 0)
|
||||
{
|
||||
FD_SET(listener->fd, set);
|
||||
bump_maxfd(listener->fd, maxfdp);
|
||||
}
|
||||
|
||||
poll_listen(listener->fd, POLLIN);
|
||||
|
||||
/* death of a child goes through the select loop, so
|
||||
we don't need to explicitly arrange to wake up here */
|
||||
if (listener->tcpfd != -1)
|
||||
for (i = 0; i < MAX_PROCS; i++)
|
||||
if (daemon->tcp_pids[i] == 0)
|
||||
{
|
||||
FD_SET(listener->tcpfd, set);
|
||||
bump_maxfd(listener->tcpfd, maxfdp);
|
||||
poll_listen(listener->tcpfd, POLLIN);
|
||||
break;
|
||||
}
|
||||
|
||||
#ifdef HAVE_TFTP
|
||||
if (tftp <= daemon->tftp_max && listener->tftpfd != -1)
|
||||
{
|
||||
FD_SET(listener->tftpfd, set);
|
||||
bump_maxfd(listener->tftpfd, maxfdp);
|
||||
}
|
||||
poll_listen(listener->tftpfd, POLLIN);
|
||||
#endif
|
||||
|
||||
}
|
||||
@@ -1538,33 +1493,33 @@ static int set_dns_listeners(time_t now, fd_set *set, int *maxfdp)
|
||||
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 listener *listener;
|
||||
int i;
|
||||
|
||||
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);
|
||||
|
||||
if (daemon->port != 0 && !daemon->osport)
|
||||
for (i = 0; i < RANDOM_SOCKS; i++)
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
#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);
|
||||
#endif
|
||||
|
||||
if (listener->tcpfd != -1 && FD_ISSET(listener->tcpfd, set))
|
||||
if (listener->tcpfd != -1 && poll_check(listener->tcpfd, POLLIN))
|
||||
{
|
||||
int confd, client_ok = 1;
|
||||
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...)
|
||||
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 {
|
||||
struct ip ip;
|
||||
struct icmp icmp;
|
||||
} packet;
|
||||
unsigned short id = rand16();
|
||||
unsigned int i, j;
|
||||
unsigned int i, j, timeout_count;
|
||||
int gotreply = 0;
|
||||
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,
|
||||
(struct sockaddr *)&saddr, sizeof(saddr))));
|
||||
|
||||
for (now = start = dnsmasq_time();
|
||||
difftime(now, start) < (float)PING_WAIT;)
|
||||
for (now = start = dnsmasq_time(), timeout_count = 0;
|
||||
(difftime(now, start) < (float)PING_WAIT) && (timeout_count < PING_WAIT * 4);)
|
||||
{
|
||||
struct timeval tv;
|
||||
fd_set rset, wset;
|
||||
struct sockaddr_in faddr;
|
||||
int maxfd = fd;
|
||||
socklen_t len = sizeof(faddr);
|
||||
|
||||
tv.tv_usec = 250000;
|
||||
tv.tv_sec = 0;
|
||||
|
||||
FD_ZERO(&rset);
|
||||
FD_ZERO(&wset);
|
||||
FD_SET(fd, &rset);
|
||||
set_dns_listeners(now, &rset, &maxfd);
|
||||
set_log_writer(&wset, &maxfd);
|
||||
poll_reset();
|
||||
poll_listen(fd, POLLIN);
|
||||
set_dns_listeners(now);
|
||||
set_log_writer();
|
||||
|
||||
#ifdef HAVE_DHCP6
|
||||
if (daemon->doing_ra)
|
||||
{
|
||||
FD_SET(daemon->icmp6fd, &rset);
|
||||
bump_maxfd(daemon->icmp6fd, &maxfd);
|
||||
}
|
||||
poll_listen(daemon->icmp6fd, POLLIN);
|
||||
#endif
|
||||
|
||||
if (select(maxfd+1, &rset, &wset, NULL, &tv) < 0)
|
||||
{
|
||||
FD_ZERO(&rset);
|
||||
FD_ZERO(&wset);
|
||||
}
|
||||
rc = do_poll(250);
|
||||
|
||||
if (rc < 0)
|
||||
continue;
|
||||
else if (rc == 0)
|
||||
timeout_count++;
|
||||
|
||||
now = dnsmasq_time();
|
||||
|
||||
check_log_writer(&wset);
|
||||
check_dns_listeners(&rset, now);
|
||||
check_log_writer(0);
|
||||
check_dns_listeners(now);
|
||||
|
||||
#ifdef HAVE_DHCP6
|
||||
if (daemon->doing_ra && FD_ISSET(daemon->icmp6fd, &rset))
|
||||
if (daemon->doing_ra && poll_check(daemon->icmp6fd, POLLIN))
|
||||
icmp6_packet(now);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_TFTP
|
||||
check_tftp_listeners(&rset, now);
|
||||
check_tftp_listeners(now);
|
||||
#endif
|
||||
|
||||
if (FD_ISSET(fd, &rset) &&
|
||||
if (poll_check(fd, POLLIN) &&
|
||||
recvfrom(fd, &packet, sizeof(packet), 0,
|
||||
(struct sockaddr *)&faddr, &len) == sizeof(packet) &&
|
||||
saddr.sin_addr.s_addr == faddr.sin_addr.s_addr &&
|
||||
|
||||
@@ -82,7 +82,7 @@ typedef unsigned long long u64;
|
||||
#if defined(HAVE_SOLARIS_NETWORK)
|
||||
# include <sys/sockio.h>
|
||||
#endif
|
||||
#include <sys/select.h>
|
||||
#include <sys/poll.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/un.h>
|
||||
@@ -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
|
||||
|
||||
@@ -1191,7 +1193,6 @@ int memcmp_masked(unsigned char *a, unsigned char *b, int len,
|
||||
unsigned int mask);
|
||||
int expand_buf(struct iovec *iov, size_t size);
|
||||
char *print_mac(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 wildcard_match(const char* wildcard, const char* match);
|
||||
@@ -1202,8 +1203,8 @@ void die(char *message, char *arg1, int exit_code);
|
||||
int log_start(struct passwd *ent_pw, int errfd);
|
||||
int log_reopen(char *log_file);
|
||||
void my_syslog(int priority, const char *format, ...);
|
||||
void set_log_writer(fd_set *set, int *maxfdp);
|
||||
void check_log_writer(fd_set *set);
|
||||
void set_log_writer(void);
|
||||
void check_log_writer(int force);
|
||||
void flush_log(void);
|
||||
|
||||
/* option.c */
|
||||
@@ -1366,8 +1367,8 @@ int iface_enumerate(int family, void *parm, int (callback)());
|
||||
/* dbus.c */
|
||||
#ifdef HAVE_DBUS
|
||||
char *dbus_init(void);
|
||||
void check_dbus_listeners(fd_set *rset, fd_set *wset, fd_set *eset);
|
||||
void set_dbus_listeners(int *maxfdp, fd_set *rset, fd_set *wset, fd_set *eset);
|
||||
void check_dbus_listeners(void);
|
||||
void set_dbus_listeners(void);
|
||||
# ifdef HAVE_DHCP
|
||||
void emit_dbus_signal(int action, struct dhcp_lease *lease, char *hostname);
|
||||
# endif
|
||||
@@ -1394,7 +1395,7 @@ int helper_buf_empty(void);
|
||||
/* tftp.c */
|
||||
#ifdef HAVE_TFTP
|
||||
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);
|
||||
#endif
|
||||
|
||||
@@ -1511,3 +1512,10 @@ void inotify_dnsmasq_init();
|
||||
int inotify_check(time_t now);
|
||||
void set_dynamic_inotify(int flag, int total_size, struct crec **rhash, int revhashsz);
|
||||
#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);
|
||||
|
||||
|
||||
71
src/dnssec.c
71
src/dnssec.c
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -1887,7 +1931,7 @@ unsigned char *tcp_request(int confd, time_t now,
|
||||
dst_addr_4, netmask, now, &ad_question, &do_bit);
|
||||
|
||||
/* Do this by steam now we're not in the select() loop */
|
||||
check_log_writer(NULL);
|
||||
check_log_writer(1);
|
||||
|
||||
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);
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#ifdef HAVE_INOTIFY
|
||||
|
||||
#include <sys/inotify.h>
|
||||
#include <sys/param.h> /* For MAXSYMLINKS */
|
||||
|
||||
/* the strategy is to set a inotify on the directories containing
|
||||
resolv files, for any files in the directory which are close-write
|
||||
@@ -35,10 +36,55 @@
|
||||
static char *inotify_buffer;
|
||||
#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()
|
||||
{
|
||||
struct resolvc *res;
|
||||
|
||||
inotify_buffer = safe_malloc(INOTIFY_SZ);
|
||||
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)
|
||||
{
|
||||
char *d = NULL, *path;
|
||||
|
||||
if (!(path = realpath(res->name, NULL)))
|
||||
char *d, *new_path, *path = safe_malloc(strlen(res->name) + 1);
|
||||
int links = MAXSYMLINKS;
|
||||
|
||||
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
|
||||
dnsmasq copes with missing files, so fall back
|
||||
and assume that symlinks are not in use in that case. */
|
||||
if (errno == ENOENT)
|
||||
path = res->name;
|
||||
else
|
||||
die(_("cannot cannonicalise resolv-file %s: %s"), res->name, EC_MISC);
|
||||
if (links-- == 0)
|
||||
die(_("too many symlinks following %s"), res->name, EC_MISC);
|
||||
free(path);
|
||||
path = new_path;
|
||||
}
|
||||
|
||||
|
||||
res->wd = -1;
|
||||
|
||||
if ((d = strrchr(path, '/')))
|
||||
{
|
||||
*d = 0; /* make path just directory */
|
||||
@@ -70,10 +119,11 @@ void inotify_dnsmasq_init()
|
||||
|
||||
if (res->wd == -1 && errno == ENOENT)
|
||||
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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
11
src/log.c
11
src/log.c
@@ -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)
|
||||
{
|
||||
FD_SET(log_fd, set);
|
||||
bump_maxfd(log_fd, maxfdp);
|
||||
}
|
||||
poll_listen(log_fd, POLLOUT);
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
|
||||
@@ -4371,7 +4371,7 @@ void read_opts(int argc, char **argv, char *compile_opts)
|
||||
{
|
||||
char *buff = opt_malloc(MAXDNAME);
|
||||
int option, conffile_opt = '7', testmode = 0;
|
||||
char *arg, *conffile = NULL;
|
||||
char *arg, *conffile = CONFFILE;
|
||||
|
||||
opterr = 0;
|
||||
|
||||
@@ -4488,11 +4488,8 @@ void read_opts(int argc, char **argv, char *compile_opts)
|
||||
if (conffile)
|
||||
{
|
||||
one_file(conffile, conffile_opt);
|
||||
free(conffile);
|
||||
}
|
||||
else
|
||||
{
|
||||
one_file(CONFFILE, conffile_opt);
|
||||
if (conffile_opt == 0)
|
||||
free(conffile);
|
||||
}
|
||||
|
||||
/* port might not be known when the address is parsed - fill in here */
|
||||
|
||||
125
src/poll.c
Normal file
125
src/poll.c
Normal 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++;
|
||||
}
|
||||
}
|
||||
@@ -502,7 +502,7 @@ static struct tftp_file *check_tftp_fileperm(ssize_t *len, char *prefix)
|
||||
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;
|
||||
ssize_t len;
|
||||
@@ -518,7 +518,7 @@ void check_tftp_listeners(fd_set *rset, time_t now)
|
||||
|
||||
prettyprint_addr(&transfer->peer, daemon->addrbuff);
|
||||
|
||||
if (FD_ISSET(transfer->sockfd, rset))
|
||||
if (poll_check(transfer->sockfd, POLLIN))
|
||||
{
|
||||
/* we overwrote the buffer... */
|
||||
daemon->srv_save = NULL;
|
||||
|
||||
@@ -570,12 +570,6 @@ char *print_mac(char *buff, unsigned char *mac, int len)
|
||||
return buff;
|
||||
}
|
||||
|
||||
void bump_maxfd(int fd, int *max)
|
||||
{
|
||||
if (fd > *max)
|
||||
*max = fd;
|
||||
}
|
||||
|
||||
/* rc is return from sendto and friends.
|
||||
Return 1 if we should retry.
|
||||
Set errno to zero if we succeeded. */
|
||||
|
||||
Reference in New Issue
Block a user