Compare commits

...

2 Commits
v2.29 ... v2.31

Author SHA1 Message Date
Simon Kelley
7cebd20fe7 import of dnsmasq-2.31.tar.gz 2012-01-05 17:31:12 +00:00
Simon Kelley
26d0dbaf24 import of dnsmasq-2.30.tar.gz 2012-01-05 17:31:12 +00:00
32 changed files with 2307 additions and 2168 deletions

View File

@@ -1801,6 +1801,37 @@ version 2.29
as root, and log a warning. Thanks to Scott Wehrenberg
for help tracking this down.
version 2.30
Fixed crash when a DHCP client requested a broadcast
reply. This problem was introduced in version 2.28.
Thanks to Sandra Dekkers for the bug report.
version 2.31
Added --dhcp-script option. There have been calls for this
for a long time from many good people. Fabio Muzzi gets
the prize for finally convincing me.
Added example dbus config file and moved dbus stuff into
its own directory.
Removed horribly outdated Redhat RPM build files. These
are obsolete now that dnsmasq in in Fedora extras. Thanks
to Patrick "Jima" Laughton, the Fedora package
maintainer.
Added workaround for Linux kernel bug. This manifests
itself as failure of DHCP on kernels with "support for
classical IP over ATM" configured. That includes most
Debian kernel packages. Many thanks to A. Costa and
Benjamin Kudria for their huge efforts in chasing this
down.
Force-kill child processes when dnsmasq is sent a sigterm,
otherwise an unclosed TCP connection could keep dnsmasq
hanging round for a few minutes.
Tweaked config.h logic for uclibc build. It will now pick
up MMU and IPV6 status correctly on every system I tested.

View File

@@ -6,10 +6,10 @@ OBJS = cache.o rfc1035.o util.o option.o forward.o isc.o network.o \
dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o
.c.o:
$(CC) $(CFLAGS) $(I18N) `../bld/pkg-wrapper $(PKG_CONFIG) --cflags dbus-1` $(RPM_OPT_FLAGS) -Wall -W -c $<
$(CC) $(CFLAGS) $(COPTS) $(I18N) `echo $(COPTS) | ../bld/pkg-wrapper $(PKG_CONFIG) --cflags dbus-1` $(RPM_OPT_FLAGS) -Wall -W -c $<
dnsmasq : $(OBJS)
$(CC) -o $@ $(OBJS) `../bld/pkg-wrapper $(PKG_CONFIG) --libs dbus-1` $(LIBS)
$(CC) -o $@ $(OBJS) `echo $(COPTS) | ../bld/pkg-wrapper $(PKG_CONFIG) --libs dbus-1` $(LIBS)
dnsmasq.pot : $(OBJS:.o=.c) dnsmasq.h config.h
xgettext -d dnsmasq --foreign-user --keyword=_ -o dnsmasq.pot -i $(OBJS:.o=.c)

View File

@@ -1,6 +1,6 @@
#!/bin/sh
if grep -q "^\#.*define.*HAVE_DBUS" config.h ; then
if grep -q "^\#.*define.*HAVE_DBUS" config.h || grep -q HAVE_DBUS ; then
exec $*
fi

16
dbus/dnsmasq.conf Normal file
View File

@@ -0,0 +1,16 @@
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy user="root">
<allow own="uk.org.thekelleys.dnsmasq"/>
<allow send_destination="uk.org.thekelleys.dnsmasq"/>
<allow send_interface="uk.org.thekelleys.dnsmasq"/>
</policy>
<policy context="default">
<deny own="uk.org.thekelleys.dnsmasq"/>
<deny send_destination="uk.org.thekelleys.dnsmasq"/>
<deny send_interface="uk.org.thekelleys.dnsmasq"/>
</policy>
</busconfig>

View File

