diff options
-rw-r--r-- | CHANGELOG | 17 | ||||
-rw-r--r-- | po/de.po | 100 | ||||
-rw-r--r-- | po/es.po | 100 | ||||
-rw-r--r-- | po/fi.po | 100 | ||||
-rw-r--r-- | po/fr.po | 100 | ||||
-rw-r--r-- | po/id.po | 100 | ||||
-rw-r--r-- | po/it.po | 100 | ||||
-rw-r--r-- | po/no.po | 100 | ||||
-rw-r--r-- | po/pl.po | 161 | ||||
-rw-r--r-- | po/pt_BR.po | 100 | ||||
-rw-r--r-- | po/ro.po | 100 | ||||
-rw-r--r-- | src/bpf.c | 2 | ||||
-rw-r--r-- | src/config.h | 3 | ||||
-rw-r--r-- | src/dnsmasq.c | 42 | ||||
-rw-r--r-- | src/dnsmasq.h | 7 | ||||
-rw-r--r-- | src/netlink.c | 3 | ||||
-rw-r--r-- | src/network.c | 105 |
17 files changed, 629 insertions, 611 deletions
@@ -1,3 +1,20 @@ +version 2.59 + Fix regression in 2.58 which caused failure to start up + with some combinations of dnsmasq config and IPv6 kernel + network config. Thanks to Brielle Bruns for the bug + report. + + Improve dnsmasq's behaviour when network interfaces are + still doing duplicate address detection (DAD). Previously, + dnsmasq would wait up to 20 seconds at start-up for the + DAD state to terminate. This is broken for bridge + interfaces on recent Linux kernels, which don't start DAD + until the bridge comes up, and so can take arbitrary + time. The new behaviour lets dnsmasq poll for an arbitrary + time whilst providing service on other interfaces. Thanks + to Stephen Hemminger for pointing out the problem. + + version 2.58 Provide a definition of the SA_SIZE macro where it's missing. Fixes build failure on openBSD. @@ -853,7 +853,7 @@ msgstr "mit -n/--no-poll ist nur eine resolv.conf-Datei zulässig." msgid "must have exactly one resolv.conf to read domain from." msgstr "Um die Domäne zu lesen, muss genau eine resolv.conf-Datei verwendet werden." -#: option.c:3403 network.c:848 dhcp.c:823 +#: option.c:3403 network.c:845 dhcp.c:823 #, c-format msgid "failed to read %s: %s" msgstr "konnte %s nicht lesen: %s" @@ -887,64 +887,64 @@ msgstr "möglichen DNS-Rebind-Angriff entdeckt: %s" msgid "unknown interface %s in bridge-interface" msgstr "unbekannte Schnittstelle %s in bridge-interface" -#: network.c:380 +#: network.c:384 #, fuzzy, c-format msgid "failed to create listening socket for %s: %s" msgstr "Konnte Empfangs-Socket nicht erzeugen: %s" -#: network.c:746 +#: network.c:743 #, c-format msgid "failed to bind server socket for %s: %s" msgstr "konnte nicht an Server-Socket für %s binden: %s" -#: network.c:783 +#: network.c:780 #, c-format msgid "ignoring nameserver %s - local interface" msgstr "ignoriere Namensserver %s - lokale Schnittstelle" -#: network.c:794 +#: network.c:791 #, c-format msgid "ignoring nameserver %s - cannot make/bind socket: %s" msgstr "ignoriere Namensserver %s - kann Socket nicht erzeugen/binden: %s" # FIXME: this isn't translatable - always provide full strings, do not assemble yourself! -- MA -#: network.c:811 +#: network.c:808 msgid "unqualified" msgstr "" -#: network.c:811 +#: network.c:808 msgid "names" msgstr "" -#: network.c:813 +#: network.c:810 msgid "default" msgstr "" -#: network.c:815 +#: network.c:812 msgid "domain" msgstr "" -#: network.c:818 +#: network.c:815 #, c-format msgid "using local addresses only for %s %s" msgstr "" -#: network.c:820 +#: network.c:817 #, c-format msgid "using standard nameservers for %s %s" msgstr "" -#: network.c:822 +#: network.c:819 #, c-format msgid "using nameserver %s#%d for %s %s" msgstr "" -#: network.c:825 +#: network.c:822 #, c-format msgid "using nameserver %s#%d(via %s)" msgstr "" -#: network.c:827 +#: network.c:824 #, c-format msgid "using nameserver %s#%d" msgstr "" @@ -986,7 +986,7 @@ msgstr "unbekannte Schnittstelle %s" msgid "no interface with address %s" msgstr "keine Schnittstelle mit Adresse %s" -#: dnsmasq.c:219 dnsmasq.c:690 +#: dnsmasq.c:219 dnsmasq.c:716 #, c-format msgid "DBus error: %s" msgstr "DBus-Fehler: %s" @@ -1006,162 +1006,162 @@ msgid "cannot chdir to filesystem root: %s" msgstr "kann nicht ins Wurzelverzeichnis des Dateisystems wechseln: %s" # FIXME: this and the next would need commas after the version -#: dnsmasq.c:467 +#: dnsmasq.c:477 #, c-format msgid "started, version %s DNS disabled" msgstr "gestartet, Version %s, DNS abgeschaltet" -#: dnsmasq.c:469 +#: dnsmasq.c:479 #, c-format msgid "started, version %s cachesize %d" msgstr "gestartet, Version %s, Cachegröße %d" -#: dnsmasq.c:471 +#: dnsmasq.c:481 #, c-format msgid "started, version %s cache disabled" msgstr "" -#: dnsmasq.c:473 +#: dnsmasq.c:483 #, c-format msgid "compile time options: %s" msgstr "Ãœbersetzungsoptionen: %s" -#: dnsmasq.c:479 +#: dnsmasq.c:489 msgid "DBus support enabled: connected to system bus" msgstr "DBus-Unterstützung eingeschaltet: mit Systembus verbunden" -#: dnsmasq.c:481 +#: dnsmasq.c:491 msgid "DBus support enabled: bus connection pending" msgstr "DBus-Unterstützung eingeschaltet: warte auf Systembus-Verbindung" -#: dnsmasq.c:486 +#: dnsmasq.c:496 #, c-format msgid "warning: failed to change owner of %s: %s" msgstr "Warnung: konnte den Besitzer von %s nicht ändern: %s" -#: dnsmasq.c:490 +#: dnsmasq.c:500 msgid "setting --bind-interfaces option because of OS limitations" msgstr "Aktiviere --bind-interfaces wegen Einschränkungen des Betriebssystems" -#: dnsmasq.c:495 +#: dnsmasq.c:505 #, c-format msgid "warning: interface %s does not currently exist" msgstr "Warnung: Schnittstelle %s existiert derzeit nicht" -#: dnsmasq.c:500 +#: dnsmasq.c:510 msgid "warning: ignoring resolv-file flag because no-resolv is set" msgstr "Warnung: Ignoriere \"resolv-file\", weil \"no-resolv\" aktiv ist" -#: dnsmasq.c:503 +#: dnsmasq.c:513 msgid "warning: no upstream servers configured" msgstr "Warnung: keine vorgelagerten (Upstream) Server konfiguriert" -#: dnsmasq.c:507 +#: dnsmasq.c:517 #, c-format msgid "asynchronous logging enabled, queue limit is %d messages" msgstr "asynchrone Protokollierung eingeschaltet, Warteschlange fasst %d Nachrichten" -#: dnsmasq.c:520 +#: dnsmasq.c:530 #, c-format msgid "DHCP, static leases only on %.0s%s, lease time %s" msgstr "DHCP, nur statische Leases auf %.0s%s, Lease-Zeit %s" -#: dnsmasq.c:522 +#: dnsmasq.c:532 #, c-format msgid "DHCP, proxy on subnet %.0s%s%.0s" msgstr "DHCP, Proxy im Subnetz %.0s%s%.0s" -#: dnsmasq.c:523 +#: dnsmasq.c:533 #, c-format msgid "DHCP, IP range %s -- %s, lease time %s" msgstr "DHCP, IP-Bereich %s - %s, Lease-Zeit %s " -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "root is " msgstr "FIXME: this and the next few must be full strings to be translatable - do not assemble in code" -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "enabled" msgstr "" -#: dnsmasq.c:540 +#: dnsmasq.c:550 msgid "secure mode" msgstr "" -#: dnsmasq.c:566 +#: dnsmasq.c:576 #, c-format msgid "restricting maximum simultaneous TFTP transfers to %d" msgstr "Begrenze gleichzeitige TFTP-Ãœbertragungen auf maximal %d" -#: dnsmasq.c:692 +#: dnsmasq.c:718 msgid "connected to system DBus" msgstr "Mit System-DBus verbunden" -#: dnsmasq.c:787 +#: dnsmasq.c:813 #, c-format msgid "cannot fork into background: %s" msgstr "kann nicht in den Hintergrund abspalten: %s" -#: dnsmasq.c:790 +#: dnsmasq.c:816 #, c-format msgid "failed to create helper: %s" msgstr "kann Helfer nicht erzeugen: %s" -#: dnsmasq.c:793 +#: dnsmasq.c:819 #, c-format msgid "setting capabilities failed: %s" msgstr "kann \"capabilities\" nicht setzen: %s" -#: dnsmasq.c:797 +#: dnsmasq.c:823 #, c-format msgid "failed to change user-id to %s: %s" msgstr "Kann nicht Benutzerrechte %s annehmen: %s" -#: dnsmasq.c:802 +#: dnsmasq.c:828 #, c-format msgid "failed to change group-id to %s: %s" msgstr "Kann nicht Gruppenrechte %s annehmen: %s" -#: dnsmasq.c:805 +#: dnsmasq.c:831 #, c-format msgid "failed to open pidfile %s: %s" msgstr "kann die Prozessidentifikations-(PID)-Datei %s nicht öffnen: %s" -#: dnsmasq.c:808 +#: dnsmasq.c:834 #, c-format msgid "cannot open %s: %s" msgstr "kann %s nicht öffnen: %s" -#: dnsmasq.c:863 +#: dnsmasq.c:889 #, c-format msgid "child process killed by signal %d" msgstr "Tochterprozess durch Signal %d zerstört" -#: dnsmasq.c:867 +#: dnsmasq.c:893 #, c-format msgid "child process exited with status %d" msgstr "Tochterprozess beendete sich mit Status %d" -#: dnsmasq.c:871 +#: dnsmasq.c:897 #, c-format msgid "failed to execute %s: %s" msgstr "konnte %s nicht ausführen: %s" -#: dnsmasq.c:915 +#: dnsmasq.c:941 msgid "exiting on receipt of SIGTERM" msgstr "beende nach Empfang von SIGTERM" -#: dnsmasq.c:943 +#: dnsmasq.c:969 #, c-format msgid "failed to access %s: %s" msgstr "konnte auf %s nicht zugreifen: %s" -#: dnsmasq.c:973 +#: dnsmasq.c:999 #, c-format msgid "reading %s" msgstr "lese %s" -#: dnsmasq.c:984 +#: dnsmasq.c:1010 #, c-format msgid "no servers found in %s, will retry" msgstr "keine Server in %s gefunden, werde es später neu versuchen" @@ -1447,7 +1447,7 @@ msgstr "Kann RFC3925-Option nicht senden: zu viele Optionen für Unternehmen Nr. msgid "cannot create netlink socket: %s" msgstr "kann Netlink-Socket nicht erzeugen: %s" -#: netlink.c:288 +#: netlink.c:289 #, c-format msgid "netlink returns error: %s" msgstr "Netlink liefert Fehler %s" @@ -864,7 +864,7 @@ msgstr "solo un archivo resolv.conf permitido en modo no-poll." 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:3403 network.c:848 dhcp.c:823 +#: option.c:3403 network.c:845 dhcp.c:823 #, fuzzy, c-format msgid "failed to read %s: %s" msgstr "no se pudo leer %s: %s" @@ -898,63 +898,63 @@ msgstr "posible ataque de revinculación DNS detectado" msgid "unknown interface %s in bridge-interface" msgstr "interface desconocida %s en bridge-interface" -#: network.c:380 +#: network.c:384 #, fuzzy, c-format msgid "failed to create listening socket for %s: %s" msgstr "no se pudo crear un socket escuchador: %s" -#: network.c:746 +#: network.c:743 #, fuzzy, c-format msgid "failed to bind server socket for %s: %s" msgstr "no se pudo acoplar socket escuchador para %s: %s" -#: network.c:783 +#: network.c:780 #, c-format msgid "ignoring nameserver %s - local interface" msgstr "ignorando servidor DNS %s - interface local" -#: network.c:794 +#: network.c:791 #, fuzzy, c-format msgid "ignoring nameserver %s - cannot make/bind socket: %s" msgstr "ignorando servidor DNS %s - no se puede crear/acoplar socket: %s" -#: network.c:811 +#: network.c:808 msgid "unqualified" msgstr "no calificado" -#: network.c:811 +#: network.c:808 msgid "names" msgstr "nombres" -#: network.c:813 +#: network.c:810 msgid "default" msgstr "predeterminado" -#: network.c:815 +#: network.c:812 msgid "domain" msgstr "dominio" -#: network.c:818 +#: network.c:815 #, c-format msgid "using local addresses only for %s %s" msgstr "usando direcciones locales solo para %s %s" -#: network.c:820 +#: network.c:817 #, fuzzy, c-format msgid "using standard nameservers for %s %s" msgstr "usando servidor DNS %s#%d para %s %s" -#: network.c:822 +#: network.c:819 #, c-format msgid "using nameserver %s#%d for %s %s" msgstr "usando servidor DNS %s#%d para %s %s" -#: network.c:825 +#: network.c:822 #, fuzzy, c-format msgid "using nameserver %s#%d(via %s)" msgstr "usando servidor DNS %s#%d(vía %s)" -#: network.c:827 +#: network.c:824 #, c-format msgid "using nameserver %s#%d" msgstr "usando servidor DNS %s#%d" @@ -998,7 +998,7 @@ msgstr "interface desconocida %s" msgid "no interface with address %s" msgstr "ninguna interface con dirección %s" -#: dnsmasq.c:219 dnsmasq.c:690 +#: dnsmasq.c:219 dnsmasq.c:716 #, c-format msgid "DBus error: %s" msgstr "error DBus: %s" @@ -1017,164 +1017,164 @@ msgstr "usuario o grupo desconocido: %s" msgid "cannot chdir to filesystem root: %s" msgstr "no se puede cambiar directorio a raíz de sistema de archivos: %s" -#: dnsmasq.c:467 +#: dnsmasq.c:477 #, fuzzy, c-format msgid "started, version %s DNS disabled" msgstr "iniciado, versión %s DNS deshabilitado" -#: dnsmasq.c:469 +#: dnsmasq.c:479 #, c-format msgid "started, version %s cachesize %d" msgstr "iniciado, versión %s tamaño de caché %d" -#: dnsmasq.c:471 +#: dnsmasq.c:481 #, c-format msgid "started, version %s cache disabled" msgstr "iniciado, versión %s caché deshabilitado" -#: dnsmasq.c:473 +#: dnsmasq.c:483 #, c-format msgid "compile time options: %s" msgstr "opciones de compilación: %s" -#: dnsmasq.c:479 +#: dnsmasq.c:489 msgid "DBus support enabled: connected to system bus" msgstr "soporte DBus habilitado: conectado a bus de sistema" -#: dnsmasq.c:481 +#: dnsmasq.c:491 msgid "DBus support enabled: bus connection pending" msgstr "soporte DBus habilitado: conección a bus pendiente" -#: dnsmasq.c:486 +#: dnsmasq.c:496 #, fuzzy, c-format msgid "warning: failed to change owner of %s: %s" msgstr "advertencia: no se pudo cambiar dueño de %s: %s" -#: dnsmasq.c:490 +#: dnsmasq.c:500 msgid "setting --bind-interfaces option because of OS limitations" msgstr "fijando opción --bind-interfaces debido a limitaciones de sistema operativo" -#: dnsmasq.c:495 +#: dnsmasq.c:505 #, c-format msgid "warning: interface %s does not currently exist" msgstr "advertencia: interface %s no existe actuálmente" -#: dnsmasq.c:500 +#: dnsmasq.c:510 msgid "warning: ignoring resolv-file flag because no-resolv is set" msgstr "advertencia: ignorando opción resolv-file porque no-resolv está fijado" -#: dnsmasq.c:503 +#: dnsmasq.c:513 #, fuzzy msgid "warning: no upstream servers configured" msgstr "advertencia: ningún servidor upstream configurado" -#: dnsmasq.c:507 +#: dnsmasq.c:517 #, c-format msgid "asynchronous logging enabled, queue limit is %d messages" msgstr "bitacoreo asincrónico habilitado, límite de cola es %d mensajes" -#: dnsmasq.c:520 +#: dnsmasq.c:530 #, c-format msgid "DHCP, static leases only on %.0s%s, lease time %s" msgstr "DHCP, arriendos estáticos solo en %.0s%s, tiempo de arriendo %s" -#: dnsmasq.c:522 +#: dnsmasq.c:532 #, c-format msgid "DHCP, proxy on subnet %.0s%s%.0s" msgstr "DHCP, proxy en subred %.0s%s%.0s" -#: dnsmasq.c:523 +#: dnsmasq.c:533 #, c-format msgid "DHCP, IP range %s -- %s, lease time %s" msgstr "DHCP, rango de IPs %s -- %s, tiempo de arriendo %s" -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "root is " msgstr "root es " -#: dnsmasq.c:538 +#: dnsmasq.c:548 #, fuzzy msgid "enabled" msgstr "habilitado" -#: dnsmasq.c:540 +#: dnsmasq.c:550 msgid "secure mode" msgstr "modo seguro" -#: dnsmasq.c:566 +#: dnsmasq.c:576 #, 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:692 +#: dnsmasq.c:718 msgid "connected to system DBus" msgstr "conectado a DBus de sistema" -#: dnsmasq.c:787 +#: dnsmasq.c:813 #, c-format msgid "cannot fork into background: %s" msgstr "no se puede hacer fork hacia el fondo: %s" -#: dnsmasq.c:790 +#: dnsmasq.c:816 #, fuzzy, c-format msgid "failed to create helper: %s" msgstr "no se pudo crear ayudante: %s" -#: dnsmasq.c:793 +#: dnsmasq.c:819 #, fuzzy, c-format msgid "setting capabilities failed: %s" msgstr "configuración de capacidades ha fallado: %s" -#: dnsmasq.c:797 +#: dnsmasq.c:823 #, fuzzy, c-format msgid "failed to change user-id to %s: %s" msgstr "no se pudo cambiar user-id a %s: %s" -#: dnsmasq.c:802 +#: dnsmasq.c:828 #, fuzzy, c-format msgid "failed to change group-id to %s: %s" msgstr "no se pudo cambiar group-id a %s: %s" -#: dnsmasq.c:805 +#: dnsmasq.c:831 #, fuzzy, c-format msgid "failed to open pidfile %s: %s" msgstr "no se pudo abrir archivo PID %s: %s" -#: dnsmasq.c:808 +#: dnsmasq.c:834 #, fuzzy, c-format msgid "cannot open %s: %s" msgstr "no se puede abrir %s: %s" -#: dnsmasq.c:863 +#: dnsmasq.c:889 #, c-format msgid "child process killed by signal %d" msgstr "proceso hijo eliminado por señal %d" -#: dnsmasq.c:867 +#: dnsmasq.c:893 #, c-format msgid "child process exited with status %d" msgstr "proceso hijo hizo exit con estado %d" -#: dnsmasq.c:871 +#: dnsmasq.c:897 #, fuzzy, c-format msgid "failed to execute %s: %s" msgstr "no se pudo ejecutar %s: %s" -#: dnsmasq.c:915 +#: dnsmasq.c:941 msgid "exiting on receipt of SIGTERM" msgstr "saliendo al recibir SIGTERM" -#: dnsmasq.c:943 +#: dnsmasq.c:969 #, fuzzy, c-format msgid "failed to access %s: %s" msgstr "no se pudo accesar %s: %s" -#: dnsmasq.c:973 +#: dnsmasq.c:999 #, c-format msgid "reading %s" msgstr "leyendo %s" -#: dnsmasq.c:984 +#: dnsmasq.c:1010 #, fuzzy, c-format msgid "no servers found in %s, will retry" msgstr "ningún servidor encontrado en %s, se reintentará" @@ -1454,7 +1454,7 @@ msgstr "no se puede enviar opción RFC3925: demasiadas opciones para número enter msgid "cannot create netlink socket: %s" msgstr "no se puede crear socket netlink: %s" -#: netlink.c:288 +#: netlink.c:289 #, fuzzy, c-format msgid "netlink returns error: %s" msgstr "netlink retorna error: %s" @@ -831,7 +831,7 @@ msgstr "" msgid "must have exactly one resolv.conf to read domain from." msgstr "" -#: option.c:3403 network.c:848 dhcp.c:823 +#: option.c:3403 network.c:845 dhcp.c:823 #, c-format msgid "failed to read %s: %s" msgstr "" @@ -864,63 +864,63 @@ msgstr "" msgid "unknown interface %s in bridge-interface" msgstr "" -#: network.c:380 +#: network.c:384 #, c-format msgid "failed to create listening socket for %s: %s" msgstr "" -#: network.c:746 +#: network.c:743 #, c-format msgid "failed to bind server socket for %s: %s" msgstr "" -#: network.c:783 +#: network.c:780 #, c-format msgid "ignoring nameserver %s - local interface" msgstr "" -#: network.c:794 +#: network.c:791 #, c-format msgid "ignoring nameserver %s - cannot make/bind socket: %s" msgstr "" -#: network.c:811 +#: network.c:808 msgid "unqualified" msgstr "" -#: network.c:811 +#: network.c:808 msgid "names" msgstr "" -#: network.c:813 +#: network.c:810 msgid "default" msgstr "" -#: network.c:815 +#: network.c:812 msgid "domain" msgstr "" -#: network.c:818 +#: network.c:815 #, c-format msgid "using local addresses only for %s %s" msgstr "" -#: network.c:820 +#: network.c:817 #, c-format msgid "using standard nameservers for %s %s" msgstr "" -#: network.c:822 +#: network.c:819 #, c-format msgid "using nameserver %s#%d for %s %s" msgstr "" -#: network.c:825 +#: network.c:822 #, c-format msgid "using nameserver %s#%d(via %s)" msgstr "" -#: network.c:827 +#: network.c:824 #, c-format msgid "using nameserver %s#%d" msgstr "" @@ -960,7 +960,7 @@ msgstr "" msgid "no interface with address %s" msgstr "" -#: dnsmasq.c:219 dnsmasq.c:690 +#: dnsmasq.c:219 dnsmasq.c:716 #, c-format msgid "DBus error: %s" msgstr "" @@ -979,162 +979,162 @@ msgstr "" msgid "cannot chdir to filesystem root: %s" msgstr "" -#: dnsmasq.c:467 +#: dnsmasq.c:477 #, c-format msgid "started, version %s DNS disabled" msgstr "" -#: dnsmasq.c:469 +#: dnsmasq.c:479 #, c-format msgid "started, version %s cachesize %d" msgstr "" -#: dnsmasq.c:471 +#: dnsmasq.c:481 #, c-format msgid "started, version %s cache disabled" msgstr "" -#: dnsmasq.c:473 +#: dnsmasq.c:483 #, c-format msgid "compile time options: %s" msgstr "" -#: dnsmasq.c:479 +#: dnsmasq.c:489 msgid "DBus support enabled: connected to system bus" msgstr "" -#: dnsmasq.c:481 +#: dnsmasq.c:491 msgid "DBus support enabled: bus connection pending" msgstr "" -#: dnsmasq.c:486 +#: dnsmasq.c:496 #, c-format msgid "warning: failed to change owner of %s: %s" msgstr "" -#: dnsmasq.c:490 +#: dnsmasq.c:500 msgid "setting --bind-interfaces option because of OS limitations" msgstr "" -#: dnsmasq.c:495 +#: dnsmasq.c:505 #, c-format msgid "warning: interface %s does not currently exist" msgstr "" -#: dnsmasq.c:500 +#: dnsmasq.c:510 msgid "warning: ignoring resolv-file flag because no-resolv is set" msgstr "" -#: dnsmasq.c:503 +#: dnsmasq.c:513 msgid "warning: no upstream servers configured" msgstr "" -#: dnsmasq.c:507 +#: dnsmasq.c:517 #, c-format msgid "asynchronous logging enabled, queue limit is %d messages" msgstr "" -#: dnsmasq.c:520 +#: dnsmasq.c:530 #, c-format msgid "DHCP, static leases only on %.0s%s, lease time %s" msgstr "" -#: dnsmasq.c:522 +#: dnsmasq.c:532 #, c-format msgid "DHCP, proxy on subnet %.0s%s%.0s" msgstr "" -#: dnsmasq.c:523 +#: dnsmasq.c:533 #, c-format msgid "DHCP, IP range %s -- %s, lease time %s" msgstr "" -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "root is " msgstr "" -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "enabled" msgstr "" -#: dnsmasq.c:540 +#: dnsmasq.c:550 msgid "secure mode" msgstr "" -#: dnsmasq.c:566 +#: dnsmasq.c:576 #, c-format msgid "restricting maximum simultaneous TFTP transfers to %d" msgstr "" -#: dnsmasq.c:692 +#: dnsmasq.c:718 msgid "connected to system DBus" msgstr "" -#: dnsmasq.c:787 +#: dnsmasq.c:813 #, c-format msgid "cannot fork into background: %s" msgstr "" -#: dnsmasq.c:790 +#: dnsmasq.c:816 #, c-format msgid "failed to create helper: %s" msgstr "" -#: dnsmasq.c:793 +#: dnsmasq.c:819 #, c-format msgid "setting capabilities failed: %s" msgstr "" -#: dnsmasq.c:797 +#: dnsmasq.c:823 #, c-format msgid "failed to change user-id to %s: %s" msgstr "" -#: dnsmasq.c:802 +#: dnsmasq.c:828 #, c-format msgid "failed to change group-id to %s: %s" msgstr "" -#: dnsmasq.c:805 +#: dnsmasq.c:831 #, c-format msgid "failed to open pidfile %s: %s" msgstr "" -#: dnsmasq.c:808 +#: dnsmasq.c:834 #, c-format msgid "cannot open %s: %s" msgstr "" -#: dnsmasq.c:863 +#: dnsmasq.c:889 #, c-format msgid "child process killed by signal %d" msgstr "" -#: dnsmasq.c:867 +#: dnsmasq.c:893 #, c-format msgid "child process exited with status %d" msgstr "" -#: dnsmasq.c:871 +#: dnsmasq.c:897 #, c-format msgid "failed to execute %s: %s" msgstr "" -#: dnsmasq.c:915 +#: dnsmasq.c:941 msgid "exiting on receipt of SIGTERM" msgstr "" -#: dnsmasq.c:943 +#: dnsmasq.c:969 #, c-format msgid "failed to access %s: %s" msgstr "" -#: dnsmasq.c:973 +#: dnsmasq.c:999 #, c-format msgid "reading %s" msgstr "" -#: dnsmasq.c:984 +#: dnsmasq.c:1010 #, c-format msgid "no servers found in %s, will retry" msgstr "" @@ -1414,7 +1414,7 @@ msgstr "" msgid "cannot create netlink socket: %s" msgstr "" -#: netlink.c:288 +#: netlink.c:289 #, c-format msgid "netlink returns error: %s" msgstr "" @@ -856,7 +856,7 @@ msgstr "seul un fichier resolv.conf est autorisé dans le mode no-poll" 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:3403 network.c:848 dhcp.c:823 +#: option.c:3403 network.c:845 dhcp.c:823 #, c-format msgid "failed to read %s: %s" msgstr "impossible de lire %s : %s" @@ -889,63 +889,63 @@ msgstr "détection d'une possible attaque de type DNS-rebind: %s" msgid "unknown interface %s in bridge-interface" msgstr "interface %s inconnue spécifiée comme interface de pont" -#: network.c:380 +#: network.c:384 #, c-format msgid "failed to create listening socket for %s: %s" msgstr "impossible de créer une socket d'écoute pour %s : %s" -#: network.c:746 +#: network.c:743 #, c-format msgid "failed to bind server socket for %s: %s" msgstr "impossible de lier la socket de serveur pour %s : %s" -#: network.c:783 +#: network.c:780 #, c-format msgid "ignoring nameserver %s - local interface" msgstr "ignore le serveur de nom %s - interface locale" -#: network.c:794 +#: network.c:791 #, c-format msgid "ignoring nameserver %s - cannot make/bind socket: %s" msgstr "ignore le serveur de nom %s - ne peut construire/lier la socket : %m" -#: network.c:811 +#: network.c:808 msgid "unqualified" msgstr "non-qualifié(e)" -#: network.c:811 +#: network.c:808 msgid "names" msgstr "noms" -#: network.c:813 +#: network.c:810 msgid "default" msgstr "défaut" -#: network.c:815 +#: network.c:812 msgid "domain" msgstr "domaine" -#: network.c:818 +#: network.c:815 #, c-format msgid "using local addresses only for %s %s" msgstr "utilise les adresses locales seulement pour %s %s" -#: network.c:820 +#: network.c:817 #, c-format msgid "using standard nameservers for %s %s" msgstr "utilisation des serveurs de nom standards pour %s %s" -#: network.c:822 +#: network.c:819 #, c-format msgid "using nameserver %s#%d for %s %s" msgstr "utilise le serveur de nom %s#%d pour %s %s" -#: network.c:825 +#: network.c:822 #, c-format msgid "using nameserver %s#%d(via %s)" msgstr "utilise le serveur de nom %s#%d (via %s)" -#: network.c:827 +#: network.c:824 #, c-format msgid "using nameserver %s#%d" msgstr "utilise le serveur de nom %s#%d" @@ -987,7 +987,7 @@ msgstr "interface %s inconnue" msgid "no interface with address %s" msgstr "pas d'interface avec l'adresse %s" -#: dnsmasq.c:219 dnsmasq.c:690 +#: dnsmasq.c:219 dnsmasq.c:716 #, c-format msgid "DBus error: %s" msgstr "Erreur DBus : %s" @@ -1006,164 +1006,164 @@ msgstr "utilisateur ou groupe inconnu : %s" msgid "cannot chdir to filesystem root: %s" msgstr "Ne peut effectuer un 'chdir' à la racine du système de fichier : %s" -#: dnsmasq.c:467 +#: dnsmasq.c:477 #, c-format msgid "started, version %s DNS disabled" msgstr "démarrage avec le DNS désactivé (version %s)" -#: dnsmasq.c:469 +#: dnsmasq.c:479 #, c-format msgid "started, version %s cachesize %d" msgstr "demarré, version %s (taille de cache %d)" -#: dnsmasq.c:471 +#: dnsmasq.c:481 #, c-format msgid "started, version %s cache disabled" msgstr "démarrage avec le cache désactivé (version %s)" -#: dnsmasq.c:473 +#: dnsmasq.c:483 #, c-format msgid "compile time options: %s" msgstr "options à la compilation : %s" -#: dnsmasq.c:479 +#: dnsmasq.c:489 msgid "DBus support enabled: connected to system bus" msgstr "Support DBus autorisé : connecté au bus système" -#: dnsmasq.c:481 +#: dnsmasq.c:491 msgid "DBus support enabled: bus connection pending" msgstr "Support DBus autorisé : connexion au bus en attente" -#: dnsmasq.c:486 +#: dnsmasq.c:496 #, c-format msgid "warning: failed to change owner of %s: %s" msgstr "Impossible de changer pour l'utilisateur %s : %s" -#: dnsmasq.c:490 +#: dnsmasq.c:500 msgid "setting --bind-interfaces option because of OS limitations" msgstr "active l'option --bind-interfaces à cause de limitations dans le système d'exploitation" -#: dnsmasq.c:495 +#: dnsmasq.c:505 #, c-format msgid "warning: interface %s does not currently exist" msgstr "attention : l'interface %s n'existe pas actuellement" -#: dnsmasq.c:500 +#: dnsmasq.c:510 msgid "warning: ignoring resolv-file flag because no-resolv is set" msgstr "attention : l'option « resolv-file » sera ignorée car « no-resolv » a été spécifié" # -#: dnsmasq.c:503 +#: dnsmasq.c:513 msgid "warning: no upstream servers configured" msgstr "attention : aucun serveur amont n'est configuré" -#: dnsmasq.c:507 +#: dnsmasq.c:517 #, c-format msgid "asynchronous logging enabled, queue limit is %d messages" msgstr "mode asynchrone d'écriture de traces, la taille maximum de la queue est de %d messages." -#: dnsmasq.c:520 +#: dnsmasq.c:530 #, c-format msgid "DHCP, static leases only on %.0s%s, lease time %s" msgstr "baux statiques DHCP seulement sur %.0s%s, durée de validité de bail %s" -#: dnsmasq.c:522 +#: dnsmasq.c:532 #, c-format msgid "DHCP, proxy on subnet %.0s%s%.0s" msgstr "DHCP, proxy sur le sous-réseau %.0s%s%.0s" -#: dnsmasq.c:523 +#: dnsmasq.c:533 #, c-format msgid "DHCP, IP range %s -- %s, lease time %s" msgstr "DHCP, plage d'adresses %s -- %s, durée de bail %s" -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "root is " msgstr "root est" # -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "enabled" msgstr "activé" -#: dnsmasq.c:540 +#: dnsmasq.c:550 msgid "secure mode" msgstr "mode sécurisé" -#: dnsmasq.c:566 +#: dnsmasq.c:576 #, c-format msgid "restricting maximum simultaneous TFTP transfers to %d" msgstr "le nombre maximum de transferts TFTP simultanés sera restreint à %d" -#: dnsmasq.c:692 +#: dnsmasq.c:718 msgid "connected to system DBus" msgstr "connecté au systeme DBus" -#: dnsmasq.c:787 +#: dnsmasq.c:813 #, c-format msgid "cannot fork into background: %s" msgstr "Ne peut se lancer en tâche de fond : %s" -#: dnsmasq.c:790 +#: dnsmasq.c:816 #, c-format msgid "failed to create helper: %s" msgstr "impossible de créer le 'helper' : %s" -#: dnsmasq.c:793 +#: dnsmasq.c:819 #, c-format msgid "setting capabilities failed: %s" msgstr "impossible de configurer la capacité %s" -#: dnsmasq.c:797 +#: dnsmasq.c:823 #, c-format msgid "failed to change user-id to %s: %s" msgstr "Impossible de changer l'identifiant utilisateur pour %s : %s" -#: dnsmasq.c:802 +#: dnsmasq.c:828 #, c-format msgid "failed to change group-id to %s: %s" msgstr "Impossible de changer l'identifiant de groupe pour %s : %s" -#: dnsmasq.c:805 +#: dnsmasq.c:831 #, c-format msgid "failed to open pidfile %s: %s" msgstr "impossible de lire le fichier de PID %s : %s" -#: dnsmasq.c:808 +#: dnsmasq.c:834 #, c-format msgid "cannot open %s: %s" msgstr "Ne peut pas lire %s : %s" -#: dnsmasq.c:863 +#: dnsmasq.c:889 #, c-format msgid "child process killed by signal %d" msgstr "Le processus fils a été terminé par le signal %d" -#: dnsmasq.c:867 +#: dnsmasq.c:893 #, c-format msgid "child process exited with status %d" msgstr "Le processus fils s'est terminé avec le statut %d" -#: dnsmasq.c:871 +#: dnsmasq.c:897 #, c-format msgid "failed to execute %s: %s" msgstr "impossible d'exécuter à %s : %s" -#: dnsmasq.c:915 +#: dnsmasq.c:941 msgid "exiting on receipt of SIGTERM" msgstr "sortie sur réception du signal SIGTERM" -#: dnsmasq.c:943 +#: dnsmasq.c:969 #, c-format msgid "failed to access %s: %s" msgstr "impossible d'accéder à %s : %s" -#: dnsmasq.c:973 +#: dnsmasq.c:999 #, c-format msgid "reading %s" msgstr "Lecture de %s" -#: dnsmasq.c:984 +#: dnsmasq.c:1010 #, c-format msgid "no servers found in %s, will retry" msgstr "aucun serveur trouvé dans %s, va réessayer" @@ -1443,7 +1443,7 @@ msgstr "ne peux envoyer l'option RFC3925 : trop d'options pour le numéro d'entre msgid "cannot create netlink socket: %s" msgstr "ne peux lier une socket netlink : %s" -#: netlink.c:288 +#: netlink.c:289 #, c-format msgid "netlink returns error: %s" msgstr "Erreur netlink : %s" @@ -988,7 +988,7 @@ 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:3403 network.c:848 dhcp.c:823 +#: option.c:3403 network.c:845 dhcp.c:823 #, fuzzy, c-format msgid "failed to read %s: %s" msgstr "gagal membaca %s: %s" @@ -1025,72 +1025,72 @@ msgid "unknown interface %s in bridge-interface" msgstr "antarmuka tidak dikenal %s" # OK -#: network.c:380 +#: network.c:384 #, fuzzy, c-format msgid "failed to create listening socket for %s: %s" msgstr "gagal membuat socket: %s " -#: network.c:746 +#: network.c:743 #, fuzzy, c-format msgid "failed to bind server socket for %s: %s" msgstr "gagal mem-bind socket untuk mendengarkan %s: %s" # OK -#: network.c:783 +#: network.c:780 #, c-format msgid "ignoring nameserver %s - local interface" msgstr "mengabaikan nameserver %s - antarmuka lokal" # OK -#: network.c:794 +#: network.c:791 #, fuzzy, c-format msgid "ignoring nameserver %s - cannot make/bind socket: %s" msgstr "mengabaikan nameserver %s - tak dapat membuat/mem-bind socket: %s" # OK -#: network.c:811 +#: network.c:808 msgid "unqualified" msgstr "tidak memenuhi syarat" -#: network.c:811 +#: network.c:808 msgid "names" msgstr "" -#: network.c:813 +#: network.c:810 msgid "default" msgstr "" # OK -#: network.c:815 +#: network.c:812 msgid "domain" msgstr "domain" # OK -#: network.c:818 +#: network.c:815 #, c-format msgid "using local addresses only for %s %s" msgstr "menggunakan alamat lokal saja untuk %s %s" # OK -#: network.c:820 +#: network.c:817 #, fuzzy, c-format msgid "using standard nameservers for %s %s" msgstr "menggunakan nameserver %s#%d untuk %s %s" # OK -#: network.c:822 +#: network.c:819 #, c-format msgid "using nameserver %s#%d for %s %s" msgstr "menggunakan nameserver %s#%d untuk %s %s" # OK -#: network.c:825 +#: network.c:822 #, fuzzy, c-format msgid "using nameserver %s#%d(via %s)" msgstr "menggunakan nameserver %s#%d" # OK -#: network.c:827 +#: network.c:824 #, c-format msgid "using nameserver %s#%d" msgstr "menggunakan nameserver %s#%d" @@ -1138,7 +1138,7 @@ msgid "no interface with address %s" msgstr "tidak ada antarmuka dengan alamat %s" # OK -#: dnsmasq.c:219 dnsmasq.c:690 +#: dnsmasq.c:219 dnsmasq.c:716 #, c-format msgid "DBus error: %s" msgstr "DBus error: %s" @@ -1159,186 +1159,186 @@ msgid "cannot chdir to filesystem root: %s" msgstr "" # OK -#: dnsmasq.c:467 +#: dnsmasq.c:477 #, fuzzy, c-format msgid "started, version %s DNS disabled" msgstr "dimulai, cache versi %s di disable" # OK -#: dnsmasq.c:469 +#: dnsmasq.c:479 #, c-format msgid "started, version %s cachesize %d" msgstr "dimulai, versi %s ukuran cache %d" # OK -#: dnsmasq.c:471 +#: dnsmasq.c:481 #, c-format msgid "started, version %s cache disabled" msgstr "dimulai, cache versi %s di disable" # OK -#: dnsmasq.c:473 +#: dnsmasq.c:483 #, c-format msgid "compile time options: %s" msgstr "pilihan-pilihan saat kompilasi: %s" # OK -#: dnsmasq.c:479 +#: dnsmasq.c:489 msgid "DBus support enabled: connected to system bus" msgstr "dukungan DBus dimungkinkan: terkoneksi pada bus sistem" # OK -#: dnsmasq.c:481 +#: dnsmasq.c:491 msgid "DBus support enabled: bus connection pending" msgstr "dukungan DBus dimungkinkan: koneksi bus ditunda" # OK -#: dnsmasq.c:486 +#: dnsmasq.c:496 #, fuzzy, c-format msgid "warning: failed to change owner of %s: %s" msgstr "gagal memuat nama-nama dari %s: %s" # OK -#: dnsmasq.c:490 +#: dnsmasq.c:500 msgid "setting --bind-interfaces option because of OS limitations" msgstr "setelan opsi --bind-interfaces disebabkan keterbatasan OS" # OK -#: dnsmasq.c:495 +#: dnsmasq.c:505 #, c-format msgid "warning: interface %s does not currently exist" msgstr "peringatan: antarmuka %s tidak ada" -#: dnsmasq.c:500 +#: dnsmasq.c:510 msgid "warning: ignoring resolv-file flag because no-resolv is set" msgstr "" # OK -#: dnsmasq.c:503 +#: dnsmasq.c:513 #, fuzzy msgid "warning: no upstream servers configured" msgstr "menyetel server-server di atas dengan DBus" -#: dnsmasq.c:507 +#: dnsmasq.c:517 #, c-format msgid "asynchronous logging enabled, queue limit is %d messages" msgstr "" # OK -#: dnsmasq.c:520 +#: dnsmasq.c:530 #, c-format msgid "DHCP, static leases only on %.0s%s, lease time %s" msgstr "DHCP, lease static pada %.0s%s, waktu lease %s" -#: dnsmasq.c:522 +#: dnsmasq.c:532 #, c-format msgid "DHCP, proxy on subnet %.0s%s%.0s" msgstr "" # OK -#: dnsmasq.c:523 +#: dnsmasq.c:533 #, c-format msgid "DHCP, IP range %s -- %s, lease time %s" msgstr "DHCP, jangkaun IP %s -- %s, waktu lease %s" -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "root is " msgstr "" # OK -#: dnsmasq.c:538 +#: dnsmasq.c:548 #, fuzzy msgid "enabled" msgstr "di disable" -#: dnsmasq.c:540 +#: dnsmasq.c:550 msgid "secure mode" msgstr "" -#: dnsmasq.c:566 +#: dnsmasq.c:576 #, c-format msgid "restricting maximum simultaneous TFTP transfers to %d" msgstr "" # OK -#: dnsmasq.c:692 +#: dnsmasq.c:718 msgid "connected to system DBus" msgstr "terhubung ke sistem DBus" -#: dnsmasq.c:787 +#: dnsmasq.c:813 #, c-format msgid "cannot fork into background: %s" msgstr "" # OK -#: dnsmasq.c:790 +#: dnsmasq.c:816 #, fuzzy, c-format msgid "failed to create helper: %s" msgstr "gagal membaca %s: %s" -#: dnsmasq.c:793 +#: dnsmasq.c:819 #, c-format msgid "setting capabilities failed: %s" msgstr "" # OK -#: dnsmasq.c:797 +#: dnsmasq.c:823 #, fuzzy, c-format msgid "failed to change user-id to %s: %s" msgstr "gagal memuat nama-nama dari %s: %s" # OK -#: dnsmasq.c:802 +#: dnsmasq.c:828 #, fuzzy, c-format msgid "failed to change group-id to %s: %s" msgstr "gagal memuat nama-nama dari %s: %s" # OK -#: dnsmasq.c:805 +#: dnsmasq.c:831 #, fuzzy, c-format msgid "failed to open pidfile %s: %s" msgstr "gagal membaca %s: %s" # OK -#: dnsmasq.c:808 +#: dnsmasq.c:834 #, fuzzy, c-format msgid "cannot open %s: %s" msgstr "tidak bisa membuka %s:%s" -#: dnsmasq.c:863 +#: dnsmasq.c:889 #, c-format msgid "child process killed by signal %d" msgstr "" -#: dnsmasq.c:867 +#: dnsmasq.c:893 #, c-format msgid "child process exited with status %d" msgstr "" # OK -#: dnsmasq.c:871 +#: dnsmasq.c:897 #, fuzzy, c-format msgid "failed to execute %s: %s" msgstr "gagal mengakses %s: %s" -#: dnsmasq.c:915 +#: dnsmasq.c:941 msgid "exiting on receipt of SIGTERM" msgstr "keluar karena menerima SIGTERM" # OK -#: dnsmasq.c:943 +#: dnsmasq.c:969 #, fuzzy, c-format msgid "failed to access %s: %s" msgstr "gagal mengakses %s: %s" # OK -#: dnsmasq.c:973 +#: dnsmasq.c:999 #, c-format msgid "reading %s" msgstr "membaca %s" # OK -#: dnsmasq.c:984 +#: dnsmasq.c:1010 #, fuzzy, c-format msgid "no servers found in %s, will retry" msgstr "tidak ditemukan direktif search di %s" @@ -1657,7 +1657,7 @@ msgid "cannot create netlink socket: %s" msgstr "tidak bisa mem-bind netlink socket: %s" # OK -#: netlink.c:288 +#: netlink.c:289 #, fuzzy, c-format msgid "netlink returns error: %s" msgstr "DBus error: %s" @@ -831,7 +831,7 @@ msgstr "" msgid "must have exactly one resolv.conf to read domain from." msgstr "" -#: option.c:3403 network.c:848 dhcp.c:823 +#: option.c:3403 network.c:845 dhcp.c:823 #, c-format msgid "failed to read %s: %s" msgstr "" @@ -864,63 +864,63 @@ msgstr "" msgid "unknown interface %s in bridge-interface" msgstr "" -#: network.c:380 +#: network.c:384 #, c-format msgid "failed to create listening socket for %s: %s" msgstr "" -#: network.c:746 +#: network.c:743 #, c-format msgid "failed to bind server socket for %s: %s" msgstr "" -#: network.c:783 +#: network.c:780 #, c-format msgid "ignoring nameserver %s - local interface" msgstr "" -#: network.c:794 +#: network.c:791 #, c-format msgid "ignoring nameserver %s - cannot make/bind socket: %s" msgstr "" -#: network.c:811 +#: network.c:808 msgid "unqualified" msgstr "" -#: network.c:811 +#: network.c:808 msgid "names" msgstr "" -#: network.c:813 +#: network.c:810 msgid "default" msgstr "" -#: network.c:815 +#: network.c:812 msgid "domain" msgstr "" -#: network.c:818 +#: network.c:815 #, c-format msgid "using local addresses only for %s %s" msgstr "" -#: network.c:820 +#: network.c:817 #, c-format msgid "using standard nameservers for %s %s" msgstr "" -#: network.c:822 +#: network.c:819 #, c-format msgid "using nameserver %s#%d for %s %s" msgstr "" -#: network.c:825 +#: network.c:822 #, c-format msgid "using nameserver %s#%d(via %s)" msgstr "" -#: network.c:827 +#: network.c:824 #, c-format msgid "using nameserver %s#%d" msgstr "" @@ -960,7 +960,7 @@ msgstr "" msgid "no interface with address %s" msgstr "" -#: dnsmasq.c:219 dnsmasq.c:690 +#: dnsmasq.c:219 dnsmasq.c:716 #, c-format msgid "DBus error: %s" msgstr "" @@ -979,162 +979,162 @@ msgstr "" msgid "cannot chdir to filesystem root: %s" msgstr "" -#: dnsmasq.c:467 +#: dnsmasq.c:477 #, c-format msgid "started, version %s DNS disabled" msgstr "" -#: dnsmasq.c:469 +#: dnsmasq.c:479 #, c-format msgid "started, version %s cachesize %d" msgstr "" -#: dnsmasq.c:471 +#: dnsmasq.c:481 #, c-format msgid "started, version %s cache disabled" msgstr "" -#: dnsmasq.c:473 +#: dnsmasq.c:483 #, c-format msgid "compile time options: %s" msgstr "" -#: dnsmasq.c:479 +#: dnsmasq.c:489 msgid "DBus support enabled: connected to system bus" msgstr "" -#: dnsmasq.c:481 +#: dnsmasq.c:491 msgid "DBus support enabled: bus connection pending" msgstr "" -#: dnsmasq.c:486 +#: dnsmasq.c:496 #, c-format msgid "warning: failed to change owner of %s: %s" msgstr "" -#: dnsmasq.c:490 +#: dnsmasq.c:500 msgid "setting --bind-interfaces option because of OS limitations" msgstr "" -#: dnsmasq.c:495 +#: dnsmasq.c:505 #, c-format msgid "warning: interface %s does not currently exist" msgstr "" -#: dnsmasq.c:500 +#: dnsmasq.c:510 msgid "warning: ignoring resolv-file flag because no-resolv is set" msgstr "" -#: dnsmasq.c:503 +#: dnsmasq.c:513 msgid "warning: no upstream servers configured" msgstr "" -#: dnsmasq.c:507 +#: dnsmasq.c:517 #, c-format msgid "asynchronous logging enabled, queue limit is %d messages" msgstr "" -#: dnsmasq.c:520 +#: dnsmasq.c:530 #, c-format msgid "DHCP, static leases only on %.0s%s, lease time %s" msgstr "" -#: dnsmasq.c:522 +#: dnsmasq.c:532 #, c-format msgid "DHCP, proxy on subnet %.0s%s%.0s" msgstr "" -#: dnsmasq.c:523 +#: dnsmasq.c:533 #, c-format msgid "DHCP, IP range %s -- %s, lease time %s" msgstr "" -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "root is " msgstr "" -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "enabled" msgstr "" -#: dnsmasq.c:540 +#: dnsmasq.c:550 msgid "secure mode" msgstr "" -#: dnsmasq.c:566 +#: dnsmasq.c:576 #, c-format msgid "restricting maximum simultaneous TFTP transfers to %d" msgstr "" -#: dnsmasq.c:692 +#: dnsmasq.c:718 msgid "connected to system DBus" msgstr "" -#: dnsmasq.c:787 +#: dnsmasq.c:813 #, c-format msgid "cannot fork into background: %s" msgstr "" -#: dnsmasq.c:790 +#: dnsmasq.c:816 #, c-format msgid "failed to create helper: %s" msgstr "" -#: dnsmasq.c:793 +#: dnsmasq.c:819 #, c-format msgid "setting capabilities failed: %s" msgstr "" -#: dnsmasq.c:797 +#: dnsmasq.c:823 #, c-format msgid "failed to change user-id to %s: %s" msgstr "" -#: dnsmasq.c:802 +#: dnsmasq.c:828 #, c-format msgid "failed to change group-id to %s: %s" msgstr "" -#: dnsmasq.c:805 +#: dnsmasq.c:831 #, c-format msgid "failed to open pidfile %s: %s" msgstr "" -#: dnsmasq.c:808 +#: dnsmasq.c:834 #, c-format msgid "cannot open %s: %s" msgstr "" -#: dnsmasq.c:863 +#: dnsmasq.c:889 #, c-format msgid "child process killed by signal %d" msgstr "" -#: dnsmasq.c:867 +#: dnsmasq.c:893 #, c-format msgid "child process exited with status %d" msgstr "" -#: dnsmasq.c:871 +#: dnsmasq.c:897 #, c-format msgid "failed to execute %s: %s" msgstr "" -#: dnsmasq.c:915 +#: dnsmasq.c:941 msgid "exiting on receipt of SIGTERM" msgstr "" -#: dnsmasq.c:943 +#: dnsmasq.c:969 #, c-format msgid "failed to access %s: %s" msgstr "" -#: dnsmasq.c:973 +#: dnsmasq.c:999 #, c-format msgid "reading %s" msgstr "" -#: dnsmasq.c:984 +#: dnsmasq.c:1010 #, c-format msgid "no servers found in %s, will retry" msgstr "" @@ -1414,7 +1414,7 @@ msgstr "" msgid "cannot create netlink socket: %s" msgstr "" -#: netlink.c:288 +#: netlink.c:289 #, c-format msgid "netlink returns error: %s" msgstr "" @@ -864,7 +864,7 @@ msgstr "kun en resolv.conf fil tillat i no-poll modus." msgid "must have exactly one resolv.conf to read domain from." msgstr "må ha nøyaktig en resolv.conf å lese domene fra." -#: option.c:3403 network.c:848 dhcp.c:823 +#: option.c:3403 network.c:845 dhcp.c:823 #, fuzzy, c-format msgid "failed to read %s: %s" msgstr "feilet å lese %s: %s" @@ -897,63 +897,63 @@ msgstr "" msgid "unknown interface %s in bridge-interface" msgstr "ukjent tilknytning (interface) %s" -#: network.c:380 +#: network.c:384 #, fuzzy, c-format msgid "failed to create listening socket for %s: %s" msgstr "feilet å lage lytte socket: %s" -#: network.c:746 +#: network.c:743 #, fuzzy, c-format msgid "failed to bind server socket for %s: %s" msgstr "feilet å binde lytte socket for %s: %s" -#: network.c:783 +#: network.c:780 #, c-format msgid "ignoring nameserver %s - local interface" msgstr "ignorerer navnetjener %s - lokal tilknytning" -#: network.c:794 +#: network.c:791 #, fuzzy, c-format msgid "ignoring nameserver %s - cannot make/bind socket: %s" msgstr "ignorerer navnetjener %s - kan ikke lage/dinde socket: %s" -#: network.c:811 +#: network.c:808 msgid "unqualified" msgstr "ikke kvalifisert" -#: network.c:811 +#: network.c:808 msgid "names" msgstr "" -#: network.c:813 +#: network.c:810 msgid "default" msgstr "" -#: network.c:815 +#: network.c:812 msgid "domain" msgstr "domene" -#: network.c:818 +#: network.c:815 #, c-format msgid "using local addresses only for %s %s" msgstr "benytter lokale adresser kun for %s %s" -#: network.c:820 +#: network.c:817 #, fuzzy, c-format msgid "using standard nameservers for %s %s" msgstr "benytter navnetjener %s#%d for %s %s" -#: network.c:822 +#: network.c:819 #, c-format msgid "using nameserver %s#%d for %s %s" msgstr "benytter navnetjener %s#%d for %s %s" -#: network.c:825 +#: network.c:822 #, fuzzy, c-format msgid "using nameserver %s#%d(via %s)" msgstr "benytter navnetjener %s#%d" -#: network.c:827 +#: network.c:824 #, c-format msgid "using nameserver %s#%d" msgstr "benytter navnetjener %s#%d" @@ -995,7 +995,7 @@ msgstr "ukjent tilknytning (interface) %s" msgid "no interface with address %s" msgstr "ingen tilknytning (interface) med adresse %s" -#: dnsmasq.c:219 dnsmasq.c:690 +#: dnsmasq.c:219 dnsmasq.c:716 #, c-format msgid "DBus error: %s" msgstr "DBus feil: %s" @@ -1014,164 +1014,164 @@ msgstr "" msgid "cannot chdir to filesystem root: %s" msgstr "" -#: dnsmasq.c:467 +#: dnsmasq.c:477 #, fuzzy, c-format msgid "started, version %s DNS disabled" msgstr "startet, versjon %s mellomlager deaktivert" -#: dnsmasq.c:469 +#: dnsmasq.c:479 #, c-format msgid "started, version %s cachesize %d" msgstr "startet, versjon %s mellomlager størrelse %d" -#: dnsmasq.c:471 +#: dnsmasq.c:481 #, c-format msgid "started, version %s cache disabled" msgstr "startet, versjon %s mellomlager deaktivert" -#: dnsmasq.c:473 +#: dnsmasq.c:483 #, c-format msgid "compile time options: %s" msgstr "kompilerings opsjoner: %s" -#: dnsmasq.c:479 +#: dnsmasq.c:489 msgid "DBus support enabled: connected to system bus" msgstr "DBus støtte aktivert: koblet til system buss" -#: dnsmasq.c:481 +#: dnsmasq.c:491 msgid "DBus support enabled: bus connection pending" msgstr "DBus støtte aktivert: avventer buss tilkobling" -#: dnsmasq.c:486 +#: dnsmasq.c:496 #, fuzzy, c-format msgid "warning: failed to change owner of %s: %s" msgstr "feilet å laste navn fra %s: %s" -#: dnsmasq.c:490 +#: dnsmasq.c:500 msgid "setting --bind-interfaces option because of OS limitations" msgstr "setter --bind-interfaces opsjon på grunn av OS begrensninger" -#: dnsmasq.c:495 +#: dnsmasq.c:505 #, c-format msgid "warning: interface %s does not currently exist" msgstr "advarsel: nettverkskort %s eksisterer ikke for tiden" -#: dnsmasq.c:500 +#: dnsmasq.c:510 msgid "warning: ignoring resolv-file flag because no-resolv is set" msgstr "" -#: dnsmasq.c:503 +#: dnsmasq.c:513 #, fuzzy msgid "warning: no upstream servers configured" msgstr "setter oppstrøms tjener fra DBus" -#: dnsmasq.c:507 +#: dnsmasq.c:517 #, c-format msgid "asynchronous logging enabled, queue limit is %d messages" msgstr "" -#: dnsmasq.c:520 +#: dnsmasq.c:530 #, c-format msgid "DHCP, static leases only on %.0s%s, lease time %s" msgstr "DHCP, statisk leie kun på %.0s%s, leie tid %s" -#: dnsmasq.c:522 +#: dnsmasq.c:532 #, c-format msgid "DHCP, proxy on subnet %.0s%s%.0s" msgstr "" -#: dnsmasq.c:523 +#: dnsmasq.c:533 #, c-format msgid "DHCP, IP range %s -- %s, lease time %s" msgstr "DHCP, IP område %s -- %s, leie tid %s" -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "root is " msgstr "" -#: dnsmasq.c:538 +#: dnsmasq.c:548 #, fuzzy msgid "enabled" msgstr "deaktivert" -#: dnsmasq.c:540 +#: dnsmasq.c:550 msgid "secure mode" msgstr "" -#: dnsmasq.c:566 +#: dnsmasq.c:576 #, c-format msgid "restricting maximum simultaneous TFTP transfers to %d" msgstr "" -#: dnsmasq.c:692 +#: dnsmasq.c:718 msgid "connected to system DBus" msgstr "tilkoblet til system DBus" -#: dnsmasq.c:787 +#: dnsmasq.c:813 #, c-format msgid "cannot fork into background: %s" msgstr "" -#: dnsmasq.c:790 +#: dnsmasq.c:816 #, fuzzy, c-format msgid "failed to create helper: %s" msgstr "feilet å lese %s: %s" -#: dnsmasq.c:793 +#: dnsmasq.c:819 #, c-format msgid "setting capabilities failed: %s" msgstr "" -#: dnsmasq.c:797 +#: dnsmasq.c:823 #, fuzzy, c-format msgid "failed to change user-id to %s: %s" msgstr "feilet å laste navn fra %s: %s" -#: dnsmasq.c:802 +#: dnsmasq.c:828 #, fuzzy, c-format msgid "failed to change group-id to %s: %s" msgstr "feilet å laste navn fra %s: %s" -#: dnsmasq.c:805 +#: dnsmasq.c:831 #, fuzzy, c-format msgid "failed to open pidfile %s: %s" msgstr "feilet å lese %s: %s" -#: dnsmasq.c:808 +#: dnsmasq.c:834 #, fuzzy, c-format msgid "cannot open %s: %s" msgstr "kan ikke åpne %s:%s" -#: dnsmasq.c:863 +#: dnsmasq.c:889 #, c-format msgid "child process killed by signal %d" msgstr "" -#: dnsmasq.c:867 +#: dnsmasq.c:893 #, c-format msgid "child process exited with status %d" msgstr "" -#: dnsmasq.c:871 +#: dnsmasq.c:897 #, fuzzy, c-format msgid "failed to execute %s: %s" msgstr "feilet å få tilgang til %s: %s" -#: dnsmasq.c:915 +#: dnsmasq.c:941 msgid "exiting on receipt of SIGTERM" msgstr "avslutter etter mottak av SIGTERM" -#: dnsmasq.c:943 +#: dnsmasq.c:969 #, fuzzy, c-format msgid "failed to access %s: %s" msgstr "feilet å få tilgang til %s: %s" -#: dnsmasq.c:973 +#: dnsmasq.c:999 #, c-format msgid "reading %s" msgstr "leser %s" -#: dnsmasq.c:984 +#: dnsmasq.c:1010 #, fuzzy, c-format msgid "no servers found in %s, will retry" msgstr "intet søke direktiv funnet i %s" @@ -1451,7 +1451,7 @@ msgstr "" msgid "cannot create netlink socket: %s" msgstr "kan ikke binde netlink socket: %s" -#: netlink.c:288 +#: netlink.c:289 #, fuzzy, c-format msgid "netlink returns error: %s" msgstr "DBus feil: %s" @@ -25,20 +25,17 @@ msgstr "" msgid "failed to load names from %s: %s" msgstr "nie potrafiÄ™ wczytać nazw z %s: %s" -#: cache.c:795 -#: dhcp.c:874 +#: cache.c:795 dhcp.c:874 #, c-format msgid "bad address at %s line %d" msgstr "bÅ‚Ä™dny adres w pliku %s, w linii %d" -#: cache.c:853 -#: dhcp.c:890 +#: cache.c:853 dhcp.c:890 #, c-format msgid "bad name at %s line %d" msgstr "bÅ‚Ä™dna nazwa w pliku %s, w linii %d" -#: cache.c:860 -#: dhcp.c:965 +#: cache.c:860 dhcp.c:965 #, c-format msgid "read %s - %d addresses" msgstr "wczytaÅ‚em %s - %d adresów" @@ -91,8 +88,7 @@ msgstr "brak możliwoÅ›ci użycia generatora liczb losowych: %s" msgid "failed to allocate memory" msgstr "nie udaÅ‚o siÄ™ przydzielić pamiÄ™ci" -#: util.c:227 -#: option.c:579 +#: util.c:227 option.c:579 msgid "could not get memory" msgstr "nie można dostać pamiÄ™ci" @@ -612,14 +608,12 @@ msgstr "wielokrotne użycie opcji niedozwolone (pojawiÅ‚a siÄ™ wczeÅ›niej w lini msgid "illegal repeated keyword" msgstr "wielokrotne użycie opcji niedozwolone (pojawiÅ‚a siÄ™ wszeÅ›niej w pliku konfiguracyjnym)" -#: option.c:1153 -#: option.c:3062 +#: option.c:1153 option.c:3062 #, c-format msgid "cannot access directory %s: %s" msgstr "brak dostÄ™pu do katalogu %s: %s" -#: option.c:1184 -#: tftp.c:465 +#: option.c:1184 tftp.c:465 #, c-format msgid "cannot access %s: %s" msgstr "brak dostÄ™pu do %s: %s" @@ -652,18 +646,15 @@ msgstr "w uClinuksie nie ma możliwoÅ›ci uruchamiania skryptów" msgid "recompile with HAVE_SCRIPT defined to enable lease-change scripts" msgstr "żeby mieć możliwość używania skryptów wywoÅ‚ywanych przy zmianie dzierżawy, przekompiluj dnsmasq-a z wÅ‚Ä…czonÄ… flagÄ… HAVE_SCRIPT" -#: option.c:1607 -#: option.c:1611 +#: option.c:1607 option.c:1611 msgid "bad port" msgstr "nieprawidÅ‚owy numer portu" -#: option.c:1634 -#: option.c:1665 +#: option.c:1634 option.c:1665 msgid "interface binding not supported" msgstr "nie ma możliwoÅ›ci dowiÄ…zywania do interfejsu" -#: option.c:1645 -#: option.c:2614 +#: option.c:1645 option.c:2614 msgid "bad interface name" msgstr "nieprawidÅ‚owa nazwa interfejsu" @@ -687,8 +678,7 @@ msgstr "można wskazać tylko jeden znacznik sieci" msgid "inconsistent DHCP range" msgstr "niespójny zakres adresów DHCP" -#: option.c:2039 -#: option.c:2067 +#: option.c:2039 option.c:2067 msgid "bad hex constant" msgstr "zapis niezgodny z formatem szesnastkowym" @@ -704,8 +694,7 @@ msgstr "niedopuszczalna nazwa komputera w dhcp-host" msgid "bad tag-if" msgstr "nieprawidÅ‚owa skÅ‚adnia 'tag-if'" -#: option.c:2499 -#: option.c:2784 +#: option.c:2499 option.c:2784 msgid "invalid port number" msgstr "nieprawidÅ‚owy numer portu" @@ -782,14 +771,12 @@ msgstr "bÅ‚Ä…d" msgid "%s at line %d of %%s" msgstr "%s w linii %d pliku %%s" -#: option.c:3017 -#: tftp.c:629 +#: option.c:3017 tftp.c:629 #, c-format msgid "cannot read %s: %s" msgstr "bÅ‚Ä…d odczytu z pliku %s: %s" -#: option.c:3183 -#: option.c:3219 +#: option.c:3183 option.c:3219 #, c-format msgid "read %s" msgstr "przeczytaÅ‚em %s" @@ -853,9 +840,7 @@ msgstr "w trybie no-poll można wskazać najwyżej jeden plik resolv.conf." 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:3403 -#: network.c:848 -#: dhcp.c:823 +#: option.c:3403 network.c:845 dhcp.c:823 #, c-format msgid "failed to read %s: %s" msgstr "nie udaÅ‚o siÄ™ odczytać %s: %s" @@ -888,63 +873,63 @@ msgstr "prawdopodobnie wykryto atak DNS-rebind: %s" msgid "unknown interface %s in bridge-interface" msgstr "nieznany interfejs %s w bridge-u" -#: network.c:380 +#: network.c:384 #, c-format msgid "failed to create listening socket for %s: %s" msgstr "nie udaÅ‚o siÄ™ otworzyć gniazda %s: %s" -#: network.c:746 +#: network.c:743 #, c-format msgid "failed to bind server socket for %s: %s" msgstr "bÅ‚Ä…d przy przyznawaniu nazwy gniazdu serwera %s: %s" -#: network.c:783 +#: network.c:780 #, c-format msgid "ignoring nameserver %s - local interface" msgstr "ignorowanie serwera nazw %s - interfejs lokalny" -#: network.c:794 +#: network.c:791 #, c-format msgid "ignoring nameserver %s - cannot make/bind socket: %s" msgstr "ignorowanie serwera nazw %s - nie można utworzyć/dowiÄ…zać gniazda: %s" -#: network.c:811 +#: network.c:808 msgid "unqualified" msgstr "niekwalifikowane(-a)" -#: network.c:811 +#: network.c:808 msgid "names" msgstr "nazwy" -#: network.c:813 +#: network.c:810 msgid "default" msgstr "domyÅ›lne" -#: network.c:815 +#: network.c:812 msgid "domain" msgstr "domeny" -#: network.c:818 +#: network.c:815 #, c-format msgid "using local addresses only for %s %s" msgstr "używam adresów lokalnych tylko dla %s %s" -#: network.c:820 +#: network.c:817 #, c-format msgid "using standard nameservers for %s %s" msgstr "używam standardowych serwerów nazw dla %s %s" -#: network.c:822 +#: network.c:819 #, c-format msgid "using nameserver %s#%d for %s %s" msgstr "używam serwera nazw %s#%d dla %s %s" -#: network.c:825 +#: network.c:822 #, c-format msgid "using nameserver %s#%d(via %s)" msgstr "używam serwera nazw %s#%d (przez %s)" -#: network.c:827 +#: network.c:824 #, c-format msgid "using nameserver %s#%d" msgstr "używam serwera nazw %s#%d" @@ -984,8 +969,7 @@ msgstr "nieznany interfejs %s" msgid "no interface with address %s" msgstr "brak interfejsu z adresem %s" -#: dnsmasq.c:219 -#: dnsmasq.c:690 +#: dnsmasq.c:219 dnsmasq.c:716 #, c-format msgid "DBus error: %s" msgstr "bÅ‚Ä…d DBus: %s" @@ -1004,162 +988,162 @@ msgstr "nieznany użytkownik lub grupa: %s" msgid "cannot chdir to filesystem root: %s" msgstr "nie potrafiÄ™ wejść do głównego katalogu: %s" -#: dnsmasq.c:467 +#: dnsmasq.c:477 #, c-format msgid "started, version %s DNS disabled" msgstr "uruchomiony, wersja %s, DNS wyÅ‚Ä…czony" -#: dnsmasq.c:469 +#: dnsmasq.c:479 #, c-format msgid "started, version %s cachesize %d" msgstr "uruchomiony, wersja %s, %d miejsc w pamiÄ™ci podrÄ™cznej" -#: dnsmasq.c:471 +#: dnsmasq.c:481 #, c-format msgid "started, version %s cache disabled" msgstr "uruchomiony, wersja %s, pamięć podrÄ™czna wyÅ‚Ä…czona" -#: dnsmasq.c:473 +#: dnsmasq.c:483 #, c-format msgid "compile time options: %s" msgstr "opcje kompilacji: %s" -#: dnsmasq.c:479 +#: dnsmasq.c:489 msgid "DBus support enabled: connected to system bus" msgstr "obsÅ‚uga DBus wÅ‚Ä…czona, podÅ‚Ä…czono do serwera DBus" -#: dnsmasq.c:481 +#: dnsmasq.c:491 msgid "DBus support enabled: bus connection pending" msgstr "obsÅ‚uga DBus wÅ‚Ä…czona, trwa podÅ‚Ä…czanie do serwera DBus" -#: dnsmasq.c:486 +#: dnsmasq.c:496 #, c-format msgid "warning: failed to change owner of %s: %s" msgstr "UWAGA! Nie udaÅ‚o siÄ™ zmienić użytkownika pliku %s: %s" -#: dnsmasq.c:490 +#: dnsmasq.c:500 msgid "setting --bind-interfaces option because of OS limitations" msgstr "ustawiam --bind-interfaces z powodu ograniczeÅ„ systemu operacyjnego" -#: dnsmasq.c:495 +#: dnsmasq.c:505 #, c-format msgid "warning: interface %s does not currently exist" msgstr "uwaga: interfejs %s nie jest wÅ‚Ä…czony" -#: dnsmasq.c:500 +#: dnsmasq.c:510 msgid "warning: ignoring resolv-file flag because no-resolv is set" msgstr "uwaga: ignorujÄ™ opcjÄ™ resolv-file, ponieważ wybrano tryb no-resolv" -#: dnsmasq.c:503 +#: dnsmasq.c:513 msgid "warning: no upstream servers configured" msgstr "uwaga: nie wskazano nadrzÄ™dnych serwerów DNS" -#: dnsmasq.c:507 +#: dnsmasq.c:517 #, c-format msgid "asynchronous logging enabled, queue limit is %d messages" msgstr "wÅ‚Ä…czono asynchroniczny tryb zapisu do logów z kolejkÄ… na %d komunikatów" -#: dnsmasq.c:520 +#: dnsmasq.c:530 #, c-format msgid "DHCP, static leases only on %.0s%s, lease time %s" msgstr "DHCP: tylko statyczne dzierżawy na %.0s%s, czas dzierżawy %s" -#: dnsmasq.c:522 +#: dnsmasq.c:532 #, c-format msgid "DHCP, proxy on subnet %.0s%s%.0s" msgstr "DHCP: poÅ›rednik na podsieci %.0s%s%.0s" -#: dnsmasq.c:523 +#: dnsmasq.c:533 #, c-format msgid "DHCP, IP range %s -- %s, lease time %s" msgstr "DHCP: zakres IP %s -- %s, czas dzierżawy %s" -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "root is " msgstr "z głównym katalogiem w " -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "enabled" msgstr "wÅ‚Ä…czony" -#: dnsmasq.c:540 +#: dnsmasq.c:550 msgid "secure mode" msgstr "w trybie bezpiecznym" -#: dnsmasq.c:566 +#: dnsmasq.c:576 #, c-format msgid "restricting maximum simultaneous TFTP transfers to %d" msgstr "ograniczam ilość jednoczesnych przesÅ‚aÅ„ TFTP do %d" -#: dnsmasq.c:692 +#: dnsmasq.c:718 msgid "connected to system DBus" msgstr "podÅ‚Ä…czono do DBus-a" -#: dnsmasq.c:787 +#: dnsmasq.c:813 #, c-format msgid "cannot fork into background: %s" msgstr "nie potrafiÄ™ przeÅ‚Ä…czyć siÄ™ do pracy w tle: %s" -#: dnsmasq.c:790 +#: dnsmasq.c:816 #, c-format msgid "failed to create helper: %s" msgstr "nie udaÅ‚o siÄ™ utworzyć procesu pomocniczego: %s" -#: dnsmasq.c:793 +#: dnsmasq.c:819 #, c-format msgid "setting capabilities failed: %s" msgstr "nie powiodÅ‚o siÄ™ ustawianie ograniczeÅ„ (capabilities): %s" -#: dnsmasq.c:797 +#: dnsmasq.c:823 #, 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:802 +#: dnsmasq.c:828 #, c-format msgid "failed to change group-id to %s: %s" msgstr "nie udaÅ‚o siÄ™ zmienić grupy procesu na %s: %s" -#: dnsmasq.c:805 +#: dnsmasq.c:831 #, c-format msgid "failed to open pidfile %s: %s" msgstr "nie udaÅ‚o siÄ™ otworzyć pliku z PID-em %s: %s" -#: dnsmasq.c:808 +#: dnsmasq.c:834 #, c-format msgid "cannot open %s: %s" msgstr "nie można otworzyć %s: %s" -#: dnsmasq.c:863 +#: dnsmasq.c:889 #, c-format msgid "child process killed by signal %d" msgstr "proces potomny zabity sygnaÅ‚em %d" -#: dnsmasq.c:867 +#: dnsmasq.c:893 #, c-format msgid "child process exited with status %d" msgstr "proces potomny zakoÅ„czyÅ‚ siÄ™ z kodem powrotu %d" -#: dnsmasq.c:871 +#: dnsmasq.c:897 #, c-format msgid "failed to execute %s: %s" msgstr "nie udaÅ‚o siÄ™ uruchomić %s: %s" -#: dnsmasq.c:915 +#: dnsmasq.c:941 msgid "exiting on receipt of SIGTERM" msgstr "zakoÅ„czyÅ‚em dziaÅ‚anie z powodu odebrania SIGTERM" -#: dnsmasq.c:943 +#: dnsmasq.c:969 #, c-format msgid "failed to access %s: %s" msgstr "brak dostÄ™pu do %s: %s" -#: dnsmasq.c:973 +#: dnsmasq.c:999 #, c-format msgid "reading %s" msgstr "czytanie %s" -#: dnsmasq.c:984 +#: dnsmasq.c:1010 #, c-format msgid "no servers found in %s, will retry" msgstr "w %s nie znalazÅ‚em serwerów, spróbujÄ™ ponownie później" @@ -1280,24 +1264,19 @@ msgstr "%u dostÄ™pny zakres adresów DHCP: %s -- %s" msgid "disabled" msgstr "wyÅ‚Ä…czony(a)" -#: rfc2131.c:428 -#: rfc2131.c:945 -#: rfc2131.c:1337 +#: rfc2131.c:428 rfc2131.c:945 rfc2131.c:1337 msgid "ignored" msgstr "ignorujÄ™" -#: rfc2131.c:443 -#: rfc2131.c:1183 +#: rfc2131.c:443 rfc2131.c:1183 msgid "address in use" msgstr "adres jest w użyciu" -#: rfc2131.c:457 -#: rfc2131.c:999 +#: rfc2131.c:457 rfc2131.c:999 msgid "no address available" msgstr "brak dostÄ™pnego adresu" -#: rfc2131.c:464 -#: rfc2131.c:1146 +#: rfc2131.c:464 rfc2131.c:1146 msgid "wrong network" msgstr "nieprawidÅ‚owa sieć" @@ -1305,8 +1284,7 @@ msgstr "nieprawidÅ‚owa sieć" msgid "no address configured" msgstr "brak skonfigurowanego adresu" -#: rfc2131.c:485 -#: rfc2131.c:1196 +#: rfc2131.c:485 rfc2131.c:1196 msgid "no leases left" msgstr "brak wolnych dzierżaw" @@ -1353,8 +1331,7 @@ msgstr "nie proponujÄ™ zakÅ‚adanego w konfiguracji adresu %s, bo używa go któr msgid "not using configured address %s because it was previously declined" msgstr "nie proponujÄ™ zakÅ‚adanego w konfiguracji adresu %s, bo już poprzednio zostaÅ‚ odrzucony" -#: rfc2131.c:997 -#: rfc2131.c:1189 +#: rfc2131.c:997 rfc2131.c:1189 msgid "no unique-id" msgstr "brak unikalnego id" @@ -1446,7 +1423,7 @@ msgstr "nie mogÄ™ wysÅ‚ać opcji RFC3925: za dÅ‚ugi Å‚aÅ„cuch opcji przy numerze msgid "cannot create netlink socket: %s" msgstr "nie potrafiÄ™ utworzyć poÅ‚Ä…czenia netlink %s" -#: netlink.c:288 +#: netlink.c:289 #, c-format msgid "netlink returns error: %s" msgstr "wystÄ…piÅ‚ bÅ‚Ä…d w poÅ‚Ä…czeniu netlink %s" diff --git a/po/pt_BR.po b/po/pt_BR.po index d341025..30b8c86 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -831,7 +831,7 @@ msgstr "" msgid "must have exactly one resolv.conf to read domain from." msgstr "" -#: option.c:3403 network.c:848 dhcp.c:823 +#: option.c:3403 network.c:845 dhcp.c:823 #, c-format msgid "failed to read %s: %s" msgstr "" @@ -864,63 +864,63 @@ msgstr "" msgid "unknown interface %s in bridge-interface" msgstr "" -#: network.c:380 +#: network.c:384 #, c-format msgid "failed to create listening socket for %s: %s" msgstr "" -#: network.c:746 +#: network.c:743 #, c-format msgid "failed to bind server socket for %s: %s" msgstr "" -#: network.c:783 +#: network.c:780 #, c-format msgid "ignoring nameserver %s - local interface" msgstr "" -#: network.c:794 +#: network.c:791 #, c-format msgid "ignoring nameserver %s - cannot make/bind socket: %s" msgstr "" -#: network.c:811 +#: network.c:808 msgid "unqualified" msgstr "" -#: network.c:811 +#: network.c:808 msgid "names" msgstr "" -#: network.c:813 +#: network.c:810 msgid "default" msgstr "" -#: network.c:815 +#: network.c:812 msgid "domain" msgstr "" -#: network.c:818 +#: network.c:815 #, c-format msgid "using local addresses only for %s %s" msgstr "" -#: network.c:820 +#: network.c:817 #, c-format msgid "using standard nameservers for %s %s" msgstr "" -#: network.c:822 +#: network.c:819 #, c-format msgid "using nameserver %s#%d for %s %s" msgstr "" -#: network.c:825 +#: network.c:822 #, c-format msgid "using nameserver %s#%d(via %s)" msgstr "" -#: network.c:827 +#: network.c:824 #, c-format msgid "using nameserver %s#%d" msgstr "" @@ -960,7 +960,7 @@ msgstr "" msgid "no interface with address %s" msgstr "" -#: dnsmasq.c:219 dnsmasq.c:690 +#: dnsmasq.c:219 dnsmasq.c:716 #, c-format msgid "DBus error: %s" msgstr "" @@ -979,162 +979,162 @@ msgstr "" msgid "cannot chdir to filesystem root: %s" msgstr "" -#: dnsmasq.c:467 +#: dnsmasq.c:477 #, c-format msgid "started, version %s DNS disabled" msgstr "" -#: dnsmasq.c:469 +#: dnsmasq.c:479 #, c-format msgid "started, version %s cachesize %d" msgstr "" -#: dnsmasq.c:471 +#: dnsmasq.c:481 #, c-format msgid "started, version %s cache disabled" msgstr "" -#: dnsmasq.c:473 +#: dnsmasq.c:483 #, c-format msgid "compile time options: %s" msgstr "" -#: dnsmasq.c:479 +#: dnsmasq.c:489 msgid "DBus support enabled: connected to system bus" msgstr "" -#: dnsmasq.c:481 +#: dnsmasq.c:491 msgid "DBus support enabled: bus connection pending" msgstr "" -#: dnsmasq.c:486 +#: dnsmasq.c:496 #, c-format msgid "warning: failed to change owner of %s: %s" msgstr "" -#: dnsmasq.c:490 +#: dnsmasq.c:500 msgid "setting --bind-interfaces option because of OS limitations" msgstr "" -#: dnsmasq.c:495 +#: dnsmasq.c:505 #, c-format msgid "warning: interface %s does not currently exist" msgstr "" -#: dnsmasq.c:500 +#: dnsmasq.c:510 msgid "warning: ignoring resolv-file flag because no-resolv is set" msgstr "" -#: dnsmasq.c:503 +#: dnsmasq.c:513 msgid "warning: no upstream servers configured" msgstr "" -#: dnsmasq.c:507 +#: dnsmasq.c:517 #, c-format msgid "asynchronous logging enabled, queue limit is %d messages" msgstr "" -#: dnsmasq.c:520 +#: dnsmasq.c:530 #, c-format msgid "DHCP, static leases only on %.0s%s, lease time %s" msgstr "" -#: dnsmasq.c:522 +#: dnsmasq.c:532 #, c-format msgid "DHCP, proxy on subnet %.0s%s%.0s" msgstr "" -#: dnsmasq.c:523 +#: dnsmasq.c:533 #, c-format msgid "DHCP, IP range %s -- %s, lease time %s" msgstr "" -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "root is " msgstr "" -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "enabled" msgstr "" -#: dnsmasq.c:540 +#: dnsmasq.c:550 msgid "secure mode" msgstr "" -#: dnsmasq.c:566 +#: dnsmasq.c:576 #, c-format msgid "restricting maximum simultaneous TFTP transfers to %d" msgstr "" -#: dnsmasq.c:692 +#: dnsmasq.c:718 msgid "connected to system DBus" msgstr "" -#: dnsmasq.c:787 +#: dnsmasq.c:813 #, c-format msgid "cannot fork into background: %s" msgstr "" -#: dnsmasq.c:790 +#: dnsmasq.c:816 #, c-format msgid "failed to create helper: %s" msgstr "" -#: dnsmasq.c:793 +#: dnsmasq.c:819 #, c-format msgid "setting capabilities failed: %s" msgstr "" -#: dnsmasq.c:797 +#: dnsmasq.c:823 #, c-format msgid "failed to change user-id to %s: %s" msgstr "" -#: dnsmasq.c:802 +#: dnsmasq.c:828 #, c-format msgid "failed to change group-id to %s: %s" msgstr "" -#: dnsmasq.c:805 +#: dnsmasq.c:831 #, c-format msgid "failed to open pidfile %s: %s" msgstr "" -#: dnsmasq.c:808 +#: dnsmasq.c:834 #, c-format msgid "cannot open %s: %s" msgstr "" -#: dnsmasq.c:863 +#: dnsmasq.c:889 #, c-format msgid "child process killed by signal %d" msgstr "" -#: dnsmasq.c:867 +#: dnsmasq.c:893 #, c-format msgid "child process exited with status %d" msgstr "" -#: dnsmasq.c:871 +#: dnsmasq.c:897 #, c-format msgid "failed to execute %s: %s" msgstr "" -#: dnsmasq.c:915 +#: dnsmasq.c:941 msgid "exiting on receipt of SIGTERM" msgstr "" -#: dnsmasq.c:943 +#: dnsmasq.c:969 #, c-format msgid "failed to access %s: %s" msgstr "" -#: dnsmasq.c:973 +#: dnsmasq.c:999 #, c-format msgid "reading %s" msgstr "" -#: dnsmasq.c:984 +#: dnsmasq.c:1010 #, c-format msgid "no servers found in %s, will retry" msgstr "" @@ -1414,7 +1414,7 @@ msgstr "" msgid "cannot create netlink socket: %s" msgstr "" -#: netlink.c:288 +#: netlink.c:289 #, c-format msgid "netlink returns error: %s" msgstr "" @@ -862,7 +862,7 @@ msgstr "se permite un singur fiÅŸier resolv.conf în modul no-poll" 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:3403 network.c:848 dhcp.c:823 +#: option.c:3403 network.c:845 dhcp.c:823 #, fuzzy, c-format msgid "failed to read %s: %s" msgstr "nu pot citi %s: %s" @@ -895,63 +895,63 @@ msgstr "" msgid "unknown interface %s in bridge-interface" msgstr "interfaţă necunoscută %s" -#: network.c:380 +#: network.c:384 #, fuzzy, c-format msgid "failed to create listening socket for %s: %s" msgstr "creearea socket-ului de ascultare a eÅŸuat: %s" -#: network.c:746 +#: network.c:743 #, fuzzy, c-format msgid "failed to bind server socket for %s: %s" msgstr "activarea socket-ului de ascultare pentru %s a eÅŸuat: %s" -#: network.c:783 +#: network.c:780 #, c-format msgid "ignoring nameserver %s - local interface" msgstr "ignorăm serverul DNS %s - interfaţă locală" -#: network.c:794 +#: network.c:791 #, fuzzy, c-format msgid "ignoring nameserver %s - cannot make/bind socket: %s" msgstr "ignorăm serverul DNS %s - nu pot creea/activa socket-ul: %s" -#: network.c:811 +#: network.c:808 msgid "unqualified" msgstr "invalid" -#: network.c:811 +#: network.c:808 msgid "names" msgstr "" -#: network.c:813 +#: network.c:810 msgid "default" msgstr "" -#: network.c:815 +#: network.c:812 msgid "domain" msgstr "domeniu" -#: network.c:818 +#: network.c:815 #, c-format msgid "using local addresses only for %s %s" msgstr "folosim adresele locale doar pentru %S %s" -#: network.c:820 +#: network.c:817 #, fuzzy, c-format msgid "using standard nameservers for %s %s" msgstr "folosim serverul DNS %s#%d pentru %s %s" -#: network.c:822 +#: network.c:819 #, c-format msgid "using nameserver %s#%d for %s %s" msgstr "folosim serverul DNS %s#%d pentru %s %s" -#: network.c:825 +#: network.c:822 #, fuzzy, c-format msgid "using nameserver %s#%d(via %s)" msgstr "folosim serverul DNS %s#%d" -#: network.c:827 +#: network.c:824 #, c-format msgid "using nameserver %s#%d" msgstr "folosim serverul DNS %s#%d" @@ -993,7 +993,7 @@ msgstr "interfaţă necunoscută %s" msgid "no interface with address %s" msgstr "nu exista interfaţă pentru adresa %s" -#: dnsmasq.c:219 dnsmasq.c:690 +#: dnsmasq.c:219 dnsmasq.c:716 #, c-format msgid "DBus error: %s" msgstr "eroare DBus: %s" @@ -1012,167 +1012,167 @@ msgstr "" msgid "cannot chdir to filesystem root: %s" msgstr "" -#: dnsmasq.c:467 +#: dnsmasq.c:477 #, fuzzy, c-format msgid "started, version %s DNS disabled" msgstr "am pornit, versiunea %s memorie temporară dezactivată" -#: dnsmasq.c:469 +#: dnsmasq.c:479 #, c-format msgid "started, version %s cachesize %d" msgstr "am ponit, versiunea %s memorie temporară %d" -#: dnsmasq.c:471 +#: dnsmasq.c:481 #, c-format msgid "started, version %s cache disabled" msgstr "am pornit, versiunea %s memorie temporară dezactivată" -#: dnsmasq.c:473 +#: dnsmasq.c:483 #, c-format msgid "compile time options: %s" msgstr "compilat cu opÅ£iunile: %s" -#: dnsmasq.c:479 +#: dnsmasq.c:489 msgid "DBus support enabled: connected to system bus" msgstr "suportul DBus activ: sunt conectat la magistrala sistem" -#: dnsmasq.c:481 +#: dnsmasq.c:491 msgid "DBus support enabled: bus connection pending" msgstr "suportul DBus activ: aÅŸtept conexiunea la magistrală" # for compatibility purposes the letters â, ă, ÅŸ, Å£ and î can be written as their look-alike correspondent. -#: dnsmasq.c:486 +#: dnsmasq.c:496 #, fuzzy, c-format msgid "warning: failed to change owner of %s: %s" msgstr "încărcarea numelor din %s: %s a eÅŸuat" -#: dnsmasq.c:490 +#: dnsmasq.c:500 msgid "setting --bind-interfaces option because of OS limitations" msgstr "specific opÅ£iunea --bind-interfaces din cauza limitărilor SO" -#: dnsmasq.c:495 +#: dnsmasq.c:505 #, c-format msgid "warning: interface %s does not currently exist" msgstr "atenÅ£ie: interfaÅ£a %s nu există momentan" -#: dnsmasq.c:500 +#: dnsmasq.c:510 msgid "warning: ignoring resolv-file flag because no-resolv is set" msgstr "" -#: dnsmasq.c:503 +#: dnsmasq.c:513 #, fuzzy msgid "warning: no upstream servers configured" msgstr "configurăm serverele superioare prin Dbus" -#: dnsmasq.c:507 +#: dnsmasq.c:517 #, c-format msgid "asynchronous logging enabled, queue limit is %d messages" msgstr "" -#: dnsmasq.c:520 +#: dnsmasq.c:530 #, c-format msgid "DHCP, static leases only on %.0s%s, lease time %s" msgstr "DHCP, împrumuturi statice doar către %.0s%s, timpul reînoirii %s" -#: dnsmasq.c:522 +#: dnsmasq.c:532 #, c-format msgid "DHCP, proxy on subnet %.0s%s%.0s" msgstr "" -#: dnsmasq.c:523 +#: dnsmasq.c:533 #, c-format msgid "DHCP, IP range %s -- %s, lease time %s" msgstr "DHCP, domeniu IP %s -- %s, timpul reînoirii %s" -#: dnsmasq.c:538 +#: dnsmasq.c:548 msgid "root is " msgstr "" -#: dnsmasq.c:538 +#: dnsmasq.c:548 #, fuzzy msgid "enabled" msgstr "dezactivat" -#: dnsmasq.c:540 +#: dnsmasq.c:550 msgid "secure mode" msgstr "" -#: dnsmasq.c:566 +#: dnsmasq.c:576 #, c-format msgid "restricting maximum simultaneous TFTP transfers to %d" msgstr "" -#: dnsmasq.c:692 +#: dnsmasq.c:718 msgid "connected to system DBus" msgstr "magistrala sistem Dbus conectată" -#: dnsmasq.c:787 +#: dnsmasq.c:813 #, c-format msgid "cannot fork into background: %s" msgstr "" -#: dnsmasq.c:790 +#: dnsmasq.c:816 #, fuzzy, c-format msgid "failed to create helper: %s" msgstr "nu pot citi %s: %s" -#: dnsmasq.c:793 +#: dnsmasq.c:819 #, c-format msgid "setting capabilities failed: %s" msgstr "" # for compatibility purposes the letters â, ă, ÅŸ, Å£ and î can be written as their look-alike correspondent. -#: dnsmasq.c:797 +#: dnsmasq.c:823 #, 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:802 +#: dnsmasq.c:828 #, fuzzy, c-format msgid "failed to change group-id to %s: %s" msgstr "încărcarea numelor din %s: %s a eÅŸuat" -#: dnsmasq.c:805 +#: dnsmasq.c:831 #, fuzzy, c-format msgid "failed to open pidfile %s: %s" msgstr "nu pot citi %s: %s" -#: dnsmasq.c:808 +#: dnsmasq.c:834 #, fuzzy, c-format msgid "cannot open %s: %s" msgstr "nu pot deschide %s:%s" -#: dnsmasq.c:863 +#: dnsmasq.c:889 #, c-format msgid "child process killed by signal %d" msgstr "" -#: dnsmasq.c:867 +#: dnsmasq.c:893 #, c-format msgid "child process exited with status %d" msgstr "" -#: dnsmasq.c:871 +#: dnsmasq.c:897 #, fuzzy, c-format msgid "failed to execute %s: %s" msgstr "accesarea serverului %s a eÅŸuat: %s" -#: dnsmasq.c:915 +#: dnsmasq.c:941 msgid "exiting on receipt of SIGTERM" msgstr "am primit SIGTERM, am terminat" -#: dnsmasq.c:943 +#: dnsmasq.c:969 #, fuzzy, c-format msgid "failed to access %s: %s" msgstr "accesarea serverului %s a eÅŸuat: %s" -#: dnsmasq.c:973 +#: dnsmasq.c:999 #, c-format msgid "reading %s" msgstr "citesc %s" -#: dnsmasq.c:984 +#: dnsmasq.c:1010 #, 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" @@ -1452,7 +1452,7 @@ msgstr "" msgid "cannot create netlink socket: %s" msgstr "nu pot să activez socket-ul netlink: %s" -#: netlink.c:288 +#: netlink.c:289 #, fuzzy, c-format msgid "netlink returns error: %s" msgstr "eroare DBus: %s" @@ -184,7 +184,7 @@ int iface_enumerate(int family, void *parm, int (*callback)()) } if (!((*callback)(addr, (int)((struct sockaddr_in6 *)&ifr->ifr_addr)->sin6_scope_id, - (int)if_nametoindex(ifr->ifr_name), + (int)if_nametoindex(ifr->ifr_name), 0, parm))) goto err; } diff --git a/src/config.h b/src/config.h index a988770..ec048ad 100644 --- a/src/config.h +++ b/src/config.h @@ -14,7 +14,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#define VERSION "2.58" +#define VERSION "2.59" #define FTABSIZ 150 /* max number of outstanding requests (default) */ #define MAX_PROCS 20 /* max no children for TCP requests */ @@ -74,7 +74,6 @@ #define TFTP_MAX_CONNECTIONS 50 /* max simultaneous connections */ #define LOG_MAX 5 /* log-queue length */ #define RANDFILE "/dev/urandom" -#define DAD_WAIT 20 /* retry binding IPv6 sockets for this long */ #define EDNS0_OPTION_MAC 5 /* dyndns.org temporary assignment */ /* DBUS interface specifics */ diff --git a/src/dnsmasq.c b/src/dnsmasq.c index 821b7f0..791a0dd 100644 --- a/src/dnsmasq.c +++ b/src/dnsmasq.c @@ -190,7 +190,7 @@ int main (int argc, char **argv) if (option_bool(OPT_NOWILD)) { - daemon->listeners = create_bound_listeners(); + create_bound_listeners(1); for (if_tmp = daemon->if_names; if_tmp; if_tmp = if_tmp->next) if (if_tmp->name && !if_tmp->used) @@ -204,7 +204,7 @@ int main (int argc, char **argv) } } else - daemon->listeners = create_wildcard_listeners(); + create_wildcard_listeners(); if (daemon->port != 0) cache_init(); @@ -397,11 +397,17 @@ int main (int argc, char **argv) if (ent_pw && ent_pw->pw_uid != 0) { -#if defined(HAVE_LINUX_NETWORK) +#if defined(HAVE_LINUX_NETWORK) /* On linux, we keep CAP_NETADMIN (for ARP-injection) and - CAP_NET_RAW (for icmp) if we're doing dhcp */ - data->effective = data->permitted = data->inheritable = - (1 << CAP_NET_ADMIN) | (1 << CAP_NET_RAW) | (1 << CAP_SETUID); + CAP_NET_RAW (for icmp) if we're doing dhcp. If we have yet to bind + ports because of DAD, we need CAP_NET_BIND_SERVICE too. */ + if (is_dad_listeners()) + data->effective = data->permitted = data->inheritable = + (1 << CAP_NET_ADMIN) | (1 << CAP_NET_RAW) | + (1 << CAP_SETUID) | (1 << CAP_NET_BIND_SERVICE); + else + data->effective = data->permitted = data->inheritable = + (1 << CAP_NET_ADMIN) | (1 << CAP_NET_RAW) | (1 << CAP_SETUID); /* Tell kernel to not clear capabilities when dropping root */ if (capset(hdr, data) == -1 || prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) == -1) @@ -443,8 +449,12 @@ int main (int argc, char **argv) } #ifdef HAVE_LINUX_NETWORK - data->effective = data->permitted = - (1 << CAP_NET_ADMIN) | (1 << CAP_NET_RAW); + if (is_dad_listeners()) + data->effective = data->permitted = + (1 << CAP_NET_ADMIN) | (1 << CAP_NET_RAW) | (1 << CAP_NET_BIND_SERVICE); + else + data->effective = data->permitted = + (1 << CAP_NET_ADMIN) | (1 << CAP_NET_RAW); data->inheritable = 0; /* lose the setuid and setgid capbilities */ @@ -605,6 +615,13 @@ int main (int argc, char **argv) t.tv_usec = 250000; tp = &t; } + /* Wake every second whilst waiting for DAD to complete */ + else if (is_dad_listeners()) + { + t.tv_sec = 1; + t.tv_usec = 0; + tp = &t; + } #ifdef HAVE_DBUS set_dbus_listeners(&maxfd, &rset, &wset, &eset); @@ -659,6 +676,15 @@ int main (int argc, char **argv) now = dnsmasq_time(); check_log_writer(&wset); + + /* Check the interfaces to see if any have exited DAD state + and if so, bind the address. */ + if (is_dad_listeners()) + { + enumerate_interfaces(); + /* NB, is_dad_listeners() == 1 --> we're binding interfaces */ + create_bound_listeners(0); + } #ifdef HAVE_LINUX_NETWORK if (FD_ISSET(daemon->netlinkfd, &rset)) diff --git a/src/dnsmasq.h b/src/dnsmasq.h index 3bf7a44..1eba3d0 100644 --- a/src/dnsmasq.h +++ b/src/dnsmasq.h @@ -363,7 +363,7 @@ struct server { struct irec { union mysockaddr addr; struct in_addr netmask; /* only valid for IPv4 */ - int tftp_ok, mtu; + int tftp_ok, mtu, done, dad; char *name; struct irec *next; }; @@ -829,8 +829,9 @@ void pre_allocate_sfds(void); int reload_servers(char *fname); void check_servers(void); int enumerate_interfaces(); -struct listener *create_wildcard_listeners(void); -struct listener *create_bound_listeners(void); +void create_wildcard_listeners(void); +void create_bound_listeners(int die); +int is_dad_listeners(void); int iface_check(int family, struct all_addr *addr, char *name, int *indexp); int fix_fd(int fd); struct in_addr get_ifaddr(char *intr); diff --git a/src/netlink.c b/src/netlink.c index df3585f..6ece177 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -222,7 +222,8 @@ int iface_enumerate(int family, void *parm, int (*callback)()) } if (addrp) - if (!((*callback)(addrp, ifa->ifa_scope, ifa->ifa_index, parm))) + if (!((*callback)(addrp, ifa->ifa_index, + ifa->ifa_index, ifa->ifa_flags & IFA_F_TENTATIVE, parm))) return 0; } #endif diff --git a/src/network.c b/src/network.c index fe5557a..ee590d8 100644 --- a/src/network.c +++ b/src/network.c @@ -187,7 +187,7 @@ int iface_check(int family, struct all_addr *addr, char *name, int *indexp) } static int iface_allowed(struct irec **irecp, int if_index, - union mysockaddr *addr, struct in_addr netmask) + union mysockaddr *addr, struct in_addr netmask, int dad) { struct irec *iface; int fd, mtu = 0, loopback; @@ -202,8 +202,11 @@ static int iface_allowed(struct irec **irecp, int if_index, we call this routine multiple times. */ for (iface = *irecp; iface; iface = iface->next) if (sockaddr_isequal(&iface->addr, addr)) - return 1; - + { + iface->dad = dad; + return 1; + } + if ((fd = socket(PF_INET, SOCK_DGRAM, 0)) == -1 || !indextoname(fd, if_index, ifr.ifr_name) || ioctl(fd, SIOCGIFFLAGS, &ifr) == -1) @@ -283,6 +286,8 @@ static int iface_allowed(struct irec **irecp, int if_index, iface->netmask = netmask; iface->tftp_ok = tftp_ok; iface->mtu = mtu; + iface->dad = dad; + iface->done = 0; if ((iface->name = whine_malloc(strlen(ifr.ifr_name)+1))) strcpy(iface->name, ifr.ifr_name); iface->next = *irecp; @@ -296,7 +301,7 @@ static int iface_allowed(struct irec **irecp, int if_index, #ifdef HAVE_IPV6 static int iface_allowed_v6(struct in6_addr *local, - int scope, int if_index, void *vparam) + int scope, int if_index, int dad, void *vparam) { union mysockaddr addr; struct in_addr netmask; /* dummy */ @@ -312,7 +317,7 @@ static int iface_allowed_v6(struct in6_addr *local, addr.in6.sin6_port = htons(daemon->port); addr.in6.sin6_scope_id = scope; - return iface_allowed((struct irec **)vparam, if_index, &addr, netmask); + return iface_allowed((struct irec **)vparam, if_index, &addr, netmask, dad); } #endif @@ -330,7 +335,7 @@ static int iface_allowed_v4(struct in_addr local, int if_index, addr.in.sin_addr = local; addr.in.sin_port = htons(daemon->port); - return iface_allowed((struct irec **)vparam, if_index, &addr, netmask); + return iface_allowed((struct irec **)vparam, if_index, &addr, netmask, 0); } int enumerate_interfaces(void) @@ -355,13 +360,10 @@ int fix_fd(int fd) return 1; } -static int make_sock(union mysockaddr *addr, int type) +static int make_sock(union mysockaddr *addr, int type, int dienow) { int family = addr->sa.sa_family; int fd, rc, opt = 1; -#ifdef HAVE_IPV6 - static int dad_count = 0; -#endif if ((fd = socket(family, type, 0)) == -1) { @@ -374,11 +376,16 @@ static int make_sock(union mysockaddr *addr, int type) return -1; err: - port = prettyprint_addr(addr, daemon->namebuff); - if (!option_bool(OPT_NOWILD)) - sprintf(daemon->namebuff, "port %d", port); - die(_("failed to create listening socket for %s: %s"), - daemon->namebuff, EC_BADNET); + if (dienow) + { + port = prettyprint_addr(addr, daemon->namebuff); + if (!option_bool(OPT_NOWILD)) + sprintf(daemon->namebuff, "port %d", port); + die(_("failed to create listening socket for %s: %s"), + daemon->namebuff, EC_BADNET); + + } + return -1; } if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1 || !fix_fd(fd)) @@ -389,27 +396,7 @@ static int make_sock(union mysockaddr *addr, int type) goto err; #endif - while (1) - { - if ((rc = bind(fd, (struct sockaddr *)addr, sa_len(addr))) != -1) - break; - -#ifdef HAVE_IPV6 - /* An interface may have an IPv6 address which is still undergoing DAD. - If so, the bind will fail until the DAD completes, so we try over 20 seconds - before failing. */ - if (family == AF_INET6 && - (errno == ENODEV || errno == EADDRNOTAVAIL) && - dad_count++ < DAD_WAIT) - { - sleep(1); - continue; - } -#endif - break; - } - - if (rc == -1) + if ((rc = bind(fd, (struct sockaddr *)addr, sa_len(addr))) == -1) goto err; if (type == SOCK_STREAM) @@ -462,15 +449,15 @@ static int make_sock(union mysockaddr *addr, int type) return fd; } -static struct listener *create_listeners(union mysockaddr *addr, int do_tftp) +static struct listener *create_listeners(union mysockaddr *addr, int do_tftp, int dienow) { struct listener *l = NULL; int fd = -1, tcpfd = -1, tftpfd = -1; if (daemon->port != 0) { - fd = make_sock(addr, SOCK_DGRAM); - tcpfd = make_sock(addr, SOCK_STREAM); + fd = make_sock(addr, SOCK_DGRAM, dienow); + tcpfd = make_sock(addr, SOCK_STREAM, dienow); } #ifdef HAVE_TFTP @@ -481,7 +468,7 @@ static struct listener *create_listeners(union mysockaddr *addr, int do_tftp) /* port must be restored to DNS port for TCP code */ short save = addr->in.sin_port; addr->in.sin_port = htons(TFTP_PORT); - tftpfd = make_sock(addr, SOCK_DGRAM); + tftpfd = make_sock(addr, SOCK_DGRAM, dienow); addr->in.sin_port = save; } # ifdef HAVE_IPV6 @@ -489,7 +476,7 @@ static struct listener *create_listeners(union mysockaddr *addr, int do_tftp) { short save = addr->in6.sin6_port; addr->in6.sin6_port = htons(TFTP_PORT); - tftpfd = make_sock(addr, SOCK_DGRAM); + tftpfd = make_sock(addr, SOCK_DGRAM, dienow); addr->in6.sin6_port = save; } # endif @@ -509,7 +496,7 @@ static struct listener *create_listeners(union mysockaddr *addr, int do_tftp) return l; } -struct listener *create_wildcard_listeners(void) +void create_wildcard_listeners(void) { union mysockaddr addr; struct listener *l; @@ -523,7 +510,7 @@ struct listener *create_wildcard_listeners(void) addr.in.sin_addr.s_addr = INADDR_ANY; addr.in.sin_port = htons(daemon->port); - l = create_listeners(&addr, tftp_enabled); + l = create_listeners(&addr, tftp_enabled, 1); #ifdef HAVE_IPV6 memset(&addr, 0, sizeof(addr)); @@ -535,31 +522,41 @@ struct listener *create_wildcard_listeners(void) addr.in6.sin6_port = htons(daemon->port); if (l) - l->next = create_listeners(&addr, tftp_enabled); + l->next = create_listeners(&addr, tftp_enabled, 1); else - l = create_listeners(&addr, tftp_enabled); + l = create_listeners(&addr, tftp_enabled, 1); #endif - return l; + daemon->listeners = l; } -struct listener *create_bound_listeners(void) +void create_bound_listeners(int dienow) { - struct listener *new, *listeners = NULL; + struct listener *new; struct irec *iface; for (iface = daemon->interfaces; iface; iface = iface->next) - if ((new = create_listeners(&iface->addr, iface->tftp_ok))) + if (!iface->done && !iface->dad && + (new = create_listeners(&iface->addr, iface->tftp_ok, dienow))) { new->iface = iface; - new->next = listeners; - listeners = new; + new->next = daemon->listeners; + daemon->listeners = new; + iface->done = 1; } - - return listeners; } - +int is_dad_listeners(void) +{ + struct irec *iface; + + if (option_bool(OPT_NOWILD)) + for (iface = daemon->interfaces; iface; iface = iface->next) + if (iface->dad && !iface->done) + return 1; + + return 0; +} /* return a UDP socket bound to a random port, have to cope with straying into occupied port nos and reserved ones. */ int random_sock(int family) |