mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 02:08:24 +00:00
import of dnsmasq-2.47.tar.gz
This commit is contained in:
92
CHANGELOG
92
CHANGELOG
@@ -2638,11 +2638,11 @@ version 2.46
|
||||
Tighten up data-checking code for DNS packet
|
||||
handling. Thanks to Steve Dodd who found certain illegal
|
||||
packets which could crash dnsmasq. No memory overwrite was
|
||||
possible, so this is not a security issue beond the DoS
|
||||
possible, so this is not a security issue beyond the DoS
|
||||
potential.
|
||||
|
||||
Update example config dhcp option 47, the previous
|
||||
suggestion generated and illegal, zero-length,
|
||||
suggestion generated an illegal, zero-length,
|
||||
option. Thanks to Matthias Andree for finding this.
|
||||
|
||||
Rewrite hosts-file reading code to remove the limit of
|
||||
@@ -2692,3 +2692,91 @@ version 2.46
|
||||
Force re-reading of /etc/resolv.conf when an "interface
|
||||
up" event occurs.
|
||||
|
||||
|
||||
version 2.47
|
||||
Updated French translation. Thanks to Gildas Le Nadan.
|
||||
|
||||
Fixed interface enumeration code to work on NetBSD
|
||||
5.0. Thanks to Roy Marples for the patch.
|
||||
|
||||
Updated config.h to use the same location for the lease
|
||||
file on NetBSD as the other *BSD variants. Also allow
|
||||
LEASEFILE and CONFFILE symbols to be overriden in CFLAGS.
|
||||
|
||||
Handle duplicate address detection on IPv6 more
|
||||
intelligently. In IPv6, an interface can have an address
|
||||
which is not usable, because it is still undergoing DAD
|
||||
(such addresses are marked "tentative"). Attempting to
|
||||
bind to an address in this state returns an error,
|
||||
EADDRNOTAVAIL. Previously, on getting such an error,
|
||||
dnsmasq would silently abandon the address, and never
|
||||
listen on it. Now, it retries once per second for 20
|
||||
seconds before generating a fatal error. 20 seconds should
|
||||
be long enough for any DAD process to complete, but can be
|
||||
adjusted in src/config.h if necessary. Thanks to Martin
|
||||
Krafft for the bug report.
|
||||
|
||||
Add DBus introspection. Patch from Jeremy Laine.
|
||||
|
||||
Update Dbus configuration file. Patch from Colin Walters.
|
||||
Fix for this bug:
|
||||
http://bugs.freedesktop.org/show_bug.cgi?id=18961
|
||||
|
||||
Support arbitrarily encapsulated DHCP options, suggestion
|
||||
and initial patch from Samium Gromoff. This is useful for
|
||||
(eg) gPXE, which expect all its private options to be
|
||||
encapsulated inside a single option 175. So, eg,
|
||||
|
||||
dhcp-option = encap:175, 190, "iscsi-client0"
|
||||
dhcp-option = encap:175, 191, "iscsi-client0-secret"
|
||||
|
||||
will provide iSCSI parameters to gPXE.
|
||||
|
||||
Enhance --dhcp-match to allow testing of the contents of a
|
||||
client-sent option, as well as its presence. This
|
||||
application in mind for this is RFC 4578
|
||||
client-architecture specifiers, but it's generally useful.
|
||||
Joey Korkames suggested the enhancement.
|
||||
|
||||
Move from using the IP_XMIT_IF ioctl to IP_BOUND_IF on
|
||||
OpenSolaris. Thanks to Bastian Machek for the heads-up.
|
||||
|
||||
No longer complain about blank lines in
|
||||
/etc/ethers. Thanks to Jon Nelson for the patch.
|
||||
|
||||
Fix binding of servers to physical devices, eg
|
||||
--server=/domain/1.2.3.4@eth0 which was broken from 2.43
|
||||
onwards unless --query-port=0 set. Thanks to Peter Naulls
|
||||
for the bug report.
|
||||
|
||||
Reply to DHCPINFORM requests even when the supplied ciaddr
|
||||
doesn't fall in any dhcp-range. In this case it's not
|
||||
possible to supply a complete configuration, but
|
||||
individually-configured options (eg PAC) may be useful.
|
||||
|
||||
Allow the source address of an alias to be a range:
|
||||
--alias=192.168.0.0,10.0.0.0,255.255.255.0 maps the whole
|
||||
subnet 192.168.0.0->192.168.0.255 to 10.0.0.0->10.0.0.255,
|
||||
as before.
|
||||
--alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
|
||||
maps only the 192.168.0.10->192.168.0.40 region. Thanks to
|
||||
Ib Uhrskov for the suggestion.
|
||||
|
||||
Don't dynamically allocate DHCP addresses which may break
|
||||
Windows. Addresses which end in .255 or .0 are broken in
|
||||
Windows even when using supernetting.
|
||||
--dhcp-range=192.168.0.1,192.168.1.254,255,255,254.0 means
|
||||
192.168.0.255 is a valid IP address, but not for Windows.
|
||||
See Microsoft KB281579. We therefore no longer allocate
|
||||
these addresses to avoid hard-to-diagnose problems.
|
||||
|
||||
Update Polish translation. Thanks to Jan Psota.
|
||||
|
||||
Delete the PID-file when dnsmasq shuts down. Note that by
|
||||
this time, dnsmasq is normally not running as root, so
|
||||
this will fail if the PID-file is stored in a root-owned
|
||||
directory; such failure is silently ignored. To take
|
||||
advantage of this feature, the PID-file must be stored in a
|
||||
directory owned and write-able by the user running
|
||||
dnsmasq.
|
||||
|
||||
|
||||
6
Makefile
6
Makefile
@@ -1,4 +1,4 @@
|
||||
# dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
# dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
PREFIX = /usr/local
|
||||
BINDIR = ${PREFIX}/sbin
|
||||
|
||||
20
contrib/lease-access/README
Normal file
20
contrib/lease-access/README
Normal file
@@ -0,0 +1,20 @@
|
||||
Hello,
|
||||
|
||||
For some specific application I needed to deny access to a MAC address
|
||||
to a lease. For this reason I modified the dhcp-script behavior and is
|
||||
called with an extra parameter "access" once a dhcp request or discover
|
||||
is received. In that case if the exit code of the script is zero,
|
||||
dnsmasq continues normally, and if non-zero the packet is ignored.
|
||||
|
||||
This was not added as a security feature but as a mean to handle
|
||||
differently some addresses. It is also quite intrusive since it requires
|
||||
changes in several other subsystems.
|
||||
|
||||
It attach the patch in case someone is interested.
|
||||
|
||||
regards,
|
||||
Nikos
|
||||
|
||||
nmav@gennetsa.com
|
||||
|
||||
|
||||
578
contrib/lease-access/lease.access.patch
Normal file
578
contrib/lease-access/lease.access.patch
Normal file
@@ -0,0 +1,578 @@
|
||||
Index: src/dnsmasq.c
|
||||
===================================================================
|
||||
--- src/dnsmasq.c (revision 696)
|
||||
+++ src/dnsmasq.c (revision 821)
|
||||
@@ -59,7 +59,6 @@
|
||||
static int set_dns_listeners(time_t now, fd_set *set, int *maxfdp);
|
||||
static void check_dns_listeners(fd_set *set, time_t now);
|
||||
static void sig_handler(int sig);
|
||||
-static void async_event(int pipe, time_t now);
|
||||
static void fatal_event(struct event_desc *ev);
|
||||
static void poll_resolv(void);
|
||||
|
||||
@@ -275,7 +274,7 @@
|
||||
piperead = pipefd[0];
|
||||
pipewrite = pipefd[1];
|
||||
/* prime the pipe to load stuff first time. */
|
||||
- send_event(pipewrite, EVENT_RELOAD, 0);
|
||||
+ send_event(pipewrite, EVENT_RELOAD, 0, 0);
|
||||
|
||||
err_pipe[1] = -1;
|
||||
|
||||
@@ -340,7 +339,7 @@
|
||||
}
|
||||
else if (getuid() == 0)
|
||||
{
|
||||
- send_event(err_pipe[1], EVENT_PIDFILE, errno);
|
||||
+ send_event(err_pipe[1], EVENT_PIDFILE, errno, 0);
|
||||
_exit(0);
|
||||
}
|
||||
}
|
||||
@@ -372,7 +371,7 @@
|
||||
(setgroups(0, &dummy) == -1 ||
|
||||
setgid(gp->gr_gid) == -1))
|
||||
{
|
||||
- send_event(err_pipe[1], EVENT_GROUP_ERR, errno);
|
||||
+ send_event(err_pipe[1], EVENT_GROUP_ERR, errno, 0);
|
||||
_exit(0);
|
||||
}
|
||||
|
||||
@@ -415,14 +414,14 @@
|
||||
|
||||
if (bad_capabilities != 0)
|
||||
{
|
||||
- send_event(err_pipe[1], EVENT_CAP_ERR, bad_capabilities);
|
||||
+ send_event(err_pipe[1], EVENT_CAP_ERR, bad_capabilities, 0);
|
||||
_exit(0);
|
||||
}
|
||||
|
||||
/* finally drop root */
|
||||
if (setuid(ent_pw->pw_uid) == -1)
|
||||
{
|
||||
- send_event(err_pipe[1], EVENT_USER_ERR, errno);
|
||||
+ send_event(err_pipe[1], EVENT_USER_ERR, errno, 0);
|
||||
_exit(0);
|
||||
}
|
||||
|
||||
@@ -434,7 +433,7 @@
|
||||
/* lose the setuid and setgid capbilities */
|
||||
if (capset(hdr, data) == -1)
|
||||
{
|
||||
- send_event(err_pipe[1], EVENT_CAP_ERR, errno);
|
||||
+ send_event(err_pipe[1], EVENT_CAP_ERR, errno, 0);
|
||||
_exit(0);
|
||||
}
|
||||
#endif
|
||||
@@ -647,7 +646,7 @@
|
||||
}
|
||||
|
||||
if (FD_ISSET(piperead, &rset))
|
||||
- async_event(piperead, now);
|
||||
+ async_event(piperead, now, NULL, 0);
|
||||
|
||||
#ifdef HAVE_LINUX_NETWORK
|
||||
if (FD_ISSET(daemon->netlinkfd, &rset))
|
||||
@@ -674,7 +673,7 @@
|
||||
#endif
|
||||
|
||||
if (daemon->dhcp && FD_ISSET(daemon->dhcpfd, &rset))
|
||||
- dhcp_packet(now);
|
||||
+ dhcp_packet(piperead, now);
|
||||
|
||||
#ifndef NO_FORK
|
||||
if (daemon->helperfd != -1 && FD_ISSET(daemon->helperfd, &wset))
|
||||
@@ -719,17 +718,18 @@
|
||||
else
|
||||
return;
|
||||
|
||||
- send_event(pipewrite, event, 0);
|
||||
+ send_event(pipewrite, event, 0, 0);
|
||||
errno = errsave;
|
||||
}
|
||||
}
|
||||
|
||||
-void send_event(int fd, int event, int data)
|
||||
+void send_event(int fd, int event, int data, int priv)
|
||||
{
|
||||
struct event_desc ev;
|
||||
|
||||
ev.event = event;
|
||||
ev.data = data;
|
||||
+ ev.priv = priv;
|
||||
|
||||
/* error pipe, debug mode. */
|
||||
if (fd == -1)
|
||||
@@ -771,14 +771,17 @@
|
||||
die(_("cannot open %s: %s"), daemon->log_file ? daemon->log_file : "log", EC_FILE);
|
||||
}
|
||||
}
|
||||
-
|
||||
-static void async_event(int pipe, time_t now)
|
||||
+
|
||||
+/* returns the private data of the event
|
||||
+ */
|
||||
+int async_event(int pipe, time_t now, struct event_desc* event, unsigned int secs)
|
||||
{
|
||||
pid_t p;
|
||||
struct event_desc ev;
|
||||
int i;
|
||||
|
||||
- if (read_write(pipe, (unsigned char *)&ev, sizeof(ev), 1))
|
||||
+ if (read_timeout(pipe, (unsigned char *)&ev, sizeof(ev), now, secs) > 0)
|
||||
+ {
|
||||
switch (ev.event)
|
||||
{
|
||||
case EVENT_RELOAD:
|
||||
@@ -872,6 +875,14 @@
|
||||
flush_log();
|
||||
exit(EC_GOOD);
|
||||
}
|
||||
+ }
|
||||
+ else
|
||||
+ return -1; /* timeout */
|
||||
+
|
||||
+ if (event)
|
||||
+ memcpy( event, &ev, sizeof(ev));
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static void poll_resolv()
|
||||
Index: src/config.h
|
||||
===================================================================
|
||||
--- src/config.h (revision 696)
|
||||
+++ src/config.h (revision 821)
|
||||
@@ -51,6 +51,8 @@
|
||||
#define TFTP_MAX_CONNECTIONS 50 /* max simultaneous connections */
|
||||
#define LOG_MAX 5 /* log-queue length */
|
||||
#define RANDFILE "/dev/urandom"
|
||||
+#define SCRIPT_TIMEOUT 6
|
||||
+#define LEASE_CHECK_TIMEOUT 10
|
||||
|
||||
/* DBUS interface specifics */
|
||||
#define DNSMASQ_SERVICE "uk.org.thekelleys.dnsmasq"
|
||||
Index: src/dnsmasq.h
|
||||
===================================================================
|
||||
--- src/dnsmasq.h (revision 696)
|
||||
+++ src/dnsmasq.h (revision 821)
|
||||
@@ -116,6 +116,7 @@
|
||||
/* Async event queue */
|
||||
struct event_desc {
|
||||
int event, data;
|
||||
+ unsigned int priv;
|
||||
};
|
||||
|
||||
#define EVENT_RELOAD 1
|
||||
@@ -390,6 +391,7 @@
|
||||
#define ACTION_OLD_HOSTNAME 2
|
||||
#define ACTION_OLD 3
|
||||
#define ACTION_ADD 4
|
||||
+#define ACTION_ACCESS 5
|
||||
|
||||
#define DHCP_CHADDR_MAX 16
|
||||
|
||||
@@ -709,6 +711,7 @@
|
||||
char *print_mac(char *buff, unsigned char *mac, int len);
|
||||
void bump_maxfd(int fd, int *max);
|
||||
int read_write(int fd, unsigned char *packet, int size, int rw);
|
||||
+int read_timeout(int fd, unsigned char *packet, int size, time_t now, int secs);
|
||||
|
||||
/* log.c */
|
||||
void die(char *message, char *arg1, int exit_code);
|
||||
@@ -748,7 +751,7 @@
|
||||
|
||||
/* dhcp.c */
|
||||
void dhcp_init(void);
|
||||
-void dhcp_packet(time_t now);
|
||||
+void dhcp_packet(int piperead, time_t now);
|
||||
|
||||
struct dhcp_context *address_available(struct dhcp_context *context,
|
||||
struct in_addr addr,
|
||||
@@ -792,14 +795,16 @@
|
||||
void rerun_scripts(void);
|
||||
|
||||
/* rfc2131.c */
|
||||
-size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
+size_t dhcp_reply(int pipefd, struct dhcp_context *context, char *iface_name, int int_index,
|
||||
size_t sz, time_t now, int unicast_dest, int *is_inform);
|
||||
|
||||
/* dnsmasq.c */
|
||||
int make_icmp_sock(void);
|
||||
int icmp_ping(struct in_addr addr);
|
||||
-void send_event(int fd, int event, int data);
|
||||
+void send_event(int fd, int event, int data, int priv);
|
||||
void clear_cache_and_reload(time_t now);
|
||||
+int wait_for_child(int pipe);
|
||||
+int async_event(int pipe, time_t now, struct event_desc*, unsigned int timeout);
|
||||
|
||||
/* isc.c */
|
||||
#ifdef HAVE_ISC_READER
|
||||
@@ -832,9 +837,9 @@
|
||||
/* helper.c */
|
||||
#ifndef NO_FORK
|
||||
int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd);
|
||||
-void helper_write(void);
|
||||
+int helper_write(void);
|
||||
void queue_script(int action, struct dhcp_lease *lease,
|
||||
- char *hostname, time_t now);
|
||||
+ char *hostname, time_t now, unsigned int uid);
|
||||
int helper_buf_empty(void);
|
||||
#endif
|
||||
|
||||
Index: src/util.c
|
||||
===================================================================
|
||||
--- src/util.c (revision 696)
|
||||
+++ src/util.c (revision 821)
|
||||
@@ -444,3 +444,38 @@
|
||||
return 1;
|
||||
}
|
||||
|
||||
+int read_timeout(int fd, unsigned char *packet, int size, time_t now, int secs)
|
||||
+{
|
||||
+ ssize_t n, done;
|
||||
+ time_t expire;
|
||||
+
|
||||
+ expire = now + secs;
|
||||
+
|
||||
+ for (done = 0; done < size; done += n)
|
||||
+ {
|
||||
+ retry:
|
||||
+ if (secs > 0) alarm(secs);
|
||||
+ n = read(fd, &packet[done], (size_t)(size - done));
|
||||
+
|
||||
+ if (n == 0)
|
||||
+ return 0;
|
||||
+ else if (n == -1)
|
||||
+ {
|
||||
+ if (errno == EINTR) {
|
||||
+ my_syslog(LOG_INFO, _("read timed out (errno %d)"), errno);
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ if (retry_send() || errno == ENOMEM || errno == ENOBUFS || errno == EAGAIN)
|
||||
+ {
|
||||
+ if (secs == 0 || (secs > 0 && dnsmasq_time() < expire))
|
||||
+ goto retry;
|
||||
+ }
|
||||
+
|
||||
+ my_syslog(LOG_INFO, _("error in read (timeout %d, errno %d)"), secs, errno);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ }
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
Index: src/dhcp.c
|
||||
===================================================================
|
||||
--- src/dhcp.c (revision 696)
|
||||
+++ src/dhcp.c (revision 821)
|
||||
@@ -103,7 +103,7 @@
|
||||
daemon->dhcp_packet.iov_base = safe_malloc(daemon->dhcp_packet.iov_len);
|
||||
}
|
||||
|
||||
-void dhcp_packet(time_t now)
|
||||
+void dhcp_packet(int piperead, time_t now)
|
||||
{
|
||||
struct dhcp_packet *mess;
|
||||
struct dhcp_context *context;
|
||||
@@ -239,7 +239,8 @@
|
||||
if (!iface_enumerate(&parm, complete_context, NULL))
|
||||
return;
|
||||
lease_prune(NULL, now); /* lose any expired leases */
|
||||
- iov.iov_len = dhcp_reply(parm.current, ifr.ifr_name, iface_index, (size_t)sz,
|
||||
+
|
||||
+ iov.iov_len = dhcp_reply(piperead, parm.current, ifr.ifr_name, iface_index, (size_t)sz,
|
||||
now, unicast_dest, &is_inform);
|
||||
lease_update_file(now);
|
||||
lease_update_dns();
|
||||
Index: src/helper.c
|
||||
===================================================================
|
||||
--- src/helper.c (revision 696)
|
||||
+++ src/helper.c (revision 821)
|
||||
@@ -45,6 +45,7 @@
|
||||
#endif
|
||||
unsigned char hwaddr[DHCP_CHADDR_MAX];
|
||||
char interface[IF_NAMESIZE];
|
||||
+ unsigned int uid;
|
||||
};
|
||||
|
||||
static struct script_data *buf = NULL;
|
||||
@@ -60,7 +61,7 @@
|
||||
then fork our process. */
|
||||
if (pipe(pipefd) == -1 || !fix_fd(pipefd[1]) || (pid = fork()) == -1)
|
||||
{
|
||||
- send_event(err_fd, EVENT_PIPE_ERR, errno);
|
||||
+ send_event(err_fd, EVENT_PIPE_ERR, errno, 0);
|
||||
_exit(0);
|
||||
}
|
||||
|
||||
@@ -87,13 +88,13 @@
|
||||
{
|
||||
if (daemon->options & OPT_NO_FORK)
|
||||
/* send error to daemon process if no-fork */
|
||||
- send_event(event_fd, EVENT_HUSER_ERR, errno);
|
||||
+ send_event(event_fd, EVENT_HUSER_ERR, errno, 0);
|
||||
else
|
||||
{
|
||||
/* kill daemon */
|
||||
- send_event(event_fd, EVENT_DIE, 0);
|
||||
+ send_event(event_fd, EVENT_DIE, 0, 0);
|
||||
/* return error */
|
||||
- send_event(err_fd, EVENT_HUSER_ERR, errno);;
|
||||
+ send_event(err_fd, EVENT_HUSER_ERR, errno, 0);
|
||||
}
|
||||
_exit(0);
|
||||
}
|
||||
@@ -122,6 +123,8 @@
|
||||
action_str = "del";
|
||||
else if (data.action == ACTION_ADD)
|
||||
action_str = "add";
|
||||
+ else if (data.action == ACTION_ACCESS)
|
||||
+ action_str = "access";
|
||||
else if (data.action == ACTION_OLD || data.action == ACTION_OLD_HOSTNAME)
|
||||
action_str = "old";
|
||||
else
|
||||
@@ -178,9 +181,11 @@
|
||||
{
|
||||
/* On error send event back to main process for logging */
|
||||
if (WIFSIGNALED(status))
|
||||
- send_event(event_fd, EVENT_KILLED, WTERMSIG(status));
|
||||
- else if (WIFEXITED(status) && WEXITSTATUS(status) != 0)
|
||||
- send_event(event_fd, EVENT_EXITED, WEXITSTATUS(status));
|
||||
+ send_event(event_fd, EVENT_KILLED, WTERMSIG(status), data.uid);
|
||||
+ else if (WIFEXITED(status))
|
||||
+ send_event(event_fd, EVENT_EXITED, WEXITSTATUS(status), data.uid);
|
||||
+ else
|
||||
+ send_event(event_fd, EVENT_EXITED, -1, data.uid);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -263,7 +268,7 @@
|
||||
err = errno;
|
||||
}
|
||||
/* failed, send event so the main process logs the problem */
|
||||
- send_event(event_fd, EVENT_EXEC_ERR, err);
|
||||
+ send_event(event_fd, EVENT_EXEC_ERR, err, data.uid);
|
||||
_exit(0);
|
||||
}
|
||||
}
|
||||
@@ -295,7 +300,7 @@
|
||||
}
|
||||
|
||||
/* pack up lease data into a buffer */
|
||||
-void queue_script(int action, struct dhcp_lease *lease, char *hostname, time_t now)
|
||||
+void queue_script(int action, struct dhcp_lease *lease, char *hostname, time_t now, unsigned int uid)
|
||||
{
|
||||
unsigned char *p;
|
||||
size_t size;
|
||||
@@ -332,6 +337,7 @@
|
||||
buf_size = size;
|
||||
}
|
||||
|
||||
+ buf->uid = uid;
|
||||
buf->action = action;
|
||||
buf->hwaddr_len = lease->hwaddr_len;
|
||||
buf->hwaddr_type = lease->hwaddr_type;
|
||||
@@ -393,12 +399,15 @@
|
||||
return bytes_in_buf == 0;
|
||||
}
|
||||
|
||||
-void helper_write(void)
|
||||
+/* returns -1 if write failed for a reason, 1 if no data exist
|
||||
+ * and 0 if everything was ok.
|
||||
+ */
|
||||
+int helper_write(void)
|
||||
{
|
||||
ssize_t rc;
|
||||
|
||||
if (bytes_in_buf == 0)
|
||||
- return;
|
||||
+ return 1;
|
||||
|
||||
if ((rc = write(daemon->helperfd, buf, bytes_in_buf)) != -1)
|
||||
{
|
||||
@@ -409,9 +418,11 @@
|
||||
else
|
||||
{
|
||||
if (errno == EAGAIN || errno == EINTR)
|
||||
- return;
|
||||
+ return -1;
|
||||
bytes_in_buf = 0;
|
||||
}
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
Index: src/rfc2131.c
|
||||
===================================================================
|
||||
--- src/rfc2131.c (revision 696)
|
||||
+++ src/rfc2131.c (revision 821)
|
||||
@@ -100,8 +100,49 @@
|
||||
int clid_len, unsigned char *clid, int *len_out);
|
||||
static void match_vendor_opts(unsigned char *opt, struct dhcp_opt *dopt);
|
||||
|
||||
+static int check_access_script( int piperead, struct dhcp_lease *lease, struct dhcp_packet *mess, time_t now)
|
||||
+{
|
||||
+#ifndef NO_FORK
|
||||
+unsigned int uid;
|
||||
+struct event_desc ev;
|
||||
+int ret;
|
||||
+struct dhcp_lease _lease;
|
||||
+
|
||||
+ if (daemon->lease_change_command == NULL) return 0; /* ok */
|
||||
+
|
||||
+ if (!lease) { /* if host has not been seen before lease is NULL */
|
||||
+ memset(&_lease, 0, sizeof(_lease));
|
||||
+ lease = &_lease;
|
||||
+ lease_set_hwaddr(lease, mess->chaddr, NULL, mess->hlen, mess->htype, 0);
|
||||
+ }
|
||||
+
|
||||
+ uid = rand16();
|
||||
+ queue_script(ACTION_ACCESS, lease, NULL, now, uid);
|
||||
+
|
||||
+ /* send all data to helper process */
|
||||
+ do
|
||||
+ {
|
||||
+ helper_write();
|
||||
+ } while (helper_buf_empty() == 0);
|
||||
+
|
||||
+ /* wait for our event */
|
||||
+ ret = 0;
|
||||
+ do
|
||||
+ {
|
||||
+ ret = async_event( piperead, now, &ev, SCRIPT_TIMEOUT);
|
||||
+ }
|
||||
+ while(ev.priv != uid && ret >= 0);
|
||||
+
|
||||
+ if (ret < 0 || ev.data != 0) /* timeout or error */
|
||||
+ {
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+#endif
|
||||
+ return 0; /* ok */
|
||||
+}
|
||||
|
||||
-size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
+size_t dhcp_reply(int piperead, struct dhcp_context *context, char *iface_name, int int_index,
|
||||
size_t sz, time_t now, int unicast_dest, int *is_inform)
|
||||
{
|
||||
unsigned char *opt, *clid = NULL;
|
||||
@@ -252,7 +293,7 @@
|
||||
mac->netid.next = netid;
|
||||
netid = &mac->netid;
|
||||
}
|
||||
-
|
||||
+
|
||||
/* Determine network for this packet. Our caller will have already linked all the
|
||||
contexts which match the addresses of the receiving interface but if the
|
||||
machine has an address already, or came via a relay, or we have a subnet selector,
|
||||
@@ -329,7 +370,7 @@
|
||||
my_syslog(LOG_INFO, _("Available DHCP range: %s -- %s"), daemon->namebuff, inet_ntoa(context_tmp->end));
|
||||
}
|
||||
}
|
||||
-
|
||||
+
|
||||
mess->op = BOOTREPLY;
|
||||
|
||||
config = find_config(daemon->dhcp_conf, context, clid, clid_len,
|
||||
@@ -418,7 +459,7 @@
|
||||
else
|
||||
mess->yiaddr = lease->addr;
|
||||
}
|
||||
-
|
||||
+
|
||||
if (!message &&
|
||||
!lease &&
|
||||
(!(lease = lease_allocate(mess->yiaddr))))
|
||||
@@ -641,7 +682,14 @@
|
||||
memcpy(req_options, option_ptr(opt, 0), option_len(opt));
|
||||
req_options[option_len(opt)] = OPTION_END;
|
||||
}
|
||||
-
|
||||
+
|
||||
+ if (mess_type == DHCPREQUEST || mess_type == DHCPDISCOVER)
|
||||
+ if (check_access_script(piperead, lease, mess, now) < 0)
|
||||
+ {
|
||||
+ my_syslog(LOG_INFO, _("Ignoring client due to access script"));
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
switch (mess_type)
|
||||
{
|
||||
case DHCPDECLINE:
|
||||
Index: src/log.c
|
||||
===================================================================
|
||||
--- src/log.c (revision 696)
|
||||
+++ src/log.c (revision 821)
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
if (!log_reopen(daemon->log_file))
|
||||
{
|
||||
- send_event(errfd, EVENT_LOG_ERR, errno);
|
||||
+ send_event(errfd, EVENT_LOG_ERR, errno, 0);
|
||||
_exit(0);
|
||||
}
|
||||
|
||||
Index: src/lease.c
|
||||
===================================================================
|
||||
--- src/lease.c (revision 696)
|
||||
+++ src/lease.c (revision 821)
|
||||
@@ -511,7 +511,7 @@
|
||||
if (lease->old_hostname)
|
||||
{
|
||||
#ifndef NO_FORK
|
||||
- queue_script(ACTION_OLD_HOSTNAME, lease, lease->old_hostname, now);
|
||||
+ queue_script(ACTION_OLD_HOSTNAME, lease, lease->old_hostname, now, 0);
|
||||
#endif
|
||||
free(lease->old_hostname);
|
||||
lease->old_hostname = NULL;
|
||||
@@ -520,7 +520,7 @@
|
||||
else
|
||||
{
|
||||
#ifndef NO_FORK
|
||||
- queue_script(ACTION_DEL, lease, lease->hostname, now);
|
||||
+ queue_script(ACTION_DEL, lease, lease->hostname, now, 0);
|
||||
#endif
|
||||
old_leases = lease->next;
|
||||
|
||||
@@ -540,7 +540,7 @@
|
||||
if (lease->old_hostname)
|
||||
{
|
||||
#ifndef NO_FORK
|
||||
- queue_script(ACTION_OLD_HOSTNAME, lease, lease->old_hostname, now);
|
||||
+ queue_script(ACTION_OLD_HOSTNAME, lease, lease->old_hostname, now, 0);
|
||||
#endif
|
||||
free(lease->old_hostname);
|
||||
lease->old_hostname = NULL;
|
||||
@@ -552,7 +552,7 @@
|
||||
(lease->aux_changed && (daemon->options & OPT_LEASE_RO)))
|
||||
{
|
||||
#ifndef NO_FORK
|
||||
- queue_script(lease->new ? ACTION_ADD : ACTION_OLD, lease, lease->hostname, now);
|
||||
+ queue_script(lease->new ? ACTION_ADD : ACTION_OLD, lease, lease->hostname, now, 0);
|
||||
#endif
|
||||
lease->new = lease->changed = lease->aux_changed = 0;
|
||||
|
||||
Index: man/dnsmasq.8
|
||||
===================================================================
|
||||
--- man/dnsmasq.8 (revision 696)
|
||||
+++ man/dnsmasq.8 (revision 821)
|
||||
@@ -724,12 +724,15 @@
|
||||
.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 process
|
||||
-are "add", "old" or "del", the MAC
|
||||
+are "add", "old", "access" 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 (also, lease length or expiry and client-id, if leasefile-ro is set).
|
||||
+The "access" keyword means that a request was just received and depending
|
||||
+on the script exit status request for address will be granted, if exit status
|
||||
+is zero or not if it is non-zero.
|
||||
The process is run as root (assuming that dnsmasq was originally run as
|
||||
root) even if dnsmasq is configured to change UID to an unprivileged user.
|
||||
The environment is inherited from the invoker of dnsmasq, and if the
|
||||
@@ -5,12 +5,10 @@
|
||||
<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>
|
||||
|
||||
|
||||
@@ -342,6 +342,22 @@
|
||||
#dhcp-boot=net:#gpxe,undionly.kpxe
|
||||
#dhcp-boot=mybootimage
|
||||
|
||||
# Encapsulated options for Etherboot gPXE. All the options are
|
||||
# encapsulated within option 175
|
||||
#dhcp-option=encap:175, 1, 5b # priority code
|
||||
#dhcp-option=encap:175, 176, 1b # no-proxydhcp
|
||||
#dhcp-option=encap:175, 177, string # bus-id
|
||||
#dhcp-option=encap:175, 189, 1b # BIOS drive code
|
||||
#dhcp-option=encap:175, 190, user # iSCSI username
|
||||
#dhcp-option=encap:175, 191, pass # iSCSI password
|
||||
|
||||
# Test for the architecture of a netboot client. PXE clients are
|
||||
# supposed to send their architecture as option 93. (See RFC 4578)
|
||||
#dhcp-match=peecees, option:client-arch, 0 #x86-32
|
||||
#dhcp-match=itanics, option:client-arch, 2 #IA64
|
||||
#dhcp-match=hammers, option:client-arch, 6 #x86-64
|
||||
#dhcp-match=mactels, option:client-arch, 7 #EFI x86-64
|
||||
|
||||
# Enable dnsmasq's built-in TFTP server
|
||||
#enable-tftp
|
||||
|
||||
@@ -409,7 +425,8 @@
|
||||
#alias=1.2.3.4,5.6.7.8
|
||||
# and this maps 1.2.3.x to 5.6.7.x
|
||||
#alias=1.2.3.0,5.6.7.0,255.255.255.0
|
||||
|
||||
# and this maps 192.168.0.10->192.168.0.40 to 10.0.0.10->10.0.0.40
|
||||
#alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
|
||||
|
||||
# Change these lines if you want dnsmasq to serve MX records.
|
||||
|
||||
|
||||
6
doc.html
6
doc.html
@@ -89,11 +89,11 @@ Dnsmasq is part of the Debian distribution, it can be downloaded from
|
||||
<A HREF="http://ftp.debian.org/debian/pool/main/d/dnsmasq/"> here</A> or installed using <TT>apt</TT>.
|
||||
|
||||
<H2>Links.</H2>
|
||||
There is an article in German on dnsmasq at <A
|
||||
HREF="http://www.linuxnetmag.com/de/issue7/m7dnsmasq1.html">http://www.linuxnetmag.com/de/issue7/m7dnsmasq1.html</A>
|
||||
and Damien Raude-Morvan has one in French at <A HREF="http://www.drazzib.com/docs-dnsmasq.html">http://www.drazzib.com/docs-dnsmasq.html</A>
|
||||
Damien Raude-Morvan has an article in French at <A HREF="http://www.drazzib.com/docs-dnsmasq.html">http://www.drazzib.com/docs-dnsmasq.html</A>
|
||||
There is a good article about dnsmasq at <A
|
||||
HREF="http://www.enterprisenetworkingplanet.com/netos/article.php/3377351">http://www.enterprisenetworkingplanet.com/netos/article.php/3377351</A>
|
||||
and another at <A
|
||||
HREF="http://www.linux.com/articles/149040">http://www.linux.com/articles/149040</A>
|
||||
and Ilya Evseev has an article in Russian about dnsmasq to be found at <A HREF="http://ilya-evseev.narod.ru/articles/dnsmasq"> http://ilya-evseev.narod.ru/articles/dnsmasq</A>
|
||||
<H2>License.</H2>
|
||||
Dnsmasq is distributed under the GPL. See the file COPYING in the distribution
|
||||
|
||||
@@ -15,8 +15,8 @@ contents of /etc/hosts so that local hostnames
|
||||
which do not appear in the global DNS can be resolved and also answers
|
||||
DNS queries for DHCP configured hosts.
|
||||
.PP
|
||||
The dnsmasq DHCP server supports static address assignments, multiple
|
||||
networks, DHCP-relay and RFC3011 subnet specifiers. It automatically
|
||||
The dnsmasq DHCP server supports static address assignments and multiple
|
||||
networks. It automatically
|
||||
sends a sensible default set of DHCP options, and can be configured to
|
||||
send any desired set of DHCP options, including vendor-encapsulated
|
||||
options. It includes a secure, read-only,
|
||||
@@ -208,13 +208,17 @@ Bogus private reverse lookups. All reverse lookups for private IP ranges (ie 192
|
||||
which are not found in /etc/hosts or the DHCP leases file are answered
|
||||
with "no such domain" rather than being forwarded upstream.
|
||||
.TP
|
||||
.B \-V, --alias=<old-ip>,<new-ip>[,<mask>]
|
||||
.B \-V, --alias=[<old-ip>]|[<start-ip>-<end-ip>],<new-ip>[,<mask>]
|
||||
Modify IPv4 addresses returned from upstream nameservers; old-ip is
|
||||
replaced by new-ip. If the optional mask is given then any address
|
||||
which matches the masked old-ip will be re-written. So, for instance
|
||||
.B --alias=1.2.3.0,6.7.8.0,255.255.255.0
|
||||
will map 1.2.3.56 to 6.7.8.56 and 1.2.3.67 to 6.7.8.67. This is what
|
||||
Cisco PIX routers call "DNS doctoring".
|
||||
Cisco PIX routers call "DNS doctoring". If the old IP is given as
|
||||
range, then only addresses in the range, rather than a whole subnet,
|
||||
are re-written. So
|
||||
.B --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
|
||||
maps 192.168.0.10->192.168.0.40 to 10.0.0.10->10.0.0.40
|
||||
.TP
|
||||
.B \-B, --bogus-nxdomain=<ipaddr>
|
||||
Transform replies which contain the IP address given into "No such
|
||||
@@ -513,13 +517,15 @@ Token-Ring hardware address, since the ARP-address type for token ring
|
||||
is 6.
|
||||
|
||||
As a special case, it is possible to include more than one
|
||||
hardware address. This allows an IP address to be associated with
|
||||
hardware address. eg:
|
||||
.B --dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.2
|
||||
This allows an IP address to be associated with
|
||||
multiple hardware addresses, and gives dnsmasq permission to abandon a
|
||||
DHCP lease to one of the hardware addresses when another one asks for
|
||||
a lease. Beware that this is a dangerous thing to do, it will only
|
||||
work reliably if only one of the hardware addresses is active at any
|
||||
time and there is no way for dnsmasq to enforce this. It is, however
|
||||
useful, for instance to allocate a stable IP address to a laptop which
|
||||
time and there is no way for dnsmasq to enforce this. It is, for instance,
|
||||
useful to allocate a stable IP address to a laptop which
|
||||
has both wired and wireless interfaces.
|
||||
.TP
|
||||
.B --dhcp-hostsfile=<file>
|
||||
@@ -543,7 +549,7 @@ have exactly the same effect as
|
||||
options containing the same information. /etc/ethers is re-read when
|
||||
dnsmasq receives SIGHUP.
|
||||
.TP
|
||||
.B \-O, --dhcp-option=[<network-id>,[<network-id>,]][vendor:[<vendor-class>],][<opt>|option:<opt-name>],[<value>[,<value>]]
|
||||
.B \-O, --dhcp-option=[<network-id>,[<network-id>,]][encap:<opt>,][vendor:[<vendor-class>],][<opt>|option:<opt-name>],[<value>[,<value>]]
|
||||
Specify different or extra options to DHCP clients. By default,
|
||||
dnsmasq sends some standard options to DHCP clients, the netmask and
|
||||
broadcast address are set to the same as the host running dnsmasq, and
|
||||
@@ -603,10 +609,18 @@ client. It is
|
||||
possible to omit the vendorclass completely;
|
||||
.B --dhcp-option=vendor:,1,0.0.0.0
|
||||
in which case the encapsulated option is always sent.
|
||||
|
||||
Options may be encapsulated within other options: for instance
|
||||
.B --dhcp-option=encap:175, 190, "iscsi-client0"
|
||||
will send option 175, within which is the option 190. If multiple
|
||||
options are given which are encapsulated with the same option number
|
||||
then they will be correctly combined into one encapsulated option.
|
||||
encap: and vendor: are may not both be set in the same dhcp-option.
|
||||
|
||||
The address 0.0.0.0 is not treated specially in
|
||||
encapsulated vendor class options.
|
||||
encapsulated options.
|
||||
.TP
|
||||
.B --dhcp-option-force=[<network-id>,[<network-id>,]][vendor:[<vendor-class>],]<opt>,[<value>[,<value>]]
|
||||
.B --dhcp-option-force=[<network-id>,[<network-id>,]][encap:<opt>,][vendor:[<vendor-class>],]<opt>,[<value>[,<value>]]
|
||||
This works in exactly the same way as
|
||||
.B --dhcp-option
|
||||
except that the option will always be sent, even if the client does
|
||||
@@ -658,10 +672,22 @@ agent ID and one provided by a relay agent, the network-id tag is set.
|
||||
.B --dhcp-subscrid=<network-id>,<subscriber-id>
|
||||
Map from RFC3993 subscriber-id relay agent options to network-id tags.
|
||||
.TP
|
||||
.B --dhcp-match=<network-id>,<option number>
|
||||
Set the network-id tag if the client sends a DHCP option of the given
|
||||
number. This can be used to identify particular clients which send
|
||||
information using private option numbers.
|
||||
.B --dhcp-match=<network-id>,<option number>|option:<option name>[,<value>]
|
||||
Without a value, set the network-id tag if the client sends a DHCP
|
||||
option of the given number or name. When a value is given, set the tag only if
|
||||
the option is sent and matches the value. The value may be of the form
|
||||
"01:ff:*:02" in which case the value must match (apart from widcards)
|
||||
but the option sent may have unmatched data past the end of the
|
||||
value. The value may also be of the same form as in
|
||||
.B dhcp-option
|
||||
in which case the option sent is treated as an array, and one element
|
||||
must match, so
|
||||
|
||||
--dhcp-match=efi-ia32,option:client-arch,6
|
||||
|
||||
will set the tag "efi-ia32" if the the number 6 appears in the list of
|
||||
architectures sent by the client in option 93. (See RFC 4578 for
|
||||
details.) If the value is a string, substring matching is used.
|
||||
.TP
|
||||
.B \-J, --dhcp-ignore=<network-id>[,<network-id>]
|
||||
When all the given network-ids match the set of network-ids derived
|
||||
@@ -737,15 +763,7 @@ Extra logging for DHCP: log all the options sent to DHCP clients and
|
||||
the netid tags used to determine them.
|
||||
.TP
|
||||
.B \-l, --dhcp-leasefile=<path>
|
||||
Use the specified file to store DHCP lease information. If this option
|
||||
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. 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.
|
||||
Use the specified file to store DHCP lease information.
|
||||
.TP
|
||||
.B \-6 --dhcp-script=<path>
|
||||
Whenever a new DHCP lease is created, or an old one destroyed, the
|
||||
|
||||
149
man/fr/dnsmasq.8
149
man/fr/dnsmasq.8
@@ -236,7 +236,7 @@ trouvées dans /etc/hosts ou dans le fichier de baux DHCP se voient retournées
|
||||
une réponse "pas de tel domaine" ("no such domain") au lieu d'être transmises
|
||||
aux serveurs de nom amont ("upstream server").
|
||||
.TP
|
||||
.B \-V, --alias=<ancienne IP>,<nouvelle IP>[,<masque>]
|
||||
.B \-V, --alias=[<ancienne IP>]|[<IP de début>-<IP de fin>],<nouvelle IP>[,<masque>]
|
||||
Modifie les adresses IPv4 retournées par les serveurs de nom amont;
|
||||
<ancienne IP> est remplacée par <nouvelle IP>. Si le <masque> optionnel est
|
||||
fourni, alors toute adresse correspondant à l'adresse <ancienne IP>/<masque>
|
||||
@@ -244,7 +244,11 @@ sera réécrite. Ainsi par exemple
|
||||
.B --alias=1.2.3.0,6.7.8.0,255.255.255.0
|
||||
modifiera 1.2.3.56 en 6.7.8.56 et 1.2.3.67 en 6.7.8.67.
|
||||
Cette fonctionnalité correspond à ce que les routeurs Cisco PIX appellent
|
||||
"bidouillage DNS" ("DNS doctoring").
|
||||
"bidouillage DNS" ("DNS doctoring"). Si l'ancienne IP est donnée sous la forme
|
||||
d'une gamme d'adresses, alors seules les adresses dans cette gamme seront
|
||||
réecrites, et non le sous-réseau dans son ensemble. Ainsi,
|
||||
.B --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
|
||||
fait correspondre 192.168.0.10->192.168.0.40 à 10.0.0.10->10.0.0.40
|
||||
.TP
|
||||
.B \-B, --bogus-nxdomain=<adresse IP>
|
||||
Transforme les réponses contenant l'adresse IP fournie en réponses "pas de tel
|
||||
@@ -455,6 +459,14 @@ Définit un enregistrement DNS de type PTR.
|
||||
.B --naptr-record=<nom>,<ordre>,<préférence>,<drapeaux>,<service>,<expr. régulière>[,<remplacement>]
|
||||
Retourne un enregistrement de type NAPTR, tel que spécifié dans le RFC3403.
|
||||
.TP
|
||||
.B --cname=<cname>,<cible>
|
||||
Retourne un enregistrement de type CNAME qui indique que <cname> est en
|
||||
réalité <cible>. Il existe des contraintes significatives sur la valeur
|
||||
de cible; il doit s'agir d'un nom DNS qui est connu de dnsmasq via /etc/hosts
|
||||
(ou un fichier hôtes additionnel) ou via DHCP. Si une cible ne satisfait
|
||||
pas ces critères, le CNAME est ignoré. Le CNAME doit être unique, mais
|
||||
il est autorisé d'avoir plus d'un CNAME pointant vers la même cible.
|
||||
.TP
|
||||
.B --interface-name=<nom>,<interface>
|
||||
Définit un entregistrement DNS associant le nom avec l'adresse primaire sur
|
||||
l'interface donnée en argument. Cette option spécifie un enregistrement de type
|
||||
@@ -545,6 +557,7 @@ réfère à l'hôte d'identifiant 01:02:03:04. Il est également possible de
|
||||
spécifier l'identifiant client sous la forme d'une chaîne de caractères, comme
|
||||
ceci :
|
||||
.B --dhcp-host=id:identifiantclientsousformedechaine,.....
|
||||
|
||||
L'option spéciale id:* signifie : "ignorer tout identifiant client et n'utiliser
|
||||
que l'adresse matérielle". Cela est utile lorsqu'un client présente un
|
||||
identifiant client mais pas les autres.
|
||||
@@ -558,7 +571,9 @@ spécifiée par son adresse matérielle, son identifiant client ou son nom d'hô
|
||||
Par exemple
|
||||
.B --dhcp-host=00:20:e0:3b:13:af,ignore
|
||||
Cela est utile lorsqu'un autre serveur DHCP sur le réseau doit être utilisé par
|
||||
certaines machines. Le paramètre net:<identifiant réseau> permet de définir un
|
||||
certaines machines.
|
||||
|
||||
Le paramètre net:<identifiant réseau> permet de définir un
|
||||
identifiant de réseau lorsque l'option dhcp-host est utilisée. Cela peut servir
|
||||
à sélectionner des options DHCP juste pour cet hôte. Lorsqu'une machine coïncide
|
||||
avec une directive dhcp-host (ou une impliquée par /etc/ethers), alors
|
||||
@@ -573,12 +588,26 @@ avec des octets joker, ainsi par exemple
|
||||
demande à Dnsmasq d'ignorer une gamme d'adresses matérielles. Il est à noter
|
||||
que "*" doit-être précédé d'un caractère d'échappement ou mis entre guillemets
|
||||
lorsque spécifié en option de ligne de commande, mais pas dans le fichier de
|
||||
configuration. Les adresses matérielles coïncident en principe avec n'importe
|
||||
configuration.
|
||||
|
||||
Les adresses matérielles coïncident en principe avec n'importe
|
||||
quel type de réseau (ARP), mais il est possible de les limiter à un seul type
|
||||
ARP en les précédant du type ARP (en Hexadécimal) et de "-". Ainsi
|
||||
.B --dhcp-host=06-00:20:e0:3b:13:af,1.2.3.4
|
||||
coïncidera uniquement avec des adresses matérielles Token-Ring, puisque le type
|
||||
ARP pour une adresse Token-Ring est 6.
|
||||
|
||||
Un cas spécial correspond à l'inclusion d'une ou plusieurs adresses
|
||||
matérielles, c-à-d :
|
||||
.B --dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.2.
|
||||
Cela permet à une adresse IP d'être associé à plusieurs adresses
|
||||
matérielles, et donne à dnsmasq la permission d'abandonner un bail DHCP
|
||||
attribué à l'une de ces adresses lorsqu'une autre adresse dans la liste
|
||||
demande un bail. Ceci est une opération dangereuse qui ne fonctionnera
|
||||
de manière fiable que si une adresse matérielle est active à un moment
|
||||
donné et dnsmasq n'a aucun moyen de s'assurer de cela. Cela est utile,
|
||||
par exemple, pour allouer une adresse IP stable à un laptop qui
|
||||
aurait à la fois une connexion filaire et sans-fil.
|
||||
.TP
|
||||
.B --dhcp-hostsfile=<fichier>
|
||||
Lis les informations d'hôtes DHCP dans le fichier spécifié. Le fichier contient
|
||||
@@ -603,7 +632,7 @@ par Dnsmasq, ces lignes ont exactement le même effet que l'option
|
||||
contenant les mêmes informations. /etc/ethers est relu à la réception d'un
|
||||
signal SIGHUP par Dnsmasq.
|
||||
.TP
|
||||
.B \-O, --dhcp-option=[<identifiant_de_réseau>,[<identifiant_de_réseau>,]][vendor:[<classe_vendeur>],][<opt>|option:<nom d'option>],[<valeur>[,<valeur>]]
|
||||
.B \-O, --dhcp-option=[<identifiant_de_réseau>,[<identifiant_de_réseau>,]][encap:<option>,][vendor:[<classe_vendeur>],][<option>|option:<nom d'option>],[<valeur>[,<valeur>]]
|
||||
Spécifie des options différentes ou supplémentaires pour des clients DHCP. Par
|
||||
défaut, Dnsmasq envoie un ensemble standard d'options aux clients DHCP : le
|
||||
masque de réseau et l'adresse de broadcast sont les mêmes que pour l'hôte
|
||||
@@ -673,10 +702,19 @@ pour sélectionner les options encapsulées, de préférence à toute option env
|
||||
par le client. Il est possible d'omettre complètement une classe de vendeur :
|
||||
.B --dhcp-option=vendor:,1,0.0.0.0
|
||||
Dans ce cas l'option encapsulée est toujours envoyée.
|
||||
|
||||
Les options peuvent-être encapsulées au sein d'autres options :
|
||||
par exemple
|
||||
.B --dhcp-option=encap:175, 190, "iscsi-client0"
|
||||
enverra l'option 175, au sein de laquelle se trouve l'option 190.
|
||||
Plusieurs options encapsulées avec le même numéro d'option seront correctement
|
||||
combinées au sein d'une seule option encapsulée. Il n'est pas possible de
|
||||
spécifier encap: et vendor: au sein d'une même option dhcp.
|
||||
|
||||
L'adresse 0.0.0.0 n'est pas traitée de manière particulière lorsque fournie dans
|
||||
une option encapsulée de classe de vendeur.
|
||||
une option encapsulée.
|
||||
.TP
|
||||
.B --dhcp-option-force=[<identifiant de réseau>,[<identifiant de réseau>,]][vendor:[<classe de vendeur>],]<opt>,[<valeur>[,<valeur>]]
|
||||
.B --dhcp-option-force=[<identifiant de réseau>,[<identifiant de réseau>,]][encap:<option>,][vendor:[<classe de vendeur>],]<option>,[<valeur>[,<valeur>]]
|
||||
Cela fonctionne exactement de la même façon que
|
||||
.B --dhcp-option
|
||||
sauf que cette option sera toujours envoyée, même si le client ne la demande pas
|
||||
@@ -738,11 +776,23 @@ relais DHCP, alors l'identifiant de réseau est positionné.
|
||||
Associe des options de relais DHCP issues de la RFC3993 à des identifiants de
|
||||
réseau.
|
||||
.TP
|
||||
.B --dhcp-match=<identifiant de réseau>,<numéro d'option>
|
||||
Associe l'identifiant de réseau si le client envoie une option DHCP
|
||||
avec le numéro spécifié. Cela peut-être utilisé pour identifier des
|
||||
clients spécifiques qui envoient des informations par le biais de
|
||||
numéros privés d'option.
|
||||
.B --dhcp-match=<identifiant de réseau>,<numéro d'option>|option:<nom d'option>[,<valeur>]
|
||||
Si aucune valeur n'est spécifiée, associe l'identifiant de réseau si le client
|
||||
envoie une option DHCP avec le numéro ou le nom spécifié. Lorsqu'une valeur est
|
||||
fournie, positionne le label seulement dans le cas où l'option est fournie et
|
||||
correspond à la valeur. La valeur peut-être de la forme "01:ff:*:02", auquel
|
||||
cas le début de l'option doit correspondre (en respectant les jokers). La
|
||||
valeur peut aussi être de la même forme que dans
|
||||
.B dhcp-option
|
||||
, auquel cas l'option est traitée comme un tableau de valeur, et un des
|
||||
éléments doit correspondre, ainsi
|
||||
|
||||
--dhcp-match=efi-ia32,option:client-arch,6
|
||||
|
||||
spécifie le label "efi-ia32" si le numéro 6 apparaît dnas la liste
|
||||
d'architectures envoyé par le client au sein de l'option 93. (se réferer
|
||||
au RFC 4578 pour plus de détails). Si la valeur est un chaine de caractères,
|
||||
celle-ci est recherchée (correspondance en temps que sous-chaîne).
|
||||
.TP
|
||||
.B \-J, --dhcp-ignore=<identifiant de réseau>[,<identifiant de réseau>]
|
||||
Lorsque tous les identifiants de réseau fournis coïncident avec la liste
|
||||
@@ -802,10 +852,14 @@ numéro est utilisé pour le port serveur et ce numéro plus 1 est utilisé pour
|
||||
port client. Enfin, en fournissant deux numéros de ports, il est possible de
|
||||
spécifier arbitrairement 2 ports à la fois pour le serveur et pour le client DHCP.
|
||||
.TP
|
||||
.B \-3, --bootp-dynamic
|
||||
.B \-3, --bootp-dynamic[=<identifiant de réseau>[,<identifiant de réseau>]]
|
||||
Permet l'allocation dynamique d'adresses IP à des clients BOOTP. Utiliser cette
|
||||
option avec précaution, une adresse allouée à un client BOOTP étant perpétuelle,
|
||||
et de fait n'est plus disponibles pour d'autres hôtes.
|
||||
et de fait n'est plus disponibles pour d'autres hôtes. Si aucun argument n'est
|
||||
donné, alors cette option permet une allocation dynamique dans tous les cas. Si
|
||||
des arguments sont spécifiés, alors l'allocation ne se fait que lorsque tous
|
||||
les identifiants coïncident. Il est possible de répeter cette option avec
|
||||
plusieurs jeux d'arguments.
|
||||
.TP
|
||||
.B \-5, --no-ping
|
||||
Par défaut, le serveur DHCP tente de s'assurer qu'une adresse n'est pas utilisée
|
||||
@@ -822,32 +876,28 @@ détermination de celles-ci.
|
||||
.TP
|
||||
.B \-l, --dhcp-leasefile=<chemin de fichier>
|
||||
Utilise le fichier dont le chemin est fourni pour stocker les informations de
|
||||
baux DHCP. Si cette option est fournie mais qu'aucune option de type dhcp-range
|
||||
n'est donnée, alors un comportement de type Dnsmasq version 1 est activé. Le
|
||||
fichier fourni est supposé être un fichier de baux DHCP de type ISC DHCPD et est
|
||||
parcouru à la recherche de baux contenant des noms d'hôtes. Les noms trouvés
|
||||
sont rajoutés au DNS. Cette fonctionalité peut être exclue de Dnsmasq à la
|
||||
compilation, auquel cas une erreur sera produite. Il est à noter que
|
||||
l'intégration avec un fichier de baux au format ISC est une fonctionalité
|
||||
obsolète. Elle ne devrait pas être utilisée dans les nouvelles installations et
|
||||
sera retirée dans une future version.
|
||||
baux DHCP.
|
||||
.TP
|
||||
.B \-6 --dhcp-script=<chemin de fichier>
|
||||
Lorsqu'un bail DHCP est créé, ou qu'un ancien est supprimé, le fichier dont le
|
||||
chemin est spécifié est exécuté. Les arguments fournis à celui-ci sont soit
|
||||
"add" ("ajouter"), "old" ("ancien") ou "del" ("supprimer"), suivi de l'adresse
|
||||
MAC de l'hôte (ou "<null>") puis l'adresse IP et le nom d'hôte si celui-ci est
|
||||
MAC de l'hôte puis l'adresse IP et le nom d'hôte si celui-ci est
|
||||
connu."add" signifie qu'un bail a été créé, "del" signifie qu'il a été supprimé,
|
||||
"old" notifie que le bail existait au lancement de Dnsmasq, ou un changement
|
||||
d'adresse MAC ou de nom d'hôte pour un bail existant (ou, dans le cas où
|
||||
leasefile-ro est spécifié, un changement de durée de bail ou d'identifiant
|
||||
d'hôte). Le processus est exécuté en temps que super-utilisateur (si Dnsmasq a
|
||||
été lancé en temps que "root"), même si Dnsmasq est configuré pour changer son
|
||||
UID pour celle d'un utilisateur non-privilégié. L'environnement est hérité de
|
||||
celui de l'invocation du processus Dnsmasq, et si l'hôte fournit un identifiant
|
||||
de client, celui-ci est stocké dans la variable d'environnement
|
||||
DNSMASQ_CLIENT_ID. Si le client fournit une information de classe de vendeur ou
|
||||
de classe d'utilisateur, celles-ci sont positionnées dans les variables
|
||||
d'hôte). Si l'adresse Mac est d'un type de réseau autre qu'ethernet, il est
|
||||
nécessaire de la préceder du type de réseau, par exemple "06-01:23:45:67:89:ab"
|
||||
pour du token ring. Le processus est exécuté en temps que super-utilisateur
|
||||
(si Dnsmasq a été lancé en temps que "root"), même si Dnsmasq est configuré
|
||||
pour changer son UID pour celle d'un utilisateur non-privilégié.
|
||||
L'environnement est hérité de celui de l'invocation du processus Dnsmasq, et
|
||||
si l'hôte fournit un identifiant de client, celui-ci est stocké dans la
|
||||
variable d'environnement DNSMASQ_CLIENT_ID. Si un nom de domaine pleinement
|
||||
qualifié (FQDN) est connu pour l'hôte, la part relative au domaine est stockée
|
||||
dans DNSMASQ_DOMAIN. Si le client fournit une information de classe de vendeur
|
||||
ou de classe d'utilisateur, celles-ci sont positionnées dans les variables
|
||||
DNSMASQ_VENDOR_CLASS et DNSMASQ_USER_CLASS0 à DNSMASQ_USER_CLASSn
|
||||
respectivement, mais seulement pour les actions "add" et "old" lorsqu'un hôte
|
||||
reprend un bail existant, ces variables n'étant pas stockées dans la base de
|
||||
@@ -905,8 +955,10 @@ uniquement disponible sur les plateformes BSD, et est uniquement nécessaire
|
||||
lors de l'utilisation de pont ethernet "ancien mode", puisque dans ce cas les
|
||||
paquets arrivent sur des interfaces "tap" n'ayant pas d'adresse IP.
|
||||
.TP
|
||||
.B \-s, --domain=<domaine>
|
||||
Spécifie le domaine du serveur DHCP. Cela a deux effets; tout d'abord, le
|
||||
.B \-s, --domain=<domaine>[,<gamme d'adresses>]
|
||||
Spécifie le domaine du serveur DHCP. Le domaine peut être donné de manière
|
||||
inconditionnelle (sans spécifier de gamme d'adresses IP) ou pour des gammes
|
||||
d'adresses IP limitées. Cela a deux effets; tout d'abord, le
|
||||
serveur DHCP retourne le domaine à tous les hôtes le demandant, deuxièmement,
|
||||
cela spécifie le domaine valide pour les hôtes DHCP configurés. Le but de cela
|
||||
est de contraindre les noms d'hôte afin qu'aucun hôte sur le LAN ne puisse
|
||||
@@ -925,7 +977,29 @@ et avoir une machine dont le nom DHCP serait "laptop". L'adresse IP de cette
|
||||
machine sera disponible à la fois pour "laptop" et "laptop.thekelleys.org.uk".
|
||||
Si la valeur fournie pour <domaine> est "#", alors le nom de domaine est
|
||||
positionné à la première valeur de la directive "search" du fichier
|
||||
/etc/resolv.conf (ou équivalent).
|
||||
/etc/resolv.conf (ou équivalent). La gamme d'adresses peut être de la forme
|
||||
<adresse ip>,<adresse ip> ou <adresse ip>/<masque de réseau> voire une simple
|
||||
<adresse ip>. Voir
|
||||
.B --dhcp-fqdn
|
||||
qui peut changer le comportement de dnsmasq relatif aux domaines.
|
||||
.TP
|
||||
.B --dhcp-fqdn
|
||||
Dans le mode par défaut, dnsmasq insère les noms non-qualifiés des clients
|
||||
DHCP dans le DNS. Pour cette raison, les noms doivent être uniques, même si
|
||||
deux clients ayant le même nom sont dans deux domaines différents. Si un
|
||||
deuxième client DHCP apparaît ayant le même nom qu'un client déjà existant,
|
||||
ce nom est transféré au nouveau client. Si
|
||||
.B --dhcp-fqdn
|
||||
est spécifié, ce comportement change : les noms non qualifiés ne sont plus
|
||||
rajoutés dans le DNS, seuls les noms qualifiés le sont. Deux clients DHCP
|
||||
avec le même nom peuvent tous les deux garder le nom, pour peu que la partie
|
||||
relative au domaine soit différente (c-à-d que les noms pleinements qualifiés
|
||||
diffèrent). Pour d'assurer que tous les noms ont une partie domaine, il doit-y
|
||||
avoir au moins un
|
||||
.B --domain
|
||||
sans gamme d'adresses de spécifié lorsque l'option
|
||||
.B --dhcp-fqdn
|
||||
est configurée.
|
||||
.TP
|
||||
.B --enable-tftp
|
||||
Active la fonction serveur TFTP. Celui-ci est de manière délibérée limité aux
|
||||
@@ -1164,9 +1238,12 @@ les identifiants de réseau fonctionnent comme suit : Dnsmasq associe à chaque
|
||||
requête DHCP un ensemble d'identifiants de réseau; un pour la plage d'adresse
|
||||
DHCP (
|
||||
.B dhcp-range
|
||||
) utilisée pour allouer l'adresse, une pour chaque entrée
|
||||
) utilisée pour allouer l'adresse, un identifiant pour chaque entrée
|
||||
.B dhcp-host
|
||||
associée et éventuellement une pour chaque classe de vendeur ou d'utilisateur
|
||||
associée (il ajoute "known" lorsqu'une entrée dhcp-host coïncide), l'étiquette
|
||||
"bootp" pour les requêtes BOOTP, un identifiant dont le nom est le nom de
|
||||
l'interface sur laquelle la requête est arrivée, et éventuellement un
|
||||
identifiant pour chaque classe de vendeur ou d'utilisateur
|
||||
fournie par le client DHCP dans sa requête. Les options DHCP (
|
||||
.B dhcp-option
|
||||
) ayant un identifiant de réseau seront utilisés de préférence à celles
|
||||
|
||||
282
po/de.po
282
po/de.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dnsmasq 2.24\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-11-13 20:23+0000\n"
|
||||
"POT-Creation-Date: 2009-02-02 14:07+0000\n"
|
||||
"PO-Revision-Date: 2005-09-27 09:37+0100\n"
|
||||
"Last-Translator: Simon Kelley <simon@thekelleys.org.uk>\n"
|
||||
"Language-Team: German <de@li.org>\n"
|
||||
@@ -20,19 +20,19 @@ msgstr ""
|
||||
msgid "failed to load names from %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cache.c:795 dhcp.c:768
|
||||
#: cache.c:795 dhcp.c:780
|
||||
#, c-format
|
||||
msgid "bad address at %s line %d"
|
||||
msgstr ""
|
||||
|
||||
# @Simon: Here I need an example to understand it :)
|
||||
#: cache.c:850 dhcp.c:782
|
||||
#: cache.c:850 dhcp.c:794
|
||||
#, c-format
|
||||
msgid "bad name at %s line %d"
|
||||
msgstr ""
|
||||
|
||||
# @Simon: Here I need an example to understand it :)
|
||||
#: cache.c:857 dhcp.c:848
|
||||
#: cache.c:857 dhcp.c:860
|
||||
#, c-format
|
||||
msgid "read %s - %d addresses"
|
||||
msgstr "lese %s - %d Adressen"
|
||||
@@ -72,7 +72,7 @@ msgstr ""
|
||||
msgid "server %s#%d: queries sent %u, retried or failed %u"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:58
|
||||
#: util.c:56
|
||||
#, c-format
|
||||
msgid "failed to seed the random number generator: %s"
|
||||
msgstr ""
|
||||
@@ -82,22 +82,22 @@ msgstr ""
|
||||
# @Simon: I would prefer to use "noch gültige" = "still valid", would that fit to the sense? Then it would be:
|
||||
# @Simon: msgstr "Cache Größe %d, %d/%d Cache-Einfügungen verwendeten noch gültige Cache-Einträge wieder."
|
||||
# @Simon: btw, what is the "%d/%d"-part?
|
||||
#: util.c:166
|
||||
#: util.c:164
|
||||
msgid "could not get memory"
|
||||
msgstr "Speicher nicht verfügbar"
|
||||
|
||||
#: util.c:176
|
||||
#: util.c:174
|
||||
#, c-format
|
||||
msgid "cannot create pipe: %s"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:184
|
||||
#: util.c:182
|
||||
#, c-format
|
||||
msgid "failed to allocate %d bytes"
|
||||
msgstr ""
|
||||
|
||||
# @Simon: not perfect but I cannot get nearer right now.
|
||||
#: util.c:289
|
||||
#: util.c:287
|
||||
#, c-format
|
||||
msgid "infinite"
|
||||
msgstr "unendlich"
|
||||
@@ -494,7 +494,7 @@ msgid "Always perform DNS queries to all servers."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:313
|
||||
msgid "Set tag if client includes option in request."
|
||||
msgid "Set tag if client includes matching option in request."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:314
|
||||
@@ -521,191 +521,199 @@ msgstr ""
|
||||
msgid "Specify alias name for LOCAL DNS name."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:580
|
||||
#: option.c:589
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage: dnsmasq [options]\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:582
|
||||
#: option.c:591
|
||||
#, c-format
|
||||
msgid "Use short options only on the command line.\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:584
|
||||
#: option.c:593
|
||||
#, c-format
|
||||
msgid "Valid options are:\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:624
|
||||
#: option.c:633
|
||||
#, c-format
|
||||
msgid "Known DHCP options:\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:697
|
||||
#: option.c:710
|
||||
msgid "bad dhcp-option"
|
||||
msgstr ""
|
||||
|
||||
# @Simon: Here I need an example to understand it :)
|
||||
#: option.c:753
|
||||
#: option.c:767
|
||||
#, fuzzy
|
||||
msgid "bad IP address"
|
||||
msgstr "lese %s - %d Adressen"
|
||||
|
||||
#: option.c:851
|
||||
#: option.c:865
|
||||
msgid "bad domain in dhcp-option"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:909
|
||||
#: option.c:923
|
||||
msgid "dhcp-option too long"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:938
|
||||
#: option.c:932
|
||||
msgid "illegal dhcp-match"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:967
|
||||
msgid "illegal repeated flag"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:946
|
||||
#: option.c:975
|
||||
msgid "illegal repeated keyword"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:983
|
||||
#: option.c:1012
|
||||
#, c-format
|
||||
msgid "cannot access directory %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1002 tftp.c:348
|
||||
#: option.c:1031 tftp.c:348
|
||||
#, c-format
|
||||
msgid "cannot access %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1040
|
||||
#: option.c:1069
|
||||
msgid "only one dhcp-hostsfile allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1047
|
||||
#: option.c:1076
|
||||
msgid "only one dhcp-optsfile allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1091
|
||||
#: option.c:1120
|
||||
msgid "bad MX preference"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1095
|
||||
#: option.c:1124
|
||||
msgid "bad MX name"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1109
|
||||
#: option.c:1138
|
||||
msgid "bad MX target"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1120
|
||||
#: option.c:1149
|
||||
msgid "cannot run scripts under uClinux"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1352 option.c:1360
|
||||
#: option.c:1375 option.c:1379
|
||||
msgid "bad port"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1380 option.c:1405
|
||||
#: option.c:1398 option.c:1423
|
||||
msgid "interface binding not supported"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1523
|
||||
#: option.c:1541
|
||||
msgid "bad port range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1540
|
||||
#: option.c:1558
|
||||
msgid "bad bridge-interface"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1581
|
||||
#: option.c:1599
|
||||
msgid "bad dhcp-range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1607
|
||||
#: option.c:1625
|
||||
msgid "only one netid tag allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1647
|
||||
#: option.c:1665
|
||||
msgid "inconsistent DHCP range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1819
|
||||
#: option.c:1837
|
||||
msgid "bad DHCP host name"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1998 option.c:2270
|
||||
#: option.c:2012 option.c:2283
|
||||
msgid "invalid port number"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2093
|
||||
#: option.c:2094
|
||||
msgid "invalid alias range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2106
|
||||
msgid "bad interface name"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2116
|
||||
#: option.c:2129
|
||||
msgid "duplicate CNAME"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2133
|
||||
#: option.c:2146
|
||||
msgid "bad PTR record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2163
|
||||
#: option.c:2176
|
||||
msgid "bad NAPTR record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2189
|
||||
#: option.c:2202
|
||||
msgid "TXT record string too long"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2193
|
||||
#: option.c:2206
|
||||
msgid "bad TXT record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2253
|
||||
#: option.c:2266
|
||||
msgid "bad SRV record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2262
|
||||
#: option.c:2275
|
||||
msgid "bad SRV target"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2277
|
||||
#: option.c:2290
|
||||
msgid "invalid priority"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2284
|
||||
#: option.c:2297
|
||||
msgid "invalid weight"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2320
|
||||
#: option.c:2333
|
||||
#, c-format
|
||||
msgid "files nested too deep in %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2328 tftp.c:503
|
||||
#: option.c:2341 tftp.c:503
|
||||
#, c-format
|
||||
msgid "cannot read %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2389
|
||||
#: option.c:2402
|
||||
msgid "missing \""
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2436
|
||||
#: option.c:2449
|
||||
msgid "bad option"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2438
|
||||
#: option.c:2451
|
||||
msgid "extraneous parameter"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2440
|
||||
#: option.c:2453
|
||||
msgid "missing parameter"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2448
|
||||
#: option.c:2461
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
@@ -714,80 +722,80 @@ msgstr ""
|
||||
# @Simon: ("keinen Speicher" = "no memory", "... nicht bekommen" = "... not get")
|
||||
# @Simon: both would be correct - but would sound rather clumsy in german
|
||||
# @Simon: how about "Nicht genügend Speicher verfügbar" = "Not enough memory available" ?
|
||||
#: option.c:2454
|
||||
#: option.c:2467
|
||||
#, c-format
|
||||
msgid "%s at line %d of %%s"
|
||||
msgstr "%s in Zeile %d von %%s"
|
||||
|
||||
#: option.c:2502 option.c:2532
|
||||
#: option.c:2515 option.c:2546
|
||||
#, c-format
|
||||
msgid "read %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2599
|
||||
#: option.c:2613
|
||||
#, c-format
|
||||
msgid "Dnsmasq version %s %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2600
|
||||
#: option.c:2614
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Compile time options %s\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2601
|
||||
#: option.c:2615
|
||||
#, c-format
|
||||
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2602
|
||||
#: option.c:2616
|
||||
#, c-format
|
||||
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2603
|
||||
#: option.c:2617
|
||||
#, c-format
|
||||
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2614
|
||||
#: option.c:2628
|
||||
msgid "try --help"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2616
|
||||
#: option.c:2630
|
||||
msgid "try -w"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2619
|
||||
#: option.c:2633
|
||||
#, c-format
|
||||
msgid "bad command line options: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2660
|
||||
#: option.c:2674
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2688
|
||||
#: option.c:2702
|
||||
msgid "only one resolv.conf file allowed in no-poll mode."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2698
|
||||
#: option.c:2712
|
||||
msgid "must have exactly one resolv.conf to read domain from."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2701 network.c:721
|
||||
#: option.c:2715 network.c:730
|
||||
#, c-format
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2719
|
||||
#: option.c:2733
|
||||
#, c-format
|
||||
msgid "no search directive found in %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2740
|
||||
#: option.c:2754
|
||||
msgid "there must be a default domain when --dhcp-fqdn is set"
|
||||
msgstr ""
|
||||
|
||||
@@ -805,78 +813,78 @@ msgstr ""
|
||||
msgid "unknown interface %s in bridge-interface"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:389 dnsmasq.c:186
|
||||
#: network.c:393 dnsmasq.c:186
|
||||
#, c-format
|
||||
msgid "failed to create listening socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:396
|
||||
#: network.c:400
|
||||
#, c-format
|
||||
msgid "failed to set IPV6 options on listening socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:415
|
||||
#: network.c:426
|
||||
#, c-format
|
||||
msgid "failed to bind listening socket for %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:420
|
||||
#: network.c:431
|
||||
#, c-format
|
||||
msgid "failed to listen on socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:432
|
||||
#: network.c:443
|
||||
#, c-format
|
||||
msgid "failed to create TFTP socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:628
|
||||
#: network.c:637
|
||||
#, c-format
|
||||
msgid "failed to bind server socket for %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:661
|
||||
#: network.c:670
|
||||
#, c-format
|
||||
msgid "ignoring nameserver %s - local interface"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:672
|
||||
#: network.c:681
|
||||
#, c-format
|
||||
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "unqualified"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "names"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:689
|
||||
#: network.c:698
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:691
|
||||
#: network.c:700
|
||||
msgid "domain"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:694
|
||||
#: network.c:703
|
||||
#, c-format
|
||||
msgid "using local addresses only for %s %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:696
|
||||
#: network.c:705
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d for %s %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:699
|
||||
#: network.c:708
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d(via %s)"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:701
|
||||
#: network.c:710
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d"
|
||||
msgstr ""
|
||||
@@ -1063,21 +1071,21 @@ msgstr ""
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:860
|
||||
#: dnsmasq.c:863
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:878
|
||||
#: dnsmasq.c:881
|
||||
#, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:900
|
||||
#: dnsmasq.c:903
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:911
|
||||
#: dnsmasq.c:914
|
||||
#, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr ""
|
||||
@@ -1112,37 +1120,37 @@ msgstr ""
|
||||
msgid "DHCP packet received on %s which has no address"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:382
|
||||
#: dhcp.c:387
|
||||
#, c-format
|
||||
msgid "DHCP range %s -- %s is not consistent with netmask %s"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:719
|
||||
#: dhcp.c:731
|
||||
#, c-format
|
||||
msgid "failed to read %s:%s"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:755
|
||||
#: dhcp.c:767
|
||||
#, c-format
|
||||
msgid "bad line at %s line %d"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:870
|
||||
#: dhcp.c:882
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s in dhcp-config directive."
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:873
|
||||
#: dhcp.c:885
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s in %s."
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:916
|
||||
#: dhcp.c:928
|
||||
#, c-format
|
||||
msgid "%s has more than one address in hostsfile, using %s for DHCP"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:921
|
||||
#: dhcp.c:933
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s (%s) in dhcp-config directive"
|
||||
msgstr ""
|
||||
@@ -1171,160 +1179,160 @@ msgstr ""
|
||||
msgid "failed to write %s: %s (retry in %us)"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:315
|
||||
#: rfc2131.c:316
|
||||
#, c-format
|
||||
msgid "no address range available for DHCP request %s %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "with subnet selector"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "via"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:327
|
||||
#: rfc2131.c:328
|
||||
#, c-format
|
||||
msgid "DHCP packet: transaction-id is %u"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:332
|
||||
#: rfc2131.c:333
|
||||
#, c-format
|
||||
msgid "Available DHCP subnet: %s/%s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:334
|
||||
#: rfc2131.c:335
|
||||
#, c-format
|
||||
msgid "Available DHCP range: %s -- %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:362 rfc2131.c:396
|
||||
#: rfc2131.c:363 rfc2131.c:397
|
||||
msgid "disabled"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:411 rfc2131.c:928
|
||||
#: rfc2131.c:412 rfc2131.c:960
|
||||
msgid "address in use"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:425 rfc2131.c:765
|
||||
#: rfc2131.c:426 rfc2131.c:797
|
||||
msgid "no address available"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:432 rfc2131.c:891
|
||||
#: rfc2131.c:433 rfc2131.c:923
|
||||
msgid "wrong network"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:445
|
||||
#: rfc2131.c:446
|
||||
msgid "no address configured"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:451 rfc2131.c:941
|
||||
#: rfc2131.c:452 rfc2131.c:973
|
||||
msgid "no leases left"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:640
|
||||
#: rfc2131.c:672
|
||||
#, c-format
|
||||
msgid "Vendor class: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:642
|
||||
#: rfc2131.c:674
|
||||
#, c-format
|
||||
msgid "User class: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:683
|
||||
#: rfc2131.c:715
|
||||
#, c-format
|
||||
msgid "disabling DHCP static address %s for %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:704
|
||||
#: rfc2131.c:736
|
||||
msgid "unknown lease"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:713 rfc2131.c:1058
|
||||
#: rfc2131.c:745 rfc2131.c:1089
|
||||
msgid "ignored"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:736
|
||||
#: rfc2131.c:768
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is leased to %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:746
|
||||
#: rfc2131.c:778
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is in use by the server or relay"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:749
|
||||
#: rfc2131.c:781
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it was previously declined"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:763 rfc2131.c:934
|
||||
#: rfc2131.c:795 rfc2131.c:966
|
||||
msgid "no unique-id"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:831
|
||||
#: rfc2131.c:863
|
||||
msgid "wrong server-ID"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:850
|
||||
#: rfc2131.c:882
|
||||
msgid "wrong address"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:867
|
||||
#: rfc2131.c:899
|
||||
msgid "lease not found"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:899
|
||||
#: rfc2131.c:931
|
||||
msgid "address not available"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:910
|
||||
#: rfc2131.c:942
|
||||
msgid "static lease available"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:914
|
||||
#: rfc2131.c:946
|
||||
msgid "address reserved"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:922
|
||||
#: rfc2131.c:954
|
||||
#, c-format
|
||||
msgid "abandoning lease to %s of %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1356
|
||||
#: rfc2131.c:1391
|
||||
#, c-format
|
||||
msgid "tags: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1443
|
||||
#: rfc2131.c:1478
|
||||
#, c-format
|
||||
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1599
|
||||
#: rfc2131.c:1678
|
||||
#, c-format
|
||||
msgid "Ignoring domain %s for DHCP host name %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1617
|
||||
#: rfc2131.c:1696
|
||||
#, c-format
|
||||
msgid "requested options: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1666
|
||||
#: rfc2131.c:1746
|
||||
#, c-format
|
||||
msgid "next server: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1690
|
||||
#: rfc2131.c:1770
|
||||
#, c-format
|
||||
msgid "bootfile name: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1693
|
||||
#: rfc2131.c:1773
|
||||
#, c-format
|
||||
msgid "server name: %s"
|
||||
msgstr ""
|
||||
@@ -1339,24 +1347,24 @@ msgstr ""
|
||||
msgid "netlink returns error: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dbus.c:115
|
||||
#: dbus.c:151
|
||||
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
|
||||
msgstr ""
|
||||
|
||||
#: dbus.c:243
|
||||
#: dbus.c:287
|
||||
msgid "setting upstream servers from DBus"
|
||||
msgstr ""
|
||||
|
||||
#: dbus.c:281
|
||||
#: dbus.c:325
|
||||
msgid "could not register a DBus message handler"
|
||||
msgstr ""
|
||||
|
||||
#: bpf.c:146
|
||||
#: bpf.c:150
|
||||
#, c-format
|
||||
msgid "cannot create DHCP BPF socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: bpf.c:174
|
||||
#: bpf.c:178
|
||||
#, c-format
|
||||
msgid "DHCP request for unsupported hardware type (%d) received on %s"
|
||||
msgstr ""
|
||||
|
||||
284
po/es.po
284
po/es.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dnsmasq 2.24\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-11-13 20:23+0000\n"
|
||||
"POT-Creation-Date: 2009-02-02 14:07+0000\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: %s"
|
||||
msgstr "no se pudo cargar nombres desde %s: %s"
|
||||
|
||||
#: cache.c:795 dhcp.c:768
|
||||
#: cache.c:795 dhcp.c:780
|
||||
#, fuzzy, c-format
|
||||
msgid "bad address at %s line %d"
|
||||
msgstr "direcci<63>n err<72>nea en %s l<>nea %d"
|
||||
|
||||
#: cache.c:850 dhcp.c:782
|
||||
#: cache.c:850 dhcp.c:794
|
||||
#, c-format
|
||||
msgid "bad name at %s line %d"
|
||||
msgstr "nombre err<72>neo en %s l<>nea %d"
|
||||
|
||||
#: cache.c:857 dhcp.c:848
|
||||
#: cache.c:857 dhcp.c:860
|
||||
#, c-format
|
||||
msgid "read %s - %d addresses"
|
||||
msgstr "direcci<63>nes %s - %d le<6C>das"
|
||||
@@ -64,26 +64,26 @@ msgstr "b
|
||||
msgid "server %s#%d: queries sent %u, retried or failed %u"
|
||||
msgstr "servidor %s#%d: b<>squedas enviadas %u, reintentadas o fallidas %u"
|
||||
|
||||
#: util.c:58
|
||||
#: util.c:56
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to seed the random number generator: %s"
|
||||
msgstr "no se pudo crear valor semilla para el generador de n<>meros aleatorios: %s"
|
||||
|
||||
#: util.c:166
|
||||
#: util.c:164
|
||||
msgid "could not get memory"
|
||||
msgstr "no se pudo adquirir memoria"
|
||||
|
||||
#: util.c:176
|
||||
#: util.c:174
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot create pipe: %s"
|
||||
msgstr "no se puede crear pipe: %s"
|
||||
|
||||
#: util.c:184
|
||||
#: util.c:182
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to allocate %d bytes"
|
||||
msgstr "no se pudo alocar %d bytes"
|
||||
|
||||
#: util.c:289
|
||||
#: util.c:287
|
||||
#, c-format
|
||||
msgid "infinite"
|
||||
msgstr "infinito"
|
||||
@@ -469,7 +469,8 @@ msgid "Always perform DNS queries to all servers."
|
||||
msgstr "Siempre realizar b<>squedas DNS a todos los servidores."
|
||||
|
||||
#: option.c:313
|
||||
msgid "Set tag if client includes option in request."
|
||||
#, fuzzy
|
||||
msgid "Set tag if client includes matching option in request."
|
||||
msgstr "Fijar etiqueta si cliente incluye opci<63>n en pedido."
|
||||
|
||||
#: option.c:314
|
||||
@@ -497,7 +498,7 @@ msgstr "Usar solo nombres de dominio completamente calificados para clientes DHC
|
||||
msgid "Specify alias name for LOCAL DNS name."
|
||||
msgstr "Especificar nombre alias para nombre DNS LOCAL."
|
||||
|
||||
#: option.c:580
|
||||
#: option.c:589
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage: dnsmasq [options]\n"
|
||||
@@ -506,209 +507,218 @@ msgstr ""
|
||||
"Modo de uso: dnsmasq [opciones]\n"
|
||||
"\n"
|
||||
|
||||
#: option.c:582
|
||||
#: option.c:591
|
||||
#, 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:584
|
||||
#: option.c:593
|
||||
#, fuzzy, c-format
|
||||
msgid "Valid options are:\n"
|
||||
msgstr "Opciones v<>lidas son :\n"
|
||||
|
||||
#: option.c:624
|
||||
#: option.c:633
|
||||
#, c-format
|
||||
msgid "Known DHCP options:\n"
|
||||
msgstr "Opciones DHCP conocidas:\n"
|
||||
|
||||
#: option.c:697
|
||||
#: option.c:710
|
||||
msgid "bad dhcp-option"
|
||||
msgstr "opci<63>n dhcp-option err<72>nea"
|
||||
|
||||
#: option.c:753
|
||||
#: option.c:767
|
||||
#, fuzzy
|
||||
msgid "bad IP address"
|
||||
msgstr "direcci<63>n IP err<72>nea"
|
||||
|
||||
#: option.c:851
|
||||
#: option.c:865
|
||||
msgid "bad domain in dhcp-option"
|
||||
msgstr "dominio err<72>neo en dhcp-option"
|
||||
|
||||
#: option.c:909
|
||||
#: option.c:923
|
||||
msgid "dhcp-option too long"
|
||||
msgstr "opci<63>n dhcp-option demasiado larga"
|
||||
|
||||
#: option.c:938
|
||||
#: option.c:932
|
||||
msgid "illegal dhcp-match"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:967
|
||||
msgid "illegal repeated flag"
|
||||
msgstr "opci<63>n repetida ilegal"
|
||||
|
||||
#: option.c:946
|
||||
#: option.c:975
|
||||
msgid "illegal repeated keyword"
|
||||
msgstr "palabra clave repetida ilegal"
|
||||
|
||||
#: option.c:983
|
||||
#: option.c:1012
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot access directory %s: %s"
|
||||
msgstr "no se puede accesar directorio %s: %s"
|
||||
|
||||
#: option.c:1002 tftp.c:348
|
||||
#: option.c:1031 tftp.c:348
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot access %s: %s"
|
||||
msgstr "no se puede accesar %s: %s"
|
||||
|
||||
#: option.c:1040
|
||||
#: option.c:1069
|
||||
#, fuzzy
|
||||
msgid "only one dhcp-hostsfile allowed"
|
||||
msgstr "solo un dhcp-hostsfile permitido"
|
||||
|
||||
#: option.c:1047
|
||||
#: option.c:1076
|
||||
#, fuzzy
|
||||
msgid "only one dhcp-optsfile allowed"
|
||||
msgstr "solo un dhcp-optsfile permitido"
|
||||
|
||||
#: option.c:1091
|
||||
#: option.c:1120
|
||||
msgid "bad MX preference"
|
||||
msgstr "preferencia MX err<72>nea"
|
||||
|
||||
#: option.c:1095
|
||||
#: option.c:1124
|
||||
msgid "bad MX name"
|
||||
msgstr "nombre MX err<72>neo"
|
||||
|
||||
#: option.c:1109
|
||||
#: option.c:1138
|
||||
msgid "bad MX target"
|
||||
msgstr "destino MX err<72>neo"
|
||||
|
||||
#: option.c:1120
|
||||
#: option.c:1149
|
||||
msgid "cannot run scripts under uClinux"
|
||||
msgstr "no se pueden correr archivos gui<75>nes bajo uClinux"
|
||||
|
||||
#: option.c:1352 option.c:1360
|
||||
#: option.c:1375 option.c:1379
|
||||
msgid "bad port"
|
||||
msgstr "puerto err<72>neo"
|
||||
|
||||
#: option.c:1380 option.c:1405
|
||||
#: option.c:1398 option.c:1423
|
||||
msgid "interface binding not supported"
|
||||
msgstr "vinculaci<63>n de interface no est<73> soportado"
|
||||
|
||||
#: option.c:1523
|
||||
#: option.c:1541
|
||||
#, fuzzy
|
||||
msgid "bad port range"
|
||||
msgstr "rango de puertos err<72>neo"
|
||||
|
||||
#: option.c:1540
|
||||
#: option.c:1558
|
||||
msgid "bad bridge-interface"
|
||||
msgstr "opci<63>n bridge-interface (interface puente) err<72>nea"
|
||||
|
||||
#: option.c:1581
|
||||
#: option.c:1599
|
||||
msgid "bad dhcp-range"
|
||||
msgstr "opci<63>n dhcp-range (rango DHCP) err<72>nea"
|
||||
|
||||
#: option.c:1607
|
||||
#: option.c:1625
|
||||
msgid "only one netid tag allowed"
|
||||
msgstr "solo una etiqueta netid permitida"
|
||||
|
||||
#: option.c:1647
|
||||
#: option.c:1665
|
||||
msgid "inconsistent DHCP range"
|
||||
msgstr "rango DHCP inconsistente"
|
||||
|
||||
#: option.c:1819
|
||||
#: option.c:1837
|
||||
#, fuzzy
|
||||
msgid "bad DHCP host name"
|
||||
msgstr "nombre de host DHCP err<72>neo"
|
||||
|
||||
#: option.c:1998 option.c:2270
|
||||
#: option.c:2012 option.c:2283
|
||||
msgid "invalid port number"
|
||||
msgstr "n<>mero de puerto inv<6E>lido"
|
||||
|
||||
#: option.c:2093
|
||||
#: option.c:2094
|
||||
#, fuzzy
|
||||
msgid "invalid alias range"
|
||||
msgstr "peso inv<6E>lido"
|
||||
|
||||
#: option.c:2106
|
||||
#, fuzzy
|
||||
msgid "bad interface name"
|
||||
msgstr "nombre de interface err<72>neo"
|
||||
|
||||
#: option.c:2116
|
||||
#: option.c:2129
|
||||
msgid "duplicate CNAME"
|
||||
msgstr "CNAME duplicado"
|
||||
|
||||
#: option.c:2133
|
||||
#: option.c:2146
|
||||
#, fuzzy
|
||||
msgid "bad PTR record"
|
||||
msgstr "expediente PTR err<72>neo"
|
||||
|
||||
#: option.c:2163
|
||||
#: option.c:2176
|
||||
#, fuzzy
|
||||
msgid "bad NAPTR record"
|
||||
msgstr "expediente NAPTR err<72>neo"
|
||||
|
||||
#: option.c:2189
|
||||
#: option.c:2202
|
||||
msgid "TXT record string too long"
|
||||
msgstr "expediente TXT demasiado largo"
|
||||
|
||||
#: option.c:2193
|
||||
#: option.c:2206
|
||||
msgid "bad TXT record"
|
||||
msgstr "expediente TXT err<72>neo"
|
||||
|
||||
#: option.c:2253
|
||||
#: option.c:2266
|
||||
msgid "bad SRV record"
|
||||
msgstr "expediente SRV err<72>neo"
|
||||
|
||||
#: option.c:2262
|
||||
#: option.c:2275
|
||||
msgid "bad SRV target"
|
||||
msgstr "destino SRV err<72>neo"
|
||||
|
||||
#: option.c:2277
|
||||
#: option.c:2290
|
||||
msgid "invalid priority"
|
||||
msgstr "prioridad inv<6E>lida"
|
||||
|
||||
#: option.c:2284
|
||||
#: option.c:2297
|
||||
msgid "invalid weight"
|
||||
msgstr "peso inv<6E>lido"
|
||||
|
||||
#: option.c:2320
|
||||
#: option.c:2333
|
||||
#, c-format
|
||||
msgid "files nested too deep in %s"
|
||||
msgstr "archivos jerarquizados demasiado profundo en %s"
|
||||
|
||||
#: option.c:2328 tftp.c:503
|
||||
#: option.c:2341 tftp.c:503
|
||||
#, c-format
|
||||
msgid "cannot read %s: %s"
|
||||
msgstr "no se puede leer %s: %s"
|
||||
|
||||
#: option.c:2389
|
||||
#: option.c:2402
|
||||
msgid "missing \""
|
||||
msgstr "falta \""
|
||||
|
||||
#: option.c:2436
|
||||
#: option.c:2449
|
||||
msgid "bad option"
|
||||
msgstr "opci<63>n err<72>nea"
|
||||
|
||||
#: option.c:2438
|
||||
#: option.c:2451
|
||||
msgid "extraneous parameter"
|
||||
msgstr "par<61>metro extra<72>o"
|
||||
|
||||
#: option.c:2440
|
||||
#: option.c:2453
|
||||
msgid "missing parameter"
|
||||
msgstr "par<61>metro ausente"
|
||||
|
||||
#: option.c:2448
|
||||
#: option.c:2461
|
||||
msgid "error"
|
||||
msgstr "error"
|
||||
|
||||
#: option.c:2454
|
||||
#: option.c:2467
|
||||
#, c-format
|
||||
msgid "%s at line %d of %%s"
|
||||
msgstr "%s en l<>nea %d de %%s"
|
||||
|
||||
#: option.c:2502 option.c:2532
|
||||
#: option.c:2515 option.c:2546
|
||||
#, fuzzy, c-format
|
||||
msgid "read %s"
|
||||
msgstr "leyendo %s"
|
||||
|
||||
#: option.c:2599
|
||||
#: option.c:2613
|
||||
#, c-format
|
||||
msgid "Dnsmasq version %s %s\n"
|
||||
msgstr "Dnsmasq versi<73>n %s %s\n"
|
||||
|
||||
#: option.c:2600
|
||||
#: option.c:2614
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Compile time options %s\n"
|
||||
@@ -717,58 +727,58 @@ msgstr ""
|
||||
"Opciones de compilaci<63>n %s\n"
|
||||
"\n"
|
||||
|
||||
#: option.c:2601
|
||||
#: option.c:2615
|
||||
#, c-format
|
||||
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
msgstr "Este software viene SIN NINGUNA GARANTIA.\n"
|
||||
|
||||
#: option.c:2602
|
||||
#: option.c:2616
|
||||
#, c-format
|
||||
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
|
||||
msgstr "Dnsmasq es software libre, y usted est<73> bienvenido a redistribuirlo\n"
|
||||
|
||||
#: option.c:2603
|
||||
#: option.c:2617
|
||||
#, fuzzy, c-format
|
||||
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
|
||||
msgstr "bajo los t<>rminos de la GNU General Public License, versi<73>n 2 o 3.\n"
|
||||
|
||||
#: option.c:2614
|
||||
#: option.c:2628
|
||||
msgid "try --help"
|
||||
msgstr "pruebe --help"
|
||||
|
||||
#: option.c:2616
|
||||
#: option.c:2630
|
||||
msgid "try -w"
|
||||
msgstr "pruebe -w"
|
||||
|
||||
#: option.c:2619
|
||||
#: option.c:2633
|
||||
#, fuzzy, c-format
|
||||
msgid "bad command line options: %s"
|
||||
msgstr "opciones de l<>nea de comandos err<72>neas: %s"
|
||||
|
||||
#: option.c:2660
|
||||
#: option.c:2674
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %s"
|
||||
msgstr "no se puede obtener host-name (nombre de host): %s"
|
||||
|
||||
#: option.c:2688
|
||||
#: option.c:2702
|
||||
msgid "only one resolv.conf file allowed in no-poll mode."
|
||||
msgstr "solo un archivo resolv.conf permitido en modo no-poll."
|
||||
|
||||
#: option.c:2698
|
||||
#: option.c:2712
|
||||
msgid "must have exactly one resolv.conf to read domain from."
|
||||
msgstr "debe haber ex<65>ctamente un resolv.conf desde donde leer dominio."
|
||||
|
||||
#: option.c:2701 network.c:721
|
||||
#: option.c:2715 network.c:730
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr "no se pudo leer %s: %s"
|
||||
|
||||
#: option.c:2719
|
||||
#: option.c:2733
|
||||
#, c-format
|
||||
msgid "no search directive found in %s"
|
||||
msgstr "ninguna directiva de b<>squeda encontrada en %s"
|
||||
|
||||
#: option.c:2740
|
||||
#: option.c:2754
|
||||
msgid "there must be a default domain when --dhcp-fqdn is set"
|
||||
msgstr "debe haber un dominio predeterminado cuando --dhcp-fqdn est<73> fijado"
|
||||
|
||||
@@ -786,78 +796,78 @@ msgstr "posible ataque de revinculaci
|
||||
msgid "unknown interface %s in bridge-interface"
|
||||
msgstr "interface desconocida %s en bridge-interface"
|
||||
|
||||
#: network.c:389 dnsmasq.c:186
|
||||
#: network.c:393 dnsmasq.c:186
|
||||
#, c-format
|
||||
msgid "failed to create listening socket: %s"
|
||||
msgstr "no se pudo crear un socket escuchador: %s"
|
||||
|
||||
#: network.c:396
|
||||
#: network.c:400
|
||||
#, c-format
|
||||
msgid "failed to set IPV6 options on listening socket: %s"
|
||||
msgstr "no se pudo fijar opciones IPv6 sobre socket escuchador: %s"
|
||||
|
||||
#: network.c:415
|
||||
#: network.c:426
|
||||
#, c-format
|
||||
msgid "failed to bind listening socket for %s: %s"
|
||||
msgstr "no se pudo acoplar socket escuchador para %s: %s"
|
||||
|
||||
#: network.c:420
|
||||
#: network.c:431
|
||||
#, c-format
|
||||
msgid "failed to listen on socket: %s"
|
||||
msgstr "no se pudo escuchar en socket: %s"
|
||||
|
||||
#: network.c:432
|
||||
#: network.c:443
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to create TFTP socket: %s"
|
||||
msgstr "no se pudo crear socket TFTP: %s"
|
||||
|
||||
#: network.c:628
|
||||
#: network.c:637
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to bind server socket for %s: %s"
|
||||
msgstr "no se pudo acoplar socket escuchador para %s: %s"
|
||||
|
||||
#: network.c:661
|
||||
#: network.c:670
|
||||
#, c-format
|
||||
msgid "ignoring nameserver %s - local interface"
|
||||
msgstr "ignorando servidor DNS %s - interface local"
|
||||
|
||||
#: network.c:672
|
||||
#: network.c:681
|
||||
#, fuzzy, c-format
|
||||
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
|
||||
msgstr "ignorando servidor DNS %s - no se puede crear/acoplar socket: %s"
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "unqualified"
|
||||
msgstr "no calificado"
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "names"
|
||||
msgstr "nombres"
|
||||
|
||||
#: network.c:689
|
||||
#: network.c:698
|
||||
msgid "default"
|
||||
msgstr "predeterminado"
|
||||
|
||||
#: network.c:691
|
||||
#: network.c:700
|
||||
msgid "domain"
|
||||
msgstr "dominio"
|
||||
|
||||
#: network.c:694
|
||||
#: network.c:703
|
||||
#, c-format
|
||||
msgid "using local addresses only for %s %s"
|
||||
msgstr "usando direcciones locales solo para %s %s"
|
||||
|
||||
#: network.c:696
|
||||
#: network.c:705
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d for %s %s"
|
||||
msgstr "usando servidor DNS %s#%d para %s %s"
|
||||
|
||||
#: network.c:699
|
||||
#: network.c:708
|
||||
#, fuzzy, c-format
|
||||
msgid "using nameserver %s#%d(via %s)"
|
||||
msgstr "usando servidor DNS %s#%d(v<>a %s)"
|
||||
|
||||
#: network.c:701
|
||||
#: network.c:710
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d"
|
||||
msgstr "usando servidor DNS %s#%d"
|
||||
@@ -1048,21 +1058,21 @@ msgstr "proceso hijo hizo exit con estado %d"
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr "no se pudo ejecutar %s: %s"
|
||||
|
||||
#: dnsmasq.c:860
|
||||
#: dnsmasq.c:863
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr "saliendo al recibir SIGTERM"
|
||||
|
||||
#: dnsmasq.c:878
|
||||
#: dnsmasq.c:881
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr "no se pudo accesar %s: %s"
|
||||
|
||||
#: dnsmasq.c:900
|
||||
#: dnsmasq.c:903
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr "leyendo %s"
|
||||
|
||||
#: dnsmasq.c:911
|
||||
#: dnsmasq.c:914
|
||||
#, fuzzy, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr "ning<6E>n servidor encontrado en %s, se reintentar<61>"
|
||||
@@ -1097,37 +1107,37 @@ msgstr "no se puede crear socket crudo ICMP: %s."
|
||||
msgid "DHCP packet received on %s which has no address"
|
||||
msgstr "Paquete DHCP recibido en %s sin direcci<63>n"
|
||||
|
||||
#: dhcp.c:382
|
||||
#: dhcp.c:387
|
||||
#, c-format
|
||||
msgid "DHCP range %s -- %s is not consistent with netmask %s"
|
||||
msgstr "rango DHCP %s -- %s no coincide con m<>scara de subred %s"
|
||||
|
||||
#: dhcp.c:719
|
||||
#: dhcp.c:731
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to read %s:%s"
|
||||
msgstr "no se pudo leer %s:%s"
|
||||
|
||||
#: dhcp.c:755
|
||||
#: dhcp.c:767
|
||||
#, fuzzy, c-format
|
||||
msgid "bad line at %s line %d"
|
||||
msgstr "l<>nea err<72>nea en %s l<>nea %d"
|
||||
|
||||
#: dhcp.c:870
|
||||
#: dhcp.c:882
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s in dhcp-config directive."
|
||||
msgstr "direcci<63>n IP duplicada %s en directiva dhcp-config."
|
||||
|
||||
#: dhcp.c:873
|
||||
#: dhcp.c:885
|
||||
#, fuzzy, c-format
|
||||
msgid "duplicate IP address %s in %s."
|
||||
msgstr "direcci<63>n IP duplicada %s en %s."
|
||||
|
||||
#: dhcp.c:916
|
||||
#: dhcp.c:928
|
||||
#, c-format
|
||||
msgid "%s has more than one address in hostsfile, using %s for DHCP"
|
||||
msgstr "%s tiene m<>s de una direcci<63>n en hostsfile, usando %s para DHCP"
|
||||
|
||||
#: dhcp.c:921
|
||||
#: dhcp.c:933
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s (%s) in dhcp-config directive"
|
||||
msgstr "direcci<63>n IP duplicada %s (%s) en directiva dhcp-config"
|
||||
@@ -1156,160 +1166,160 @@ msgstr "archivo gui
|
||||
msgid "failed to write %s: %s (retry in %us)"
|
||||
msgstr "error al escribir %s: %s (reintentar en %us)"
|
||||
|
||||
#: rfc2131.c:315
|
||||
#: rfc2131.c:316
|
||||
#, c-format
|
||||
msgid "no address range available for DHCP request %s %s"
|
||||
msgstr "ning<6E>n rango de direcci<63>nes disponible para pedido DHCP %s %s"
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "with subnet selector"
|
||||
msgstr "con selector de subred"
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "via"
|
||||
msgstr "v<>a"
|
||||
|
||||
#: rfc2131.c:327
|
||||
#: rfc2131.c:328
|
||||
#, c-format
|
||||
msgid "DHCP packet: transaction-id is %u"
|
||||
msgstr "paquete DHCP: transaction-id (identificaci<63>n de transacci<63>n) es %u"
|
||||
|
||||
#: rfc2131.c:332
|
||||
#: rfc2131.c:333
|
||||
#, c-format
|
||||
msgid "Available DHCP subnet: %s/%s"
|
||||
msgstr "Subred DHCP disponible: %s/%s"
|
||||
|
||||
#: rfc2131.c:334
|
||||
#: rfc2131.c:335
|
||||
#, c-format
|
||||
msgid "Available DHCP range: %s -- %s"
|
||||
msgstr "Rango DHCP disponible: %s -- %s"
|
||||
|
||||
#: rfc2131.c:362 rfc2131.c:396
|
||||
#: rfc2131.c:363 rfc2131.c:397
|
||||
msgid "disabled"
|
||||
msgstr "deshabilitado"
|
||||
|
||||
#: rfc2131.c:411 rfc2131.c:928
|
||||
#: rfc2131.c:412 rfc2131.c:960
|
||||
msgid "address in use"
|
||||
msgstr "direcci<63>n en uso"
|
||||
|
||||
#: rfc2131.c:425 rfc2131.c:765
|
||||
#: rfc2131.c:426 rfc2131.c:797
|
||||
msgid "no address available"
|
||||
msgstr "ninguna direcci<63>n disponible"
|
||||
|
||||
#: rfc2131.c:432 rfc2131.c:891
|
||||
#: rfc2131.c:433 rfc2131.c:923
|
||||
msgid "wrong network"
|
||||
msgstr "red equivocada"
|
||||
|
||||
#: rfc2131.c:445
|
||||
#: rfc2131.c:446
|
||||
msgid "no address configured"
|
||||
msgstr "ninguna direcci<63>n configurada"
|
||||
|
||||
#: rfc2131.c:451 rfc2131.c:941
|
||||
#: rfc2131.c:452 rfc2131.c:973
|
||||
msgid "no leases left"
|
||||
msgstr "no sobra ning<6E>n arriendo"
|
||||
|
||||
#: rfc2131.c:640
|
||||
#: rfc2131.c:672
|
||||
#, c-format
|
||||
msgid "Vendor class: %s"
|
||||
msgstr "Clase de vendedor: %s"
|
||||
|
||||
#: rfc2131.c:642
|
||||
#: rfc2131.c:674
|
||||
#, c-format
|
||||
msgid "User class: %s"
|
||||
msgstr "Clase de usuario: %s"
|
||||
|
||||
#: rfc2131.c:683
|
||||
#: rfc2131.c:715
|
||||
#, fuzzy, c-format
|
||||
msgid "disabling DHCP static address %s for %s"
|
||||
msgstr "deshabilitando direcci<63>n DHCP est<73>tica %s para %s"
|
||||
|
||||
#: rfc2131.c:704
|
||||
#: rfc2131.c:736
|
||||
msgid "unknown lease"
|
||||
msgstr "arriendo desconocido"
|
||||
|
||||
#: rfc2131.c:713 rfc2131.c:1058
|
||||
#: rfc2131.c:745 rfc2131.c:1089
|
||||
msgid "ignored"
|
||||
msgstr "ignorado"
|
||||
|
||||
#: rfc2131.c:736
|
||||
#: rfc2131.c:768
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is leased to %s"
|
||||
msgstr "no usando direcci<63>n configurada %s porque est<73> arrendada a %s"
|
||||
|
||||
#: rfc2131.c:746
|
||||
#: rfc2131.c:778
|
||||
#, fuzzy, c-format
|
||||
msgid "not using configured address %s because it is in use by the server or relay"
|
||||
msgstr "no usando direcci<63>n configurada %s porque est<73> en uso por el servidor o relay"
|
||||
|
||||
#: rfc2131.c:749
|
||||
#: rfc2131.c:781
|
||||
#, fuzzy, c-format
|
||||
msgid "not using configured address %s because it was previously declined"
|
||||
msgstr "no usando direcci<63>n configurada %s porque fu<66> previamente denegada"
|
||||
|
||||
#: rfc2131.c:763 rfc2131.c:934
|
||||
#: rfc2131.c:795 rfc2131.c:966
|
||||
msgid "no unique-id"
|
||||
msgstr "ning<6E>n unique-id (identificaci<63>n <20>nica)"
|
||||
|
||||
#: rfc2131.c:831
|
||||
#: rfc2131.c:863
|
||||
msgid "wrong server-ID"
|
||||
msgstr "ID de servidor equivocada"
|
||||
|
||||
#: rfc2131.c:850
|
||||
#: rfc2131.c:882
|
||||
msgid "wrong address"
|
||||
msgstr "direcci<63>n equivocada"
|
||||
|
||||
#: rfc2131.c:867
|
||||
#: rfc2131.c:899
|
||||
msgid "lease not found"
|
||||
msgstr "arriendo no encontrado"
|
||||
|
||||
#: rfc2131.c:899
|
||||
#: rfc2131.c:931
|
||||
msgid "address not available"
|
||||
msgstr "direcci<63>n no disponible"
|
||||
|
||||
#: rfc2131.c:910
|
||||
#: rfc2131.c:942
|
||||
msgid "static lease available"
|
||||
msgstr "arriendo est<73>tico disponible"
|
||||
|
||||
#: rfc2131.c:914
|
||||
#: rfc2131.c:946
|
||||
msgid "address reserved"
|
||||
msgstr "direcci<63>n reservada"
|
||||
|
||||
#: rfc2131.c:922
|
||||
#: rfc2131.c:954
|
||||
#, c-format
|
||||
msgid "abandoning lease to %s of %s"
|
||||
msgstr "abandonando arriendo a %s de %s"
|
||||
|
||||
#: rfc2131.c:1356
|
||||
#: rfc2131.c:1391
|
||||
#, c-format
|
||||
msgid "tags: %s"
|
||||
msgstr "etiquetas: %s"
|
||||
|
||||
#: rfc2131.c:1443
|
||||
#: rfc2131.c:1478
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
|
||||
msgstr "no se puede enviar opci<63>n DHCP/BOOTP %d: no queda espacio en paquete"
|
||||
|
||||
#: rfc2131.c:1599
|
||||
#: rfc2131.c:1678
|
||||
#, c-format
|
||||
msgid "Ignoring domain %s for DHCP host name %s"
|
||||
msgstr "Ignorando dominio %s para nombre de host DHCP %s"
|
||||
|
||||
#: rfc2131.c:1617
|
||||
#: rfc2131.c:1696
|
||||
#, fuzzy, c-format
|
||||
msgid "requested options: %s"
|
||||
msgstr "opciones solicitadas: %s"
|
||||
|
||||
#: rfc2131.c:1666
|
||||
#: rfc2131.c:1746
|
||||
#, fuzzy, c-format
|
||||
msgid "next server: %s"
|
||||
msgstr "siguiente servidor: %s"
|
||||
|
||||
#: rfc2131.c:1690
|
||||
#: rfc2131.c:1770
|
||||
#, c-format
|
||||
msgid "bootfile name: %s"
|
||||
msgstr "nombre de bootfile: %s"
|
||||
|
||||
#: rfc2131.c:1693
|
||||
#: rfc2131.c:1773
|
||||
#, c-format
|
||||
msgid "server name: %s"
|
||||
msgstr "nombre de servidor: %s"
|
||||
@@ -1324,24 +1334,24 @@ msgstr "no se puede crear socket netlink: %s"
|
||||
msgid "netlink returns error: %s"
|
||||
msgstr "netlink retorna error: %s"
|
||||
|
||||
#: dbus.c:115
|
||||
#: dbus.c:151
|
||||
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
|
||||
msgstr "intento de fijar direcci<63>n de servidor IPv6 v<>a DBus - no hay soporte IPv6"
|
||||
|
||||
#: dbus.c:243
|
||||
#: dbus.c:287
|
||||
msgid "setting upstream servers from DBus"
|
||||
msgstr "fijando servidores upstream desde DBus"
|
||||
|
||||
#: dbus.c:281
|
||||
#: dbus.c:325
|
||||
msgid "could not register a DBus message handler"
|
||||
msgstr "no se pudo registrar un manejador de mensajes DBus"
|
||||
|
||||
#: bpf.c:146
|
||||
#: bpf.c:150
|
||||
#, c-format
|
||||
msgid "cannot create DHCP BPF socket: %s"
|
||||
msgstr "no se puede crear socket BPF DHCP: %s"
|
||||
|
||||
#: bpf.c:174
|
||||
#: bpf.c:178
|
||||
#, fuzzy, c-format
|
||||
msgid "DHCP request for unsupported hardware type (%d) received on %s"
|
||||
msgstr "pedido DHCP por tipo de hardware no-soportado (%d) recibido en %s"
|
||||
|
||||
282
po/fi.po
282
po/fi.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dnsmasq 2.24\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-11-13 20:23+0000\n"
|
||||
"POT-Creation-Date: 2009-02-02 14:07+0000\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: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cache.c:795 dhcp.c:768
|
||||
#: cache.c:795 dhcp.c:780
|
||||
#, c-format
|
||||
msgid "bad address at %s line %d"
|
||||
msgstr ""
|
||||
|
||||
#: cache.c:850 dhcp.c:782
|
||||
#: cache.c:850 dhcp.c:794
|
||||
#, c-format
|
||||
msgid "bad name at %s line %d"
|
||||
msgstr ""
|
||||
|
||||
#: cache.c:857 dhcp.c:848
|
||||
#: cache.c:857 dhcp.c:860
|
||||
#, c-format
|
||||
msgid "read %s - %d addresses"
|
||||
msgstr ""
|
||||
@@ -64,26 +64,26 @@ msgstr ""
|
||||
msgid "server %s#%d: queries sent %u, retried or failed %u"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:58
|
||||
#: util.c:56
|
||||
#, c-format
|
||||
msgid "failed to seed the random number generator: %s"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:166
|
||||
#: util.c:164
|
||||
msgid "could not get memory"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:176
|
||||
#: util.c:174
|
||||
#, c-format
|
||||
msgid "cannot create pipe: %s"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:184
|
||||
#: util.c:182
|
||||
#, c-format
|
||||
msgid "failed to allocate %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:289
|
||||
#: util.c:287
|
||||
#, c-format
|
||||
msgid "infinite"
|
||||
msgstr ""
|
||||
@@ -458,7 +458,7 @@ msgid "Always perform DNS queries to all servers."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:313
|
||||
msgid "Set tag if client includes option in request."
|
||||
msgid "Set tag if client includes matching option in request."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:314
|
||||
@@ -485,266 +485,274 @@ msgstr ""
|
||||
msgid "Specify alias name for LOCAL DNS name."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:580
|
||||
#: option.c:589
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage: dnsmasq [options]\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:582
|
||||
#: option.c:591
|
||||
#, c-format
|
||||
msgid "Use short options only on the command line.\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:584
|
||||
#: option.c:593
|
||||
#, c-format
|
||||
msgid "Valid options are:\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:624
|
||||
#: option.c:633
|
||||
#, c-format
|
||||
msgid "Known DHCP options:\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:697
|
||||
#: option.c:710
|
||||
msgid "bad dhcp-option"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:753
|
||||
#: option.c:767
|
||||
msgid "bad IP address"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:851
|
||||
#: option.c:865
|
||||
msgid "bad domain in dhcp-option"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:909
|
||||
#: option.c:923
|
||||
msgid "dhcp-option too long"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:938
|
||||
#: option.c:932
|
||||
msgid "illegal dhcp-match"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:967
|
||||
msgid "illegal repeated flag"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:946
|
||||
#: option.c:975
|
||||
msgid "illegal repeated keyword"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:983
|
||||
#: option.c:1012
|
||||
#, c-format
|
||||
msgid "cannot access directory %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1002 tftp.c:348
|
||||
#: option.c:1031 tftp.c:348
|
||||
#, c-format
|
||||
msgid "cannot access %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1040
|
||||
#: option.c:1069
|
||||
msgid "only one dhcp-hostsfile allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1047
|
||||
#: option.c:1076
|
||||
msgid "only one dhcp-optsfile allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1091
|
||||
#: option.c:1120
|
||||
msgid "bad MX preference"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1095
|
||||
#: option.c:1124
|
||||
msgid "bad MX name"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1109
|
||||
#: option.c:1138
|
||||
msgid "bad MX target"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1120
|
||||
#: option.c:1149
|
||||
msgid "cannot run scripts under uClinux"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1352 option.c:1360
|
||||
#: option.c:1375 option.c:1379
|
||||
msgid "bad port"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1380 option.c:1405
|
||||
#: option.c:1398 option.c:1423
|
||||
msgid "interface binding not supported"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1523
|
||||
#: option.c:1541
|
||||
msgid "bad port range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1540
|
||||
#: option.c:1558
|
||||
msgid "bad bridge-interface"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1581
|
||||
#: option.c:1599
|
||||
msgid "bad dhcp-range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1607
|
||||
#: option.c:1625
|
||||
msgid "only one netid tag allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1647
|
||||
#: option.c:1665
|
||||
msgid "inconsistent DHCP range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1819
|
||||
#: option.c:1837
|
||||
msgid "bad DHCP host name"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1998 option.c:2270
|
||||
#: option.c:2012 option.c:2283
|
||||
msgid "invalid port number"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2093
|
||||
#: option.c:2094
|
||||
msgid "invalid alias range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2106
|
||||
msgid "bad interface name"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2116
|
||||
#: option.c:2129
|
||||
msgid "duplicate CNAME"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2133
|
||||
#: option.c:2146
|
||||
msgid "bad PTR record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2163
|
||||
#: option.c:2176
|
||||
msgid "bad NAPTR record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2189
|
||||
#: option.c:2202
|
||||
msgid "TXT record string too long"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2193
|
||||
#: option.c:2206
|
||||
msgid "bad TXT record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2253
|
||||
#: option.c:2266
|
||||
msgid "bad SRV record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2262
|
||||
#: option.c:2275
|
||||
msgid "bad SRV target"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2277
|
||||
#: option.c:2290
|
||||
msgid "invalid priority"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2284
|
||||
#: option.c:2297
|
||||
msgid "invalid weight"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2320
|
||||
#: option.c:2333
|
||||
#, c-format
|
||||
msgid "files nested too deep in %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2328 tftp.c:503
|
||||
#: option.c:2341 tftp.c:503
|
||||
#, c-format
|
||||
msgid "cannot read %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2389
|
||||
#: option.c:2402
|
||||
msgid "missing \""
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2436
|
||||
#: option.c:2449
|
||||
msgid "bad option"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2438
|
||||
#: option.c:2451
|
||||
msgid "extraneous parameter"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2440
|
||||
#: option.c:2453
|
||||
msgid "missing parameter"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2448
|
||||
#: option.c:2461
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2454
|
||||
#: option.c:2467
|
||||
#, c-format
|
||||
msgid "%s at line %d of %%s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2502 option.c:2532
|
||||
#: option.c:2515 option.c:2546
|
||||
#, c-format
|
||||
msgid "read %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2599
|
||||
#: option.c:2613
|
||||
#, c-format
|
||||
msgid "Dnsmasq version %s %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2600
|
||||
#: option.c:2614
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Compile time options %s\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2601
|
||||
#: option.c:2615
|
||||
#, c-format
|
||||
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2602
|
||||
#: option.c:2616
|
||||
#, c-format
|
||||
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2603
|
||||
#: option.c:2617
|
||||
#, c-format
|
||||
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2614
|
||||
#: option.c:2628
|
||||
msgid "try --help"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2616
|
||||
#: option.c:2630
|
||||
msgid "try -w"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2619
|
||||
#: option.c:2633
|
||||
#, c-format
|
||||
msgid "bad command line options: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2660
|
||||
#: option.c:2674
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2688
|
||||
#: option.c:2702
|
||||
msgid "only one resolv.conf file allowed in no-poll mode."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2698
|
||||
#: option.c:2712
|
||||
msgid "must have exactly one resolv.conf to read domain from."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2701 network.c:721
|
||||
#: option.c:2715 network.c:730
|
||||
#, c-format
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2719
|
||||
#: option.c:2733
|
||||
#, c-format
|
||||
msgid "no search directive found in %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2740
|
||||
#: option.c:2754
|
||||
msgid "there must be a default domain when --dhcp-fqdn is set"
|
||||
msgstr ""
|
||||
|
||||
@@ -762,78 +770,78 @@ msgstr ""
|
||||
msgid "unknown interface %s in bridge-interface"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:389 dnsmasq.c:186
|
||||
#: network.c:393 dnsmasq.c:186
|
||||
#, c-format
|
||||
msgid "failed to create listening socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:396
|
||||
#: network.c:400
|
||||
#, c-format
|
||||
msgid "failed to set IPV6 options on listening socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:415
|
||||
#: network.c:426
|
||||
#, c-format
|
||||
msgid "failed to bind listening socket for %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:420
|
||||
#: network.c:431
|
||||
#, c-format
|
||||
msgid "failed to listen on socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:432
|
||||
#: network.c:443
|
||||
#, c-format
|
||||
msgid "failed to create TFTP socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:628
|
||||
#: network.c:637
|
||||
#, c-format
|
||||
msgid "failed to bind server socket for %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:661
|
||||
#: network.c:670
|
||||
#, c-format
|
||||
msgid "ignoring nameserver %s - local interface"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:672
|
||||
#: network.c:681
|
||||
#, c-format
|
||||
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "unqualified"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "names"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:689
|
||||
#: network.c:698
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:691
|
||||
#: network.c:700
|
||||
msgid "domain"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:694
|
||||
#: network.c:703
|
||||
#, c-format
|
||||
msgid "using local addresses only for %s %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:696
|
||||
#: network.c:705
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d for %s %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:699
|
||||
#: network.c:708
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d(via %s)"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:701
|
||||
#: network.c:710
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d"
|
||||
msgstr ""
|
||||
@@ -1020,21 +1028,21 @@ msgstr ""
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:860
|
||||
#: dnsmasq.c:863
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:878
|
||||
#: dnsmasq.c:881
|
||||
#, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:900
|
||||
#: dnsmasq.c:903
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:911
|
||||
#: dnsmasq.c:914
|
||||
#, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr ""
|
||||
@@ -1069,37 +1077,37 @@ msgstr ""
|
||||
msgid "DHCP packet received on %s which has no address"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:382
|
||||
#: dhcp.c:387
|
||||
#, c-format
|
||||
msgid "DHCP range %s -- %s is not consistent with netmask %s"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:719
|
||||
#: dhcp.c:731
|
||||
#, c-format
|
||||
msgid "failed to read %s:%s"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:755
|
||||
#: dhcp.c:767
|
||||
#, c-format
|
||||
msgid "bad line at %s line %d"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:870
|
||||
#: dhcp.c:882
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s in dhcp-config directive."
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:873
|
||||
#: dhcp.c:885
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s in %s."
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:916
|
||||
#: dhcp.c:928
|
||||
#, c-format
|
||||
msgid "%s has more than one address in hostsfile, using %s for DHCP"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:921
|
||||
#: dhcp.c:933
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s (%s) in dhcp-config directive"
|
||||
msgstr ""
|
||||
@@ -1128,160 +1136,160 @@ msgstr ""
|
||||
msgid "failed to write %s: %s (retry in %us)"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:315
|
||||
#: rfc2131.c:316
|
||||
#, c-format
|
||||
msgid "no address range available for DHCP request %s %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "with subnet selector"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "via"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:327
|
||||
#: rfc2131.c:328
|
||||
#, c-format
|
||||
msgid "DHCP packet: transaction-id is %u"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:332
|
||||
#: rfc2131.c:333
|
||||
#, c-format
|
||||
msgid "Available DHCP subnet: %s/%s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:334
|
||||
#: rfc2131.c:335
|
||||
#, c-format
|
||||
msgid "Available DHCP range: %s -- %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:362 rfc2131.c:396
|
||||
#: rfc2131.c:363 rfc2131.c:397
|
||||
msgid "disabled"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:411 rfc2131.c:928
|
||||
#: rfc2131.c:412 rfc2131.c:960
|
||||
msgid "address in use"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:425 rfc2131.c:765
|
||||
#: rfc2131.c:426 rfc2131.c:797
|
||||
msgid "no address available"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:432 rfc2131.c:891
|
||||
#: rfc2131.c:433 rfc2131.c:923
|
||||
msgid "wrong network"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:445
|
||||
#: rfc2131.c:446
|
||||
msgid "no address configured"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:451 rfc2131.c:941
|
||||
#: rfc2131.c:452 rfc2131.c:973
|
||||
msgid "no leases left"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:640
|
||||
#: rfc2131.c:672
|
||||
#, c-format
|
||||
msgid "Vendor class: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:642
|
||||
#: rfc2131.c:674
|
||||
#, c-format
|
||||
msgid "User class: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:683
|
||||
#: rfc2131.c:715
|
||||
#, c-format
|
||||
msgid "disabling DHCP static address %s for %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:704
|
||||
#: rfc2131.c:736
|
||||
msgid "unknown lease"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:713 rfc2131.c:1058
|
||||
#: rfc2131.c:745 rfc2131.c:1089
|
||||
msgid "ignored"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:736
|
||||
#: rfc2131.c:768
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is leased to %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:746
|
||||
#: rfc2131.c:778
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is in use by the server or relay"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:749
|
||||
#: rfc2131.c:781
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it was previously declined"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:763 rfc2131.c:934
|
||||
#: rfc2131.c:795 rfc2131.c:966
|
||||
msgid "no unique-id"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:831
|
||||
#: rfc2131.c:863
|
||||
msgid "wrong server-ID"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:850
|
||||
#: rfc2131.c:882
|
||||
msgid "wrong address"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:867
|
||||
#: rfc2131.c:899
|
||||
msgid "lease not found"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:899
|
||||
#: rfc2131.c:931
|
||||
msgid "address not available"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:910
|
||||
#: rfc2131.c:942
|
||||
msgid "static lease available"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:914
|
||||
#: rfc2131.c:946
|
||||
msgid "address reserved"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:922
|
||||
#: rfc2131.c:954
|
||||
#, c-format
|
||||
msgid "abandoning lease to %s of %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1356
|
||||
#: rfc2131.c:1391
|
||||
#, c-format
|
||||
msgid "tags: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1443
|
||||
#: rfc2131.c:1478
|
||||
#, c-format
|
||||
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1599
|
||||
#: rfc2131.c:1678
|
||||
#, c-format
|
||||
msgid "Ignoring domain %s for DHCP host name %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1617
|
||||
#: rfc2131.c:1696
|
||||
#, c-format
|
||||
msgid "requested options: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1666
|
||||
#: rfc2131.c:1746
|
||||
#, c-format
|
||||
msgid "next server: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1690
|
||||
#: rfc2131.c:1770
|
||||
#, c-format
|
||||
msgid "bootfile name: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1693
|
||||
#: rfc2131.c:1773
|
||||
#, c-format
|
||||
msgid "server name: %s"
|
||||
msgstr ""
|
||||
@@ -1296,24 +1304,24 @@ msgstr ""
|
||||
msgid "netlink returns error: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dbus.c:115
|
||||
#: dbus.c:151
|
||||
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
|
||||
msgstr ""
|
||||
|
||||
#: dbus.c:243
|
||||
#: dbus.c:287
|
||||
msgid "setting upstream servers from DBus"
|
||||
msgstr ""
|
||||
|
||||
#: dbus.c:281
|
||||
#: dbus.c:325
|
||||
msgid "could not register a DBus message handler"
|
||||
msgstr ""
|
||||
|
||||
#: bpf.c:146
|
||||
#: bpf.c:150
|
||||
#, c-format
|
||||
msgid "cannot create DHCP BPF socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: bpf.c:174
|
||||
#: bpf.c:178
|
||||
#, c-format
|
||||
msgid "DHCP request for unsupported hardware type (%d) received on %s"
|
||||
msgstr ""
|
||||
|
||||
284
po/id.po
284
po/id.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dnsmasq 2.24\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-11-13 20:23+0000\n"
|
||||
"POT-Creation-Date: 2009-02-02 14:07+0000\n"
|
||||
"PO-Revision-Date: 2005-10-07 11:45+0100\n"
|
||||
"Last-Translator: Salman AS <sas@salman.or.id>\n"
|
||||
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
|
||||
@@ -21,19 +21,19 @@ msgid "failed to load names from %s: %s"
|
||||
msgstr "gagal memuat nama-nama dari %s: %m"
|
||||
|
||||
# OK
|
||||
#: cache.c:795 dhcp.c:768
|
||||
#: cache.c:795 dhcp.c:780
|
||||
#, fuzzy, c-format
|
||||
msgid "bad address at %s line %d"
|
||||
msgstr "kesalahan nama pada %s baris %d"
|
||||
|
||||
# OK
|
||||
#: cache.c:850 dhcp.c:782
|
||||
#: cache.c:850 dhcp.c:794
|
||||
#, c-format
|
||||
msgid "bad name at %s line %d"
|
||||
msgstr "kesalahan nama pada %s baris %d"
|
||||
|
||||
# OK
|
||||
#: cache.c:857 dhcp.c:848
|
||||
#: cache.c:857 dhcp.c:860
|
||||
#, c-format
|
||||
msgid "read %s - %d addresses"
|
||||
msgstr "membaca %s - %d alamat"
|
||||
@@ -71,30 +71,30 @@ msgid "server %s#%d: queries sent %u, retried or failed %u"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: util.c:58
|
||||
#: util.c:56
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to seed the random number generator: %s"
|
||||
msgstr "gagal mendengarkan di socket: %s"
|
||||
|
||||
# OK
|
||||
#: util.c:166
|
||||
#: util.c:164
|
||||
msgid "could not get memory"
|
||||
msgstr "tidak bisa mendapatkan memory"
|
||||
|
||||
# OK
|
||||
#: util.c:176
|
||||
#: util.c:174
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot create pipe: %s"
|
||||
msgstr "tidak bisa membaca %s: %s"
|
||||
|
||||
# OK
|
||||
#: util.c:184
|
||||
#: util.c:182
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to allocate %d bytes"
|
||||
msgstr "gagal memuat %S: %m"
|
||||
|
||||
# OK
|
||||
#: util.c:289
|
||||
#: util.c:287
|
||||
#, c-format
|
||||
msgid "infinite"
|
||||
msgstr "tak terbatas"
|
||||
@@ -541,7 +541,7 @@ msgid "Always perform DNS queries to all servers."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:313
|
||||
msgid "Set tag if client includes option in request."
|
||||
msgid "Set tag if client includes matching option in request."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:314
|
||||
@@ -571,7 +571,7 @@ msgid "Specify alias name for LOCAL DNS name."
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: option.c:580
|
||||
#: option.c:589
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage: dnsmasq [options]\n"
|
||||
@@ -581,242 +581,252 @@ msgstr ""
|
||||
"\n"
|
||||
|
||||
# OK
|
||||
#: option.c:582
|
||||
#: option.c:591
|
||||
#, c-format
|
||||
msgid "Use short options only on the command line.\n"
|
||||
msgstr "Gunakan pilihan pendek saja pada perintah baris.\n"
|
||||
|
||||
# OK
|
||||
#: option.c:584
|
||||
#: option.c:593
|
||||
#, fuzzy, c-format
|
||||
msgid "Valid options are:\n"
|
||||
msgstr "Pilihan yang boleh adalah:\n"
|
||||
|
||||
#: option.c:624
|
||||
#: option.c:633
|
||||
#, c-format
|
||||
msgid "Known DHCP options:\n"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: option.c:697
|
||||
#: option.c:710
|
||||
msgid "bad dhcp-option"
|
||||
msgstr "dhcp-option salah"
|
||||
|
||||
# OK
|
||||
#: option.c:753
|
||||
#: option.c:767
|
||||
#, fuzzy
|
||||
msgid "bad IP address"
|
||||
msgstr "membaca %s - %d alamat"
|
||||
|
||||
# OK
|
||||
#: option.c:851
|
||||
#: option.c:865
|
||||
msgid "bad domain in dhcp-option"
|
||||
msgstr "domain dalam dhcp-option salah"
|
||||
|
||||
# OK
|
||||
#: option.c:909
|
||||
#: option.c:923
|
||||
msgid "dhcp-option too long"
|
||||
msgstr "dhcp-option terlalu panjang"
|
||||
|
||||
#: option.c:938
|
||||
#: option.c:932
|
||||
msgid "illegal dhcp-match"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:967
|
||||
msgid "illegal repeated flag"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:946
|
||||
#: option.c:975
|
||||
msgid "illegal repeated keyword"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: option.c:983
|
||||
#: option.c:1012
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot access directory %s: %s"
|
||||
msgstr "tidak bisa membaca %s: %s"
|
||||
|
||||
# OK
|
||||
#: option.c:1002 tftp.c:348
|
||||
#: option.c:1031 tftp.c:348
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot access %s: %s"
|
||||
msgstr "tidak bisa membaca %s: %s"
|
||||
|
||||
#: option.c:1040
|
||||
#: option.c:1069
|
||||
msgid "only one dhcp-hostsfile allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1047
|
||||
#: option.c:1076
|
||||
msgid "only one dhcp-optsfile allowed"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: option.c:1091
|
||||
#: option.c:1120
|
||||
msgid "bad MX preference"
|
||||
msgstr "kesukaan MX salah"
|
||||
|
||||
# OK
|
||||
#: option.c:1095
|
||||
#: option.c:1124
|
||||
msgid "bad MX name"
|
||||
msgstr "nama MX salah"
|
||||
|
||||
# OK
|
||||
#: option.c:1109
|
||||
#: option.c:1138
|
||||
msgid "bad MX target"
|
||||
msgstr "target MX salah"
|
||||
|
||||
#: option.c:1120
|
||||
#: option.c:1149
|
||||
msgid "cannot run scripts under uClinux"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: option.c:1352 option.c:1360
|
||||
#: option.c:1375 option.c:1379
|
||||
msgid "bad port"
|
||||
msgstr "port salah"
|
||||
|
||||
#: option.c:1380 option.c:1405
|
||||
#: option.c:1398 option.c:1423
|
||||
msgid "interface binding not supported"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: option.c:1523
|
||||
#: option.c:1541
|
||||
#, fuzzy
|
||||
msgid "bad port range"
|
||||
msgstr "port salah"
|
||||
|
||||
#: option.c:1540
|
||||
#: option.c:1558
|
||||
msgid "bad bridge-interface"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: option.c:1581
|
||||
#: option.c:1599
|
||||
msgid "bad dhcp-range"
|
||||
msgstr "dhcp-range salah"
|
||||
|
||||
#: option.c:1607
|
||||
#: option.c:1625
|
||||
msgid "only one netid tag allowed"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: option.c:1647
|
||||
#: option.c:1665
|
||||
msgid "inconsistent DHCP range"
|
||||
msgstr "jangkauan DHCP tidak konsisten"
|
||||
|
||||
# OK
|
||||
#: option.c:1819
|
||||
#: option.c:1837
|
||||
#, fuzzy
|
||||
msgid "bad DHCP host name"
|
||||
msgstr "nama MX salah"
|
||||
|
||||
# OK
|
||||
#: option.c:1998 option.c:2270
|
||||
#: option.c:2012 option.c:2283
|
||||
msgid "invalid port number"
|
||||
msgstr "nomor port tidak benar"
|
||||
|
||||
# OK
|
||||
#: option.c:2093
|
||||
#: option.c:2094
|
||||
#, fuzzy
|
||||
msgid "invalid alias range"
|
||||
msgstr "weight tidak benar"
|
||||
|
||||
# OK
|
||||
#: option.c:2106
|
||||
#, fuzzy
|
||||
msgid "bad interface name"
|
||||
msgstr "nama MX salah"
|
||||
|
||||
#: option.c:2116
|
||||
#: option.c:2129
|
||||
msgid "duplicate CNAME"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: option.c:2133
|
||||
#: option.c:2146
|
||||
#, fuzzy
|
||||
msgid "bad PTR record"
|
||||
msgstr "rekord SRV salah"
|
||||
|
||||
# OK
|
||||
#: option.c:2163
|
||||
#: option.c:2176
|
||||
#, fuzzy
|
||||
msgid "bad NAPTR record"
|
||||
msgstr "rekord SRV salah"
|
||||
|
||||
# OK
|
||||
#: option.c:2189
|
||||
#: option.c:2202
|
||||
msgid "TXT record string too long"
|
||||
msgstr "string rekord TXT terlalu panjang"
|
||||
|
||||
# OK
|
||||
#: option.c:2193
|
||||
#: option.c:2206
|
||||
msgid "bad TXT record"
|
||||
msgstr "rekord TXT salah"
|
||||
|
||||
# OK
|
||||
#: option.c:2253
|
||||
#: option.c:2266
|
||||
msgid "bad SRV record"
|
||||
msgstr "rekord SRV salah"
|
||||
|
||||
# OK
|
||||
#: option.c:2262
|
||||
#: option.c:2275
|
||||
msgid "bad SRV target"
|
||||
msgstr "target SRV salah"
|
||||
|
||||
# OK
|
||||
#: option.c:2277
|
||||
#: option.c:2290
|
||||
msgid "invalid priority"
|
||||
msgstr "prioritas tidak benar"
|
||||
|
||||
# OK
|
||||
#: option.c:2284
|
||||
#: option.c:2297
|
||||
msgid "invalid weight"
|
||||
msgstr "weight tidak benar"
|
||||
|
||||
#: option.c:2320
|
||||
#: option.c:2333
|
||||
#, c-format
|
||||
msgid "files nested too deep in %s"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: option.c:2328 tftp.c:503
|
||||
#: option.c:2341 tftp.c:503
|
||||
#, c-format
|
||||
msgid "cannot read %s: %s"
|
||||
msgstr "tidak bisa membaca %s: %s"
|
||||
|
||||
# OK
|
||||
#: option.c:2389
|
||||
#: option.c:2402
|
||||
msgid "missing \""
|
||||
msgstr "kurang \""
|
||||
|
||||
# OK
|
||||
#: option.c:2436
|
||||
#: option.c:2449
|
||||
msgid "bad option"
|
||||
msgstr "pilihan salah"
|
||||
|
||||
# OK
|
||||
#: option.c:2438
|
||||
#: option.c:2451
|
||||
msgid "extraneous parameter"
|
||||
msgstr "parameter berlebihan"
|
||||
|
||||
# OK
|
||||
#: option.c:2440
|
||||
#: option.c:2453
|
||||
msgid "missing parameter"
|
||||
msgstr "parameter kurang"
|
||||
|
||||
# OK
|
||||
#: option.c:2448
|
||||
#: option.c:2461
|
||||
msgid "error"
|
||||
msgstr "kesalahan"
|
||||
|
||||
# OK
|
||||
#: option.c:2454
|
||||
#: option.c:2467
|
||||
#, c-format
|
||||
msgid "%s at line %d of %%s"
|
||||
msgstr "%s pada baris %d dari %%s"
|
||||
|
||||
# OK
|
||||
#: option.c:2502 option.c:2532
|
||||
#: option.c:2515 option.c:2546
|
||||
#, fuzzy, c-format
|
||||
msgid "read %s"
|
||||
msgstr "membaca %s"
|
||||
|
||||
# OK
|
||||
#: option.c:2599
|
||||
#: option.c:2613
|
||||
#, c-format
|
||||
msgid "Dnsmasq version %s %s\n"
|
||||
msgstr "Dnsmasq versi %s %s\n"
|
||||
|
||||
# OK
|
||||
#: option.c:2600
|
||||
#: option.c:2614
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Compile time options %s\n"
|
||||
@@ -826,66 +836,66 @@ msgstr ""
|
||||
"\n"
|
||||
|
||||
# OK
|
||||
#: option.c:2601
|
||||
#: option.c:2615
|
||||
#, c-format
|
||||
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
msgstr "Perangkat lunak ini tersedia TANPA JAMINAN SEDIKITPUN.\n"
|
||||
|
||||
# OK
|
||||
#: option.c:2602
|
||||
#: option.c:2616
|
||||
#, c-format
|
||||
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
|
||||
msgstr "Dnsdmasq adalah perangkat lunak bebas, dan Anda dipersilahkan untuk membagikannya\n"
|
||||
|
||||
# OK
|
||||
#: option.c:2603
|
||||
#: option.c:2617
|
||||
#, fuzzy, c-format
|
||||
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
|
||||
msgstr "dengan aturan GNU General Public License, versi 2.\n"
|
||||
|
||||
#: option.c:2614
|
||||
#: option.c:2628
|
||||
msgid "try --help"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2616
|
||||
#: option.c:2630
|
||||
msgid "try -w"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: option.c:2619
|
||||
#: option.c:2633
|
||||
#, fuzzy, c-format
|
||||
msgid "bad command line options: %s"
|
||||
msgstr "pilihan baris perintah salah: %s."
|
||||
|
||||
# OK
|
||||
#: option.c:2660
|
||||
#: option.c:2674
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %s"
|
||||
msgstr "tidak bisa mendapatkan host-name: %s"
|
||||
|
||||
# OK
|
||||
#: option.c:2688
|
||||
#: option.c:2702
|
||||
msgid "only one resolv.conf file allowed in no-poll mode."
|
||||
msgstr "hanya satu file resolv.conf yang diperbolehkan dalam modus no-poll."
|
||||
|
||||
# OK
|
||||
#: option.c:2698
|
||||
#: option.c:2712
|
||||
msgid "must have exactly one resolv.conf to read domain from."
|
||||
msgstr "harus mempunyai tepat satu resolv.conf untuk mendapatkan nama domain."
|
||||
|
||||
# OK
|
||||
#: option.c:2701 network.c:721
|
||||
#: option.c:2715 network.c:730
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr "gagal membaca %s: %m"
|
||||
|
||||
# OK
|
||||
#: option.c:2719
|
||||
#: option.c:2733
|
||||
#, c-format
|
||||
msgid "no search directive found in %s"
|
||||
msgstr "tidak ditemukan direktif search di %s"
|
||||
|
||||
#: option.c:2740
|
||||
#: option.c:2754
|
||||
msgid "there must be a default domain when --dhcp-fqdn is set"
|
||||
msgstr ""
|
||||
|
||||
@@ -906,89 +916,89 @@ msgid "unknown interface %s in bridge-interface"
|
||||
msgstr "antarmuka tidak dikenal %s"
|
||||
|
||||
# OK
|
||||
#: network.c:389 dnsmasq.c:186
|
||||
#: network.c:393 dnsmasq.c:186
|
||||
#, c-format
|
||||
msgid "failed to create listening socket: %s"
|
||||
msgstr "gagal membuat socket: %s "
|
||||
|
||||
# OK
|
||||
#: network.c:396
|
||||
#: network.c:400
|
||||
#, c-format
|
||||
msgid "failed to set IPV6 options on listening socket: %s"
|
||||
msgstr "gagal menyetel IPV6 pada socket: %s"
|
||||
|
||||
#: network.c:415
|
||||
#: network.c:426
|
||||
#, c-format
|
||||
msgid "failed to bind listening socket for %s: %s"
|
||||
msgstr "gagal mem-bind socket untuk mendengarkan %s: %s"
|
||||
|
||||
# OK
|
||||
#: network.c:420
|
||||
#: network.c:431
|
||||
#, c-format
|
||||
msgid "failed to listen on socket: %s"
|
||||
msgstr "gagal mendengarkan di socket: %s"
|
||||
|
||||
# OK
|
||||
#: network.c:432
|
||||
#: network.c:443
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to create TFTP socket: %s"
|
||||
msgstr "gagal membuat socket: %s "
|
||||
|
||||
#: network.c:628
|
||||
#: network.c:637
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to bind server socket for %s: %s"
|
||||
msgstr "gagal mem-bind socket untuk mendengarkan %s: %s"
|
||||
|
||||
# OK
|
||||
#: network.c:661
|
||||
#: network.c:670
|
||||
#, c-format
|
||||
msgid "ignoring nameserver %s - local interface"
|
||||
msgstr "mengabaikan nameserver %s - antarmuka lokal"
|
||||
|
||||
# OK
|
||||
#: network.c:672
|
||||
#: network.c:681
|
||||
#, fuzzy, c-format
|
||||
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
|
||||
msgstr "mengabaikan nameserver %s - tak dapat membuat/mem-bind socket: %m"
|
||||
|
||||
# OK
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "unqualified"
|
||||
msgstr "tidak memenuhi syarat"
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "names"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:689
|
||||
#: network.c:698
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: network.c:691
|
||||
#: network.c:700
|
||||
msgid "domain"
|
||||
msgstr "domain"
|
||||
|
||||
# OK
|
||||
#: network.c:694
|
||||
#: network.c:703
|
||||
#, c-format
|
||||
msgid "using local addresses only for %s %s"
|
||||
msgstr "menggunakan alamat lokal saja untuk %s %s"
|
||||
|
||||
# OK
|
||||
#: network.c:696
|
||||
#: network.c:705
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d for %s %s"
|
||||
msgstr "menggunakan nameserver %s#%d untuk %s %s"
|
||||
|
||||
# OK
|
||||
#: network.c:699
|
||||
#: network.c:708
|
||||
#, fuzzy, c-format
|
||||
msgid "using nameserver %s#%d(via %s)"
|
||||
msgstr "menggunakan nameserver %s#%d"
|
||||
|
||||
# OK
|
||||
#: network.c:701
|
||||
#: network.c:710
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d"
|
||||
msgstr "menggunakan nameserver %s#%d"
|
||||
@@ -1205,24 +1215,24 @@ msgstr ""
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr "gagal mengakses %s: %m"
|
||||
|
||||
#: dnsmasq.c:860
|
||||
#: dnsmasq.c:863
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr "keluar karena menerima SIGTERM"
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:878
|
||||
#: dnsmasq.c:881
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr "gagal mengakses %s: %m"
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:900
|
||||
#: dnsmasq.c:903
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr "membaca %s"
|
||||
|
||||
# OK
|
||||
#: dnsmasq.c:911
|
||||
#: dnsmasq.c:914
|
||||
#, fuzzy, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr "tidak ditemukan direktif search di %s"
|
||||
@@ -1263,42 +1273,42 @@ msgid "DHCP packet received on %s which has no address"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: dhcp.c:382
|
||||
#: dhcp.c:387
|
||||
#, c-format
|
||||
msgid "DHCP range %s -- %s is not consistent with netmask %s"
|
||||
msgstr "jangkauan DHCP %s -- %s tidak konsisten dengan netmask %s"
|
||||
|
||||
# OK
|
||||
#: dhcp.c:719
|
||||
#: dhcp.c:731
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to read %s:%s"
|
||||
msgstr "gagal membaca %s: %m"
|
||||
|
||||
# OK
|
||||
#: dhcp.c:755
|
||||
#: dhcp.c:767
|
||||
#, fuzzy, c-format
|
||||
msgid "bad line at %s line %d"
|
||||
msgstr "kesalahan nama pada %s baris %d"
|
||||
|
||||
# OK
|
||||
#: dhcp.c:870
|
||||
#: dhcp.c:882
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s in dhcp-config directive."
|
||||
msgstr "alamat IP kembar %s dalam direktif dhcp-config"
|
||||
|
||||
# OK
|
||||
#: dhcp.c:873
|
||||
#: dhcp.c:885
|
||||
#, fuzzy, c-format
|
||||
msgid "duplicate IP address %s in %s."
|
||||
msgstr "alamat IP kembar %s dalam direktif dhcp-config"
|
||||
|
||||
#: dhcp.c:916
|
||||
#: dhcp.c:928
|
||||
#, c-format
|
||||
msgid "%s has more than one address in hostsfile, using %s for DHCP"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: dhcp.c:921
|
||||
#: dhcp.c:933
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s (%s) in dhcp-config directive"
|
||||
msgstr "alamat IP kembar %s (%s) dalam direktif dhcp-config"
|
||||
@@ -1332,178 +1342,178 @@ msgid "failed to write %s: %s (retry in %us)"
|
||||
msgstr "gagal membaca %s: %m"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:315
|
||||
#: rfc2131.c:316
|
||||
#, c-format
|
||||
msgid "no address range available for DHCP request %s %s"
|
||||
msgstr "tidak ada alamat yang bisa dipakai untuk permintaan DHCP %s %s"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "with subnet selector"
|
||||
msgstr "dengan pemilih subnet"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "via"
|
||||
msgstr "lewat"
|
||||
|
||||
#: rfc2131.c:327
|
||||
#: rfc2131.c:328
|
||||
#, c-format
|
||||
msgid "DHCP packet: transaction-id is %u"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:332
|
||||
#: rfc2131.c:333
|
||||
#, c-format
|
||||
msgid "Available DHCP subnet: %s/%s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:334
|
||||
#: rfc2131.c:335
|
||||
#, c-format
|
||||
msgid "Available DHCP range: %s -- %s"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:362 rfc2131.c:396
|
||||
#: rfc2131.c:363 rfc2131.c:397
|
||||
msgid "disabled"
|
||||
msgstr "di disable"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:411 rfc2131.c:928
|
||||
#: rfc2131.c:412 rfc2131.c:960
|
||||
msgid "address in use"
|
||||
msgstr "alamat telah digunakan"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:425 rfc2131.c:765
|
||||
#: rfc2131.c:426 rfc2131.c:797
|
||||
msgid "no address available"
|
||||
msgstr "tak ada alamat yang tersedia"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:432 rfc2131.c:891
|
||||
#: rfc2131.c:433 rfc2131.c:923
|
||||
msgid "wrong network"
|
||||
msgstr "jaringan yang salah"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:445
|
||||
#: rfc2131.c:446
|
||||
msgid "no address configured"
|
||||
msgstr "tak ada alamat yang disetel"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:451 rfc2131.c:941
|
||||
#: rfc2131.c:452 rfc2131.c:973
|
||||
msgid "no leases left"
|
||||
msgstr "tak ada lease yang tersisa"
|
||||
|
||||
#: rfc2131.c:640
|
||||
#: rfc2131.c:672
|
||||
#, c-format
|
||||
msgid "Vendor class: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:642
|
||||
#: rfc2131.c:674
|
||||
#, c-format
|
||||
msgid "User class: %s"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:683
|
||||
#: rfc2131.c:715
|
||||
#, fuzzy, c-format
|
||||
msgid "disabling DHCP static address %s for %s"
|
||||
msgstr "men-disable alamat statik DHCP %s"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:704
|
||||
#: rfc2131.c:736
|
||||
msgid "unknown lease"
|
||||
msgstr "lease tidak diketahui"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:713 rfc2131.c:1058
|
||||
#: rfc2131.c:745 rfc2131.c:1089
|
||||
msgid "ignored"
|
||||
msgstr "diabaikan"
|
||||
|
||||
#: rfc2131.c:736
|
||||
#: rfc2131.c:768
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is leased to %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:746
|
||||
#: rfc2131.c:778
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is in use by the server or relay"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:749
|
||||
#: rfc2131.c:781
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it was previously declined"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:763 rfc2131.c:934
|
||||
#: rfc2131.c:795 rfc2131.c:966
|
||||
msgid "no unique-id"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:831
|
||||
#: rfc2131.c:863
|
||||
msgid "wrong server-ID"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:850
|
||||
#: rfc2131.c:882
|
||||
msgid "wrong address"
|
||||
msgstr "alamat salah"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:867
|
||||
#: rfc2131.c:899
|
||||
msgid "lease not found"
|
||||
msgstr "lease tak ditemukan"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:899
|
||||
#: rfc2131.c:931
|
||||
msgid "address not available"
|
||||
msgstr "alamat tak tersedia"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:910
|
||||
#: rfc2131.c:942
|
||||
msgid "static lease available"
|
||||
msgstr "lease statik tak tersedia"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:914
|
||||
#: rfc2131.c:946
|
||||
msgid "address reserved"
|
||||
msgstr "alamat telah dipesan"
|
||||
|
||||
#: rfc2131.c:922
|
||||
#: rfc2131.c:954
|
||||
#, c-format
|
||||
msgid "abandoning lease to %s of %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1356
|
||||
#: rfc2131.c:1391
|
||||
#, c-format
|
||||
msgid "tags: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1443
|
||||
#: rfc2131.c:1478
|
||||
#, c-format
|
||||
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1599
|
||||
#: rfc2131.c:1678
|
||||
#, c-format
|
||||
msgid "Ignoring domain %s for DHCP host name %s"
|
||||
msgstr ""
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:1617
|
||||
#: rfc2131.c:1696
|
||||
#, fuzzy, c-format
|
||||
msgid "requested options: %s"
|
||||
msgstr "pilihan-pilihan saat kompilasi: %s"
|
||||
|
||||
# OK
|
||||
#: rfc2131.c:1666
|
||||
#: rfc2131.c:1746
|
||||
#, fuzzy, c-format
|
||||
msgid "next server: %s"
|
||||
msgstr "DBus error: %s"
|
||||
|
||||
#: rfc2131.c:1690
|
||||
#: rfc2131.c:1770
|
||||
#, c-format
|
||||
msgid "bootfile name: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1693
|
||||
#: rfc2131.c:1773
|
||||
#, c-format
|
||||
msgid "server name: %s"
|
||||
msgstr ""
|
||||
@@ -1521,28 +1531,28 @@ msgid "netlink returns error: %s"
|
||||
msgstr "DBus error: %s"
|
||||
|
||||
# OK
|
||||
#: dbus.c:115
|
||||
#: dbus.c:151
|
||||
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
|
||||
msgstr "mencoba menyetel sebuah alamat IPv6 server lewat DBus - tidak ada dukungan untuk IPv6"
|
||||
|
||||
# OK
|
||||
#: dbus.c:243
|
||||
#: dbus.c:287
|
||||
msgid "setting upstream servers from DBus"
|
||||
msgstr "menyetel server-server di atas dengan DBus"
|
||||
|
||||
# OK
|
||||
#: dbus.c:281
|
||||
#: dbus.c:325
|
||||
msgid "could not register a DBus message handler"
|
||||
msgstr "tidak bisa mendaftar sebuah DBus message handler"
|
||||
|
||||
# OK
|
||||
#: bpf.c:146
|
||||
#: bpf.c:150
|
||||
#, c-format
|
||||
msgid "cannot create DHCP BPF socket: %s"
|
||||
msgstr "tidak dapat membuat socket DHCP BPF: %s"
|
||||
|
||||
# OK
|
||||
#: bpf.c:174
|
||||
#: bpf.c:178
|
||||
#, fuzzy, c-format
|
||||
msgid "DHCP request for unsupported hardware type (%d) received on %s"
|
||||
msgstr "permintaan DHCP untuk tipe hardware yang tidak didukung (%d) diterima pada %s"
|
||||
|
||||
282
po/it.po
282
po/it.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dnsmasq 2.32\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-11-13 20:23+0000\n"
|
||||
"POT-Creation-Date: 2009-02-02 14:07+0000\n"
|
||||
"PO-Revision-Date: 2006-05-22 11:09+0100\n"
|
||||
"Last-Translator: Simon Kelley <simon@thekelleys.org.uk>\n"
|
||||
"Language-Team: Italian <tp@lists.linux.it>\n"
|
||||
@@ -20,17 +20,17 @@ msgstr ""
|
||||
msgid "failed to load names from %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cache.c:795 dhcp.c:768
|
||||
#: cache.c:795 dhcp.c:780
|
||||
#, c-format
|
||||
msgid "bad address at %s line %d"
|
||||
msgstr ""
|
||||
|
||||
#: cache.c:850 dhcp.c:782
|
||||
#: cache.c:850 dhcp.c:794
|
||||
#, c-format
|
||||
msgid "bad name at %s line %d"
|
||||
msgstr ""
|
||||
|
||||
#: cache.c:857 dhcp.c:848
|
||||
#: cache.c:857 dhcp.c:860
|
||||
#, c-format
|
||||
msgid "read %s - %d addresses"
|
||||
msgstr ""
|
||||
@@ -64,26 +64,26 @@ msgstr ""
|
||||
msgid "server %s#%d: queries sent %u, retried or failed %u"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:58
|
||||
#: util.c:56
|
||||
#, c-format
|
||||
msgid "failed to seed the random number generator: %s"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:166
|
||||
#: util.c:164
|
||||
msgid "could not get memory"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:176
|
||||
#: util.c:174
|
||||
#, c-format
|
||||
msgid "cannot create pipe: %s"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:184
|
||||
#: util.c:182
|
||||
#, c-format
|
||||
msgid "failed to allocate %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:289
|
||||
#: util.c:287
|
||||
#, c-format
|
||||
msgid "infinite"
|
||||
msgstr ""
|
||||
@@ -458,7 +458,7 @@ msgid "Always perform DNS queries to all servers."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:313
|
||||
msgid "Set tag if client includes option in request."
|
||||
msgid "Set tag if client includes matching option in request."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:314
|
||||
@@ -485,266 +485,274 @@ msgstr ""
|
||||
msgid "Specify alias name for LOCAL DNS name."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:580
|
||||
#: option.c:589
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage: dnsmasq [options]\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:582
|
||||
#: option.c:591
|
||||
#, c-format
|
||||
msgid "Use short options only on the command line.\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:584
|
||||
#: option.c:593
|
||||
#, c-format
|
||||
msgid "Valid options are:\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:624
|
||||
#: option.c:633
|
||||
#, c-format
|
||||
msgid "Known DHCP options:\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:697
|
||||
#: option.c:710
|
||||
msgid "bad dhcp-option"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:753
|
||||
#: option.c:767
|
||||
msgid "bad IP address"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:851
|
||||
#: option.c:865
|
||||
msgid "bad domain in dhcp-option"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:909
|
||||
#: option.c:923
|
||||
msgid "dhcp-option too long"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:938
|
||||
#: option.c:932
|
||||
msgid "illegal dhcp-match"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:967
|
||||
msgid "illegal repeated flag"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:946
|
||||
#: option.c:975
|
||||
msgid "illegal repeated keyword"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:983
|
||||
#: option.c:1012
|
||||
#, c-format
|
||||
msgid "cannot access directory %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1002 tftp.c:348
|
||||
#: option.c:1031 tftp.c:348
|
||||
#, c-format
|
||||
msgid "cannot access %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1040
|
||||
#: option.c:1069
|
||||
msgid "only one dhcp-hostsfile allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1047
|
||||
#: option.c:1076
|
||||
msgid "only one dhcp-optsfile allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1091
|
||||
#: option.c:1120
|
||||
msgid "bad MX preference"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1095
|
||||
#: option.c:1124
|
||||
msgid "bad MX name"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1109
|
||||
#: option.c:1138
|
||||
msgid "bad MX target"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1120
|
||||
#: option.c:1149
|
||||
msgid "cannot run scripts under uClinux"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1352 option.c:1360
|
||||
#: option.c:1375 option.c:1379
|
||||
msgid "bad port"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1380 option.c:1405
|
||||
#: option.c:1398 option.c:1423
|
||||
msgid "interface binding not supported"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1523
|
||||
#: option.c:1541
|
||||
msgid "bad port range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1540
|
||||
#: option.c:1558
|
||||
msgid "bad bridge-interface"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1581
|
||||
#: option.c:1599
|
||||
msgid "bad dhcp-range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1607
|
||||
#: option.c:1625
|
||||
msgid "only one netid tag allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1647
|
||||
#: option.c:1665
|
||||
msgid "inconsistent DHCP range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1819
|
||||
#: option.c:1837
|
||||
msgid "bad DHCP host name"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1998 option.c:2270
|
||||
#: option.c:2012 option.c:2283
|
||||
msgid "invalid port number"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2093
|
||||
#: option.c:2094
|
||||
msgid "invalid alias range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2106
|
||||
msgid "bad interface name"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2116
|
||||
#: option.c:2129
|
||||
msgid "duplicate CNAME"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2133
|
||||
#: option.c:2146
|
||||
msgid "bad PTR record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2163
|
||||
#: option.c:2176
|
||||
msgid "bad NAPTR record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2189
|
||||
#: option.c:2202
|
||||
msgid "TXT record string too long"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2193
|
||||
#: option.c:2206
|
||||
msgid "bad TXT record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2253
|
||||
#: option.c:2266
|
||||
msgid "bad SRV record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2262
|
||||
#: option.c:2275
|
||||
msgid "bad SRV target"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2277
|
||||
#: option.c:2290
|
||||
msgid "invalid priority"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2284
|
||||
#: option.c:2297
|
||||
msgid "invalid weight"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2320
|
||||
#: option.c:2333
|
||||
#, c-format
|
||||
msgid "files nested too deep in %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2328 tftp.c:503
|
||||
#: option.c:2341 tftp.c:503
|
||||
#, c-format
|
||||
msgid "cannot read %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2389
|
||||
#: option.c:2402
|
||||
msgid "missing \""
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2436
|
||||
#: option.c:2449
|
||||
msgid "bad option"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2438
|
||||
#: option.c:2451
|
||||
msgid "extraneous parameter"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2440
|
||||
#: option.c:2453
|
||||
msgid "missing parameter"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2448
|
||||
#: option.c:2461
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2454
|
||||
#: option.c:2467
|
||||
#, c-format
|
||||
msgid "%s at line %d of %%s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2502 option.c:2532
|
||||
#: option.c:2515 option.c:2546
|
||||
#, c-format
|
||||
msgid "read %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2599
|
||||
#: option.c:2613
|
||||
#, c-format
|
||||
msgid "Dnsmasq version %s %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2600
|
||||
#: option.c:2614
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Compile time options %s\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2601
|
||||
#: option.c:2615
|
||||
#, c-format
|
||||
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2602
|
||||
#: option.c:2616
|
||||
#, c-format
|
||||
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2603
|
||||
#: option.c:2617
|
||||
#, c-format
|
||||
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2614
|
||||
#: option.c:2628
|
||||
msgid "try --help"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2616
|
||||
#: option.c:2630
|
||||
msgid "try -w"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2619
|
||||
#: option.c:2633
|
||||
#, c-format
|
||||
msgid "bad command line options: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2660
|
||||
#: option.c:2674
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2688
|
||||
#: option.c:2702
|
||||
msgid "only one resolv.conf file allowed in no-poll mode."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2698
|
||||
#: option.c:2712
|
||||
msgid "must have exactly one resolv.conf to read domain from."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2701 network.c:721
|
||||
#: option.c:2715 network.c:730
|
||||
#, c-format
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2719
|
||||
#: option.c:2733
|
||||
#, c-format
|
||||
msgid "no search directive found in %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2740
|
||||
#: option.c:2754
|
||||
msgid "there must be a default domain when --dhcp-fqdn is set"
|
||||
msgstr ""
|
||||
|
||||
@@ -762,78 +770,78 @@ msgstr ""
|
||||
msgid "unknown interface %s in bridge-interface"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:389 dnsmasq.c:186
|
||||
#: network.c:393 dnsmasq.c:186
|
||||
#, c-format
|
||||
msgid "failed to create listening socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:396
|
||||
#: network.c:400
|
||||
#, c-format
|
||||
msgid "failed to set IPV6 options on listening socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:415
|
||||
#: network.c:426
|
||||
#, c-format
|
||||
msgid "failed to bind listening socket for %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:420
|
||||
#: network.c:431
|
||||
#, c-format
|
||||
msgid "failed to listen on socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:432
|
||||
#: network.c:443
|
||||
#, c-format
|
||||
msgid "failed to create TFTP socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:628
|
||||
#: network.c:637
|
||||
#, c-format
|
||||
msgid "failed to bind server socket for %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:661
|
||||
#: network.c:670
|
||||
#, c-format
|
||||
msgid "ignoring nameserver %s - local interface"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:672
|
||||
#: network.c:681
|
||||
#, c-format
|
||||
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "unqualified"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "names"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:689
|
||||
#: network.c:698
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:691
|
||||
#: network.c:700
|
||||
msgid "domain"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:694
|
||||
#: network.c:703
|
||||
#, c-format
|
||||
msgid "using local addresses only for %s %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:696
|
||||
#: network.c:705
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d for %s %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:699
|
||||
#: network.c:708
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d(via %s)"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:701
|
||||
#: network.c:710
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d"
|
||||
msgstr ""
|
||||
@@ -1020,21 +1028,21 @@ msgstr ""
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:860
|
||||
#: dnsmasq.c:863
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:878
|
||||
#: dnsmasq.c:881
|
||||
#, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:900
|
||||
#: dnsmasq.c:903
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:911
|
||||
#: dnsmasq.c:914
|
||||
#, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr ""
|
||||
@@ -1069,37 +1077,37 @@ msgstr ""
|
||||
msgid "DHCP packet received on %s which has no address"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:382
|
||||
#: dhcp.c:387
|
||||
#, c-format
|
||||
msgid "DHCP range %s -- %s is not consistent with netmask %s"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:719
|
||||
#: dhcp.c:731
|
||||
#, c-format
|
||||
msgid "failed to read %s:%s"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:755
|
||||
#: dhcp.c:767
|
||||
#, c-format
|
||||
msgid "bad line at %s line %d"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:870
|
||||
#: dhcp.c:882
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s in dhcp-config directive."
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:873
|
||||
#: dhcp.c:885
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s in %s."
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:916
|
||||
#: dhcp.c:928
|
||||
#, c-format
|
||||
msgid "%s has more than one address in hostsfile, using %s for DHCP"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:921
|
||||
#: dhcp.c:933
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s (%s) in dhcp-config directive"
|
||||
msgstr ""
|
||||
@@ -1128,160 +1136,160 @@ msgstr ""
|
||||
msgid "failed to write %s: %s (retry in %us)"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:315
|
||||
#: rfc2131.c:316
|
||||
#, c-format
|
||||
msgid "no address range available for DHCP request %s %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "with subnet selector"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "via"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:327
|
||||
#: rfc2131.c:328
|
||||
#, c-format
|
||||
msgid "DHCP packet: transaction-id is %u"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:332
|
||||
#: rfc2131.c:333
|
||||
#, c-format
|
||||
msgid "Available DHCP subnet: %s/%s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:334
|
||||
#: rfc2131.c:335
|
||||
#, c-format
|
||||
msgid "Available DHCP range: %s -- %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:362 rfc2131.c:396
|
||||
#: rfc2131.c:363 rfc2131.c:397
|
||||
msgid "disabled"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:411 rfc2131.c:928
|
||||
#: rfc2131.c:412 rfc2131.c:960
|
||||
msgid "address in use"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:425 rfc2131.c:765
|
||||
#: rfc2131.c:426 rfc2131.c:797
|
||||
msgid "no address available"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:432 rfc2131.c:891
|
||||
#: rfc2131.c:433 rfc2131.c:923
|
||||
msgid "wrong network"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:445
|
||||
#: rfc2131.c:446
|
||||
msgid "no address configured"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:451 rfc2131.c:941
|
||||
#: rfc2131.c:452 rfc2131.c:973
|
||||
msgid "no leases left"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:640
|
||||
#: rfc2131.c:672
|
||||
#, c-format
|
||||
msgid "Vendor class: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:642
|
||||
#: rfc2131.c:674
|
||||
#, c-format
|
||||
msgid "User class: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:683
|
||||
#: rfc2131.c:715
|
||||
#, c-format
|
||||
msgid "disabling DHCP static address %s for %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:704
|
||||
#: rfc2131.c:736
|
||||
msgid "unknown lease"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:713 rfc2131.c:1058
|
||||
#: rfc2131.c:745 rfc2131.c:1089
|
||||
msgid "ignored"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:736
|
||||
#: rfc2131.c:768
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is leased to %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:746
|
||||
#: rfc2131.c:778
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is in use by the server or relay"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:749
|
||||
#: rfc2131.c:781
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it was previously declined"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:763 rfc2131.c:934
|
||||
#: rfc2131.c:795 rfc2131.c:966
|
||||
msgid "no unique-id"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:831
|
||||
#: rfc2131.c:863
|
||||
msgid "wrong server-ID"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:850
|
||||
#: rfc2131.c:882
|
||||
msgid "wrong address"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:867
|
||||
#: rfc2131.c:899
|
||||
msgid "lease not found"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:899
|
||||
#: rfc2131.c:931
|
||||
msgid "address not available"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:910
|
||||
#: rfc2131.c:942
|
||||
msgid "static lease available"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:914
|
||||
#: rfc2131.c:946
|
||||
msgid "address reserved"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:922
|
||||
#: rfc2131.c:954
|
||||
#, c-format
|
||||
msgid "abandoning lease to %s of %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1356
|
||||
#: rfc2131.c:1391
|
||||
#, c-format
|
||||
msgid "tags: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1443
|
||||
#: rfc2131.c:1478
|
||||
#, c-format
|
||||
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1599
|
||||
#: rfc2131.c:1678
|
||||
#, c-format
|
||||
msgid "Ignoring domain %s for DHCP host name %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1617
|
||||
#: rfc2131.c:1696
|
||||
#, c-format
|
||||
msgid "requested options: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1666
|
||||
#: rfc2131.c:1746
|
||||
#, c-format
|
||||
msgid "next server: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1690
|
||||
#: rfc2131.c:1770
|
||||
#, c-format
|
||||
msgid "bootfile name: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1693
|
||||
#: rfc2131.c:1773
|
||||
#, c-format
|
||||
msgid "server name: %s"
|
||||
msgstr ""
|
||||
@@ -1296,24 +1304,24 @@ msgstr ""
|
||||
msgid "netlink returns error: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dbus.c:115
|
||||
#: dbus.c:151
|
||||
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
|
||||
msgstr ""
|
||||
|
||||
#: dbus.c:243
|
||||
#: dbus.c:287
|
||||
msgid "setting upstream servers from DBus"
|
||||
msgstr ""
|
||||
|
||||
#: dbus.c:281
|
||||
#: dbus.c:325
|
||||
msgid "could not register a DBus message handler"
|
||||
msgstr ""
|
||||
|
||||
#: bpf.c:146
|
||||
#: bpf.c:150
|
||||
#, c-format
|
||||
msgid "cannot create DHCP BPF socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: bpf.c:174
|
||||
#: bpf.c:178
|
||||
#, c-format
|
||||
msgid "DHCP request for unsupported hardware type (%d) received on %s"
|
||||
msgstr ""
|
||||
|
||||
283
po/no.po
283
po/no.po
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dnsmasq 2.25\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-11-13 20:23+0000\n"
|
||||
"POT-Creation-Date: 2009-02-02 14:07+0000\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: %s"
|
||||
msgstr "feilet <20> laste navn fra %s: %m"
|
||||
|
||||
#: cache.c:795 dhcp.c:768
|
||||
#: cache.c:795 dhcp.c:780
|
||||
#, c-format
|
||||
msgid "bad address at %s line %d"
|
||||
msgstr "d<>rlig adresse ved %s linje %d"
|
||||
|
||||
#: cache.c:850 dhcp.c:782
|
||||
#: cache.c:850 dhcp.c:794
|
||||
#, c-format
|
||||
msgid "bad name at %s line %d"
|
||||
msgstr "d<>rlig navn ved %s linje %d"
|
||||
|
||||
#: cache.c:857 dhcp.c:848
|
||||
#: cache.c:857 dhcp.c:860
|
||||
#, c-format
|
||||
msgid "read %s - %d addresses"
|
||||
msgstr "les %s - %d adresser"
|
||||
@@ -66,26 +66,26 @@ msgstr ""
|
||||
msgid "server %s#%d: queries sent %u, retried or failed %u"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:58
|
||||
#: util.c:56
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to seed the random number generator: %s"
|
||||
msgstr "feilet <20> lytte p<> socket: %s"
|
||||
|
||||
#: util.c:166
|
||||
#: util.c:164
|
||||
msgid "could not get memory"
|
||||
msgstr "kunne ikke f<> minne"
|
||||
|
||||
#: util.c:176
|
||||
#: util.c:174
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot create pipe: %s"
|
||||
msgstr "kan ikke lese %s: %s"
|
||||
|
||||
#: util.c:184
|
||||
#: util.c:182
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to allocate %d bytes"
|
||||
msgstr "feilet <20> laste %s: %m"
|
||||
|
||||
#: util.c:289
|
||||
#: util.c:287
|
||||
#, c-format
|
||||
msgid "infinite"
|
||||
msgstr "uendelig"
|
||||
@@ -471,7 +471,7 @@ msgid "Always perform DNS queries to all servers."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:313
|
||||
msgid "Set tag if client includes option in request."
|
||||
msgid "Set tag if client includes matching option in request."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:314
|
||||
@@ -499,7 +499,7 @@ msgstr ""
|
||||
msgid "Specify alias name for LOCAL DNS name."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:580
|
||||
#: option.c:589
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage: dnsmasq [options]\n"
|
||||
@@ -508,207 +508,216 @@ msgstr ""
|
||||
"Bruk: dnsmasq [opsjoner]\n"
|
||||
"\n"
|
||||
|
||||
#: option.c:582
|
||||
#: option.c:591
|
||||
#, c-format
|
||||
msgid "Use short options only on the command line.\n"
|
||||
msgstr "Bruk korte opsjoner kun p<> kommandolinjen.\n"
|
||||
|
||||
#: option.c:584
|
||||
#: option.c:593
|
||||
#, fuzzy, c-format
|
||||
msgid "Valid options are:\n"
|
||||
msgstr "Gyldige opsjoner er :\n"
|
||||
|
||||
#: option.c:624
|
||||
#: option.c:633
|
||||
#, c-format
|
||||
msgid "Known DHCP options:\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:697
|
||||
#: option.c:710
|
||||
msgid "bad dhcp-option"
|
||||
msgstr "d<>rlig dhcp-opsjon"
|
||||
|
||||
#: option.c:753
|
||||
#: option.c:767
|
||||
#, fuzzy
|
||||
msgid "bad IP address"
|
||||
msgstr "les %s - %d adresser"
|
||||
|
||||
#: option.c:851
|
||||
#: option.c:865
|
||||
msgid "bad domain in dhcp-option"
|
||||
msgstr "d<>rlig domene i dhcp-opsjon"
|
||||
|
||||
#: option.c:909
|
||||
#: option.c:923
|
||||
msgid "dhcp-option too long"
|
||||
msgstr "dhcp-opsjon for lang"
|
||||
|
||||
#: option.c:938
|
||||
#: option.c:932
|
||||
msgid "illegal dhcp-match"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:967
|
||||
msgid "illegal repeated flag"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:946
|
||||
#: option.c:975
|
||||
msgid "illegal repeated keyword"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:983
|
||||
#: option.c:1012
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot access directory %s: %s"
|
||||
msgstr "kan ikke lese %s: %s"
|
||||
|
||||
#: option.c:1002 tftp.c:348
|
||||
#: option.c:1031 tftp.c:348
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot access %s: %s"
|
||||
msgstr "kan ikke lese %s: %s"
|
||||
|
||||
#: option.c:1040
|
||||
#: option.c:1069
|
||||
msgid "only one dhcp-hostsfile allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1047
|
||||
#: option.c:1076
|
||||
msgid "only one dhcp-optsfile allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1091
|
||||
#: option.c:1120
|
||||
msgid "bad MX preference"
|
||||
msgstr "d<>rlig MX preferanse"
|
||||
|
||||
#: option.c:1095
|
||||
#: option.c:1124
|
||||
msgid "bad MX name"
|
||||
msgstr "d<>rlig MX navn"
|
||||
|
||||
#: option.c:1109
|
||||
#: option.c:1138
|
||||
msgid "bad MX target"
|
||||
msgstr "d<>rlig MX m<>l"
|
||||
|
||||
#: option.c:1120
|
||||
#: option.c:1149
|
||||
msgid "cannot run scripts under uClinux"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1352 option.c:1360
|
||||
#: option.c:1375 option.c:1379
|
||||
msgid "bad port"
|
||||
msgstr "d<>rlig port"
|
||||
|
||||
#: option.c:1380 option.c:1405
|
||||
#: option.c:1398 option.c:1423
|
||||
msgid "interface binding not supported"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1523
|
||||
#: option.c:1541
|
||||
#, fuzzy
|
||||
msgid "bad port range"
|
||||
msgstr "d<>rlig port"
|
||||
|
||||
#: option.c:1540
|
||||
#: option.c:1558
|
||||
msgid "bad bridge-interface"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1581
|
||||
#: option.c:1599
|
||||
msgid "bad dhcp-range"
|
||||
msgstr "d<>rlig dhcp-omr<6D>de"
|
||||
|
||||
#: option.c:1607
|
||||
#: option.c:1625
|
||||
msgid "only one netid tag allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1647
|
||||
#: option.c:1665
|
||||
msgid "inconsistent DHCP range"
|
||||
msgstr "ikke konsistent DHCP omr<6D>de"
|
||||
|
||||
#: option.c:1819
|
||||
#: option.c:1837
|
||||
#, fuzzy
|
||||
msgid "bad DHCP host name"
|
||||
msgstr "d<>rlig MX navn"
|
||||
|
||||
#: option.c:1998 option.c:2270
|
||||
#: option.c:2012 option.c:2283
|
||||
msgid "invalid port number"
|
||||
msgstr "ugyldig portnummer"
|
||||
|
||||
#: option.c:2093
|
||||
#: option.c:2094
|
||||
#, fuzzy
|
||||
msgid "invalid alias range"
|
||||
msgstr "ugyldig vekt"
|
||||
|
||||
#: option.c:2106
|
||||
#, fuzzy
|
||||
msgid "bad interface name"
|
||||
msgstr "d<>rlig MX navn"
|
||||
|
||||
#: option.c:2116
|
||||
#: option.c:2129
|
||||
msgid "duplicate CNAME"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2133
|
||||
#: option.c:2146
|
||||
#, fuzzy
|
||||
msgid "bad PTR record"
|
||||
msgstr "d<>rlig SRV post"
|
||||
|
||||
#: option.c:2163
|
||||
#: option.c:2176
|
||||
#, fuzzy
|
||||
msgid "bad NAPTR record"
|
||||
msgstr "d<>rlig SRV post"
|
||||
|
||||
#: option.c:2189
|
||||
#: option.c:2202
|
||||
msgid "TXT record string too long"
|
||||
msgstr "TXT post streng for lang"
|
||||
|
||||
#: option.c:2193
|
||||
#: option.c:2206
|
||||
msgid "bad TXT record"
|
||||
msgstr "d<>rlig TXT post"
|
||||
|
||||
#: option.c:2253
|
||||
#: option.c:2266
|
||||
msgid "bad SRV record"
|
||||
msgstr "d<>rlig SRV post"
|
||||
|
||||
#: option.c:2262
|
||||
#: option.c:2275
|
||||
msgid "bad SRV target"
|
||||
msgstr "d<>rlig SRV m<>l"
|
||||
|
||||
#: option.c:2277
|
||||
#: option.c:2290
|
||||
msgid "invalid priority"
|
||||
msgstr "ugyldig prioritet"
|
||||
|
||||
#: option.c:2284
|
||||
#: option.c:2297
|
||||
msgid "invalid weight"
|
||||
msgstr "ugyldig vekt"
|
||||
|
||||
#: option.c:2320
|
||||
#: option.c:2333
|
||||
#, c-format
|
||||
msgid "files nested too deep in %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2328 tftp.c:503
|
||||
#: option.c:2341 tftp.c:503
|
||||
#, c-format
|
||||
msgid "cannot read %s: %s"
|
||||
msgstr "kan ikke lese %s: %s"
|
||||
|
||||
#: option.c:2389
|
||||
#: option.c:2402
|
||||
msgid "missing \""
|
||||
msgstr "mangler \""
|
||||
|
||||
#: option.c:2436
|
||||
#: option.c:2449
|
||||
msgid "bad option"
|
||||
msgstr "d<>rlig opsjon"
|
||||
|
||||
#: option.c:2438
|
||||
#: option.c:2451
|
||||
msgid "extraneous parameter"
|
||||
msgstr "overfl<66>dig parameter"
|
||||
|
||||
#: option.c:2440
|
||||
#: option.c:2453
|
||||
msgid "missing parameter"
|
||||
msgstr "mangler parameter"
|
||||
|
||||
#: option.c:2448
|
||||
#: option.c:2461
|
||||
msgid "error"
|
||||
msgstr "feil"
|
||||
|
||||
#: option.c:2454
|
||||
#: option.c:2467
|
||||
#, c-format
|
||||
msgid "%s at line %d of %%s"
|
||||
msgstr "%s p<> linje %d av %%s"
|
||||
|
||||
#: option.c:2502 option.c:2532
|
||||
#: option.c:2515 option.c:2546
|
||||
#, fuzzy, c-format
|
||||
msgid "read %s"
|
||||
msgstr "leser %s"
|
||||
|
||||
#: option.c:2599
|
||||
#: option.c:2613
|
||||
#, c-format
|
||||
msgid "Dnsmasq version %s %s\n"
|
||||
msgstr "Dnsmasq versjon %s %s\n"
|
||||
|
||||
#: option.c:2600
|
||||
#: option.c:2614
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Compile time options %s\n"
|
||||
@@ -717,58 +726,58 @@ msgstr ""
|
||||
"Kompileringsopsjoner %s\n"
|
||||
"\n"
|
||||
|
||||
#: option.c:2601
|
||||
#: option.c:2615
|
||||
#, c-format
|
||||
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
msgstr "Denne programvaren kommer med ABSOLUTT INGEN GARANTI.\n"
|
||||
|
||||
#: option.c:2602
|
||||
#: option.c:2616
|
||||
#, c-format
|
||||
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
|
||||
msgstr "DNsmasq er fri programvare, du er velkommen til <20> redistribuere den\n"
|
||||
|
||||
#: option.c:2603
|
||||
#: option.c:2617
|
||||
#, fuzzy, c-format
|
||||
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
|
||||
msgstr "under vilk<6C>rene gitt i GNU General Public License, versjon 2.\n"
|
||||
|
||||
#: option.c:2614
|
||||
#: option.c:2628
|
||||
msgid "try --help"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2616
|
||||
#: option.c:2630
|
||||
msgid "try -w"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2619
|
||||
#: option.c:2633
|
||||
#, fuzzy, c-format
|
||||
msgid "bad command line options: %s"
|
||||
msgstr "d<>rlige kommandlinje opsjoner: %s."
|
||||
|
||||
#: option.c:2660
|
||||
#: option.c:2674
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %s"
|
||||
msgstr "klarer ikke <20> f<> vertsnavn: %s"
|
||||
|
||||
#: option.c:2688
|
||||
#: option.c:2702
|
||||
msgid "only one resolv.conf file allowed in no-poll mode."
|
||||
msgstr "kun en resolv.conf fil tillat i no-poll modus."
|
||||
|
||||
#: option.c:2698
|
||||
#: option.c:2712
|
||||
msgid "must have exactly one resolv.conf to read domain from."
|
||||
msgstr "m<> ha n<>yaktig en resolv.conf <20> lese domene fra."
|
||||
|
||||
#: option.c:2701 network.c:721
|
||||
#: option.c:2715 network.c:730
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr "feilet <20> lese %s: %m"
|
||||
|
||||
#: option.c:2719
|
||||
#: option.c:2733
|
||||
#, c-format
|
||||
msgid "no search directive found in %s"
|
||||
msgstr "intet s<>ke direktiv funnet i %s"
|
||||
|
||||
#: option.c:2740
|
||||
#: option.c:2754
|
||||
msgid "there must be a default domain when --dhcp-fqdn is set"
|
||||
msgstr ""
|
||||
|
||||
@@ -786,78 +795,78 @@ msgstr ""
|
||||
msgid "unknown interface %s in bridge-interface"
|
||||
msgstr "ukjent tilknytning (interface) %s"
|
||||
|
||||
#: network.c:389 dnsmasq.c:186
|
||||
#: network.c:393 dnsmasq.c:186
|
||||
#, c-format
|
||||
msgid "failed to create listening socket: %s"
|
||||
msgstr "feilet <20> lage lytte socket: %s"
|
||||
|
||||
#: network.c:396
|
||||
#: network.c:400
|
||||
#, c-format
|
||||
msgid "failed to set IPV6 options on listening socket: %s"
|
||||
msgstr "feilet <20> sette IPv6 opsjoner p<> lytte socket: %s"
|
||||
|
||||
#: network.c:415
|
||||
#: network.c:426
|
||||
#, c-format
|
||||
msgid "failed to bind listening socket for %s: %s"
|
||||
msgstr "feilet <20> binde lytte socket for %s: %s"
|
||||
|
||||
#: network.c:420
|
||||
#: network.c:431
|
||||
#, c-format
|
||||
msgid "failed to listen on socket: %s"
|
||||
msgstr "feilet <20> lytte p<> socket: %s"
|
||||
|
||||
#: network.c:432
|
||||
#: network.c:443
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to create TFTP socket: %s"
|
||||
msgstr "feilet <20> lage lytte socket: %s"
|
||||
|
||||
#: network.c:628
|
||||
#: network.c:637
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to bind server socket for %s: %s"
|
||||
msgstr "feilet <20> binde lytte socket for %s: %s"
|
||||
|
||||
#: network.c:661
|
||||
#: network.c:670
|
||||
#, c-format
|
||||
msgid "ignoring nameserver %s - local interface"
|
||||
msgstr "ignorerer navnetjener %s - lokal tilknytning"
|
||||
|
||||
#: network.c:672
|
||||
#: network.c:681
|
||||
#, fuzzy, c-format
|
||||
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
|
||||
msgstr "ignorerer navnetjener %s - kan ikke lage/dinde socket: %m"
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "unqualified"
|
||||
msgstr "ikke kvalifisert"
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "names"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:689
|
||||
#: network.c:698
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:691
|
||||
#: network.c:700
|
||||
msgid "domain"
|
||||
msgstr "domene"
|
||||
|
||||
#: network.c:694
|
||||
#: network.c:703
|
||||
#, c-format
|
||||
msgid "using local addresses only for %s %s"
|
||||
msgstr "benytter lokale adresser kun for %s %s"
|
||||
|
||||
#: network.c:696
|
||||
#: network.c:705
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d for %s %s"
|
||||
msgstr "benytter navnetjener %s#%d for %s %s"
|
||||
|
||||
#: network.c:699
|
||||
#: network.c:708
|
||||
#, fuzzy, c-format
|
||||
msgid "using nameserver %s#%d(via %s)"
|
||||
msgstr "benytter navnetjener %s#%d"
|
||||
|
||||
#: network.c:701
|
||||
#: network.c:710
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d"
|
||||
msgstr "benytter navnetjener %s#%d"
|
||||
@@ -1047,21 +1056,21 @@ msgstr ""
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr "feilet <20> f<> tilgang til %s: %m"
|
||||
|
||||
#: dnsmasq.c:860
|
||||
#: dnsmasq.c:863
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr "avslutter etter mottak av SIGTERM"
|
||||
|
||||
#: dnsmasq.c:878
|
||||
#: dnsmasq.c:881
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr "feilet <20> f<> tilgang til %s: %m"
|
||||
|
||||
#: dnsmasq.c:900
|
||||
#: dnsmasq.c:903
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr "leser %s"
|
||||
|
||||
#: dnsmasq.c:911
|
||||
#: dnsmasq.c:914
|
||||
#, fuzzy, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr "intet s<>ke direktiv funnet i %s"
|
||||
@@ -1096,37 +1105,37 @@ msgstr "kan ikke lage ICMP raw socket: %s"
|
||||
msgid "DHCP packet received on %s which has no address"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:382
|
||||
#: dhcp.c:387
|
||||
#, c-format
|
||||
msgid "DHCP range %s -- %s is not consistent with netmask %s"
|
||||
msgstr "DHCP omr<6D>de %s -- %s er ikke konsistent med nettmaske %s"
|
||||
|
||||
#: dhcp.c:719
|
||||
#: dhcp.c:731
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to read %s:%s"
|
||||
msgstr "feilet <20> lese %s: %m"
|
||||
|
||||
#: dhcp.c:755
|
||||
#: dhcp.c:767
|
||||
#, c-format
|
||||
msgid "bad line at %s line %d"
|
||||
msgstr "d<>rlig linje ved %s linje %d"
|
||||
|
||||
#: dhcp.c:870
|
||||
#: dhcp.c:882
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s in dhcp-config directive."
|
||||
msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
|
||||
|
||||
#: dhcp.c:873
|
||||
#: dhcp.c:885
|
||||
#, fuzzy, c-format
|
||||
msgid "duplicate IP address %s in %s."
|
||||
msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
|
||||
|
||||
#: dhcp.c:916
|
||||
#: dhcp.c:928
|
||||
#, c-format
|
||||
msgid "%s has more than one address in hostsfile, using %s for DHCP"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:921
|
||||
#: dhcp.c:933
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s (%s) in dhcp-config directive"
|
||||
msgstr "dubliserte IP adresser i %s (%s) i dhcp-config direktiv"
|
||||
@@ -1155,160 +1164,160 @@ msgstr ""
|
||||
msgid "failed to write %s: %s (retry in %us)"
|
||||
msgstr "feilet <20> lese %s: %m"
|
||||
|
||||
#: rfc2131.c:315
|
||||
#: rfc2131.c:316
|
||||
#, c-format
|
||||
msgid "no address range available for DHCP request %s %s"
|
||||
msgstr "ingen adresse omr<6D>de tilgjengelig for DHCP krav %s %s"
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "with subnet selector"
|
||||
msgstr "med subnet velger"
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "via"
|
||||
msgstr "via"
|
||||
|
||||
#: rfc2131.c:327
|
||||
#: rfc2131.c:328
|
||||
#, c-format
|
||||
msgid "DHCP packet: transaction-id is %u"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:332
|
||||
#: rfc2131.c:333
|
||||
#, c-format
|
||||
msgid "Available DHCP subnet: %s/%s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:334
|
||||
#: rfc2131.c:335
|
||||
#, c-format
|
||||
msgid "Available DHCP range: %s -- %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:362 rfc2131.c:396
|
||||
#: rfc2131.c:363 rfc2131.c:397
|
||||
msgid "disabled"
|
||||
msgstr "deaktivert"
|
||||
|
||||
#: rfc2131.c:411 rfc2131.c:928
|
||||
#: rfc2131.c:412 rfc2131.c:960
|
||||
msgid "address in use"
|
||||
msgstr "adresse i bruk"
|
||||
|
||||
#: rfc2131.c:425 rfc2131.c:765
|
||||
#: rfc2131.c:426 rfc2131.c:797
|
||||
msgid "no address available"
|
||||
msgstr "ingen adresse tilgjengelig"
|
||||
|
||||
#: rfc2131.c:432 rfc2131.c:891
|
||||
#: rfc2131.c:433 rfc2131.c:923
|
||||
msgid "wrong network"
|
||||
msgstr "galt nettverk"
|
||||
|
||||
#: rfc2131.c:445
|
||||
#: rfc2131.c:446
|
||||
msgid "no address configured"
|
||||
msgstr "ingen adresse konfigurert"
|
||||
|
||||
#: rfc2131.c:451 rfc2131.c:941
|
||||
#: rfc2131.c:452 rfc2131.c:973
|
||||
msgid "no leases left"
|
||||
msgstr "ingen leier igjen"
|
||||
|
||||
#: rfc2131.c:640
|
||||
#: rfc2131.c:672
|
||||
#, c-format
|
||||
msgid "Vendor class: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:642
|
||||
#: rfc2131.c:674
|
||||
#, c-format
|
||||
msgid "User class: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:683
|
||||
#: rfc2131.c:715
|
||||
#, fuzzy, c-format
|
||||
msgid "disabling DHCP static address %s for %s"
|
||||
msgstr "deaktiverer DHCP statisk adresse %s"
|
||||
|
||||
#: rfc2131.c:704
|
||||
#: rfc2131.c:736
|
||||
msgid "unknown lease"
|
||||
msgstr "ukjent leie"
|
||||
|
||||
#: rfc2131.c:713 rfc2131.c:1058
|
||||
#: rfc2131.c:745 rfc2131.c:1089
|
||||
msgid "ignored"
|
||||
msgstr "oversett"
|
||||
|
||||
#: rfc2131.c:736
|
||||
#: rfc2131.c:768
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is leased to %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:746
|
||||
#: rfc2131.c:778
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is in use by the server or relay"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:749
|
||||
#: rfc2131.c:781
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it was previously declined"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:763 rfc2131.c:934
|
||||
#: rfc2131.c:795 rfc2131.c:966
|
||||
msgid "no unique-id"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:831
|
||||
#: rfc2131.c:863
|
||||
msgid "wrong server-ID"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:850
|
||||
#: rfc2131.c:882
|
||||
msgid "wrong address"
|
||||
msgstr "gal adresse"
|
||||
|
||||
#: rfc2131.c:867
|
||||
#: rfc2131.c:899
|
||||
msgid "lease not found"
|
||||
msgstr "leie ikke funnet"
|
||||
|
||||
#: rfc2131.c:899
|
||||
#: rfc2131.c:931
|
||||
msgid "address not available"
|
||||
msgstr "adresse ikke tilgjengelig"
|
||||
|
||||
#: rfc2131.c:910
|
||||
#: rfc2131.c:942
|
||||
msgid "static lease available"
|
||||
msgstr "statisk leie tilgjengelig"
|
||||
|
||||
#: rfc2131.c:914
|
||||
#: rfc2131.c:946
|
||||
msgid "address reserved"
|
||||
msgstr "adresse reservert"
|
||||
|
||||
#: rfc2131.c:922
|
||||
#: rfc2131.c:954
|
||||
#, c-format
|
||||
msgid "abandoning lease to %s of %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1356
|
||||
#: rfc2131.c:1391
|
||||
#, c-format
|
||||
msgid "tags: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1443
|
||||
#: rfc2131.c:1478
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
|
||||
msgstr "kan ikke sende DHCP opsjon %d: ikke mer plass i pakken"
|
||||
|
||||
#: rfc2131.c:1599
|
||||
#: rfc2131.c:1678
|
||||
#, c-format
|
||||
msgid "Ignoring domain %s for DHCP host name %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1617
|
||||
#: rfc2131.c:1696
|
||||
#, fuzzy, c-format
|
||||
msgid "requested options: %s"
|
||||
msgstr "kompilerings opsjoner: %s"
|
||||
|
||||
#: rfc2131.c:1666
|
||||
#: rfc2131.c:1746
|
||||
#, fuzzy, c-format
|
||||
msgid "next server: %s"
|
||||
msgstr "DBus feil: %s"
|
||||
|
||||
#: rfc2131.c:1690
|
||||
#: rfc2131.c:1770
|
||||
#, c-format
|
||||
msgid "bootfile name: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1693
|
||||
#: rfc2131.c:1773
|
||||
#, c-format
|
||||
msgid "server name: %s"
|
||||
msgstr ""
|
||||
@@ -1323,24 +1332,24 @@ msgstr "kan ikke binde netlink socket: %s"
|
||||
msgid "netlink returns error: %s"
|
||||
msgstr "DBus feil: %s"
|
||||
|
||||
#: dbus.c:115
|
||||
#: dbus.c:151
|
||||
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
|
||||
msgstr "fors<72>k p<> <20> sette en IPv6 tjener adresse via DBus - ingen IPv6 st<73>tte"
|
||||
|
||||
#: dbus.c:243
|
||||
#: dbus.c:287
|
||||
msgid "setting upstream servers from DBus"
|
||||
msgstr "setter oppstr<74>ms tjener fra DBus"
|
||||
|
||||
#: dbus.c:281
|
||||
#: dbus.c:325
|
||||
msgid "could not register a DBus message handler"
|
||||
msgstr "kunne ikke registrere en DBus meldingsh<73>ndterer"
|
||||
|
||||
#: bpf.c:146
|
||||
#: bpf.c:150
|
||||
#, c-format
|
||||
msgid "cannot create DHCP BPF socket: %s"
|
||||
msgstr "kan ikke lage DHCP BPF socket: %s"
|
||||
|
||||
#: bpf.c:174
|
||||
#: bpf.c:178
|
||||
#, fuzzy, c-format
|
||||
msgid "DHCP request for unsupported hardware type (%d) received on %s"
|
||||
msgstr "DHCP krav for ikke st<73>ttet maskinvare type (%d) mottatt p<> %s"
|
||||
|
||||
291
po/pl.po
291
po/pl.po
@@ -1,17 +1,16 @@
|
||||
# translation of pl.po to Polski
|
||||
# Polish translations for dnsmasq package.
|
||||
# This file is put in the public domain.
|
||||
#
|
||||
# Tomasz Socha<68>ski <nerdhero@gmail.com>, 2005.
|
||||
# Jan Psota <jasiu@belsznica.pl>, 2008.
|
||||
# Jan Psota <jasiu@belsznica.pl>, 2008, 2009.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: pl\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-11-13 20:23+0000\n"
|
||||
"PO-Revision-Date: 2008-10-20 23:37+0200\n"
|
||||
"POT-Creation-Date: 2009-02-02 14:07+0000\n"
|
||||
"PO-Revision-Date: 2009-02-01 01:14+0100\n"
|
||||
"Last-Translator: Jan Psota <jasiu@belsznica.pl>\n"
|
||||
"Language-Team: Polski <pl@li.org>\n"
|
||||
"Language-Team: polski <pl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-2\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -23,17 +22,17 @@ msgstr ""
|
||||
msgid "failed to load names from %s: %s"
|
||||
msgstr "nie potrafi<66> wczyta<74> nazw z %s: %s"
|
||||
|
||||
#: cache.c:795 dhcp.c:768
|
||||
#: cache.c:795 dhcp.c:780
|
||||
#, c-format
|
||||
msgid "bad address at %s line %d"
|
||||
msgstr "b<><62>dny adres w pliku %s, w linii %d"
|
||||
|
||||
#: cache.c:850 dhcp.c:782
|
||||
#: cache.c:850 dhcp.c:794
|
||||
#, c-format
|
||||
msgid "bad name at %s line %d"
|
||||
msgstr "b<><62>dna nazwa w pliku %s, w linii %d"
|
||||
|
||||
#: cache.c:857 dhcp.c:848
|
||||
#: cache.c:857 dhcp.c:860
|
||||
#, c-format
|
||||
msgid "read %s - %d addresses"
|
||||
msgstr "przeczytano %s - %d adres<65>w"
|
||||
@@ -67,26 +66,26 @@ msgstr "%u zapyta
|
||||
msgid "server %s#%d: queries sent %u, retried or failed %u"
|
||||
msgstr "serwer %s#%d: %u zapyta<74> wys<79>anych, %u ponowionych lub nieudanych"
|
||||
|
||||
#: util.c:58
|
||||
#: util.c:56
|
||||
#, c-format
|
||||
msgid "failed to seed the random number generator: %s"
|
||||
msgstr "brak mo<6D>liwo<77>ci u<>ycia generatora liczb losowych: %s"
|
||||
|
||||
#: util.c:166
|
||||
#: util.c:164
|
||||
msgid "could not get memory"
|
||||
msgstr "nie mo<6D>na dosta<74> pami<6D>ci"
|
||||
|
||||
#: util.c:176
|
||||
#: util.c:174
|
||||
#, c-format
|
||||
msgid "cannot create pipe: %s"
|
||||
msgstr "b<><62>d podczas pr<70>by utworzenia potoku: %s"
|
||||
|
||||
#: util.c:184
|
||||
#: util.c:182
|
||||
#, c-format
|
||||
msgid "failed to allocate %d bytes"
|
||||
msgstr "niemo<6D>liwo<77><6F> przydzielenia %d bajt<6A>w pami<6D>ci"
|
||||
|
||||
#: util.c:289
|
||||
#: util.c:287
|
||||
#, c-format
|
||||
msgid "infinite"
|
||||
msgstr "niesko<6B>czona"
|
||||
@@ -461,8 +460,8 @@ msgid "Always perform DNS queries to all servers."
|
||||
msgstr "Jednoczesne odpytywanie wszystkich serwer<65>w nadrz<72>dnych; klientowi przekazywana jest pierwsza odpowied<65>."
|
||||
|
||||
#: option.c:313
|
||||
msgid "Set tag if client includes option in request."
|
||||
msgstr "Przyporz<EFBFBD>dkowanie znacznika je<6A>eli klient przy<7A>le opcj<63> o wskazanym numerze."
|
||||
msgid "Set tag if client includes matching option in request."
|
||||
msgstr "Ustawienie znacznika je<6A>eli w <20><>daniu DHCP pojawi si<73> wskazana opcja, ewentualnie o konkretnej warto<74>ci."
|
||||
|
||||
#: option.c:314
|
||||
msgid "Use alternative ports for DHCP."
|
||||
@@ -488,7 +487,7 @@ msgstr "Przechowywanie w serwerze DNS dnsmasq-a tylko w pe
|
||||
msgid "Specify alias name for LOCAL DNS name."
|
||||
msgstr "Wskazanie synonimu nazwy komputera lokalnego - znanego z /etc/hosts albo z DHCP."
|
||||
|
||||
#: option.c:580
|
||||
#: option.c:589
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage: dnsmasq [options]\n"
|
||||
@@ -497,201 +496,209 @@ msgstr ""
|
||||
"U<>ycie: dnsmasq [opcje]\n"
|
||||
"\n"
|
||||
|
||||
#: option.c:582
|
||||
#: option.c:591
|
||||
#, c-format
|
||||
msgid "Use short options only on the command line.\n"
|
||||
msgstr "W tym systemie w linii polece<63> mo<6D>na u<>ywa<77> wy<77><79>cznie jednoliterowych opcji.\n"
|
||||
|
||||
#: option.c:584
|
||||
#: option.c:593
|
||||
#, c-format
|
||||
msgid "Valid options are:\n"
|
||||
msgstr "Dost<73>pne opcje:\n"
|
||||
|
||||
#: option.c:624
|
||||
#: option.c:633
|
||||
#, c-format
|
||||
msgid "Known DHCP options:\n"
|
||||
msgstr "Znane opcje DHCP:\n"
|
||||
|
||||
#: option.c:697
|
||||
#: option.c:710
|
||||
msgid "bad dhcp-option"
|
||||
msgstr "b<><62>d w dhcp-option"
|
||||
|
||||
#: option.c:753
|
||||
#: option.c:767
|
||||
msgid "bad IP address"
|
||||
msgstr "z<>y adres IP"
|
||||
|
||||
#: option.c:851
|
||||
#: option.c:865
|
||||
msgid "bad domain in dhcp-option"
|
||||
msgstr "nieprawid<69>owa nazwa domeny w dhcp-option"
|
||||
|
||||
#: option.c:909
|
||||
#: option.c:923
|
||||
msgid "dhcp-option too long"
|
||||
msgstr "zbyt d<>uga dhcp-option (>255 znak<61>w)"
|
||||
|
||||
#: option.c:938
|
||||
#: option.c:932
|
||||
msgid "illegal dhcp-match"
|
||||
msgstr "niedopuszczalne dhcp-match"
|
||||
|
||||
#: option.c:967
|
||||
msgid "illegal repeated flag"
|
||||
msgstr "wielokrotne u<>ycie opcji niedozwolone (pojawi<77>a si<73> wcze<7A>niej w linii polece<63>)"
|
||||
|
||||
#: option.c:946
|
||||
#: option.c:975
|
||||
msgid "illegal repeated keyword"
|
||||
msgstr "wielokrotne u<>ycie opcji niedozwolone (pojawi<77>a si<73> wsze<7A>niej w pliku konfiguracyjnym)"
|
||||
|
||||
#: option.c:983
|
||||
#: option.c:1012
|
||||
#, c-format
|
||||
msgid "cannot access directory %s: %s"
|
||||
msgstr "brak dost<73>pu do katalogu %s: %s"
|
||||
|
||||
#: option.c:1002 tftp.c:348
|
||||
#: option.c:1031 tftp.c:348
|
||||
#, c-format
|
||||
msgid "cannot access %s: %s"
|
||||
msgstr "brak dost<73>pu do %s: %s"
|
||||
|
||||
#: option.c:1040
|
||||
#: option.c:1069
|
||||
msgid "only one dhcp-hostsfile allowed"
|
||||
msgstr "mo<6D>na wskaza<7A> tylko jeden plik dhcp-hostsfile"
|
||||
|
||||
#: option.c:1047
|
||||
#: option.c:1076
|
||||
msgid "only one dhcp-optsfile allowed"
|
||||
msgstr "mo<6D>na wskaza<7A> tylko jeden plik dhcp-optsfile"
|
||||
|
||||
#: option.c:1091
|
||||
#: option.c:1120
|
||||
msgid "bad MX preference"
|
||||
msgstr "nieprawid<69>owa warto<74><6F> preferencji MX"
|
||||
|
||||
#: option.c:1095
|
||||
#: option.c:1124
|
||||
msgid "bad MX name"
|
||||
msgstr "nieprawid<69>owa nazwa MX"
|
||||
|
||||
#: option.c:1109
|
||||
#: option.c:1138
|
||||
msgid "bad MX target"
|
||||
msgstr "nieprawid<69>owa warto<74><6F> celu MX"
|
||||
|
||||
#: option.c:1120
|
||||
#: option.c:1149
|
||||
msgid "cannot run scripts under uClinux"
|
||||
msgstr "w uClinuksie nie ma mo<6D>liwo<77>ci uruchamiania skrypt<70>w"
|
||||
|
||||
#: option.c:1352 option.c:1360
|
||||
#: option.c:1375 option.c:1379
|
||||
msgid "bad port"
|
||||
msgstr "nieprawid<69>owy numer portu"
|
||||
|
||||
#: option.c:1380 option.c:1405
|
||||
#: option.c:1398 option.c:1423
|
||||
msgid "interface binding not supported"
|
||||
msgstr "nie ma mo<6D>liwo<77>ci dowi<77>zywania do interfejsu"
|
||||
|
||||
#: option.c:1523
|
||||
#: option.c:1541
|
||||
msgid "bad port range"
|
||||
msgstr "nieprawid<69>owy zakres numer<65>w port<72>w"
|
||||
|
||||
#: option.c:1540
|
||||
#: option.c:1558
|
||||
msgid "bad bridge-interface"
|
||||
msgstr "nieprawid<69>owa nazwa urz<72>dzenia w bridge-interface"
|
||||
|
||||
#: option.c:1581
|
||||
#: option.c:1599
|
||||
msgid "bad dhcp-range"
|
||||
msgstr "nieprawid<69>owy zakres dhcp-range"
|
||||
|
||||
#: option.c:1607
|
||||
#: option.c:1625
|
||||
msgid "only one netid tag allowed"
|
||||
msgstr "mo<6D>na wskaza<7A> tylko jeden znacznik sieci"
|
||||
|
||||
#: option.c:1647
|
||||
#: option.c:1665
|
||||
msgid "inconsistent DHCP range"
|
||||
msgstr "niesp<73>jny zakres adres<65>w DHCP"
|
||||
|
||||
#: option.c:1819
|
||||
#: option.c:1837
|
||||
msgid "bad DHCP host name"
|
||||
msgstr "niedopuszczalna nazwa komputera w dhcp-host"
|
||||
|
||||
#: option.c:1998 option.c:2270
|
||||
#: option.c:2012 option.c:2283
|
||||
msgid "invalid port number"
|
||||
msgstr "nieprawid<69>owy numer portu"
|
||||
|
||||
#: option.c:2093
|
||||
#: option.c:2094
|
||||
msgid "invalid alias range"
|
||||
msgstr "nieprawid<69>owy zakres adres<65>w w --alias"
|
||||
|
||||
#: option.c:2106
|
||||
msgid "bad interface name"
|
||||
msgstr "nieprawid<69>owa nazwa interfejsu"
|
||||
|
||||
#: option.c:2116
|
||||
#: option.c:2129
|
||||
msgid "duplicate CNAME"
|
||||
msgstr "powt<77>rzona CNAME"
|
||||
|
||||
#: option.c:2133
|
||||
#: option.c:2146
|
||||
msgid "bad PTR record"
|
||||
msgstr "nieprawid<69>owy zapis rekordu PTR"
|
||||
|
||||
#: option.c:2163
|
||||
#: option.c:2176
|
||||
msgid "bad NAPTR record"
|
||||
msgstr "nieprawid<69>owy zapis rekordu NAPTR"
|
||||
|
||||
#: option.c:2189
|
||||
#: option.c:2202
|
||||
msgid "TXT record string too long"
|
||||
msgstr "zbyt d<>ugi rekord TXT"
|
||||
|
||||
#: option.c:2193
|
||||
#: option.c:2206
|
||||
msgid "bad TXT record"
|
||||
msgstr "nieprawid<69>owy zapis rekordu TXT"
|
||||
|
||||
#: option.c:2253
|
||||
#: option.c:2266
|
||||
msgid "bad SRV record"
|
||||
msgstr "nieprawid<69>owy zapis rekordu SRV"
|
||||
|
||||
#: option.c:2262
|
||||
#: option.c:2275
|
||||
msgid "bad SRV target"
|
||||
msgstr "nieprawid<69>owa warto<74><6F> celu SRV"
|
||||
|
||||
#: option.c:2277
|
||||
#: option.c:2290
|
||||
msgid "invalid priority"
|
||||
msgstr "nieprawid<69>owy priorytet"
|
||||
|
||||
#: option.c:2284
|
||||
#: option.c:2297
|
||||
msgid "invalid weight"
|
||||
msgstr "nieprawid<69>owa waga"
|
||||
|
||||
#: option.c:2320
|
||||
#: option.c:2333
|
||||
#, c-format
|
||||
msgid "files nested too deep in %s"
|
||||
msgstr "zbyt du<64>e zag<61><67>bienie plik<69>w w %s"
|
||||
|
||||
#: option.c:2328 tftp.c:503
|
||||
#: option.c:2341 tftp.c:503
|
||||
#, c-format
|
||||
msgid "cannot read %s: %s"
|
||||
msgstr "b<><62>d odczytu z pliku %s: %s"
|
||||
|
||||
#: option.c:2389
|
||||
#: option.c:2402
|
||||
msgid "missing \""
|
||||
msgstr "brakuje \""
|
||||
|
||||
#: option.c:2436
|
||||
#: option.c:2449
|
||||
msgid "bad option"
|
||||
msgstr "nieprawid<69>owa opcja"
|
||||
|
||||
#: option.c:2438
|
||||
#: option.c:2451
|
||||
msgid "extraneous parameter"
|
||||
msgstr "nadwy<77>kowy parametr"
|
||||
|
||||
#: option.c:2440
|
||||
#: option.c:2453
|
||||
msgid "missing parameter"
|
||||
msgstr "brak parametru"
|
||||
|
||||
#: option.c:2448
|
||||
#: option.c:2461
|
||||
msgid "error"
|
||||
msgstr "b<><62>d"
|
||||
|
||||
#: option.c:2454
|
||||
#: option.c:2467
|
||||
#, c-format
|
||||
msgid "%s at line %d of %%s"
|
||||
msgstr "%s w linii %d pliku %%s"
|
||||
|
||||
#: option.c:2502 option.c:2532
|
||||
#: option.c:2515 option.c:2546
|
||||
#, c-format
|
||||
msgid "read %s"
|
||||
msgstr "przeczyta<74>em %s"
|
||||
|
||||
#: option.c:2599
|
||||
#: option.c:2613
|
||||
#, c-format
|
||||
msgid "Dnsmasq version %s %s\n"
|
||||
msgstr "Dnsmasq, wersja %s %s\n"
|
||||
|
||||
#: option.c:2600
|
||||
#: option.c:2614
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Compile time options %s\n"
|
||||
@@ -700,58 +707,58 @@ msgstr ""
|
||||
"Wkompilowane opcje %s\n"
|
||||
"\n"
|
||||
|
||||
#: option.c:2601
|
||||
#: option.c:2615
|
||||
#, c-format
|
||||
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
msgstr "To oprogramowanie nie daje <20>adnych gwarancji.\n"
|
||||
|
||||
#: option.c:2602
|
||||
#: option.c:2616
|
||||
#, c-format
|
||||
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
|
||||
msgstr "Dnsmasq jest wolnym oprogramowaniem, mo<6D>esz go rozprowadza<7A>\n"
|
||||
|
||||
#: option.c:2603
|
||||
#: option.c:2617
|
||||
#, c-format
|
||||
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
|
||||
msgstr "na warunkach okre<72>lonych w GNU General Public Licence, w wersji 2 lub 3.\n"
|
||||
|
||||
#: option.c:2614
|
||||
#: option.c:2628
|
||||
msgid "try --help"
|
||||
msgstr "spr<70>buj: --help"
|
||||
|
||||
#: option.c:2616
|
||||
#: option.c:2630
|
||||
msgid "try -w"
|
||||
msgstr "spr<70>buj: -w"
|
||||
|
||||
#: option.c:2619
|
||||
#: option.c:2633
|
||||
#, c-format
|
||||
msgid "bad command line options: %s"
|
||||
msgstr "nieprawid<69>owa opcja w linii polece<63> %s"
|
||||
|
||||
#: option.c:2660
|
||||
#: option.c:2674
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %s"
|
||||
msgstr "nie mo<6D>na pobra<72> nazwy hosta: %s"
|
||||
|
||||
#: option.c:2688
|
||||
#: option.c:2702
|
||||
msgid "only one resolv.conf file allowed in no-poll mode."
|
||||
msgstr "w trybie no-poll mo<6D>na wskaza<7A> najwy<77>ej jeden plik resolv.conf."
|
||||
|
||||
#: option.c:2698
|
||||
#: option.c:2712
|
||||
msgid "must have exactly one resolv.conf to read domain from."
|
||||
msgstr "musisz mie<69> dok<6F>adnie jeden plik resolv.conf do odczytu domen."
|
||||
|
||||
#: option.c:2701 network.c:721
|
||||
#: option.c:2715 network.c:730
|
||||
#, c-format
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr "nie uda<64>o si<73> odczyta<74> %s: %s"
|
||||
|
||||
#: option.c:2719
|
||||
#: option.c:2733
|
||||
#, c-format
|
||||
msgid "no search directive found in %s"
|
||||
msgstr "brak wytycznych wyszukiwania w %s"
|
||||
|
||||
#: option.c:2740
|
||||
#: option.c:2754
|
||||
msgid "there must be a default domain when --dhcp-fqdn is set"
|
||||
msgstr "w przypadku u<>ywania --dhcp-fqdn trzeba wskaza<7A> domy<6D>ln<6C> domen<65>"
|
||||
|
||||
@@ -769,78 +776,78 @@ msgstr "prawdopodobnie wykryto atak DNS-rebind"
|
||||
msgid "unknown interface %s in bridge-interface"
|
||||
msgstr "nieznany interfejs %s w bridge-u"
|
||||
|
||||
#: network.c:389 dnsmasq.c:186
|
||||
#: network.c:393 dnsmasq.c:186
|
||||
#, c-format
|
||||
msgid "failed to create listening socket: %s"
|
||||
msgstr "b<><62>d podczas tworzenia gniazda: %s"
|
||||
|
||||
#: network.c:396
|
||||
#: network.c:400
|
||||
#, c-format
|
||||
msgid "failed to set IPV6 options on listening socket: %s"
|
||||
msgstr "b<><62>d ustawiania opcji IPV6 na nas<61>uchuj<75>cym gnie<69>dzie: %s"
|
||||
|
||||
#: network.c:415
|
||||
#: network.c:426
|
||||
#, c-format
|
||||
msgid "failed to bind listening socket for %s: %s"
|
||||
msgstr "b<><62>d przy przyznawaniu nazwy gniazdu %s: %s"
|
||||
|
||||
#: network.c:420
|
||||
#: network.c:431
|
||||
#, c-format
|
||||
msgid "failed to listen on socket: %s"
|
||||
msgstr "b<><62>d przy w<><77>czaniu nas<61>uchu na gnie<69>dzie: %s"
|
||||
|
||||
#: network.c:432
|
||||
#: network.c:443
|
||||
#, c-format
|
||||
msgid "failed to create TFTP socket: %s"
|
||||
msgstr "nie powiod<6F>o si<73> otwieranie gniazda dla us<75>ugi TFTP: %s"
|
||||
|
||||
#: network.c:628
|
||||
#: network.c:637
|
||||
#, c-format
|
||||
msgid "failed to bind server socket for %s: %s"
|
||||
msgstr "b<><62>d przy przyznawaniu nazwy gniazdu serwera %s: %s"
|
||||
|
||||
#: network.c:661
|
||||
#: network.c:670
|
||||
#, c-format
|
||||
msgid "ignoring nameserver %s - local interface"
|
||||
msgstr "ignorowanie serwera nazw %s - interfejs lokalny"
|
||||
|
||||
#: network.c:672
|
||||
#: network.c:681
|
||||
#, c-format
|
||||
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
|
||||
msgstr "ignorowanie serwera nazw %s - nie mo<6D>na utworzy<7A>/dowi<77>za<7A> gniazda: %s"
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "unqualified"
|
||||
msgstr "niekwalifikowane(-a)"
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "names"
|
||||
msgstr "nazwy"
|
||||
|
||||
#: network.c:689
|
||||
#: network.c:698
|
||||
msgid "default"
|
||||
msgstr "domy<6D>lne"
|
||||
|
||||
#: network.c:691
|
||||
#: network.c:700
|
||||
msgid "domain"
|
||||
msgstr "domena"
|
||||
|
||||
#: network.c:694
|
||||
#: network.c:703
|
||||
#, c-format
|
||||
msgid "using local addresses only for %s %s"
|
||||
msgstr "u<>ywam adres<65>w lokalnych tylko dla %s %s"
|
||||
|
||||
#: network.c:696
|
||||
#: network.c:705
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d for %s %s"
|
||||
msgstr "u<>ywam serwera nazw %s#%d dla %s %s"
|
||||
|
||||
#: network.c:699
|
||||
#: network.c:708
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d(via %s)"
|
||||
msgstr "u<>ywam serwera nazw %s#%d (przez %s)"
|
||||
|
||||
#: network.c:701
|
||||
#: network.c:710
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d"
|
||||
msgstr "u<>ywam serwera nazw %s#%d"
|
||||
@@ -1027,21 +1034,21 @@ msgstr "proces potomny zako
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr "nie uda<64>o si<73> uruchomi<6D> %s: %s"
|
||||
|
||||
#: dnsmasq.c:860
|
||||
#: dnsmasq.c:863
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr "zako<6B>czy<7A>em dzia<69>anie z powodu odebrania SIGTERM"
|
||||
|
||||
#: dnsmasq.c:878
|
||||
#: dnsmasq.c:881
|
||||
#, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr "brak dost<73>pu do %s: %s"
|
||||
|
||||
#: dnsmasq.c:900
|
||||
#: dnsmasq.c:903
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr "czytanie %s"
|
||||
|
||||
#: dnsmasq.c:911
|
||||
#: dnsmasq.c:914
|
||||
#, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr "w %s nie znalaz<61>em serwer<65>w, spr<70>buj<75> ponownie p<><70>niej"
|
||||
@@ -1076,37 +1083,37 @@ msgstr "nie uda
|
||||
msgid "DHCP packet received on %s which has no address"
|
||||
msgstr "<22><>danie DHCP odebrano na interfejsie %s, kt<6B>ry nie ma adresu"
|
||||
|
||||
#: dhcp.c:382
|
||||
#: dhcp.c:387
|
||||
#, c-format
|
||||
msgid "DHCP range %s -- %s is not consistent with netmask %s"
|
||||
msgstr "zakres adres<65>w DHCP %s -- %s jest niesp<73>jny z mask<73> sieci %s"
|
||||
|
||||
#: dhcp.c:719
|
||||
#: dhcp.c:731
|
||||
#, c-format
|
||||
msgid "failed to read %s:%s"
|
||||
msgstr "b<><62>d odczytu %s: %s"
|
||||
|
||||
#: dhcp.c:755
|
||||
#: dhcp.c:767
|
||||
#, c-format
|
||||
msgid "bad line at %s line %d"
|
||||
msgstr "z<>a zawarto<74><6F> pliku %s, w linii %d"
|
||||
|
||||
#: dhcp.c:870
|
||||
#: dhcp.c:882
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s in dhcp-config directive."
|
||||
msgstr "powt<77>rzony adres IP (%s) w parametrze dhcp-config"
|
||||
|
||||
#: dhcp.c:873
|
||||
#: dhcp.c:885
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s in %s."
|
||||
msgstr "powt<77>rzony adres IP (%s) w pliku %s"
|
||||
|
||||
#: dhcp.c:916
|
||||
#: dhcp.c:928
|
||||
#, c-format
|
||||
msgid "%s has more than one address in hostsfile, using %s for DHCP"
|
||||
msgstr "do komputera o nazwie %s pasuje wi<77>cej ni<6E> jeden adres, w odpowiedzi DHCP wysy<73>am %s"
|
||||
|
||||
#: dhcp.c:921
|
||||
#: dhcp.c:933
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s (%s) in dhcp-config directive"
|
||||
msgstr "powt<77>rzenie adresu IP %s (%s) w opcji dhcp-config"
|
||||
@@ -1135,160 +1142,160 @@ msgstr "skrypt zako
|
||||
msgid "failed to write %s: %s (retry in %us)"
|
||||
msgstr "b<><62>d zapisu do %s: %s (spr<70>buj<75> ponownie za %us)"
|
||||
|
||||
#: rfc2131.c:315
|
||||
#: rfc2131.c:316
|
||||
#, c-format
|
||||
msgid "no address range available for DHCP request %s %s"
|
||||
msgstr "nie zdefiniowano zakresu adres<65>w odpowiedniego dla <20><>dania %s %s"
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "with subnet selector"
|
||||
msgstr "z wyborem podsieci"
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "via"
|
||||
msgstr "przez"
|
||||
|
||||
#: rfc2131.c:327
|
||||
#: rfc2131.c:328
|
||||
#, c-format
|
||||
msgid "DHCP packet: transaction-id is %u"
|
||||
msgstr "pakiet DHCP, id transakcji: %u"
|
||||
|
||||
#: rfc2131.c:332
|
||||
#: rfc2131.c:333
|
||||
#, c-format
|
||||
msgid "Available DHCP subnet: %s/%s"
|
||||
msgstr "Dost<73>pna podsie<69> DHCP: %s/%s"
|
||||
|
||||
#: rfc2131.c:334
|
||||
#: rfc2131.c:335
|
||||
#, c-format
|
||||
msgid "Available DHCP range: %s -- %s"
|
||||
msgstr "Zakres adres<65>w na u<>ytek DHCP: %s -- %s"
|
||||
|
||||
#: rfc2131.c:362 rfc2131.c:396
|
||||
#: rfc2131.c:363 rfc2131.c:397
|
||||
msgid "disabled"
|
||||
msgstr "wy<77><79>czony(a)"
|
||||
|
||||
#: rfc2131.c:411 rfc2131.c:928
|
||||
#: rfc2131.c:412 rfc2131.c:960
|
||||
msgid "address in use"
|
||||
msgstr "adres jest w u<>yciu"
|
||||
|
||||
#: rfc2131.c:425 rfc2131.c:765
|
||||
#: rfc2131.c:426 rfc2131.c:797
|
||||
msgid "no address available"
|
||||
msgstr "brak dost<73>pnego adresu"
|
||||
|
||||
#: rfc2131.c:432 rfc2131.c:891
|
||||
#: rfc2131.c:433 rfc2131.c:923
|
||||
msgid "wrong network"
|
||||
msgstr "nieprawid<69>owa sie<69>"
|
||||
|
||||
#: rfc2131.c:445
|
||||
#: rfc2131.c:446
|
||||
msgid "no address configured"
|
||||
msgstr "brak skonfigurowanego adresu"
|
||||
|
||||
#: rfc2131.c:451 rfc2131.c:941
|
||||
#: rfc2131.c:452 rfc2131.c:973
|
||||
msgid "no leases left"
|
||||
msgstr "brak wolnych dzier<65>aw"
|
||||
|
||||
#: rfc2131.c:640
|
||||
#: rfc2131.c:672
|
||||
#, c-format
|
||||
msgid "Vendor class: %s"
|
||||
msgstr "Typ klienta: %s"
|
||||
|
||||
#: rfc2131.c:642
|
||||
#: rfc2131.c:674
|
||||
#, c-format
|
||||
msgid "User class: %s"
|
||||
msgstr "Klasa u<>ytkownika: %s"
|
||||
|
||||
#: rfc2131.c:683
|
||||
#: rfc2131.c:715
|
||||
#, c-format
|
||||
msgid "disabling DHCP static address %s for %s"
|
||||
msgstr "wy<77><79>czam statyczne przypisanie adresu %s dla %s"
|
||||
|
||||
#: rfc2131.c:704
|
||||
#: rfc2131.c:736
|
||||
msgid "unknown lease"
|
||||
msgstr "nieznana dzier<65>awa"
|
||||
|
||||
#: rfc2131.c:713 rfc2131.c:1058
|
||||
#: rfc2131.c:745 rfc2131.c:1089
|
||||
msgid "ignored"
|
||||
msgstr "ignoruj<75>"
|
||||
|
||||
#: rfc2131.c:736
|
||||
#: rfc2131.c:768
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is leased to %s"
|
||||
msgstr "nie proponuj<75> zak<61>adanego w konfiguracji adresu %s, bo jest on ju<6A> wydzier<65>awiony komputerowi %s"
|
||||
|
||||
#: rfc2131.c:746
|
||||
#: rfc2131.c:778
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is in use by the server or relay"
|
||||
msgstr "nie proponuj<75> zak<61>adanego w konfiguracji adresu %s, bo u<>ywa go kt<6B>ry<72> z serwer<65>w"
|
||||
|
||||
#: rfc2131.c:749
|
||||
#: rfc2131.c:781
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it was previously declined"
|
||||
msgstr "nie proponuj<75> zak<61>adanego w konfiguracji adresu %s, bo ju<6A> poprzednio zosta<74> odrzucony"
|
||||
|
||||
#: rfc2131.c:763 rfc2131.c:934
|
||||
#: rfc2131.c:795 rfc2131.c:966
|
||||
msgid "no unique-id"
|
||||
msgstr "brak unikalnego id"
|
||||
|
||||
#: rfc2131.c:831
|
||||
#: rfc2131.c:863
|
||||
msgid "wrong server-ID"
|
||||
msgstr "nieprawid<69>owy identyfikator serwera (server-ID)"
|
||||
|
||||
#: rfc2131.c:850
|
||||
#: rfc2131.c:882
|
||||
msgid "wrong address"
|
||||
msgstr "b<><62>dny adres"
|
||||
|
||||
#: rfc2131.c:867
|
||||
#: rfc2131.c:899
|
||||
msgid "lease not found"
|
||||
msgstr "dzier<65>awa nieznaleziona"
|
||||
|
||||
#: rfc2131.c:899
|
||||
#: rfc2131.c:931
|
||||
msgid "address not available"
|
||||
msgstr "adres niedost<73>pny"
|
||||
|
||||
#: rfc2131.c:910
|
||||
#: rfc2131.c:942
|
||||
msgid "static lease available"
|
||||
msgstr "dost<73>pna statyczna dzier<65>awa"
|
||||
|
||||
#: rfc2131.c:914
|
||||
#: rfc2131.c:946
|
||||
msgid "address reserved"
|
||||
msgstr "adres zarezerwowany"
|
||||
|
||||
#: rfc2131.c:922
|
||||
#: rfc2131.c:954
|
||||
#, c-format
|
||||
msgid "abandoning lease to %s of %s"
|
||||
msgstr "porzucam przypisanie do %s nazwy %s"
|
||||
|
||||
#: rfc2131.c:1356
|
||||
#: rfc2131.c:1391
|
||||
#, c-format
|
||||
msgid "tags: %s"
|
||||
msgstr "znaczniki: %s"
|
||||
|
||||
#: rfc2131.c:1443
|
||||
#: rfc2131.c:1478
|
||||
#, c-format
|
||||
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
|
||||
msgstr "nie mam mo<6D>liwo<77>ci wys<79>ania opcji %d DHCP/BOOTP: niedostateczna ilo<6C><6F> miejsca w pakiecie"
|
||||
|
||||
#: rfc2131.c:1599
|
||||
#: rfc2131.c:1678
|
||||
#, c-format
|
||||
msgid "Ignoring domain %s for DHCP host name %s"
|
||||
msgstr "Nie uwzgl<67>dniam cz<63><7A>ci domenowej (%s) dla komputera %s"
|
||||
|
||||
#: rfc2131.c:1617
|
||||
#: rfc2131.c:1696
|
||||
#, c-format
|
||||
msgid "requested options: %s"
|
||||
msgstr "wskazane opcje: %s"
|
||||
|
||||
#: rfc2131.c:1666
|
||||
#: rfc2131.c:1746
|
||||
#, c-format
|
||||
msgid "next server: %s"
|
||||
msgstr "nast<73>pny serwer: %s"
|
||||
|
||||
#: rfc2131.c:1690
|
||||
#: rfc2131.c:1770
|
||||
#, c-format
|
||||
msgid "bootfile name: %s"
|
||||
msgstr "nazwa pliku bootowania: %s"
|
||||
|
||||
#: rfc2131.c:1693
|
||||
#: rfc2131.c:1773
|
||||
#, c-format
|
||||
msgid "server name: %s"
|
||||
msgstr "nazwa serwera: %s"
|
||||
@@ -1303,24 +1310,24 @@ msgstr "nie potrafi
|
||||
msgid "netlink returns error: %s"
|
||||
msgstr "wyst<73>pi<70> b<><62>d w po<70><6F>czeniu netlink %s"
|
||||
|
||||
#: dbus.c:115
|
||||
#: dbus.c:151
|
||||
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
|
||||
msgstr "pr<70>ba ustawienia adresu IPv6 serwera przez DBus, ale brak obs<62>ugi IPv6"
|
||||
|
||||
#: dbus.c:243
|
||||
#: dbus.c:287
|
||||
msgid "setting upstream servers from DBus"
|
||||
msgstr "ustawiam adresy serwer<65>w nadrz<72>dnych na podstawie informacji odebranych z DBus"
|
||||
|
||||
#: dbus.c:281
|
||||
#: dbus.c:325
|
||||
msgid "could not register a DBus message handler"
|
||||
msgstr "nie mo<6D>na zarejestrowa<77> uchwytu DBus"
|
||||
|
||||
#: bpf.c:146
|
||||
#: bpf.c:150
|
||||
#, c-format
|
||||
msgid "cannot create DHCP BPF socket: %s"
|
||||
msgstr "nie potrafi<66> utworzy<7A> gniazda DHCP BPF: %s"
|
||||
|
||||
#: bpf.c:174
|
||||
#: bpf.c:178
|
||||
#, c-format
|
||||
msgid "DHCP request for unsupported hardware type (%d) received on %s"
|
||||
msgstr "<22><>danie DHCP od urz<72>dzenia nieobs<62>ugiwanego typu (%d) odebrano na %s"
|
||||
|
||||
282
po/pt_BR.po
282
po/pt_BR.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dnsmasq 2.26\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-11-13 20:23+0000\n"
|
||||
"POT-Creation-Date: 2009-02-02 14:07+0000\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: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cache.c:795 dhcp.c:768
|
||||
#: cache.c:795 dhcp.c:780
|
||||
#, c-format
|
||||
msgid "bad address at %s line %d"
|
||||
msgstr ""
|
||||
|
||||
#: cache.c:850 dhcp.c:782
|
||||
#: cache.c:850 dhcp.c:794
|
||||
#, c-format
|
||||
msgid "bad name at %s line %d"
|
||||
msgstr ""
|
||||
|
||||
#: cache.c:857 dhcp.c:848
|
||||
#: cache.c:857 dhcp.c:860
|
||||
#, c-format
|
||||
msgid "read %s - %d addresses"
|
||||
msgstr ""
|
||||
@@ -64,26 +64,26 @@ msgstr ""
|
||||
msgid "server %s#%d: queries sent %u, retried or failed %u"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:58
|
||||
#: util.c:56
|
||||
#, c-format
|
||||
msgid "failed to seed the random number generator: %s"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:166
|
||||
#: util.c:164
|
||||
msgid "could not get memory"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:176
|
||||
#: util.c:174
|
||||
#, c-format
|
||||
msgid "cannot create pipe: %s"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:184
|
||||
#: util.c:182
|
||||
#, c-format
|
||||
msgid "failed to allocate %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:289
|
||||
#: util.c:287
|
||||
#, c-format
|
||||
msgid "infinite"
|
||||
msgstr ""
|
||||
@@ -458,7 +458,7 @@ msgid "Always perform DNS queries to all servers."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:313
|
||||
msgid "Set tag if client includes option in request."
|
||||
msgid "Set tag if client includes matching option in request."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:314
|
||||
@@ -485,266 +485,274 @@ msgstr ""
|
||||
msgid "Specify alias name for LOCAL DNS name."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:580
|
||||
#: option.c:589
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage: dnsmasq [options]\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:582
|
||||
#: option.c:591
|
||||
#, c-format
|
||||
msgid "Use short options only on the command line.\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:584
|
||||
#: option.c:593
|
||||
#, c-format
|
||||
msgid "Valid options are:\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:624
|
||||
#: option.c:633
|
||||
#, c-format
|
||||
msgid "Known DHCP options:\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:697
|
||||
#: option.c:710
|
||||
msgid "bad dhcp-option"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:753
|
||||
#: option.c:767
|
||||
msgid "bad IP address"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:851
|
||||
#: option.c:865
|
||||
msgid "bad domain in dhcp-option"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:909
|
||||
#: option.c:923
|
||||
msgid "dhcp-option too long"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:938
|
||||
#: option.c:932
|
||||
msgid "illegal dhcp-match"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:967
|
||||
msgid "illegal repeated flag"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:946
|
||||
#: option.c:975
|
||||
msgid "illegal repeated keyword"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:983
|
||||
#: option.c:1012
|
||||
#, c-format
|
||||
msgid "cannot access directory %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1002 tftp.c:348
|
||||
#: option.c:1031 tftp.c:348
|
||||
#, c-format
|
||||
msgid "cannot access %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1040
|
||||
#: option.c:1069
|
||||
msgid "only one dhcp-hostsfile allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1047
|
||||
#: option.c:1076
|
||||
msgid "only one dhcp-optsfile allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1091
|
||||
#: option.c:1120
|
||||
msgid "bad MX preference"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1095
|
||||
#: option.c:1124
|
||||
msgid "bad MX name"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1109
|
||||
#: option.c:1138
|
||||
msgid "bad MX target"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1120
|
||||
#: option.c:1149
|
||||
msgid "cannot run scripts under uClinux"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1352 option.c:1360
|
||||
#: option.c:1375 option.c:1379
|
||||
msgid "bad port"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1380 option.c:1405
|
||||
#: option.c:1398 option.c:1423
|
||||
msgid "interface binding not supported"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1523
|
||||
#: option.c:1541
|
||||
msgid "bad port range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1540
|
||||
#: option.c:1558
|
||||
msgid "bad bridge-interface"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1581
|
||||
#: option.c:1599
|
||||
msgid "bad dhcp-range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1607
|
||||
#: option.c:1625
|
||||
msgid "only one netid tag allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1647
|
||||
#: option.c:1665
|
||||
msgid "inconsistent DHCP range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1819
|
||||
#: option.c:1837
|
||||
msgid "bad DHCP host name"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1998 option.c:2270
|
||||
#: option.c:2012 option.c:2283
|
||||
msgid "invalid port number"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2093
|
||||
#: option.c:2094
|
||||
msgid "invalid alias range"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2106
|
||||
msgid "bad interface name"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2116
|
||||
#: option.c:2129
|
||||
msgid "duplicate CNAME"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2133
|
||||
#: option.c:2146
|
||||
msgid "bad PTR record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2163
|
||||
#: option.c:2176
|
||||
msgid "bad NAPTR record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2189
|
||||
#: option.c:2202
|
||||
msgid "TXT record string too long"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2193
|
||||
#: option.c:2206
|
||||
msgid "bad TXT record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2253
|
||||
#: option.c:2266
|
||||
msgid "bad SRV record"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2262
|
||||
#: option.c:2275
|
||||
msgid "bad SRV target"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2277
|
||||
#: option.c:2290
|
||||
msgid "invalid priority"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2284
|
||||
#: option.c:2297
|
||||
msgid "invalid weight"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2320
|
||||
#: option.c:2333
|
||||
#, c-format
|
||||
msgid "files nested too deep in %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2328 tftp.c:503
|
||||
#: option.c:2341 tftp.c:503
|
||||
#, c-format
|
||||
msgid "cannot read %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2389
|
||||
#: option.c:2402
|
||||
msgid "missing \""
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2436
|
||||
#: option.c:2449
|
||||
msgid "bad option"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2438
|
||||
#: option.c:2451
|
||||
msgid "extraneous parameter"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2440
|
||||
#: option.c:2453
|
||||
msgid "missing parameter"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2448
|
||||
#: option.c:2461
|
||||
msgid "error"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2454
|
||||
#: option.c:2467
|
||||
#, c-format
|
||||
msgid "%s at line %d of %%s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2502 option.c:2532
|
||||
#: option.c:2515 option.c:2546
|
||||
#, c-format
|
||||
msgid "read %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2599
|
||||
#: option.c:2613
|
||||
#, c-format
|
||||
msgid "Dnsmasq version %s %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2600
|
||||
#: option.c:2614
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Compile time options %s\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2601
|
||||
#: option.c:2615
|
||||
#, c-format
|
||||
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2602
|
||||
#: option.c:2616
|
||||
#, c-format
|
||||
msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2603
|
||||
#: option.c:2617
|
||||
#, c-format
|
||||
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2614
|
||||
#: option.c:2628
|
||||
msgid "try --help"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2616
|
||||
#: option.c:2630
|
||||
msgid "try -w"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2619
|
||||
#: option.c:2633
|
||||
#, c-format
|
||||
msgid "bad command line options: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2660
|
||||
#: option.c:2674
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2688
|
||||
#: option.c:2702
|
||||
msgid "only one resolv.conf file allowed in no-poll mode."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2698
|
||||
#: option.c:2712
|
||||
msgid "must have exactly one resolv.conf to read domain from."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2701 network.c:721
|
||||
#: option.c:2715 network.c:730
|
||||
#, c-format
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2719
|
||||
#: option.c:2733
|
||||
#, c-format
|
||||
msgid "no search directive found in %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2740
|
||||
#: option.c:2754
|
||||
msgid "there must be a default domain when --dhcp-fqdn is set"
|
||||
msgstr ""
|
||||
|
||||
@@ -762,78 +770,78 @@ msgstr ""
|
||||
msgid "unknown interface %s in bridge-interface"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:389 dnsmasq.c:186
|
||||
#: network.c:393 dnsmasq.c:186
|
||||
#, c-format
|
||||
msgid "failed to create listening socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:396
|
||||
#: network.c:400
|
||||
#, c-format
|
||||
msgid "failed to set IPV6 options on listening socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:415
|
||||
#: network.c:426
|
||||
#, c-format
|
||||
msgid "failed to bind listening socket for %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:420
|
||||
#: network.c:431
|
||||
#, c-format
|
||||
msgid "failed to listen on socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:432
|
||||
#: network.c:443
|
||||
#, c-format
|
||||
msgid "failed to create TFTP socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:628
|
||||
#: network.c:637
|
||||
#, c-format
|
||||
msgid "failed to bind server socket for %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:661
|
||||
#: network.c:670
|
||||
#, c-format
|
||||
msgid "ignoring nameserver %s - local interface"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:672
|
||||
#: network.c:681
|
||||
#, c-format
|
||||
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "unqualified"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "names"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:689
|
||||
#: network.c:698
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:691
|
||||
#: network.c:700
|
||||
msgid "domain"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:694
|
||||
#: network.c:703
|
||||
#, c-format
|
||||
msgid "using local addresses only for %s %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:696
|
||||
#: network.c:705
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d for %s %s"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:699
|
||||
#: network.c:708
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d(via %s)"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:701
|
||||
#: network.c:710
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d"
|
||||
msgstr ""
|
||||
@@ -1020,21 +1028,21 @@ msgstr ""
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:860
|
||||
#: dnsmasq.c:863
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:878
|
||||
#: dnsmasq.c:881
|
||||
#, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:900
|
||||
#: dnsmasq.c:903
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr ""
|
||||
|
||||
#: dnsmasq.c:911
|
||||
#: dnsmasq.c:914
|
||||
#, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr ""
|
||||
@@ -1069,37 +1077,37 @@ msgstr ""
|
||||
msgid "DHCP packet received on %s which has no address"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:382
|
||||
#: dhcp.c:387
|
||||
#, c-format
|
||||
msgid "DHCP range %s -- %s is not consistent with netmask %s"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:719
|
||||
#: dhcp.c:731
|
||||
#, c-format
|
||||
msgid "failed to read %s:%s"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:755
|
||||
#: dhcp.c:767
|
||||
#, c-format
|
||||
msgid "bad line at %s line %d"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:870
|
||||
#: dhcp.c:882
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s in dhcp-config directive."
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:873
|
||||
#: dhcp.c:885
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s in %s."
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:916
|
||||
#: dhcp.c:928
|
||||
#, c-format
|
||||
msgid "%s has more than one address in hostsfile, using %s for DHCP"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:921
|
||||
#: dhcp.c:933
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s (%s) in dhcp-config directive"
|
||||
msgstr ""
|
||||
@@ -1128,160 +1136,160 @@ msgstr ""
|
||||
msgid "failed to write %s: %s (retry in %us)"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:315
|
||||
#: rfc2131.c:316
|
||||
#, c-format
|
||||
msgid "no address range available for DHCP request %s %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "with subnet selector"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "via"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:327
|
||||
#: rfc2131.c:328
|
||||
#, c-format
|
||||
msgid "DHCP packet: transaction-id is %u"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:332
|
||||
#: rfc2131.c:333
|
||||
#, c-format
|
||||
msgid "Available DHCP subnet: %s/%s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:334
|
||||
#: rfc2131.c:335
|
||||
#, c-format
|
||||
msgid "Available DHCP range: %s -- %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:362 rfc2131.c:396
|
||||
#: rfc2131.c:363 rfc2131.c:397
|
||||
msgid "disabled"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:411 rfc2131.c:928
|
||||
#: rfc2131.c:412 rfc2131.c:960
|
||||
msgid "address in use"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:425 rfc2131.c:765
|
||||
#: rfc2131.c:426 rfc2131.c:797
|
||||
msgid "no address available"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:432 rfc2131.c:891
|
||||
#: rfc2131.c:433 rfc2131.c:923
|
||||
msgid "wrong network"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:445
|
||||
#: rfc2131.c:446
|
||||
msgid "no address configured"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:451 rfc2131.c:941
|
||||
#: rfc2131.c:452 rfc2131.c:973
|
||||
msgid "no leases left"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:640
|
||||
#: rfc2131.c:672
|
||||
#, c-format
|
||||
msgid "Vendor class: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:642
|
||||
#: rfc2131.c:674
|
||||
#, c-format
|
||||
msgid "User class: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:683
|
||||
#: rfc2131.c:715
|
||||
#, c-format
|
||||
msgid "disabling DHCP static address %s for %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:704
|
||||
#: rfc2131.c:736
|
||||
msgid "unknown lease"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:713 rfc2131.c:1058
|
||||
#: rfc2131.c:745 rfc2131.c:1089
|
||||
msgid "ignored"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:736
|
||||
#: rfc2131.c:768
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is leased to %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:746
|
||||
#: rfc2131.c:778
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is in use by the server or relay"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:749
|
||||
#: rfc2131.c:781
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it was previously declined"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:763 rfc2131.c:934
|
||||
#: rfc2131.c:795 rfc2131.c:966
|
||||
msgid "no unique-id"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:831
|
||||
#: rfc2131.c:863
|
||||
msgid "wrong server-ID"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:850
|
||||
#: rfc2131.c:882
|
||||
msgid "wrong address"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:867
|
||||
#: rfc2131.c:899
|
||||
msgid "lease not found"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:899
|
||||
#: rfc2131.c:931
|
||||
msgid "address not available"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:910
|
||||
#: rfc2131.c:942
|
||||
msgid "static lease available"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:914
|
||||
#: rfc2131.c:946
|
||||
msgid "address reserved"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:922
|
||||
#: rfc2131.c:954
|
||||
#, c-format
|
||||
msgid "abandoning lease to %s of %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1356
|
||||
#: rfc2131.c:1391
|
||||
#, c-format
|
||||
msgid "tags: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1443
|
||||
#: rfc2131.c:1478
|
||||
#, c-format
|
||||
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1599
|
||||
#: rfc2131.c:1678
|
||||
#, c-format
|
||||
msgid "Ignoring domain %s for DHCP host name %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1617
|
||||
#: rfc2131.c:1696
|
||||
#, c-format
|
||||
msgid "requested options: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1666
|
||||
#: rfc2131.c:1746
|
||||
#, c-format
|
||||
msgid "next server: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1690
|
||||
#: rfc2131.c:1770
|
||||
#, c-format
|
||||
msgid "bootfile name: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1693
|
||||
#: rfc2131.c:1773
|
||||
#, c-format
|
||||
msgid "server name: %s"
|
||||
msgstr ""
|
||||
@@ -1296,24 +1304,24 @@ msgstr ""
|
||||
msgid "netlink returns error: %s"
|
||||
msgstr ""
|
||||
|
||||
#: dbus.c:115
|
||||
#: dbus.c:151
|
||||
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
|
||||
msgstr ""
|
||||
|
||||
#: dbus.c:243
|
||||
#: dbus.c:287
|
||||
msgid "setting upstream servers from DBus"
|
||||
msgstr ""
|
||||
|
||||
#: dbus.c:281
|
||||
#: dbus.c:325
|
||||
msgid "could not register a DBus message handler"
|
||||
msgstr ""
|
||||
|
||||
#: bpf.c:146
|
||||
#: bpf.c:150
|
||||
#, c-format
|
||||
msgid "cannot create DHCP BPF socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: bpf.c:174
|
||||
#: bpf.c:178
|
||||
#, c-format
|
||||
msgid "DHCP request for unsupported hardware type (%d) received on %s"
|
||||
msgstr ""
|
||||
|
||||
283
po/ro.po
283
po/ro.po
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dnsmasq 2.24\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-11-13 20:23+0000\n"
|
||||
"POT-Creation-Date: 2009-02-02 14:07+0000\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: %s"
|
||||
msgstr "încărcarea numelor din %s: %m a eşuat"
|
||||
|
||||
#: cache.c:795 dhcp.c:768
|
||||
#: cache.c:795 dhcp.c:780
|
||||
#, c-format
|
||||
msgid "bad address at %s line %d"
|
||||
msgstr "adresă greşită în %s, linia %d"
|
||||
|
||||
#: cache.c:850 dhcp.c:782
|
||||
#: cache.c:850 dhcp.c:794
|
||||
#, c-format
|
||||
msgid "bad name at %s line %d"
|
||||
msgstr "nume greşit în %s linia %d"
|
||||
|
||||
#: cache.c:857 dhcp.c:848
|
||||
#: cache.c:857 dhcp.c:860
|
||||
#, c-format
|
||||
msgid "read %s - %d addresses"
|
||||
msgstr "citesc %s - %d adrese"
|
||||
@@ -64,26 +64,26 @@ msgstr ""
|
||||
msgid "server %s#%d: queries sent %u, retried or failed %u"
|
||||
msgstr ""
|
||||
|
||||
#: util.c:58
|
||||
#: util.c:56
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to seed the random number generator: %s"
|
||||
msgstr "ascultarea pe socket a eşuat: %s"
|
||||
|
||||
#: util.c:166
|
||||
#: util.c:164
|
||||
msgid "could not get memory"
|
||||
msgstr "nu am putut aloca memorie"
|
||||
|
||||
#: util.c:176
|
||||
#: util.c:174
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot create pipe: %s"
|
||||
msgstr "nu pot citi %s: %s"
|
||||
|
||||
#: util.c:184
|
||||
#: util.c:182
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to allocate %d bytes"
|
||||
msgstr "nu pot încărca %s: %n"
|
||||
|
||||
#: util.c:289
|
||||
#: util.c:287
|
||||
#, c-format
|
||||
msgid "infinite"
|
||||
msgstr "infinit"
|
||||
@@ -469,7 +469,7 @@ msgid "Always perform DNS queries to all servers."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:313
|
||||
msgid "Set tag if client includes option in request."
|
||||
msgid "Set tag if client includes matching option in request."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:314
|
||||
@@ -497,7 +497,7 @@ msgstr ""
|
||||
msgid "Specify alias name for LOCAL DNS name."
|
||||
msgstr ""
|
||||
|
||||
#: option.c:580
|
||||
#: option.c:589
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage: dnsmasq [options]\n"
|
||||
@@ -506,207 +506,216 @@ msgstr ""
|
||||
"Utilizare: dnsmasq [opţiuni]\n"
|
||||
"\n"
|
||||
|
||||
#: option.c:582
|
||||
#: option.c:591
|
||||
#, 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:584
|
||||
#: option.c:593
|
||||
#, fuzzy, c-format
|
||||
msgid "Valid options are:\n"
|
||||
msgstr "Opţiunile valide sunt:\n"
|
||||
|
||||
#: option.c:624
|
||||
#: option.c:633
|
||||
#, c-format
|
||||
msgid "Known DHCP options:\n"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:697
|
||||
#: option.c:710
|
||||
msgid "bad dhcp-option"
|
||||
msgstr "dhcp-option invalid"
|
||||
|
||||
#: option.c:753
|
||||
#: option.c:767
|
||||
#, fuzzy
|
||||
msgid "bad IP address"
|
||||
msgstr "citesc %s - %d adrese"
|
||||
|
||||
#: option.c:851
|
||||
#: option.c:865
|
||||
msgid "bad domain in dhcp-option"
|
||||
msgstr "domeniu DNS invalid în declaraţia dhcp-option"
|
||||
|
||||
#: option.c:909
|
||||
#: option.c:923
|
||||
msgid "dhcp-option too long"
|
||||
msgstr "declararea dhcp-option este prea lungă"
|
||||
|
||||
#: option.c:938
|
||||
#: option.c:932
|
||||
msgid "illegal dhcp-match"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:967
|
||||
msgid "illegal repeated flag"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:946
|
||||
#: option.c:975
|
||||
msgid "illegal repeated keyword"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:983
|
||||
#: option.c:1012
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot access directory %s: %s"
|
||||
msgstr "nu pot citi %s: %s"
|
||||
|
||||
#: option.c:1002 tftp.c:348
|
||||
#: option.c:1031 tftp.c:348
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot access %s: %s"
|
||||
msgstr "nu pot citi %s: %s"
|
||||
|
||||
#: option.c:1040
|
||||
#: option.c:1069
|
||||
msgid "only one dhcp-hostsfile allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1047
|
||||
#: option.c:1076
|
||||
msgid "only one dhcp-optsfile allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1091
|
||||
#: option.c:1120
|
||||
msgid "bad MX preference"
|
||||
msgstr "preferinţă MX invalidă"
|
||||
|
||||
#: option.c:1095
|
||||
#: option.c:1124
|
||||
msgid "bad MX name"
|
||||
msgstr "nume MX invalid"
|
||||
|
||||
#: option.c:1109
|
||||
#: option.c:1138
|
||||
msgid "bad MX target"
|
||||
msgstr "ţintă MX invalidă"
|
||||
|
||||
#: option.c:1120
|
||||
#: option.c:1149
|
||||
msgid "cannot run scripts under uClinux"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1352 option.c:1360
|
||||
#: option.c:1375 option.c:1379
|
||||
msgid "bad port"
|
||||
msgstr "port invalid"
|
||||
|
||||
#: option.c:1380 option.c:1405
|
||||
#: option.c:1398 option.c:1423
|
||||
msgid "interface binding not supported"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1523
|
||||
#: option.c:1541
|
||||
#, fuzzy
|
||||
msgid "bad port range"
|
||||
msgstr "port invalid"
|
||||
|
||||
#: option.c:1540
|
||||
#: option.c:1558
|
||||
msgid "bad bridge-interface"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1581
|
||||
#: option.c:1599
|
||||
msgid "bad dhcp-range"
|
||||
msgstr "dhcp-range invalid"
|
||||
|
||||
#: option.c:1607
|
||||
#: option.c:1625
|
||||
msgid "only one netid tag allowed"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:1647
|
||||
#: option.c:1665
|
||||
msgid "inconsistent DHCP range"
|
||||
msgstr "domeniu DHCP inconsistent"
|
||||
|
||||
#: option.c:1819
|
||||
#: option.c:1837
|
||||
#, fuzzy
|
||||
msgid "bad DHCP host name"
|
||||
msgstr "nume MX invalid"
|
||||
|
||||
#: option.c:1998 option.c:2270
|
||||
#: option.c:2012 option.c:2283
|
||||
msgid "invalid port number"
|
||||
msgstr "număr de port invalid"
|
||||
|
||||
#: option.c:2093
|
||||
#: option.c:2094
|
||||
#, fuzzy
|
||||
msgid "invalid alias range"
|
||||
msgstr "pondere invalidă"
|
||||
|
||||
#: option.c:2106
|
||||
#, fuzzy
|
||||
msgid "bad interface name"
|
||||
msgstr "nume MX invalid"
|
||||
|
||||
#: option.c:2116
|
||||
#: option.c:2129
|
||||
msgid "duplicate CNAME"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2133
|
||||
#: option.c:2146
|
||||
#, fuzzy
|
||||
msgid "bad PTR record"
|
||||
msgstr "înregistrare SRV invalidă"
|
||||
|
||||
#: option.c:2163
|
||||
#: option.c:2176
|
||||
#, fuzzy
|
||||
msgid "bad NAPTR record"
|
||||
msgstr "înregistrare SRV invalidă"
|
||||
|
||||
#: option.c:2189
|
||||
#: option.c:2202
|
||||
msgid "TXT record string too long"
|
||||
msgstr "şirul de caractere pentru înregistrarea TXT este prea lung"
|
||||
|
||||
#: option.c:2193
|
||||
#: option.c:2206
|
||||
msgid "bad TXT record"
|
||||
msgstr "înregistrare TXT invalidă"
|
||||
|
||||
#: option.c:2253
|
||||
#: option.c:2266
|
||||
msgid "bad SRV record"
|
||||
msgstr "înregistrare SRV invalidă"
|
||||
|
||||
#: option.c:2262
|
||||
#: option.c:2275
|
||||
msgid "bad SRV target"
|
||||
msgstr "ţintă SRV invalidă"
|
||||
|
||||
#: option.c:2277
|
||||
#: option.c:2290
|
||||
msgid "invalid priority"
|
||||
msgstr "prioritate invalidă"
|
||||
|
||||
#: option.c:2284
|
||||
#: option.c:2297
|
||||
msgid "invalid weight"
|
||||
msgstr "pondere invalidă"
|
||||
|
||||
#: option.c:2320
|
||||
#: option.c:2333
|
||||
#, c-format
|
||||
msgid "files nested too deep in %s"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2328 tftp.c:503
|
||||
#: option.c:2341 tftp.c:503
|
||||
#, c-format
|
||||
msgid "cannot read %s: %s"
|
||||
msgstr "nu pot citi %s: %s"
|
||||
|
||||
#: option.c:2389
|
||||
#: option.c:2402
|
||||
msgid "missing \""
|
||||
msgstr "lipseşte \""
|
||||
|
||||
#: option.c:2436
|
||||
#: option.c:2449
|
||||
msgid "bad option"
|
||||
msgstr "opţiune invalidă"
|
||||
|
||||
#: option.c:2438
|
||||
#: option.c:2451
|
||||
msgid "extraneous parameter"
|
||||
msgstr "parametru nerecunoscut"
|
||||
|
||||
#: option.c:2440
|
||||
#: option.c:2453
|
||||
msgid "missing parameter"
|
||||
msgstr "parametru lipsa"
|
||||
|
||||
#: option.c:2448
|
||||
#: option.c:2461
|
||||
msgid "error"
|
||||
msgstr "eroare"
|
||||
|
||||
#: option.c:2454
|
||||
#: option.c:2467
|
||||
#, c-format
|
||||
msgid "%s at line %d of %%s"
|
||||
msgstr "%s la linia %d din %%s"
|
||||
|
||||
#: option.c:2502 option.c:2532
|
||||
#: option.c:2515 option.c:2546
|
||||
#, fuzzy, c-format
|
||||
msgid "read %s"
|
||||
msgstr "citesc %s"
|
||||
|
||||
#: option.c:2599
|
||||
#: option.c:2613
|
||||
#, c-format
|
||||
msgid "Dnsmasq version %s %s\n"
|
||||
msgstr "dnsmasq versiunea %s %s\n"
|
||||
|
||||
#: option.c:2600
|
||||
#: option.c:2614
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Compile time options %s\n"
|
||||
@@ -715,58 +724,58 @@ msgstr ""
|
||||
"Opţiuni cu care a fost compilat %s\n"
|
||||
"\n"
|
||||
|
||||
#: option.c:2601
|
||||
#: option.c:2615
|
||||
#, c-format
|
||||
msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
|
||||
msgstr "Acest program vine FĂRĂ NICI O GARANŢIE.\n"
|
||||
|
||||
#: option.c:2602
|
||||
#: option.c:2616
|
||||
#, 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:2603
|
||||
#: option.c:2617
|
||||
#, fuzzy, c-format
|
||||
msgid "under the terms of the GNU General Public License, version 2 or 3.\n"
|
||||
msgstr "în termenii Licenţei publice generale GNU, versiunea 2.\n"
|
||||
|
||||
#: option.c:2614
|
||||
#: option.c:2628
|
||||
msgid "try --help"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2616
|
||||
#: option.c:2630
|
||||
msgid "try -w"
|
||||
msgstr ""
|
||||
|
||||
#: option.c:2619
|
||||
#: option.c:2633
|
||||
#, fuzzy, c-format
|
||||
msgid "bad command line options: %s"
|
||||
msgstr "opţiuni în linie de comandă invalide: %s."
|
||||
|
||||
#: option.c:2660
|
||||
#: option.c:2674
|
||||
#, c-format
|
||||
msgid "cannot get host-name: %s"
|
||||
msgstr "nu pot citi numele maşinii: %s"
|
||||
|
||||
#: option.c:2688
|
||||
#: option.c:2702
|
||||
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:2698
|
||||
#: option.c:2712
|
||||
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:2701 network.c:721
|
||||
#: option.c:2715 network.c:730
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to read %s: %s"
|
||||
msgstr "nu pot citi %s: %n"
|
||||
|
||||
#: option.c:2719
|
||||
#: option.c:2733
|
||||
#, c-format
|
||||
msgid "no search directive found in %s"
|
||||
msgstr "nu s-a găsit nici un criteriu de căutare în %s"
|
||||
|
||||
#: option.c:2740
|
||||
#: option.c:2754
|
||||
msgid "there must be a default domain when --dhcp-fqdn is set"
|
||||
msgstr ""
|
||||
|
||||
@@ -784,78 +793,78 @@ msgstr ""
|
||||
msgid "unknown interface %s in bridge-interface"
|
||||
msgstr "interfaţă necunoscută %s"
|
||||
|
||||
#: network.c:389 dnsmasq.c:186
|
||||
#: network.c:393 dnsmasq.c:186
|
||||
#, c-format
|
||||
msgid "failed to create listening socket: %s"
|
||||
msgstr "creearea socket-ului de ascultare a eşuat: %s"
|
||||
|
||||
#: network.c:396
|
||||
#: network.c:400
|
||||
#, 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:415
|
||||
#: network.c:426
|
||||
#, 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:420
|
||||
#: network.c:431
|
||||
#, c-format
|
||||
msgid "failed to listen on socket: %s"
|
||||
msgstr "ascultarea pe socket a eşuat: %s"
|
||||
|
||||
#: network.c:432
|
||||
#: network.c:443
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to create TFTP socket: %s"
|
||||
msgstr "creearea socket-ului de ascultare a eşuat: %s"
|
||||
|
||||
#: network.c:628
|
||||
#: network.c:637
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to bind server socket for %s: %s"
|
||||
msgstr "activarea socket-ului de ascultare pentru %s a eşuat: %s"
|
||||
|
||||
#: network.c:661
|
||||
#: network.c:670
|
||||
#, c-format
|
||||
msgid "ignoring nameserver %s - local interface"
|
||||
msgstr "ignorăm serverul DNS %s - interfaţă locală"
|
||||
|
||||
#: network.c:672
|
||||
#: network.c:681
|
||||
#, fuzzy, c-format
|
||||
msgid "ignoring nameserver %s - cannot make/bind socket: %s"
|
||||
msgstr "ignorăm serverul DNS %s - nu pot creea/activa socket-ul: %s"
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "unqualified"
|
||||
msgstr "invalid"
|
||||
|
||||
#: network.c:687
|
||||
#: network.c:696
|
||||
msgid "names"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:689
|
||||
#: network.c:698
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
#: network.c:691
|
||||
#: network.c:700
|
||||
msgid "domain"
|
||||
msgstr "domeniu"
|
||||
|
||||
#: network.c:694
|
||||
#: network.c:703
|
||||
#, c-format
|
||||
msgid "using local addresses only for %s %s"
|
||||
msgstr "folosim adresele locale doar pentru %S %s"
|
||||
|
||||
#: network.c:696
|
||||
#: network.c:705
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d for %s %s"
|
||||
msgstr "folosim serverul DNS %s#%d pentru %s %s"
|
||||
|
||||
#: network.c:699
|
||||
#: network.c:708
|
||||
#, fuzzy, c-format
|
||||
msgid "using nameserver %s#%d(via %s)"
|
||||
msgstr "folosim serverul DNS %s#%d"
|
||||
|
||||
#: network.c:701
|
||||
#: network.c:710
|
||||
#, c-format
|
||||
msgid "using nameserver %s#%d"
|
||||
msgstr "folosim serverul DNS %s#%d"
|
||||
@@ -1048,21 +1057,21 @@ msgstr ""
|
||||
msgid "failed to execute %s: %s"
|
||||
msgstr "accesarea serverului %s a eşuat: %n"
|
||||
|
||||
#: dnsmasq.c:860
|
||||
#: dnsmasq.c:863
|
||||
msgid "exiting on receipt of SIGTERM"
|
||||
msgstr "am primit SIGTERM, am terminat"
|
||||
|
||||
#: dnsmasq.c:878
|
||||
#: dnsmasq.c:881
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to access %s: %s"
|
||||
msgstr "accesarea serverului %s a eşuat: %n"
|
||||
|
||||
#: dnsmasq.c:900
|
||||
#: dnsmasq.c:903
|
||||
#, c-format
|
||||
msgid "reading %s"
|
||||
msgstr "citesc %s"
|
||||
|
||||
#: dnsmasq.c:911
|
||||
#: dnsmasq.c:914
|
||||
#, fuzzy, c-format
|
||||
msgid "no servers found in %s, will retry"
|
||||
msgstr "nu s-a găsit nici un criteriu de căutare în %s"
|
||||
@@ -1097,37 +1106,37 @@ msgstr "nu pot creea socket ICMP raw: %s."
|
||||
msgid "DHCP packet received on %s which has no address"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:382
|
||||
#: dhcp.c:387
|
||||
#, 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:719
|
||||
#: dhcp.c:731
|
||||
#, fuzzy, c-format
|
||||
msgid "failed to read %s:%s"
|
||||
msgstr "nu pot citi %s: %n"
|
||||
|
||||
#: dhcp.c:755
|
||||
#: dhcp.c:767
|
||||
#, c-format
|
||||
msgid "bad line at %s line %d"
|
||||
msgstr "linie invalidă în %s rândul %d"
|
||||
|
||||
#: dhcp.c:870
|
||||
#: dhcp.c:882
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s in dhcp-config directive."
|
||||
msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
|
||||
|
||||
#: dhcp.c:873
|
||||
#: dhcp.c:885
|
||||
#, fuzzy, c-format
|
||||
msgid "duplicate IP address %s in %s."
|
||||
msgstr "adresă IP duplicat %s în declaraţia dhcp-config."
|
||||
|
||||
#: dhcp.c:916
|
||||
#: dhcp.c:928
|
||||
#, c-format
|
||||
msgid "%s has more than one address in hostsfile, using %s for DHCP"
|
||||
msgstr ""
|
||||
|
||||
#: dhcp.c:921
|
||||
#: dhcp.c:933
|
||||
#, c-format
|
||||
msgid "duplicate IP address %s (%s) in dhcp-config directive"
|
||||
msgstr "adresă IP duplicat %s (%s) în declaraţia dhcp-config."
|
||||
@@ -1156,160 +1165,160 @@ msgstr ""
|
||||
msgid "failed to write %s: %s (retry in %us)"
|
||||
msgstr "nu pot citi %s: %n"
|
||||
|
||||
#: rfc2131.c:315
|
||||
#: rfc2131.c:316
|
||||
#, 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:316
|
||||
#: rfc2131.c:317
|
||||
msgid "with subnet selector"
|
||||
msgstr "cu selectorul de subreţea"
|
||||
|
||||
#: rfc2131.c:316
|
||||
#: rfc2131.c:317
|
||||
msgid "via"
|
||||
msgstr "prin"
|
||||
|
||||
#: rfc2131.c:327
|
||||
#: rfc2131.c:328
|
||||
#, c-format
|
||||
msgid "DHCP packet: transaction-id is %u"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:332
|
||||
#: rfc2131.c:333
|
||||
#, c-format
|
||||
msgid "Available DHCP subnet: %s/%s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:334
|
||||
#: rfc2131.c:335
|
||||
#, c-format
|
||||
msgid "Available DHCP range: %s -- %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:362 rfc2131.c:396
|
||||
#: rfc2131.c:363 rfc2131.c:397
|
||||
msgid "disabled"
|
||||
msgstr "dezactivat"
|
||||
|
||||
#: rfc2131.c:411 rfc2131.c:928
|
||||
#: rfc2131.c:412 rfc2131.c:960
|
||||
msgid "address in use"
|
||||
msgstr "adresa este folosită"
|
||||
|
||||
#: rfc2131.c:425 rfc2131.c:765
|
||||
#: rfc2131.c:426 rfc2131.c:797
|
||||
msgid "no address available"
|
||||
msgstr "nici o adresă disponibilă"
|
||||
|
||||
#: rfc2131.c:432 rfc2131.c:891
|
||||
#: rfc2131.c:433 rfc2131.c:923
|
||||
msgid "wrong network"
|
||||
msgstr "reţea greşită"
|
||||
|
||||
#: rfc2131.c:445
|
||||
#: rfc2131.c:446
|
||||
msgid "no address configured"
|
||||
msgstr "adresă lipsă"
|
||||
|
||||
#: rfc2131.c:451 rfc2131.c:941
|
||||
#: rfc2131.c:452 rfc2131.c:973
|
||||
msgid "no leases left"
|
||||
msgstr "nu mai am de unde să împrumut"
|
||||
|
||||
#: rfc2131.c:640
|
||||
#: rfc2131.c:672
|
||||
#, c-format
|
||||
msgid "Vendor class: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:642
|
||||
#: rfc2131.c:674
|
||||
#, c-format
|
||||
msgid "User class: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:683
|
||||
#: rfc2131.c:715
|
||||
#, fuzzy, c-format
|
||||
msgid "disabling DHCP static address %s for %s"
|
||||
msgstr "dezactivăm adresele DHCP statice %s"
|
||||
|
||||
#: rfc2131.c:704
|
||||
#: rfc2131.c:736
|
||||
msgid "unknown lease"
|
||||
msgstr "împrumut necunoscut"
|
||||
|
||||
#: rfc2131.c:713 rfc2131.c:1058
|
||||
#: rfc2131.c:745 rfc2131.c:1089
|
||||
msgid "ignored"
|
||||
msgstr "ignorat"
|
||||
|
||||
#: rfc2131.c:736
|
||||
#: rfc2131.c:768
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is leased to %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:746
|
||||
#: rfc2131.c:778
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it is in use by the server or relay"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:749
|
||||
#: rfc2131.c:781
|
||||
#, c-format
|
||||
msgid "not using configured address %s because it was previously declined"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:763 rfc2131.c:934
|
||||
#: rfc2131.c:795 rfc2131.c:966
|
||||
msgid "no unique-id"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:831
|
||||
#: rfc2131.c:863
|
||||
msgid "wrong server-ID"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:850
|
||||
#: rfc2131.c:882
|
||||
msgid "wrong address"
|
||||
msgstr "adresă greşită"
|
||||
|
||||
#: rfc2131.c:867
|
||||
#: rfc2131.c:899
|
||||
msgid "lease not found"
|
||||
msgstr "împrumutul nu a fost găsit"
|
||||
|
||||
#: rfc2131.c:899
|
||||
#: rfc2131.c:931
|
||||
msgid "address not available"
|
||||
msgstr "adresă indisponibilă"
|
||||
|
||||
#: rfc2131.c:910
|
||||
#: rfc2131.c:942
|
||||
msgid "static lease available"
|
||||
msgstr "împrumut static este disponibil"
|
||||
|
||||
#: rfc2131.c:914
|
||||
#: rfc2131.c:946
|
||||
msgid "address reserved"
|
||||
msgstr "adresă rezervată"
|
||||
|
||||
#: rfc2131.c:922
|
||||
#: rfc2131.c:954
|
||||
#, c-format
|
||||
msgid "abandoning lease to %s of %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1356
|
||||
#: rfc2131.c:1391
|
||||
#, c-format
|
||||
msgid "tags: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1443
|
||||
#: rfc2131.c:1478
|
||||
#, fuzzy, c-format
|
||||
msgid "cannot send DHCP/BOOTP option %d: no space left in packet"
|
||||
msgstr "nu pot trimite opţiunea DHCP %d: nu mai este loc în pachet"
|
||||
|
||||
#: rfc2131.c:1599
|
||||
#: rfc2131.c:1678
|
||||
#, c-format
|
||||
msgid "Ignoring domain %s for DHCP host name %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1617
|
||||
#: rfc2131.c:1696
|
||||
#, fuzzy, c-format
|
||||
msgid "requested options: %s"
|
||||
msgstr "compilat cu opţiunile: %s"
|
||||
|
||||
#: rfc2131.c:1666
|
||||
#: rfc2131.c:1746
|
||||
#, fuzzy, c-format
|
||||
msgid "next server: %s"
|
||||
msgstr "eroare DBus: %s"
|
||||
|
||||
#: rfc2131.c:1690
|
||||
#: rfc2131.c:1770
|
||||
#, c-format
|
||||
msgid "bootfile name: %s"
|
||||
msgstr ""
|
||||
|
||||
#: rfc2131.c:1693
|
||||
#: rfc2131.c:1773
|
||||
#, c-format
|
||||
msgid "server name: %s"
|
||||
msgstr ""
|
||||
@@ -1324,24 +1333,24 @@ msgstr "nu pot să activez socket-ul netlink: %s"
|
||||
msgid "netlink returns error: %s"
|
||||
msgstr "eroare DBus: %s"
|
||||
|
||||
#: dbus.c:115
|
||||
#: dbus.c:151
|
||||
msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
|
||||
msgstr "incerc să configurez un server IPv6 prin Dbus - nu este suport IPv6"
|
||||
|
||||
#: dbus.c:243
|
||||
#: dbus.c:287
|
||||
msgid "setting upstream servers from DBus"
|
||||
msgstr "configurăm serverele superioare prin Dbus"
|
||||
|
||||
#: dbus.c:281
|
||||
#: dbus.c:325
|
||||
msgid "could not register a DBus message handler"
|
||||
msgstr "nu pot activa o interfaţă de mesaje DBus"
|
||||
|
||||
#: bpf.c:146
|
||||
#: bpf.c:150
|
||||
#, c-format
|
||||
msgid "cannot create DHCP BPF socket: %s"
|
||||
msgstr "nu pot creea socket DHCP BPF: %s"
|
||||
|
||||
#: bpf.c:174
|
||||
#: bpf.c:178
|
||||
#, 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"
|
||||
|
||||
18
src/bpf.c
18
src/bpf.c
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "dnsmasq.h"
|
||||
@@ -63,16 +63,20 @@ int iface_enumerate(void *parm, int (*ipv4_callback)(), int (*ipv6_callback)())
|
||||
}
|
||||
}
|
||||
|
||||
for (ptr = ifc.ifc_buf; ptr < ifc.ifc_buf + ifc.ifc_len; ptr += len )
|
||||
for (ptr = ifc.ifc_buf; ptr < (char *)(ifc.ifc_buf + ifc.ifc_len); ptr += len)
|
||||
{
|
||||
/* subsequent entries may not be aligned, so copy into
|
||||
an aligned buffer to avoid nasty complaints about
|
||||
unaligned accesses. */
|
||||
#ifdef HAVE_SOCKADDR_SA_LEN
|
||||
len = ((struct ifreq *)ptr)->ifr_addr.sa_len + offsetof(struct ifreq, ifr_ifru);
|
||||
#else
|
||||
|
||||
len = sizeof(struct ifreq);
|
||||
|
||||
#ifdef HAVE_SOCKADDR_SA_LEN
|
||||
ifr = (struct ifreq *)ptr;
|
||||
if (ifr->ifr_addr.sa_len > sizeof(ifr->ifr_ifru))
|
||||
len = ifr->ifr_addr.sa_len + offsetof(struct ifreq, ifr_ifru);
|
||||
#endif
|
||||
|
||||
if (!expand_buf(&ifreq, len))
|
||||
goto err;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "dnsmasq.h"
|
||||
|
||||
36
src/config.h
36
src/config.h
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,11 +10,11 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#define VERSION "2.46"
|
||||
#define VERSION "2.47"
|
||||
|
||||
#define FTABSIZ 150 /* max number of outstanding requests (default) */
|
||||
#define MAX_PROCS 20 /* max no children for TCP requests */
|
||||
@@ -38,18 +38,25 @@
|
||||
# define RESOLVFILE "/etc/resolv.conf"
|
||||
#endif
|
||||
#define RUNFILE "/var/run/dnsmasq.pid"
|
||||
#if defined(__FreeBSD__) || defined (__OpenBSD__) || defined(__DragonFly__)
|
||||
# define LEASEFILE "/var/db/dnsmasq.leases"
|
||||
#elif defined(__sun__) || defined (__sun)
|
||||
# define LEASEFILE "/var/cache/dnsmasq.leases"
|
||||
#else
|
||||
# define LEASEFILE "/var/lib/misc/dnsmasq.leases"
|
||||
|
||||
#ifndef LEASEFILE
|
||||
# if defined(__FreeBSD__) || defined (__OpenBSD__) || defined(__DragonFly__) || defined(__NetBSD__)
|
||||
# define LEASEFILE "/var/db/dnsmasq.leases"
|
||||
# elif defined(__sun__) || defined (__sun)
|
||||
# define LEASEFILE "/var/cache/dnsmasq.leases"
|
||||
# else
|
||||
# define LEASEFILE "/var/lib/misc/dnsmasq.leases"
|
||||
# endif
|
||||
#endif
|
||||
#if defined(__FreeBSD__)
|
||||
# define CONFFILE "/usr/local/etc/dnsmasq.conf"
|
||||
#else
|
||||
# define CONFFILE "/etc/dnsmasq.conf"
|
||||
|
||||
#ifndef CONFFILE
|
||||
# if defined(__FreeBSD__)
|
||||
# define CONFFILE "/usr/local/etc/dnsmasq.conf"
|
||||
# else
|
||||
# define CONFFILE "/etc/dnsmasq.conf"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define DEFLEASE 3600 /* default lease time, 1 hour */
|
||||
#define CHUSER "nobody"
|
||||
#define CHGRP "dip"
|
||||
@@ -61,6 +68,7 @@
|
||||
#define TFTP_MAX_CONNECTIONS 50 /* max simultaneous connections */
|
||||
#define LOG_MAX 5 /* log-queue length */
|
||||
#define RANDFILE "/dev/urandom"
|
||||
#define DAD_WAIT 20 /* retry binding IPv6 sockets for this long */
|
||||
|
||||
/* DBUS interface specifics */
|
||||
#define DNSMASQ_SERVICE "uk.org.thekelleys.dnsmasq"
|
||||
|
||||
52
src/dbus.c
52
src/dbus.c
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "dnsmasq.h"
|
||||
@@ -21,6 +21,42 @@
|
||||
#define DBUS_API_SUBJECT_TO_CHANGE
|
||||
#include <dbus/dbus.h>
|
||||
|
||||
const char* introspection_xml =
|
||||
"<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\"\n"
|
||||
"\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n"
|
||||
"<node name=\"" DNSMASQ_PATH "\">\n"
|
||||
" <interface name=\"org.freedesktop.DBus.Introspectable\">\n"
|
||||
" <method name=\"Introspect\">\n"
|
||||
" <arg name=\"data\" direction=\"out\" type=\"s\"/>\n"
|
||||
" </method>\n"
|
||||
" </interface>\n"
|
||||
" <interface name=\"" DNSMASQ_SERVICE "\">\n"
|
||||
" <method name=\"ClearCache\">\n"
|
||||
" </method>\n"
|
||||
" <method name=\"GetVersion\">\n"
|
||||
" <arg name=\"version\" direction=\"out\" type=\"s\"/>\n"
|
||||
" </method>\n"
|
||||
" <method name=\"SetServers\">\n"
|
||||
" <arg name=\"servers\" direction=\"in\" type=\"av\"/>\n"
|
||||
" </method>\n"
|
||||
" <signal name=\"DhcpLeaseAdded\">\n"
|
||||
" <arg name=\"ipaddr\" type=\"s\"/>\n"
|
||||
" <arg name=\"hwaddr\" type=\"s\"/>\n"
|
||||
" <arg name=\"hostname\" type=\"s\"/>\n"
|
||||
" </signal>\n"
|
||||
" <signal name=\"DhcpLeaseDeleted\">\n"
|
||||
" <arg name=\"ipaddr\" type=\"s\"/>\n"
|
||||
" <arg name=\"hwaddr\" type=\"s\"/>\n"
|
||||
" <arg name=\"hostname\" type=\"s\"/>\n"
|
||||
" </signal>\n"
|
||||
" <signal name=\"DhcpLeaseUpdated\">\n"
|
||||
" <arg name=\"ipaddr\" type=\"s\"/>\n"
|
||||
" <arg name=\"hwaddr\" type=\"s\"/>\n"
|
||||
" <arg name=\"hostname\" type=\"s\"/>\n"
|
||||
" </signal>\n"
|
||||
" </interface>\n"
|
||||
"</node>\n";
|
||||
|
||||
struct watch {
|
||||
DBusWatch *watch;
|
||||
struct watch *next;
|
||||
@@ -229,7 +265,15 @@ DBusHandlerResult message_handler(DBusConnection *connection,
|
||||
{
|
||||
char *method = (char *)dbus_message_get_member(message);
|
||||
|
||||
if (strcmp(method, "GetVersion") == 0)
|
||||
if (dbus_message_is_method_call(message, DBUS_INTERFACE_INTROSPECTABLE, "Introspect"))
|
||||
{
|
||||
DBusMessage *reply = dbus_message_new_method_return(message);
|
||||
|
||||
dbus_message_append_args(reply, DBUS_TYPE_STRING, &introspection_xml, DBUS_TYPE_INVALID);
|
||||
dbus_connection_send (connection, reply, NULL);
|
||||
dbus_message_unref (reply);
|
||||
}
|
||||
else if (strcmp(method, "GetVersion") == 0)
|
||||
{
|
||||
char *v = VERSION;
|
||||
DBusMessage *reply = dbus_message_new_method_return(message);
|
||||
|
||||
22
src/dhcp.c
22
src/dhcp.c
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "dnsmasq.h"
|
||||
@@ -345,7 +345,12 @@ void dhcp_packet(time_t now)
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SOLARIS_NETWORK
|
||||
/* OpenSolaris eliminates IP_XMIT_IF */
|
||||
# ifdef IP_XMIT_IF
|
||||
setsockopt(daemon->dhcpfd, IPPROTO_IP, IP_XMIT_IF, &iface_index, sizeof(iface_index));
|
||||
# else
|
||||
setsockopt(daemon->dhcpfd, IPPROTO_IP, IP_BOUND_IF, &iface_index, sizeof(iface_index));
|
||||
# endif
|
||||
#endif
|
||||
|
||||
while(sendmsg(daemon->dhcpfd, &msg, 0) == -1 && retry_send());
|
||||
@@ -560,9 +565,16 @@ int address_allocate(struct dhcp_context *context,
|
||||
if (addr.s_addr == d->router.s_addr)
|
||||
break;
|
||||
|
||||
/* Addresses which end in .255 and .0 are broken in Windows even when using
|
||||
supernetting. ie dhcp-range=192.168.0.1,192.168.1.254,255,255,254.0
|
||||
then 192.168.0.255 is a valid IP address, but not for Windows as it's
|
||||
in the class C range. See KB281579. We therefore don't allocate these
|
||||
addresses to avoid hard-to-diagnose problems. Thanks Bill. */
|
||||
if (!d &&
|
||||
!lease_find_by_addr(addr) &&
|
||||
!config_find_by_address(daemon->dhcp_conf, addr))
|
||||
!config_find_by_address(daemon->dhcp_conf, addr) &&
|
||||
(!IN_CLASSC(ntohl(addr.s_addr)) ||
|
||||
((ntohl(addr.s_addr) & 0xff) != 0xff && ((ntohl(addr.s_addr) & 0xff) != 0x0))))
|
||||
{
|
||||
struct ping_result *r, *victim = NULL;
|
||||
int count, max = (int)(0.6 * (((float)PING_CACHE_TIME)/
|
||||
@@ -744,7 +756,7 @@ void dhcp_read_ethers(void)
|
||||
while (strlen(buff) > 0 && isspace((int)buff[strlen(buff)-1]))
|
||||
buff[strlen(buff)-1] = 0;
|
||||
|
||||
if ((*buff == '#') || (*buff == '+'))
|
||||
if ((*buff == '#') || (*buff == '+') || (*buff == 0))
|
||||
continue;
|
||||
|
||||
for (ip = buff; *ip && !isspace((int)*ip); ip++);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "dnsmasq.h"
|
||||
@@ -856,6 +856,9 @@ static void async_event(int pipe, time_t now)
|
||||
|
||||
if (daemon->lease_stream)
|
||||
fclose(daemon->lease_stream);
|
||||
|
||||
if (daemon->runfile)
|
||||
unlink(daemon->runfile);
|
||||
|
||||
my_syslog(LOG_INFO, _("exiting on receipt of SIGTERM"));
|
||||
flush_log();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,11 +10,11 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#define COPYRIGHT "Copyright (C) 2000-2008 Simon Kelley"
|
||||
#define COPYRIGHT "Copyright (C) 2000-2009 Simon Kelley"
|
||||
|
||||
#ifndef NO_LARGEFILE
|
||||
/* Ensure we can use files >2GB (log files may grow this big) */
|
||||
@@ -201,7 +201,7 @@ struct bogus_addr {
|
||||
|
||||
/* dns doctor param */
|
||||
struct doctor {
|
||||
struct in_addr in, out, mask;
|
||||
struct in_addr in, end, out, mask;
|
||||
struct doctor *next;
|
||||
};
|
||||
|
||||
@@ -464,7 +464,12 @@ struct dhcp_config {
|
||||
|
||||
struct dhcp_opt {
|
||||
int opt, len, flags;
|
||||
unsigned char *val, *vendor_class;
|
||||
union {
|
||||
int encap;
|
||||
unsigned int wildcard_mask;
|
||||
unsigned char *vendor_class;
|
||||
} u;
|
||||
unsigned char *val;
|
||||
struct dhcp_netid *netid;
|
||||
struct dhcp_opt *next;
|
||||
};
|
||||
@@ -472,9 +477,13 @@ struct dhcp_opt {
|
||||
#define DHOPT_ADDR 1
|
||||
#define DHOPT_STRING 2
|
||||
#define DHOPT_ENCAPSULATE 4
|
||||
#define DHOPT_VENDOR_MATCH 8
|
||||
#define DHOPT_ENCAP_MATCH 8
|
||||
#define DHOPT_FORCE 16
|
||||
#define DHOPT_BANK 32
|
||||
#define DHOPT_ENCAP_DONE 64
|
||||
#define DHOPT_MATCH 128
|
||||
#define DHOPT_VENDOR 256
|
||||
#define DHOPT_HEX 512
|
||||
|
||||
struct dhcp_boot {
|
||||
char *file, *sname;
|
||||
@@ -488,7 +497,6 @@ struct dhcp_boot {
|
||||
#define MATCH_CIRCUIT 3
|
||||
#define MATCH_REMOTE 4
|
||||
#define MATCH_SUBSCRIBER 5
|
||||
#define MATCH_OPTION 6
|
||||
|
||||
/* vendorclass, userclass, remote-id or cicuit-id */
|
||||
struct dhcp_vendor {
|
||||
@@ -608,7 +616,7 @@ extern struct daemon {
|
||||
struct hostsfile *addn_hosts;
|
||||
struct dhcp_context *dhcp;
|
||||
struct dhcp_config *dhcp_conf;
|
||||
struct dhcp_opt *dhcp_opts;
|
||||
struct dhcp_opt *dhcp_opts, *dhcp_match;
|
||||
struct dhcp_vendor *dhcp_vendors;
|
||||
struct dhcp_mac *dhcp_macs;
|
||||
struct dhcp_boot *boot_config;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "dnsmasq.h"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "dnsmasq.h"
|
||||
@@ -93,7 +93,7 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
|
||||
/* kill daemon */
|
||||
send_event(event_fd, EVENT_DIE, 0);
|
||||
/* return error */
|
||||
send_event(err_fd, EVENT_HUSER_ERR, errno);;
|
||||
send_event(err_fd, EVENT_HUSER_ERR, errno);
|
||||
}
|
||||
_exit(0);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "dnsmasq.h"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "dnsmasq.h"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "dnsmasq.h"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "dnsmasq.h"
|
||||
@@ -366,8 +366,11 @@ struct listener *create_bound_listeners(void)
|
||||
{
|
||||
struct listener *listeners = NULL;
|
||||
struct irec *iface;
|
||||
int opt = 1;
|
||||
|
||||
int rc, opt = 1;
|
||||
#ifdef HAVE_IPV6
|
||||
static int dad_count = 0;
|
||||
#endif
|
||||
|
||||
for (iface = daemon->interfaces; iface; iface = iface->next)
|
||||
{
|
||||
struct listener *new = safe_malloc(sizeof(struct listener));
|
||||
@@ -377,6 +380,7 @@ struct listener *create_bound_listeners(void)
|
||||
new->tftpfd = -1;
|
||||
new->tcpfd = -1;
|
||||
new->fd = -1;
|
||||
listeners = new;
|
||||
|
||||
if (daemon->port != 0)
|
||||
{
|
||||
@@ -396,27 +400,34 @@ struct listener *create_bound_listeners(void)
|
||||
die(_("failed to set IPV6 options on listening socket: %s"), NULL, EC_BADNET);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (bind(new->tcpfd, &iface->addr.sa, sa_len(&iface->addr)) == -1 ||
|
||||
bind(new->fd, &iface->addr.sa, sa_len(&iface->addr)) == -1)
|
||||
|
||||
while(1)
|
||||
{
|
||||
if ((rc = bind(new->fd, &iface->addr.sa, sa_len(&iface->addr))) != -1)
|
||||
break;
|
||||
|
||||
#ifdef HAVE_IPV6
|
||||
if (iface->addr.sa.sa_family == AF_INET6 && (errno == ENODEV || errno == EADDRNOTAVAIL))
|
||||
/* An interface may have an IPv6 address which is still undergoing DAD.
|
||||
If so, the bind will fail until the DAD completes, so we try over 20 seconds
|
||||
before failing. */
|
||||
if (iface->addr.sa.sa_family == AF_INET6 && (errno == ENODEV || errno == EADDRNOTAVAIL) &&
|
||||
dad_count++ < DAD_WAIT)
|
||||
{
|
||||
close(new->tcpfd);
|
||||
close(new->fd);
|
||||
free(new);
|
||||
new = NULL;
|
||||
sleep(1);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
prettyprint_addr(&iface->addr, daemon->namebuff);
|
||||
die(_("failed to bind listening socket for %s: %s"),
|
||||
daemon->namebuff, EC_BADNET);
|
||||
}
|
||||
break;
|
||||
}
|
||||
else if (listen(new->tcpfd, 5) == -1)
|
||||
|
||||
if (rc == -1 || bind(new->tcpfd, &iface->addr.sa, sa_len(&iface->addr)) == -1)
|
||||
{
|
||||
prettyprint_addr(&iface->addr, daemon->namebuff);
|
||||
die(_("failed to bind listening socket for %s: %s"),
|
||||
daemon->namebuff, EC_BADNET);
|
||||
}
|
||||
|
||||
if (listen(new->tcpfd, 5) == -1)
|
||||
die(_("failed to listen on socket: %s"), NULL, EC_BADNET);
|
||||
}
|
||||
|
||||
@@ -434,8 +445,6 @@ struct listener *create_bound_listeners(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
if (new)
|
||||
listeners = new;
|
||||
}
|
||||
|
||||
return listeners;
|
||||
@@ -519,7 +528,7 @@ int local_bind(int fd, union mysockaddr *addr, char *intname, int is_tcp)
|
||||
return 0;
|
||||
|
||||
#if defined(SO_BINDTODEVICE)
|
||||
if (strlen(intname) != 0 &&
|
||||
if (intname[0] != 0 &&
|
||||
setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, intname, sizeof(intname)) == -1)
|
||||
return 0;
|
||||
#endif
|
||||
@@ -534,7 +543,7 @@ static struct serverfd *allocate_sfd(union mysockaddr *addr, char *intname)
|
||||
|
||||
/* when using random ports, servers which would otherwise use
|
||||
the INADDR_ANY/port0 socket have sfd set to NULL */
|
||||
if (!daemon->osport)
|
||||
if (!daemon->osport && intname[0] == 0)
|
||||
{
|
||||
errno = 0;
|
||||
|
||||
@@ -620,7 +629,7 @@ void pre_allocate_sfds(void)
|
||||
(daemon->options & OPT_NOWILD))
|
||||
{
|
||||
prettyprint_addr(&srv->addr, daemon->namebuff);
|
||||
if (strlen(srv->interface) != 0)
|
||||
if (srv->interface[0] != 0)
|
||||
{
|
||||
strcat(daemon->namebuff, " ");
|
||||
strcat(daemon->namebuff, srv->interface);
|
||||
@@ -695,7 +704,7 @@ void check_servers(void)
|
||||
else if (!(new->flags & SERV_LITERAL_ADDRESS))
|
||||
my_syslog(LOG_INFO, _("using nameserver %s#%d for %s %s"), daemon->namebuff, port, s1, s2);
|
||||
}
|
||||
else if (strlen(new->interface) != 0)
|
||||
else if (new->interface[0] != 0)
|
||||
my_syslog(LOG_INFO, _("using nameserver %s#%d(via %s)"), daemon->namebuff, port, new->interface);
|
||||
else
|
||||
my_syslog(LOG_INFO, _("using nameserver %s#%d"), daemon->namebuff, port);
|
||||
|
||||
158
src/option.c
158
src/option.c
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* define this to get facilitynames */
|
||||
@@ -310,7 +310,7 @@ static struct {
|
||||
{ LOPT_MAX_LOGS, ARG_ONE, "[=<log lines>]", gettext_noop("Enable async. logging; optionally set queue length."), NULL },
|
||||
{ LOPT_REBIND, OPT_NO_REBIND, NULL, gettext_noop("Stop DNS rebinding. Filter private IP ranges when resolving."), NULL },
|
||||
{ LOPT_NOLAST, OPT_ALL_SERVERS, NULL, gettext_noop("Always perform DNS queries to all servers."), NULL },
|
||||
{ LOPT_MATCH, ARG_DUP, "<netid>,<opt-no>", gettext_noop("Set tag if client includes option in request."), NULL },
|
||||
{ LOPT_MATCH, ARG_DUP, "<netid>,<optspec>", gettext_noop("Set tag if client includes matching option in request."), NULL },
|
||||
{ LOPT_ALTPORT, ARG_ONE, "[=<ports>]", gettext_noop("Use alternative ports for DHCP."), NULL },
|
||||
{ LOPT_SCRIPTUSR, ARG_ONE, "<username>", gettext_noop("Run lease-change script as this user."), NULL },
|
||||
{ LOPT_NAPTR, ARG_DUP, "<name>,<naptr>", gettext_noop("Specify NAPTR DNS record."), NULL },
|
||||
@@ -391,6 +391,9 @@ static const struct {
|
||||
{ "user-class", 77, 0 },
|
||||
{ "FQDN", 81, OT_INTERNAL },
|
||||
{ "agent-id", 82, OT_INTERNAL },
|
||||
{ "client-arch", 93, 2 },
|
||||
{ "client-interface-id", 94, 0 },
|
||||
{ "client-machine-id", 97, 0 },
|
||||
{ "subnet-select", 118, OT_INTERNAL },
|
||||
{ "domain-search", 119, 0 },
|
||||
{ "sip-server", 120, 0 },
|
||||
@@ -491,11 +494,12 @@ static char *opt_string_alloc(char *cp)
|
||||
|
||||
/* find next comma, split string with zero and eliminate spaces.
|
||||
return start of string following comma */
|
||||
static char *split(char *s)
|
||||
|
||||
static char *split_chr(char *s, char c)
|
||||
{
|
||||
char *comma, *p;
|
||||
|
||||
if (!s || !(comma = strchr(s, ',')))
|
||||
if (!s || !(comma = strchr(s, c)))
|
||||
return NULL;
|
||||
|
||||
p = comma;
|
||||
@@ -509,6 +513,11 @@ static char *split(char *s)
|
||||
return comma;
|
||||
}
|
||||
|
||||
static char *split(char *s)
|
||||
{
|
||||
return split_chr(s, ',');
|
||||
}
|
||||
|
||||
static int canonicalise_opt(char *s)
|
||||
{
|
||||
if (!s)
|
||||
@@ -642,7 +651,6 @@ static char *parse_dhcp_opt(char *arg, int flags)
|
||||
new->flags = flags;
|
||||
new->netid = NULL;
|
||||
new->val = NULL;
|
||||
new->vendor_class = NULL;
|
||||
new->opt = 0;
|
||||
|
||||
while (arg)
|
||||
@@ -675,7 +683,12 @@ static char *parse_dhcp_opt(char *arg, int flags)
|
||||
}
|
||||
else if (strstr(arg, "vendor:") == arg)
|
||||
{
|
||||
new->vendor_class = (unsigned char *)opt_string_alloc(arg+7);
|
||||
new->u.vendor_class = (unsigned char *)opt_string_alloc(arg+7);
|
||||
new->flags |= DHOPT_VENDOR;
|
||||
}
|
||||
else if (strstr(arg, "encap:") == arg)
|
||||
{
|
||||
new->u.encap = atoi(arg+6);
|
||||
new->flags |= DHOPT_ENCAPSULATE;
|
||||
}
|
||||
else
|
||||
@@ -740,7 +753,8 @@ static char *parse_dhcp_opt(char *arg, int flags)
|
||||
else
|
||||
is_dec = 0;
|
||||
if (!((c >='A' && c <= 'F') ||
|
||||
(c >='a' && c <= 'f')))
|
||||
(c >='a' && c <= 'f') ||
|
||||
(c == '*' && (flags & DHOPT_MATCH))))
|
||||
is_hex = 0;
|
||||
}
|
||||
|
||||
@@ -757,7 +771,8 @@ static char *parse_dhcp_opt(char *arg, int flags)
|
||||
{
|
||||
new->len = digs;
|
||||
new->val = opt_malloc(new->len);
|
||||
parse_hex(comma, new->val, digs, NULL, NULL);
|
||||
parse_hex(comma, new->val, digs, (flags & DHOPT_MATCH) ? &new->u.wildcard_mask : NULL, NULL);
|
||||
new->flags |= DHOPT_HEX;
|
||||
}
|
||||
else if (is_dec)
|
||||
{
|
||||
@@ -804,8 +819,7 @@ static char *parse_dhcp_opt(char *arg, int flags)
|
||||
{
|
||||
cp = comma;
|
||||
comma = split(cp);
|
||||
if ((slash = strchr(cp, '/')))
|
||||
*slash++ = 0;
|
||||
slash = split_chr(cp, '/');
|
||||
in.s_addr = inet_addr(cp);
|
||||
if (!slash)
|
||||
{
|
||||
@@ -910,8 +924,23 @@ static char *parse_dhcp_opt(char *arg, int flags)
|
||||
|
||||
if (!problem)
|
||||
{
|
||||
new->next = daemon->dhcp_opts;
|
||||
daemon->dhcp_opts = new;
|
||||
if (flags == DHOPT_MATCH)
|
||||
{
|
||||
if ((new->flags & (DHOPT_ENCAPSULATE | DHOPT_VENDOR)) ||
|
||||
!new->netid ||
|
||||
new->netid->next)
|
||||
problem = _("illegal dhcp-match");
|
||||
else
|
||||
{
|
||||
new->next = daemon->dhcp_match;
|
||||
daemon->dhcp_match = new;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
new->next = daemon->dhcp_opts;
|
||||
daemon->dhcp_opts = new;
|
||||
}
|
||||
}
|
||||
|
||||
return problem;
|
||||
@@ -1149,10 +1178,9 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
|
||||
{
|
||||
struct cond_domain *new = safe_malloc(sizeof(struct cond_domain));
|
||||
unhide_metas(comma);
|
||||
if ((arg = strchr(comma, '/')))
|
||||
if ((arg = split_chr(comma, '/')))
|
||||
{
|
||||
int mask;
|
||||
*arg++ = 0;
|
||||
if ((new->start.s_addr = inet_addr(comma)) == (in_addr_t)-1 ||
|
||||
!atoi_check(arg, &mask))
|
||||
option = '?';
|
||||
@@ -1292,10 +1320,9 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
|
||||
{
|
||||
char *end;
|
||||
arg++;
|
||||
while ((end = strchr(arg, '/')))
|
||||
while ((end = split_chr(arg, '/')))
|
||||
{
|
||||
char *domain = NULL;
|
||||
*end = 0;
|
||||
/* # matches everything and becomes a zero length domain string */
|
||||
if (strcmp(arg, "#") == 0)
|
||||
domain = "";
|
||||
@@ -1309,7 +1336,7 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
|
||||
newlist = serv;
|
||||
serv->domain = domain;
|
||||
serv->flags = domain ? SERV_HAS_DOMAIN : SERV_FOR_NODOTS;
|
||||
arg = end+1;
|
||||
arg = end;
|
||||
}
|
||||
if (!newlist)
|
||||
{
|
||||
@@ -1342,23 +1369,14 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
|
||||
int source_port = 0, serv_port = NAMESERVER_PORT;
|
||||
char *portno, *source;
|
||||
|
||||
if ((source = strchr(arg, '@'))) /* is there a source. */
|
||||
{
|
||||
*source = 0;
|
||||
if ((portno = strchr(source+1, '#')))
|
||||
{
|
||||
*portno = 0;
|
||||
if (!atoi_check16(portno+1, &source_port))
|
||||
problem = _("bad port");
|
||||
}
|
||||
}
|
||||
|
||||
if ((portno = strchr(arg, '#'))) /* is there a port no. */
|
||||
{
|
||||
*portno = 0;
|
||||
if (!atoi_check16(portno+1, &serv_port))
|
||||
problem = _("bad port");
|
||||
}
|
||||
if ((source = split_chr(arg, '@')) && /* is there a source. */
|
||||
(portno = split_chr(source, '#')) &&
|
||||
!atoi_check16(portno, &source_port))
|
||||
problem = _("bad port");
|
||||
|
||||
if ((portno = split_chr(arg, '#')) && /* is there a port no. */
|
||||
!atoi_check16(portno, &serv_port))
|
||||
problem = _("bad port");
|
||||
|
||||
if ((newlist->addr.in.sin_addr.s_addr = inet_addr(arg)) != (in_addr_t) -1)
|
||||
{
|
||||
@@ -1371,11 +1389,11 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
|
||||
if (source)
|
||||
{
|
||||
newlist->flags |= SERV_HAS_SOURCE;
|
||||
if ((newlist->source_addr.in.sin_addr.s_addr = inet_addr(source+1)) == (in_addr_t) -1)
|
||||
if ((newlist->source_addr.in.sin_addr.s_addr = inet_addr(source)) == (in_addr_t) -1)
|
||||
{
|
||||
#if defined(SO_BINDTODEVICE)
|
||||
newlist->source_addr.in.sin_addr.s_addr = INADDR_ANY;
|
||||
strncpy(newlist->interface, source+1, IF_NAMESIZE);
|
||||
strncpy(newlist->interface, source, IF_NAMESIZE);
|
||||
#else
|
||||
problem = _("interface binding not supported");
|
||||
#endif
|
||||
@@ -1396,11 +1414,11 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
|
||||
if (source)
|
||||
{
|
||||
newlist->flags |= SERV_HAS_SOURCE;
|
||||
if (inet_pton(AF_INET6, source+1, &newlist->source_addr.in6.sin6_addr) == 0)
|
||||
if (inet_pton(AF_INET6, source, &newlist->source_addr.in6.sin6_addr) == 0)
|
||||
{
|
||||
#if defined(SO_BINDTODEVICE) || defined(HAVE_SOLARIS_NETWORK)
|
||||
#if defined(SO_BINDTODEVICE)
|
||||
newlist->source_addr.in6.sin6_addr = in6addr_any;
|
||||
strncpy(newlist->interface, source+1, IF_NAMESIZE);
|
||||
strncpy(newlist->interface, source, IF_NAMESIZE);
|
||||
#else
|
||||
problem = _("interface binding not supported");
|
||||
#endif
|
||||
@@ -1455,7 +1473,7 @@ static char *one_opt(int option, char *arg, char *gen_prob, int nest)
|
||||
|
||||
case LOPT_MINPORT: /* --min-port */
|
||||
if (!atoi_check16(arg, &daemon->min_port))
|
||||
option = '?';
|
||||
option = '?';
|
||||
break;
|
||||
|
||||
case '0': /* --dns-forward-max */
|
||||
@@ -1840,12 +1858,14 @@ option = '?';
|
||||
break;
|
||||
}
|
||||
|
||||
case 'O':
|
||||
case LOPT_FORCE:
|
||||
case 'O': /* --dhcp-option */
|
||||
case LOPT_FORCE: /* --dhcp-option-force */
|
||||
case LOPT_OPTS:
|
||||
case LOPT_MATCH: /* --dhcp-match */
|
||||
problem = parse_dhcp_opt(arg,
|
||||
option == LOPT_FORCE ? DHOPT_FORCE :
|
||||
(option == LOPT_OPTS ? DHOPT_BANK : 0));
|
||||
(option == LOPT_MATCH ? DHOPT_MATCH :
|
||||
(option == LOPT_OPTS ? DHOPT_BANK : 0)));
|
||||
break;
|
||||
|
||||
case 'M': /* --dhcp-boot */
|
||||
@@ -1921,7 +1941,6 @@ option = '?';
|
||||
case LOPT_CIRCUIT: /* --dhcp-circuitid */
|
||||
case LOPT_REMOTE: /* --dhcp-remoteid */
|
||||
case LOPT_SUBSCR: /* --dhcp-subscrid */
|
||||
case LOPT_MATCH: /* --dhcp-match */
|
||||
{
|
||||
if (!(comma = split(arg)))
|
||||
option = '?';
|
||||
@@ -1942,9 +1961,7 @@ option = '?';
|
||||
else if (*p != ':')
|
||||
break;
|
||||
unhide_metas(comma);
|
||||
if (option == LOPT_MATCH)
|
||||
new->option = atoi(comma);
|
||||
else if (option == 'U' || option == 'j' || *p || !dig)
|
||||
if (option == 'U' || option == 'j' || *p || !dig)
|
||||
{
|
||||
new->len = strlen(comma);
|
||||
new->data = opt_malloc(new->len);
|
||||
@@ -1974,9 +1991,6 @@ option = '?';
|
||||
case LOPT_SUBSCR:
|
||||
new->match_type = MATCH_SUBSCRIBER;
|
||||
break;
|
||||
case LOPT_MATCH:
|
||||
new->match_type = MATCH_OPTION;
|
||||
break;
|
||||
}
|
||||
new->next = daemon->dhcp_vendors;
|
||||
daemon->dhcp_vendors = new;
|
||||
@@ -2047,13 +2061,14 @@ option = '?';
|
||||
|
||||
case 'V': /* --alias */
|
||||
{
|
||||
char *a[3] = { NULL, NULL, NULL };
|
||||
char *dash, *a[3] = { NULL, NULL, NULL };
|
||||
int k = 0;
|
||||
struct in_addr in, out, mask;
|
||||
struct doctor *new;
|
||||
|
||||
mask.s_addr = 0xffffffff;
|
||||
|
||||
struct doctor *new = opt_malloc(sizeof(struct doctor));
|
||||
new->next = daemon->doctors;
|
||||
daemon->doctors = new;
|
||||
new->mask.s_addr = 0xffffffff;
|
||||
new->end.s_addr = 0;
|
||||
|
||||
if ((a[0] = arg))
|
||||
for (k = 1; k < 3; k++)
|
||||
{
|
||||
@@ -2062,23 +2077,21 @@ option = '?';
|
||||
unhide_metas(a[k]);
|
||||
}
|
||||
|
||||
dash = split_chr(a[0], '-');
|
||||
|
||||
if ((k < 2) ||
|
||||
((in.s_addr = inet_addr(a[0])) == (in_addr_t)-1) ||
|
||||
((out.s_addr = inet_addr(a[1])) == (in_addr_t)-1))
|
||||
{
|
||||
option = '?';
|
||||
break;
|
||||
}
|
||||
((new->in.s_addr = inet_addr(a[0])) == (in_addr_t)-1) ||
|
||||
((new->out.s_addr = inet_addr(a[1])) == (in_addr_t)-1))
|
||||
option = '?';
|
||||
|
||||
if (k == 3)
|
||||
mask.s_addr = inet_addr(a[2]);
|
||||
new->mask.s_addr = inet_addr(a[2]);
|
||||
|
||||
new = opt_malloc(sizeof(struct doctor));
|
||||
new->in = in;
|
||||
new->out = out;
|
||||
new->mask = mask;
|
||||
new->next = daemon->doctors;
|
||||
daemon->doctors = new;
|
||||
if (dash &&
|
||||
((new->end.s_addr = inet_addr(dash)) == (in_addr_t)-1 ||
|
||||
!is_same_net(new->in, new->end, new->mask) ||
|
||||
ntohl(new->in.s_addr) > ntohl(new->end.s_addr)))
|
||||
problem = _("invalid alias range");
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -2513,7 +2526,8 @@ void reread_dhcp(void)
|
||||
|
||||
if (opts->flags & DHOPT_BANK)
|
||||
{
|
||||
free(opts->vendor_class);
|
||||
if ((opts->flags & DHOPT_VENDOR))
|
||||
free(opts->u.vendor_class);
|
||||
free(opts->val);
|
||||
for (id = opts->netid; id; id = next)
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "dnsmasq.h"
|
||||
@@ -25,7 +25,7 @@ static int add_resource_record(HEADER *header, char *limit, int *truncp,
|
||||
((size_t)((pp) - (unsigned char *)(header) + (len)) <= (plen))
|
||||
|
||||
#define ADD_RDLEN(header, pp, plen, len) \
|
||||
(!CHECK_LEN(header, pp, plen, len) ? 0 : (int)((pp) += (len)), 1)
|
||||
(!CHECK_LEN(header, pp, plen, len) ? 0 : (long)((pp) += (len)), 1)
|
||||
|
||||
static int extract_name(HEADER *header, size_t plen, unsigned char **pp,
|
||||
char *name, int isExtract, int extrabytes)
|
||||
@@ -551,15 +551,23 @@ static unsigned char *do_doctor(unsigned char *p, int count, HEADER *header, siz
|
||||
memcpy(&addr, p, INADDRSZ);
|
||||
|
||||
for (doctor = daemon->doctors; doctor; doctor = doctor->next)
|
||||
if (is_same_net(doctor->in, addr, doctor->mask))
|
||||
{
|
||||
addr.s_addr &= ~doctor->mask.s_addr;
|
||||
addr.s_addr |= (doctor->out.s_addr & doctor->mask.s_addr);
|
||||
/* Since we munged the data, the server it came from is no longer authoritative */
|
||||
header->aa = 0;
|
||||
memcpy(p, &addr, INADDRSZ);
|
||||
break;
|
||||
}
|
||||
{
|
||||
if (doctor->end.s_addr == 0)
|
||||
{
|
||||
if (!is_same_net(doctor->in, addr, doctor->mask))
|
||||
continue;
|
||||
}
|
||||
else if (ntohl(doctor->in.s_addr) > ntohl(addr.s_addr) ||
|
||||
ntohl(doctor->end.s_addr) < ntohl(addr.s_addr))
|
||||
continue;
|
||||
|
||||
addr.s_addr &= ~doctor->mask.s_addr;
|
||||
addr.s_addr |= (doctor->out.s_addr & doctor->mask.s_addr);
|
||||
/* Since we munged the data, the server it came from is no longer authoritative */
|
||||
header->aa = 0;
|
||||
memcpy(p, &addr, INADDRSZ);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!ADD_RDLEN(header, p, qlen, rdlen))
|
||||
|
||||
282
src/rfc2131.c
282
src/rfc2131.c
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "dnsmasq.h"
|
||||
@@ -72,7 +72,7 @@
|
||||
#define option_ptr(opt, i) ((void *)&(((unsigned char *)(opt))[2u+(unsigned int)(i)]))
|
||||
|
||||
static int sanitise(unsigned char *opt, char *buf);
|
||||
static struct in_addr server_id(struct dhcp_context *context, struct in_addr override);
|
||||
static struct in_addr server_id(struct dhcp_context *context, struct in_addr override, struct in_addr fallback);
|
||||
static unsigned int calc_time(struct dhcp_context *context, struct dhcp_config *config, unsigned char *opt);
|
||||
static void option_put(struct dhcp_packet *mess, unsigned char *end, int opt, int len, unsigned int val);
|
||||
static void option_put_string(struct dhcp_packet *mess, unsigned char *end,
|
||||
@@ -99,7 +99,7 @@ static void do_options(struct dhcp_context *context,
|
||||
unsigned char *agent_id);
|
||||
|
||||
static void match_vendor_opts(unsigned char *opt, struct dhcp_opt *dopt);
|
||||
|
||||
static void do_encap_opts(int encap, struct dhcp_packet *mess, unsigned char *end, int null_term);
|
||||
|
||||
size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
size_t sz, time_t now, int unicast_dest, int *is_inform)
|
||||
@@ -127,6 +127,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
unsigned char *emac = NULL;
|
||||
int emac_len = 0;
|
||||
struct dhcp_netid known_id, iface_id;
|
||||
struct dhcp_opt *o;
|
||||
|
||||
subnet_addr.s_addr = override.s_addr = 0;
|
||||
|
||||
@@ -574,6 +575,46 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
netid = &config->netid;
|
||||
}
|
||||
|
||||
/* dhcp-match. If we have hex-and-wildcards, look for a left-anchored match.
|
||||
Otherwise assume the option is an array, and look for a matching element.
|
||||
If no data given, existance of the option is enough. */
|
||||
for (o = daemon->dhcp_match; o; o = o->next)
|
||||
{
|
||||
int i, matched = 0;
|
||||
|
||||
if (!(opt = option_find(mess, sz, o->opt, 1)) ||
|
||||
o->len > option_len(opt))
|
||||
continue;
|
||||
|
||||
if (o->len == 0)
|
||||
matched = 1;
|
||||
else if (o->flags & DHOPT_HEX)
|
||||
{
|
||||
if (memcmp_masked(o->val, option_ptr(opt, 0), o->len, o->u.wildcard_mask))
|
||||
matched = 1;
|
||||
}
|
||||
else
|
||||
for (i = 0; i <= (option_len(opt) - o->len); )
|
||||
{
|
||||
if (memcmp(o->val, option_ptr(opt, i), o->len) == 0)
|
||||
{
|
||||
matched = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (o->flags & DHOPT_STRING)
|
||||
i++;
|
||||
else
|
||||
i += o->len;
|
||||
}
|
||||
|
||||
if (matched)
|
||||
{
|
||||
o->netid->next = netid;
|
||||
netid = o->netid;
|
||||
}
|
||||
}
|
||||
|
||||
/* user-class options are, according to RFC3004, supposed to contain
|
||||
a set of counted strings. Here we check that this is so (by seeing
|
||||
if the counts are consistent with the overall option length) and if
|
||||
@@ -597,7 +638,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
ucp[j] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (vendor = daemon->dhcp_vendors; vendor; vendor = vendor->next)
|
||||
{
|
||||
int mopt;
|
||||
@@ -606,15 +647,6 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
mopt = OPTION_VENDOR_ID;
|
||||
else if (vendor->match_type == MATCH_USER)
|
||||
mopt = OPTION_USER_CLASS;
|
||||
else if (vendor->match_type == MATCH_OPTION)
|
||||
{
|
||||
if (option_find(mess, sz, vendor->option, 1))
|
||||
{
|
||||
vendor->netid.next = netid;
|
||||
netid = &vendor->netid;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else
|
||||
continue;
|
||||
|
||||
@@ -662,7 +694,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
{
|
||||
case DHCPDECLINE:
|
||||
if (!(opt = option_find(mess, sz, OPTION_SERVER_IDENTIFIER, INADDRSZ)) ||
|
||||
option_addr(opt).s_addr != server_id(context, override).s_addr)
|
||||
option_addr(opt).s_addr != server_id(context, override, fallback).s_addr)
|
||||
return 0;
|
||||
|
||||
/* sanitise any message. Paranoid? Moi? */
|
||||
@@ -695,7 +727,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
case DHCPRELEASE:
|
||||
if (!(context = narrow_context(context, mess->ciaddr, netid)) ||
|
||||
!(opt = option_find(mess, sz, OPTION_SERVER_IDENTIFIER, INADDRSZ)) ||
|
||||
option_addr(opt).s_addr != server_id(context, override).s_addr)
|
||||
option_addr(opt).s_addr != server_id(context, override, fallback).s_addr)
|
||||
return 0;
|
||||
|
||||
if (lease && lease->addr.s_addr == mess->ciaddr.s_addr)
|
||||
@@ -781,7 +813,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
time = calc_time(context, config, option_find(mess, sz, OPTION_LEASE_TIME, 4));
|
||||
clear_packet(mess, end, agent_id);
|
||||
option_put(mess, end, OPTION_MESSAGE_TYPE, 1, DHCPOFFER);
|
||||
option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ, ntohl(server_id(context, override).s_addr));
|
||||
option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ, ntohl(server_id(context, override, fallback).s_addr));
|
||||
option_put(mess, end, OPTION_LEASE_TIME, 4, time);
|
||||
/* T1 and T2 are required in DHCPOFFER by HP's wacky Jetdirect client. */
|
||||
if (time != 0xffffffff)
|
||||
@@ -950,8 +982,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
mess->yiaddr.s_addr = 0;
|
||||
clear_packet(mess, end, agent_id);
|
||||
option_put(mess, end, OPTION_MESSAGE_TYPE, 1, DHCPNAK);
|
||||
option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ,
|
||||
ntohl(server_id(context, override).s_addr ? server_id(context, override).s_addr : fallback.s_addr));
|
||||
option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ, ntohl(server_id(context, override, fallback).s_addr));
|
||||
option_put_string(mess, end, OPTION_MESSAGE, message, borken_opt);
|
||||
/* DHCPNAK gets agent-id too */
|
||||
restore_agent_id(agent_id, mess, end);
|
||||
@@ -1038,7 +1069,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
|
||||
clear_packet(mess, end, agent_id);
|
||||
option_put(mess, end, OPTION_MESSAGE_TYPE, 1, DHCPACK);
|
||||
option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ, ntohl(server_id(context, override).s_addr));
|
||||
option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ, ntohl(server_id(context, override, fallback).s_addr));
|
||||
option_put(mess, end, OPTION_LEASE_TIME, 4, time);
|
||||
if (time != 0xffffffff)
|
||||
{
|
||||
@@ -1059,9 +1090,11 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
|
||||
log_packet("INFORM", &mess->ciaddr, emac, emac_len, iface_name, message);
|
||||
|
||||
if (message || mess->ciaddr.s_addr == 0 ||
|
||||
!(context = narrow_context(context, mess->ciaddr, netid)))
|
||||
if (message || mess->ciaddr.s_addr == 0)
|
||||
return 0;
|
||||
|
||||
/* For DHCPINFORM only, cope without a valid context */
|
||||
context = narrow_context(context, mess->ciaddr, netid);
|
||||
|
||||
/* Find a least based on IP address if we didn't
|
||||
get one from MAC address/client-d */
|
||||
@@ -1075,7 +1108,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
|
||||
log_packet("ACK", &mess->ciaddr, emac, emac_len, iface_name, hostname);
|
||||
|
||||
if (context->netid.net)
|
||||
if (context && context->netid.net)
|
||||
{
|
||||
context->netid.next = netid;
|
||||
netid = &context->netid;
|
||||
@@ -1091,8 +1124,8 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
||||
|
||||
clear_packet(mess, end, agent_id);
|
||||
option_put(mess, end, OPTION_MESSAGE_TYPE, 1, DHCPACK);
|
||||
option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ, ntohl(server_id(context, override).s_addr));
|
||||
|
||||
option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ, ntohl(server_id(context, override, fallback).s_addr));
|
||||
|
||||
if (lease)
|
||||
{
|
||||
if (lease->expires == 0)
|
||||
@@ -1164,12 +1197,14 @@ static unsigned int calc_time(struct dhcp_context *context, struct dhcp_config *
|
||||
return time;
|
||||
}
|
||||
|
||||
static struct in_addr server_id(struct dhcp_context *context, struct in_addr override)
|
||||
static struct in_addr server_id(struct dhcp_context *context, struct in_addr override, struct in_addr fallback)
|
||||
{
|
||||
if (override.s_addr != 0 || !context)
|
||||
if (override.s_addr != 0)
|
||||
return override;
|
||||
else
|
||||
else if (context)
|
||||
return context->local;
|
||||
else
|
||||
return fallback;
|
||||
}
|
||||
|
||||
static int sanitise(unsigned char *opt, char *buf)
|
||||
@@ -1476,7 +1511,7 @@ static void option_put_string(struct dhcp_packet *mess, unsigned char *end, int
|
||||
}
|
||||
|
||||
/* return length, note this only does the data part */
|
||||
static int do_opt(struct dhcp_opt *opt, unsigned char *p, struct in_addr local, int null_term)
|
||||
static int do_opt(struct dhcp_opt *opt, unsigned char *p, struct dhcp_context *context, int null_term)
|
||||
{
|
||||
int len = opt->len;
|
||||
|
||||
@@ -1485,7 +1520,7 @@ static int do_opt(struct dhcp_opt *opt, unsigned char *p, struct in_addr local,
|
||||
|
||||
if (p && len != 0)
|
||||
{
|
||||
if ((opt->flags & DHOPT_ADDR) && !(opt->flags & DHOPT_ENCAPSULATE))
|
||||
if (context && (opt->flags & DHOPT_ADDR))
|
||||
{
|
||||
int j;
|
||||
struct in_addr *a = (struct in_addr *)opt->val;
|
||||
@@ -1493,7 +1528,7 @@ static int do_opt(struct dhcp_opt *opt, unsigned char *p, struct in_addr local,
|
||||
{
|
||||
/* zero means "self" (but not in vendorclass options.) */
|
||||
if (a->s_addr == 0)
|
||||
memcpy(p, &local, INADDRSZ);
|
||||
memcpy(p, &context->local, INADDRSZ);
|
||||
else
|
||||
memcpy(p, a, INADDRSZ);
|
||||
p += INADDRSZ;
|
||||
@@ -1524,7 +1559,7 @@ static struct dhcp_opt *option_find2(struct dhcp_netid *netid, struct dhcp_opt *
|
||||
{
|
||||
struct dhcp_opt *tmp;
|
||||
for (tmp = opts; tmp; tmp = tmp->next)
|
||||
if (tmp->opt == opt && !(tmp->flags & DHOPT_ENCAPSULATE))
|
||||
if (tmp->opt == opt && !(tmp->flags & (DHOPT_ENCAPSULATE | DHOPT_VENDOR)))
|
||||
if (match_netid(tmp->netid, netid, 1) || match_netid(tmp->netid, netid, 0))
|
||||
return tmp;
|
||||
|
||||
@@ -1537,22 +1572,66 @@ static void match_vendor_opts(unsigned char *opt, struct dhcp_opt *dopt)
|
||||
{
|
||||
for (; dopt; dopt = dopt->next)
|
||||
{
|
||||
dopt->flags &= ~DHOPT_VENDOR_MATCH;
|
||||
if (opt && (dopt->flags & DHOPT_ENCAPSULATE))
|
||||
dopt->flags &= ~(DHOPT_ENCAP_MATCH | DHOPT_ENCAP_DONE);
|
||||
if (opt && (dopt->flags & DHOPT_VENDOR))
|
||||
{
|
||||
int i, len = 0;
|
||||
if (dopt->vendor_class)
|
||||
len = strlen((char *)dopt->vendor_class);
|
||||
if (dopt->u.vendor_class)
|
||||
len = strlen((char *)dopt->u.vendor_class);
|
||||
for (i = 0; i <= (option_len(opt) - len); i++)
|
||||
if (len == 0 || memcmp(dopt->vendor_class, option_ptr(opt, i), len) == 0)
|
||||
if (len == 0 || memcmp(dopt->u.vendor_class, option_ptr(opt, i), len) == 0)
|
||||
{
|
||||
dopt->flags |= DHOPT_VENDOR_MATCH;
|
||||
dopt->flags |= DHOPT_ENCAP_MATCH;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void do_encap_opts(int encap, struct dhcp_packet *mess, unsigned char *end, int null_term)
|
||||
{
|
||||
int len, enc_len;
|
||||
struct dhcp_opt *opt, *start;
|
||||
unsigned char *p;
|
||||
|
||||
/* find size in advance */
|
||||
for (enc_len = 0, start = opt = daemon->dhcp_opts; opt; opt = opt->next)
|
||||
if (opt->flags & DHOPT_ENCAP_MATCH)
|
||||
{
|
||||
int new = do_opt(opt, NULL, NULL, null_term) + 2;
|
||||
if (enc_len + new <= 255)
|
||||
enc_len += new;
|
||||
else
|
||||
{
|
||||
p = free_space(mess, end, encap, enc_len);
|
||||
for (; start && start != opt; start = start->next)
|
||||
if (p && (start->flags & DHOPT_ENCAP_MATCH))
|
||||
{
|
||||
len = do_opt(start, p + 2, NULL, null_term);
|
||||
*(p++) = start->opt;
|
||||
*(p++) = len;
|
||||
p += len;
|
||||
}
|
||||
enc_len = new;
|
||||
start = opt;
|
||||
}
|
||||
}
|
||||
|
||||
if (enc_len != 0 &&
|
||||
(p = free_space(mess, end, encap, enc_len + 1)))
|
||||
{
|
||||
for (; start; start = start->next)
|
||||
if (start->flags & DHOPT_ENCAP_MATCH)
|
||||
{
|
||||
len = do_opt(start, p + 2, NULL, null_term);
|
||||
*(p++) = start->opt;
|
||||
*(p++) = len;
|
||||
p += len;
|
||||
}
|
||||
*p = OPTION_END;
|
||||
}
|
||||
}
|
||||
|
||||
static void clear_packet(struct dhcp_packet *mess, unsigned char *end, unsigned char *agent_id)
|
||||
{
|
||||
/* don't clear agent_id */
|
||||
@@ -1629,7 +1708,8 @@ static void do_options(struct dhcp_context *context,
|
||||
if (match_netid(boot->netid, netid, 1))
|
||||
break;
|
||||
|
||||
mess->siaddr = context->local;
|
||||
if (context)
|
||||
mess->siaddr = context->local;
|
||||
|
||||
/* See if we can send the boot stuff as options.
|
||||
To do this we need a requested option list, BOOTP
|
||||
@@ -1713,27 +1793,31 @@ static void do_options(struct dhcp_context *context,
|
||||
/* rfc3011 says this doesn't need to be in the requested options list. */
|
||||
if (subnet_addr.s_addr)
|
||||
option_put(mess, end, OPTION_SUBNET_SELECT, INADDRSZ, ntohl(subnet_addr.s_addr));
|
||||
|
||||
/* replies to DHCPINFORM may not have a valid context */
|
||||
if (context)
|
||||
{
|
||||
if (!option_find2(netid, config_opts, OPTION_NETMASK))
|
||||
option_put(mess, end, OPTION_NETMASK, INADDRSZ, ntohl(context->netmask.s_addr));
|
||||
|
||||
/* May not have a "guessed" broadcast address if we got no packets via a relay
|
||||
from this net yet (ie just unicast renewals after a restart */
|
||||
if (context->broadcast.s_addr &&
|
||||
!option_find2(netid, config_opts, OPTION_BROADCAST))
|
||||
option_put(mess, end, OPTION_BROADCAST, INADDRSZ, ntohl(context->broadcast.s_addr));
|
||||
|
||||
/* Same comments as broadcast apply, and also may not be able to get a sensible
|
||||
default when using subnet select. User must configure by steam in that case. */
|
||||
if (context->router.s_addr &&
|
||||
in_list(req_options, OPTION_ROUTER) &&
|
||||
!option_find2(netid, config_opts, OPTION_ROUTER))
|
||||
option_put(mess, end, OPTION_ROUTER, INADDRSZ, ntohl(context->router.s_addr));
|
||||
|
||||
if (in_list(req_options, OPTION_DNSSERVER) &&
|
||||
!option_find2(netid, config_opts, OPTION_DNSSERVER))
|
||||
option_put(mess, end, OPTION_DNSSERVER, INADDRSZ, ntohl(context->local.s_addr));
|
||||
}
|
||||
|
||||
if (!option_find2(netid, config_opts, OPTION_NETMASK))
|
||||
option_put(mess, end, OPTION_NETMASK, INADDRSZ, ntohl(context->netmask.s_addr));
|
||||
|
||||
/* May not have a "guessed" broadcast address if we got no packets via a relay
|
||||
from this net yet (ie just unicast renewals after a restart */
|
||||
if (context->broadcast.s_addr &&
|
||||
!option_find2(netid, config_opts, OPTION_BROADCAST))
|
||||
option_put(mess, end, OPTION_BROADCAST, INADDRSZ, ntohl(context->broadcast.s_addr));
|
||||
|
||||
/* Same comments as broadcast apply, and also may not be able to get a sensible
|
||||
default when using subnet select. User must configure by steam in that case. */
|
||||
if (context->router.s_addr &&
|
||||
in_list(req_options, OPTION_ROUTER) &&
|
||||
!option_find2(netid, config_opts, OPTION_ROUTER))
|
||||
option_put(mess, end, OPTION_ROUTER, INADDRSZ, ntohl(context->router.s_addr));
|
||||
|
||||
if (in_list(req_options, OPTION_DNSSERVER) &&
|
||||
!option_find2(netid, config_opts, OPTION_DNSSERVER))
|
||||
option_put(mess, end, OPTION_DNSSERVER, INADDRSZ, ntohl(context->local.s_addr));
|
||||
|
||||
if (domain && in_list(req_options, OPTION_DOMAINNAME) &&
|
||||
!option_find2(netid, config_opts, OPTION_DOMAINNAME))
|
||||
option_put_string(mess, end, OPTION_DOMAINNAME, domain, null_term);
|
||||
@@ -1747,7 +1831,8 @@ static void do_options(struct dhcp_context *context,
|
||||
|
||||
if (fqdn_flags != 0)
|
||||
{
|
||||
int len = strlen(hostname) + 3;
|
||||
len = strlen(hostname) + 3;
|
||||
|
||||
if (fqdn_flags & 0x04)
|
||||
len += 2;
|
||||
else if (null_term)
|
||||
@@ -1825,12 +1910,12 @@ static void do_options(struct dhcp_context *context,
|
||||
continue;
|
||||
|
||||
/* always force null-term for filename ans servername - buggy PXE again. */
|
||||
len = do_opt(opt, NULL, context->local,
|
||||
len = do_opt(opt, NULL, context,
|
||||
(optno == OPTION_SNAME || optno == OPTION_FILENAME) ? 1 : null_term);
|
||||
|
||||
if ((p = free_space(mess, end, optno, len)))
|
||||
{
|
||||
do_opt(opt, p, context->local,
|
||||
do_opt(opt, p, context,
|
||||
(optno == OPTION_SNAME || optno == OPTION_FILENAME) ? 1 : null_term);
|
||||
|
||||
/* If we send a vendor-id, revisit which vendor-ops we consider
|
||||
@@ -1840,59 +1925,48 @@ static void do_options(struct dhcp_context *context,
|
||||
}
|
||||
}
|
||||
|
||||
/* prune encapsulated options based on netid, and look if we're forcing them to be sent */
|
||||
/* prune vendor-encapsulated options based on netid, and look if we're forcing them to be sent */
|
||||
for (opt = config_opts; opt; opt = opt->next)
|
||||
if (opt->flags & DHOPT_VENDOR_MATCH)
|
||||
if (opt->flags & DHOPT_ENCAP_MATCH)
|
||||
{
|
||||
if (!match_netid(opt->netid, netid, 1) && !match_netid(opt->netid, netid, 0))
|
||||
opt->flags &= ~DHOPT_VENDOR_MATCH;
|
||||
opt->flags &= ~DHOPT_ENCAP_MATCH;
|
||||
else if (opt->flags & DHOPT_FORCE)
|
||||
force_encap = 1;
|
||||
}
|
||||
|
||||
if (force_encap || in_list(req_options, OPTION_VENDOR_CLASS_OPT))
|
||||
{
|
||||
int enc_len = 0;
|
||||
struct dhcp_opt *start;
|
||||
|
||||
/* find size in advance */
|
||||
for (start = opt = config_opts; opt; opt = opt->next)
|
||||
if (opt->flags & DHOPT_VENDOR_MATCH)
|
||||
do_encap_opts(OPTION_VENDOR_CLASS_OPT, mess, end, null_term);
|
||||
|
||||
/* Now send options to be encapsulated in arbitrary options,
|
||||
eg dhcp-option=encap:172,17,.......
|
||||
The may be more that one "outer" to do, so group
|
||||
all the options which match each outer in turn. */
|
||||
for (opt = config_opts; opt; opt = opt->next)
|
||||
if ((opt->flags & (DHOPT_ENCAPSULATE | DHOPT_ENCAP_DONE)) == DHOPT_ENCAPSULATE)
|
||||
{
|
||||
struct dhcp_opt *o;
|
||||
int found = 0;
|
||||
|
||||
for (o = config_opts; o; o = o->next)
|
||||
{
|
||||
int new = do_opt(opt, NULL, context->local, null_term) + 2;
|
||||
if (enc_len + new <= 255)
|
||||
enc_len += new;
|
||||
else
|
||||
o->flags &= ~DHOPT_ENCAP_MATCH;
|
||||
if ((o->flags & DHOPT_ENCAPSULATE) && opt->u.encap == o->u.encap)
|
||||
{
|
||||
p = free_space(mess, end, OPTION_VENDOR_CLASS_OPT, enc_len);
|
||||
for (; start && start != opt; start = start->next)
|
||||
if (p && (start->flags & DHOPT_VENDOR_MATCH))
|
||||
{
|
||||
len = do_opt(start, p + 2, context->local, null_term);
|
||||
*(p++) = start->opt;
|
||||
*(p++) = len;
|
||||
p += len;
|
||||
}
|
||||
enc_len = new;
|
||||
start = opt;
|
||||
o->flags |= DHOPT_ENCAP_DONE;
|
||||
if ((match_netid(o->netid, netid, 1) || match_netid(o->netid, netid, 0)) &&
|
||||
(o->flags & DHOPT_FORCE || in_list(req_options, o->u.encap)))
|
||||
{
|
||||
o->flags |= DHOPT_ENCAP_MATCH;
|
||||
found = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (enc_len != 0 &&
|
||||
(p = free_space(mess, end, OPTION_VENDOR_CLASS_OPT, enc_len + 1)))
|
||||
{
|
||||
for (; start; start = start->next)
|
||||
if (start->flags & DHOPT_VENDOR_MATCH)
|
||||
{
|
||||
len = do_opt(start, p + 2, context->local, null_term);
|
||||
*(p++) = start->opt;
|
||||
*(p++) = len;
|
||||
p += len;
|
||||
}
|
||||
*p = OPTION_END;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (found)
|
||||
do_encap_opts(opt->u.encap, mess, end, null_term);
|
||||
}
|
||||
|
||||
/* move agent_id back down to the end of the packet */
|
||||
restore_agent_id(agent_id, mess, real_end);
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,8 +10,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "dnsmasq.h"
|
||||
|
||||
10
src/util.c
10
src/util.c
@@ -1,4 +1,4 @@
|
||||
/* dnsmasq is Copyright (c) 2000-2008 Simon Kelley
|
||||
/* dnsmasq is Copyright (c) 2000-2009 Simon Kelley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -9,13 +9,11 @@
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* Some code in this file contributed by Rob Funk. */
|
||||
|
||||
/* The SURF random number generator was taken from djbdns-1.05, by
|
||||
Daniel J Berstein, which is public domain. */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user