@@ -1,133 +0,0 @@
###############################################################################
#
# General mumbojumbo
#
###############################################################################
Name: dnsmasq
Version: 2.29
Release: 1
License: GPL
Group: System Environment/Daemons
Vendor: Simon Kelley
Packager: Simon Kelley
Distribution: Red Hat Linux
URL: http://www.thekelleys.org.uk/dnsmasq
Source0: %{name}-%{version}.tar.gz
Requires: chkconfig
BuildRoot: /var/tmp/%{name}-%{version}
Summary: A lightweight caching nameserver
%description
Dnsmasq is lightweight, easy to configure DNS forwarder and DHCP server. It
is designed to provide DNS and, optionally, DHCP, to a small network. It can
serve the names of local machines which are not in the global DNS. The DHCP
server integrates with the DNS server and allows machines with DHCP-allocated
addresses to appear in the DNS with names configured either in each host or
in a central configuration file. Dnsmasq supports static and dynamic DHCP
leases and BOOTP for network booting of diskless machines.
###############################################################################
#
# Build
#
###############################################################################
%prep
%setup -q
%build
make all-i18n PREFIX=/usr
###############################################################################
#
# Install
#
###############################################################################
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p -m 755 $RPM_BUILD_ROOT/usr/sbin
mkdir -p -m 755 $RPM_BUILD_ROOT/etc/rc.d/init.d
mkdir -p -m 755 $RPM_BUILD_ROOT/usr/share/man/man8
cp rpm/dnsmasq.rh $RPM_BUILD_ROOT/etc/rc.d/init.d/dnsmasq
make install-i18n DESTDIR=$RPM_BUILD_ROOT PREFIX=/usr
strip $RPM_BUILD_ROOT/usr/sbin/dnsmasq
cp src/dnsmasq $RPM_BUILD_ROOT/usr/sbin
cp dnsmasq.conf.example $RPM_BUILD_ROOT/etc/dnsmasq.conf
###############################################################################
#
# Clean up
#
###############################################################################
%clean
rm -rf $RPM_BUILD_ROOT
###############################################################################
#
# Post-install scriptlet
#
###############################################################################
%post
/sbin/chkconfig --add dnsmasq
###############################################################################
#
# Pre-uninstall scriptlet
#
# If there's a time when your package needs to have one last look around before
# the user erases it, the place to do it is in the %preun script. Anything that
# a package needs to do immediately prior to RPM taking any action to erase the
# package, can be done here.
#
###############################################################################
%preun
if [ $1 = 0 ]; then # execute this only if we are NOT doing an upgrade
service dnsmasq stop >/dev/null 2>&1
/sbin/chkconfig --del dnsmasq
fi
###############################################################################
#
# Post-uninstall scriptlet
#
# The %postun script executes after the package has been removed. It is the
# last chance for a package to clean up after itself.
#
###############################################################################
%postun
if [ "$1" -ge "1" ]; then
service dnsmasq restart >/dev/null 2>&1
fi
###############################################################################
#
# File list
#
###############################################################################
%files
%defattr(-,root,root)
%doc CHANGELOG COPYING FAQ doc.html setup.html UPGRADING_to_2.0
%config /etc/rc.d/init.d/dnsmasq
%config /etc/dnsmasq.conf
%attr(0755,root,root) /etc/rc.d/init.d/dnsmasq
%attr(0664,root,root) /etc/dnsmasq.conf
%attr(0755,root,root) /usr/sbin/dnsmasq
#%attr(0644,root,root) /usr/share/man/*/man8/dnsmasq*
%attr(0644,root,root) /usr/share/man/man8/dnsmasq*
%attr(0644,root,root) /usr/share/locale/*/LC_MESSAGES/*

View File

@@ -5,7 +5,7 @@
###############################################################################
Name: dnsmasq
Version: 2.29
Version: 2.31
Release: 1
Copyright: GPL
Group: Productivity/Networking/DNS/Servers

View File

@@ -285,6 +285,12 @@ bogus-priv
# http://www.isc.org/index.pl?/sw/dhcp/authoritative.php
#dhcp-authoritative
# Run an executable when a DHCP lease is created or destroyed.
# The arguments sent to the script are "add" or "del",
# then the MAC address, the IP address and finally the hostname
# if there is one.
#dhcp-script=/bin/echo
# Set the cachesize here.
#cache-size=150

View File

@@ -22,7 +22,8 @@ Supported platforms include Linux (with glibc and uclibc), *BSD and
Mac OS X.
Dnsmasq is included in at least the following Linux distributions:
Gentoo, Debian, Slackware, Suse,
Smoothwall, IP-Cop, floppyfw, Firebox, LEAF, Freesco, fli4l, CoyoteLinux and
Smoothwall, IP-Cop, floppyfw, Firebox, LEAF, Freesco, fli4l,
CoyoteLinux, Endian Firewall and
Clarkconnect. It is also available as a FreeBSD port and is used in
Linksys wireless routers and the m0n0wall project.
<P>

View File

@@ -533,7 +533,34 @@ is given but no dhcp-range option is given then dnsmasq version 1
behaviour is activated. The file given is assumed to be an ISC dhcpd
lease file and parsed for leases which are then added to the DNS
system if they have a hostname. This functionality may have been
excluded from dnsmasq at compile time, in which case an error will occur.
excluded from dnsmasq at compile time, in which case an error will
occur. In any case note that ISC leasefile integration is a deprecated
feature. It should not be used in new installations, and will be
removed in a future release.
.TP
.B \-6 --dhcp-script=<path>
Whenever a new DHCP lease is created, or an old one destroyed, the
binary specified by this option is run. The arguments to the binary
are "add", "old" or "del", the MAC
address of the host (or "<null>"), the IP address, and the hostname,
if known. "add" means a lease has been created, "del" means it has
been destroyed, "old" is a notification of an existing lease when
dnsmasq starts or a change to MAC address or hostname of an existing lease.
The process is run as any unprivileged user which dnsmasq
runs as, so it may be necessary to inhibit dropping of the root user,
using the
.B -u
directive, if the script needs root privs.
The environment is inherited from the invoker of dnsmasq,
and all file decriptors are
closed except stdin, stdout and stderr which are open to /dev/null
(except in debug mode).
The script is not invoked concurrently: if subsequent lease
changes occur, the script is not invoked again until any existing
invokation exits. At dnsmasq startup, the script will be invoked for
all existing leases as they are read from the lease file. Expired
leases will be called with "del" and others with "old". <path>
must be an absolute pathname, no PATH search occurs.
.TP
.B \-s, --domain=<domain>
Specifies the domain for the DHCP server. This has two effects;

375
po/de.po

File diff suppressed because it is too large Load Diff

367
po/es.po
View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-04-21 19:59+0100\n"
"POT-Creation-Date: 2006-05-06 13:18+0100\n"
"PO-Revision-Date: 2005-10-07 11:04+0100\n"
"Last-Translator: Christopher Chatham <chrislinux@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
@@ -20,17 +20,17 @@ msgstr ""
msgid "failed to load names from %s: %m"
msgstr "no se pudo cargar nombres desde %s: %m"
#: cache.c:606 dhcp.c:654
#: cache.c:606 dhcp.c:664
#, fuzzy, c-format
msgid "bad address at %s line %d"
msgstr "nombre erróneo en %s línea %d"
#: cache.c:633 dhcp.c:668
#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr "nombre erróneo en %s línea %d"
#: cache.c:639 dhcp.c:722
#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr "direcciónes %s - %d leídas"
@@ -57,7 +57,7 @@ msgstr ""
"tamaño de caché %d, %d/%d inserciónes de caché reutilizaron entradas no "
"vencidas."
#: util.c:153 option.c:1294
#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr "no se pudo conseguir memoria"
@@ -75,277 +75,281 @@ msgstr "el intento de inicio ha FALLADO"
msgid "infinite"
msgstr "infinito"
#: option.c:125
#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr "Especificar dirección(es) locales dónde escuchar."
#: option.c:126
#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr ""
"Retornar ipaddr (dirección IP) para todos los hosts en los dominios "
"especificados."
#: option.c:127
#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
"Falsificar búsquedas reversas para rangos de dirección privados RFC1918."
#: option.c:128
#: option.c:129
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Tratar ipaddr (dirección IP) como NXDOMAIN (derrota comodín Verisign)."
#: option.c:129
#: option.c:130
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr ""
"Especificar tamaño de caché en cuanto a entradas (%s por predeterminado)."
#: option.c:130
#: option.c:131
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Especificar archivo de configuración (%s por predeterminado)."
#: option.c:131
#: option.c:132
msgid "Do NOT fork into the background: run in debug mode."
msgstr "NO hacer un fork hacia el fondo: correr en modo debug."
#: option.c:132
#: option.c:133
msgid "Do NOT forward queries with no domain part."
msgstr "NO reenviar búsquedas sin parte de dominio."
#: option.c:133
#: option.c:134
msgid "Return self-pointing MX records for local hosts."
msgstr "Retornar records MX auto-señaladores para hosts locales."
#: option.c:134
#: option.c:135
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr ""
"Expandir nombres simples en /etc/hosts con domain-suffix (sufijo de dominio)."
#: option.c:135
#: option.c:136
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "No reenviar pedidos DNS falsos desde máquinas Windows."
#: option.c:136
#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr "Habilitar DHCP dentro del rango brindado con duración del arriendo."
#: option.c:137
#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Cambiar a este grupo después del inicio (%s por predeterminado)."
#: option.c:138
#: option.c:139
msgid "Set address or hostname for a specified machine."
msgstr "Fijar dirección o nombre de host para una máquina específica."
#: option.c:139
#: option.c:140
#, c-format
msgid "Do NOT load %s file."
msgstr "NO cargar archivo %s."
#: option.c:140
#: option.c:141
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Especificar un archivo de hosts para leer adicionalmente a %s."
#: option.c:141
#: option.c:142
msgid "Specify interface(s) to listen on."
msgstr "Especificar interface(s) donde escuchar."
#: option.c:142
#: option.c:143
msgid "Specify interface(s) NOT to listen on."
msgstr "Especificar interface(s) donde NO escuchar."
#: option.c:143
#: option.c:144
msgid "Map DHCP user class to option set."
msgstr "Trazar clase de usuario DHCP a la opción fijada."
#: option.c:144
#: option.c:145
msgid "Don't do DHCP for hosts in option set."
msgstr "No hacer DHCP para hosts en la opción fijada."
#: option.c:145
#: option.c:146
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "NO hacer un fork hacia el fondo, NO correr en modo debug."
#: option.c:146
#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr "Asumir que somos el único servidor DHCP en la red local."
#: option.c:147
#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Especificar donde guardar arriendos DHCP (%s por predeterminado)."
#: option.c:148
#: option.c:149
msgid "Return MX records for local hosts."
msgstr "Retornar récords MX para hosts locales."
#: option.c:149
#: option.c:150
msgid "Specify an MX record."
msgstr "Especificar un récord MX."
#: option.c:150
#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr "Especificar opciónes BOOTP a servidor DHCP."
#: option.c:151
#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "NO revisar archivo %s periodicamente, recargar solo con SIGHUP."
#: option.c:152
#: option.c:153
msgid "Do NOT cache failed search results."
msgstr "NO cachear resultados de búsquedas fallidas."
#: option.c:153
#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Usar servidores DNS estrictamente en el órden dado en %s."
#: option.c:154
#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr "Fijar opciones extra para ser enviadas a clientes DHCP."
#: option.c:155
#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
"Especificar puerto donde escuchar por búsquedas DNS (53 por predeterminado)."
#: option.c:156
#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
"Máximo tamaño soportado de paquetes UDP para EDNS.0 (%s por predeterminado)."
#: option.c:157
#: option.c:158
msgid "Log queries."
msgstr "Bitacorear búsquedas."
#: option.c:158
#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr "Enforzar el puerto original para búsquedas upstream."
#: option.c:159
#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr "NO leer resolv.conf."
#: option.c:160
#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Especificar el destino hacia resolv.conf (%s por predeterminado)."
#: option.c:161
#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
"Especificar dirección(es) de servidor upstream con dominios opcionales."
#: option.c:162
#: option.c:163
msgid "Never forward queries to specified domains."
msgstr "Nunca reenviar búsquedas a dominios especificados."
#: option.c:163
#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Especificar dominio para asignar en arriendos DHCP."
#: option.c:164
#: option.c:165
msgid "Specify default target in an MX record."
msgstr "Especificar destino predeterminado en un récord MX."
#: option.c:165
#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
"Especificar tiempo de vida en segundos para respuestas desde /etc/hosts."
#: option.c:166
#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Cambiar a este usuario despues de iniciar (%s por predeterminado)."
#: option.c:167
#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr "Trazar clase de vendedor DHCP a opción fijada."
#: option.c:168
#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr "Mostrar información sobre la versión y copyright de dnsmasq."
#: option.c:169
#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Traducir direcciones IPv4 desde servidores upstream."
#: option.c:170
#: option.c:171
msgid "Specify a SRV record."
msgstr "Especificar un récord SRV."
#: option.c:171
#: option.c:172
msgid "Display this message."
msgstr "Mostrar este mensaje."
#: option.c:172
#: option.c:173
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgstr "Especificar path de archivo PID (%s por predeterminado)."
#: option.c:173
#: option.c:174
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Especificar número máximo de arriendos DHCP (%s por predeterminado)."
#: option.c:174
#: option.c:175
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
"Responder a búsquedas DNS en base a la interface donde fueron enviadas."
#: option.c:175
#: option.c:176
msgid "Specify TXT DNS record."
msgstr "Especificar récord DNS TXT."
#: option.c:176
#: option.c:177
msgid "Bind only to interfaces in use."
msgstr "Acoplar solo a interfaces en uso."
#: option.c:177
#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Leer información sobre hosts DHCP estáticos desde %s."
#: option.c:178
#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Habilitar la interface DBus para fijar servidores upstream, etc."
#: option.c:179
#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "No proveer DHCP en esta interface, solo proveer DNS."
#: option.c:180
#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr "Habilitar alocación dinámica de direcciónes para BOOTP."
#: option.c:181
#: option.c:182
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Trazar clase de vendedor DHCP a opción fijada."
#: option.c:182
#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
#: option.c:396
#: option.c:184
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
#: option.c:398
msgid "missing \""
msgstr "falta \""
#: option.c:425
#: option.c:427
msgid "bad option"
msgstr "opción errónea"
#: option.c:442
#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr "no se puede leer %s: %s"
#: option.c:448
#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -354,22 +358,22 @@ msgstr ""
"Modo de uso: dnsmasq [opciones]\n"
"\n"
#: option.c:450
#: option.c:452
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Usar opciones cortas solo en la línea de comandos.\n"
#: option.c:452
#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr "Opciones válidas son :\n"
#: option.c:477
#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq versión %s %s\n"
#: option.c:478
#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
@@ -378,141 +382,145 @@ msgstr ""
"Opciones de compilación %s\n"
"\n"
#: option.c:479
#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Este software viene SIN NINGUNA GARANTIA.\n"
#: option.c:480
#: option.c:482
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr "Dnsmasq es software libre, y usted está bienvenido a redistribuirlo\n"
#: option.c:481
#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr "bajo los términos de la GNU General Public License, versión 2.\n"
#: option.c:491
#: option.c:493
msgid "extraneous parameter"
msgstr "parámetro extraño"
#: option.c:499
#: option.c:501
msgid "missing parameter"
msgstr "parámetro ausente"
#: option.c:516
#: option.c:518
msgid "nested includes not allowed"
msgstr "inclusiones jerarquizadas no permitidas"
#: option.c:576
#: option.c:578
msgid "bad MX preference"
msgstr "preferencia MX errónea"
#: option.c:585
#: option.c:587
msgid "bad MX name"
msgstr "nombre MX erróneo"
#: option.c:603
#: option.c:605
msgid "bad MX target"
msgstr "destino MX erróneo"
#: option.c:802 option.c:813
#: option.c:617
msgid "cannot run scripts under uClinux"
msgstr ""
#: option.c:813 option.c:824
msgid "bad port"
msgstr "puerto erróneo"
#: option.c:955
#: option.c:966
msgid "bad dhcp-range"
msgstr "dhcp-range (rango DHCP) erróneo"
#: option.c:984
#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
#: option.c:1029
#: option.c:1040
msgid "inconsistent DHCP range"
msgstr "rango DHCP inconsistente"
#: option.c:1214
#: option.c:1225
msgid "bad dhcp-host"
msgstr "dhcp-host erróneo"
#: option.c:1271
#: option.c:1282
msgid "bad dhcp-option"
msgstr "dhcp-option erróneo"
#: option.c:1289
#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr "dominio erróneo en dhcp-option"
#: option.c:1459
#: option.c:1470
msgid "dhcp-option too long"
msgstr "opción dhcp-option demasiado larga"
#: option.c:1656
#: option.c:1667
msgid "bad TXT record"
msgstr "récord TXT erróneo"
#: option.c:1688
#: option.c:1699
msgid "TXT record string too long"
msgstr "récord TXT demasiado largo"
#: option.c:1727
#: option.c:1738
msgid "bad SRV record"
msgstr "récord SRV erróneo"
#: option.c:1740
#: option.c:1751
msgid "bad SRV target"
msgstr "destino SRV erróneo"
#: option.c:1752
#: option.c:1763
msgid "invalid port number"
msgstr "número de puerto inválido"
#: option.c:1763
#: option.c:1774
msgid "invalid priority"
msgstr "prioridad inválida"
#: option.c:1774
#: option.c:1785
msgid "invalid weight"
msgstr "peso inválido"
#: option.c:1799
#: option.c:1810
msgid "error"
msgstr "error"
#: option.c:1801
#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr "opciones de línea de comandos erróneas: %s."
#: option.c:1803
#: option.c:1814
msgid "try --help"
msgstr ""
#: option.c:1805
#: option.c:1816
msgid "try -w"
msgstr ""
#: option.c:1845
#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr "no se puede obtener host-name (nombre de host): %s"
#: option.c:1874
#: option.c:1885
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "solo un archivo resolv.conf permitido en modo no-poll."
#: option.c:1881
#: option.c:1892
msgid "must have exactly one resolv.conf to read domain from."
msgstr "debe haber exactamente un resolv.conf desde donde leer dominio."
#: option.c:1884 network.c:501
#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr "no se pudo leer %s: %m"
#: option.c:1902
#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr "ninguna directiva de búsqueda encontrada en %s"
@@ -527,7 +535,7 @@ msgid "forwarding table overflow: check for server loops."
msgstr ""
"desbordamiento en la tabla de reenvio: revisar si hay loops de servidor."
#: isc.c:73 dnsmasq.c:460
#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr "no se pudo accesar %s: %m"
@@ -537,7 +545,7 @@ msgstr "no se pudo accesar %s: %m"
msgid "failed to load %s: %m"
msgstr "no se pudo cargar %s: %m"
#: isc.c:93 network.c:505
#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr "leyendo %s"
@@ -553,59 +561,59 @@ msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
msgstr ""
"Ignorando arriendo DHCP para %s porque tiene una parte ilegal de dominio"
#: network.c:328 dnsmasq.c:129
#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr "no se pudo crear un socket escuchador: %s"
#: network.c:335
#: network.c:321
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr "no se pudo fijar opciones IPv6 sobre el socket escuchador: %s"
#: network.c:353
#: network.c:339
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "no se pudo acoplar socket escuchador para %s: %s"
#: network.c:361
#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr "no se pudo escuchar en el socket: %s"
#: network.c:431
#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorando servidor DNS %s - interface local"
#: network.c:440
#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr "ignorando servidor DNS %s - no se pudo crear/acoplar socket: %m"
#: network.c:454
#: network.c:438
msgid "domain"
msgstr "dominio"
#: network.c:456
#: network.c:440
msgid "unqualified"
msgstr "no calificado"
#: network.c:456
#: network.c:440
msgid "domains"
msgstr "dominios"
#: network.c:459
#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr "usando direcciones locales solo para %s %s"
#: network.c:461
#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "usando servidor DNS %s#%d para %s %s"
#: network.c:464
#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr "usando servidor DNS %s#%d"
@@ -635,7 +643,7 @@ msgstr "ninguna interface con direcci
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr "debe fijarse exactamente una interface en sistemas rotos sin IP_RECVIF"
#: dnsmasq.c:158 dnsmasq.c:536
#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr "error DBus: %s"
@@ -644,68 +652,68 @@ msgstr "error DBus: %s"
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus no disponible: fijar HAVE_DBUS en src/config.h"
#: dnsmasq.c:196
#: dnsmasq.c:192
#, fuzzy, c-format
msgid "cannot create pipe: %s"
msgstr "no se puede leer %s: %s"
#: dnsmasq.c:331
#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr "versión %s iniciada, tamaño de caché %d"
#: dnsmasq.c:333
#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr "versión %s iniciada, caché deshabilitado"
#: dnsmasq.c:335
#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr "opciones de compilación: %s"
#: dnsmasq.c:341
#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr "soporte DBus habilitado: conectado a bus de sistema"
#: dnsmasq.c:343
#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr "soporte DBus habilitado: conección a bus pendiente"
#: dnsmasq.c:348
#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr ""
"fijando opción --bind-interfaces debido a limitaciones de sistema operativo"
#: dnsmasq.c:353
#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "advertencia: interface %s no existe actualmente"
#: dnsmasq.c:365
#: dnsmasq.c:370
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "DHCP, arriendos estáticos solo en %.0s%s, tiempo de arriendo %s"
#: dnsmasq.c:366
#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, rango de IP %s -- %s, tiempo de arriendo %s"
#: dnsmasq.c:376
#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
#: dnsmasq.c:378
#: dnsmasq.c:383
msgid "running as root"
msgstr "corriendo como root"
#: dnsmasq.c:511
#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr "haciendo exit al haber recibido SIGTERM"
#: dnsmasq.c:538
#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr "conectado a DBus de sistema"
@@ -714,170 +722,179 @@ msgstr "conectado a DBus de sistema"
msgid "cannot create DHCP socket : %s"
msgstr "no se puede crear socket DHCP: %s"
#: dhcp.c:42
#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "no se pudo fijar opciones en socket DHCP: %s"
#: dhcp.c:49
#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr "no se pudo fijar SO_REUSEADDR en socket DHCP: %s"
#: dhcp.c:59
#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "no se pudo acoplar socket de servidor DHCP: %s"
#: dhcp.c:72
#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "no se puede crear socket crudo ICMP: %s."
#: dhcp.c:84
#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "dirección IP duplicada en directiva dhcp-config."
#: dhcp.c:306
#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "rango DHCP %s -- %s no coincide con máscara de red %s"
#: dhcp.c:622
#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr "no se pudo leer %s:%m"
#: dhcp.c:641
#: dhcp.c:651
#, fuzzy, c-format
msgid "bad line at %s line %d"
msgstr "nombre erróneo en %s línea %d"
#: dhcp.c:745
#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "dirección IP %s (%s) duplicada en directiva dhcp-config"
#: dhcp.c:781
#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr ""
"Ignorando nombre de host DHCP %s porque contiene una parte ilegal de dominio."
#: lease.c:34
#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr "no se puede abrir o crear archivo de arriendos: %s"
#: lease.c:71
#: lease.c:59
msgid "too many stored leases"
msgstr "demasiados arriendos almacenados"
#: lease.c:118
#: lease.c:175
#, fuzzy, c-format
msgid "failed to write %s: %m (retry in %ds)"
msgid "failed to write %s: %s (retry in %us)"
msgstr "no se pudo leer %s: %m"
#: rfc2131.c:247
#: lease.c:436
#, fuzzy, c-format
msgid "failed to execute %s: %m"
msgstr "no se pudo accesar %s: %m"
#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "ningún rango de direcciónes disponible para pedido DHCP %s %s"
#: rfc2131.c:248
#: rfc2131.c:247
msgid "with subnet selector"
msgstr "con selector de subred"
#: rfc2131.c:248
#: rfc2131.c:247
msgid "via"
msgstr "vía"
#: rfc2131.c:274 rfc2131.c:298
#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr "deshabilitado"
#: rfc2131.c:310 rfc2131.c:731
#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr "dirección en uso"
#: rfc2131.c:313
#: rfc2131.c:312
msgid "no address configured"
msgstr "ninguna dirección configurada"
#: rfc2131.c:326 rfc2131.c:605
#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr "ninguna dirección disponible"
#: rfc2131.c:333 rfc2131.c:734
#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr "no queda ningún arriendo"
#: rfc2131.c:336 rfc2131.c:707
#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr "red equivocada"
#: rfc2131.c:540
#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr "deshabilitando dirección DHCP estática %s"
#: rfc2131.c:558
#: rfc2131.c:559
msgid "unknown lease"
msgstr "arriendo desconocido"
#: rfc2131.c:567 rfc2131.c:799
#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr "ignorado"
#: rfc2131.c:581
#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
#: rfc2131.c:590
#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
#: rfc2131.c:670
#: rfc2131.c:671
msgid "wrong address"
msgstr "dirección equivocada"
#: rfc2131.c:683
#: rfc2131.c:684
msgid "lease not found"
msgstr "arriendo no encontrado"
#: rfc2131.c:715
#: rfc2131.c:716
msgid "address not available"
msgstr "dirección no disponible"
#: rfc2131.c:724
#: rfc2131.c:725
msgid "static lease available"
msgstr "arriendo estático disponible"
#: rfc2131.c:728
#: rfc2131.c:729
msgid "address reserved"
msgstr "dirección reservada"
#: rfc2131.c:946
#: rfc2131.c:735
msgid "no unique-id"
msgstr ""
#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr "no se puede enviar opción DHCP %d: no queda espacio en el paquete"
#: rfc2131.c:1247
#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr "Más de una clase de vendedor coincide, usando %s"
#: netlink.c:51
#, fuzzy, c-format
msgid "cannot create RTnetlink socket: %s"
msgid "cannot create netlink socket: %s"
msgstr "no se puede acoplar socket netlink: %s"
#: netlink.c:218
#, c-format
msgid "RTnetlink returns error: %s"
msgstr ""
#: netlink.c:224
#, fuzzy, c-format
msgid "netlink returns error: %s"
msgstr "error DBus: %s"
#: dbus.c:112
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
@@ -892,12 +909,12 @@ msgstr "fijando servidores upstream desde DBus"
msgid "could not register a DBus message handler"
msgstr "no se pudo registrar un manejador de mensajes DBus"
#: bpf.c:54
#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "no se puede crear socket BPF DHCP: %s"
#: bpf.c:74
#: bpf.c:79
#, fuzzy, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "pedido DHCP por hardware no soportado tipo (%d) recibido en %s"

381
po/fi.po
View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-04-21 19:59+0100\n"
"POT-Creation-Date: 2006-05-06 13:18+0100\n"
"PO-Revision-Date: 2005-11-28 22:05+0000\n"
"Last-Translator: Simon Kelley <simon@thekelleys.org.uk>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -20,17 +20,17 @@ msgstr ""
msgid "failed to load names from %s: %m"
msgstr ""
#: cache.c:606 dhcp.c:654
#: cache.c:606 dhcp.c:664
#, c-format
msgid "bad address at %s line %d"
msgstr ""
#: cache.c:633 dhcp.c:668
#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr ""
#: cache.c:639 dhcp.c:722
#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr ""
@@ -53,7 +53,7 @@ msgid ""
"entries."
msgstr ""
#: util.c:153 option.c:1294
#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr ""
@@ -71,429 +71,437 @@ msgstr ""
msgid "infinite"
msgstr ""
#: option.c:125
#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr ""
#: option.c:126
#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr ""
#: option.c:127
#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
#: option.c:128
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr ""
#: option.c:129
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr ""
#: option.c:130
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr ""
#: option.c:131
msgid "Do NOT fork into the background: run in debug mode."
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr ""
#: option.c:132
msgid "Do NOT forward queries with no domain part."
msgid "Do NOT fork into the background: run in debug mode."
msgstr ""
#: option.c:133
msgid "Return self-pointing MX records for local hosts."
msgid "Do NOT forward queries with no domain part."
msgstr ""
#: option.c:134
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgid "Return self-pointing MX records for local hosts."
msgstr ""
#: option.c:135
msgid "Don't forward spurious DNS requests from Windows hosts."
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr ""
#: option.c:136
msgid "Enable DHCP in the range given with lease duration."
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr ""
#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr ""
#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr ""
#: option.c:138
msgid "Set address or hostname for a specified machine."
msgstr ""
#: option.c:139
#, c-format
msgid "Do NOT load %s file."
msgid "Set address or hostname for a specified machine."
msgstr ""
#: option.c:140
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgid "Do NOT load %s file."
msgstr ""
#: option.c:141
msgid "Specify interface(s) to listen on."
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr ""
#: option.c:142
msgid "Specify interface(s) NOT to listen on."
msgid "Specify interface(s) to listen on."
msgstr ""
#: option.c:143
msgid "Map DHCP user class to option set."
msgid "Specify interface(s) NOT to listen on."
msgstr ""
#: option.c:144
msgid "Don't do DHCP for hosts in option set."
msgid "Map DHCP user class to option set."
msgstr ""
#: option.c:145
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgid "Don't do DHCP for hosts in option set."
msgstr ""
#: option.c:146
msgid "Assume we are the only DHCP server on the local network."
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr ""
#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr ""
#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr ""
#: option.c:148
#: option.c:149
msgid "Return MX records for local hosts."
msgstr ""
#: option.c:149
#: option.c:150
msgid "Specify an MX record."
msgstr ""
#: option.c:150
#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr ""
#: option.c:151
#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
#: option.c:152
#: option.c:153
msgid "Do NOT cache failed search results."
msgstr ""
#: option.c:153
#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr ""
#: option.c:154
#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr ""
#: option.c:155
#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
#: option.c:156
#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
#: option.c:157
#: option.c:158
msgid "Log queries."
msgstr ""
#: option.c:158
#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr ""
#: option.c:159
#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr ""
#: option.c:160
#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr ""
#: option.c:161
#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
#: option.c:162
#: option.c:163
msgid "Never forward queries to specified domains."
msgstr ""
#: option.c:163
#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr ""
#: option.c:164
#: option.c:165
msgid "Specify default target in an MX record."
msgstr ""
#: option.c:165
#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
#: option.c:166
#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr ""
#: option.c:167
#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr ""
#: option.c:168
#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr ""
#: option.c:169
#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr ""
#: option.c:170
#: option.c:171
msgid "Specify a SRV record."
msgstr ""
#: option.c:171
msgid "Display this message."
msgstr ""
#: option.c:172
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgid "Display this message."
msgstr ""
#: option.c:173
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgid "Specify path of PID file. (defaults to %s)."
msgstr ""
#: option.c:174
msgid "Answer DNS queries based on the interface a query was sent to."
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr ""
#: option.c:175
msgid "Specify TXT DNS record."
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
#: option.c:176
msgid "Bind only to interfaces in use."
msgid "Specify TXT DNS record."
msgstr ""
#: option.c:177
msgid "Bind only to interfaces in use."
msgstr ""
#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr ""
#: option.c:178
#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr ""
#: option.c:179
#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr ""
#: option.c:180
#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr ""
#: option.c:181
#: option.c:182
msgid "Map MAC address (with wildcards) to option set."
msgstr ""
#: option.c:182
#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
#: option.c:396
#: option.c:184
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
#: option.c:398
msgid "missing \""
msgstr ""
#: option.c:425
#: option.c:427
msgid "bad option"
msgstr ""
#: option.c:442
#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr ""
#: option.c:448
#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
#: option.c:450
#: option.c:452
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
#: option.c:452
#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr ""
#: option.c:477
#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
#: option.c:478
#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
#: option.c:479
#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
#: option.c:480
#: option.c:482
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
#: option.c:481
#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr ""
#: option.c:491
#: option.c:493
msgid "extraneous parameter"
msgstr ""
#: option.c:499
#: option.c:501
msgid "missing parameter"
msgstr ""
#: option.c:516
#: option.c:518
msgid "nested includes not allowed"
msgstr ""
#: option.c:576
#: option.c:578
msgid "bad MX preference"
msgstr ""
#: option.c:585
#: option.c:587
msgid "bad MX name"
msgstr ""
#: option.c:603
#: option.c:605
msgid "bad MX target"
msgstr ""
#: option.c:802 option.c:813
#: option.c:617
msgid "cannot run scripts under uClinux"
msgstr ""
#: option.c:813 option.c:824
msgid "bad port"
msgstr ""
#: option.c:955
#: option.c:966
msgid "bad dhcp-range"
msgstr ""
#: option.c:984
#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
#: option.c:1029
#: option.c:1040
msgid "inconsistent DHCP range"
msgstr ""
#: option.c:1214
#: option.c:1225
msgid "bad dhcp-host"
msgstr ""
#: option.c:1271
#: option.c:1282
msgid "bad dhcp-option"
msgstr ""
#: option.c:1289
#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr ""
#: option.c:1459
#: option.c:1470
msgid "dhcp-option too long"
msgstr ""
#: option.c:1656
#: option.c:1667
msgid "bad TXT record"
msgstr ""
#: option.c:1688
#: option.c:1699
msgid "TXT record string too long"
msgstr ""
#: option.c:1727
#: option.c:1738
msgid "bad SRV record"
msgstr ""
#: option.c:1740
#: option.c:1751
msgid "bad SRV target"
msgstr ""
#: option.c:1752
#: option.c:1763
msgid "invalid port number"
msgstr ""
#: option.c:1763
#: option.c:1774
msgid "invalid priority"
msgstr ""
#: option.c:1774
#: option.c:1785
msgid "invalid weight"
msgstr ""
#: option.c:1799
#: option.c:1810
msgid "error"
msgstr ""
#: option.c:1801
#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr ""
#: option.c:1803
#: option.c:1814
msgid "try --help"
msgstr ""
#: option.c:1805
#: option.c:1816
msgid "try -w"
msgstr ""
#: option.c:1845
#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
#: option.c:1874
#: option.c:1885
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
#: option.c:1881
#: option.c:1892
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
#: option.c:1884 network.c:501
#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr ""
#: option.c:1902
#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr ""
@@ -507,7 +515,7 @@ msgstr ""
msgid "forwarding table overflow: check for server loops."
msgstr ""
#: isc.c:73 dnsmasq.c:460
#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr ""
@@ -517,7 +525,7 @@ msgstr ""
msgid "failed to load %s: %m"
msgstr ""
#: isc.c:93 network.c:505
#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr ""
@@ -532,59 +540,59 @@ msgstr ""
msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
msgstr ""
#: network.c:328 dnsmasq.c:129
#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr ""
#: network.c:335
#: network.c:321
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr ""
#: network.c:353
#: network.c:339
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr ""
#: network.c:361
#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr ""
#: network.c:431
#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
#: network.c:440
#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr ""
#: network.c:454
#: network.c:438
msgid "domain"
msgstr ""
#: network.c:456
#: network.c:440
msgid "unqualified"
msgstr ""
#: network.c:456
#: network.c:440
msgid "domains"
msgstr ""
#: network.c:459
#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
#: network.c:461
#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
#: network.c:464
#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
@@ -613,7 +621,7 @@ msgstr ""
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr ""
#: dnsmasq.c:158 dnsmasq.c:536
#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr ""
@@ -622,67 +630,67 @@ msgstr ""
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr ""
#: dnsmasq.c:196
#: dnsmasq.c:192
#, c-format
msgid "cannot create pipe: %s"
msgstr ""
#: dnsmasq.c:331
#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr ""
#: dnsmasq.c:333
#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr ""
#: dnsmasq.c:335
#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr ""
#: dnsmasq.c:341
#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr ""
#: dnsmasq.c:343
#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr ""
#: dnsmasq.c:348
#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr ""
#: dnsmasq.c:353
#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr ""
#: dnsmasq.c:365
#: dnsmasq.c:370
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr ""
#: dnsmasq.c:366
#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr ""
#: dnsmasq.c:376
#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
#: dnsmasq.c:378
#: dnsmasq.c:383
msgid "running as root"
msgstr ""
#: dnsmasq.c:511
#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr ""
#: dnsmasq.c:538
#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr ""
@@ -691,168 +699,177 @@ msgstr ""
msgid "cannot create DHCP socket : %s"
msgstr ""
#: dhcp.c:42
#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr ""
#: dhcp.c:49
#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr ""
#: dhcp.c:59
#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr ""
#: dhcp.c:72
#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr ""
#: dhcp.c:84
#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
#: dhcp.c:306
#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
#: dhcp.c:622
#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr ""
#: dhcp.c:641
#: dhcp.c:651
#, c-format
msgid "bad line at %s line %d"
msgstr ""
#: dhcp.c:745
#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
#: dhcp.c:781
#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr ""
#: lease.c:34
#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr ""
#: lease.c:71
#: lease.c:59
msgid "too many stored leases"
msgstr ""
#: lease.c:118
#: lease.c:175
#, c-format
msgid "failed to write %s: %m (retry in %ds)"
msgid "failed to write %s: %s (retry in %us)"
msgstr ""
#: rfc2131.c:247
#: lease.c:436
#, c-format
msgid "failed to execute %s: %m"
msgstr ""
#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr ""
#: rfc2131.c:248
#: rfc2131.c:247
msgid "with subnet selector"
msgstr ""
#: rfc2131.c:248
#: rfc2131.c:247
msgid "via"
msgstr ""
#: rfc2131.c:274 rfc2131.c:298
#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr ""
#: rfc2131.c:310 rfc2131.c:731
#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr ""
#: rfc2131.c:313
#: rfc2131.c:312
msgid "no address configured"
msgstr ""
#: rfc2131.c:326 rfc2131.c:605
#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr ""
#: rfc2131.c:333 rfc2131.c:734
#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr ""
#: rfc2131.c:336 rfc2131.c:707
#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr ""
#: rfc2131.c:540
#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr ""
#: rfc2131.c:558
#: rfc2131.c:559
msgid "unknown lease"
msgstr ""
#: rfc2131.c:567 rfc2131.c:799
#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr ""
#: rfc2131.c:581
#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
#: rfc2131.c:590
#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
#: rfc2131.c:670
#: rfc2131.c:671
msgid "wrong address"
msgstr ""
#: rfc2131.c:683
#: rfc2131.c:684
msgid "lease not found"
msgstr ""
#: rfc2131.c:715
#: rfc2131.c:716
msgid "address not available"
msgstr ""
#: rfc2131.c:724
#: rfc2131.c:725
msgid "static lease available"
msgstr ""
#: rfc2131.c:728
#: rfc2131.c:729
msgid "address reserved"
msgstr ""
#: rfc2131.c:946
#: rfc2131.c:735
msgid "no unique-id"
msgstr ""
#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr ""
#: rfc2131.c:1247
#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr ""
#: netlink.c:51
#, c-format
msgid "cannot create RTnetlink socket: %s"
msgid "cannot create netlink socket: %s"
msgstr ""
#: netlink.c:218
#: netlink.c:224
#, c-format
msgid "RTnetlink returns error: %s"
msgid "netlink returns error: %s"
msgstr ""
#: dbus.c:112
@@ -867,12 +884,12 @@ msgstr ""
msgid "could not register a DBus message handler"
msgstr ""
#: bpf.c:54
#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr ""
#: bpf.c:74
#: bpf.c:79
#, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr ""

367
po/fr.po

File diff suppressed because it is too large Load Diff

369
po/id.po

File diff suppressed because it is too large Load Diff

367
po/no.po
View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.25\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-04-21 19:59+0100\n"
"POT-Creation-Date: 2006-05-06 13:18+0100\n"
"PO-Revision-Date: 2006-01-11 17:39+0000\n"
"Last-Translator: Jan Erik Askildt <jeaskildt@gmail.com>\n"
"Language-Team: Norwegian <i18n-nb@lister.ping.uio.no>\n"
@@ -22,17 +22,17 @@ msgstr ""
msgid "failed to load names from %s: %m"
msgstr "feilet å laste navn fra %s: %m"
#: cache.c:606 dhcp.c:654
#: cache.c:606 dhcp.c:664
#, c-format
msgid "bad address at %s line %d"
msgstr "dårlig adresse ved %s linje %d"
#: cache.c:633 dhcp.c:668
#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr "dårlig navn ved %s linje %d"
#: cache.c:639 dhcp.c:722
#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr "les %s - %d adresser"
@@ -59,7 +59,7 @@ msgstr ""
"mellomlager størrelse %d, %d/%d mellomlager innsettinger re-bruker "
"mellomlager plasser som ikke er utløpt"
#: util.c:153 option.c:1294
#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr "kunne ikke få minne"
@@ -77,267 +77,271 @@ msgstr "FEILET
msgid "infinite"
msgstr "uendelig"
#: option.c:125
#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr "Spesifiser lokal(e) adresse(r) å lytte på."
#: option.c:126
#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Returner ipaddr for alle verter i det spesifiserte domenet."
#: option.c:127
#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Forfalsk revers oppslag for RFC1918 private adresse områder."
#: option.c:128
#: option.c:129
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Behandle ipaddr som NXDOMAIN (omgår Verisign wildcard)."
#: option.c:129
#: option.c:130
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Spesifiser størrelsen på mellomlager plassene (standard er %s)."
#: option.c:130
#: option.c:131
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Spesifiser konfigurasjonsfil (standard er %s)."
#: option.c:131
#: option.c:132
msgid "Do NOT fork into the background: run in debug mode."
msgstr "IKKE legg (fork) som bakgrunnsprosess: kjør i debug modus."
#: option.c:132
#: option.c:133
msgid "Do NOT forward queries with no domain part."
msgstr "IKKE videresend oppslag som mangler domene del."
#: option.c:133
#: option.c:134
msgid "Return self-pointing MX records for local hosts."
msgstr "Returner selv-pekende MX post for lokale verter."
#: option.c:134
#: option.c:135
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Utvid enkle navn i /etc/hosts med domene-suffiks."
#: option.c:135
#: option.c:136
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Ikke videresend falske/uekte DNS forespørsler fra Windows verter."
#: option.c:136
#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr "Aktiver DHCP i det gitte området med leie varighet"
#: option.c:137
#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Skift til denne gruppen etter oppstart (standard er %s)."
#: option.c:138
#: option.c:139
msgid "Set address or hostname for a specified machine."
msgstr "Sett adresse eller vertsnavn for en spesifikk maskin."
#: option.c:139
#: option.c:140
#, c-format
msgid "Do NOT load %s file."
msgstr "IKKE last %s filen."
#: option.c:140
#: option.c:141
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Spesifiser en verts (hosts) fil som skal leses i tilleg til %s."
#: option.c:141
#: option.c:142
msgid "Specify interface(s) to listen on."
msgstr "Spesifiser nettverkskort det skal lyttes på."
#: option.c:142
#: option.c:143
msgid "Specify interface(s) NOT to listen on."
msgstr "Spesifiser nettverkskort det IKKE skal lyttes på."
#: option.c:143
#: option.c:144
msgid "Map DHCP user class to option set."
msgstr "Map DHCP bruker klasse til opsjon sett."
#: option.c:144
#: option.c:145
msgid "Don't do DHCP for hosts in option set."
msgstr "Ikke utfør DHCP for klienter i opsjon sett."
#: option.c:145
#: option.c:146
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "IKKE last (fork) som bakgrunnsprosess, IKKE kjør i debug modus."
#: option.c:146
#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr "Anta at vi er den eneste DHCP tjeneren på det lokale nettverket."
#: option.c:147
#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Spesifiser hvor DHCP leiene skal lagres (standard er %s)."
#: option.c:148
#: option.c:149
msgid "Return MX records for local hosts."
msgstr "Returner MX records for lokale verter."
#: option.c:149
#: option.c:150
msgid "Specify an MX record."
msgstr "Spesifiser en MX post."
#: option.c:150
#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr "Spesifiser BOOTP opsjoner til DHCP tjener."
#: option.c:151
#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "IKKE spør (poll) %s fil, les på nytt kun ved SIGHUP"
#: option.c:152
#: option.c:153
msgid "Do NOT cache failed search results."
msgstr "IKKE mellomlagre søkeresultater som feiler."
#: option.c:153
#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Bruk navnetjenere kun som bestemt i rekkefølgen gitt i %s."
#: option.c:154
#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr "Sett ekstra opsjoner som skal fordeles til DHCP klientene."
#: option.c:155
#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Spesifiser lytteport for DNS oppslag (standard er 53)."
#: option.c:156
#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Maksimal støttet UDP pakkestørrelse for EDNS.0 (standard er %s)."
#: option.c:157
#: option.c:158
msgid "Log queries."
msgstr "Logg oppslag."
#: option.c:158
#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr "Tving bruk av opprinnelig port for oppstrøms oppslag."
#: option.c:159
#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr "IKKE les resolv.conf."
#: option.c:160
#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Spesifiser stien til resolv.conf (standard er %s)."
#: option.c:161
#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Spesifiser adressen(e) til oppstrøms tjenere med valgfrie domener."
#: option.c:162
#: option.c:163
msgid "Never forward queries to specified domains."
msgstr "Aldri videresend oppslag til spesifiserte domener."
#: option.c:163
#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Spesifiser domenet som skal tildeles i DHCP leien."
#: option.c:164
#: option.c:165
msgid "Specify default target in an MX record."
msgstr "Spesifiser default mål i en MX post."
#: option.c:165
#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr "Spesifiser time-to-live i sekunder for svar fra /etc/hosts."
#: option.c:166
#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Skift til denne bruker etter oppstart (standard er %s)."
#: option.c:167
#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr "Map DHCP produsent klasse til opsjon sett."
#: option.c:168
#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr "Vis dnsmasq versjon og copyright informasjon."
#: option.c:169
#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Oversett IPv4 adresser fra oppstrøms tjenere."
#: option.c:170
#: option.c:171
msgid "Specify a SRV record."
msgstr "Spesifiser en SRV post."
#: option.c:171
#: option.c:172
msgid "Display this message."
msgstr "Vis denne meldingen."
#: option.c:172
#: option.c:173
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgstr "Spesifiser stien til PID fil. (standard er %s)."
#: option.c:173
#: option.c:174
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
#: option.c:174
#: option.c:175
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr "Svar DNS oppslag basert på nettverkskortet oppslaget ble sendt til."
#: option.c:175
#: option.c:176
msgid "Specify TXT DNS record."
msgstr "Spesifiser TXT DNS post."
#: option.c:176
#: option.c:177
msgid "Bind only to interfaces in use."
msgstr "Bind kun til nettverkskort som er i bruk."
#: option.c:177
#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Les DHCP statisk vert informasjon fra %s."
#: option.c:178
#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Aktiver DBus interface for å sette oppstrøms tjenere, osv."
#: option.c:179
#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Ikke lever DHCP på dette nettverkskortet, kun lever DNS."
#: option.c:180
#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr "Aktiver dynamisk adresse allokering for bootp."
#: option.c:181
#: option.c:182
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Map DHCP produsent klasse til opsjon sett."
#: option.c:182
#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
#: option.c:396
#: option.c:184
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
#: option.c:398
msgid "missing \""
msgstr "mangler \""
#: option.c:425
#: option.c:427
msgid "bad option"
msgstr "dårlig opsjon"
#: option.c:442
#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr "kan ikke lese %s: %s"
#: option.c:448
#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -346,22 +350,22 @@ msgstr ""
"Bruk: dnsmasq [opsjoner]\n"
"\n"
#: option.c:450
#: option.c:452
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Bruk korte opsjoner kun på kommandolinjen.\n"
#: option.c:452
#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr "Gyldige opsjoner er :\n"
#: option.c:477
#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq versjon %s %s\n"
#: option.c:478
#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
@@ -370,141 +374,145 @@ msgstr ""
"Kompileringsopsjoner %s\n"
"\n"
#: option.c:479
#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Denne programvaren kommer med ABSOLUTT INGEN GARANTI.\n"
#: option.c:480
#: option.c:482
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr "DNsmasq er fri programvare, du er velkommen til å redistribuere den\n"
#: option.c:481
#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr "under vilkårene gitt i GNU General Public License, versjon 2.\n"
#: option.c:491
#: option.c:493
msgid "extraneous parameter"
msgstr "overflødig parameter"
#: option.c:499
#: option.c:501
msgid "missing parameter"
msgstr "mangler parameter"
#: option.c:516
#: option.c:518
msgid "nested includes not allowed"
msgstr "nøstede inkluderinger er ikke tillatt"
#: option.c:576
#: option.c:578
msgid "bad MX preference"
msgstr "dårlig MX preferanse"
#: option.c:585
#: option.c:587
msgid "bad MX name"
msgstr "dårlig MX navn"
#: option.c:603
#: option.c:605
msgid "bad MX target"
msgstr "dårlig MX mål"
#: option.c:802 option.c:813
#: option.c:617
msgid "cannot run scripts under uClinux"
msgstr ""
#: option.c:813 option.c:824
msgid "bad port"
msgstr "dårlig port"
#: option.c:955
#: option.c:966
msgid "bad dhcp-range"
msgstr "dårlig dhcp-område"
#: option.c:984
#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
#: option.c:1029
#: option.c:1040
msgid "inconsistent DHCP range"
msgstr "ikke konsistent DHCP område"
#: option.c:1214
#: option.c:1225
msgid "bad dhcp-host"
msgstr "dårlig dhcp-vert"
#: option.c:1271
#: option.c:1282
msgid "bad dhcp-option"
msgstr "dårlig dhcp-opsjon"
#: option.c:1289
#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr "dårlig domene i dhcp-opsjon"
#: option.c:1459
#: option.c:1470
msgid "dhcp-option too long"
msgstr "dhcp-opsjon for lang"
#: option.c:1656
#: option.c:1667
msgid "bad TXT record"
msgstr "dårlig TXT post"
#: option.c:1688
#: option.c:1699
msgid "TXT record string too long"
msgstr "TXT post streng for lang"
#: option.c:1727
#: option.c:1738
msgid "bad SRV record"
msgstr "dårlig SRV post"
#: option.c:1740
#: option.c:1751
msgid "bad SRV target"
msgstr "dårlig SRV mål"
#: option.c:1752
#: option.c:1763
msgid "invalid port number"
msgstr "ugyldig portnummer"
#: option.c:1763
#: option.c:1774
msgid "invalid priority"
msgstr "ugyldig prioritet"
#: option.c:1774
#: option.c:1785
msgid "invalid weight"
msgstr "ugyldig vekt"
#: option.c:1799
#: option.c:1810
msgid "error"
msgstr "feil"
#: option.c:1801
#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr "dårlige kommandlinje opsjoner: %s."
#: option.c:1803
#: option.c:1814
msgid "try --help"
msgstr ""
#: option.c:1805
#: option.c:1816
msgid "try -w"
msgstr ""
#: option.c:1845
#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr "klarer ikke å få vertsnavn: %s"
#: option.c:1874
#: option.c:1885
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "kun en resolv.conf fil tillat i no-poll modus."
#: option.c:1881
#: option.c:1892
msgid "must have exactly one resolv.conf to read domain from."
msgstr "må ha nøyaktig en resolv.conf å lese domene fra."
#: option.c:1884 network.c:501
#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr "feilet å lese %s: %m"
#: option.c:1902
#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr "intet søke direktiv funnet i %s"
@@ -518,7 +526,7 @@ msgstr "navnetjener %s nektet
msgid "forwarding table overflow: check for server loops."
msgstr "fremsendelse (forwarding) tabell overflyt: sjekk etter tjener løkker."
#: isc.c:73 dnsmasq.c:460
#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr "feilet å få tilgang til %s: %m"
@@ -528,7 +536,7 @@ msgstr "feilet
msgid "failed to load %s: %m"
msgstr "feilet å laste %s: %m"
#: isc.c:93 network.c:505
#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr "leser %s"
@@ -543,59 +551,59 @@ msgstr "d
msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
msgstr "Ignorerer DHCP leie for %s siden den har en ulovlig domene del"
#: network.c:328 dnsmasq.c:129
#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr "feilet å lage lytte socket: %s"
#: network.c:335
#: network.c:321
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr "feilet å sette IPv6 opsjoner på lytte socket: %s"
#: network.c:353
#: network.c:339
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "feilet å binde lytte socket for %s: %s"
#: network.c:361
#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr "feilet å lytte på socket: %s"
#: network.c:431
#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorerer navnetjener %s - lokal tilknytning"
#: network.c:440
#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr "ignorerer navnetjener %s - kan ikke lage/dinde socket: %m"
#: network.c:454
#: network.c:438
msgid "domain"
msgstr "domene"
#: network.c:456
#: network.c:440
msgid "unqualified"
msgstr "ikke kvalifisert"
#: network.c:456
#: network.c:440
msgid "domains"
msgstr "domener"
#: network.c:459
#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr "benytter lokale adresser kun for %s %s"
#: network.c:461
#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "benytter navnetjener %s#%d for %s %s"
#: network.c:464
#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr "benytter navnetjener %s#%d"
@@ -625,7 +633,7 @@ msgstr "ingen tilknytning (interface) med adresse %s"
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr "må sette nøyaktig et interface på ødelagte systemer uten IP_RECVIF"
#: dnsmasq.c:158 dnsmasq.c:536
#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr "DBus feil: %s"
@@ -634,67 +642,67 @@ msgstr "DBus feil: %s"
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h"
#: dnsmasq.c:196
#: dnsmasq.c:192
#, fuzzy, c-format
msgid "cannot create pipe: %s"
msgstr "kan ikke lese %s: %s"
#: dnsmasq.c:331
#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr "startet, versjon %s mellomlager størrelse %d"
#: dnsmasq.c:333
#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr "startet, versjon %s mellomlager deaktivert"
#: dnsmasq.c:335
#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr "kompilerings opsjoner: %s"
#: dnsmasq.c:341
#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr "DBus støtte aktivert: koblet til system buss"
#: dnsmasq.c:343
#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr "DBus støtte aktivert: avventer buss tilkobling"
#: dnsmasq.c:348
#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "setter --bind-interfaces opsjon på grunn av OS begrensninger"
#: dnsmasq.c:353
#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "advarsel: nettverkskort %s eksisterer ikke for tiden"
#: dnsmasq.c:365
#: dnsmasq.c:370
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "DHCP, statisk leie kun på %.0s%s, leie tid %s"
#: dnsmasq.c:366
#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, IP område %s -- %s, leie tid %s"
#: dnsmasq.c:376
#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
#: dnsmasq.c:378
#: dnsmasq.c:383
msgid "running as root"
msgstr "kjører som rot (root)"
#: dnsmasq.c:511
#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr "avslutter etter mottak av SIGTERM"
#: dnsmasq.c:538
#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr "tilkoblet til system DBus"
@@ -703,169 +711,178 @@ msgstr "tilkoblet til system DBus"
msgid "cannot create DHCP socket : %s"
msgstr "kan ikke lage DHCP socket : %s"
#: dhcp.c:42
#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "feilet å sette opsjoner på DHCP socket: %s"
#: dhcp.c:49
#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr "feilet å sette SO_REUSEADDR på DHCP socket: %s"
#: dhcp.c:59
#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "feilet å binde DHCP tjener socket: %s"
#: dhcp.c:72
#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "kan ikke lage ICMP raw socket: %s"
#: dhcp.c:84
#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
#: dhcp.c:306
#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "DHCP område %s -- %s er ikke konsistent med nettmaske %s"
#: dhcp.c:622
#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr "feilet å lese %s:%m"
#: dhcp.c:641
#: dhcp.c:651
#, c-format
msgid "bad line at %s line %d"
msgstr "dårlig linje ved %s linje %d"
#: dhcp.c:745
#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "dubliserte IP adresser i %s (%s) i dhcp-config direktiv"
#: dhcp.c:781
#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr "Ignorerer DHCP verts navn %s på grunn av ulovlig domene del"
#: lease.c:34
#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr "kan ikke åpne eller lage leie fil: %s"
#: lease.c:71
#: lease.c:59
msgid "too many stored leases"
msgstr "for mange lagrede leier"
#: lease.c:118
#: lease.c:175
#, fuzzy, c-format
msgid "failed to write %s: %m (retry in %ds)"
msgid "failed to write %s: %s (retry in %us)"
msgstr "feilet å lese %s: %m"
#: rfc2131.c:247
#: lease.c:436
#, fuzzy, c-format
msgid "failed to execute %s: %m"
msgstr "feilet å få tilgang til %s: %m"
#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "ingen adresse område tilgjengelig for DHCP krav %s %s"
#: rfc2131.c:248
#: rfc2131.c:247
msgid "with subnet selector"
msgstr "med subnet velger"
#: rfc2131.c:248
#: rfc2131.c:247
msgid "via"
msgstr "via"
#: rfc2131.c:274 rfc2131.c:298
#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr "deaktivert"
#: rfc2131.c:310 rfc2131.c:731
#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr "adresse i bruk"
#: rfc2131.c:313
#: rfc2131.c:312
msgid "no address configured"
msgstr "ingen adresse konfigurert"
#: rfc2131.c:326 rfc2131.c:605
#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr "ingen adresse tilgjengelig"
#: rfc2131.c:333 rfc2131.c:734
#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr "ingen leier igjen"
#: rfc2131.c:336 rfc2131.c:707
#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr "galt nettverk"
#: rfc2131.c:540
#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr "deaktiverer DHCP statisk adresse %s"
#: rfc2131.c:558
#: rfc2131.c:559
msgid "unknown lease"
msgstr "ukjent leie"
#: rfc2131.c:567 rfc2131.c:799
#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr "oversett"
#: rfc2131.c:581
#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
#: rfc2131.c:590
#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
#: rfc2131.c:670
#: rfc2131.c:671
msgid "wrong address"
msgstr "gal adresse"
#: rfc2131.c:683
#: rfc2131.c:684
msgid "lease not found"
msgstr "leie ikke funnet"
#: rfc2131.c:715
#: rfc2131.c:716
msgid "address not available"
msgstr "adresse ikke tilgjengelig"
#: rfc2131.c:724
#: rfc2131.c:725
msgid "static lease available"
msgstr "statisk leie tilgjengelig"
#: rfc2131.c:728
#: rfc2131.c:729
msgid "address reserved"
msgstr "adresse reservert"
#: rfc2131.c:946
#: rfc2131.c:735
msgid "no unique-id"
msgstr ""
#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr "kan ikke sende DHCP opsjon %d: ikke mer plass i pakken"
#: rfc2131.c:1247
#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr "Mer enn en produsent klasse som passer, bruker %s"
#: netlink.c:51
#, fuzzy, c-format
msgid "cannot create RTnetlink socket: %s"
msgid "cannot create netlink socket: %s"
msgstr "kan ikke binde netlink socket: %s"
#: netlink.c:218
#, c-format
msgid "RTnetlink returns error: %s"
msgstr ""
#: netlink.c:224
#, fuzzy, c-format
msgid "netlink returns error: %s"
msgstr "DBus feil: %s"
#: dbus.c:112
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
@@ -879,12 +896,12 @@ msgstr "setter oppstr
msgid "could not register a DBus message handler"
msgstr "kunne ikke registrere en DBus meldingshåndterer"
#: bpf.c:54
#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "kan ikke lage DHCP BPF socket: %s"
#: bpf.c:74
#: bpf.c:79
#, fuzzy, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "DHCP krav for ikke støttet maskinvare type (%d) mottatt på %s"

367
po/pl.po
View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-04-21 19:59+0100\n"
"POT-Creation-Date: 2006-05-06 13:18+0100\n"
"PO-Revision-Date: 2005-10-04 19:17+0100\n"
"Last-Translator: Tomasz Sochañski <nerdhero@gmail.com>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -21,17 +21,17 @@ msgstr ""
msgid "failed to load names from %s: %m"
msgstr "b³±d ³adowania nazw z %s: %m"
#: cache.c:606 dhcp.c:654
#: cache.c:606 dhcp.c:664
#, fuzzy, c-format
msgid "bad address at %s line %d"
msgstr "b³êdna nazwa w %s, linia %d"
#: cache.c:633 dhcp.c:668
#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr "b³êdna nazwa w %s, linia %d"
#: cache.c:639 dhcp.c:722
#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr "przeczytano %s - %d adresów"
@@ -57,7 +57,7 @@ msgid ""
msgstr ""
"wielko¶æ cache %d, %d/%d wpisów cache u¿yto ponownie z niewygas³ych wpisów"
#: util.c:153 option.c:1294
#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr "nie mo¿na pobraæ pamiêci"
@@ -75,278 +75,282 @@ msgstr "B
msgid "infinite"
msgstr "nieskoñczona"
#: option.c:125
#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr "Adres(y) lokalne do nas³uchiwania."
#: option.c:126
#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Zwracanie adresu IP dla wszystkich hostów w podanych domenach."
#: option.c:127
#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr "Symulacja reverse lookups dla adresów prywatnych opisanych w RFC1918."
#: option.c:128
#: option.c:129
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Adres IP traktowany jak NXDOMAIN"
#: option.c:129
#: option.c:130
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Wielko¶æ pamiêci cache we wpisach (domy¶lna: %s)"
#: option.c:130
#: option.c:131
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "¦cie¿ka do pliku konfiguracyjnego (domy¶lna: %s)"
#: option.c:131
#: option.c:132
msgid "Do NOT fork into the background: run in debug mode."
msgstr "NIE twórz procesu potomnego w tle: dzia³anie w trybie debugowania."
#: option.c:132
#: option.c:133
msgid "Do NOT forward queries with no domain part."
msgstr "Wy³±czenie przekazywania zapytañ bez czê¶ci domenowej."
#: option.c:133
#: option.c:134
msgid "Return self-pointing MX records for local hosts."
msgstr "Zwracanie samowskazuj±cego rekordu MX dla lokalnych hostów."
#: option.c:134
#: option.c:135
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Rozwijanie prostych nazw z /etc/hosts przyrostkiem domenowym."
#: option.c:135
#: option.c:136
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Wy³±czenie przekazywania pozornych zapytañ DNS z komputerów Windows"
#: option.c:136
#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr "Enable DHCP w zakresie okre¶lonym czasem dzier¿awy."
#: option.c:137
#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Po starcie zmiana grupy procesu na podan± (domy¶lnie: %s)."
#: option.c:138
#: option.c:139
msgid "Set address or hostname for a specified machine."
msgstr "Ustawienie adresu lub nazwy hosta dla okre¶lonej maszyny."
#: option.c:139
#: option.c:140
#, c-format
msgid "Do NOT load %s file."
msgstr "Ignorowanie pliku %s."
#: option.c:140
#: option.c:141
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Dodatkowy plik hostów poza %s."
#: option.c:141
#: option.c:142
msgid "Specify interface(s) to listen on."
msgstr "Interfejs(y) do nas³uchiwania."
#: option.c:142
#: option.c:143
msgid "Specify interface(s) NOT to listen on."
msgstr "Interfejs(y), na których nie nas³uchiwaæ."
#: option.c:143
#: option.c:144
msgid "Map DHCP user class to option set."
msgstr "W³±czenie mapowania klasy u¿ytkownika DHCP do option set."
#: option.c:144
#: option.c:145
msgid "Don't do DHCP for hosts in option set."
msgstr ""
"Wy³±czenie odpowiadania na ¿adania DHCP hostów okre¶lonych w option set"
#: option.c:145
#: option.c:146
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr ""
"Wy³±czenie tworzenia procesu potomnego w tle, wy³±czenie dzia³ania w trybie "
"debug."
#: option.c:146
#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr "Za³o¿enie, ¿e jeste¶my jedynym serwerem DHCP w sieci lokalnej."
#: option.c:147
#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "¦cie¿ka przechowywania pliku dzier¿aw DHCP (domy¶lna: %s)"
#: option.c:148
#: option.c:149
msgid "Return MX records for local hosts."
msgstr "W³±czenie zwracania rekord MX dla hostów lokalnych."
#: option.c:149
#: option.c:150
msgid "Specify an MX record."
msgstr "Specyfikacja rekordu MX."
#: option.c:150
#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr "Okre¶lenie opcji BOOTP serwera DHCP."
#: option.c:151
#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
"Wy³aczenie analizy pliku %s, ponownie ³adowanie tylko po otrzymaniu sygna³u "
"HUP"
#: option.c:152
#: option.c:153
msgid "Do NOT cache failed search results."
msgstr ""
"Wy³±czenie zapisywania w pamiêci podrêcznej nieudanych wyników wyszukiwania."
#: option.c:153
#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "W³±czenie u¿ywania serwerów nazw w kolejno¶ci podanej w %s."
#: option.c:154
#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr "Dodatkowe opcje ustawieñ dla klientów DHCP."
#: option.c:155
#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Port nas³uchiwania zapytañ DNS (domy¶lnie: 53)."
#: option.c:156
#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Maksymalna obs³ugiwana wielko¶æ pakietu EDNS.0 (domy¶lnie: %s)."
#: option.c:157
#: option.c:158
msgid "Log queries."
msgstr "Zapytania zapisywane w pliku log."
#: option.c:158
#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr ""
#: option.c:159
#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr "Wy³±czenie czytania pliku resolv.conf"
#: option.c:160
#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Podaj ¶cie¿kê do pliku resolv.conf (domy¶lnie: %s)."
#: option.c:161
#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
#: option.c:162
#: option.c:163
msgid "Never forward queries to specified domains."
msgstr "Wy³±czenie przekazywania zapytañ do okre¶lonych domen."
#: option.c:163
#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Nazwa domeny, która bêdzie przypisana w dzier¿awach DHCP."
#: option.c:164
#: option.c:165
msgid "Specify default target in an MX record."
msgstr "Okre¶lenie domy¶lnego celu w rekordzie MX."
#: option.c:165
#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
"Okre¶lenie czasu wa¿no¶ci (time-to-live) w sekundach odpowiedzi branych z /"
"etc/hosts."
#: option.c:166
#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Po starcie zmiana u¿ytkownika procesu na podanego. (domy¶lnie: %s)."
#: option.c:167
#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr "Mapowanie nazwy dystrybutora DHCP do ustawieñ opcji."
#: option.c:168
#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr ""
"W³±czenie pokazywania wersji dnsmasq i informacji o ochronie praw autorskich."
#: option.c:169
#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr ""
#: option.c:170
#: option.c:171
msgid "Specify a SRV record."
msgstr "Okre¶lenie rekordu SRV."
#: option.c:171
#: option.c:172
msgid "Display this message."
msgstr "Wy¶wietlenie tych informacji."
#: option.c:172
#: option.c:173
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgstr "Okre¶lenie ¶cie¿ki do pliku PID. (domy¶lnie: %s)."
#: option.c:173
#: option.c:174
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Maksymalna liczba dzier¿aw DHCP. (domy¶lnie: %s)."
#: option.c:174
#: option.c:175
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
"Odpowiedzi na zapytania DNS uzale¿nione od interfejsu, który odebra³ "
"zapytanie."
#: option.c:175
#: option.c:176
msgid "Specify TXT DNS record."
msgstr "Rekord TXT DNS."
#: option.c:176
#: option.c:177
msgid "Bind only to interfaces in use."
msgstr "W³±czenie nas³uchiwania tylko na u¿ywanych interfejsach."
#: option.c:177
#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Statycznych informacji DHCP hosta z pliku %s."
#: option.c:178
#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr ""
#: option.c:179
#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Wy³±czenie DHCP na tym interfejsie, w³±czenie tylko DNS."
#: option.c:180
#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr "W³±czenie automatycznej alokacji adresu dla BOOTP."
#: option.c:181
#: option.c:182
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Mapowanie nazwy dystrybutora DHCP do ustawieñ opcji."
#: option.c:182
#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
#: option.c:396
#: option.c:184
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
#: option.c:398
msgid "missing \""
msgstr "brakuje \""
#: option.c:425
#: option.c:427
msgid "bad option"
msgstr "nieprawid³owa opcja"
#: option.c:442
#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr "b³±d odczytu z %s: %s"
#: option.c:448
#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -355,22 +359,22 @@ msgstr ""
"U¿ycie: dnsmasq [opcje]\n"
"\n"
#: option.c:450
#: option.c:452
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Tylko krótkie opcje w linii komend.\n"
#: option.c:452
#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr "Obs³ugiwane opcje:\n"
#: option.c:477
#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "Dnsmasq, wersja %s %s\n"
#: option.c:478
#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
@@ -379,141 +383,145 @@ msgstr ""
"Wkompilowane opcje %s\n"
"\n"
#: option.c:479
#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Oprogramowanie to nie zawiera ¿adnych gwarancji.\n"
#: option.c:480
#: option.c:482
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr "Dnsmasq jest wolnym oprogramowaniem, mo¿esz je rozprowadzaæ\n"
#: option.c:481
#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr "na warunkach okre¶lonych w GNU General Public Licence, wersja 2.\n"
#: option.c:491
#: option.c:493
msgid "extraneous parameter"
msgstr "dodatkowy parametr"
#: option.c:499
#: option.c:501
msgid "missing parameter"
msgstr "brak parametru"
#: option.c:516
#: option.c:518
msgid "nested includes not allowed"
msgstr "zagnie¿d¿one do³±czanie plików jest niedozwolone"
#: option.c:576
#: option.c:578
msgid "bad MX preference"
msgstr ""
#: option.c:585
#: option.c:587
msgid "bad MX name"
msgstr "b³êdna nazwa MX"
#: option.c:603
#: option.c:605
msgid "bad MX target"
msgstr "b³êdny cel MX"
#: option.c:802 option.c:813
#: option.c:617
msgid "cannot run scripts under uClinux"
msgstr ""
#: option.c:813 option.c:824
msgid "bad port"
msgstr "nieprawid³owy port"
#: option.c:955
#: option.c:966
msgid "bad dhcp-range"
msgstr "nieprawid³owy zakres dhcp-range"
#: option.c:984
#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
#: option.c:1029
#: option.c:1040
msgid "inconsistent DHCP range"
msgstr "niespójny zakres DHCP"
#: option.c:1214
#: option.c:1225
msgid "bad dhcp-host"
msgstr "b³±d w dhcp-host"
#: option.c:1271
#: option.c:1282
msgid "bad dhcp-option"
msgstr "b³±d w dhcp-option"
#: option.c:1289
#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr "nieprawid³owa nazwa domeny w dhcp-option"
#: option.c:1459
#: option.c:1470
msgid "dhcp-option too long"
msgstr "zbyt d³uga nazwa w dhcp-option"
#: option.c:1656
#: option.c:1667
msgid "bad TXT record"
msgstr "nieprawid³owy rekord TX"
#: option.c:1688
#: option.c:1699
msgid "TXT record string too long"
msgstr "zbyt d³ugi rekord TXT"
#: option.c:1727
#: option.c:1738
msgid "bad SRV record"
msgstr "b³±d w rekordzie SRV"
#: option.c:1740
#: option.c:1751
msgid "bad SRV target"
msgstr "nieprawid³owy cel SRV"
#: option.c:1752
#: option.c:1763
msgid "invalid port number"
msgstr "nieprawid³owy port"
#: option.c:1763
#: option.c:1774
msgid "invalid priority"
msgstr "nieprawid³owy priorytet"
#: option.c:1774
#: option.c:1785
msgid "invalid weight"
msgstr "nieprawid³owe znaczenie"
#: option.c:1799
#: option.c:1810
msgid "error"
msgstr "b³±d"
#: option.c:1801
#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr "nieprawid³owa opcja linii komend: %s."
#: option.c:1803
#: option.c:1814
msgid "try --help"
msgstr ""
#: option.c:1805
#: option.c:1816
msgid "try -w"
msgstr ""
#: option.c:1845
#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr "nie mo¿na pobraæ nazwy hosta: %s"
#: option.c:1874
#: option.c:1885
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "tylko jeden plik resolv.conf jest dopuszczany w trybie no-poll."
#: option.c:1881
#: option.c:1892
msgid "must have exactly one resolv.conf to read domain from."
msgstr "musisz mieæ dok³adnie jeden plik resolv.conf do odczytu domen."
#: option.c:1884 network.c:501
#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr "b³±d w odczycie %s: %m"
#: option.c:1902
#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr "brak wytycznych wyszukiwania w %s"
@@ -528,7 +536,7 @@ msgid "forwarding table overflow: check for server loops."
msgstr ""
"przekroczenie zakresu tablicy przekazywania: sprawd¼ zapêtlenie serwera."
#: isc.c:73 dnsmasq.c:460
#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr "b³±d w dostêpie do %s: %m"
@@ -538,7 +546,7 @@ msgstr "b
msgid "failed to load %s: %m"
msgstr "b³±d ³adowania %s: %m"
#: isc.c:93 network.c:505
#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr "czytanie %s"
@@ -555,59 +563,59 @@ msgstr ""
"Ignorujê dzier¿awy DHCP dla %s poniewa¿ zawieraj± nieprawid³ow± czê¶æ "
"domenow±"
#: network.c:328 dnsmasq.c:129
#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr "b³±d podczas tworzenia gniazda: %s"
#: network.c:335
#: network.c:321
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr "b³±d ustawienia opcji IPV6 na nas³uchuj±cym gnie¼dzie: %s"
#: network.c:353
#: network.c:339
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "b³±d pod³±czenia nas³uchuj±cego gniazda dla %s: %s"
#: network.c:361
#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr "b³±d w³±czenia nas³uchiwania gniazda: %s"
#: network.c:431
#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorowanie serwera nazw %s - interfejs lokalny"
#: network.c:440
#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr "ignorowanie serwera nazw %s - nie mo¿na utworzyæ/dowi±zaæ gniazda: %m"
#: network.c:454
#: network.c:438
msgid "domain"
msgstr "domena"
#: network.c:456
#: network.c:440
msgid "unqualified"
msgstr "niekwalifikowany(a/e)"
#: network.c:456
#: network.c:440
msgid "domains"
msgstr "domeny"
#: network.c:459
#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr "w³±czenie u¿ywania lokalnych adresów tylko dla %s %s"
#: network.c:461
#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "u¿ywany serwer nazw: %s#%d dla %s %s"
#: network.c:464
#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr "u¿ywany serwer nazw %s#%d"
@@ -638,7 +646,7 @@ msgstr "brak interfejsu z adresem %s"
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr "musisz ustawiæ dok³adnie jeden interfejs w systemach bez IP_RECVIF"
#: dnsmasq.c:158 dnsmasq.c:536
#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr "b³±d DBus: %s"
@@ -647,67 +655,67 @@ msgstr "b
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus jest niedostêpny: ustaw HAVE_DBUS w src/config.h"
#: dnsmasq.c:196
#: dnsmasq.c:192
#, fuzzy, c-format
msgid "cannot create pipe: %s"
msgstr "b³±d odczytu z %s: %s"
#: dnsmasq.c:331
#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr "uruchomiony, wersja %s wielko¶æ cache %d"
#: dnsmasq.c:333
#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr "uruchomiony, wersja %s cache wy³±czony"
#: dnsmasq.c:335
#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr "opcje kompilacji: %s"
#: dnsmasq.c:341
#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr "obs³uga DBus w³±czona: pod³±czono do szyny systemowej"
#: dnsmasq.c:343
#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr "obs³uga DBus w³±czona: pod³±czanie do szyny systemowej w toku"
#: dnsmasq.c:348
#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "ustawiam opcjê --bind-interfaces z powodu limitów systemu operacyjnego"
#: dnsmasq.c:353
#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "ostrze¿enie: interfejs %s obecnie nie istnieje"
#: dnsmasq.c:365
#: dnsmasq.c:370
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "DHCP, statyczne dzier¿awy tylko na %.0s%s, czas dzier¿awy %s"
#: dnsmasq.c:366
#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, zakres IP %s -- %s, czas dzier¿awy %s"
#: dnsmasq.c:376
#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
#: dnsmasq.c:378
#: dnsmasq.c:383
msgid "running as root"
msgstr "pracuje z uprawnieniami u¿ytkownika root"
#: dnsmasq.c:511
#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr "wy³±czenie po otrzymaniu sygnalu SIGTERM"
#: dnsmasq.c:538
#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr "po³±czono do systemowego DBus"
@@ -716,170 +724,179 @@ msgstr "po
msgid "cannot create DHCP socket : %s"
msgstr "nie mo¿na utworzyæ gniazda DHCP : %s"
#: dhcp.c:42
#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "b³±d ustawienia opcji gniazda DHCP: %s"
#: dhcp.c:49
#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr "b³±d ustawienia SO_REUSEADDR gniazda DHCP: %s"
#: dhcp.c:59
#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "b³±d pod³±czenia gniazda serwera DHCP: %s"
#: dhcp.c:72
#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "b³±d utworzenia surowego gniazda ICMP: %s."
#: dhcp.c:84
#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "powtórzenie adresu IP %s w opcji dhcp-config"
#: dhcp.c:306
#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "zakres DHCP %s -- %s jest niespójny z mask± sieciow± %s"
#: dhcp.c:622
#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr "b³±d odczytu %s:%m"
#: dhcp.c:641
#: dhcp.c:651
#, fuzzy, c-format
msgid "bad line at %s line %d"
msgstr "b³êdna nazwa w %s, linia %d"
#: dhcp.c:745
#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "powtórzenie adresu IP %s (%s) w opcji dhcp-config"
#: dhcp.c:781
#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr ""
"Ignorujê nazwê hosta DHCP %s, poniewa¿ posiada nieprawid³ow± czê¶æ domenow±"
#: lease.c:34
#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr "b³±d otwarcia lub utworzenia pliku dzier¿aw: %s"
#: lease.c:71
#: lease.c:59
msgid "too many stored leases"
msgstr "zbyt du¿a ilo¶æ zapisanych dzier¿aw"
#: lease.c:118
#: lease.c:175
#, fuzzy, c-format
msgid "failed to write %s: %m (retry in %ds)"
msgid "failed to write %s: %s (retry in %us)"
msgstr "b³±d w odczycie %s: %m"
#: rfc2131.c:247
#: lease.c:436
#, fuzzy, c-format
msgid "failed to execute %s: %m"
msgstr "b³±d w dostêpie do %s: %m"
#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "¿aden zakres adresowy nie jest dostêpny dla ¿adania DHCP %s %s"
#: rfc2131.c:248
#: rfc2131.c:247
msgid "with subnet selector"
msgstr "z selekcj± podsieci"
#: rfc2131.c:248
#: rfc2131.c:247
msgid "via"
msgstr "przez"
#: rfc2131.c:274 rfc2131.c:298
#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr "wy³±czony(a)"
#: rfc2131.c:310 rfc2131.c:731
#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr "adres w u¿yciu"
#: rfc2131.c:313
#: rfc2131.c:312
msgid "no address configured"
msgstr "brak skonfigurowanego adresu"
#: rfc2131.c:326 rfc2131.c:605
#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr "brak dostêpnego adresu"
#: rfc2131.c:333 rfc2131.c:734
#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr "brak wolnych dzier¿aw"
#: rfc2131.c:336 rfc2131.c:707
#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr "nieprawid³owa sieæ"
#: rfc2131.c:540
#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr "wy³±czanie statycznego adresu DHCP %s"
#: rfc2131.c:558
#: rfc2131.c:559
msgid "unknown lease"
msgstr "nieznana dzier¿awa"
#: rfc2131.c:567 rfc2131.c:799
#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr "ignorujê"
#: rfc2131.c:581
#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
#: rfc2131.c:590
#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
#: rfc2131.c:670
#: rfc2131.c:671
msgid "wrong address"
msgstr "b³êdny adres"
#: rfc2131.c:683
#: rfc2131.c:684
msgid "lease not found"
msgstr "dzier¿awa nie znaleziona"
#: rfc2131.c:715
#: rfc2131.c:716
msgid "address not available"
msgstr "adres niedostêpny"
#: rfc2131.c:724
#: rfc2131.c:725
msgid "static lease available"
msgstr "dostêpna statyczna dzier¿awa"
#: rfc2131.c:728
#: rfc2131.c:729
msgid "address reserved"
msgstr "adres zarezerwowany"
#: rfc2131.c:946
#: rfc2131.c:735
msgid "no unique-id"
msgstr ""
#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr ""
#: rfc2131.c:1247
#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr "Wiêcej ni¿ jeden dystrybutor pasuj±cy, u¿ywam %s"
#: netlink.c:51
#, fuzzy, c-format
msgid "cannot create RTnetlink socket: %s"
msgid "cannot create netlink socket: %s"
msgstr "nie mo¿na pod³±czyæ gniazda netlink: %s"
#: netlink.c:218
#, c-format
msgid "RTnetlink returns error: %s"
msgstr ""
#: netlink.c:224
#, fuzzy, c-format
msgid "netlink returns error: %s"
msgstr "b³±d DBus: %s"
#: dbus.c:112
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
@@ -893,12 +910,12 @@ msgstr ""
msgid "could not register a DBus message handler"
msgstr "nie mo¿na zarejestrowaæ uchwytu wiadomo¶ci DBus"
#: bpf.c:54
#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "b³±d utworzenia gniazda DHCP BPF: %s"
#: bpf.c:74
#: bpf.c:79
#, fuzzy, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "¿±danie DHCP nieobs³ugiwanego typu sprzêtowego (%d) otrzymane na %s"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.26\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-04-21 19:59+0100\n"
"POT-Creation-Date: 2006-05-06 13:18+0100\n"
"PO-Revision-Date: 2006-01-16 20:42+0000\n"
"Last-Translator: Simon Kelley <simon@thekelleys.org.uk>\n"
"Language-Team: Portuguese <ldp-br@bazar.conectiva.com.br>\n"
@@ -20,17 +20,17 @@ msgstr ""
msgid "failed to load names from %s: %m"
msgstr ""
#: cache.c:606 dhcp.c:654
#: cache.c:606 dhcp.c:664
#, c-format
msgid "bad address at %s line %d"
msgstr ""
#: cache.c:633 dhcp.c:668
#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr ""
#: cache.c:639 dhcp.c:722
#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr ""
@@ -53,7 +53,7 @@ msgid ""
"entries."
msgstr ""
#: util.c:153 option.c:1294
#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr ""
@@ -71,429 +71,437 @@ msgstr ""
msgid "infinite"
msgstr ""
#: option.c:125
#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr ""
#: option.c:126
#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr ""
#: option.c:127
#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
#: option.c:128
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr ""
#: option.c:129
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr ""
#: option.c:130
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr ""
#: option.c:131
msgid "Do NOT fork into the background: run in debug mode."
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr ""
#: option.c:132
msgid "Do NOT forward queries with no domain part."
msgid "Do NOT fork into the background: run in debug mode."
msgstr ""
#: option.c:133
msgid "Return self-pointing MX records for local hosts."
msgid "Do NOT forward queries with no domain part."
msgstr ""
#: option.c:134
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgid "Return self-pointing MX records for local hosts."
msgstr ""
#: option.c:135
msgid "Don't forward spurious DNS requests from Windows hosts."
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr ""
#: option.c:136
msgid "Enable DHCP in the range given with lease duration."
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr ""
#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr ""
#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr ""
#: option.c:138
msgid "Set address or hostname for a specified machine."
msgstr ""
#: option.c:139
#, c-format
msgid "Do NOT load %s file."
msgid "Set address or hostname for a specified machine."
msgstr ""
#: option.c:140
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgid "Do NOT load %s file."
msgstr ""
#: option.c:141
msgid "Specify interface(s) to listen on."
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr ""
#: option.c:142
msgid "Specify interface(s) NOT to listen on."
msgid "Specify interface(s) to listen on."
msgstr ""
#: option.c:143
msgid "Map DHCP user class to option set."
msgid "Specify interface(s) NOT to listen on."
msgstr ""
#: option.c:144
msgid "Don't do DHCP for hosts in option set."
msgid "Map DHCP user class to option set."
msgstr ""
#: option.c:145
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgid "Don't do DHCP for hosts in option set."
msgstr ""
#: option.c:146
msgid "Assume we are the only DHCP server on the local network."
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr ""
#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr ""
#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr ""
#: option.c:148
#: option.c:149
msgid "Return MX records for local hosts."
msgstr ""
#: option.c:149
#: option.c:150
msgid "Specify an MX record."
msgstr ""
#: option.c:150
#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr ""
#: option.c:151
#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr ""
#: option.c:152
#: option.c:153
msgid "Do NOT cache failed search results."
msgstr ""
#: option.c:153
#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr ""
#: option.c:154
#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr ""
#: option.c:155
#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr ""
#: option.c:156
#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr ""
#: option.c:157
#: option.c:158
msgid "Log queries."
msgstr ""
#: option.c:158
#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr ""
#: option.c:159
#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr ""
#: option.c:160
#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr ""
#: option.c:161
#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr ""
#: option.c:162
#: option.c:163
msgid "Never forward queries to specified domains."
msgstr ""
#: option.c:163
#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr ""
#: option.c:164
#: option.c:165
msgid "Specify default target in an MX record."
msgstr ""
#: option.c:165
#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr ""
#: option.c:166
#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr ""
#: option.c:167
#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr ""
#: option.c:168
#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr ""
#: option.c:169
#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr ""
#: option.c:170
#: option.c:171
msgid "Specify a SRV record."
msgstr ""
#: option.c:171
msgid "Display this message."
msgstr ""
#: option.c:172
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgid "Display this message."
msgstr ""
#: option.c:173
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgid "Specify path of PID file. (defaults to %s)."
msgstr ""
#: option.c:174
msgid "Answer DNS queries based on the interface a query was sent to."
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr ""
#: option.c:175
msgid "Specify TXT DNS record."
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
#: option.c:176
msgid "Bind only to interfaces in use."
msgid "Specify TXT DNS record."
msgstr ""
#: option.c:177
msgid "Bind only to interfaces in use."
msgstr ""
#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr ""
#: option.c:178
#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr ""
#: option.c:179
#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr ""
#: option.c:180
#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr ""
#: option.c:181
#: option.c:182
msgid "Map MAC address (with wildcards) to option set."
msgstr ""
#: option.c:182
#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
#: option.c:396
#: option.c:184
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
#: option.c:398
msgid "missing \""
msgstr ""
#: option.c:425
#: option.c:427
msgid "bad option"
msgstr ""
#: option.c:442
#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr ""
#: option.c:448
#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
"\n"
msgstr ""
#: option.c:450
#: option.c:452
#, c-format
msgid "Use short options only on the command line.\n"
msgstr ""
#: option.c:452
#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr ""
#: option.c:477
#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr ""
#: option.c:478
#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
"\n"
msgstr ""
#: option.c:479
#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr ""
#: option.c:480
#: option.c:482
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr ""
#: option.c:481
#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr ""
#: option.c:491
#: option.c:493
msgid "extraneous parameter"
msgstr ""
#: option.c:499
#: option.c:501
msgid "missing parameter"
msgstr ""
#: option.c:516
#: option.c:518
msgid "nested includes not allowed"
msgstr ""
#: option.c:576
#: option.c:578
msgid "bad MX preference"
msgstr ""
#: option.c:585
#: option.c:587
msgid "bad MX name"
msgstr ""
#: option.c:603
#: option.c:605
msgid "bad MX target"
msgstr ""
#: option.c:802 option.c:813
#: option.c:617
msgid "cannot run scripts under uClinux"
msgstr ""
#: option.c:813 option.c:824
msgid "bad port"
msgstr ""
#: option.c:955
#: option.c:966
msgid "bad dhcp-range"
msgstr ""
#: option.c:984
#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
#: option.c:1029
#: option.c:1040
msgid "inconsistent DHCP range"
msgstr ""
#: option.c:1214
#: option.c:1225
msgid "bad dhcp-host"
msgstr ""
#: option.c:1271
#: option.c:1282
msgid "bad dhcp-option"
msgstr ""
#: option.c:1289
#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr ""
#: option.c:1459
#: option.c:1470
msgid "dhcp-option too long"
msgstr ""
#: option.c:1656
#: option.c:1667
msgid "bad TXT record"
msgstr ""
#: option.c:1688
#: option.c:1699
msgid "TXT record string too long"
msgstr ""
#: option.c:1727
#: option.c:1738
msgid "bad SRV record"
msgstr ""
#: option.c:1740
#: option.c:1751
msgid "bad SRV target"
msgstr ""
#: option.c:1752
#: option.c:1763
msgid "invalid port number"
msgstr ""
#: option.c:1763
#: option.c:1774
msgid "invalid priority"
msgstr ""
#: option.c:1774
#: option.c:1785
msgid "invalid weight"
msgstr ""
#: option.c:1799
#: option.c:1810
msgid "error"
msgstr ""
#: option.c:1801
#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr ""
#: option.c:1803
#: option.c:1814
msgid "try --help"
msgstr ""
#: option.c:1805
#: option.c:1816
msgid "try -w"
msgstr ""
#: option.c:1845
#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr ""
#: option.c:1874
#: option.c:1885
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr ""
#: option.c:1881
#: option.c:1892
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
#: option.c:1884 network.c:501
#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr ""
#: option.c:1902
#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr ""
@@ -507,7 +515,7 @@ msgstr ""
msgid "forwarding table overflow: check for server loops."
msgstr ""
#: isc.c:73 dnsmasq.c:460
#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr ""
@@ -517,7 +525,7 @@ msgstr ""
msgid "failed to load %s: %m"
msgstr ""
#: isc.c:93 network.c:505
#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr ""
@@ -532,59 +540,59 @@ msgstr ""
msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
msgstr ""
#: network.c:328 dnsmasq.c:129
#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr ""
#: network.c:335
#: network.c:321
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr ""
#: network.c:353
#: network.c:339
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr ""
#: network.c:361
#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr ""
#: network.c:431
#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr ""
#: network.c:440
#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr ""
#: network.c:454
#: network.c:438
msgid "domain"
msgstr ""
#: network.c:456
#: network.c:440
msgid "unqualified"
msgstr ""
#: network.c:456
#: network.c:440
msgid "domains"
msgstr ""
#: network.c:459
#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr ""
#: network.c:461
#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr ""
#: network.c:464
#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr ""
@@ -613,7 +621,7 @@ msgstr ""
msgid "must set exactly one interface on broken systems without IP_RECVIF"
msgstr ""
#: dnsmasq.c:158 dnsmasq.c:536
#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr ""
@@ -622,67 +630,67 @@ msgstr ""
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr ""
#: dnsmasq.c:196
#: dnsmasq.c:192
#, c-format
msgid "cannot create pipe: %s"
msgstr ""
#: dnsmasq.c:331
#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr ""
#: dnsmasq.c:333
#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr ""
#: dnsmasq.c:335
#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr ""
#: dnsmasq.c:341
#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr ""
#: dnsmasq.c:343
#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr ""
#: dnsmasq.c:348
#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr ""
#: dnsmasq.c:353
#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr ""
#: dnsmasq.c:365
#: dnsmasq.c:370
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr ""
#: dnsmasq.c:366
#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr ""
#: dnsmasq.c:376
#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
#: dnsmasq.c:378
#: dnsmasq.c:383
msgid "running as root"
msgstr ""
#: dnsmasq.c:511
#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr ""
#: dnsmasq.c:538
#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr ""
@@ -691,168 +699,177 @@ msgstr ""
msgid "cannot create DHCP socket : %s"
msgstr ""
#: dhcp.c:42
#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr ""
#: dhcp.c:49
#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr ""
#: dhcp.c:59
#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr ""
#: dhcp.c:72
#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr ""
#: dhcp.c:84
#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr ""
#: dhcp.c:306
#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr ""
#: dhcp.c:622
#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr ""
#: dhcp.c:641
#: dhcp.c:651
#, c-format
msgid "bad line at %s line %d"
msgstr ""
#: dhcp.c:745
#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr ""
#: dhcp.c:781
#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr ""
#: lease.c:34
#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr ""
#: lease.c:71
#: lease.c:59
msgid "too many stored leases"
msgstr ""
#: lease.c:118
#: lease.c:175
#, c-format
msgid "failed to write %s: %m (retry in %ds)"
msgid "failed to write %s: %s (retry in %us)"
msgstr ""
#: rfc2131.c:247
#: lease.c:436
#, c-format
msgid "failed to execute %s: %m"
msgstr ""
#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr ""
#: rfc2131.c:248
#: rfc2131.c:247
msgid "with subnet selector"
msgstr ""
#: rfc2131.c:248
#: rfc2131.c:247
msgid "via"
msgstr ""
#: rfc2131.c:274 rfc2131.c:298
#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr ""
#: rfc2131.c:310 rfc2131.c:731
#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr ""
#: rfc2131.c:313
#: rfc2131.c:312
msgid "no address configured"
msgstr ""
#: rfc2131.c:326 rfc2131.c:605
#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr ""
#: rfc2131.c:333 rfc2131.c:734
#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr ""
#: rfc2131.c:336 rfc2131.c:707
#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr ""
#: rfc2131.c:540
#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr ""
#: rfc2131.c:558
#: rfc2131.c:559
msgid "unknown lease"
msgstr ""
#: rfc2131.c:567 rfc2131.c:799
#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr ""
#: rfc2131.c:581
#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
#: rfc2131.c:590
#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
#: rfc2131.c:670
#: rfc2131.c:671
msgid "wrong address"
msgstr ""
#: rfc2131.c:683
#: rfc2131.c:684
msgid "lease not found"
msgstr ""
#: rfc2131.c:715
#: rfc2131.c:716
msgid "address not available"
msgstr ""
#: rfc2131.c:724
#: rfc2131.c:725
msgid "static lease available"
msgstr ""
#: rfc2131.c:728
#: rfc2131.c:729
msgid "address reserved"
msgstr ""
#: rfc2131.c:946
#: rfc2131.c:735
msgid "no unique-id"
msgstr ""
#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr ""
#: rfc2131.c:1247
#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr ""
#: netlink.c:51
#, c-format
msgid "cannot create RTnetlink socket: %s"
msgid "cannot create netlink socket: %s"
msgstr ""
#: netlink.c:218
#: netlink.c:224
#, c-format
msgid "RTnetlink returns error: %s"
msgid "netlink returns error: %s"
msgstr ""
#: dbus.c:112
@@ -867,12 +884,12 @@ msgstr ""
msgid "could not register a DBus message handler"
msgstr ""
#: bpf.c:54
#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr ""
#: bpf.c:74
#: bpf.c:79
#, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr ""

367
po/ro.po
View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dnsmasq 2.24\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-04-21 19:59+0100\n"
"POT-Creation-Date: 2006-05-06 13:18+0100\n"
"PO-Revision-Date: 2005-11-22 16:46+0000\n"
"Last-Translator: Simon Kelley <simon@thekelleys.org.uk>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -20,17 +20,17 @@ msgstr ""
msgid "failed to load names from %s: %m"
msgstr "încărcarea numelor din %s: %m a eşuat"
#: cache.c:606 dhcp.c:654
#: cache.c:606 dhcp.c:664
#, c-format
msgid "bad address at %s line %d"
msgstr "adresă greşită în %s, linia %d"
#: cache.c:633 dhcp.c:668
#: cache.c:633 dhcp.c:678
#, c-format
msgid "bad name at %s line %d"
msgstr "nume greşit în %s linia %d"
#: cache.c:639 dhcp.c:722
#: cache.c:639 dhcp.c:732
#, c-format
msgid "read %s - %d addresses"
msgstr "citesc %s - %d adrese"
@@ -57,7 +57,7 @@ msgstr ""
"cantitate de memorie temporară %d, %d/%d stocări temporare aureutilizat "
"locaţii neexpirate."
#: util.c:153 option.c:1294
#: util.c:153 option.c:1305
msgid "could not get memory"
msgstr "nu am putut aloca memorie"
@@ -75,269 +75,273 @@ msgstr "pornirea A EŞUAT"
msgid "infinite"
msgstr "infinit"
#: option.c:125
#: option.c:126
msgid "Specify local address(es) to listen on."
msgstr "Specificaţi adresele locale deservite."
#: option.c:126
#: option.c:127
msgid "Return ipaddr for all hosts in specified domains."
msgstr "Afişează adresele IP ale maşinilor în domeniul dat."
#: option.c:127
#: option.c:128
msgid "Fake reverse lookups for RFC1918 private address ranges."
msgstr ""
"Simulează căutări după adresă pentru domenii de adresă private (RFC1918)."
#: option.c:128
#: option.c:129
msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
msgstr "Interpretează adresa IP ca NXDOMAIN (împotriva manipulărilor Verisign)"
#: option.c:129
#: option.c:130
#, c-format
msgid "Specify the size of the cache in entries (defaults to %s)."
msgstr "Specifică mărimea înregistrărilor temporare (implicit e %s)."
#: option.c:130
#: option.c:131
#, c-format
msgid "Specify configuration file (defaults to %s)."
msgstr "Specifică fişier de configurare (implicit e %s)."
#: option.c:131
#: option.c:132
msgid "Do NOT fork into the background: run in debug mode."
msgstr "NU porneşte în fundal: rulează în modul depanare."
#: option.c:132
#: option.c:133
msgid "Do NOT forward queries with no domain part."
msgstr "NU înainta cererile ce nu conţin domeniu DNS."
#: option.c:133
#: option.c:134
msgid "Return self-pointing MX records for local hosts."
msgstr "Răspunde cu înregistrări MX spre el însuşi pentru maşini locale."
#: option.c:134
#: option.c:135
msgid "Expand simple names in /etc/hosts with domain-suffix."
msgstr "Adaugă numelor simple din /etc/hosts numele domeniului ca sufix."
#: option.c:135
#: option.c:136
msgid "Don't forward spurious DNS requests from Windows hosts."
msgstr "Nu inainta cereri DNS defecte provenite de la maşini Windows."
#: option.c:136
#: option.c:137
msgid "Enable DHCP in the range given with lease duration."
msgstr "Activează DHCP în domeniul dat cu durată limitată de împrumut."
#: option.c:137
#: option.c:138
#, c-format
msgid "Change to this group after startup (defaults to %s)."
msgstr "Rulează sub acest grup după pornire (implicit e %s)."
#: option.c:138
#: option.c:139
msgid "Set address or hostname for a specified machine."
msgstr "Schimbă adresa sau numele maşinii specificate."
#: option.c:139
#: option.c:140
#, c-format
msgid "Do NOT load %s file."
msgstr "Nu încarcă fişierul %s."
#: option.c:140
#: option.c:141
#, c-format
msgid "Specify a hosts file to be read in addition to %s."
msgstr "Specifică spre citire un fişier hosts adiţional la %s."
#: option.c:141
#: option.c:142
msgid "Specify interface(s) to listen on."
msgstr "Specifică interfeţele deservite."
#: option.c:142
#: option.c:143
msgid "Specify interface(s) NOT to listen on."
msgstr "Specifică interfeţele NE-deservite."
#: option.c:143
#: option.c:144
msgid "Map DHCP user class to option set."
msgstr "Leagă clasa de utilizator DHCP cu grup de opţiuni."
#: option.c:144
#: option.c:145
msgid "Don't do DHCP for hosts in option set."
msgstr "Nu furniza DHCP maşinilor din grupul de opţiuni."
#: option.c:145
#: option.c:146
msgid "Do NOT fork into the background, do NOT run in debug mode."
msgstr "NU porneşte în fundal, NU rulează în modul depanare."
#: option.c:146
#: option.c:147
msgid "Assume we are the only DHCP server on the local network."
msgstr "Presupune că suntem singurul server DHCP din reţeaua locală."
#: option.c:147
#: option.c:148
#, c-format
msgid "Specify where to store DHCP leases (defaults to %s)."
msgstr "Specifică fişierul de stocare a împrumuturilor DHCP (implicit e %s)."
#: option.c:148
#: option.c:149
msgid "Return MX records for local hosts."
msgstr "Răspunde cu întregistrări MX pentru maşini locale."
#: option.c:149
#: option.c:150
msgid "Specify an MX record."
msgstr "Specifică o înregistrare MX."
#: option.c:150
#: option.c:151
msgid "Specify BOOTP options to DHCP server."
msgstr "Specifică opţiuni BOOTP serverului DHCP."
#: option.c:151
#: option.c:152
#, c-format
msgid "Do NOT poll %s file, reload only on SIGHUP."
msgstr "Nu încărca fişierul %s, citeşte-l doar la SIGHUP."
#: option.c:152
#: option.c:153
msgid "Do NOT cache failed search results."
msgstr "NU memora rezultatele de căutare DNS eşuatată."
#: option.c:153
#: option.c:154
#, c-format
msgid "Use nameservers strictly in the order given in %s."
msgstr "Foloseşte servere DNS strict în ordinea dată în %s."
#: option.c:154
#: option.c:155
msgid "Set extra options to be set to DHCP clients."
msgstr "Configurează opţiuni în plusce trebuie trimise clienţilor DHCP."
#: option.c:155
#: option.c:156
msgid "Specify port to listen for DNS requests on (defaults to 53)."
msgstr "Specifică numărul portului pentru cereri DNS (implicit e 53)."
#: option.c:156
#: option.c:157
#, c-format
msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
msgstr "Marimea maximă a pachetului UDP pentru EDNS.0 (implicit e %s)."
#: option.c:157
#: option.c:158
msgid "Log queries."
msgstr "Înregistrează tranzacţiile."
#: option.c:158
#: option.c:159
msgid "Force the originating port for upstream queries."
msgstr "Forţează acest port pentru datele ce pleacă."
#: option.c:159
#: option.c:160
msgid "Do NOT read resolv.conf."
msgstr "NU citi fişierul resolv.conf"
#: option.c:160
#: option.c:161
#, c-format
msgid "Specify path to resolv.conf (defaults to %s)."
msgstr "Specifică calea către resolv.conf (implicit e %s)."
#: option.c:161
#: option.c:162
msgid "Specify address(es) of upstream servers with optional domains."
msgstr "Specifică adresele server(elor) superioare cu domenii opţionale."
#: option.c:162
#: option.c:163
msgid "Never forward queries to specified domains."
msgstr "Nu înaintează cererile spre domeniile specificate."
#: option.c:163
#: option.c:164
msgid "Specify the domain to be assigned in DHCP leases."
msgstr "Specifică domeniul de transmis prin DHCP."
#: option.c:164
#: option.c:165
msgid "Specify default target in an MX record."
msgstr "Specifică o ţintă într-o înregistrare MX."
#: option.c:165
#: option.c:166
msgid "Specify time-to-live in seconds for replies from /etc/hosts."
msgstr "Specifică TTL în secunde pentru răspunsurile din /etc/hosts."
#: option.c:166
#: option.c:167
#, c-format
msgid "Change to this user after startup. (defaults to %s)."
msgstr "Rulează sub acest utilizator după pornire. (implicit e %s)."
#: option.c:167
#: option.c:168
msgid "Map DHCP vendor class to option set."
msgstr "Trimite opţiuni DHCP în funcţie de marca plăcii de reţea."
#: option.c:168
#: option.c:169
msgid "Display dnsmasq version and copyright information."
msgstr "Afişează versiunea dnsmasq şi drepturile de autor."
#: option.c:169
#: option.c:170
msgid "Translate IPv4 addresses from upstream servers."
msgstr "Traduce adresele IPv4 de la serverele DNS superioare."
#: option.c:170
#: option.c:171
msgid "Specify a SRV record."
msgstr "Specifică o înregistrare SRV."
#: option.c:171
#: option.c:172
msgid "Display this message."
msgstr "Afişează acest mesaj."
#: option.c:172
#: option.c:173
#, c-format
msgid "Specify path of PID file. (defaults to %s)."
msgstr "Specifică o cale pentru fişierul PID. (implicit %s)."
#: option.c:173
#: option.c:174
#, c-format
msgid "Specify maximum number of DHCP leases (defaults to %s)."
msgstr "Specifică numărul maxim de împrumuturi DHCP (implicit %s)."
#: option.c:174
#: option.c:175
msgid "Answer DNS queries based on the interface a query was sent to."
msgstr ""
"Răspunde cererilor DNS în funcţie de interfaţa pe care a venit cererea."
#: option.c:175
#: option.c:176
msgid "Specify TXT DNS record."
msgstr "Specifică o înregistrare TXT."
#: option.c:176
#: option.c:177
msgid "Bind only to interfaces in use."
msgstr "Ascultă doar pe interfeţele active."
#: option.c:177
#: option.c:178
#, c-format
msgid "Read DHCP static host information from %s."
msgstr "Citeşte informaţii DHCP statice despre maşină din %s."
#: option.c:178
#: option.c:179
msgid "Enable the DBus interface for setting upstream servers, etc."
msgstr "Activeaza interfaţa DBus pentru configurarea serverelor superioare."
#: option.c:179
#: option.c:180
msgid "Do not provide DHCP on this interface, only provide DNS."
msgstr "Nu activează DHCP ci doar DNS pe această interfaţă."
#: option.c:180
#: option.c:181
msgid "Enable dynamic address allocation for bootp."
msgstr "Activează alocarea dinamică a adreselor pentru BOOTP."
#: option.c:181
#: option.c:182
#, fuzzy
msgid "Map MAC address (with wildcards) to option set."
msgstr "Trimite opţiuni DHCP în funcţie de marca plăcii de reţea."
#: option.c:182
#: option.c:183
msgid "Disable ICMP echo address checking in the DHCP server."
msgstr ""
#: option.c:396
#: option.c:184
msgid "Script to run on DHCP lease creation and destruction."
msgstr ""
#: option.c:398
msgid "missing \""
msgstr "lipseşte \""
#: option.c:425
#: option.c:427
msgid "bad option"
msgstr "opţiune invalidă"
#: option.c:442
#: option.c:444
#, c-format
msgid "cannot read %s: %s"
msgstr "nu pot citi %s: %s"
#: option.c:448
#: option.c:450
#, c-format
msgid ""
"Usage: dnsmasq [options]\n"
@@ -346,22 +350,22 @@ msgstr ""
"Utilizare: dnsmasq [opţiuni]\n"
"\n"
#: option.c:450
#: option.c:452
#, c-format
msgid "Use short options only on the command line.\n"
msgstr "Folosiţi opţiunile prescurtate doar în linie de comandă.\n"
#: option.c:452
#: option.c:454
#, c-format
msgid "Valid options are :\n"
msgstr "Opţiunile valide sunt:\n"
#: option.c:477
#: option.c:479
#, c-format
msgid "Dnsmasq version %s %s\n"
msgstr "dnsmasq versiunea %s %s\n"
#: option.c:478
#: option.c:480
#, c-format
msgid ""
"Compile time options %s\n"
@@ -370,142 +374,146 @@ msgstr ""
"Opţiuni cu care a fost compilat %s\n"
"\n"
#: option.c:479
#: option.c:481
#, c-format
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
msgstr "Acest program vine FĂRĂ NICI O GARANŢIE.\n"
#: option.c:480
#: option.c:482
#, c-format
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
msgstr "Dnsmasq este un program gratuit, sunteţi invitaţi să-l redistribuiţi\n"
#: option.c:481
#: option.c:483
#, c-format
msgid "under the terms of the GNU General Public License, version 2.\n"
msgstr "în termenii Licenţei publice generale GNU, versiunea 2.\n"
#: option.c:491
#: option.c:493
msgid "extraneous parameter"
msgstr "parametru nerecunoscut"
#: option.c:499
#: option.c:501
msgid "missing parameter"
msgstr "parametru lipsa"
#: option.c:516
#: option.c:518
msgid "nested includes not allowed"
msgstr "incluziunile locale nu sunt permise"
#: option.c:576
#: option.c:578
msgid "bad MX preference"
msgstr "preferinţă MX invalidă"
#: option.c:585
#: option.c:587
msgid "bad MX name"
msgstr "nume MX invalid"
#: option.c:603
#: option.c:605
msgid "bad MX target"
msgstr "ţintă MX invalidă"
#: option.c:802 option.c:813
#: option.c:617
msgid "cannot run scripts under uClinux"
msgstr ""
#: option.c:813 option.c:824
msgid "bad port"
msgstr "port invalid"
#: option.c:955
#: option.c:966
msgid "bad dhcp-range"
msgstr "dhcp-range invalid"
#: option.c:984
#: option.c:995
msgid "only one netid tag allowed"
msgstr ""
#: option.c:1029
#: option.c:1040
msgid "inconsistent DHCP range"
msgstr "domeniu DHCP inconsistent"
#: option.c:1214
#: option.c:1225
msgid "bad dhcp-host"
msgstr "dhcp-host invalid"
#: option.c:1271
#: option.c:1282
msgid "bad dhcp-option"
msgstr "dhcp-option invalid"
#: option.c:1289
#: option.c:1300
msgid "bad domain in dhcp-option"
msgstr "domeniu DNS invalid în declaraţia dhcp-option"
#: option.c:1459
#: option.c:1470
msgid "dhcp-option too long"
msgstr "declararea dhcp-option este prea lungă"
#: option.c:1656
#: option.c:1667
msgid "bad TXT record"
msgstr "înregistrare TXT invalidă"
#: option.c:1688
#: option.c:1699
msgid "TXT record string too long"
msgstr "şirul de caractere pentru înregistrarea TXT este prea lung"
#: option.c:1727
#: option.c:1738
msgid "bad SRV record"
msgstr "înregistrare SRV invalidă"
#: option.c:1740
#: option.c:1751
msgid "bad SRV target"
msgstr "ţintă SRV invalidă"
#: option.c:1752
#: option.c:1763
msgid "invalid port number"
msgstr "număr de port invalid"
#: option.c:1763
#: option.c:1774
msgid "invalid priority"
msgstr "prioritate invalidă"
#: option.c:1774
#: option.c:1785
msgid "invalid weight"
msgstr "pondere invalidă"
#: option.c:1799
#: option.c:1810
msgid "error"
msgstr "eroare"
#: option.c:1801
#: option.c:1812
#, c-format
msgid "bad command line options: %s."
msgstr "opţiuni în linie de comandă invalide: %s."
#: option.c:1803
#: option.c:1814
msgid "try --help"
msgstr ""
#: option.c:1805
#: option.c:1816
msgid "try -w"
msgstr ""
#: option.c:1845
#: option.c:1856
#, c-format
msgid "cannot get host-name: %s"
msgstr "nu pot citi numele maşinii: %s"
#: option.c:1874
#: option.c:1885
msgid "only one resolv.conf file allowed in no-poll mode."
msgstr "se permite un singur fişier resolv.conf în modul no-poll"
#: option.c:1881
#: option.c:1892
msgid "must have exactly one resolv.conf to read domain from."
msgstr ""
"am nevoie de un singur resolv.conf din care să citesc numele domeniului."
#: option.c:1884 network.c:501
#: option.c:1895 network.c:485
#, c-format
msgid "failed to read %s: %m"
msgstr "nu pot citi %s: %n"
#: option.c:1902
#: option.c:1913
#, c-format
msgid "no search directive found in %s"
msgstr "nu s-a găsit nici un criteriu de căutare în %s"
@@ -519,7 +527,7 @@ msgstr "serverul DNS %s refuză interogările recursive"
msgid "forwarding table overflow: check for server loops."
msgstr "depăşire de memorie în tabela cu înaintări DNS: verificaţi de bucle."
#: isc.c:73 dnsmasq.c:460
#: isc.c:73 dnsmasq.c:469
#, c-format
msgid "failed to access %s: %m"
msgstr "accesarea serverului %s a eşuat: %n"
@@ -529,7 +537,7 @@ msgstr "accesarea serverului %s a eşuat: %n"
msgid "failed to load %s: %m"
msgstr "nu pot încărca %s: %n"
#: isc.c:93 network.c:505
#: isc.c:93 network.c:489
#, c-format
msgid "reading %s"
msgstr "citesc %s"
@@ -544,59 +552,59 @@ msgstr "nume invalid în %s"
msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
msgstr "Împrumutul DHCP pentru %s va fi ignorat deoarece are domeniu invalid"
#: network.c:328 dnsmasq.c:129
#: network.c:314 dnsmasq.c:129
#, c-format
msgid "failed to create listening socket: %s"
msgstr "creearea socket-ului de ascultare a eşuat: %s"
#: network.c:335
#: network.c:321
#, c-format
msgid "failed to set IPV6 options on listening socket: %s"
msgstr "configurarea opţiunilor IPv6 a eşuat pe socket-ul de ascultare: %s"
#: network.c:353
#: network.c:339
#, c-format
msgid "failed to bind listening socket for %s: %s"
msgstr "activarea socket-ului de ascultare pentru %s a eşuat: %s"
#: network.c:361
#: network.c:347
#, c-format
msgid "failed to listen on socket: %s"
msgstr "ascultarea pe socket a eşuat: %s"
#: network.c:431
#: network.c:415
#, c-format
msgid "ignoring nameserver %s - local interface"
msgstr "ignorăm serverul DNS %s - interfaţă locală"
#: network.c:440
#: network.c:424
#, c-format
msgid "ignoring nameserver %s - cannot make/bind socket: %m"
msgstr "ignorăm serverul DNS %s - nu pot creea/activa socket-ul: %s"
#: network.c:454
#: network.c:438
msgid "domain"
msgstr "domeniu"
#: network.c:456
#: network.c:440
msgid "unqualified"
msgstr "invalid"
#: network.c:456
#: network.c:440
msgid "domains"
msgstr "domenii"
#: network.c:459
#: network.c:443
#, c-format
msgid "using local addresses only for %s %s"
msgstr "folosim adresele locale doar pentru %S %s"
#: network.c:461
#: network.c:445
#, c-format
msgid "using nameserver %s#%d for %s %s"
msgstr "folosim serverul DNS %s#%d pentru %s %s"
#: network.c:464
#: network.c:448
#, c-format
msgid "using nameserver %s#%d"
msgstr "folosim serverul DNS %s#%d"
@@ -629,7 +637,7 @@ msgstr ""
"trebuie specificată exact o singură interfaţă pe sistemele defectece nu au "
"IP_RECVIF"
#: dnsmasq.c:158 dnsmasq.c:536
#: dnsmasq.c:158 dnsmasq.c:585
#, c-format
msgid "DBus error: %s"
msgstr "eroare DBus: %s"
@@ -638,67 +646,67 @@ msgstr "eroare DBus: %s"
msgid "DBus not available: set HAVE_DBUS in src/config.h"
msgstr "DBus nu este disponibil: puneţi HAVE_DBUS in src/config.h"
#: dnsmasq.c:196
#: dnsmasq.c:192
#, fuzzy, c-format
msgid "cannot create pipe: %s"
msgstr "nu pot citi %s: %s"
#: dnsmasq.c:331
#: dnsmasq.c:336
#, c-format
msgid "started, version %s cachesize %d"
msgstr "am ponit, versiunea %s memorie temporară %d"
#: dnsmasq.c:333
#: dnsmasq.c:338
#, c-format
msgid "started, version %s cache disabled"
msgstr "am pornit, versiunea %s memorie temporară dezactivată"
#: dnsmasq.c:335
#: dnsmasq.c:340
#, c-format
msgid "compile time options: %s"
msgstr "compilat cu opţiunile: %s"
#: dnsmasq.c:341
#: dnsmasq.c:346
msgid "DBus support enabled: connected to system bus"
msgstr "suportul DBus activ: sunt conectat la magistrala sistem"
#: dnsmasq.c:343
#: dnsmasq.c:348
msgid "DBus support enabled: bus connection pending"
msgstr "suportul DBus activ: aştept conexiunea la magistrală"
#: dnsmasq.c:348
#: dnsmasq.c:353
msgid "setting --bind-interfaces option because of OS limitations"
msgstr "specific opţiunea --bind-interfaces din cauza limitărilor SO"
#: dnsmasq.c:353
#: dnsmasq.c:358
#, c-format
msgid "warning: interface %s does not currently exist"
msgstr "atenţie: interfaţa %s nu există momentan"
#: dnsmasq.c:365
#: dnsmasq.c:370
#, c-format
msgid "DHCP, static leases only on %.0s%s, lease time %s"
msgstr "DHCP, împrumuturi statice doar către %.0s%s, timpul reînoirii %s"
#: dnsmasq.c:366
#: dnsmasq.c:371
#, c-format
msgid "DHCP, IP range %s -- %s, lease time %s"
msgstr "DHCP, domeniu IP %s -- %s, timpul reînoirii %s"
#: dnsmasq.c:376
#: dnsmasq.c:381
#, c-format
msgid "warning: setting capabilities failed: %m"
msgstr ""
#: dnsmasq.c:378
#: dnsmasq.c:383
msgid "running as root"
msgstr "rulez ca root"
#: dnsmasq.c:511
#: dnsmasq.c:528
msgid "exiting on receipt of SIGTERM"
msgstr "am primit SIGTERM, am terminat"
#: dnsmasq.c:538
#: dnsmasq.c:587
msgid "connected to system DBus"
msgstr "magistrala sistem Dbus conectată"
@@ -707,169 +715,178 @@ msgstr "magistrala sistem Dbus conectată"
msgid "cannot create DHCP socket : %s"
msgstr "nu pot creea socket DHCP : %s"
#: dhcp.c:42
#: dhcp.c:41
#, c-format
msgid "failed to set options on DHCP socket: %s"
msgstr "configurarea opţiunilor socketului DHCP a eşuat: %s"
#: dhcp.c:49
#: dhcp.c:48
#, c-format
msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
msgstr "configurarea SO_REUSEADDR pe socket-ul DHCP a eşuat: %s"
#: dhcp.c:59
#: dhcp.c:58
#, c-format
msgid "failed to bind DHCP server socket: %s"
msgstr "activarea socket-ului server-ului DHCP a eşuat: %s"
#: dhcp.c:72
#: dhcp.c:71
#, c-format
msgid "cannot create ICMP raw socket: %s."
msgstr "nu pot creea socket ICMP raw: %s."
#: dhcp.c:84
#: dhcp.c:83
#, c-format
msgid "duplicate IP address %s in dhcp-config directive."
msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
#: dhcp.c:306
#: dhcp.c:316
#, c-format
msgid "DHCP range %s -- %s is not consistent with netmask %s"
msgstr "domeniu DHCP %s -- %s nu este consistent cu masca de reţea %s"
#: dhcp.c:622
#: dhcp.c:632
#, c-format
msgid "failed to read %s:%m"
msgstr "citirea %s:%n a eşuat"
#: dhcp.c:641
#: dhcp.c:651
#, c-format
msgid "bad line at %s line %d"
msgstr "linie invalidă în %s rândul %d"
#: dhcp.c:745
#: dhcp.c:755
#, c-format
msgid "duplicate IP address %s (%s) in dhcp-config directive"
msgstr "adresă IP duplicat %s (%s) în declaraţia dhcp-config."
#: dhcp.c:781
#: dhcp.c:791
#, c-format
msgid "Ignoring DHCP host name %s because it has an illegal domain part"
msgstr "Ignor numele DHCP al maşinii %s deoarece are domeniu DNS ilegal"
#: lease.c:34
#: lease.c:31
#, c-format
msgid "cannot open or create leases file: %s"
msgstr "nu pot creea sau deschide fişierul cu împrumuturi: %s"
#: lease.c:71
#: lease.c:59
msgid "too many stored leases"
msgstr "prea multe împrumuturi stocate"
#: lease.c:118
#: lease.c:175
#, fuzzy, c-format
msgid "failed to write %s: %m (retry in %ds)"
msgid "failed to write %s: %s (retry in %us)"
msgstr "nu pot citi %s: %n"
#: rfc2131.c:247
#: lease.c:436
#, fuzzy, c-format
msgid "failed to execute %s: %m"
msgstr "accesarea serverului %s a eşuat: %n"
#: rfc2131.c:246
#, c-format
msgid "no address range available for DHCP request %s %s"
msgstr "nici un domeniu de adrese disponibil pentru cererea DHCP %s %s"
#: rfc2131.c:248
#: rfc2131.c:247
msgid "with subnet selector"
msgstr "cu selectorul de subreţea"
#: rfc2131.c:248
#: rfc2131.c:247
msgid "via"
msgstr "prin"
#: rfc2131.c:274 rfc2131.c:298
#: rfc2131.c:273 rfc2131.c:297
msgid "disabled"
msgstr "dezactivat"
#: rfc2131.c:310 rfc2131.c:731
#: rfc2131.c:309 rfc2131.c:732
msgid "address in use"
msgstr "adresa este folosită"
#: rfc2131.c:313
#: rfc2131.c:312
msgid "no address configured"
msgstr "adresă lipsă"
#: rfc2131.c:326 rfc2131.c:605
#: rfc2131.c:325 rfc2131.c:606
msgid "no address available"
msgstr "nici o adresă disponibilă"
#: rfc2131.c:333 rfc2131.c:734
#: rfc2131.c:334 rfc2131.c:739
msgid "no leases left"
msgstr "nu mai am de unde să împrumut"
#: rfc2131.c:336 rfc2131.c:707
#: rfc2131.c:337 rfc2131.c:708
msgid "wrong network"
msgstr "reţea greşită"
#: rfc2131.c:540
#: rfc2131.c:541
#, c-format
msgid "disabling DHCP static address %s"
msgstr "dezactivăm adresele DHCP statice %s"
#: rfc2131.c:558
#: rfc2131.c:559
msgid "unknown lease"
msgstr "împrumut necunoscut"
#: rfc2131.c:567 rfc2131.c:799
#: rfc2131.c:568 rfc2131.c:804
msgid "ignored"
msgstr "ignorat"
#: rfc2131.c:581
#: rfc2131.c:582
#, c-format
msgid "not using configured address %s because it is leased to %s"
msgstr ""
#: rfc2131.c:590
#: rfc2131.c:591
#, c-format
msgid "not using configured address %s because it is in use by the server"
msgstr ""
#: rfc2131.c:670
#: rfc2131.c:671
msgid "wrong address"
msgstr "adresă greşită"
#: rfc2131.c:683
#: rfc2131.c:684
msgid "lease not found"
msgstr "împrumutul nu a fost găsit"
#: rfc2131.c:715
#: rfc2131.c:716
msgid "address not available"
msgstr "adresă indisponibilă"
#: rfc2131.c:724
#: rfc2131.c:725
msgid "static lease available"
msgstr "împrumut static este disponibil"
#: rfc2131.c:728
#: rfc2131.c:729
msgid "address reserved"
msgstr "adresă rezervată"
#: rfc2131.c:946
#: rfc2131.c:735
msgid "no unique-id"
msgstr ""
#: rfc2131.c:936
#, c-format
msgid "cannot send DHCP option %d: no space left in packet"
msgstr "nu pot trimite opţiunea DHCP %d: nu mai este loc în pachet"
#: rfc2131.c:1247
#: rfc2131.c:1237
#, c-format
msgid "More than one vendor class matches, using %s"
msgstr "Se potrivesc mai multe clase de mărci de interfeţe, folosim %s"
#: netlink.c:51
#, fuzzy, c-format
msgid "cannot create RTnetlink socket: %s"
msgid "cannot create netlink socket: %s"
msgstr "nu pot să activez socket-ul netlink: %s"
#: netlink.c:218
#, c-format
msgid "RTnetlink returns error: %s"
msgstr ""
#: netlink.c:224
#, fuzzy, c-format
msgid "netlink returns error: %s"
msgstr "eroare DBus: %s"
#: dbus.c:112
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
@@ -883,12 +900,12 @@ msgstr "configurăm serverele superioare prin Dbus"
msgid "could not register a DBus message handler"
msgstr "nu pot activa o interfaţă de mesaje DBus"
#: bpf.c:54
#: bpf.c:59
#, c-format
msgid "cannot create DHCP BPF socket: %s"
msgstr "nu pot creea socket DHCP BPF: %s"
#: bpf.c:74
#: bpf.c:79
#, fuzzy, c-format
msgid "DHCP request for unsupported hardware type (%d) received on %s"
msgstr "cerere DHCP pentru dispozitiv nesuportat (%d) recepţionată prin %s"

View File

@@ -1,93 +0,0 @@
#!/bin/sh
#
# Startup script for the DNS caching server
#
# chkconfig: 2345 99 01
# description: This script starts your DNS caching server
# processname: dnsmasq
# pidfile: /var/run/dnsmasq.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
dnsmasq=/usr/sbin/dnsmasq
[ -f $dnsmasq ] || exit 0
# change this line if you want dnsmasq to serve an MX record for
# the host it is running on.
MAILHOSTNAME=""
# change this line if you want dns to get its upstream servers from
# somewhere other that /etc/resolv.conf
RESOLV_CONF=""
# change this if you want dnsmasq to cache any "hostname" or "client-hostname" from
# a dhcpd's lease file
DHCP_LEASE="/var/lib/dhcp/dhcpd.leases"
DOMAIN_SUFFIX=`dnsdomainname`
OPTIONS=""
if [ ! -z "${MAILHOSTNAME}" ]; then
OPTIONS="$OPTIONS -m $MAILHOSTNAME"
fi
if [ ! -z "${RESOLV_CONF}" ]; then
OPTIONS="$OPTIONS -r $RESOLV_CONF"
fi
if [ ! -z "${DHCP_LEASE}" ]; then
OPTIONS="$OPTIONS -l $DHCP_LEASE"
fi
if [ ! -z "${DOMAIN_SUFFIX}" ]; then
OPTIONS="$OPTIONS -s $DOMAIN_SUFFIX"
fi
RETVAL=0
# See how we were called.
case "$1" in
start)
echo -n "Starting dnsmasq: "
daemon $dnsmasq $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/dnsmasq
;;
stop)
if test "x`pidof dnsmasq`" != x; then
echo -n "Shutting down dnsmasq: "
killproc dnsmasq
fi
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dnsmasq /var/run/dnsmasq.pid
;;
status)
status dnsmasq
RETVAL=$?
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
condrestart)
if test "x`/sbin/pidof dnsmasq`" != x; then
$0 stop
$0 start
RETVAL=$?
fi
;;
*)
echo "Usage: $0 {start|stop|restart|reload|condrestart|status}"
exit 1
esac
exit $RETVAL

View File

@@ -48,7 +48,12 @@ void init_bpf(struct daemon *daemon)
{
sprintf(ifreq.iov_base, "/dev/bpf%d", i++);
if ((daemon->dhcp_raw_fd = open(ifreq.iov_base, O_RDWR, 0)) != -1)
return;
{
int flags = fcntl(daemon->dhcp_raw_fd, F_GETFD);
if (flags != -1)
fcntl(daemon->dhcp_raw_fd, F_SETFD, flags | FD_CLOEXEC);
return;
}
}
if (errno != EBUSY)
die(_("cannot create DHCP BPF socket: %s"), NULL);

View File

@@ -10,7 +10,7 @@
GNU General Public License for more details.
*/
#define VERSION "2.29"
#define VERSION "2.31"
#define FTABSIZ 150 /* max number of outstanding requests */
#define MAX_PROCS 20 /* max no children for TCP requests */
@@ -79,7 +79,8 @@
/* Get linux C library versions. */
#if defined(__linux__) && !defined(__UCLIBC__) && !defined(__uClinux__)
# include <libio.h>
/*# include <libio.h> */
# include <features.h>
#endif
@@ -203,11 +204,13 @@ NOTES:
#define HAVE_DEV_URANDOM
#define HAVE_DEV_RANDOM
#undef HAVE_SOCKADDR_SA_LEN
#if !defined(__UCLIBC_HAS_MMU__)
#if !defined(__ARCH_HAS_MMU__) && !defined(__UCLIBC_HAS_MMU__)
# define NO_FORK
#endif
#if !defined(__UCLIBC_HAS_IPV6__)
# define NO_IPV6
#if defined(__UCLIBC_HAS_IPV6__)
# ifndef IPV6_V6ONLY
# define IPV6_V6ONLY 26
# endif
#endif
/* This is for glibc 2.x */
@@ -282,4 +285,3 @@ typedef unsigned long in_addr_t;
# define ADDRSTRLEN 16 /* 4*3 + 3 dots + NULL */
#endif

View File

@@ -240,7 +240,7 @@ DBusHandlerResult message_handler(DBusConnection *connection,
check_servers(daemon);
}
else if (strcmp(method, "ClearCache") == 0)
clear_cache_and_reload(daemon);
clear_cache_and_reload(daemon, dnsmasq_time());
else
return (DBUS_HANDLER_RESULT_NOT_YET_HANDLED);
@@ -260,7 +260,7 @@ char *dbus_init(struct daemon *daemon)
dbus_error_init (&dbus_error);
if (!(connection = dbus_bus_get (DBUS_BUS_SYSTEM, &dbus_error)))
return NULL;
dbus_connection_set_exit_on_disconnect(connection, FALSE);
dbus_connection_set_watch_functions(connection, add_watch, remove_watch,
NULL, (void *)daemon, NULL);

View File

@@ -25,14 +25,13 @@ void dhcp_init(struct daemon *daemon)
{
int fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
struct sockaddr_in saddr;
int flags, oneopt = 1;
int oneopt = 1;
struct dhcp_config *configs, *cp;
if (fd == -1)
die (_("cannot create DHCP socket : %s"), NULL);
if ((flags = fcntl(fd, F_GETFL, 0)) == -1 ||
fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1 ||
if (!fix_fd(fd) ||
#if defined(HAVE_LINUX_NETWORK)
setsockopt(fd, SOL_IP, IP_PKTINFO, &oneopt, sizeof(oneopt)) == -1 ||
#elif defined(IP_RECVIF)
@@ -203,8 +202,9 @@ void dhcp_packet(struct daemon *daemon, time_t now)
return;
lease_prune(NULL, now); /* lose any expired leases */
iov.iov_len = dhcp_reply(daemon, parm.current, ifr.ifr_name, (size_t)sz, now, unicast_dest);
lease_update_file(daemon);
lease_update_file(daemon, now);
lease_update_dns(daemon);
lease_collect(daemon);
if (iov.iov_len == 0)
return;
@@ -241,6 +241,7 @@ void dhcp_packet(struct daemon *daemon, time_t now)
{
/* broadcast to 255.255.255.255 */
struct in_pktinfo *pkt;
msg.msg_control = control_u.control;
msg.msg_controllen = sizeof(control_u);
cmptr = CMSG_FIRSTHDR(&msg);
dest.sin_addr.s_addr = INADDR_BROADCAST;
@@ -257,9 +258,18 @@ void dhcp_packet(struct daemon *daemon, time_t now)
/* unicast to unconfigured client */
dest.sin_addr = mess->yiaddr;
dest.sin_port = htons(DHCP_CLIENT_PORT);
if (mess->hlen != 0 && mess->htype != 0)
arp_inject(daemon->netlinkfd, mess->yiaddr, iface_index,
mess->chaddr, mess->hlen);
if (mess->hlen != 0 && mess->hlen <= 14 && mess->htype != 0)
{
/* inject mac address direct into ARP cache.
struct sockaddr limits size to 14 bytes. */
struct arpreq req;
*((struct sockaddr_in *)&req.arp_pa) = dest;
req.arp_ha.sa_family = mess->htype;
memcpy(req.arp_ha.sa_data, mess->chaddr, mess->hlen);
strncpy(req.arp_dev, ifr.ifr_name, 16);
req.arp_flags = ATF_COM;
ioctl(daemon->dhcpfd, SIOCSARP, &req);
}
}
#else
else

View File

@@ -52,9 +52,9 @@ int main (int argc, char **argv)
time_t now, last = 0;
struct sigaction sigact;
struct iname *if_tmp;
int flags, piperead, pipefd[2];
int piperead, pipefd[2];
unsigned char sig;
#ifndef NO_GETTEXT
setlocale(LC_ALL, "");
bindtextdomain("dnsmasq", LOCALEDIR);
@@ -188,11 +188,7 @@ int main (int argc, char **argv)
}
/* Use a pipe to carry signals back to the event loop in a race-free manner */
if (pipe(pipefd) == -1 ||
(flags = fcntl(pipefd[0], F_GETFL)) == -1 ||
fcntl(pipefd[0], F_SETFL, flags | O_NONBLOCK) == -1 ||
(flags = fcntl(pipefd[1], F_GETFL)) == -1 ||
fcntl(pipefd[1], F_SETFL, flags | O_NONBLOCK) == -1)
if (pipe(pipefd) == -1 || !fix_fd(pipefd[0]) || !fix_fd(pipefd[1]))
die(_("cannot create pipe: %s"), NULL);
piperead = pipefd[0];
@@ -207,6 +203,7 @@ int main (int argc, char **argv)
struct passwd *ent_pw = daemon->username ? getpwnam(daemon->username) : NULL;
fd_set test_set;
int maxfd, i;
int nullfd = open("/dev/null", O_RDWR);
#ifdef HAVE_LINUX_NETWORK
cap_user_header_t hdr = NULL;
@@ -214,7 +211,7 @@ int main (int argc, char **argv)
/* On linux, we keep CAP_NETADMIN (for ARP-injection) and
CAP_NET_RAW (for icmp) if we're doing dhcp */
if (ent_pw)
if (ent_pw && ent_pw->pw_uid != 0)
{
hdr = safe_malloc(sizeof(*hdr));
data = safe_malloc(sizeof(*data));
@@ -246,12 +243,12 @@ int main (int argc, char **argv)
if (!(daemon->options & OPT_NO_FORK))
{
if (fork() != 0 )
exit(0);
_exit(0);
setsid();
if (fork() != 0)
exit(0);
_exit(0);
}
#endif
@@ -289,25 +286,33 @@ int main (int argc, char **argv)
if (i <= maxfd && FD_ISSET(i, &test_set))
continue;
close(i);
/* open stdout etc to /dev/null */
if (i == STDOUT_FILENO || i == STDERR_FILENO || i == STDIN_FILENO)
dup2(nullfd, i);
else
close(i);
}
/* Change uid and gid for security */
if (ent_pw)
if (daemon->groupname || ent_pw)
{
gid_t dummy;
struct group *gp;
/* remove all supplimentary groups */
setgroups(0, &dummy);
/* change group for /etc/ppp/resolv.conf
otherwise get the group for "nobody" */
/* change group for /etc/ppp/resolv.conf otherwise get the group for "nobody" */
if ((daemon->groupname && (gp = getgrnam(daemon->groupname))) ||
(gp = getgrgid(ent_pw->pw_gid)))
setgid(gp->gr_gid);
(ent_pw && (gp = getgrgid(ent_pw->pw_gid))))
{
/* remove all supplimentary groups */
setgroups(0, &dummy);
setgid(gp->gr_gid);
}
}
if (ent_pw && ent_pw->pw_uid != 0)
{
/* finally drop root */
setuid(ent_pw->pw_uid);
#ifdef HAVE_LINUX_NETWORK
data->effective = data->permitted =
(1 << CAP_NET_ADMIN) | (1 << CAP_NET_RAW);
@@ -379,9 +384,13 @@ int main (int argc, char **argv)
}
check_servers(daemon);
pid = getpid();
pid = getpid();
/* Start lease-change script */
if (daemon->dhcp)
lease_collect(daemon);
while (1)
{
int maxfd;
@@ -486,11 +495,13 @@ int main (int argc, char **argv)
if (FD_ISSET(piperead, &rset))
{
pid_t p;
if (read(piperead, &sig, 1) == 1)
switch (sig)
{
case SIGHUP:
clear_cache_and_reload(daemon);
clear_cache_and_reload(daemon, now);
if (daemon->resolv_files && (daemon->options & OPT_NO_POLL))
{
reload_servers(daemon->resolv_files->name, daemon);
@@ -504,24 +515,62 @@ int main (int argc, char **argv)
case SIGALRM:
if (daemon->dhcp)
lease_update_file(daemon);
{
lease_prune(NULL, now);
lease_update_file(daemon, now);
lease_collect(daemon);
}
break;
case SIGTERM:
syslog(LOG_INFO, _("exiting on receipt of SIGTERM"));
if (daemon->dhcp)
fclose(daemon->lease_stream);
exit(0);
{
int i;
syslog(LOG_INFO, _("exiting on receipt of SIGTERM"));
/* Knock all our children on the head. */
for (i = 0; i < MAX_PROCS; i++)
if (daemon->tcp_pids[i] != 0)
kill(daemon->tcp_pids[i], SIGQUIT);
if (daemon->dhcp)
{
if (daemon->script_pid != 0)
kill(daemon->script_pid, SIGQUIT);
/* close this carefully */
fclose(daemon->lease_stream);
}
exit(0);
}
case SIGCHLD:
/* See Stevens 5.10 */
while (waitpid(-1, NULL, WNOHANG) > 0)
daemon->num_kids--;
/* Note that if a script process forks and then exits
without waiting for its child, we will reap that child.
It is not therefore safe to assume that any dieing children
whose pid != script_pid are TCP server threads. */
while ((p = waitpid(-1, NULL, WNOHANG)) > 0)
{
if (p == daemon->script_pid)
{
daemon->script_pid = 0;
lease_collect(daemon);
}
else
{
int i;
for (i = 0 ; i < MAX_PROCS; i++)
if (daemon->tcp_pids[i] == p)
{
daemon->tcp_pids[i] = 0;
daemon->num_kids--;
break;
}
}
}
break;
}
}
#ifdef HAVE_LINUX_NETWORK
if (FD_ISSET(daemon->netlinkfd, &rset))
netlink_multicast(daemon);
@@ -529,7 +578,7 @@ int main (int argc, char **argv)
#ifdef HAVE_DBUS
/* if we didn't create a DBus connection, retry now. */
if ((daemon->options & OPT_DBUS) && !daemon->dbus)
if ((daemon->options & OPT_DBUS) && !daemon->dbus)
{
char *err;
if ((err = dbus_init(daemon)))
@@ -567,12 +616,12 @@ static void sig_handler(int sig)
{
/* alarm is used to kill children after a fixed time. */
if (sig == SIGALRM)
exit(0);
_exit(0);
}
}
void clear_cache_and_reload(struct daemon *daemon)
void clear_cache_and_reload(struct daemon *daemon, time_t now)
{
cache_reload(daemon->options, daemon->namebuff, daemon->domain_suffix, daemon->addn_hosts);
if (daemon->dhcp)
@@ -581,7 +630,7 @@ void clear_cache_and_reload(struct daemon *daemon)
dhcp_read_ethers(daemon);
dhcp_update_configs(daemon->dhcp_conf);
lease_update_from_configs(daemon);
lease_update_file(daemon);
lease_update_file(daemon, now);
lease_update_dns(daemon);
}
}
@@ -628,95 +677,115 @@ static void check_dns_listeners(struct daemon *daemon, fd_set *set, time_t now)
if (FD_ISSET(listener->tcpfd, set))
{
int confd;
struct irec *iface = NULL;
pid_t p;
while((confd = accept(listener->tcpfd, NULL, NULL)) == -1 && errno == EINTR);
if (confd != -1)
if (confd == -1)
continue;
if (daemon->options & OPT_NOWILD)
iface = listener->iface;
else
{
struct irec *iface = NULL;
union mysockaddr tcp_addr;
socklen_t tcp_len = sizeof(union mysockaddr);
/* Check for allowed interfaces when binding the wildcard address:
we do this by looking for an interface with the same address as
the local address of the TCP connection, then looking to see if that's
an allowed interface. As a side effect, we get the netmask of the
interface too, for localisation. */
if (daemon->options & OPT_NOWILD)
iface = listener->iface;
else
{
union mysockaddr tcp_addr;
socklen_t tcp_len = sizeof(union mysockaddr);
/* Check for allowed interfaces when binding the wildcard address:
we do this by looking for an interface with the same address as
the local address of the TCP connection, then looking to see if that's
an allowed interface. As a side effect, we get the netmask of the
interface too, for localisation. */
/* interface may be new since startup */
if (enumerate_interfaces(daemon) &&
getsockname(confd, (struct sockaddr *)&tcp_addr, &tcp_len) != -1)
for (iface = daemon->interfaces; iface; iface = iface->next)
if (sockaddr_isequal(&iface->addr, &tcp_addr))
break;
}
if ((daemon->num_kids >= MAX_PROCS) || !iface)
close(confd);
/* interface may be new since startup */
if (enumerate_interfaces(daemon) &&
getsockname(confd, (struct sockaddr *)&tcp_addr, &tcp_len) != -1)
for (iface = daemon->interfaces; iface; iface = iface->next)
if (sockaddr_isequal(&iface->addr, &tcp_addr))
break;
}
if ((daemon->num_kids >= MAX_PROCS) || !iface)
{
shutdown(confd, SHUT_RDWR);
close(confd);
}
#ifndef NO_FORK
else if (!(daemon->options & OPT_DEBUG) && fork())
else if (!(daemon->options & OPT_DEBUG) && (p = fork()) != 0)
{
if (p != -1)
{
int i;
for (i = 0; i < MAX_PROCS; i++)
if (daemon->tcp_pids[i] == 0)
{
daemon->tcp_pids[i] = p;
break;
}
daemon->num_kids++;
close(confd);
}
close(confd);
}
#endif
else
{
unsigned char *buff;
struct server *s;
int flags;
struct in_addr dst_addr_4;
dst_addr_4.s_addr = 0;
/* Arrange for SIGALARM after CHILD_LIFETIME seconds to
terminate the process. */
if (!(daemon->options & OPT_DEBUG))
alarm(CHILD_LIFETIME);
/* start with no upstream connections. */
for (s = daemon->servers; s; s = s->next)
s->tcpfd = -1;
/* The connected socket inherits non-blocking
attribute from the listening socket.
Reset that here. */
if ((flags = fcntl(confd, F_GETFL, 0)) != -1)
fcntl(confd, F_SETFL, flags & ~O_NONBLOCK);
if (listener->family == AF_INET)
dst_addr_4 = iface->addr.in.sin_addr;
buff = tcp_request(daemon, confd, now, dst_addr_4, iface->netmask);
shutdown(confd, SHUT_RDWR);
close(confd);
if (buff)
free(buff);
for (s = daemon->servers; s; s = s->next)
if (s->tcpfd != -1)
{
shutdown(s->tcpfd, SHUT_RDWR);
close(s->tcpfd);
}
#ifndef NO_FORK
if (!(daemon->options & OPT_DEBUG))
_exit(0);
#endif
else
{
unsigned char *buff;
struct server *s;
int flags;
struct in_addr dst_addr_4;
dst_addr_4.s_addr = 0;
/* Arrange for SIGALARM after CHILD_LIFETIME seconds to
terminate the process. */
if (!(daemon->options & OPT_DEBUG))
alarm(CHILD_LIFETIME);
/* start with no upstream connections. */
for (s = daemon->servers; s; s = s->next)
s->tcpfd = -1;
/* The connected socket inherits non-blocking
attribute from the listening socket.
Reset that here. */
if ((flags = fcntl(confd, F_GETFL, 0)) != -1)
fcntl(confd, F_SETFL, flags & ~O_NONBLOCK);
if (listener->family == AF_INET)
dst_addr_4 = iface->addr.in.sin_addr;
buff = tcp_request(daemon, confd, now, dst_addr_4, iface->netmask);
if (!(daemon->options & OPT_DEBUG))
exit(0);
close(confd);
if (buff)
free(buff);
for (s = daemon->servers; s; s = s->next)
if (s->tcpfd != -1)
close(s->tcpfd);
}
}
}
}
}
int make_icmp_sock(void)
{
int fd, flags;
int fd;
int zeroopt = 0;
if ((fd = socket (AF_INET, SOCK_RAW, IPPROTO_ICMP)) != -1)
{
if ((flags = fcntl(fd, F_GETFL, 0)) == -1 ||
fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1 ||
if (!fix_fd(fd) ||
setsockopt(fd, SOL_SOCKET, SO_DONTROUTE, &zeroopt, sizeof(zeroopt)) == -1)
{
close(fd);

View File

@@ -288,7 +288,9 @@ struct dhcp_lease {
int clid_len; /* length of client identifier */
unsigned char *clid; /* clientid */
char *hostname, *fqdn; /* name from client-hostname option or config */
int auth_name; /* hostname came from config, not from client */
char auth_name; /* hostname came from config, not from client */
char new; /* newly created */
char old; /* read from leasefile */
time_t expires; /* lease expiry */
#ifdef HAVE_BROKEN_RTC
unsigned int length;
@@ -411,6 +413,7 @@ struct daemon {
char *username, *groupname;
char *domain_suffix;
char *runfile;
char *lease_change_command;
struct iname *if_names, *if_addrs, *if_except, *dhcp_except;
struct bogus_addr *bogus_addr;
struct server *servers;
@@ -440,6 +443,7 @@ struct daemon {
struct server *last_server;
struct server *srv_save; /* Used for resend on DoD */
size_t packet_len; /* " " */
pid_t script_pid, tcp_pids[MAX_PROCS];
int num_kids;
/* DHCP state */
@@ -522,6 +526,8 @@ int parse_hex(char *in, unsigned char *out, int maxlen,
int memcmp_masked(unsigned char *a, unsigned char *b, int len,
unsigned int mask);
int expand_buf(struct iovec *iov, size_t size);
char *print_mac(struct daemon *daemon, unsigned char *mac, int len);
/* option.c */
struct daemon *read_opts (int argc, char **argv, char *compile_opts);
@@ -541,6 +547,7 @@ struct listener *create_wildcard_listeners(int port);
struct listener *create_bound_listeners(struct daemon *daemon);
int iface_check(struct daemon *daemon, int family,
struct all_addr *addr, char *name);
int fix_fd(int fd);
/* dhcp.c */
void dhcp_init(struct daemon *daemon);
@@ -564,12 +571,11 @@ char *strip_hostname(struct daemon *daemon, char *hostname);
char *host_from_dns(struct daemon *daemon, struct in_addr addr);
/* lease.c */
void lease_update_file(struct daemon *daemon);
void lease_update_file(struct daemon *daemon, time_t now);
void lease_update_dns(struct daemon *daemon);
void lease_init(struct daemon *daemon, time_t now);
struct dhcp_lease *lease_allocate(unsigned char *hwaddr, unsigned char *clid,
int hw_len, int hw_type, int clid_len, struct in_addr addr);
int lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
struct dhcp_lease *lease_allocate(struct in_addr addr);
void lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
unsigned char *clid, int hw_len, int hw_type, int clid_len);
void lease_set_hostname(struct dhcp_lease *lease, char *name,
char *suffix, int auth);
@@ -579,6 +585,7 @@ struct dhcp_lease *lease_find_by_client(unsigned char *hwaddr, int hw_len, int h
struct dhcp_lease *lease_find_by_addr(struct in_addr addr);
void lease_prune(struct dhcp_lease *target, time_t now);
void lease_update_from_configs(struct daemon *daemon);
void lease_collect(struct daemon *daemon);
/* rfc2131.c */
size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *iface_name, size_t sz, time_t now, int unicast_dest);
@@ -586,7 +593,7 @@ size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *ifa
/* dnsmasq.c */
int make_icmp_sock(void);
int icmp_ping(struct daemon *daemon, struct in_addr addr);
void clear_cache_and_reload(struct daemon *daemon);
void clear_cache_and_reload(struct daemon *daemon, time_t now);
/* isc.c */
#ifdef HAVE_ISC_READER
@@ -599,8 +606,6 @@ void netlink_init(struct daemon *daemon);
int iface_enumerate(struct daemon *daemon, void *parm,
int (*ipv4_callback)(), int (*ipv6_callback)());
void netlink_multicast(struct daemon *daemon);
void arp_inject(int fd, struct in_addr addr,
int iface, unsigned char *mac, unsigned int mac_len);
#endif
/* bpf.c */

View File

@@ -12,64 +12,54 @@
#include "dnsmasq.h"
static struct dhcp_lease *leases;
static struct dhcp_lease *leases, *old_leases;
static int dns_dirty, file_dirty, leases_left;
void lease_init(struct daemon *daemon, time_t now)
{
unsigned int a0, a1, a2, a3;
unsigned long ei;
unsigned char hwaddr[DHCP_CHADDR_MAX];
struct in_addr addr;
struct dhcp_lease *lease;
int clid_len = 0, hw_len, hw_type;
int flags, clid_len, hw_len, hw_type;
dns_dirty = 1;
file_dirty = 0;
leases = NULL;
leases = old_leases = NULL;
leases_left = daemon->dhcp_max;
/* NOTE: need a+ mode to create file if it doesn't exist */
if (!(daemon->lease_stream = fopen(daemon->lease_file, "a+")))
die(_("cannot open or create leases file: %s"), NULL);
flags = fcntl(fileno(daemon->lease_stream), F_GETFD);
if (flags != -1)
fcntl(fileno(daemon->lease_stream), F_SETFD, flags | FD_CLOEXEC);
/* a+ mode lease pointer at end. */
rewind(daemon->lease_stream);
/* client-id max length is 255 which is 255*2 digits + 254 colons
borrow DNS packet buffer which is always larger than 1000 bytes */
while (fscanf(daemon->lease_stream, "%lu %255s %d.%d.%d.%d %255s %764s",
&ei, daemon->dhcp_buff2, &a0, &a1, &a2, &a3,
daemon->dhcp_buff, daemon->packet) == 8)
while (fscanf(daemon->lease_stream, "%lu %255s %16s %255s %764s",
&ei, daemon->dhcp_buff2, daemon->namebuff,
daemon->dhcp_buff, daemon->packet) == 5)
{
#ifndef HAVE_BROKEN_RTC
/* strictly time_t is opaque, but this hack should work on all sane systems,
even when sizeof(time_t) == 8 */
time_t expires = (time_t)ei;
if (ei != 0 && difftime(now, expires) > 0)
{
file_dirty = 1;
continue; /* expired */
}
#endif
hw_len = parse_hex(daemon->dhcp_buff2, hwaddr, DHCP_CHADDR_MAX, NULL, &hw_type);
/* For backwards compatibility, no explict MAC address type means ether. */
if (hw_type == 0 && hw_len != 0)
hw_type = ARPHRD_ETHER;
addr.s_addr = htonl((a0<<24) + (a1<<16) + (a2<<8) + a3);
addr.s_addr = inet_addr(daemon->namebuff);
/* decode hex in place */
if (strcmp(daemon->packet, "*") == 0)
clid_len = 0;
else
clid_len = 0;
if (strcmp(daemon->packet, "*") != 0)
clid_len = parse_hex(daemon->packet, (unsigned char *)daemon->packet, 255, NULL, NULL);
if (!(lease = lease_allocate(hwaddr, (unsigned char *)daemon->packet, hw_len, hw_type, clid_len, addr)))
if (!(lease = lease_allocate(addr)))
die (_("too many stored leases"), NULL);
/* not actually new */
lease->new = 0;
#ifdef HAVE_BROKEN_RTC
if (ei != 0)
lease->expires = (time_t)ei + now;
@@ -77,12 +67,21 @@ void lease_init(struct daemon *daemon, time_t now)
lease->expires = (time_t)0;
lease->length = ei;
#else
lease->expires = expires;
/* strictly time_t is opaque, but this hack should work on all sane systems,
even when sizeof(time_t) == 8 */
lease->expires = (time_t)ei;
#endif
lease_set_hwaddr(lease, hwaddr, (unsigned char *)daemon->packet, hw_len, hw_type, clid_len);
if (strcmp(daemon->dhcp_buff, "*") != 0)
lease_set_hostname(lease, daemon->dhcp_buff, daemon->domain_suffix, 0);
}
/* Some leases may have expired */
file_dirty = 0;
lease_prune(NULL, now);
dns_dirty = 1;
}
void lease_update_from_configs(struct daemon *daemon)
@@ -103,67 +102,83 @@ void lease_update_from_configs(struct daemon *daemon)
lease_set_hostname(lease, name, daemon->domain_suffix, 1); /* updates auth flag only */
}
void lease_update_file(struct daemon *daemon)
static void ourprintf(struct daemon *daemon, int *errp, char *format, ...)
{
va_list ap;
va_start(ap, format);
if (!(*errp) && vfprintf(daemon->lease_stream, format, ap) < 0)
*errp = errno;
va_end(ap);
}
void lease_update_file(struct daemon *daemon, time_t now)
{
struct dhcp_lease *lease;
int i;
time_t next_event;
int i, err = 0;
if (file_dirty != 0)
{
errno = 0;
rewind(daemon->lease_stream);
if (errno != 0 || ftruncate(fileno(daemon->lease_stream), 0) != 0)
{
write_err:
syslog(LOG_ERR, _("failed to write %s: %m (retry in %ds)"), daemon->lease_file, LEASE_RETRY);
alarm(LEASE_RETRY);
return;
}
err = errno;
for (lease = leases; lease; lease = lease->next)
{
#ifdef HAVE_BROKEN_RTC
if (fprintf(daemon->lease_stream, "%u ", lease->length) < 0)
goto write_err;
ourprintf(daemon, &err, "%u ", lease->length);
#else
if (fprintf(daemon->lease_stream, "%lu ", (unsigned long)lease->expires) < 0)
goto write_err;
ourprintf(daemon, &err, "%lu ", (unsigned long)lease->expires);
#endif
if ((lease->hwaddr_type != ARPHRD_ETHER || lease->hwaddr_len == 0) &&
fprintf(daemon->lease_stream, "%.2x-", lease->hwaddr_type) < 0)
goto write_err;
if (lease->hwaddr_type != ARPHRD_ETHER || lease->hwaddr_len == 0)
ourprintf(daemon, &err, "%.2x-", lease->hwaddr_type);
for (i = 0; i < lease->hwaddr_len; i++)
{
if (fprintf(daemon->lease_stream, "%.2x", lease->hwaddr[i]) < 0)
goto write_err;
if (i != lease->hwaddr_len - 1 &&
fprintf(daemon->lease_stream, ":") < 0)
goto write_err;
ourprintf(daemon, &err, "%.2x", lease->hwaddr[i]);
if (i != lease->hwaddr_len - 1)
ourprintf(daemon, &err, ":");
}
if (fprintf(daemon->lease_stream, " %s %s ", inet_ntoa(lease->addr),
lease->hostname && strlen(lease->hostname) != 0 ? lease->hostname : "*") < 0)
goto write_err;
ourprintf(daemon, &err, " %s %s ", inet_ntoa(lease->addr),
lease->hostname && strlen(lease->hostname) != 0 ? lease->hostname : "*");
if (lease->clid && lease->clid_len != 0)
{
for (i = 0; i < lease->clid_len - 1; i++)
if (fprintf(daemon->lease_stream, "%.2x:", lease->clid[i]) < 0)
goto write_err;
if (fprintf(daemon->lease_stream, "%.2x\n", lease->clid[i]) < 0)
goto write_err;
ourprintf(daemon, &err, "%.2x:", lease->clid[i]);
ourprintf(daemon, &err, "%.2x\n", lease->clid[i]);
}
else
if (fprintf(daemon->lease_stream, "*\n") < 0)
goto write_err;
ourprintf(daemon, &err, "*\n");
}
if (fflush(daemon->lease_stream) != 0)
goto write_err;
if (fsync(fileno(daemon->lease_stream)) < 0)
goto write_err;
file_dirty = 0;
if (fflush(daemon->lease_stream) != 0 ||
fsync(fileno(daemon->lease_stream)) < 0)
err = errno;
if (!err)
file_dirty = 0;
}
/* Set alarm for when the first lease expires + slop. */
for (next_event = 0, lease = leases; lease; lease = lease->next)
if (lease->expires != 0 &&
(next_event == 0 || difftime(next_event, lease->expires + 10) > 0.0))
next_event = lease->expires + 10;
if (err)
{
if (next_event == 0 || difftime(next_event, LEASE_RETRY + now) > 0.0)
next_event = LEASE_RETRY + now;
syslog(LOG_ERR, _("failed to write %s: %s (retry in %us)"),
daemon->lease_file, strerror(err),
(unsigned int)difftime(next_event, now));
}
if (next_event != 0)
alarm((unsigned)difftime(next_event, now));
}
void lease_update_dns(struct daemon *daemon)
@@ -194,18 +209,16 @@ void lease_prune(struct dhcp_lease *target, time_t now)
if ((lease->expires != 0 && difftime(now, lease->expires) > 0) || lease == target)
{
file_dirty = 1;
*up = lease->next; /* unlink */
if (lease->hostname)
{
free(lease->hostname);
dns_dirty = 1;
}
if (lease->fqdn)
free(lease->fqdn);
if (lease->clid)
free(lease->clid);
free(lease);
dns_dirty = 1;
*up = lease->next; /* unlink */
/* Put on old_leases list 'till we
can run the script */
lease->next = old_leases;
old_leases = lease;
leases_left++;
}
else
@@ -248,30 +261,20 @@ struct dhcp_lease *lease_find_by_addr(struct in_addr addr)
}
struct dhcp_lease *lease_allocate(unsigned char *hwaddr, unsigned char *clid,
int hw_len, int hw_type, int clid_len, struct in_addr addr)
struct dhcp_lease *lease_allocate(struct in_addr addr)
{
struct dhcp_lease *lease;
if (!leases_left || !(lease = malloc(sizeof(struct dhcp_lease))))
return NULL;
lease->clid = NULL;
lease->hostname = lease->fqdn = NULL;
memset(lease, 0, sizeof(struct dhcp_lease));
lease->new = 1;
lease->addr = addr;
memset(lease->hwaddr, 0, DHCP_CHADDR_MAX);
lease->hwaddr_len = 0;
lease->hwaddr_type = 0;
lease->hwaddr_len = 225; /* illegal value */
lease->expires = 1;
#ifdef HAVE_BROKEN_RTC
lease->length = 0xffffffff; /* illegal value */
#endif
if (!lease_set_hwaddr(lease, hwaddr, clid, hw_len, hw_type, clid_len))
{
free(lease);
return NULL;
}
lease->next = leases;
leases = lease;
@@ -309,22 +312,18 @@ void lease_set_expires(struct dhcp_lease *lease, unsigned int len, time_t now)
#endif
}
int lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
void lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
unsigned char *clid, int hw_len, int hw_type, int clid_len)
{
/* must have some sort of unique-id */
if (hw_len == 0 && (clid_len == 0 || !clid))
return 0;
if (hw_len != lease->hwaddr_len ||
hw_type != lease->hwaddr_type ||
hw_len == 0 ||
memcmp(lease->hwaddr, hwaddr, hw_len) != 0)
(hw_len != 0 && memcmp(lease->hwaddr, hwaddr, hw_len) != 0))
{
file_dirty = 1;
memcpy(lease->hwaddr, hwaddr, hw_len);
lease->hwaddr_len = hw_len;
lease->hwaddr_type = hw_type;
lease->old = 1; /* run script on change */
}
/* only update clid when one is available, stops packets
@@ -341,7 +340,7 @@ int lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
if (lease->clid)
free(lease->clid);
if (!(lease->clid = malloc(clid_len)))
return 0;
return;
}
else if (memcmp(lease->clid, clid, clid_len) != 0)
file_dirty = 1;
@@ -349,8 +348,6 @@ int lease_set_hwaddr(struct dhcp_lease *lease, unsigned char *hwaddr,
lease->clid_len = clid_len;
memcpy(lease->clid, clid, clid_len);
}
return 1;
}
void lease_set_hostname(struct dhcp_lease *lease, char *name, char *suffix, int auth)
@@ -363,7 +360,7 @@ void lease_set_hostname(struct dhcp_lease *lease, char *name, char *suffix, int
lease->auth_name = auth;
return;
}
if (!name && !lease->hostname)
return;
@@ -379,6 +376,7 @@ void lease_set_hostname(struct dhcp_lease *lease, char *name, char *suffix, int
{
if (lease_tmp->auth_name && !auth)
return;
lease_tmp->old = 1; /* call script on change */
new_name = lease_tmp->hostname;
lease_tmp->hostname = NULL;
if (lease_tmp->fqdn)
@@ -410,8 +408,82 @@ void lease_set_hostname(struct dhcp_lease *lease, char *name, char *suffix, int
lease->auth_name = auth;
file_dirty = 1;
dns_dirty = 1;
dns_dirty = 1;
lease->old = 1; /* run script on change */
}
#ifndef NO_FORK
static pid_t run_script(struct daemon *daemon, char *action, struct dhcp_lease *lease)
{
if (daemon->lease_change_command)
{
char *mac = print_mac(daemon, lease->hwaddr, lease->hwaddr_len);
char *addr = inet_ntoa(lease->addr);
char *com = strrchr(daemon->lease_change_command, '/');
pid_t pid = fork();
if (pid == -1)
return 0; /* fork error */
else if (pid != 0)
return pid;
execl(daemon->lease_change_command,
com ? com+1 : daemon->lease_change_command,
action, mac, addr, lease->hostname, (char*)NULL);
/* log socket should still be open, right? */
syslog(LOG_ERR, _("failed to execute %s: %m"),
daemon->lease_change_command);
_exit(0);
}
return 0;
}
#endif
/* deleted leases get transferred to the old_leases list.
remove them here, after calling the lease change
script. Also run the lease change script on new leases */
void lease_collect(struct daemon *daemon)
{
struct dhcp_lease *lease;
while (old_leases)
{
if (daemon->script_pid != 0)
return; /* busy */
lease = old_leases;
old_leases = lease->next;
#ifndef NO_FORK
daemon->script_pid = run_script(daemon, "del", lease);
#endif
if (lease->hostname)
free(lease->hostname);
if (lease->fqdn)
free(lease->fqdn);
if (lease->clid)
free(lease->clid);
free(lease);
}
for (lease = leases; lease; lease = lease->next)
if (lease->new || lease->old)
{
if (daemon->script_pid != 0)
return; /* busy */
#ifndef NO_FORK
daemon->script_pid = run_script(daemon, lease->new ? "add" : "old", lease);
#endif
lease->new = lease->old = 0;
}
}

View File

@@ -48,8 +48,14 @@ void netlink_init(struct daemon *daemon)
}
if (daemon->netlinkfd == -1)
die(_("cannot create RTnetlink socket: %s"), NULL);
die(_("cannot create netlink socket: %s"), NULL);
else
{
int flags = fcntl(daemon->netlinkfd, F_GETFD);
if (flags != -1)
fcntl(daemon->netlinkfd, F_SETFD, flags | FD_CLOEXEC);
}
iov.iov_len = 200;
iov.iov_base = safe_malloc(iov.iov_len);
}
@@ -114,7 +120,7 @@ int iface_enumerate(struct daemon *daemon, void *parm, int (*ipv4_callback)(), i
again:
req.nlh.nlmsg_len = sizeof(req);
req.nlh.nlmsg_type = RTM_GETADDR;
req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST | NLM_F_ACK;
req.nlh.nlmsg_pid = 0;
req.nlh.nlmsg_seq = ++seq;
req.g.rtgen_family = family;
@@ -215,7 +221,7 @@ static void nl_err(struct nlmsghdr *h)
{
struct nlmsgerr *err = NLMSG_DATA(h);
if (err->error != 0)
syslog(LOG_ERR, _("RTnetlink returns error: %s"), strerror(-(err->error)));
syslog(LOG_ERR, _("netlink returns error: %s"), strerror(-(err->error)));
}
/* We arrange to receive netlink multicast messages whenever the network route is added.
@@ -234,45 +240,6 @@ static void nl_routechange(struct daemon *daemon, struct nlmsghdr *h)
&daemon->srv_save->addr.sa, sa_len(&daemon->srv_save->addr)) == -1 && retry_send());
}
}
void arp_inject(int fd, struct in_addr ip_addr, int iface,
unsigned char *mac, unsigned int mac_len)
{
struct sockaddr_nl addr;
struct {
struct nlmsghdr nlh;
struct ndmsg m;
struct rtattr addr_attr;
struct in_addr addr;
struct rtattr ll_attr;
char mac[DHCP_CHADDR_MAX];
} req;
memset(&req, 0, sizeof(req));
memset(&addr, 0, sizeof(addr));
addr.nl_family = AF_NETLINK;
req.nlh.nlmsg_len = sizeof(req);
req.nlh.nlmsg_type = RTM_NEWNEIGH;
req.nlh.nlmsg_flags = NLM_F_REQUEST | NLM_F_REPLACE | NLM_F_CREATE;
req.m.ndm_family = AF_INET;
req.m.ndm_ifindex = iface;
req.m.ndm_state = NUD_REACHABLE;
req.addr_attr.rta_type = NDA_DST;
req.addr_attr.rta_len = RTA_LENGTH(sizeof(struct in_addr));
req.addr = ip_addr;
req.ll_attr.rta_type = NDA_LLADDR;
req.ll_attr.rta_len = RTA_LENGTH(mac_len);
memcpy(req.mac, mac, mac_len);
while(sendto(fd, (void *)&req, sizeof(req), 0, (struct sockaddr *)&addr, sizeof(addr)) == -1 &&
retry_send());
}
#endif

View File

@@ -180,11 +180,25 @@ int enumerate_interfaces(struct daemon *daemon)
#endif
}
/* set NONBLOCK and CLOEXEC bits on fd: See Stevens 16.6 */
int fix_fd(int fd)
{
int flags;
if ((flags = fcntl(fd, F_GETFL)) == -1 ||
fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1 ||
(flags = fcntl(fd, F_GETFD)) == -1 ||
fcntl(fd, F_SETFD, flags | FD_CLOEXEC) == -1)
return 0;
return 1;
}
#if defined(HAVE_IPV6)
static int create_ipv6_listener(struct listener **link, int port)
{
union mysockaddr addr;
int tcpfd, fd, flags, save;
int tcpfd, fd;
struct listener *l;
int opt = 1;
@@ -204,21 +218,14 @@ static int create_ipv6_listener(struct listener **link, int port)
errno == EINVAL);
if ((tcpfd = socket(AF_INET6, SOCK_STREAM, 0)) == -1)
{
save = errno;
close(fd);
errno = save;
return 0;
}
return 0;
if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1 ||
setsockopt(tcpfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1 ||
setsockopt(fd, IPV6_LEVEL, IPV6_V6ONLY, &opt, sizeof(opt)) == -1 ||
setsockopt(tcpfd, IPV6_LEVEL, IPV6_V6ONLY, &opt, sizeof(opt)) == -1 ||
(flags = fcntl(fd, F_GETFL, 0)) == -1 ||
fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1 ||
(flags = fcntl(tcpfd, F_GETFL, 0)) == -1 ||
fcntl(tcpfd, F_SETFL, flags | O_NONBLOCK) == -1 ||
!fix_fd(fd) ||
!fix_fd(tcpfd) ||
#ifdef IPV6_RECVPKTINFO
setsockopt(fd, IPV6_LEVEL, IPV6_RECVPKTINFO, &opt, sizeof(opt)) == -1 ||
#else
@@ -227,14 +234,8 @@ static int create_ipv6_listener(struct listener **link, int port)
bind(tcpfd, (struct sockaddr *)&addr, sa_len(&addr)) == -1 ||
listen(tcpfd, 5) == -1 ||
bind(fd, (struct sockaddr *)&addr, sa_len(&addr)) == -1)
{
save = errno;
close(fd);
close(tcpfd);
errno = save;
return 0;
}
return 0;
l = safe_malloc(sizeof(struct listener));
l->fd = fd;
l->tcpfd = tcpfd;
@@ -251,7 +252,6 @@ struct listener *create_wildcard_listeners(int port)
union mysockaddr addr;
int opt = 1;
struct listener *l, *l6 = NULL;
int flags;
int tcpfd, fd;
addr.in.sin_family = AF_INET;
@@ -261,26 +261,19 @@ struct listener *create_wildcard_listeners(int port)
addr.in.sin_len = sizeof(struct sockaddr_in);
#endif
if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1 ||
(tcpfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
return NULL;
if ((tcpfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
close (fd);
return NULL;
}
if (setsockopt(tcpfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1 ||
bind(tcpfd, (struct sockaddr *)&addr, sa_len(&addr)) == -1 ||
listen(tcpfd, 5) == -1 ||
(flags = fcntl(tcpfd, F_GETFL, 0)) == -1 ||
fcntl(tcpfd, F_SETFL, flags | O_NONBLOCK) == -1 ||
!fix_fd(tcpfd) ||
#ifdef HAVE_IPV6
!create_ipv6_listener(&l6, port) ||
#endif
setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1 ||
(flags = fcntl(fd, F_GETFL, 0)) == -1 ||
fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1 ||
!fix_fd(fd) ||
#if defined(HAVE_LINUX_NETWORK)
setsockopt(fd, SOL_IP, IP_PKTINFO, &opt, sizeof(opt)) == -1 ||
#elif defined(IP_RECVDSTADDR) && defined(IP_RECVIF)
@@ -288,12 +281,8 @@ struct listener *create_wildcard_listeners(int port)
setsockopt(fd, IPPROTO_IP, IP_RECVIF, &opt, sizeof(opt)) == -1 ||
#endif
bind(fd, (struct sockaddr *)&addr, sa_len(&addr)) == -1)
{
close(fd);
close(tcpfd);
return NULL;
}
return NULL;
l = safe_malloc(sizeof(struct listener));
l->family = AF_INET;
l->fd = fd;
@@ -308,7 +297,7 @@ struct listener *create_bound_listeners(struct daemon *daemon)
struct listener *listeners = NULL;
struct irec *iface;
int flags, opt = 1;
int opt = 1;
for (iface = daemon->interfaces; iface; iface = iface->next)
{
@@ -320,11 +309,8 @@ struct listener *create_bound_listeners(struct daemon *daemon)
(new->fd = socket(iface->addr.sa.sa_family, SOCK_DGRAM, 0)) == -1 ||
setsockopt(new->fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1 ||
setsockopt(new->tcpfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1 ||
/* See Stevens 16.6 */
(flags = fcntl(new->tcpfd, F_GETFL, 0)) == -1 ||
fcntl(new->tcpfd, F_SETFL, flags | O_NONBLOCK) == -1 ||
(flags = fcntl(new->fd, F_GETFL, 0)) == -1 ||
fcntl(new->fd, F_SETFL, flags | O_NONBLOCK) == -1)
!fix_fd(new->tcpfd) ||
!fix_fd(new->fd))
die(_("failed to create listening socket: %s"), NULL);
#ifdef HAVE_IPV6
@@ -368,7 +354,6 @@ struct listener *create_bound_listeners(struct daemon *daemon)
struct serverfd *allocate_sfd(union mysockaddr *addr, struct serverfd **sfds)
{
struct serverfd *sfd;
int flags;
/* may have a suitable one already */
for (sfd = *sfds; sfd; sfd = sfd->next )
@@ -387,8 +372,7 @@ struct serverfd *allocate_sfd(union mysockaddr *addr, struct serverfd **sfds)
}
if (bind(sfd->fd, (struct sockaddr *)addr, sa_len(addr)) == -1 ||
(flags = fcntl(sfd->fd, F_GETFL, 0)) == -1 ||
fcntl(sfd->fd, F_SETFL, flags | O_NONBLOCK) == -1)
!fix_fd(sfd->fd))
{
int errsave = errno; /* save error from bind. */
close(sfd->fd);

View File

@@ -19,7 +19,7 @@ struct myoption {
int val;
};
#define OPTSTRING "531yZDNLERKzowefnbvhdkqr:m:p:c:l:s:i:t:u:g:a:x:S:C:A:T:H:Q:I:B:F:G:O:M:X:V:U:j:P:J:W:Y:2:4:"
#define OPTSTRING "531yZDNLERKzowefnbvhdkqr:m:p:c:l:s:i:t:u:g:a:x:S:C:A:T:H:Q:I:B:F:G:O:M:X:V:U:j:P:J:W:Y:2:4:6:"
static const struct myoption opts[] = {
{"version", 0, 0, 'v'},
@@ -82,6 +82,7 @@ static const struct myoption opts[] = {
{"bootp-dynamic", 0, 0, '3'},
{"dhcp-mac", 1, 0, '4'},
{"no-ping", 0, 0, '5'},
{"dhcp-script", 1, 0, '6'},
{0, 0, 0, 0}
};
@@ -180,6 +181,7 @@ static const struct {
{ "-3, --bootp-dynamic", gettext_noop("Enable dynamic address allocation for bootp."), NULL },
{ "-4, --dhcp-mac=<id>,<mac address>", gettext_noop("Map MAC address (with wildcards) to option set."), NULL },
{ "-5, --no-ping", gettext_noop("Disable ICMP echo address checking in the DHCP server."), NULL },
{ "-6, --dhcp-script=path", gettext_noop("Script to run on DHCP lease creation and destruction."), NULL },
{ NULL, NULL, NULL }
};
@@ -609,6 +611,15 @@ struct daemon *read_opts (int argc, char **argv, char *compile_opts)
case 'l':
daemon->lease_file = safe_string_alloc(arg);
break;
case '6':
#ifdef NO_FORK
problem = _("cannot run scripts under uClinux");
option = '?';
#else
daemon->lease_change_command = safe_string_alloc(arg);
#endif
break;
case 'H':
{

View File

@@ -72,7 +72,6 @@ static void bootp_option_put(struct dhcp_packet *mess,
struct dhcp_boot *boot_opts, struct dhcp_netid *netids);
static struct in_addr option_addr(unsigned char *opt);
static unsigned int option_uint(unsigned char *opt, int size);
static char *print_mac(struct daemon *daemon, unsigned char *mac, int len);
static void log_packet(struct daemon *daemon, char *type, struct in_addr *addr,
struct dhcp_packet *mess, char *interface, char *string);
static unsigned char *option_find(struct dhcp_packet *mess, size_t size, int opt_type, int minsize);
@@ -329,7 +328,9 @@ size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *ifa
mess->yiaddr = lease->addr;
}
if (!message && !lease && (!(lease = lease_allocate(mess->chaddr, NULL, mess->hlen, mess->htype, 0, mess->yiaddr))))
if (!message &&
!lease &&
(!(lease = lease_allocate(mess->yiaddr))))
message = _("no leases left");
if (!message && !(context = narrow_context(context, mess->yiaddr)))
@@ -730,7 +731,11 @@ size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *ifa
else if ((ltmp = lease_find_by_addr(mess->yiaddr)) && ltmp != lease)
message = _("address in use");
else if (!lease && !(lease = lease_allocate(mess->chaddr, clid, mess->hlen, mess->htype, clid_len, mess->yiaddr)))
else if (!clid && mess->hlen == 0)
message = _("no unique-id");
else if (!lease &&
!(lease = lease_allocate(mess->yiaddr)))
message = _("no leases left");
}
@@ -855,25 +860,10 @@ static unsigned int calc_time(struct dhcp_context *context, struct dhcp_config *
return time;
}
static char *print_mac(struct daemon *daemon, unsigned char *mac, int len)
{
char *p = daemon->namebuff;
int i;
if (len == 0)
sprintf(p, "<null> ");
else
for (i = 0; i < len; i++)
p += sprintf(p, "%.2x%s", mac[i], (i == len - 1) ? " " : ":");
return daemon->namebuff;
}
static void log_packet(struct daemon *daemon, char *type, struct in_addr *addr,
struct dhcp_packet *mess, char *interface, char *string)
{
syslog(LOG_INFO, "%s%s(%s) %s%s%s%s",
syslog(LOG_INFO, "%s%s(%s) %s%s%s %s",
type ? "DHCP" : "BOOTP",
type ? type : "",
interface,

View File

@@ -396,3 +396,17 @@ int expand_buf(struct iovec *iov, size_t size)
return 1;
}
char *print_mac(struct daemon *daemon, unsigned char *mac, int len)
{
char *p = daemon->namebuff;
int i;
if (len == 0)
sprintf(p, "<null>");
else
for (i = 0; i < len; i++)
p += sprintf(p, "%.2x%s", mac[i], (i == len - 1) ? "" : ":");
return daemon->namebuff;
}