]> git.ipfire.org Git - people/ms/dnsmasq.git/commitdiff
import of dnsmasq-2.34.tar.gz
authorSimon Kelley <simon@thekelleys.org.uk>
Mon, 16 Oct 2006 19:04:18 +0000 (20:04 +0100)
committerSimon Kelley <simon@thekelleys.org.uk>
Thu, 5 Jan 2012 17:31:12 +0000 (17:31 +0000)
33 files changed:
CHANGELOG
bld/Makefile
contrib/port-forward/dnsmasq-portforward [new file with mode: 0755]
contrib/port-forward/portforward [new file with mode: 0644]
contrib/webmin/README [new file with mode: 0644]
contrib/webmin/dnsmasq.wbm [new file with mode: 0644]
contrib/wrt/dhcp_release.c
contrib/wrt/lease_update.sh
dnsmasq.conf.example
man/dnsmasq.8
po/de.po
po/es.po
po/fi.po
po/fr.po
po/id.po
po/it.po
po/no.po
po/pl.po
po/pt_BR.po
po/ro.po
src/cache.c
src/config.h
src/dbus.c
src/dhcp.c
src/dnsmasq.c
src/dnsmasq.h
src/forward.c
src/helper.c [new file with mode: 0644]
src/lease.c
src/network.c
src/option.c
src/rfc2131.c
src/util.c

index 6aa5b8b363cef81d37ab27edc75cf18d96805060..b0c24ac66da3d7df0fb5402b05d2469572b90b09 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1935,3 +1935,80 @@ version 2.33
            Add contrib/wrt/dhcp_release.c which is a small utility 
            which removes DHCP leases using DHCPRELEASE operation in
            the DHCP protocol.
+
+version 2.34
+           Tweak network-determination code for another corner case:
+           in this case a host forced to move between dhcp-ranges on
+           the same physical interface. Thanks to Matthias Andree.
+           
+           Improve handling of high DNS loads by throttling acceptance of
+           new queries when resources are tight. This should be a
+           better response than the "forwarding table full..."
+           message which was logged before.
+
+           Fixed intermittent infinite loop when re-reading
+           /etc/ethers after SIGHUP. Thanks to Eldon Ziegler for the
+           bug report.
+
+           Provide extra information to the lease-change script: when
+           a lease loses its hostname (because a new lease comes
+           along and claims the same new), the "old" action is called 
+           with the current state of the lease, ie no name. The
+           change is to provide the former name which the lease had
+           in the environment variable DNSMASQ_OLD_HOSTNAME. This
+           helps scripts which do stuff based on hostname, rather
+           than IP address. Also provide vendor-class and user-class
+           information to the lease-change script when a new lease is
+           created in the DNSMASQ_VENDOR_CLASS and
+           DNSMASQ_USER_CLASS<n> environment variables. Suggestion 
+            from Francois-Xavier Le Bail.
+
+           Run the lease change script as root, even when dnsmasq is
+           configured to change UID to an unprivileged user. Since
+           most uses of the lease change script need root, this
+           allows its use whilst keeping the security advantages of
+           running the daemon without privs. The script is invoked
+           via a small helper process which keeps root UID, and
+           validates all data received from the main process. To get
+           root, an attacker would have to break dnsmasq and then
+           break the helper through the restricted comms channel 
+           linking the two.
+           
+           Add contrib/port-forward/* which is a script to set up 
+           port-forwards using the DHCP lease-change script. It's
+           possible to add a host to a config file by name, and when
+           that host gets a DHCP lease, the script will use iptables
+           to set up port-forwards to configured ports at the address
+           which the host is allocated. The script also handles
+           setting up the port-forward iptables entries after reboot,
+           using the persistent lease database, and removing them
+           when a host leaves and its DHCP lease expires.
+
+           Fix unaligned access problem which caused wrong log
+           messages with some clients on some architectures. Thanks
+           to Francois-Xavier Le Bail for the bugreport.
+
+           Fixed problem with DHCPRELEASE and multi-address
+           interfaces. Enhanced contrib/wrt/dhcp_release to cope
+           under these circumstances too. Thanks to Eldon Ziegler for
+           input on this.
+
+           Updated French translation: thanks to Gildas Le Nadan.
+
+           Upgraded the name hash function in the DNS cache. Thanks
+           to Oleg Khovayko for good work on this.
+
+           Added --clear-on-reload flag.  Suggestion from Johannes
+           Stezenbach.
+
+           Treat a nameserver address of 0.0.0.0 as "nothing". Erwin 
+            Cabrera spotted that specifying a nameserver as 0.0.0.0 
+           breaks things badly; this is because the network stack
+           treats is as "this host" and an endless loop ensues.
+                  
+            Added Webmin module in contrib/webmin. Thanks to Neil
+            Fisher for that.
+
+
+
index 544580c7f86e66c0c042d406eed11379bb75e018..6cf3a9d39a3bec05f985935bf081258d1884188a 100644 (file)
@@ -3,7 +3,7 @@ PKG_CONFIG ?= pkg-config
 
 
 OBJS = cache.o rfc1035.o util.o option.o forward.o isc.o network.o \
-       dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o
+       dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o helper.o
 
 .c.o:
        $(CC) $(CFLAGS) $(COPTS) $(I18N) `echo $(COPTS) | ../bld/pkg-wrapper $(PKG_CONFIG) --cflags dbus-1` $(RPM_OPT_FLAGS) -Wall -W -c $<
diff --git a/contrib/port-forward/dnsmasq-portforward b/contrib/port-forward/dnsmasq-portforward
new file mode 100755 (executable)
index 0000000..f9bb857
--- /dev/null
@@ -0,0 +1,68 @@
+#!/bin/bash
+# 
+# /usr/sbin/dnsmasq-portforward
+#
+# A script which gets run when the dnsmasq DHCP lease database changes.
+# It logs to $LOGFILE, if it exists, and maintains port-forwards using
+# IP-tables so that they always point to the correct host. See
+# $PORTSFILE for details on configuring this. dnsmasq must be version 2.34 
+# or later.
+#
+# To enable this script, add 
+#    dhcp-script=/usr/sbin/dnsmasq-portforward
+# to /etc/dnsmasq.conf
+#
+# To enable logging, touch $LOGFILE
+#
+
+PORTSFILE=/etc/portforward
+LOGFILE=/var/log/dhcp.log
+IPTABLES=/sbin/iptables
+
+action=${1:-0}
+hostname=${4}
+
+# log what's going on.
+if [ -f ${LOGFILE} ] ; then
+    date +"%D %T $*" >>${LOGFILE}
+fi
+
+# If a lease gets stripped of a name, we see that as an "old" action
+# with DNSMASQ_OLD_HOSTNAME set, convert it into a "del" 
+if [ ${DNSMASQ_OLD_HOSTNAME} ] && [ ${action} = old ] ; then
+    action=del
+    hostname=${DNSMASQ_OLD_HOSTNAME}
+fi
+
+# action init is not relevant, and will only be seen when leasefile-ro is set.
+if [ ${action} = init ] ; then
+    exit 0
+fi
+
+if [ ${hostname} ]; then
+    ports=$(sed -n -e "/^${hostname}\ .*/ s/^.* //p" ${PORTSFILE})
+
+    for port in $ports; do
+       verb=removed
+       protocol=tcp
+       if [ ${port:0:1} = u ] ; then
+           protocol=udp 
+           port=${port/u/}
+       fi
+       src=${port/:*/}
+       dst=${port/*:/}
+# delete first, to avoid multiple copies of rules.
+       ${IPTABLES} -t nat -D PREROUTING -p $protocol --destination-port $src -j DNAT --to-destination ${3}:$dst
+        if [ ${action} != del ] ; then
+           ${IPTABLES} -t nat -A PREROUTING -p $protocol --destination-port $src -j DNAT --to-destination ${3}:$dst
+           verb=added
+       fi
+       if [ -f ${LOGFILE} ] ; then
+           echo "     DNAT $protocol $src to ${3}:$dst ${verb}." >>${LOGFILE}
+       fi
+    done
+fi
+    
+exit 0
+
+
diff --git a/contrib/port-forward/portforward b/contrib/port-forward/portforward
new file mode 100644 (file)
index 0000000..e42293b
--- /dev/null
@@ -0,0 +1,28 @@
+# This file is read by /usr/sbin/dnsmasq-portforward and used to set up port 
+# forwarding to hostnames. If the dnsmasq-determined hostname matches the
+# first column of this file, then a DNAT port-forward will be set up 
+# to the address which has just been allocated by DHCP . The second field 
+# is port number(s). If there is only one, then the port-forward goes to 
+# the same port on the DHCP-client, if there are two seperated with a 
+# colon, then the second number is the port to which the connection 
+# is forwarded on the DHCP-client. By default, forwarding is set up 
+# for TCP, but it can done for UDP instead by prefixing the port to "u". 
+# To forward both TCP and UDP, two lines are required. 
+#
+# eg.
+# wwwserver 80
+# will set up a port forward from port 80 on this host to port 80 
+# at the address allocated to wwwserver whenever wwwserver gets a DHCP lease.
+#
+# wwwserver 8080:80
+# will set up a port forward from port 8080 on this host to port 80
+# on the DHCP-client.
+#
+# dnsserver 53
+# dnsserver u53
+# will port forward port 53 UDP and TCP from this host to port 53 on dnsserver.
+#
+# Port forwards will recreated when dnsmasq restarts after a reboot, and
+# removed when DHCP leases expire. After editing this file, restart dnsmasq 
+# to install new iptables entries in the kernel.
+
diff --git a/contrib/webmin/README b/contrib/webmin/README
new file mode 100644 (file)
index 0000000..8a8f937
--- /dev/null
@@ -0,0 +1,54 @@
+
+This is the README for the DNSmasq webmin module.
+
+Problems:
+
+1) There's only basic error checking - if you enter some bad
+addresses or names, they will go straight into the config file
+although we do check for things like IP addresses being of
+the correct form (no letters, 4 groups of up to 3 digits
+separated by dots etc). One thing that ISN'T CHECKED FOR is
+that IP dotted quads are all numbers < 256. Another is that
+netmasks are logical (you could enter a netmask of 255.0.255.0 
+for example). Essentially, if it'll pass the config file
+regex scanner (and the above examples will), it won't be 
+flagged as "bad" even if it is a big no-no for dnsmasq itself. 
+
+2) Code is ugly and a kludge - I ain't a programmer! There are probably 
+a lot of things that could be done to tidy up the code - eg, 
+it probably wouldn't hurt to move some common stuff into the lib file.
+
+3) I've used the %text hash and written an english lang file, but
+I am mono-lingual so no other language support as yet.
+
+4) for reasons unknown to me, the icon does not appear properly
+on the servers page of webmin (at least it doesn't for me!)
+
+5) icons have been shamelessly stolen from the ipfilter module,
+specifically the up and down arrows.
+
+6) if you delete an item, the config file will contain
+an otherwise empty, but commented line. This means that if
+you add some new stuff, then delete it, the config file
+will have a number of lines at the end that are just comments.
+Therefore, the config file could possibly grow quite large.
+
+7) NO INCLUDE FILES!
+if you use an include file, it'll be flagged as an error. 
+OK if the include file line is commented out though.
+
+8) deprecated lines not supported (eg user and group) - they
+may produce an error! (user and group don't, but you can't change
+them)
+
+IOW, it works, it's just not very elegant and not very robust.
+
+Hope you find it useful though - I do, as I prevents me having to ever
+wade through the config file and man pages again.
+
+If you modify it, or add a language file, and you have a spare moment,
+please e-mail me - I won't be upset at all if you fix my poor coding!
+(rather the opposite - I'd be pleased someone found it usefull)
+
+Cheers,
+       Neil Fisher <neil@magnecor.com.au>
diff --git a/contrib/webmin/dnsmasq.wbm b/contrib/webmin/dnsmasq.wbm
new file mode 100644 (file)
index 0000000..e37447a
Binary files /dev/null and b/contrib/webmin/dnsmasq.wbm differ
index 2ee98c20c601748cc17af7fccac957ac8a10b2bc..c66d3a031b921ea22e861679d3bc41d8bcff466a 100644 (file)
 #include <stdlib.h>
 #include <net/if_arp.h>
 #include <sys/ioctl.h>
+#include <linux/types.h>
+#include <linux/netlink.h>
+#include <linux/rtnetlink.h>
+#include <errno.h>
 
 #define DHCP_CHADDR_MAX          16
 #define BOOTREQUEST              1
@@ -69,6 +73,72 @@ struct dhcp_packet {
   unsigned char options[308];
 };
 
+static struct iovec iov;
+
+static int expand_buf(struct iovec *iov, size_t size)
+{
+  void *new;
+
+  if (size <= iov->iov_len)
+    return 1;
+
+  if (!(new = malloc(size)))
+    {
+      errno = ENOMEM;
+      return 0;
+    }
+
+  if (iov->iov_base)
+    {
+      memcpy(new, iov->iov_base, iov->iov_len);
+      free(iov->iov_base);
+    }
+
+  iov->iov_base = new;
+  iov->iov_len = size;
+
+  return 1;
+}
+
+static ssize_t netlink_recv(int fd)
+{
+  struct msghdr msg;
+  ssize_t rc;
+
+  msg.msg_control = NULL;
+  msg.msg_controllen = 0;
+  msg.msg_name = NULL;
+  msg.msg_namelen = 0;
+  msg.msg_iov = &iov;
+  msg.msg_iovlen = 1;
+    
+  while (1)
+    {
+      msg.msg_flags = 0;
+      while ((rc = recvmsg(fd, &msg, MSG_PEEK)) == -1 && errno == EINTR);
+      
+      /* 2.2.x doesn't suport MSG_PEEK at all, returning EOPNOTSUPP, so we just grab a 
+         big buffer and pray in that case. */
+      if (rc == -1 && errno == EOPNOTSUPP)
+        {
+          if (!expand_buf(&iov, 2000))
+            return -1;
+          break;
+        }
+      
+      if (rc == -1 || !(msg.msg_flags & MSG_TRUNC))
+        break;
+            
+      if (!expand_buf(&iov, iov.iov_len + 100))
+        return -1;
+    }
+
+  /* finally, read it for real */
+  while ((rc = recvmsg(fd, &msg, 0)) == -1 && errno == EINTR);
+  
+  return rc;
+}
+
 static int parse_hex(char *in, unsigned char *out, int maxlen, int *mac_type)
 {
   int i = 0;
@@ -103,6 +173,78 @@ static int parse_hex(char *in, unsigned char *out, int maxlen, int *mac_type)
     return i;
 }
 
+static int is_same_net(struct in_addr a, struct in_addr b, struct in_addr mask)
+{
+  return (a.s_addr & mask.s_addr) == (b.s_addr & mask.s_addr);
+}
+
+static struct in_addr find_interface(struct in_addr client, int fd, int index)
+{
+  struct sockaddr_nl addr;
+  struct nlmsghdr *h;
+  ssize_t len;
+  struct {
+    struct nlmsghdr nlh;
+    struct rtgenmsg g; 
+  } req;
+
+  addr.nl_family = AF_NETLINK;
+  addr.nl_pad = 0;
+  addr.nl_groups = 0;
+  addr.nl_pid = 0; /* address to kernel */
+
+  req.nlh.nlmsg_len = sizeof(req);
+  req.nlh.nlmsg_type = RTM_GETADDR;
+  req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST | NLM_F_ACK; 
+  req.nlh.nlmsg_pid = 0;
+  req.nlh.nlmsg_seq = 1;
+  req.g.rtgen_family = AF_INET; 
+
+  if (sendto(fd, (void *)&req, sizeof(req), 0, 
+            (struct sockaddr *)&addr, sizeof(addr)) == -1)
+    {
+      perror("sendto failed");
+      exit(1);
+    }
+  
+  while (1)
+    {
+      if ((len = netlink_recv(fd)) == -1)
+       {
+         perror("netlink");
+         exit(1);
+       }
+
+      for (h = (struct nlmsghdr *)iov.iov_base; NLMSG_OK(h, (size_t)len); h = NLMSG_NEXT(h, len))
+       if (h->nlmsg_type == NLMSG_DONE)
+         exit(0);
+       else if (h->nlmsg_type == RTM_NEWADDR)
+          {
+            struct ifaddrmsg *ifa = NLMSG_DATA(h);  
+            struct rtattr *rta;
+            unsigned int len1 = h->nlmsg_len - NLMSG_LENGTH(sizeof(*ifa));
+            
+            if (ifa->ifa_index == index && ifa->ifa_family == AF_INET)
+              {
+                struct in_addr netmask, addr;
+                
+                netmask.s_addr = htonl(0xffffffff << (32 - ifa->ifa_prefixlen));
+                addr.s_addr = 0;
+                
+                for (rta = IFA_RTA(ifa); RTA_OK(rta, len1); rta = RTA_NEXT(rta, len1))
+                 if (rta->rta_type == IFA_LOCAL)
+                   addr = *((struct in_addr *)(rta+1));
+               
+                if (addr.s_addr && is_same_net(addr, client, netmask))
+                 return addr;
+             }
+         }
+    }
+  exit(0);
+}
+
 int main(int argc, char **argv)
 { 
   struct in_addr server, lease;
@@ -112,6 +254,11 @@ int main(int argc, char **argv)
   struct sockaddr_in dest;
   struct ifreq ifr;
   int fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
+  int nl = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
+  struct iovec iov;
+  iov.iov_len = 200;
+  iov.iov_base = malloc(iov.iov_len);
 
   if (argc < 4 || argc > 5)
     { 
@@ -119,7 +266,7 @@ int main(int argc, char **argv)
       exit(1);
     }
 
-  if (fd == -1)
+  if (fd == -1 || nl == -1)
     {
       perror("cannot create socket");
       exit(1);
@@ -128,15 +275,15 @@ int main(int argc, char **argv)
   /* This voodoo fakes up a packet coming from the correct interface, which really matters for 
      a DHCP server */
   strcpy(ifr.ifr_name, argv[1]);
-  ifr.ifr_addr.sa_family = AF_INET;
-  if (ioctl(fd, SIOCGIFADDR, &ifr) == -1 || setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, &ifr, sizeof(ifr)) == -1)
+  if (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, &ifr, sizeof(ifr)) == -1)
     {
       perror("cannot setup interface");
       exit(1);
     }
   
-  server = ((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr;
+  
   lease.s_addr = inet_addr(argv[2]);
+  server = find_interface(lease, nl, if_nametoindex(argv[1]));
   
   memset(&packet, 0, sizeof(packet));
  
@@ -174,7 +321,7 @@ int main(int argc, char **argv)
   dest.sin_addr = server;
 
   if (sendto(fd, &packet, sizeof(packet), 0, 
-            (struct sockaddr *)&dest, sizeof(dest)) == 1)
+            (struct sockaddr *)&dest, sizeof(dest)) == -1)
     {
       perror("sendto failed");
       exit(1);
index 2171d6b4db8f45716942f9812d26914231289064..46509b3492b8855a8a708f253d95f1bbfaabba24 100755 (executable)
@@ -35,9 +35,6 @@ PREFIX=dnsmasq_lease_
 
 # Primary key is address.
 
-NVRAM=/usr/sbin/nvram
-PREFIX=dnsmasq_lease_
-
 if [ ${1} = init ] ; then
      ${NVRAM} show | sed -n -e "/^${PREFIX}.*/ s/^.*=//p"
 else
index 1fc733e77fa20ce5cc7d32bdee787261643d7646..59d6dfa8bfdd08a14c34275c5d0df1d4b2004bd9 100644 (file)
@@ -11,9 +11,9 @@
 # these requests from bringing up the link uneccessarily.
 
 # Never forward plain names (without a dot or domain part)
-domain-needed
+#domain-needed
 # Never forward addresses in the non-routed address spaces.
-bogus-priv
+#bogus-priv
 
 
 # Uncomment this to filter useless windows-originated DNS requests
@@ -382,3 +382,4 @@ bogus-priv
 
 # Include a another lot of configuration options.
 #conf-file=/etc/dnsmasq.more.conf
+#conf-dir=/etc/dnsmasq.d
index 4cd5e2cb998bf29a4053d85f3ad83868e8351a56..1225c13da644654a3f1ca2439a6d3c48b994b6a6 100644 (file)
@@ -219,6 +219,11 @@ server strictly in the order they appear in /etc/resolv.conf
 .B \-n, --no-poll
 Don't poll /etc/resolv.conf for changes.
 .TP
+.B --clear-on-reload
+Whenever /etc/resolv.conf is re-read, clear the DNS cache.
+This is useful when new nameservers may have different
+data than that held in cache.
+.TP
 .B \-D, --domain-needed
 Tells dnsmasq to never forward queries for plain names, without dots
 or domain parts, to upstream nameservers. If the name is not known
@@ -326,11 +331,11 @@ Disable negative caching. Negative caching allows dnsmasq to remember
 identical queries without forwarding them again. This flag disables
 negative caching.
 .TP
-.B \-0, --dns-forward-max
-Set the maximum number of concurrent DNS queries. Unanswered queries
-time out after 20 seconds. If you sometimes see the log message 
-"forwarding table overflow: check for server loops." then it is worth
-experimenting with this setting. The default value is 150.
+.B \-0, --dns-forward-max=<queries>
+Set the maximum number of concurrent DNS queries. The default value is
+150, which should be fine for most setups. The only known situation
+where this needs to be increased is when using web-server log file
+resolvers, which can generate large numbers of concurrent queries.
 .TP
 .B \-F, --dhcp-range=[[net:]network-id,]<start-addr>,<end-addr>[[,<netmask>],<broadcast>][,<default lease time>]
 Enable the DHCP server. Addresses will be given out from the range
@@ -363,7 +368,7 @@ addresses given via
 .B dhcp-host
 or from /etc/ethers will be served.
 .TP
-.B \-G, --dhcp-host=[[<hwaddr>]|[id:[<client_id>][*]]][net:<netid>][,<ipaddr>][,<hostname>][,<lease_time>][,ignore]
+.B \-G, --dhcp-host=[[<hwaddr>]|[id:[<client_id>][*]]][,net:<netid>][,<ipaddr>][,<hostname>][,<lease_time>][,ignore]
 Specify per host parameters for the DHCP server. This allows a machine
 with a particular hardware address to be always allocated the same
 hostname, IP address and lease time. A hostname specified like this
@@ -557,16 +562,21 @@ 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 process is run as any unprivileged user which dnsmasq
-runs as, so it may be necessary to inhibit dropping of the root user,
-using the
-.B -u
-directive, if the script needs root privs.
+The 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
-host provided a client-id, this is stored in the variable
-DNSMASQ_CLIENT_ID. If dnsmasq was compiled with HAVE_BROKEN_RTC, then
+host provided a client-id, this is stored in the environment variable
+DNSMASQ_CLIENT_ID. If the client provides vendor-class or user-class 
+information, these are provided in DNSMASQ_VENDOR_CLASS and 
+DNSMASQ_USER_CLASS0..DNSMASQ_USER_CLASSn variables, but only for the
+"add" actions, since these data are not held in dnsmasq's lease
+database. If dnsmasq was compiled with HAVE_BROKEN_RTC, then
 the length of the lease (in seconds) is stored in
-DNSMASQ_LEASE_LENGTH, otherwise the time of lease expiry is stored in DNSMASQ_LEASE_EXPIRES.
+DNSMASQ_LEASE_LENGTH, otherwise the time of lease expiry is stored in
+DNSMASQ_LEASE_EXPIRES. If a lease used to have a hostname, which is
+removed, an "old" event is generated with the new state of the lease, 
+ie no name, and the former name is provided in the environment 
+variable DNSMASQ_OLD_HOSTNAME.
 All file decriptors are
 closed except stdin, stdout and stderr which are open to /dev/null
 (except in debug mode).
index e1516c779f2d4adfc6c296e93e3b33917392109c..abcd2741e22fc3f6e0b7c9ce221347d6c0ed27c5 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.24\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-04 11:57+0100\n"
+"POT-Creation-Date: 2006-10-13 18:20+0100\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"
@@ -15,37 +15,37 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: cache.c:570
+#: cache.c:606
 #, c-format
 msgid "failed to load names from %s: %m"
 msgstr ""
 
-#: cache.c:606 dhcp.c:683
+#: cache.c:642 dhcp.c:682
 #, c-format
 msgid "bad address at %s line %d"
 msgstr ""
 
 # @Simon: Here I need an example to understand it :)
-#: cache.c:633 dhcp.c:697
+#: cache.c:669 dhcp.c:696
 #, c-format
 msgid "bad name at %s line %d"
 msgstr ""
 
 # @Simon: Here I need an example to understand it :)
-#: cache.c:639 dhcp.c:751
+#: cache.c:675 dhcp.c:750
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "lese %s - %d Adressen"
 
 # @Simon: 'lese' is present, is that ok? If it should be past, it would be
 # @Simon: "gelesen: %s - %d Adressen" - note the colon, it's a must, then.
-#: cache.c:675
+#: cache.c:711
 msgid "cleared cache"
 msgstr "Cache geleert"
 
 # @Simon: "Cache geleert" is literally "Cache emptied" but I think other translations could be misleading
 # @Simon: (I don't know a good german replacement for "Cache" but AFAIK "Cache" is common in german)
-#: cache.c:728
+#: cache.c:764
 #, c-format
 msgid ""
 "not giving name %s to the DHCP lease of %s because the name exists in %s "
@@ -56,7 +56,7 @@ msgstr ""
 
 # @Simon: "Mieter" is rather 'logder, renter, tenant, lessee' but I couldn't find anything that fits better.
 # @Simon: So I thought I put it in ''-marks :)
-#: cache.c:772
+#: cache.c:808
 #, fuzzy, c-format
 msgid ""
 "time %lu, cache size %d, %d/%d cache insertions re-used unexpired cache "
@@ -70,7 +70,7 @@ 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:153 option.c:1214
+#: util.c:153 option.c:1221
 msgid "could not get memory"
 msgstr "Speicher nicht verfügbar"
 
@@ -97,26 +97,26 @@ msgstr "Start gescheitert"
 msgid "infinite"
 msgstr "unendlich"
 
-#: option.c:141
+#: option.c:147
 msgid "Specify local address(es) to listen on."
 msgstr "Lokale abzuhörende Adresse(n) angeben."
 
 # @Simon: Quite literal translation, sounds not too polite in german.
 # @Simon: How about: "Bitte die lokalen abzuhörende Adresse(n) angeben."
 # @Simon: = "Please specify the local address(es) to listen on."
-#: option.c:142
+#: option.c:148
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr "Rückkehr-IP-Adresse für alle Geräte in angebenen Domänen"
 
 # @Simon: I hope "Return ipaddr" is similar to "Return-ipaddr" and not "Return the ipaddr ... !"
-#: option.c:143
+#: option.c:149
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr ""
 "'Gefälschte' Rückwärts-Ergebnisse für private Adressbereiche nach RFC1918"
 
 # @Simon: I'm a bit unsure about the meaning of "Fake" here, and the best word for "lookup" is "Nachsehen" 
 # @Simon: (that is "looking-for") but I think that cannot be used. "Ergebnisse" = "results", is that near enough?
-#: option.c:144
+#: option.c:150
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr "Behandle IP-Adr als NXDOMAIN (wehrt Verisign-Platzhalter ab)."
 
@@ -127,17 +127,17 @@ msgstr "Behandle IP-Adr als NXDOMAIN (wehrt Verisign-Platzhalter ab)."
 # @Simon:   "Behandle IP-Adr als NXDOMAIN (gegen Verisigns Platzhalter-Gebrauch)."
 # @Simon: = "Treat ipaddr as NXDOMAIN (defeats Verisigns wildcard usage)." ?
 # @Simon: But the explanatory(?) effect is only a very tiny bit better, I believe - what do U think? 
-#: option.c:145
+#: option.c:151
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr "Angabe der Größe des Caches in Einträgen (Voreinstellung: %s)."
 
-#: option.c:146
+#: option.c:152
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr "Angabe der Konfigurationsdatei (Voreinstellung: %s)."
 
-#: option.c:147
+#: option.c:153
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr "NICHT in den Hintergrund gehen: Betrieb im Debug-Modus"
 
@@ -145,454 +145,455 @@ msgstr "NICHT in den Hintergrund gehen: Betrieb im Debug-Modus"
 # @Simon: I know it sounds a bit clumsy in english, but "fork" would be hard to understand
 # @Simon: and then I get a problem between "go" and "run" - so...
 # @Simon: "Debug-mode" = "Fehlersuch-Modus", literally, but I think "Debug-Modus" is better :)
-#: option.c:148
+#: option.c:154
 msgid "Do NOT forward queries with no domain part."
 msgstr "Anfragen ohne Domänen-Teil NICHT weiterschicken"
 
 # @Simon: "weiterschicken" is rather "pass on" (I hope) but that's the best I found.
-#: option.c:149
+#: option.c:155
 msgid "Return self-pointing MX records for local hosts."
 msgstr "Rückgabe auf sich selbst zeigender MX-Einträge für lokale Geräte"
 
 # @Simon: "self-pointing" is a bit difficult, the meaning is clear but takes 3-4 words to express it in german.
 # @Simon: "Geräte" is about "hard-devices". There is a word for "host" (it is "Wirt") but it would be misleading.
 # @Simon: My online dict suggest "Rechner" (= Computer), but I think "hard-devices" is better because it's more general.
-#: option.c:150
+#: option.c:156
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr "Erweitere einfache Namen in /etc/hosts mit der Domänen-Endung"
 
-#: option.c:151
+#: option.c:157
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr "'unechte' DNS-Anfragen von Windows-Rechnern nicht weiterleiten"
 
 # @Simon: I'm a bit unsure about "spurious"
-#: option.c:152
+#: option.c:158
 msgid "Enable DHCP in the range given with lease duration."
 msgstr ""
 
-#: option.c:153
+#: option.c:159
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr ""
 
-#: option.c:154
+#: option.c:160
 msgid "Set address or hostname for a specified machine."
 msgstr ""
 
-#: option.c:155
+#: option.c:161
 #, c-format
 msgid "Do NOT load %s file."
 msgstr ""
 
-#: option.c:156
+#: option.c:162
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr ""
 
-#: option.c:157
+#: option.c:163
 msgid "Specify interface(s) to listen on."
 msgstr ""
 
-#: option.c:158
+#: option.c:164
 msgid "Specify interface(s) NOT to listen on."
 msgstr ""
 
-#: option.c:159
+#: option.c:165
 msgid "Map DHCP user class to option set."
 msgstr ""
 
-#: option.c:160
+#: option.c:166
 msgid "Don't do DHCP for hosts in option set."
 msgstr ""
 
-#: option.c:161
+#: option.c:167
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr ""
 
-#: option.c:162
+#: option.c:168
 msgid "Assume we are the only DHCP server on the local network."
 msgstr ""
 
-#: option.c:163
+#: option.c:169
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr ""
 
-#: option.c:164
+#: option.c:170
 msgid "Return MX records for local hosts."
 msgstr ""
 
-#: option.c:165
+#: option.c:171
 msgid "Specify an MX record."
 msgstr ""
 
-#: option.c:166
+#: option.c:172
 msgid "Specify BOOTP options to DHCP server."
 msgstr ""
 
-#: option.c:167
+#: option.c:173
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr ""
 
-#: option.c:168
+#: option.c:174
 msgid "Do NOT cache failed search results."
 msgstr ""
 
-#: option.c:169
+#: option.c:175
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr ""
 
-#: option.c:170
+#: option.c:176
 msgid "Set extra options to be set to DHCP clients."
 msgstr ""
 
-#: option.c:171
+#: option.c:177
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr ""
 
-#: option.c:172
+#: option.c:178
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr ""
 
-#: option.c:173
+#: option.c:179
 msgid "Log queries."
 msgstr ""
 
-#: option.c:174
+#: option.c:180
 msgid "Force the originating port for upstream queries."
 msgstr ""
 
-#: option.c:175
+#: option.c:181
 msgid "Do NOT read resolv.conf."
 msgstr ""
 
-#: option.c:176
+#: option.c:182
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr ""
 
-#: option.c:177
+#: option.c:183
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr ""
 
-#: option.c:178
+#: option.c:184
 msgid "Never forward queries to specified domains."
 msgstr ""
 
-#: option.c:179
+#: option.c:185
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr ""
 
-#: option.c:180
+#: option.c:186
 msgid "Specify default target in an MX record."
 msgstr ""
 
-#: option.c:181
+#: option.c:187
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr ""
 
-#: option.c:182
+#: option.c:188
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr ""
 
-#: option.c:183
+#: option.c:189
 msgid "Map DHCP vendor class to option set."
 msgstr ""
 
-#: option.c:184
+#: option.c:190
 msgid "Display dnsmasq version and copyright information."
 msgstr ""
 
-#: option.c:185
+#: option.c:191
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr ""
 
-#: option.c:186
+#: option.c:192
 msgid "Specify a SRV record."
 msgstr ""
 
-#: option.c:187
+#: option.c:193
 msgid "Display this message."
 msgstr ""
 
-#: option.c:188
+#: option.c:194
 #, c-format
 msgid "Specify path of PID file. (defaults to %s)."
 msgstr ""
 
-#: option.c:189
+#: option.c:195
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr ""
 
-#: option.c:190
+#: option.c:196
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr ""
 
-#: option.c:191
+#: option.c:197
 msgid "Specify TXT DNS record."
 msgstr ""
 
-#: option.c:192
+#: option.c:198
 msgid "Bind only to interfaces in use."
 msgstr ""
 
-#: option.c:193
+#: option.c:199
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr ""
 
-#: option.c:194
+#: option.c:200
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr ""
 
-#: option.c:195
+#: option.c:201
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr ""
 
-#: option.c:196
+#: option.c:202
 msgid "Enable dynamic address allocation for bootp."
 msgstr ""
 
-#: option.c:197
+#: option.c:203
 msgid "Map MAC address (with wildcards) to option set."
 msgstr ""
 
-#: option.c:198
+#: option.c:204
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 
-#: option.c:199
+#: option.c:205
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 
-#: option.c:200
+#: option.c:206
 msgid "Read configuration from all the files in this directory."
 msgstr ""
 
-#: option.c:201
+#: option.c:207
 msgid "Log to this syslog facility. (defaults to DAEMON)"
 msgstr ""
 
-#: option.c:202
+#: option.c:208
 msgid "Read leases at startup, but never write the lease file."
 msgstr ""
 
-#: option.c:203
+#: option.c:209
 #, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr ""
 
-#: option.c:316
+#: option.c:210
+#, c-format
+msgid "Clear DNS cache when reloading %s."
+msgstr ""
+
+#: option.c:323
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
 "\n"
 msgstr ""
 
-#: option.c:318
+#: option.c:325
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr ""
 
-#: option.c:320
+#: option.c:327
 #, c-format
 msgid "Valid options are :\n"
 msgstr ""
 
-#: option.c:355
+#: option.c:362
 msgid "extraneous parameter"
 msgstr ""
 
-#: option.c:359
+#: option.c:366
 msgid "missing parameter"
 msgstr ""
 
-#: option.c:381
+#: option.c:388
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr ""
 
-#: option.c:400
+#: option.c:407
 #, c-format
 msgid "cannot access %s: %s"
 msgstr ""
 
-#: option.c:477
+#: option.c:484
 msgid "bad MX preference"
 msgstr ""
 
-#: option.c:486
+#: option.c:493
 msgid "bad MX name"
 msgstr ""
 
-#: option.c:504
+#: option.c:511
 msgid "bad MX target"
 msgstr ""
 
-#: option.c:516
+#: option.c:523
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:715 option.c:726
+#: option.c:722 option.c:733
 msgid "bad port"
 msgstr ""
 
-#: option.c:871
+#: option.c:878
 msgid "bad dhcp-range"
 msgstr ""
 
-#: option.c:900
+#: option.c:907
 msgid "only one netid tag allowed"
 msgstr ""
 
-#: option.c:945
+#: option.c:952
 msgid "inconsistent DHCP range"
 msgstr ""
 
-#: option.c:1130
+#: option.c:1137
 msgid "bad dhcp-host"
 msgstr ""
 
-#: option.c:1191
+#: option.c:1198
 msgid "bad dhcp-option"
 msgstr ""
 
-#: option.c:1209
+#: option.c:1216
 msgid "bad domain in dhcp-option"
 msgstr ""
 
-#: option.c:1379
+#: option.c:1386
 msgid "dhcp-option too long"
 msgstr ""
 
-#: option.c:1576
+#: option.c:1583
 msgid "bad TXT record"
 msgstr ""
 
-#: option.c:1608
+#: option.c:1615
 msgid "TXT record string too long"
 msgstr ""
 
-#: option.c:1647
+#: option.c:1654
 msgid "bad SRV record"
 msgstr ""
 
-#: option.c:1660
+#: option.c:1667
 msgid "bad SRV target"
 msgstr ""
 
-#: option.c:1672
+#: option.c:1679
 msgid "invalid port number"
 msgstr ""
 
-#: option.c:1683
+#: option.c:1690
 msgid "invalid priority"
 msgstr ""
 
-#: option.c:1694
+#: option.c:1701
 msgid "invalid weight"
 msgstr ""
 
-#: option.c:1725
+#: option.c:1732
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
-#: option.c:1732
+#: option.c:1739
 #, c-format
 msgid "cannot read %s: %s"
 msgstr ""
 
-#: option.c:1774
+#: option.c:1781
 msgid "missing \""
 msgstr ""
 
-#: option.c:1809
+#: option.c:1816
 msgid "error"
 msgstr ""
 
-#: option.c:1813
+#: option.c:1820
 msgid "bad option"
 msgstr ""
 
-#: option.c:1877
+#: option.c:1884
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr ""
 
-#: option.c:1878
+#: option.c:1885
 #, c-format
 msgid ""
 "Compile time options %s\n"
 "\n"
 msgstr ""
 
-#: option.c:1879
+#: option.c:1886
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr ""
 
-#: option.c:1880
+#: option.c:1887
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr ""
 
-#: option.c:1881
+#: option.c:1888
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2.\n"
 msgstr ""
 
-#: option.c:1892
+#: option.c:1899
 msgid "try --help"
 msgstr ""
 
-#: option.c:1894
+#: option.c:1901
 msgid "try -w"
 msgstr ""
 
-#: option.c:1897
+#: option.c:1904
 #, c-format
 msgid "bad command line options: %s"
 msgstr ""
 
-#: option.c:1948
+#: option.c:1955
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr ""
 
-#: option.c:1976
+#: option.c:1983
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr ""
 
-#: option.c:1986
+#: option.c:1993
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr ""
 
-#: option.c:1989
+#: option.c:1996
 #, c-format
 msgid "failed to read %s: %s"
 msgstr ""
 
-#: option.c:2007
+#: option.c:2014
 #, c-format
 msgid "no search directive found in %s"
 msgstr ""
 
-#: forward.c:371
+#: forward.c:370
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr ""
 
-#: forward.c:878
-msgid "forwarding table overflow: check for server loops."
-msgstr ""
-
-#: isc.c:73 dnsmasq.c:480
+#: isc.c:73 dnsmasq.c:482
 #, c-format
 msgid "failed to access %s: %m"
 msgstr ""
@@ -602,7 +603,7 @@ msgstr ""
 msgid "failed to load %s: %m"
 msgstr ""
 
-#: isc.c:93 dnsmasq.c:502
+#: isc.c:93 dnsmasq.c:504
 #, c-format
 msgid "reading %s"
 msgstr ""
@@ -617,7 +618,7 @@ msgstr ""
 msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
 msgstr ""
 
-#: network.c:315 dnsmasq.c:129
+#: network.c:315 dnsmasq.c:132
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr ""
@@ -637,151 +638,151 @@ msgstr ""
 msgid "failed to listen on socket: %s"
 msgstr ""
 
-#: network.c:411
+#: network.c:419
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr ""
 
-#: network.c:420
+#: network.c:428
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %m"
 msgstr ""
 
-#: network.c:434
+#: network.c:442
 msgid "domain"
 msgstr ""
 
-#: network.c:436
+#: network.c:444
 msgid "unqualified"
 msgstr ""
 
-#: network.c:436
+#: network.c:444
 msgid "domains"
 msgstr ""
 
-#: network.c:439
+#: network.c:447
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr ""
 
-#: network.c:441
+#: network.c:449
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr ""
 
-#: network.c:444
+#: network.c:452
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr ""
 
-#: network.c:464
+#: network.c:472
 #, c-format
 msgid "failed to read %s: %m"
 msgstr ""
 
-#: dnsmasq.c:94
+#: dnsmasq.c:97
 msgid ""
 "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:111
+#: dnsmasq.c:114
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr ""
 
-#: dnsmasq.c:119
+#: dnsmasq.c:122
 #, c-format
 msgid "unknown interface %s"
 msgstr ""
 
-#: dnsmasq.c:125
+#: dnsmasq.c:128
 #, c-format
 msgid "no interface with address %s"
 msgstr ""
 
-#: dnsmasq.c:144
+#: dnsmasq.c:147
 msgid "must set exactly one interface on broken systems without IP_RECVIF"
 msgstr ""
 
-#: dnsmasq.c:157 dnsmasq.c:603
+#: dnsmasq.c:160 dnsmasq.c:609
 #, c-format
 msgid "DBus error: %s"
 msgstr ""
 
-#: dnsmasq.c:160
+#: dnsmasq.c:163
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:191
+#: dnsmasq.c:194
 #, c-format
 msgid "cannot create pipe: %s"
 msgstr ""
 
-#: dnsmasq.c:341
+#: dnsmasq.c:337
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr ""
 
-#: dnsmasq.c:343
+#: dnsmasq.c:339
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr ""
 
-#: dnsmasq.c:345
+#: dnsmasq.c:341
 #, c-format
 msgid "compile time options: %s"
 msgstr ""
 
-#: dnsmasq.c:351
+#: dnsmasq.c:347
 msgid "DBus support enabled: connected to system bus"
 msgstr ""
 
-#: dnsmasq.c:353
+#: dnsmasq.c:349
 msgid "DBus support enabled: bus connection pending"
 msgstr ""
 
-#: dnsmasq.c:358
+#: dnsmasq.c:354
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr ""
 
-#: dnsmasq.c:363
+#: dnsmasq.c:359
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr ""
 
-#: dnsmasq.c:368
+#: dnsmasq.c:364
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:382
+#: dnsmasq.c:378
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:383
+#: dnsmasq.c:379
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:393
+#: dnsmasq.c:389
 #, c-format
 msgid "warning: setting capabilities failed: %m"
 msgstr ""
 
-#: dnsmasq.c:395
+#: dnsmasq.c:391
 msgid "running as root"
 msgstr ""
 
-#: dnsmasq.c:511
+#: dnsmasq.c:515
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr ""
 
-#: dnsmasq.c:551
+#: dnsmasq.c:574
 msgid "exiting on receipt of SIGTERM"
 msgstr ""
 
-#: dnsmasq.c:605
+#: dnsmasq.c:611
 msgid "connected to system DBus"
 msgstr ""
 
@@ -815,27 +816,27 @@ msgstr ""
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr ""
 
-#: dhcp.c:318
+#: dhcp.c:317
 #, c-format
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr ""
 
-#: dhcp.c:635
+#: dhcp.c:634
 #, c-format
 msgid "failed to read %s:%m"
 msgstr ""
 
-#: dhcp.c:670
+#: dhcp.c:669
 #, c-format
 msgid "bad line at %s line %d"
 msgstr ""
 
-#: dhcp.c:779
+#: dhcp.c:776
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr ""
 
-#: dhcp.c:815
+#: dhcp.c:812
 #, c-format
 msgid "Ignoring DHCP host name %s because it has an illegal domain part"
 msgstr ""
@@ -864,107 +865,102 @@ msgstr ""
 msgid "failed to write %s: %s (retry in %us)"
 msgstr ""
 
-#: lease.c:522
-#, c-format
-msgid "failed to execute %s: %m"
-msgstr ""
-
-#: rfc2131.c:247
+#: rfc2131.c:261
 #, c-format
 msgid "no address range available for DHCP request %s %s"
 msgstr ""
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "with subnet selector"
 msgstr ""
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "via"
 msgstr ""
 
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:288 rfc2131.c:312
 msgid "disabled"
 msgstr ""
 
-#: rfc2131.c:310 rfc2131.c:741
+#: rfc2131.c:324 rfc2131.c:759
 msgid "address in use"
 msgstr ""
 
-#: rfc2131.c:313
+#: rfc2131.c:327
 msgid "no address configured"
 msgstr ""
 
-#: rfc2131.c:326 rfc2131.c:613
+#: rfc2131.c:340 rfc2131.c:631
 msgid "no address available"
 msgstr ""
 
-#: rfc2131.c:335 rfc2131.c:748
+#: rfc2131.c:349 rfc2131.c:767
 msgid "no leases left"
 msgstr ""
 
-#: rfc2131.c:338 rfc2131.c:715
+#: rfc2131.c:352 rfc2131.c:733
 msgid "wrong network"
 msgstr ""
 
-#: rfc2131.c:542
+#: rfc2131.c:559
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr ""
 
-#: rfc2131.c:562
+#: rfc2131.c:580
 msgid "unknown lease"
 msgstr ""
 
-#: rfc2131.c:571 rfc2131.c:813
+#: rfc2131.c:589 rfc2131.c:862
 msgid "ignored"
 msgstr ""
 
-#: rfc2131.c:587
+#: rfc2131.c:605
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:596
+#: rfc2131.c:614
 #, c-format
 msgid ""
 "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:599
+#: rfc2131.c:617
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:678
+#: rfc2131.c:696
 msgid "wrong address"
 msgstr ""
 
-#: rfc2131.c:691
+#: rfc2131.c:709
 msgid "lease not found"
 msgstr ""
 
-#: rfc2131.c:723
+#: rfc2131.c:741
 msgid "address not available"
 msgstr ""
 
-#: rfc2131.c:734
+#: rfc2131.c:752
 msgid "static lease available"
 msgstr ""
 
-#: rfc2131.c:738
+#: rfc2131.c:756
 msgid "address reserved"
 msgstr ""
 
-#: rfc2131.c:744
+#: rfc2131.c:762
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:945
+#: rfc2131.c:1000
 #, c-format
 msgid "cannot send DHCP option %d: no space left in packet"
 msgstr ""
 
-#: rfc2131.c:1246
+#: rfc2131.c:1301
 #, c-format
 msgid "More than one vendor class matches, using %s"
 msgstr ""
@@ -1000,3 +996,18 @@ msgstr ""
 #, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr ""
+
+#: helper.c:145
+#, c-format
+msgid "child process killed by signal %d"
+msgstr ""
+
+#: helper.c:147
+#, c-format
+msgid "child process exited with status %d"
+msgstr ""
+
+#: helper.c:216
+#, c-format
+msgid "failed to execute %s: %m"
+msgstr ""
index cf1b0929ef6aa6e35af61b61561893af49fa5dc0..86bb66d47b9582de3d92aefb3324c79fb8f58758 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.24\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-04 11:57+0100\n"
+"POT-Creation-Date: 2006-10-13 18:20+0100\n"
 "PO-Revision-Date: 2005-10-07 11:04+0100\n"
 "Last-Translator: Christopher Chatham <chrislinux@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -15,31 +15,31 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: cache.c:570
+#: cache.c:606
 #, c-format
 msgid "failed to load names from %s: %m"
 msgstr "no se pudo cargar nombres desde %s: %m"
 
-#: cache.c:606 dhcp.c:683
+#: cache.c:642 dhcp.c:682
 #, fuzzy, c-format
 msgid "bad address at %s line %d"
 msgstr "nombre erróneo en %s línea %d"
 
-#: cache.c:633 dhcp.c:697
+#: cache.c:669 dhcp.c:696
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "nombre erróneo en %s línea %d"
 
-#: cache.c:639 dhcp.c:751
+#: cache.c:675 dhcp.c:750
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "direcciónes %s - %d leídas"
 
-#: cache.c:675
+#: cache.c:711
 msgid "cleared cache"
 msgstr "el caché fue liberado"
 
-#: cache.c:728
+#: cache.c:764
 #, c-format
 msgid ""
 "not giving name %s to the DHCP lease of %s because the name exists in %s "
@@ -48,7 +48,7 @@ msgstr ""
 "no otorgando nombre %s al arriendo DHCP de %s porque el nombre existe en %s "
 "con dirección %s"
 
-#: cache.c:772
+#: cache.c:808
 #, fuzzy, c-format
 msgid ""
 "time %lu, cache size %d, %d/%d cache insertions re-used unexpired cache "
@@ -57,7 +57,7 @@ msgstr ""
 "tiempo %lu, tamaño de caché %d, %d/%d inserciónes de caché reutilizaron "
 "objetos no vencidos."
 
-#: util.c:153 option.c:1214
+#: util.c:153 option.c:1221
 msgid "could not get memory"
 msgstr "no se pudo conseguir memoria"
 
@@ -75,289 +75,294 @@ msgstr "el inicio ha FALLADO"
 msgid "infinite"
 msgstr "infinito"
 
-#: option.c:141
+#: option.c:147
 msgid "Specify local address(es) to listen on."
 msgstr "Especificar dirección(es) locales dónde escuchar."
 
-#: option.c:142
+#: option.c:148
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr ""
 "Retornar ipaddr (dirección IP) para todos los hosts en los dominios "
 "especificados."
 
-#: option.c:143
+#: option.c:149
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr ""
 "Falsificar búsquedas reversas para rangos de dirección privados RFC1918."
 
-#: option.c:144
+#: option.c:150
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr "Tratar ipaddr (dirección IP) como NXDOMAIN (derrota comodín Verisign)."
 
-#: option.c:145
+#: option.c:151
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr ""
 "Especificar tamaño de caché en cuanto a cantidad de objetos (%s por "
 "predeterminado)."
 
-#: option.c:146
+#: option.c:152
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr "Especificar archivo de configuración (%s por predeterminado)."
 
-#: option.c:147
+#: option.c:153
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr "NO hacer un fork hacia el fondo: correr en modo debug."
 
-#: option.c:148
+#: option.c:154
 msgid "Do NOT forward queries with no domain part."
 msgstr "NO reenviar búsquedas sin parte de dominio."
 
-#: option.c:149
+#: option.c:155
 msgid "Return self-pointing MX records for local hosts."
 msgstr "Retornar expedientes MX auto-señaladores para hosts locales."
 
-#: option.c:150
+#: option.c:156
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr ""
 "Expandir nombres simples en /etc/hosts con domain-suffix (sufijo de dominio)."
 
-#: option.c:151
+#: option.c:157
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr "No reenviar pedidos DNS falsos desde máquinas Windows."
 
-#: option.c:152
+#: option.c:158
 msgid "Enable DHCP in the range given with lease duration."
 msgstr "Habilitar DHCP dentro del rango brindado con duración del arriendo."
 
-#: option.c:153
+#: option.c:159
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr "Cambiar a este grupo después del inicio (%s por predeterminado)."
 
-#: option.c:154
+#: option.c:160
 msgid "Set address or hostname for a specified machine."
 msgstr "Fijar dirección o nombre de host para una máquina específica."
 
-#: option.c:155
+#: option.c:161
 #, c-format
 msgid "Do NOT load %s file."
 msgstr "NO cargar archivo %s."
 
-#: option.c:156
+#: option.c:162
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr "Especificar un archivo de hosts para ser leído adicionalmente a %s."
 
-#: option.c:157
+#: option.c:163
 msgid "Specify interface(s) to listen on."
 msgstr "Especificar interface(s) donde escuchar."
 
-#: option.c:158
+#: option.c:164
 msgid "Specify interface(s) NOT to listen on."
 msgstr "Especificar interface(s) donde NO escuchar."
 
-#: option.c:159
+#: option.c:165
 msgid "Map DHCP user class to option set."
 msgstr "Trazar clase de usuario DHCP a la opción fijada."
 
-#: option.c:160
+#: option.c:166
 msgid "Don't do DHCP for hosts in option set."
 msgstr "No hacer DHCP para hosts en la opción fijada."
 
-#: option.c:161
+#: option.c:167
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr "NO hacer un fork hacia el fondo, NO correr en modo debug."
 
-#: option.c:162
+#: option.c:168
 msgid "Assume we are the only DHCP server on the local network."
 msgstr "Asumir que somos el Ãºnico servidor DHCP en la red local."
 
-#: option.c:163
+#: option.c:169
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr "Especificar donde almacenar arriendos DHCP (%s por predeterminado)."
 
-#: option.c:164
+#: option.c:170
 msgid "Return MX records for local hosts."
 msgstr "Retornar expedientes MX para hosts locales."
 
-#: option.c:165
+#: option.c:171
 msgid "Specify an MX record."
 msgstr "Especificar un expediente MX."
 
-#: option.c:166
+#: option.c:172
 msgid "Specify BOOTP options to DHCP server."
 msgstr "Especificar opciones BOOTP a servidor DHCP."
 
-#: option.c:167
+#: option.c:173
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr "NO revisar archivo %s periódicamente, recargar solo con SIGHUP."
 
-#: option.c:168
+#: option.c:174
 msgid "Do NOT cache failed search results."
 msgstr "NO almacenar en caché resultados de búsquedas fallidas."
 
-#: option.c:169
+#: option.c:175
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr "Usar servidores DNS estrictamente en el Ã³rden brindado en %s."
 
-#: option.c:170
+#: option.c:176
 msgid "Set extra options to be set to DHCP clients."
 msgstr "Fijar opciones extras para ser enviadas a clientes DHCP."
 
-#: option.c:171
+#: option.c:177
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr ""
 "Especificar puerto donde escuchar por búsquedas DNS (53 por predeterminado)."
 
-#: option.c:172
+#: option.c:178
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr ""
 "Tamaño máximo de paquetes UDP soportado para EDNS.0 (%s por predeterminado)."
 
-#: option.c:173
+#: option.c:179
 msgid "Log queries."
 msgstr "Bitacorear búsquedas."
 
-#: option.c:174
+#: option.c:180
 msgid "Force the originating port for upstream queries."
 msgstr "Enforzar el puerto original para búsquedas upstream."
 
-#: option.c:175
+#: option.c:181
 msgid "Do NOT read resolv.conf."
 msgstr "NO leer resolv.conf."
 
-#: option.c:176
+#: option.c:182
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr "Especificar el path hacia resolv.conf (%s por predeterminado)."
 
-#: option.c:177
+#: option.c:183
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr ""
 "Especificar dirección(es) de servidores upstream con dominios opcionales."
 
-#: option.c:178
+#: option.c:184
 msgid "Never forward queries to specified domains."
 msgstr "Nunca reenviar búsquedas a dominios especificados."
 
-#: option.c:179
+#: option.c:185
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr "Especificar el dominio para ser asignado en arriendos DHCP."
 
-#: option.c:180
+#: option.c:186
 msgid "Specify default target in an MX record."
 msgstr "Especificar destino predeterminado en un expediente MX."
 
-#: option.c:181
+#: option.c:187
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr ""
 "Especificar tiempo de vida en segundos para respuestas desde /etc/hosts."
 
-#: option.c:182
+#: option.c:188
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr "Cambiar a este usuario despues del inicio (%s por predeterminado)."
 
-#: option.c:183
+#: option.c:189
 msgid "Map DHCP vendor class to option set."
 msgstr "Trazar clase de vendedor DHCP a opción fijada."
 
-#: option.c:184
+#: option.c:190
 msgid "Display dnsmasq version and copyright information."
 msgstr "Mostrar información sobre la versión y copyright de dnsmasq."
 
-#: option.c:185
+#: option.c:191
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr "Traducir direcciones IPv4 desde servidores upstream."
 
-#: option.c:186
+#: option.c:192
 msgid "Specify a SRV record."
 msgstr "Especificar un expediente SRV."
 
-#: option.c:187
+#: option.c:193
 msgid "Display this message."
 msgstr "Mostrar este mensaje."
 
-#: option.c:188
+#: option.c:194
 #, c-format
 msgid "Specify path of PID file. (defaults to %s)."
 msgstr "Especificar path de archivo PID (%s por predeterminado)."
 
-#: option.c:189
+#: option.c:195
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr "Especificar número máximo de arriendos DHCP (%s por predeterminado)."
 
-#: option.c:190
+#: option.c:196
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr ""
 "Responder a búsquedas DNS en base a la interface a la cuál fueron enviadas."
 
-#: option.c:191
+#: option.c:197
 msgid "Specify TXT DNS record."
 msgstr "Especificar expediente DNS TXT."
 
-#: option.c:192
+#: option.c:198
 msgid "Bind only to interfaces in use."
 msgstr "Acoplar solo a interfaces en uso."
 
-#: option.c:193
+#: option.c:199
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr "Leer información sobre hosts DHCP estáticos desde %s."
 
-#: option.c:194
+#: option.c:200
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr "Habilitar la interface DBus para fijar servidores upstream, etc."
 
-#: option.c:195
+#: option.c:201
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr "No proveer DHCP en esta interface, sólo proveer DNS."
 
-#: option.c:196
+#: option.c:202
 msgid "Enable dynamic address allocation for bootp."
 msgstr "Habilitar alocación dinámica de direcciónes para BOOTP."
 
-#: option.c:197
+#: option.c:203
 #, fuzzy
 msgid "Map MAC address (with wildcards) to option set."
 msgstr "Trazar clase de vendedor DHCP a opción fijada."
 
-#: option.c:198
+#: option.c:204
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 "Deshabilitar verificación de direcciónes echo ICMP en el servidor DHCP."
 
-#: option.c:199
+#: option.c:205
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 "Archivo guión para ejecutar cuando se crea o destruye un arriendo DHCP."
 
-#: option.c:200
+#: option.c:206
 msgid "Read configuration from all the files in this directory."
 msgstr "Leer configuración desde todos los archivos en este directorio."
 
-#: option.c:201
+#: option.c:207
 #, fuzzy
 msgid "Log to this syslog facility. (defaults to DAEMON)"
 msgstr "Bitacorear a esta facilidad syslog."
 
-#: option.c:202
+#: option.c:208
 msgid "Read leases at startup, but never write the lease file."
 msgstr ""
 
-#: option.c:203
+#: option.c:209
 #, fuzzy, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr "Especificar número máximo de arriendos DHCP (%s por predeterminado)."
 
-#: option.c:316
+#: option.c:210
+#, c-format
+msgid "Clear DNS cache when reloading %s."
+msgstr ""
+
+#: option.c:323
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -366,138 +371,138 @@ msgstr ""
 "Modo de uso: dnsmasq [opciones]\n"
 "\n"
 
-#: option.c:318
+#: option.c:325
 #, 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:320
+#: option.c:327
 #, c-format
 msgid "Valid options are :\n"
 msgstr "Opciones válidas son :\n"
 
-#: option.c:355
+#: option.c:362
 msgid "extraneous parameter"
 msgstr "parámetro extraño"
 
-#: option.c:359
+#: option.c:366
 msgid "missing parameter"
 msgstr "parámetro ausente"
 
-#: option.c:381
+#: option.c:388
 #, fuzzy, c-format
 msgid "cannot access directory %s: %s"
 msgstr "no se puede leer %s: %s"
 
-#: option.c:400
+#: option.c:407
 #, fuzzy, c-format
 msgid "cannot access %s: %s"
 msgstr "no se puede leer %s: %s"
 
-#: option.c:477
+#: option.c:484
 msgid "bad MX preference"
 msgstr "preferencia MX errónea"
 
-#: option.c:486
+#: option.c:493
 msgid "bad MX name"
 msgstr "nombre MX erróneo"
 
-#: option.c:504
+#: option.c:511
 msgid "bad MX target"
 msgstr "destino MX erróneo"
 
-#: option.c:516
+#: option.c:523
 msgid "cannot run scripts under uClinux"
 msgstr "no se pueden correr guiónes bajo uClinux"
 
-#: option.c:715 option.c:726
+#: option.c:722 option.c:733
 msgid "bad port"
 msgstr "puerto erróneo"
 
-#: option.c:871
+#: option.c:878
 msgid "bad dhcp-range"
 msgstr "dhcp-range (rango DHCP) erróneo"
 
-#: option.c:900
+#: option.c:907
 msgid "only one netid tag allowed"
 msgstr "solo una etiqueta netid permitida"
 
-#: option.c:945
+#: option.c:952
 msgid "inconsistent DHCP range"
 msgstr "rango DHCP inconsistente"
 
-#: option.c:1130
+#: option.c:1137
 msgid "bad dhcp-host"
 msgstr "dhcp-host erróneo"
 
-#: option.c:1191
+#: option.c:1198
 msgid "bad dhcp-option"
 msgstr "dhcp-option erróneo"
 
-#: option.c:1209
+#: option.c:1216
 msgid "bad domain in dhcp-option"
 msgstr "dominio erróneo en dhcp-option"
 
-#: option.c:1379
+#: option.c:1386
 msgid "dhcp-option too long"
 msgstr "opción dhcp-option demasiado larga"
 
-#: option.c:1576
+#: option.c:1583
 msgid "bad TXT record"
 msgstr "expediente TXT erróneo"
 
-#: option.c:1608
+#: option.c:1615
 msgid "TXT record string too long"
 msgstr "expediente TXT demasiado largo"
 
-#: option.c:1647
+#: option.c:1654
 msgid "bad SRV record"
 msgstr "expediente SRV erróneo"
 
-#: option.c:1660
+#: option.c:1667
 msgid "bad SRV target"
 msgstr "destino SRV erróneo"
 
-#: option.c:1672
+#: option.c:1679
 msgid "invalid port number"
 msgstr "número de puerto inválido"
 
-#: option.c:1683
+#: option.c:1690
 msgid "invalid priority"
 msgstr "prioridad inválida"
 
-#: option.c:1694
+#: option.c:1701
 msgid "invalid weight"
 msgstr "peso inválido"
 
-#: option.c:1725
+#: option.c:1732
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
-#: option.c:1732
+#: option.c:1739
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "no se puede leer %s: %s"
 
-#: option.c:1774
+#: option.c:1781
 msgid "missing \""
 msgstr "falta \""
 
-#: option.c:1809
+#: option.c:1816
 msgid "error"
 msgstr "error"
 
-#: option.c:1813
+#: option.c:1820
 msgid "bad option"
 msgstr "opción errónea"
 
-#: option.c:1877
+#: option.c:1884
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Dnsmasq versión %s  %s\n"
 
-#: option.c:1878
+#: option.c:1885
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -506,68 +511,63 @@ msgstr ""
 "Opciones de compilación %s\n"
 "\n"
 
-#: option.c:1879
+#: option.c:1886
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Este software viene SIN NINGUNA GARANTIA.\n"
 
-#: option.c:1880
+#: option.c:1887
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr "Dnsmasq es software libre, y usted está bienvenido a redistribuirlo\n"
 
-#: option.c:1881
+#: option.c:1888
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2.\n"
 msgstr "bajo los términos de la GNU General Public License, versión 2.\n"
 
-#: option.c:1892
+#: option.c:1899
 msgid "try --help"
 msgstr "pruebe --help"
 
-#: option.c:1894
+#: option.c:1901
 msgid "try -w"
 msgstr "pruebe -w"
 
-#: option.c:1897
+#: option.c:1904
 #, fuzzy, c-format
 msgid "bad command line options: %s"
 msgstr "opciones de línea de comandos erróneas: %s."
 
-#: option.c:1948
+#: option.c:1955
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "no se puede obtener host-name (nombre de host): %s"
 
-#: option.c:1976
+#: option.c:1983
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr "solo un archivo resolv.conf permitido en modo no-poll."
 
-#: option.c:1986
+#: option.c:1993
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr "debe haber exactamente un resolv.conf desde donde leer dominio."
 
-#: option.c:1989
+#: option.c:1996
 #, fuzzy, c-format
 msgid "failed to read %s: %s"
 msgstr "no se pudo leer %s: %m"
 
-#: option.c:2007
+#: option.c:2014
 #, c-format
 msgid "no search directive found in %s"
 msgstr "ninguna directiva de búsqueda encontrada en %s"
 
-#: forward.c:371
+#: forward.c:370
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "servidor DNS %s se reusó a hacer una búsqueda recursiva"
 
-#: forward.c:878
-msgid "forwarding table overflow: check for server loops."
-msgstr ""
-"desbordamiento en la tabla de reenvio: revisar si hay loops de servidor."
-
-#: isc.c:73 dnsmasq.c:480
+#: isc.c:73 dnsmasq.c:482
 #, c-format
 msgid "failed to access %s: %m"
 msgstr "no se pudo accesar %s: %m"
@@ -577,7 +577,7 @@ msgstr "no se pudo accesar %s: %m"
 msgid "failed to load %s: %m"
 msgstr "no se pudo cargar %s: %m"
 
-#: isc.c:93 dnsmasq.c:502
+#: isc.c:93 dnsmasq.c:504
 #, c-format
 msgid "reading %s"
 msgstr "leyendo %s"
@@ -593,7 +593,7 @@ msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
 msgstr ""
 "Ignorando arriendo DHCP para %s porque tiene una parte ilegal de dominio"
 
-#: network.c:315 dnsmasq.c:129
+#: network.c:315 dnsmasq.c:132
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr "no se pudo crear un socket escuchador: %s"
@@ -613,153 +613,153 @@ msgstr "no se pudo acoplar socket escuchador para %s: %s"
 msgid "failed to listen on socket: %s"
 msgstr "no se pudo escuchar en el socket: %s"
 
-#: network.c:411
+#: network.c:419
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr "ignorando servidor DNS %s - interface local"
 
-#: network.c:420
+#: network.c:428
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %m"
 msgstr "ignorando servidor DNS %s - no se pudo crear/acoplar socket: %m"
 
-#: network.c:434
+#: network.c:442
 msgid "domain"
 msgstr "dominio"
 
-#: network.c:436
+#: network.c:444
 msgid "unqualified"
 msgstr "no calificado"
 
-#: network.c:436
+#: network.c:444
 msgid "domains"
 msgstr "dominios"
 
-#: network.c:439
+#: network.c:447
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr "usando direcciones locales solo para %s %s"
 
-#: network.c:441
+#: network.c:449
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr "usando servidor DNS %s#%d para %s %s"
 
-#: network.c:444
+#: network.c:452
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr "usando servidor DNS %s#%d"
 
-#: network.c:464
+#: network.c:472
 #, c-format
 msgid "failed to read %s: %m"
 msgstr "no se pudo leer %s: %m"
 
-#: dnsmasq.c:94
+#: dnsmasq.c:97
 msgid ""
 "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
 msgstr ""
 "Integración dhcpd ISC no disponible: fijar HAVE_ISC_READER en src/config.h"
 
-#: dnsmasq.c:111
+#: dnsmasq.c:114
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "no se pudo encontrar lista de interfaces: %s"
 
-#: dnsmasq.c:119
+#: dnsmasq.c:122
 #, c-format
 msgid "unknown interface %s"
 msgstr "interface desconocida %s"
 
-#: dnsmasq.c:125
+#: dnsmasq.c:128
 #, c-format
 msgid "no interface with address %s"
 msgstr "ninguna interface con dirección %s"
 
-#: dnsmasq.c:144
+#: dnsmasq.c:147
 msgid "must set exactly one interface on broken systems without IP_RECVIF"
 msgstr "debe fijarse exactamente una interface en sistemas rotos sin IP_RECVIF"
 
-#: dnsmasq.c:157 dnsmasq.c:603
+#: dnsmasq.c:160 dnsmasq.c:609
 #, c-format
 msgid "DBus error: %s"
 msgstr "error DBus: %s"
 
-#: dnsmasq.c:160
+#: dnsmasq.c:163
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr "DBus no disponible: fijar HAVE_DBUS en src/config.h"
 
-#: dnsmasq.c:191
+#: dnsmasq.c:194
 #, fuzzy, c-format
 msgid "cannot create pipe: %s"
 msgstr "no se puede leer pipe: %s"
 
-#: dnsmasq.c:341
+#: dnsmasq.c:337
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "versión %s iniciada, tamaño de caché %d"
 
-#: dnsmasq.c:343
+#: dnsmasq.c:339
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "versión %s iniciada, caché deshabilitado"
 
-#: dnsmasq.c:345
+#: dnsmasq.c:341
 #, c-format
 msgid "compile time options: %s"
 msgstr "opciones de compilación: %s"
 
-#: dnsmasq.c:351
+#: dnsmasq.c:347
 msgid "DBus support enabled: connected to system bus"
 msgstr "soporte DBus habilitado: conectado a bus de sistema"
 
-#: dnsmasq.c:353
+#: dnsmasq.c:349
 msgid "DBus support enabled: bus connection pending"
 msgstr "soporte DBus habilitado: conección a bus pendiente"
 
-#: dnsmasq.c:358
+#: dnsmasq.c:354
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr ""
 "fijando opción --bind-interfaces debido a limitaciones de sistema operativo"
 
-#: dnsmasq.c:363
+#: dnsmasq.c:359
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "advertencia: interface %s no existe actualmente"
 
-#: dnsmasq.c:368
+#: dnsmasq.c:364
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:382
+#: dnsmasq.c:378
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr "DHCP, arriendos estáticos solo en %.0s%s, tiempo de arriendo %s"
 
-#: dnsmasq.c:383
+#: dnsmasq.c:379
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, rango de IPs %s -- %s, tiempo de arriendo %s"
 
-#: dnsmasq.c:393
+#: dnsmasq.c:389
 #, c-format
 msgid "warning: setting capabilities failed: %m"
 msgstr "advertencia: configuración de capacidades ha fallado: %m"
 
-#: dnsmasq.c:395
+#: dnsmasq.c:391
 msgid "running as root"
 msgstr "corriendo como root"
 
-#: dnsmasq.c:511
+#: dnsmasq.c:515
 #, fuzzy, c-format
 msgid "no servers found in %s, will retry"
 msgstr "ninguna directiva de búsqueda encontrada en %s"
 
-#: dnsmasq.c:551
+#: dnsmasq.c:574
 msgid "exiting on receipt of SIGTERM"
 msgstr "saliendo al haber recibido SIGTERM"
 
-#: dnsmasq.c:605
+#: dnsmasq.c:611
 msgid "connected to system DBus"
 msgstr "conectado a DBus de sistema"
 
@@ -793,27 +793,27 @@ msgstr "no se puede crear socket crudo ICMP: %s."
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "dirección IP duplicada en directiva dhcp-config."
 
-#: dhcp.c:318
+#: dhcp.c:317
 #, 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:635
+#: dhcp.c:634
 #, c-format
 msgid "failed to read %s:%m"
 msgstr "no se pudo leer %s:%m"
 
-#: dhcp.c:670
+#: dhcp.c:669
 #, fuzzy, c-format
 msgid "bad line at %s line %d"
 msgstr "nombre erróneo en %s línea %d"
 
-#: dhcp.c:779
+#: dhcp.c:776
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "dirección IP duplicada %s (%s) en directiva dhcp-config"
 
-#: dhcp.c:815
+#: dhcp.c:812
 #, c-format
 msgid "Ignoring DHCP host name %s because it has an illegal domain part"
 msgstr ""
@@ -843,108 +843,103 @@ msgstr ""
 msgid "failed to write %s: %s (retry in %us)"
 msgstr "no se pudo escribir %s: %s (reintentar en %us)"
 
-#: lease.c:522
-#, fuzzy, c-format
-msgid "failed to execute %s: %m"
-msgstr "no se pudo ejecutar %s: %m"
-
-#: rfc2131.c:247
+#: rfc2131.c:261
 #, c-format
 msgid "no address range available for DHCP request %s %s"
 msgstr "ningún rango de direcciónes disponible para pedido DHCP %s %s"
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "with subnet selector"
 msgstr "con selector de subred"
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "via"
 msgstr "vía"
 
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:288 rfc2131.c:312
 msgid "disabled"
 msgstr "deshabilitado"
 
-#: rfc2131.c:310 rfc2131.c:741
+#: rfc2131.c:324 rfc2131.c:759
 msgid "address in use"
 msgstr "dirección en uso"
 
-#: rfc2131.c:313
+#: rfc2131.c:327
 msgid "no address configured"
 msgstr "ninguna dirección configurada"
 
-#: rfc2131.c:326 rfc2131.c:613
+#: rfc2131.c:340 rfc2131.c:631
 msgid "no address available"
 msgstr "ninguna dirección disponible"
 
-#: rfc2131.c:335 rfc2131.c:748
+#: rfc2131.c:349 rfc2131.c:767
 msgid "no leases left"
 msgstr "no queda ningún arriendo"
 
-#: rfc2131.c:338 rfc2131.c:715
+#: rfc2131.c:352 rfc2131.c:733
 msgid "wrong network"
 msgstr "red equivocada"
 
-#: rfc2131.c:542
+#: rfc2131.c:559
 #, fuzzy, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "deshabilitando dirección DHCP estática %s"
 
-#: rfc2131.c:562
+#: rfc2131.c:580
 msgid "unknown lease"
 msgstr "arriendo desconocido"
 
-#: rfc2131.c:571 rfc2131.c:813
+#: rfc2131.c:589 rfc2131.c:862
 msgid "ignored"
 msgstr "ignorado"
 
-#: rfc2131.c:587
+#: rfc2131.c:605
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr "no usando dirección configurada %s porque esta arriendada a %s"
 
-#: rfc2131.c:596
+#: rfc2131.c:614
 #, fuzzy, c-format
 msgid ""
 "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 "no usando dirección configurada %s porque esta siendo usada por el servidor"
 
-#: rfc2131.c:599
+#: rfc2131.c:617
 #, fuzzy, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr "no usando dirección configurada %s porque esta arriendada a %s"
 
-#: rfc2131.c:678
+#: rfc2131.c:696
 msgid "wrong address"
 msgstr "dirección equivocada"
 
-#: rfc2131.c:691
+#: rfc2131.c:709
 msgid "lease not found"
 msgstr "arriendo no encontrado"
 
-#: rfc2131.c:723
+#: rfc2131.c:741
 msgid "address not available"
 msgstr "dirección no disponible"
 
-#: rfc2131.c:734
+#: rfc2131.c:752
 msgid "static lease available"
 msgstr "arriendo estático disponible"
 
-#: rfc2131.c:738
+#: rfc2131.c:756
 msgid "address reserved"
 msgstr "dirección reservada"
 
-#: rfc2131.c:744
+#: rfc2131.c:762
 msgid "no unique-id"
 msgstr "ningún unique-id (ID Ãºnico)"
 
-#: rfc2131.c:945
+#: rfc2131.c:1000
 #, c-format
 msgid "cannot send DHCP option %d: no space left in packet"
 msgstr "no se puede enviar opción DHCP %d: no queda espacio en el paquete"
 
-#: rfc2131.c:1246
+#: rfc2131.c:1301
 #, c-format
 msgid "More than one vendor class matches, using %s"
 msgstr "Más de una clase de vendedor coincide, usando %s"
@@ -981,3 +976,22 @@ msgstr "no se puede crear socket BPF DHCP: %s"
 #, fuzzy, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "pedido DHCP por hardware no soportado tipo (%d) recibido en %s"
+
+#: helper.c:145
+#, c-format
+msgid "child process killed by signal %d"
+msgstr ""
+
+#: helper.c:147
+#, c-format
+msgid "child process exited with status %d"
+msgstr ""
+
+#: helper.c:216
+#, fuzzy, c-format
+msgid "failed to execute %s: %m"
+msgstr "no se pudo ejecutar %s: %m"
+
+#~ msgid "forwarding table overflow: check for server loops."
+#~ msgstr ""
+#~ "desbordamiento en la tabla de reenvio: revisar si hay loops de servidor."
index 14973302ccf3303c3eaa4192d78a35f0d840c18e..8cf82de205316c5aed72625a9ea2bf08c4a221aa 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.24\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-04 11:57+0100\n"
+"POT-Creation-Date: 2006-10-13 18:20+0100\n"
 "PO-Revision-Date: 2005-11-28 22:05+0000\n"
 "Last-Translator: Simon Kelley <simon@thekelleys.org.uk>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -15,45 +15,45 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: cache.c:570
+#: cache.c:606
 #, c-format
 msgid "failed to load names from %s: %m"
 msgstr ""
 
-#: cache.c:606 dhcp.c:683
+#: cache.c:642 dhcp.c:682
 #, c-format
 msgid "bad address at %s line %d"
 msgstr ""
 
-#: cache.c:633 dhcp.c:697
+#: cache.c:669 dhcp.c:696
 #, c-format
 msgid "bad name at %s line %d"
 msgstr ""
 
-#: cache.c:639 dhcp.c:751
+#: cache.c:675 dhcp.c:750
 #, c-format
 msgid "read %s - %d addresses"
 msgstr ""
 
-#: cache.c:675
+#: cache.c:711
 msgid "cleared cache"
 msgstr ""
 
-#: cache.c:728
+#: cache.c:764
 #, c-format
 msgid ""
 "not giving name %s to the DHCP lease of %s because the name exists in %s "
 "with address %s"
 msgstr ""
 
-#: cache.c:772
+#: cache.c:808
 #, c-format
 msgid ""
 "time %lu, cache size %d, %d/%d cache insertions re-used unexpired cache "
 "entries."
 msgstr ""
 
-#: util.c:153 option.c:1214
+#: util.c:153 option.c:1221
 msgid "could not get memory"
 msgstr ""
 
@@ -71,479 +71,480 @@ msgstr ""
 msgid "infinite"
 msgstr ""
 
-#: option.c:141
+#: option.c:147
 msgid "Specify local address(es) to listen on."
 msgstr ""
 
-#: option.c:142
+#: option.c:148
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr ""
 
-#: option.c:143
+#: option.c:149
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr ""
 
-#: option.c:144
+#: option.c:150
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr ""
 
-#: option.c:145
+#: option.c:151
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr ""
 
-#: option.c:146
+#: option.c:152
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr ""
 
-#: option.c:147
+#: option.c:153
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr ""
 
-#: option.c:148
+#: option.c:154
 msgid "Do NOT forward queries with no domain part."
 msgstr ""
 
-#: option.c:149
+#: option.c:155
 msgid "Return self-pointing MX records for local hosts."
 msgstr ""
 
-#: option.c:150
+#: option.c:156
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr ""
 
-#: option.c:151
+#: option.c:157
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr ""
 
-#: option.c:152
+#: option.c:158
 msgid "Enable DHCP in the range given with lease duration."
 msgstr ""
 
-#: option.c:153
+#: option.c:159
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr ""
 
-#: option.c:154
+#: option.c:160
 msgid "Set address or hostname for a specified machine."
 msgstr ""
 
-#: option.c:155
+#: option.c:161
 #, c-format
 msgid "Do NOT load %s file."
 msgstr ""
 
-#: option.c:156
+#: option.c:162
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr ""
 
-#: option.c:157
+#: option.c:163
 msgid "Specify interface(s) to listen on."
 msgstr ""
 
-#: option.c:158
+#: option.c:164
 msgid "Specify interface(s) NOT to listen on."
 msgstr ""
 
-#: option.c:159
+#: option.c:165
 msgid "Map DHCP user class to option set."
 msgstr ""
 
-#: option.c:160
+#: option.c:166
 msgid "Don't do DHCP for hosts in option set."
 msgstr ""
 
-#: option.c:161
+#: option.c:167
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr ""
 
-#: option.c:162
+#: option.c:168
 msgid "Assume we are the only DHCP server on the local network."
 msgstr ""
 
-#: option.c:163
+#: option.c:169
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr ""
 
-#: option.c:164
+#: option.c:170
 msgid "Return MX records for local hosts."
 msgstr ""
 
-#: option.c:165
+#: option.c:171
 msgid "Specify an MX record."
 msgstr ""
 
-#: option.c:166
+#: option.c:172
 msgid "Specify BOOTP options to DHCP server."
 msgstr ""
 
-#: option.c:167
+#: option.c:173
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr ""
 
-#: option.c:168
+#: option.c:174
 msgid "Do NOT cache failed search results."
 msgstr ""
 
-#: option.c:169
+#: option.c:175
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr ""
 
-#: option.c:170
+#: option.c:176
 msgid "Set extra options to be set to DHCP clients."
 msgstr ""
 
-#: option.c:171
+#: option.c:177
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr ""
 
-#: option.c:172
+#: option.c:178
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr ""
 
-#: option.c:173
+#: option.c:179
 msgid "Log queries."
 msgstr ""
 
-#: option.c:174
+#: option.c:180
 msgid "Force the originating port for upstream queries."
 msgstr ""
 
-#: option.c:175
+#: option.c:181
 msgid "Do NOT read resolv.conf."
 msgstr ""
 
-#: option.c:176
+#: option.c:182
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr ""
 
-#: option.c:177
+#: option.c:183
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr ""
 
-#: option.c:178
+#: option.c:184
 msgid "Never forward queries to specified domains."
 msgstr ""
 
-#: option.c:179
+#: option.c:185
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr ""
 
-#: option.c:180
+#: option.c:186
 msgid "Specify default target in an MX record."
 msgstr ""
 
-#: option.c:181
+#: option.c:187
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr ""
 
-#: option.c:182
+#: option.c:188
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr ""
 
-#: option.c:183
+#: option.c:189
 msgid "Map DHCP vendor class to option set."
 msgstr ""
 
-#: option.c:184
+#: option.c:190
 msgid "Display dnsmasq version and copyright information."
 msgstr ""
 
-#: option.c:185
+#: option.c:191
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr ""
 
-#: option.c:186
+#: option.c:192
 msgid "Specify a SRV record."
 msgstr ""
 
-#: option.c:187
+#: option.c:193
 msgid "Display this message."
 msgstr ""
 
-#: option.c:188
+#: option.c:194
 #, c-format
 msgid "Specify path of PID file. (defaults to %s)."
 msgstr ""
 
-#: option.c:189
+#: option.c:195
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr ""
 
-#: option.c:190
+#: option.c:196
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr ""
 
-#: option.c:191
+#: option.c:197
 msgid "Specify TXT DNS record."
 msgstr ""
 
-#: option.c:192
+#: option.c:198
 msgid "Bind only to interfaces in use."
 msgstr ""
 
-#: option.c:193
+#: option.c:199
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr ""
 
-#: option.c:194
+#: option.c:200
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr ""
 
-#: option.c:195
+#: option.c:201
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr ""
 
-#: option.c:196
+#: option.c:202
 msgid "Enable dynamic address allocation for bootp."
 msgstr ""
 
-#: option.c:197
+#: option.c:203
 msgid "Map MAC address (with wildcards) to option set."
 msgstr ""
 
-#: option.c:198
+#: option.c:204
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 
-#: option.c:199
+#: option.c:205
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 
-#: option.c:200
+#: option.c:206
 msgid "Read configuration from all the files in this directory."
 msgstr ""
 
-#: option.c:201
+#: option.c:207
 msgid "Log to this syslog facility. (defaults to DAEMON)"
 msgstr ""
 
-#: option.c:202
+#: option.c:208
 msgid "Read leases at startup, but never write the lease file."
 msgstr ""
 
-#: option.c:203
+#: option.c:209
 #, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr ""
 
-#: option.c:316
+#: option.c:210
+#, c-format
+msgid "Clear DNS cache when reloading %s."
+msgstr ""
+
+#: option.c:323
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
 "\n"
 msgstr ""
 
-#: option.c:318
+#: option.c:325
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr ""
 
-#: option.c:320
+#: option.c:327
 #, c-format
 msgid "Valid options are :\n"
 msgstr ""
 
-#: option.c:355
+#: option.c:362
 msgid "extraneous parameter"
 msgstr ""
 
-#: option.c:359
+#: option.c:366
 msgid "missing parameter"
 msgstr ""
 
-#: option.c:381
+#: option.c:388
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr ""
 
-#: option.c:400
+#: option.c:407
 #, c-format
 msgid "cannot access %s: %s"
 msgstr ""
 
-#: option.c:477
+#: option.c:484
 msgid "bad MX preference"
 msgstr ""
 
-#: option.c:486
+#: option.c:493
 msgid "bad MX name"
 msgstr ""
 
-#: option.c:504
+#: option.c:511
 msgid "bad MX target"
 msgstr ""
 
-#: option.c:516
+#: option.c:523
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:715 option.c:726
+#: option.c:722 option.c:733
 msgid "bad port"
 msgstr ""
 
-#: option.c:871
+#: option.c:878
 msgid "bad dhcp-range"
 msgstr ""
 
-#: option.c:900
+#: option.c:907
 msgid "only one netid tag allowed"
 msgstr ""
 
-#: option.c:945
+#: option.c:952
 msgid "inconsistent DHCP range"
 msgstr ""
 
-#: option.c:1130
+#: option.c:1137
 msgid "bad dhcp-host"
 msgstr ""
 
-#: option.c:1191
+#: option.c:1198
 msgid "bad dhcp-option"
 msgstr ""
 
-#: option.c:1209
+#: option.c:1216
 msgid "bad domain in dhcp-option"
 msgstr ""
 
-#: option.c:1379
+#: option.c:1386
 msgid "dhcp-option too long"
 msgstr ""
 
-#: option.c:1576
+#: option.c:1583
 msgid "bad TXT record"
 msgstr ""
 
-#: option.c:1608
+#: option.c:1615
 msgid "TXT record string too long"
 msgstr ""
 
-#: option.c:1647
+#: option.c:1654
 msgid "bad SRV record"
 msgstr ""
 
-#: option.c:1660
+#: option.c:1667
 msgid "bad SRV target"
 msgstr ""
 
-#: option.c:1672
+#: option.c:1679
 msgid "invalid port number"
 msgstr ""
 
-#: option.c:1683
+#: option.c:1690
 msgid "invalid priority"
 msgstr ""
 
-#: option.c:1694
+#: option.c:1701
 msgid "invalid weight"
 msgstr ""
 
-#: option.c:1725
+#: option.c:1732
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
-#: option.c:1732
+#: option.c:1739
 #, c-format
 msgid "cannot read %s: %s"
 msgstr ""
 
-#: option.c:1774
+#: option.c:1781
 msgid "missing \""
 msgstr ""
 
-#: option.c:1809
+#: option.c:1816
 msgid "error"
 msgstr ""
 
-#: option.c:1813
+#: option.c:1820
 msgid "bad option"
 msgstr ""
 
-#: option.c:1877
+#: option.c:1884
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr ""
 
-#: option.c:1878
+#: option.c:1885
 #, c-format
 msgid ""
 "Compile time options %s\n"
 "\n"
 msgstr ""
 
-#: option.c:1879
+#: option.c:1886
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr ""
 
-#: option.c:1880
+#: option.c:1887
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr ""
 
-#: option.c:1881
+#: option.c:1888
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2.\n"
 msgstr ""
 
-#: option.c:1892
+#: option.c:1899
 msgid "try --help"
 msgstr ""
 
-#: option.c:1894
+#: option.c:1901
 msgid "try -w"
 msgstr ""
 
-#: option.c:1897
+#: option.c:1904
 #, c-format
 msgid "bad command line options: %s"
 msgstr ""
 
-#: option.c:1948
+#: option.c:1955
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr ""
 
-#: option.c:1976
+#: option.c:1983
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr ""
 
-#: option.c:1986
+#: option.c:1993
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr ""
 
-#: option.c:1989
+#: option.c:1996
 #, c-format
 msgid "failed to read %s: %s"
 msgstr ""
 
-#: option.c:2007
+#: option.c:2014
 #, c-format
 msgid "no search directive found in %s"
 msgstr ""
 
-#: forward.c:371
+#: forward.c:370
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr ""
 
-#: forward.c:878
-msgid "forwarding table overflow: check for server loops."
-msgstr ""
-
-#: isc.c:73 dnsmasq.c:480
+#: isc.c:73 dnsmasq.c:482
 #, c-format
 msgid "failed to access %s: %m"
 msgstr ""
@@ -553,7 +554,7 @@ msgstr ""
 msgid "failed to load %s: %m"
 msgstr ""
 
-#: isc.c:93 dnsmasq.c:502
+#: isc.c:93 dnsmasq.c:504
 #, c-format
 msgid "reading %s"
 msgstr ""
@@ -568,7 +569,7 @@ msgstr ""
 msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
 msgstr ""
 
-#: network.c:315 dnsmasq.c:129
+#: network.c:315 dnsmasq.c:132
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr ""
@@ -588,151 +589,151 @@ msgstr ""
 msgid "failed to listen on socket: %s"
 msgstr ""
 
-#: network.c:411
+#: network.c:419
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr ""
 
-#: network.c:420
+#: network.c:428
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %m"
 msgstr ""
 
-#: network.c:434
+#: network.c:442
 msgid "domain"
 msgstr ""
 
-#: network.c:436
+#: network.c:444
 msgid "unqualified"
 msgstr ""
 
-#: network.c:436
+#: network.c:444
 msgid "domains"
 msgstr ""
 
-#: network.c:439
+#: network.c:447
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr ""
 
-#: network.c:441
+#: network.c:449
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr ""
 
-#: network.c:444
+#: network.c:452
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr ""
 
-#: network.c:464
+#: network.c:472
 #, c-format
 msgid "failed to read %s: %m"
 msgstr ""
 
-#: dnsmasq.c:94
+#: dnsmasq.c:97
 msgid ""
 "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:111
+#: dnsmasq.c:114
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr ""
 
-#: dnsmasq.c:119
+#: dnsmasq.c:122
 #, c-format
 msgid "unknown interface %s"
 msgstr ""
 
-#: dnsmasq.c:125
+#: dnsmasq.c:128
 #, c-format
 msgid "no interface with address %s"
 msgstr ""
 
-#: dnsmasq.c:144
+#: dnsmasq.c:147
 msgid "must set exactly one interface on broken systems without IP_RECVIF"
 msgstr ""
 
-#: dnsmasq.c:157 dnsmasq.c:603
+#: dnsmasq.c:160 dnsmasq.c:609
 #, c-format
 msgid "DBus error: %s"
 msgstr ""
 
-#: dnsmasq.c:160
+#: dnsmasq.c:163
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:191
+#: dnsmasq.c:194
 #, c-format
 msgid "cannot create pipe: %s"
 msgstr ""
 
-#: dnsmasq.c:341
+#: dnsmasq.c:337
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr ""
 
-#: dnsmasq.c:343
+#: dnsmasq.c:339
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr ""
 
-#: dnsmasq.c:345
+#: dnsmasq.c:341
 #, c-format
 msgid "compile time options: %s"
 msgstr ""
 
-#: dnsmasq.c:351
+#: dnsmasq.c:347
 msgid "DBus support enabled: connected to system bus"
 msgstr ""
 
-#: dnsmasq.c:353
+#: dnsmasq.c:349
 msgid "DBus support enabled: bus connection pending"
 msgstr ""
 
-#: dnsmasq.c:358
+#: dnsmasq.c:354
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr ""
 
-#: dnsmasq.c:363
+#: dnsmasq.c:359
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr ""
 
-#: dnsmasq.c:368
+#: dnsmasq.c:364
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:382
+#: dnsmasq.c:378
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:383
+#: dnsmasq.c:379
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:393
+#: dnsmasq.c:389
 #, c-format
 msgid "warning: setting capabilities failed: %m"
 msgstr ""
 
-#: dnsmasq.c:395
+#: dnsmasq.c:391
 msgid "running as root"
 msgstr ""
 
-#: dnsmasq.c:511
+#: dnsmasq.c:515
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr ""
 
-#: dnsmasq.c:551
+#: dnsmasq.c:574
 msgid "exiting on receipt of SIGTERM"
 msgstr ""
 
-#: dnsmasq.c:605
+#: dnsmasq.c:611
 msgid "connected to system DBus"
 msgstr ""
 
@@ -766,27 +767,27 @@ msgstr ""
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr ""
 
-#: dhcp.c:318
+#: dhcp.c:317
 #, c-format
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr ""
 
-#: dhcp.c:635
+#: dhcp.c:634
 #, c-format
 msgid "failed to read %s:%m"
 msgstr ""
 
-#: dhcp.c:670
+#: dhcp.c:669
 #, c-format
 msgid "bad line at %s line %d"
 msgstr ""
 
-#: dhcp.c:779
+#: dhcp.c:776
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr ""
 
-#: dhcp.c:815
+#: dhcp.c:812
 #, c-format
 msgid "Ignoring DHCP host name %s because it has an illegal domain part"
 msgstr ""
@@ -815,107 +816,102 @@ msgstr ""
 msgid "failed to write %s: %s (retry in %us)"
 msgstr ""
 
-#: lease.c:522
-#, c-format
-msgid "failed to execute %s: %m"
-msgstr ""
-
-#: rfc2131.c:247
+#: rfc2131.c:261
 #, c-format
 msgid "no address range available for DHCP request %s %s"
 msgstr ""
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "with subnet selector"
 msgstr ""
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "via"
 msgstr ""
 
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:288 rfc2131.c:312
 msgid "disabled"
 msgstr ""
 
-#: rfc2131.c:310 rfc2131.c:741
+#: rfc2131.c:324 rfc2131.c:759
 msgid "address in use"
 msgstr ""
 
-#: rfc2131.c:313
+#: rfc2131.c:327
 msgid "no address configured"
 msgstr ""
 
-#: rfc2131.c:326 rfc2131.c:613
+#: rfc2131.c:340 rfc2131.c:631
 msgid "no address available"
 msgstr ""
 
-#: rfc2131.c:335 rfc2131.c:748
+#: rfc2131.c:349 rfc2131.c:767
 msgid "no leases left"
 msgstr ""
 
-#: rfc2131.c:338 rfc2131.c:715
+#: rfc2131.c:352 rfc2131.c:733
 msgid "wrong network"
 msgstr ""
 
-#: rfc2131.c:542
+#: rfc2131.c:559
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr ""
 
-#: rfc2131.c:562
+#: rfc2131.c:580
 msgid "unknown lease"
 msgstr ""
 
-#: rfc2131.c:571 rfc2131.c:813
+#: rfc2131.c:589 rfc2131.c:862
 msgid "ignored"
 msgstr ""
 
-#: rfc2131.c:587
+#: rfc2131.c:605
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:596
+#: rfc2131.c:614
 #, c-format
 msgid ""
 "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:599
+#: rfc2131.c:617
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:678
+#: rfc2131.c:696
 msgid "wrong address"
 msgstr ""
 
-#: rfc2131.c:691
+#: rfc2131.c:709
 msgid "lease not found"
 msgstr ""
 
-#: rfc2131.c:723
+#: rfc2131.c:741
 msgid "address not available"
 msgstr ""
 
-#: rfc2131.c:734
+#: rfc2131.c:752
 msgid "static lease available"
 msgstr ""
 
-#: rfc2131.c:738
+#: rfc2131.c:756
 msgid "address reserved"
 msgstr ""
 
-#: rfc2131.c:744
+#: rfc2131.c:762
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:945
+#: rfc2131.c:1000
 #, c-format
 msgid "cannot send DHCP option %d: no space left in packet"
 msgstr ""
 
-#: rfc2131.c:1246
+#: rfc2131.c:1301
 #, c-format
 msgid "More than one vendor class matches, using %s"
 msgstr ""
@@ -951,3 +947,18 @@ msgstr ""
 #, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr ""
+
+#: helper.c:145
+#, c-format
+msgid "child process killed by signal %d"
+msgstr ""
+
+#: helper.c:147
+#, c-format
+msgid "child process exited with status %d"
+msgstr ""
+
+#: helper.c:216
+#, c-format
+msgid "failed to execute %s: %m"
+msgstr ""
index 11c9a1d166479bd97567563e9b35ed937a579378..884d067e2395b3aae402b5f0e0e13d7df92e2127 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,12 +1,13 @@
 # French translations for dnsmasq package.
 # This file is put in the public domain.
 # Lionel Tricon <lionel.tricon@free.fr>, 2005.
+# Translation completed by Gildas Le Nadan <3ntr0p13@gmail.com>
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: dnsmasq 2.24\n"
+"Project-Id-Version: dnsmasq 2.34\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-04 11:57+0100\n"
+"POT-Creation-Date: 2006-10-13 18:20+0100\n"
 "PO-Revision-Date: 2005-10-02 19:05+0100\n"
 "Last-Translator:  Lionel Tricon <lionel.tricon@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -15,31 +16,31 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: cache.c:570
+#: cache.c:606
 #, c-format
 msgid "failed to load names from %s: %m"
-msgstr "Impossible de charger les noms a partir de %s: %m"
+msgstr "Impossible de charger les noms Ã  partir de %s : %m"
 
-#: cache.c:606 dhcp.c:683
-#, fuzzy, c-format
+#: cache.c:642 dhcp.c:682
+#, c-format
 msgid "bad address at %s line %d"
-msgstr "mauvais nom dans %s ligne %d"
+msgstr "mauvaise adresse dans %s ligne %d"
 
-#: cache.c:633 dhcp.c:697
+#: cache.c:669 dhcp.c:696
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "mauvais nom dans %s ligne %d"
 
-#: cache.c:639 dhcp.c:751
+#: cache.c:675 dhcp.c:750
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "lecture %s - %d adresses"
 
-#: cache.c:675
+#: cache.c:711
 msgid "cleared cache"
-msgstr "cache nettoye"
+msgstr "cache vidé"
 
-#: cache.c:728
+#: cache.c:764
 #, c-format
 msgid ""
 "not giving name %s to the DHCP lease of %s because the name exists in %s "
@@ -48,549 +49,554 @@ msgstr ""
 "ne donne pas de nom %s au bail DHCP de %s parce-que le nom existe dans %s "
 "avec l'adresse %s"
 
-#: cache.c:772
-#, fuzzy, c-format
+#: cache.c:808
+#, c-format
 msgid ""
 "time %lu, cache size %d, %d/%d cache insertions re-used unexpired cache "
 "entries."
 msgstr ""
-"taille de cache %d, %d/%d insertions dans le cache ont reutilisees des "
-"entrees qui n'ont pas expirees"
+"temps %lu, taille de cache %d, %d/%d insertions dans le cache ont "
+"réutilisées des entrées qui n'ont pas expirées"
 
-#: util.c:153 option.c:1214
+#: util.c:153 option.c:1221
 msgid "could not get memory"
-msgstr "impossible d'allouer de la memoire"
+msgstr "impossible d'allouer de la mémoire"
 
 #: util.c:176
 #, c-format
 msgid "%s at line %d of %%s"
-msgstr "%s a la ligne %d de %%s"
+msgstr "%s Ã  la ligne %d de %%s"
 
 #: util.c:183
 msgid "FAILED to start up"
-msgstr "IMPOSSIBLE de demarrer"
+msgstr "IMPOSSIBLE de démarrer"
 
 #: util.c:304
 #, c-format
 msgid "infinite"
-msgstr "illimite"
+msgstr "illimité(e)"
 
-#: option.c:141
+#: option.c:147
 msgid "Specify local address(es) to listen on."
 msgstr ""
-"Specifie la ou les adresse(s) locales ou le demon doit se mettre a l'ecoute."
+"Spécifie la ou les adresse(s) locales où le démon doit se mettre Ã  l'écoute."
 
-#: option.c:142
+#: option.c:148
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr ""
-"Retourne les adresses IP pour toutes les machines presentent dans les "
-"domaines specifies"
+"Retourne les adresses IP pour toutes les machines présentes dans les "
+"domaines spécifiés"
 
-#: option.c:143
+#: option.c:149
 msgid "Fake reverse lookups for RFC1918 private address ranges."
-msgstr "Traduction inverse truquee pour la plage d'adresse privee RFC1918"
+msgstr "Traduction inverse truquée pour la plage d'adresse privée RFC1918"
 
-#: option.c:144
+#: option.c:150
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr ""
 "Traite l'adresse IP comme un domaine inexistant NXDOMAIN (contourne le "
-"systemede redirection de Verisign)"
+"systeme de redirection de Verisign)"
 
-#: option.c:145
+#: option.c:151
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
-msgstr "Specifie la taille du cache en entree (par defaut a %s)."
+msgstr ""
+"Spécifie le nombre d'entrées que contiendra le cache (par défaut : %s)."
 
-#: option.c:146
+#: option.c:152
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
-msgstr "Specifie le nom du fichier de configuration (par defaut %s)"
+msgstr "Spécifie le nom du fichier de configuration (par défaut : %s)"
 
-#: option.c:147
+#: option.c:153
 msgid "Do NOT fork into the background: run in debug mode."
-msgstr "Ne passe pas en tache de fond: demarre en mode debug"
+msgstr "Ne passe pas en tâche de fond : démarre en mode debug"
 
-#: option.c:148
+#: option.c:154
 msgid "Do NOT forward queries with no domain part."
-msgstr "Ne retransmet pas les requetes qui n'ont pas de domaine."
+msgstr "Ne retransmet pas les requêtes qui n'ont pas de domaine."
 
-#: option.c:149
+#: option.c:155
 msgid "Return self-pointing MX records for local hosts."
 msgstr "Retourne les champs MX pour les machines locales."
 
-#: option.c:150
+#: option.c:156
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr ""
 "Etend les noms uniques des machines dans /etc/hosts avec le suffixe du "
 "domaine."
 
-#: option.c:151
+#: option.c:157
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr ""
-"Ne retransmet pas les fausses requetes DNS en provenance des machines "
+"Ne retransmet pas les fausses requêtes DNS en provenance des machines "
 "Windows."
 
-#: option.c:152
+#: option.c:158
 msgid "Enable DHCP in the range given with lease duration."
 msgstr ""
-"Autorise DHCP dans la plage d'adresses donnee sur la duree de validite du "
+"Autorise DHCP dans la plage d'adresses donnée sur la durée de validité du "
 "bail."
 
-#: option.c:153
+#: option.c:159
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
-msgstr "On change pour ce groupe apres le demarrage (par defaut a %s)."
+msgstr "On change pour ce groupe après le démarrage (par défaut : %s)."
 
-#: option.c:154
+#: option.c:160
 msgid "Set address or hostname for a specified machine."
-msgstr "On assigne une adresse ou un nom pour une machine specifiee."
+msgstr "On assigne une adresse ou un nom pour une machine spécifiée."
 
-#: option.c:155
+#: option.c:161
 #, c-format
 msgid "Do NOT load %s file."
 msgstr "Ne charge PAS le fichier %s."
 
-#: option.c:156
+#: option.c:162
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
-msgstr "Specifie un nom de fichier hosts a lire en complement de %s"
+msgstr "Spécifie un nom de fichier hosts Ã  lire en complément de %s"
 
-#: option.c:157
+#: option.c:163
 msgid "Specify interface(s) to listen on."
-msgstr "Specifie la ou les interface(s) ou le demon doit se mettre a l'ecoute."
+msgstr "Spécifie la ou les interface(s) où le démon doit se mettre Ã  l'écoute."
 
-#: option.c:158
+#: option.c:164
 msgid "Specify interface(s) NOT to listen on."
-msgstr "Specifie la ou les interface(s) que le demon ne doit PAS traiter."
+msgstr "Spécifie la ou les interface(s) que le démon ne doit PAS traiter."
 
-#: option.c:159
+#: option.c:165
 msgid "Map DHCP user class to option set."
-msgstr "Associe les 'user class' DHCP aux options."
+msgstr "Associe les classes d'utilisateurs ('user class') DHCP aux options."
 
-#: option.c:160
+#: option.c:166
 msgid "Don't do DHCP for hosts in option set."
-msgstr "Ne pas autoriser DHCP pour les machines enumerees dans les options."
+msgstr "Ne pas autoriser DHCP pour les machines Ã©numerées dans les options."
 
-#: option.c:161
+#: option.c:167
 msgid "Do NOT fork into the background, do NOT run in debug mode."
-msgstr "Ne passe pas en tache de fond, ne s'execute pas en mode debug."
+msgstr "Ne passe pas en tâche de fond, ne pas s'exécuter en mode debug."
 
-#: option.c:162
+#: option.c:168
 msgid "Assume we are the only DHCP server on the local network."
-msgstr "On considere que l'on est le seul serveur DHCP sur le reseau local."
+msgstr "On considère que l'on est le seul serveur DHCP sur le réseau local."
 
-#: option.c:163
+#: option.c:169
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
-msgstr "Specifie ou il faut sauvegarder les baux DHCP (par defaut a %s)."
+msgstr "Spécifie où il faut sauvegarder les baux DHCP (par défaut : %s)."
 
-#: option.c:164
+#: option.c:170
 msgid "Return MX records for local hosts."
 msgstr "Retourne les champs MX pour les machines locales."
 
-#: option.c:165
+#: option.c:171
 msgid "Specify an MX record."
-msgstr "Specifie un champ MX."
+msgstr "Spécifie un champ MX."
 
-#: option.c:166
+#: option.c:172
 msgid "Specify BOOTP options to DHCP server."
-msgstr "Specifie les options BOOTP pour le serveur DHCP."
+msgstr "Spécifie les options BOOTP pour le serveur DHCP."
 
-#: option.c:167
+#: option.c:173
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr ""
-"Ne pas scruter le fichier %s, recharger les modifications seulement sur "
-"reception du signal SIGHUP."
+"Ne pas scruter le fichier %s, ne recharger les modifications que sur "
+"réception du signal SIGHUP."
 
-#: option.c:168
+#: option.c:174
 msgid "Do NOT cache failed search results."
-msgstr "Ne place pas en cache le resultat des requetes qui ont echouees."
+msgstr "Ne place pas en cache le résultat des requêtes qui ont echouées."
 
-#: option.c:169
+#: option.c:175
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
-msgstr "Utilise les serveurs de noms dans l'ordre donne dans %s."
+msgstr "Utilise les serveurs de noms dans l'ordre donné dans %s."
 
-#: option.c:170
+#: option.c:176
 msgid "Set extra options to be set to DHCP clients."
-msgstr "Options supplementaires a associer aux clients DHCP."
+msgstr "Options supplémentaires Ã  associer aux clients DHCP."
 
-#: option.c:171
+#: option.c:177
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr ""
-"Specifie le port ou il faut ecouter les requetes DNS (par defaut a 53)."
+"Spécifie le port où il faut Ã©couter les requêtes DNS (par défaut : 53)."
 
-#: option.c:172
+#: option.c:178
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr ""
-"Taille maximale des paquets UDP supportee pour EDNS.0 (par defaut a %s)."
+"Taille maximale des paquets UDP supportés pour EDNS.0 (par défaut : %s)."
 
-#: option.c:173
+#: option.c:179
 msgid "Log queries."
-msgstr "Logue les requetes."
+msgstr "Logue les requêtes."
 
-#: option.c:174
+#: option.c:180
 msgid "Force the originating port for upstream queries."
-msgstr "Force le port d'origine des requetes vers les serveurs amonts."
+msgstr "Force le port d'origine pour les requêtes vers les serveurs amonts."
 
-#: option.c:175
+#: option.c:181
 msgid "Do NOT read resolv.conf."
 msgstr "Ne pas lire le fichier resolv.conf."
 
-#: option.c:176
+#: option.c:182
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
-msgstr "Specifie le chemin pour le fichier resolv.conf (par defaut a %s)."
+msgstr "Spécifie le chemin pour le fichier resolv.conf (par défaut : %s)."
 
-#: option.c:177
+#: option.c:183
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr ""
-"Specifie la ou les adresses des serveurs amonts avec des domaines optionels."
+"Spécifie la ou les adresses des serveurs amonts avec des domaines optionels."
 
-#: option.c:178
+#: option.c:184
 msgid "Never forward queries to specified domains."
-msgstr "Ne jamais retransmettre les requetes pour les domaines specifies."
+msgstr "Ne jamais retransmettre les requêtes pour les domaines spécifiés."
 
-#: option.c:179
+#: option.c:185
 msgid "Specify the domain to be assigned in DHCP leases."
-msgstr "Specifie le domaine qui doit etre assigne aux baux DHCP."
+msgstr "Spécifie le domaine qui doit etre assigné aux baux DHCP."
 
-#: option.c:180
+#: option.c:186
 msgid "Specify default target in an MX record."
-msgstr "Speficie la cible par defaut dans un champ MX."
+msgstr "Spécifie la cible par défaut dans un champ MX."
 
-#: option.c:181
+#: option.c:187
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr ""
-"Specifie le TTL en secondes pour les reponses qui utilisent /etc/hosts."
+"Spécifie le TTL en secondes pour les réponses qui utilisent /etc/hosts."
 
-#: option.c:182
+#: option.c:188
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
-msgstr "Change pour cet utilisateur apres le demarrage (par defaut a %s)."
+msgstr "Change pour cet utilisateur après le démarrage (par défaut : %s)."
 
-#: option.c:183
+#: option.c:189
 msgid "Map DHCP vendor class to option set."
-msgstr "Associe les 'vendor class' DHCP aux options."
+msgstr "Associe les classes de fournisseurs ('vendor class') DHCP aux options."
 
-#: option.c:184
+#: option.c:190
 msgid "Display dnsmasq version and copyright information."
-msgstr "Affiche la version de Dnsmasq et les informations liees au copyright."
+msgstr "Affiche la version de Dnsmasq et les informations liées au copyright."
 
-#: option.c:185
+#: option.c:191
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr "Traduit les adresses IPV4 des serveurs amonts."
 
-#: option.c:186
+#: option.c:192
 msgid "Specify a SRV record."
-msgstr " Specifie un champ SRV."
+msgstr " Spécifie un champ SRV."
 
-#: option.c:187
+#: option.c:193
 msgid "Display this message."
 msgstr "Affiche ce message."
 
-#: option.c:188
+#: option.c:194
 #, c-format
 msgid "Specify path of PID file. (defaults to %s)."
-msgstr "Specifie un chemin pour le fichier PID (par defaut a %s)."
+msgstr "Spécifie un chemin pour le fichier PID (par défaut : %s)."
 
-#: option.c:189
+#: option.c:195
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
-msgstr "Specifie le nombre maximum de baux DHCP (par defaut a %s)."
+msgstr "Spécifie le nombre maximum de baux DHCP (par défaut : %s)."
 
-#: option.c:190
+#: option.c:196
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr ""
-"Repond aux requetes DNS en se basant sur l'interface ou a ete envoyee la "
-"requete."
+"Repond aux requêtes DNS en se basant sur l'interface ou a Ã©té envoyée la "
+"requête."
 
-#: option.c:191
+#: option.c:197
 msgid "Specify TXT DNS record."
-msgstr "Specifie un champ DNS TXT"
+msgstr "Spécifie un champ DNS TXT"
 
-#: option.c:192
+#: option.c:198
 msgid "Bind only to interfaces in use."
-msgstr "Associe seulement aux interfaces en utilisation."
+msgstr "Association uniquement aux interfaces réseau actuellement actives."
 
-#: option.c:193
+#: option.c:199
 #, c-format
 msgid "Read DHCP static host information from %s."
-msgstr "Lecture des informations de DHCP statique a partir de %s."
+msgstr "Lecture des informations de DHCP statique Ã  partir de %s."
 
-#: option.c:194
+#: option.c:200
 msgid "Enable the DBus interface for setting upstream servers, etc."
-msgstr "Autorise l'interface DBus a configurer les serveurs amonts, etc."
+msgstr ""
+"Autorise l'interface DBus pour la configuration des serveurs amonts, etc."
 
-#: option.c:195
+#: option.c:201
 msgid "Do not provide DHCP on this interface, only provide DNS."
-msgstr "Ne fourni pas DHCP pour cette interface, mais seulement DNS."
+msgstr ""
+"Ne pas assurer de fonction DHCP sur cette interface, mais seulement la "
+"fonction DNS."
 
-#: option.c:196
+#: option.c:202
 msgid "Enable dynamic address allocation for bootp."
 msgstr "Autorise l'allocation dynamique d'adresse pour bootp."
 
-#: option.c:197
+#: option.c:203
 #, fuzzy
 msgid "Map MAC address (with wildcards) to option set."
-msgstr "Associe les 'vendor class' DHCP aux options."
+msgstr "Associe l'adresse MAC (avec les jokers) aux options."
 
-#: option.c:198
+#: option.c:204
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
+"Supprime la vérification d'adresse sur le serveur au moyen de paquets ICMP "
+"echo"
 
-#: option.c:199
+#: option.c:205
 msgid "Script to run on DHCP lease creation and destruction."
-msgstr ""
+msgstr "Script Ã  exécuter lors de la création ou destruction de bail DHCP."
 
-#: option.c:200
+#: option.c:206
 msgid "Read configuration from all the files in this directory."
-msgstr ""
+msgstr "Lecture de la configuration dans tous les fichiers de ce répertoire."
 
-#: option.c:201
+#: option.c:207
 #, fuzzy
 msgid "Log to this syslog facility. (defaults to DAEMON)"
-msgstr "Change pour cet utilisateur apres le demarrage (par defaut a %s)."
+msgstr "Logue dans cette facilité syslog. (défaut : DAEMON)"
 
-#: option.c:202
+#: option.c:208
 msgid "Read leases at startup, but never write the lease file."
-msgstr ""
+msgstr "Lecture des baux au démarrage, mais aucune Ã©criture de fichier de baux"
 
-#: option.c:203
+#: option.c:209
 #, fuzzy, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
-msgstr "Specifie le nombre maximum de baux DHCP (par defaut a %s)."
+msgstr "Spécifie le nombre maximum de baux DHCP (par défaut : %s)."
+
+#: option.c:210
+#, c-format
+msgid "Clear DNS cache when reloading %s."
+msgstr ""
 
-#: option.c:316
+#: option.c:323
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
 "\n"
 msgstr ""
-"Usage: dnsmasq [options]\n"
+"Usage : dnsmasq [options]\n"
 "\n"
 
-#: option.c:318
+#: option.c:325
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr "Utilisez les options courtes uniquement sur la ligne de commande.\n"
 
-#: option.c:320
+#: option.c:327
 #, c-format
 msgid "Valid options are :\n"
 msgstr "Les options valides sont :\n"
 
-#: option.c:355
+#: option.c:362
 msgid "extraneous parameter"
-msgstr "parametre supplementaire"
+msgstr "paramètre en trop"
 
-#: option.c:359
+#: option.c:366
 msgid "missing parameter"
-msgstr "parametre manquant"
+msgstr "paramètre manquant"
 
-#: option.c:381
+#: option.c:388
 #, fuzzy, c-format
 msgid "cannot access directory %s: %s"
-msgstr "Ne peut pas lire %s: %s"
+msgstr "Ne peut pas lire le répertoire %s : %s"
 
-#: option.c:400
+#: option.c:407
 #, fuzzy, c-format
 msgid "cannot access %s: %s"
-msgstr "Ne peut pas lire %s: %s"
+msgstr "Ne peut pas lire %s : %s"
 
-#: option.c:477
+#: option.c:484
 msgid "bad MX preference"
-msgstr "Mauvaise preference MX"
+msgstr "Mauvaise préference MX"
 
-#: option.c:486
+#: option.c:493
 msgid "bad MX name"
 msgstr "mauvais nom MX"
 
-#: option.c:504
+#: option.c:511
 msgid "bad MX target"
 msgstr "mauvaise cible MX"
 
-#: option.c:516
+#: option.c:523
 msgid "cannot run scripts under uClinux"
-msgstr ""
+msgstr "ne peut exécuter de script sous uClinux"
 
-#: option.c:715 option.c:726
+#: option.c:722 option.c:733
 msgid "bad port"
 msgstr "mauvais port"
 
-#: option.c:871
+#: option.c:878
 msgid "bad dhcp-range"
 msgstr "mauvaise plage d'adresses DHCP (dhcp-range)"
 
-#: option.c:900
+#: option.c:907
 msgid "only one netid tag allowed"
-msgstr ""
+msgstr "une seule Ã©tiquette netid est autorisée"
 
-#: option.c:945
+#: option.c:952
 msgid "inconsistent DHCP range"
-msgstr "plage d'adresses DHCP incoherente"
+msgstr "plage d'adresses DHCP incohérente"
 
-#: option.c:1130
+#: option.c:1137
 msgid "bad dhcp-host"
 msgstr "mauvais dhcp-host"
 
-#: option.c:1191
+#: option.c:1198
 msgid "bad dhcp-option"
 msgstr "mauvais dhcp-option"
 
-#: option.c:1209
+#: option.c:1216
 msgid "bad domain in dhcp-option"
 msgstr "mauvais domaine dans dhcp-option"
 
-#: option.c:1379
+#: option.c:1386
 msgid "dhcp-option too long"
 msgstr "dhcp-option trop long"
 
-#: option.c:1576
+#: option.c:1583
 msgid "bad TXT record"
 msgstr "mauvais champ TXT"
 
-#: option.c:1608
+#: option.c:1615
 msgid "TXT record string too long"
 msgstr "chaîne du champ TXT trop longue"
 
-#: option.c:1647
+#: option.c:1654
 msgid "bad SRV record"
 msgstr "mauvais champ SRV"
 
-#: option.c:1660
+#: option.c:1667
 msgid "bad SRV target"
 msgstr "mauvaise cible SRV"
 
-#: option.c:1672
+#: option.c:1679
 msgid "invalid port number"
-msgstr "numero de port invalide"
+msgstr "numéro de port invalide"
 
-#: option.c:1683
+#: option.c:1690
 msgid "invalid priority"
-msgstr "priorite invalide"
+msgstr "priorité invalide"
 
-#: option.c:1694
+#: option.c:1701
 msgid "invalid weight"
 msgstr "poids invalide"
 
-#: option.c:1725
+#: option.c:1732
 #, c-format
 msgid "files nested too deep in %s"
-msgstr ""
+msgstr "trop de niveaux de récursion pour les fichiers dans %s"
 
-#: option.c:1732
+#: option.c:1739
 #, c-format
 msgid "cannot read %s: %s"
-msgstr "Ne peut pas lire %s: %s"
+msgstr "Ne peut pas lire %s : %s"
 
-#: option.c:1774
+#: option.c:1781
 msgid "missing \""
 msgstr "il manque \""
 
-#: option.c:1809
+#: option.c:1816
 msgid "error"
 msgstr "erreur"
 
-#: option.c:1813
+#: option.c:1820
 msgid "bad option"
 msgstr "mauvaise option"
 
-#: option.c:1877
+#: option.c:1884
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Version de Dnsmasq %s  %s\n"
 
-#: option.c:1878
+#: option.c:1885
 #, c-format
 msgid ""
 "Compile time options %s\n"
 "\n"
 msgstr ""
-"Options a la compilation %s\n"
+"Options Ã  la compilation %s\n"
 "\n"
 
-#: option.c:1879
+#: option.c:1886
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
-msgstr "Ce logiciel est fourni sans GARANTIE aucune.\n"
+msgstr "Ce logiciel est fourni sans AUCUNE GARANTIE.\n"
 
-#: option.c:1880
+#: option.c:1887
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
-msgstr "Dnsmasq est un logiciel libre, et vous etes invite a le redistribuer\n"
+msgstr "Dnsmasq est un logiciel libre, il vous est permis de le redistribuer\n"
 
-#: option.c:1881
+#: option.c:1888
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2.\n"
 msgstr ""
 "sous les termes de la licence GPL (GNU General Public License), version 2.\n"
 
-#: option.c:1892
+#: option.c:1899
 msgid "try --help"
-msgstr ""
+msgstr "essayez avec --help"
 
-#: option.c:1894
+#: option.c:1901
 msgid "try -w"
-msgstr ""
+msgstr "essayez avec -w"
 
-#: option.c:1897
+#: option.c:1904
 #, fuzzy, c-format
 msgid "bad command line options: %s"
-msgstr "mauvaises options en ligne de commande: %s."
+msgstr "mauvaises options en ligne de commande : %s."
 
-#: option.c:1948
+#: option.c:1955
 #, c-format
 msgid "cannot get host-name: %s"
-msgstr "ne peut pas obtenir le nom de la machine: %s"
+msgstr "ne peut pas obtenir le nom de la machine : %s"
 
-#: option.c:1976
+#: option.c:1983
 msgid "only one resolv.conf file allowed in no-poll mode."
-msgstr "seul un fichier resolv.conf est autorise dans le mode no-poll"
+msgstr "seul un fichier resolv.conf est autorisé dans le mode no-poll"
 
-#: option.c:1986
+#: option.c:1993
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr ""
-"on doit avoir exactement un seul fichier resolv.conf pour y recuperer le nom "
+"un fichier resolv.conf (et un seul) est nécessaire pour y récuperer le nom "
 "de domaine."
 
-#: option.c:1989
+#: option.c:1996
 #, fuzzy, c-format
 msgid "failed to read %s: %s"
-msgstr "impossible de lire %s: %m"
+msgstr "impossible de lire %s : %m"
 
-#: option.c:2007
+#: option.c:2014
 #, c-format
 msgid "no search directive found in %s"
-msgstr "pas de directive de recherche trouvee dans %s"
+msgstr "pas de directive de recherche trouvée dans %s"
 
-#: forward.c:371
+#: forward.c:370
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
-msgstr "le serveur de nom %s a refuse de faire une recherche recursive"
+msgstr "le serveur de nom %s a refusé de faire une recherche récursive"
 
-#: forward.c:878
-msgid "forwarding table overflow: check for server loops."
-msgstr ""
-"Table de stockage des requetes DNS pleine : verifiez la configuration du "
-"serveur (risque de boucle recursive)."
-
-#: isc.c:73 dnsmasq.c:480
+#: isc.c:73 dnsmasq.c:482
 #, c-format
 msgid "failed to access %s: %m"
-msgstr "impossible d'acceder a %s: %m"
+msgstr "impossible d'accéder Ã  %s : %m"
 
 #: isc.c:89
 #, c-format
 msgid "failed to load %s: %m"
-msgstr "impossible de charger %s: %m"
+msgstr "impossible de charger %s : %m"
 
-#: isc.c:93 dnsmasq.c:502
+#: isc.c:93 dnsmasq.c:504
 #, c-format
 msgid "reading %s"
-msgstr "Lecture %s"
+msgstr "Lecture de %s"
 
 #: isc.c:115
 #, c-format
@@ -601,377 +607,380 @@ msgstr "mauvais nom dans %s"
 #, c-format
 msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
 msgstr ""
-"On ignore le bail DHCP pour %s car il possede un nom de domaine illegal"
+"On ignore le bail DHCP pour %s car il possède un nom de domaine illégal"
 
-#: network.c:315 dnsmasq.c:129
+#: network.c:315 dnsmasq.c:132
 #, c-format
 msgid "failed to create listening socket: %s"
-msgstr "impossible de creer une socket de lecture: %s"
+msgstr "impossible de créer une socket de lecture : %s"
 
 #: network.c:322
 #, c-format
 msgid "failed to set IPV6 options on listening socket: %s"
-msgstr "impossible d'activer les options IPV6 sur la socket de lecture: %s"
+msgstr "impossible d'activer les options IPV6 sur la socket de lecture : %s"
 
 #: network.c:340
 #, c-format
 msgid "failed to bind listening socket for %s: %s"
-msgstr "impossible de lier la socket de lecture pour %s: %s"
+msgstr "impossible de lier la socket de lecture pour %s : %s"
 
 #: network.c:348
 #, c-format
 msgid "failed to listen on socket: %s"
-msgstr "impossible de lire sur la socket: %s"
+msgstr "impossible de lire sur la socket : %s"
 
-#: network.c:411
+#: network.c:419
 #, c-format
 msgid "ignoring nameserver %s - local interface"
-msgstr "on ignore le serveur de nom %s - interface locale"
+msgstr "ignore le serveur de nom %s - interface locale"
 
-#: network.c:420
+#: network.c:428
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %m"
-msgstr "on ignore le serveur de nom %s - ne peut construire/lier la socket: %m"
+msgstr "ignore le serveur de nom %s - ne peut construire/lier la socket : %m"
 
-#: network.c:434
+#: network.c:442
 msgid "domain"
 msgstr "domaine"
 
-#: network.c:436
+#: network.c:444
 msgid "unqualified"
-msgstr "non-qualifie"
+msgstr "non-qualifié(e)"
 
-#: network.c:436
+#: network.c:444
 msgid "domains"
 msgstr "domaines"
 
-#: network.c:439
+#: network.c:447
 #, c-format
 msgid "using local addresses only for %s %s"
-msgstr "on utilise les adresses locales seulement pour %s %s"
+msgstr "utilise les adresses locales seulement pour %s %s"
 
-#: network.c:441
+#: network.c:449
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
-msgstr "on utilise le serveur de nom %s#%d pour %s %s"
+msgstr "utilise le serveur de nom %s#%d pour %s %s"
 
-#: network.c:444
+#: network.c:452
 #, c-format
 msgid "using nameserver %s#%d"
-msgstr "on utilise le serveur de nom %s#%d"
+msgstr "utilise le serveur de nom %s#%d"
 
-#: network.c:464
+#: network.c:472
 #, c-format
 msgid "failed to read %s: %m"
-msgstr "impossible de lire %s: %m"
+msgstr "impossible de lire %s : %m"
 
-#: dnsmasq.c:94
+#: dnsmasq.c:97
 msgid ""
 "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
 msgstr ""
-"L'integration DHCP ISC n'est pas disponible: activez HAVE_ISC_READER dans "
+"L'intégration DHCP ISC n'est pas disponible : activez HAVE_ISC_READER dans "
 "src/config.h"
 
-#: dnsmasq.c:111
+#: dnsmasq.c:114
 #, c-format
 msgid "failed to find list of interfaces: %s"
-msgstr "impossible de trouver la liste des interfaces: %s"
+msgstr "impossible de trouver la liste des interfaces : %s"
 
-#: dnsmasq.c:119
+#: dnsmasq.c:122
 #, c-format
 msgid "unknown interface %s"
 msgstr "interface %s inconnue"
 
-#: dnsmasq.c:125
+#: dnsmasq.c:128
 #, c-format
 msgid "no interface with address %s"
 msgstr "pas d'interface avec l'adresse %s"
 
-#: dnsmasq.c:144
+#: dnsmasq.c:147
 msgid "must set exactly one interface on broken systems without IP_RECVIF"
 msgstr ""
-"on doit declarer exactement une interface sur les systemes sans IP_RECVIF"
+"Une interface et une seule doit Ãªtre déclarée sur les systèmes sans IP_RECVIF"
 
-#: dnsmasq.c:157 dnsmasq.c:603
+#: dnsmasq.c:160 dnsmasq.c:609
 #, c-format
 msgid "DBus error: %s"
-msgstr "Erreur DBus: %s"
+msgstr "Erreur DBus : %s"
 
-#: dnsmasq.c:160
+#: dnsmasq.c:163
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
-msgstr "DBus n'est pas disponible: declarez HAVE_DBUS dans src/config.h"
+msgstr "DBus n'est pas disponible : activez HAVE_DBUS dans src/config.h"
 
-#: dnsmasq.c:191
+#: dnsmasq.c:194
 #, fuzzy, c-format
 msgid "cannot create pipe: %s"
-msgstr "Ne peut pas lire %s: %s"
+msgstr "Ne peut pas lire %s : %s"
 
-#: dnsmasq.c:341
+#: dnsmasq.c:337
 #, c-format
 msgid "started, version %s cachesize %d"
-msgstr "demarre, version %s taille de cache %d"
+msgstr "demarré, version %s (taille de cache %d)"
 
-#: dnsmasq.c:343
+#: dnsmasq.c:339
 #, c-format
 msgid "started, version %s cache disabled"
-msgstr "demarre, version %s cache desactive"
+msgstr "démarrage avec le cache désactivé (version %s)"
 
-#: dnsmasq.c:345
+#: dnsmasq.c:341
 #, c-format
 msgid "compile time options: %s"
-msgstr "options a la compilation: %s"
+msgstr "options Ã  la compilation : %s"
 
-#: dnsmasq.c:351
+#: dnsmasq.c:347
 msgid "DBus support enabled: connected to system bus"
-msgstr "Support DBus autorise: connecte au bus systeme"
+msgstr "Support DBus autorisé : connecté au bus système"
 
-#: dnsmasq.c:353
+#: dnsmasq.c:349
 msgid "DBus support enabled: bus connection pending"
-msgstr "Support DBus autorise: connexion au bus en suspend"
+msgstr "Support DBus autorisé : connexion au bus en attente"
 
-#: dnsmasq.c:358
+#: dnsmasq.c:354
 msgid "setting --bind-interfaces option because of OS limitations"
-msgstr "Active l'option --bind-interfaces a cause des limitations de l'OS"
+msgstr ""
+"active l'option --bind-interfaces Ã  cause de limitations dans le système "
+"d'exploitation"
 
-#: dnsmasq.c:363
+#: dnsmasq.c:359
 #, c-format
 msgid "warning: interface %s does not currently exist"
-msgstr "Attention: l'interface %s n'existe pas actuellement"
+msgstr "attention : l'interface %s n'existe pas actuellement"
 
-#: dnsmasq.c:368
+#: dnsmasq.c:364
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
+"attention : le drapeau resolv-file sera ignoré car no-resolv a Ã©té spécifié"
 
-#: dnsmasq.c:382
+#: dnsmasq.c:378
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
-msgstr ""
-"DHCP, baux statiques seulement sur %.0s%s, duree de validite de bail %s"
+msgstr "baux statiques DHCP seulement sur %.0s%s, durée de validité de bail %s"
 
-#: dnsmasq.c:383
+#: dnsmasq.c:379
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
-msgstr "DHCP, plage d'adresse %s -- %s, duree de bail %s"
+msgstr "DHCP, plage d'adresses %s -- %s, durée de bail %s"
 
-#: dnsmasq.c:393
+#: dnsmasq.c:389
 #, c-format
 msgid "warning: setting capabilities failed: %m"
-msgstr ""
+msgstr "attention : impossible de configurer la capacité %m"
 
-#: dnsmasq.c:395
+#: dnsmasq.c:391
 msgid "running as root"
-msgstr "execute sous root"
+msgstr "executé en temps que root"
 
-#: dnsmasq.c:511
+#: dnsmasq.c:515
 #, fuzzy, c-format
 msgid "no servers found in %s, will retry"
-msgstr "pas de directive de recherche trouvee dans %s"
+msgstr "aucun serveur trouvé dans %s, va réessayer"
 
-#: dnsmasq.c:551
+#: dnsmasq.c:574
 msgid "exiting on receipt of SIGTERM"
-msgstr "sortie sur reception du signal SIGTERM"
+msgstr "sortie sur réception du signal SIGTERM"
 
-#: dnsmasq.c:605
+#: dnsmasq.c:611
 msgid "connected to system DBus"
-msgstr "connecte au systeme DBus"
+msgstr "connecté au systeme DBus"
 
 #: dhcp.c:32
 #, c-format
 msgid "cannot create DHCP socket : %s"
-msgstr "ne peut creer la socket DHCP : %s"
+msgstr "ne peut créer la socket DHCP : %s"
 
 #: dhcp.c:41
 #, c-format
 msgid "failed to set options on DHCP socket: %s"
-msgstr "impossible d'appliquer les options sur la socket DHCP: %s"
+msgstr "impossible d'appliquer les options sur la socket DHCP : %s"
 
 #: dhcp.c:48
 #, c-format
 msgid "failed to set SO_REUSEADDR on DHCP socket: %s"
-msgstr "impossible de declarer SO_REUSEADDR sur la socket DHCP: %s"
+msgstr "impossible de déclarer SO_REUSEADDR sur la socket DHCP : %s"
 
 #: dhcp.c:59
 #, c-format
 msgid "failed to bind DHCP server socket: %s"
-msgstr "impossible de lier la socket serveur DHCP: %s"
+msgstr "impossible de lier la socket serveur DHCP : %s"
 
 #: dhcp.c:72
 #, c-format
 msgid "cannot create ICMP raw socket: %s."
-msgstr "ne peut creer de socket en mode raw pour ICMP: %s."
+msgstr "ne peut créer de socket en mode raw pour ICMP : %s."
 
 #: dhcp.c:84
 #, c-format
 msgid "duplicate IP address %s in dhcp-config directive."
-msgstr "adresse IP %s dupliquee dans la directive dhcp-config."
+msgstr "adresse IP %s dupliquée dans la directive dhcp-config."
 
-#: dhcp.c:318
+#: dhcp.c:317
 #, c-format
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr ""
-"La plage d'adresses DHCP %s -- %s n'est pas coherente avec le masque de "
-"reseau %s"
+"La plage d'adresses DHCP %s -- %s n'est pas cohérente avec le masque de "
+"réseau %s"
 
-#: dhcp.c:635
+#: dhcp.c:634
 #, c-format
 msgid "failed to read %s:%m"
-msgstr "impossible de lire %s:%m"
+msgstr "impossible de lire %s : %m"
 
-#: dhcp.c:670
+#: dhcp.c:669
 #, fuzzy, c-format
 msgid "bad line at %s line %d"
 msgstr "mauvais nom dans %s ligne %d"
 
-#: dhcp.c:779
+#: dhcp.c:776
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
-msgstr "adresse IP %s (%s) dupliquee dans la directive dhcp-config."
+msgstr "adresse IP %s (%s) dupliquée dans la directive dhcp-config."
 
-#: dhcp.c:815
+#: dhcp.c:812
 #, c-format
 msgid "Ignoring DHCP host name %s because it has an illegal domain part"
 msgstr ""
-"On ignore le nom de machine DHCP %s parce-qu'il possede un nom de domaine "
-"illegal"
+"On ignore le nom de machine DHCP %s parce-qu'il possède un nom de domaine "
+"illégal"
 
 #: lease.c:50
 #, fuzzy, c-format
 msgid "cannot open or create lease file %s: %s"
-msgstr "ne peut ouvrir ou creer des fichiers de baux: %s"
+msgstr "ne peut ouvrir ou créer le fichiers de baux %s : %s"
 
 #: lease.c:80
 msgid "too many stored leases"
-msgstr "beaucoup trop de baux enregistres"
+msgstr "beaucoup trop de baux enregistrés"
 
 #: lease.c:113
 #, fuzzy, c-format
 msgid "cannot run lease-init script %s: %s"
-msgstr "Ne peut pas lire %s: %s"
+msgstr "Ne peut pas lire %s : %s"
 
 #: lease.c:119
 #, c-format
 msgid "lease-init script returned exit code %s"
-msgstr ""
+msgstr "le script lease-init a retourné le code %s"
 
 #: lease.c:217
 #, fuzzy, c-format
 msgid "failed to write %s: %s (retry in %us)"
-msgstr "impossible de lire %s: %m"
+msgstr "impossible de lire %s : %s (prochain essai dans %us)"
 
-#: lease.c:522
-#, fuzzy, c-format
-msgid "failed to execute %s: %m"
-msgstr "impossible d'acceder a %s: %m"
-
-#: rfc2131.c:247
+#: rfc2131.c:261
 #, c-format
 msgid "no address range available for DHCP request %s %s"
-msgstr "pas de plage d'adresse disponible pour la requete DHCP %s %s"
+msgstr "pas de plage d'adresse disponible pour la requête DHCP %s %s"
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "with subnet selector"
-msgstr "avec selecteur de sous-reseau"
+msgstr "avec sélecteur de sous-reseau"
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "via"
-msgstr "par l'intermediaire de"
+msgstr "par l'intermédiaire de"
 
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:288 rfc2131.c:312
 msgid "disabled"
-msgstr "desactive"
+msgstr "désactivé"
 
-#: rfc2131.c:310 rfc2131.c:741
+#: rfc2131.c:324 rfc2131.c:759
 msgid "address in use"
-msgstr "adresse deja utilisee"
+msgstr "adresse déjà utilisée"
 
-#: rfc2131.c:313
+#: rfc2131.c:327
 msgid "no address configured"
-msgstr "pas d'adresse configuree"
+msgstr "pas d'adresse configurée"
 
-#: rfc2131.c:326 rfc2131.c:613
+#: rfc2131.c:340 rfc2131.c:631
 msgid "no address available"
 msgstr "pas d'adresse disponible"
 
-#: rfc2131.c:335 rfc2131.c:748
+#: rfc2131.c:349 rfc2131.c:767
 msgid "no leases left"
-msgstr "aucun baux laisses"
+msgstr "plus aucun bail disponible"
 
-#: rfc2131.c:338 rfc2131.c:715
+#: rfc2131.c:352 rfc2131.c:733
 msgid "wrong network"
-msgstr "mauvais reseau"
+msgstr "mauvais réseau"
 
-#: rfc2131.c:542
+#: rfc2131.c:559
 #, fuzzy, c-format
 msgid "disabling DHCP static address %s for %s"
-msgstr "desactive l'adresse statique DHCP %s"
+msgstr "désactive l'adresse statique DHCP %s pour %s"
 
-#: rfc2131.c:562
+#: rfc2131.c:580
 msgid "unknown lease"
 msgstr "bail inconnu"
 
-#: rfc2131.c:571 rfc2131.c:813
+#: rfc2131.c:589 rfc2131.c:862
 msgid "ignored"
-msgstr "ignore"
+msgstr "ignoré"
 
-#: rfc2131.c:587
+#: rfc2131.c:605
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
+"L'adresse statique %s ne sera pas utilisée car un bail est déjà attribué Ã  %s"
 
-#: rfc2131.c:596
+#: rfc2131.c:614
 #, c-format
 msgid ""
 "not using configured address %s because it is in use by the server or relay"
 msgstr ""
+"L'adresse statique %s ne sera pas utilisée car elle est utilisée par le "
+"serveur ou un relai"
 
-#: rfc2131.c:599
+#: rfc2131.c:617
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
+"L'adresse statique %s ne sera pas utilisée car elle a préalablement Ã©té "
+"refusée"
 
-#: rfc2131.c:678
+#: rfc2131.c:696
 msgid "wrong address"
 msgstr "mauvaise adresse"
 
-#: rfc2131.c:691
+#: rfc2131.c:709
 msgid "lease not found"
-msgstr "bail non trouve"
+msgstr "bail non trouvé"
 
-#: rfc2131.c:723
+#: rfc2131.c:741
 msgid "address not available"
 msgstr "adresse non disponible"
 
-#: rfc2131.c:734
+#: rfc2131.c:752
 msgid "static lease available"
 msgstr "bail statique disponible"
 
-#: rfc2131.c:738
+#: rfc2131.c:756
 msgid "address reserved"
-msgstr "adresse reservee"
+msgstr "adresse reservée"
 
-#: rfc2131.c:744
+#: rfc2131.c:762
 msgid "no unique-id"
-msgstr ""
+msgstr "pas d'identifiant unique"
 
-#: rfc2131.c:945
+#: rfc2131.c:1000
 #, c-format
 msgid "cannot send DHCP option %d: no space left in packet"
 msgstr ""
+"Impossible d'envoyer l'option DHCP %d : pas assez d'espace dans le paquet"
 
-#: rfc2131.c:1246
+#: rfc2131.c:1301
 #, c-format
 msgid "More than one vendor class matches, using %s"
-msgstr "Plus d'une seule classe de fournisseur correspond, on utilise %s"
+msgstr "Plusieurs classes de fournisseurs correspondent, %s sera utilisé"
 
 #: netlink.c:51
 #, fuzzy, c-format
 msgid "cannot create netlink socket: %s"
-msgstr "ne peux lier une socket netlink: %s"
+msgstr "ne peux lier une socket netlink : %s"
 
 #: netlink.c:224
 #, fuzzy, c-format
 msgid "netlink returns error: %s"
-msgstr "Erreur DBus: %s"
+msgstr "Erreur netlink : %s"
 
 #: dbus.c:112
 msgid "attempt to set an IPv6 server address via DBus - no IPv6 support"
@@ -980,7 +989,7 @@ msgstr ""
 
 #: dbus.c:238
 msgid "setting upstream servers from DBus"
-msgstr "configuration des serveurs amonts a partir de DBus"
+msgstr "configuration des serveurs amonts Ã  partir de DBus"
 
 #: dbus.c:274
 msgid "could not register a DBus message handler"
@@ -989,25 +998,24 @@ msgstr "ne peut enregistrer une routine de traitement des messages DBus"
 #: bpf.c:48
 #, c-format
 msgid "cannot create DHCP BPF socket: %s"
-msgstr "impossible de creer une socket BPF pour DHCP: %s"
+msgstr "impossible de créer une socket BPF pour DHCP : %s"
 
 #: bpf.c:76
 #, fuzzy, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
-msgstr "requete DHCP pour un type de materiel non supporte (%d) recue sur %s"
-
-#~ msgid "nested includes not allowed"
-#~ msgstr "Inclusions d'inclusions non autorisees"
+msgstr "requête DHCP pour un type de matériel non supporté (%d) reçue sur %s"
 
-#~ msgid "cannot open %s:%s"
-#~ msgstr "ne peut pas ouvrir %s:%s"
+#: helper.c:145
+#, c-format
+msgid "child process killed by signal %d"
+msgstr "Le processus fils a Ã©té terminé par le signal %d"
 
-#~ msgid "DHCP, %s will be written every %s"
-#~ msgstr "DHCP, %s sera ecrit chaque %s"
+#: helper.c:147
+#, c-format
+msgid "child process exited with status %d"
+msgstr "Le processus fils s'est terminé avec le statut %d"
 
-#~ msgid ""
-#~ "cannot create DHCP packet socket: %s. Is CONFIG_PACKET enabled in your "
-#~ "kernel?"
-#~ msgstr ""
-#~ "impossible de creer une socket DHCP en mode paquet: %s. Est-ce que "
-#~ "CONFIG_PACKET est active dans votre noyau?"
+#: helper.c:216
+#, fuzzy, c-format
+msgid "failed to execute %s: %m"
+msgstr "impossible d'accéder Ã  %s : %m"
index 3761ecb01ccd3386c632068be8d5e69274df58c7..e605a3c6c1a5451585a8e5262200efd3210deda7 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.24\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-04 11:57+0100\n"
+"POT-Creation-Date: 2006-10-13 18:20+0100\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"
@@ -15,36 +15,36 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 # OK
-#: cache.c:570
+#: cache.c:606
 #, c-format
 msgid "failed to load names from %s: %m"
 msgstr "gagal memuat nama-nama dari %s: %m"
 
 # OK
-#: cache.c:606 dhcp.c:683
+#: cache.c:642 dhcp.c:682
 #, fuzzy, c-format
 msgid "bad address at %s line %d"
 msgstr "kesalahan nama pada %s baris %d"
 
 # OK
-#: cache.c:633 dhcp.c:697
+#: cache.c:669 dhcp.c:696
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "kesalahan nama pada %s baris %d"
 
 # OK
-#: cache.c:639 dhcp.c:751
+#: cache.c:675 dhcp.c:750
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "membaca %s - %d alamat"
 
 # OK
-#: cache.c:675
+#: cache.c:711
 msgid "cleared cache"
 msgstr "cache telah dihapus"
 
 # OK
-#: cache.c:728
+#: cache.c:764
 #, c-format
 msgid ""
 "not giving name %s to the DHCP lease of %s because the name exists in %s "
@@ -54,7 +54,7 @@ msgstr ""
 "sdengan alamat %s"
 
 # OK
-#: cache.c:772
+#: cache.c:808
 #, fuzzy, c-format
 msgid ""
 "time %lu, cache size %d, %d/%d cache insertions re-used unexpired cache "
@@ -63,7 +63,7 @@ msgstr ""
 "ukuran cache %d, %d/%d penyisipan cache menimpa cache yang belum kadaluwarsa"
 
 # OK
-#: util.c:153 option.c:1214
+#: util.c:153 option.c:1221
 msgid "could not get memory"
 msgstr "tidak bisa mendapatkan memory"
 
@@ -85,338 +85,343 @@ msgid "infinite"
 msgstr "tak terbatas"
 
 # OK
-#: option.c:141
+#: option.c:147
 msgid "Specify local address(es) to listen on."
 msgstr "Tentukan alamat lokal untuk mendengarkan."
 
 # OK
-#: option.c:142
+#: option.c:148
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr "Menghasilkan ipaddr untuk semua host dalam domain yang dipilih."
 
 # OK
-#: option.c:143
+#: option.c:149
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr "Fake pencarian balik untuk alamat private sesuai dengan RFC1918."
 
 # OK
-#: option.c:144
+#: option.c:150
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr "Perlakukan ipaddr sebagai NXDOMAIN (mengalahkan wildcard Verisign)."
 
 # OK
-#: option.c:145
+#: option.c:151
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr "Tentukan ukuran cache, dalam jumlah isian (default %s)."
 
 # OK
-#: option.c:146
+#: option.c:152
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr "Tentukan file konfigurasi (default %s)."
 
 # OK
-#: option.c:147
+#: option.c:153
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr "JANGAN berjalan di background: berjalan dalam modus debug."
 
 # OK
-#: option.c:148
+#: option.c:154
 msgid "Do NOT forward queries with no domain part."
 msgstr "JANGAN teruskan permintaan tanpa bagian domain."
 
 # OK
-#: option.c:149
+#: option.c:155
 msgid "Return self-pointing MX records for local hosts."
 msgstr "Mengembalikan record MX untuk diri sendiri host-host lokal."
 
 # OK
-#: option.c:150
+#: option.c:156
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr "Melengkapi nama-nama di /etc/hosts dengan akhiran domain."
 
 # OK
-#: option.c:151
+#: option.c:157
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr "Jangan meneruskan permintaan DNS spurious dari host-host Windows."
 
 # OK
-#: option.c:152
+#: option.c:158
 msgid "Enable DHCP in the range given with lease duration."
 msgstr "Bolehkan DHCP dalam jangkauan yang diberikan dengan durasi lease."
 
 # OK
-#: option.c:153
+#: option.c:159
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr "Ubah ke group ini setelah mulai (default %s)."
 
 # OK
-#: option.c:154
+#: option.c:160
 msgid "Set address or hostname for a specified machine."
 msgstr "Setel alamat atau nama host untuk mesin yang disebutkan."
 
 # OK
-#: option.c:155
+#: option.c:161
 #, c-format
 msgid "Do NOT load %s file."
 msgstr "JANGAN muat file %s."
 
 # OK
-#: option.c:156
+#: option.c:162
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr ""
 "Sebutkan sebuah file hosts yang harus dibaca sebagai tambahan untuk %s."
 
 # OK
-#: option.c:157
+#: option.c:163
 msgid "Specify interface(s) to listen on."
 msgstr "Sebutkan antarmuka untuk mendengarkan."
 
 # OK
-#: option.c:158
+#: option.c:164
 msgid "Specify interface(s) NOT to listen on."
 msgstr "Sebutkan antarmuka untuk TIDAK mendengarkan."
 
 # OK
-#: option.c:159
+#: option.c:165
 msgid "Map DHCP user class to option set."
 msgstr "Petakan kelas user DHCP ke setelan yang dipilih."
 
 # OK
-#: option.c:160
+#: option.c:166
 msgid "Don't do DHCP for hosts in option set."
 msgstr "Jangan menggunakan DHCP untuk host-host yang dipilih."
 
 # OK
-#: option.c:161
+#: option.c:167
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr "JANGAN berjalan di background, jangan berjalan dalam modus debug."
 
 # OK
-#: option.c:162
+#: option.c:168
 msgid "Assume we are the only DHCP server on the local network."
 msgstr "Berpikir bahwa kita satu-satunya DHCP server dalam jaringan."
 
 # OK
-#: option.c:163
+#: option.c:169
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr "Sebutkan lokasi untuk menyimpan lease DHCP (default %s)."
 
 # OK
-#: option.c:164
+#: option.c:170
 msgid "Return MX records for local hosts."
 msgstr "Kembalikan rekord MX untuk host-host lokal."
 
 # OK
-#: option.c:165
+#: option.c:171
 msgid "Specify an MX record."
 msgstr "Sebutkan sebuah rekord MX."
 
 # OK
-#: option.c:166
+#: option.c:172
 msgid "Specify BOOTP options to DHCP server."
 msgstr "Sebutkan pilihan-pilihan BOOTP untuk DHCP server."
 
-#: option.c:167
+#: option.c:173
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr "Jangan kumpulkan file %s, muat kembali saat SIGHUP."
 
 # OK
-#: option.c:168
+#: option.c:174
 msgid "Do NOT cache failed search results."
 msgstr "JANGAN menyimpan hasil pencarian yang gagal."
 
 # OK
-#: option.c:169
+#: option.c:175
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr "Gunakan secara ketat namaserver yang disebutkan sesuai urutan di %s."
 
 # OK
-#: option.c:170
+#: option.c:176
 msgid "Set extra options to be set to DHCP clients."
 msgstr ""
 "Setel pilihan-pilihan tambahan yang akan disetel untuk klien-klien DHCP."
 
 # OK
-#: option.c:171
+#: option.c:177
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr "Sebutkan port untuk mendengarkan permintaan DNS (default port 53)."
 
 # OK
-#: option.c:172
+#: option.c:178
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr "Ukuran maksimum paket UDP yang didukung untuk EDNS.0 (default %s)."
 
 # OK
-#: option.c:173
+#: option.c:179
 msgid "Log queries."
 msgstr "Permintaan log."
 
 # OK
-#: option.c:174
+#: option.c:180
 msgid "Force the originating port for upstream queries."
 msgstr "Paksa port asal untuk permintaan ke atas."
 
 # OK
-#: option.c:175
+#: option.c:181
 msgid "Do NOT read resolv.conf."
 msgstr "JANGAN baca resolv.conf."
 
 # OK
-#: option.c:176
+#: option.c:182
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr "Sebutkan path ke resolv.conf (default %s)."
 
 # OK
-#: option.c:177
+#: option.c:183
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr ""
 "Sebutkan alamat-alamat server di atas, boleh dilengkapi dengan nama domain."
 
 # OK
-#: option.c:178
+#: option.c:184
 msgid "Never forward queries to specified domains."
 msgstr "JANGAN pernah meneruskan permintaan ke domain yang disebutkan."
 
 # OK
-#: option.c:179
+#: option.c:185
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr "Sebutkan domain yang digunakan dalam lease DHCP."
 
 # OK
-#: option.c:180
+#: option.c:186
 msgid "Specify default target in an MX record."
 msgstr "Sebutkan tujuan default dalam rekord MX."
 
 # OK
-#: option.c:181
+#: option.c:187
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr "Sebutkan time-to-live dalam detik untuk jawaban dari /etc/hosts."
 
 # OK
-#: option.c:182
+#: option.c:188
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr "Ubah ke user ini setelah mulai. (default %s)."
 
 # OK
-#: option.c:183
+#: option.c:189
 msgid "Map DHCP vendor class to option set."
 msgstr "Memetakan kelas vendor DHCP ke daftar pilihan."
 
 # OK
-#: option.c:184
+#: option.c:190
 msgid "Display dnsmasq version and copyright information."
 msgstr "Menampilkan versi dan informasi hak cipta dnsmasq."
 
 # OK
-#: option.c:185
+#: option.c:191
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr "Terjemahkan alamat-alamat IPv4 dari server-server di atas."
 
 # OK
-#: option.c:186
+#: option.c:192
 msgid "Specify a SRV record."
 msgstr "Sebutkan rekord SRV."
 
 # OK
-#: option.c:187
+#: option.c:193
 msgid "Display this message."
 msgstr "Menampilkan pesan ini."
 
 # OK
-#: option.c:188
+#: option.c:194
 #, c-format
 msgid "Specify path of PID file. (defaults to %s)."
 msgstr "Sebutkan path file PID. (default %s)."
 
 # OK
-#: option.c:189
+#: option.c:195
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)."
 
 # OK
-#: option.c:190
+#: option.c:196
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr ""
 "Jawab permintaan DNS berdasarkan antarmuka dimana permintaan dikirimkan."
 
 # OK
-#: option.c:191
+#: option.c:197
 msgid "Specify TXT DNS record."
 msgstr "Sebutkan rekord TXT DNS."
 
 # OK
-#: option.c:192
+#: option.c:198
 msgid "Bind only to interfaces in use."
 msgstr "Hanya kaitkan ke antarmuka yang sedang digunakan saja."
 
 # OK
-#: option.c:193
+#: option.c:199
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr "Baca informasi statik host DHCP dari %s."
 
 # OK
-#: option.c:194
+#: option.c:200
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr "Mungkinkan antar muka DBus untuk menyetel server-server di atas, dsb."
 
 # OK
-#: option.c:195
+#: option.c:201
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr "JANGAN menyediakan DHCP pada antarmuka ini, hanya menyediakan DNS."
 
 # OK
-#: option.c:196
+#: option.c:202
 msgid "Enable dynamic address allocation for bootp."
 msgstr "Mungkinkan alokasi alamat dinamis untuk bootp."
 
 # OK
-#: option.c:197
+#: option.c:203
 #, fuzzy
 msgid "Map MAC address (with wildcards) to option set."
 msgstr "Memetakan kelas vendor DHCP ke daftar pilihan."
 
-#: option.c:198
+#: option.c:204
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 
-#: option.c:199
+#: option.c:205
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 
-#: option.c:200
+#: option.c:206
 msgid "Read configuration from all the files in this directory."
 msgstr ""
 
 # OK
-#: option.c:201
+#: option.c:207
 #, fuzzy
 msgid "Log to this syslog facility. (defaults to DAEMON)"
 msgstr "Ubah ke user ini setelah mulai. (default %s)."
 
-#: option.c:202
+#: option.c:208
 msgid "Read leases at startup, but never write the lease file."
 msgstr ""
 
 # OK
-#: option.c:203
+#: option.c:209
 #, fuzzy, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr "Sebutkan jumlah maksimum lease DHCP (default %s)."
 
+#: option.c:210
+#, c-format
+msgid "Clear DNS cache when reloading %s."
+msgstr ""
+
 # OK
-#: option.c:316
+#: option.c:323
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -426,166 +431,166 @@ msgstr ""
 "\n"
 
 # OK
-#: option.c:318
+#: option.c:325
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr "Gunakan pilihan pendek saja pada perintah baris.\n"
 
 # OK
-#: option.c:320
+#: option.c:327
 #, c-format
 msgid "Valid options are :\n"
 msgstr "Pilihan yang boleh adalah:\n"
 
 # OK
-#: option.c:355
+#: option.c:362
 msgid "extraneous parameter"
 msgstr "parameter berlebihan"
 
 # OK
-#: option.c:359
+#: option.c:366
 msgid "missing parameter"
 msgstr "parameter kurang"
 
 # OK
-#: option.c:381
+#: option.c:388
 #, fuzzy, c-format
 msgid "cannot access directory %s: %s"
 msgstr "tidak bisa membaca %s: %s"
 
 # OK
-#: option.c:400
+#: option.c:407
 #, fuzzy, c-format
 msgid "cannot access %s: %s"
 msgstr "tidak bisa membaca %s: %s"
 
 # OK
-#: option.c:477
+#: option.c:484
 msgid "bad MX preference"
 msgstr "kesukaan MX salah"
 
 # OK
-#: option.c:486
+#: option.c:493
 msgid "bad MX name"
 msgstr "nama MX salah"
 
 # OK
-#: option.c:504
+#: option.c:511
 msgid "bad MX target"
 msgstr "target MX salah"
 
-#: option.c:516
+#: option.c:523
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
 # OK
-#: option.c:715 option.c:726
+#: option.c:722 option.c:733
 msgid "bad port"
 msgstr "port salah"
 
 # OK
-#: option.c:871
+#: option.c:878
 msgid "bad dhcp-range"
 msgstr "dhcp-range salah"
 
-#: option.c:900
+#: option.c:907
 msgid "only one netid tag allowed"
 msgstr ""
 
 # OK
-#: option.c:945
+#: option.c:952
 msgid "inconsistent DHCP range"
 msgstr "jangkauan DHCP tidak konsisten"
 
 # OK
-#: option.c:1130
+#: option.c:1137
 msgid "bad dhcp-host"
 msgstr "dhcp-host salah"
 
 # OK
-#: option.c:1191
+#: option.c:1198
 msgid "bad dhcp-option"
 msgstr "dhcp-option salah"
 
 # OK
-#: option.c:1209
+#: option.c:1216
 msgid "bad domain in dhcp-option"
 msgstr "domain dalam dhcp-option salah"
 
 # OK
-#: option.c:1379
+#: option.c:1386
 msgid "dhcp-option too long"
 msgstr "dhcp-option terlalu panjang"
 
 # OK
-#: option.c:1576
+#: option.c:1583
 msgid "bad TXT record"
 msgstr "rekord TXT salah"
 
 # OK
-#: option.c:1608
+#: option.c:1615
 msgid "TXT record string too long"
 msgstr "string rekord TXT terlalu panjang"
 
 # OK
-#: option.c:1647
+#: option.c:1654
 msgid "bad SRV record"
 msgstr "rekord SRV salah"
 
 # OK
-#: option.c:1660
+#: option.c:1667
 msgid "bad SRV target"
 msgstr "target SRV salah"
 
 # OK
-#: option.c:1672
+#: option.c:1679
 msgid "invalid port number"
 msgstr "nomor port tidak benar"
 
 # OK
-#: option.c:1683
+#: option.c:1690
 msgid "invalid priority"
 msgstr "prioritas tidak benar"
 
 # OK
-#: option.c:1694
+#: option.c:1701
 msgid "invalid weight"
 msgstr "weight tidak benar"
 
-#: option.c:1725
+#: option.c:1732
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
 # OK
-#: option.c:1732
+#: option.c:1739
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "tidak bisa membaca %s: %s"
 
 # OK
-#: option.c:1774
+#: option.c:1781
 msgid "missing \""
 msgstr "kurang \""
 
 # OK
-#: option.c:1809
+#: option.c:1816
 msgid "error"
 msgstr "kesalahan"
 
 # OK
-#: option.c:1813
+#: option.c:1820
 msgid "bad option"
 msgstr "pilihan salah"
 
 # OK
-#: option.c:1877
+#: option.c:1884
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Dnsmasq versi %s  %s\n"
 
 # OK
-#: option.c:1878
+#: option.c:1885
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -595,13 +600,13 @@ msgstr ""
 "\n"
 
 # OK
-#: option.c:1879
+#: option.c:1886
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Perangkat lunak ini tersedia TANPA JAMINAN SEDIKITPUN.\n"
 
 # OK
-#: option.c:1880
+#: option.c:1887
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr ""
@@ -609,66 +614,61 @@ msgstr ""
 "membagikannya\n"
 
 # OK
-#: option.c:1881
+#: option.c:1888
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2.\n"
 msgstr "dengan aturan GNU General Public License, versi 2.\n"
 
-#: option.c:1892
+#: option.c:1899
 msgid "try --help"
 msgstr ""
 
-#: option.c:1894
+#: option.c:1901
 msgid "try -w"
 msgstr ""
 
 # OK
-#: option.c:1897
+#: option.c:1904
 #, fuzzy, c-format
 msgid "bad command line options: %s"
 msgstr "pilihan baris perintah salah: %s."
 
 # OK
-#: option.c:1948
+#: option.c:1955
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "tidak bisa mendapatkan host-name: %s"
 
 # OK
-#: option.c:1976
+#: option.c:1983
 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:1986
+#: option.c:1993
 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:1989
+#: option.c:1996
 #, fuzzy, c-format
 msgid "failed to read %s: %s"
 msgstr "gagal membaca %s: %m"
 
 # OK
-#: option.c:2007
+#: option.c:2014
 #, c-format
 msgid "no search directive found in %s"
 msgstr "tidak ditemukan direktif search di %s"
 
 # OK
-#: forward.c:371
+#: forward.c:370
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "nameserver %s menolak melakukan resolusi rekursif"
 
 # OK
-#: forward.c:878
-msgid "forwarding table overflow: check for server loops."
-msgstr "meneruskan tabel overflow: memeriksa apakah terjadi loop server."
-
-# OK
-#: isc.c:73 dnsmasq.c:480
+#: isc.c:73 dnsmasq.c:482
 #, c-format
 msgid "failed to access %s: %m"
 msgstr "gagal mengakses %s: %m"
@@ -680,7 +680,7 @@ msgid "failed to load %s: %m"
 msgstr "gagal memuat %S: %m"
 
 # OK
-#: isc.c:93 dnsmasq.c:502
+#: isc.c:93 dnsmasq.c:504
 #, c-format
 msgid "reading %s"
 msgstr "membaca %s"
@@ -699,7 +699,7 @@ msgstr ""
 "Mengabaikan lease DHCP untuk %s sebab terdapat bagian domain yang tidak sah"
 
 # OK
-#: network.c:315 dnsmasq.c:129
+#: network.c:315 dnsmasq.c:132
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr "gagal membuat socket: %s "
@@ -722,58 +722,58 @@ msgid "failed to listen on socket: %s"
 msgstr "gagal mendengarkan di socket: %s"
 
 # OK
-#: network.c:411
+#: network.c:419
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr "mengabaikan nameserver %s - antarmuka lokal"
 
 # OK
-#: network.c:420
+#: network.c:428
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %m"
 msgstr "mengabaikan nameserver %s - tak dapat membuat/mem-bind socket: %m"
 
 # OK
-#: network.c:434
+#: network.c:442
 msgid "domain"
 msgstr "domain"
 
 # OK
-#: network.c:436
+#: network.c:444
 msgid "unqualified"
 msgstr "tidak memenuhi syarat"
 
 # OK
-#: network.c:436
+#: network.c:444
 msgid "domains"
 msgstr "domain-domain"
 
 # OK
-#: network.c:439
+#: network.c:447
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr "menggunakan alamat lokal saja untuk %s %s"
 
 # OK
-#: network.c:441
+#: network.c:449
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr "menggunakan nameserver %s#%d untuk %s %s"
 
 # OK
-#: network.c:444
+#: network.c:452
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr "menggunakan nameserver %s#%d"
 
 # OK
-#: network.c:464
+#: network.c:472
 #, c-format
 msgid "failed to read %s: %m"
 msgstr "gagal membaca %s: %m"
 
 # OK
-#: dnsmasq.c:94
+#: dnsmasq.c:97
 msgid ""
 "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
 msgstr ""
@@ -781,124 +781,124 @@ msgstr ""
 "config.h"
 
 # OK
-#: dnsmasq.c:111
+#: dnsmasq.c:114
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "gagal mendapatkan daftar antarmuka: %s"
 
 # OK
-#: dnsmasq.c:119
+#: dnsmasq.c:122
 #, c-format
 msgid "unknown interface %s"
 msgstr "antarmuka tidak dikenal %s"
 
 # OK
-#: dnsmasq.c:125
+#: dnsmasq.c:128
 #, c-format
 msgid "no interface with address %s"
 msgstr "tidak ada antarmuka dengan alamat %s"
 
 # OK
-#: dnsmasq.c:144
+#: dnsmasq.c:147
 msgid "must set exactly one interface on broken systems without IP_RECVIF"
 msgstr ""
 "harus menyetel satu antarmuka saja pada sistem yang tidak benar dengan "
 "IP_RECVIF"
 
 # OK
-#: dnsmasq.c:157 dnsmasq.c:603
+#: dnsmasq.c:160 dnsmasq.c:609
 #, c-format
 msgid "DBus error: %s"
 msgstr "DBus error: %s"
 
 # OK
-#: dnsmasq.c:160
+#: dnsmasq.c:163
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr "DBus tidak tersedia: setel HAVE_DBUS dalam src/config.h"
 
 # OK
-#: dnsmasq.c:191
+#: dnsmasq.c:194
 #, fuzzy, c-format
 msgid "cannot create pipe: %s"
 msgstr "tidak bisa membaca %s: %s"
 
 # OK
-#: dnsmasq.c:341
+#: dnsmasq.c:337
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "dimulai, versi %s ukuran cache %d"
 
 # OK
-#: dnsmasq.c:343
+#: dnsmasq.c:339
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "dimulai, cache versi %s di disable"
 
 # OK
-#: dnsmasq.c:345
+#: dnsmasq.c:341
 #, c-format
 msgid "compile time options: %s"
 msgstr "pilihan-pilihan saat kompilasi: %s"
 
 # OK
-#: dnsmasq.c:351
+#: dnsmasq.c:347
 msgid "DBus support enabled: connected to system bus"
 msgstr "dukungan DBus dimungkinkan: terkoneksi pada bus sistem"
 
 # OK
-#: dnsmasq.c:353
+#: dnsmasq.c:349
 msgid "DBus support enabled: bus connection pending"
 msgstr "dukungan DBus dimungkinkan: koneksi bus ditunda"
 
 # OK
-#: dnsmasq.c:358
+#: dnsmasq.c:354
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "setelan opsi --bind-interfaces disebabkan keterbatasan OS"
 
 # OK
-#: dnsmasq.c:363
+#: dnsmasq.c:359
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "peringatan: antarmuka %s tidak ada"
 
-#: dnsmasq.c:368
+#: dnsmasq.c:364
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
 # OK
-#: dnsmasq.c:382
+#: dnsmasq.c:378
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr "DHCP, lease static pada %.0s%s, waktu lease %s"
 
 # OK
-#: dnsmasq.c:383
+#: dnsmasq.c:379
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, jangkaun IP %s -- %s, waktu lease %s"
 
-#: dnsmasq.c:393
+#: dnsmasq.c:389
 #, c-format
 msgid "warning: setting capabilities failed: %m"
 msgstr ""
 
 # OK
-#: dnsmasq.c:395
+#: dnsmasq.c:391
 msgid "running as root"
 msgstr "berjalan menggunakan root"
 
 # OK
-#: dnsmasq.c:511
+#: dnsmasq.c:515
 #, fuzzy, c-format
 msgid "no servers found in %s, will retry"
 msgstr "tidak ditemukan direktif search di %s"
 
-#: dnsmasq.c:551
+#: dnsmasq.c:574
 msgid "exiting on receipt of SIGTERM"
 msgstr "keluar karena menerima SIGTERM"
 
 # OK
-#: dnsmasq.c:605
+#: dnsmasq.c:611
 msgid "connected to system DBus"
 msgstr "terhubung ke sistem DBus"
 
@@ -939,31 +939,31 @@ msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "alamat IP kembar %s dalam direktif dhcp-config"
 
 # OK
-#: dhcp.c:318
+#: dhcp.c:317
 #, 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:635
+#: dhcp.c:634
 #, c-format
 msgid "failed to read %s:%m"
 msgstr "gagal membaca %s:%m"
 
 # OK
-#: dhcp.c:670
+#: dhcp.c:669
 #, fuzzy, c-format
 msgid "bad line at %s line %d"
 msgstr "kesalahan nama pada %s baris %d"
 
 # OK
-#: dhcp.c:779
+#: dhcp.c:776
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "alamat IP kembar %s (%s) dalam direktif dhcp-config"
 
 # OK
-#: dhcp.c:815
+#: dhcp.c:812
 #, c-format
 msgid "Ignoring DHCP host name %s because it has an illegal domain part"
 msgstr ""
@@ -998,125 +998,119 @@ msgid "failed to write %s: %s (retry in %us)"
 msgstr "gagal membaca %s: %m"
 
 # OK
-#: lease.c:522
-#, fuzzy, c-format
-msgid "failed to execute %s: %m"
-msgstr "gagal mengakses %s: %m"
-
-# OK
-#: rfc2131.c:247
+#: rfc2131.c:261
 #, 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:248
+#: rfc2131.c:262
 msgid "with subnet selector"
 msgstr "dengan pemilih subnet"
 
 # OK
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "via"
 msgstr "lewat"
 
 # OK
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:288 rfc2131.c:312
 msgid "disabled"
 msgstr "di disable"
 
 # OK
-#: rfc2131.c:310 rfc2131.c:741
+#: rfc2131.c:324 rfc2131.c:759
 msgid "address in use"
 msgstr "alamat telah digunakan"
 
 # OK
-#: rfc2131.c:313
+#: rfc2131.c:327
 msgid "no address configured"
 msgstr "tak ada alamat yang disetel"
 
 # OK
-#: rfc2131.c:326 rfc2131.c:613
+#: rfc2131.c:340 rfc2131.c:631
 msgid "no address available"
 msgstr "tak ada alamat yang tersedia"
 
 # OK
-#: rfc2131.c:335 rfc2131.c:748
+#: rfc2131.c:349 rfc2131.c:767
 msgid "no leases left"
 msgstr "tak ada lease yang tersisa"
 
 # OK
-#: rfc2131.c:338 rfc2131.c:715
+#: rfc2131.c:352 rfc2131.c:733
 msgid "wrong network"
 msgstr "jaringan yang salah"
 
 # OK
-#: rfc2131.c:542
+#: rfc2131.c:559
 #, fuzzy, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "men-disable alamat statik DHCP %s"
 
 # OK
-#: rfc2131.c:562
+#: rfc2131.c:580
 msgid "unknown lease"
 msgstr "lease tidak diketahui"
 
 # OK
-#: rfc2131.c:571 rfc2131.c:813
+#: rfc2131.c:589 rfc2131.c:862
 msgid "ignored"
 msgstr "diabaikan"
 
-#: rfc2131.c:587
+#: rfc2131.c:605
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:596
+#: rfc2131.c:614
 #, c-format
 msgid ""
 "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:599
+#: rfc2131.c:617
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
 # OK
-#: rfc2131.c:678
+#: rfc2131.c:696
 msgid "wrong address"
 msgstr "alamat salah"
 
 # OK
-#: rfc2131.c:691
+#: rfc2131.c:709
 msgid "lease not found"
 msgstr "lease tak ditemukan"
 
 # OK
-#: rfc2131.c:723
+#: rfc2131.c:741
 msgid "address not available"
 msgstr "alamat tak tersedia"
 
 # OK
-#: rfc2131.c:734
+#: rfc2131.c:752
 msgid "static lease available"
 msgstr "lease statik tak tersedia"
 
 # OK
-#: rfc2131.c:738
+#: rfc2131.c:756
 msgid "address reserved"
 msgstr "alamat telah dipesan"
 
-#: rfc2131.c:744
+#: rfc2131.c:762
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:945
+#: rfc2131.c:1000
 #, c-format
 msgid "cannot send DHCP option %d: no space left in packet"
 msgstr ""
 
 # OK
-#: rfc2131.c:1246
+#: rfc2131.c:1301
 #, c-format
 msgid "More than one vendor class matches, using %s"
 msgstr "Lebih dari satu kelas vendor yang sesuai, menggunakan %s"
@@ -1163,6 +1157,26 @@ msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr ""
 "permintaan DHCP untuk tipe hardware yang tidak didukung (%d) diterima pada %s"
 
+#: helper.c:145
+#, c-format
+msgid "child process killed by signal %d"
+msgstr ""
+
+#: helper.c:147
+#, c-format
+msgid "child process exited with status %d"
+msgstr ""
+
+# OK
+#: helper.c:216
+#, fuzzy, c-format
+msgid "failed to execute %s: %m"
+msgstr "gagal mengakses %s: %m"
+
+# OK
+#~ msgid "forwarding table overflow: check for server loops."
+#~ msgstr "meneruskan tabel overflow: memeriksa apakah terjadi loop server."
+
 # OK
 #~ msgid "nested includes not allowed"
 #~ msgstr "includes bersarang tidak diijinkan"
index bde25dff40c2ba131b4f54b903998495702bc208..e7aed87a3fc0049ec50eb3f6421eeca191779115 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.32\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-04 11:57+0100\n"
+"POT-Creation-Date: 2006-10-13 18:20+0100\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"
@@ -15,45 +15,45 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: cache.c:570
+#: cache.c:606
 #, c-format
 msgid "failed to load names from %s: %m"
 msgstr ""
 
-#: cache.c:606 dhcp.c:683
+#: cache.c:642 dhcp.c:682
 #, c-format
 msgid "bad address at %s line %d"
 msgstr ""
 
-#: cache.c:633 dhcp.c:697
+#: cache.c:669 dhcp.c:696
 #, c-format
 msgid "bad name at %s line %d"
 msgstr ""
 
-#: cache.c:639 dhcp.c:751
+#: cache.c:675 dhcp.c:750
 #, c-format
 msgid "read %s - %d addresses"
 msgstr ""
 
-#: cache.c:675
+#: cache.c:711
 msgid "cleared cache"
 msgstr ""
 
-#: cache.c:728
+#: cache.c:764
 #, c-format
 msgid ""
 "not giving name %s to the DHCP lease of %s because the name exists in %s "
 "with address %s"
 msgstr ""
 
-#: cache.c:772
+#: cache.c:808
 #, c-format
 msgid ""
 "time %lu, cache size %d, %d/%d cache insertions re-used unexpired cache "
 "entries."
 msgstr ""
 
-#: util.c:153 option.c:1214
+#: util.c:153 option.c:1221
 msgid "could not get memory"
 msgstr ""
 
@@ -71,479 +71,480 @@ msgstr ""
 msgid "infinite"
 msgstr ""
 
-#: option.c:141
+#: option.c:147
 msgid "Specify local address(es) to listen on."
 msgstr ""
 
-#: option.c:142
+#: option.c:148
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr ""
 
-#: option.c:143
+#: option.c:149
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr ""
 
-#: option.c:144
+#: option.c:150
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr ""
 
-#: option.c:145
+#: option.c:151
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr ""
 
-#: option.c:146
+#: option.c:152
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr ""
 
-#: option.c:147
+#: option.c:153
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr ""
 
-#: option.c:148
+#: option.c:154
 msgid "Do NOT forward queries with no domain part."
 msgstr ""
 
-#: option.c:149
+#: option.c:155
 msgid "Return self-pointing MX records for local hosts."
 msgstr ""
 
-#: option.c:150
+#: option.c:156
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr ""
 
-#: option.c:151
+#: option.c:157
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr ""
 
-#: option.c:152
+#: option.c:158
 msgid "Enable DHCP in the range given with lease duration."
 msgstr ""
 
-#: option.c:153
+#: option.c:159
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr ""
 
-#: option.c:154
+#: option.c:160
 msgid "Set address or hostname for a specified machine."
 msgstr ""
 
-#: option.c:155
+#: option.c:161
 #, c-format
 msgid "Do NOT load %s file."
 msgstr ""
 
-#: option.c:156
+#: option.c:162
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr ""
 
-#: option.c:157
+#: option.c:163
 msgid "Specify interface(s) to listen on."
 msgstr ""
 
-#: option.c:158
+#: option.c:164
 msgid "Specify interface(s) NOT to listen on."
 msgstr ""
 
-#: option.c:159
+#: option.c:165
 msgid "Map DHCP user class to option set."
 msgstr ""
 
-#: option.c:160
+#: option.c:166
 msgid "Don't do DHCP for hosts in option set."
 msgstr ""
 
-#: option.c:161
+#: option.c:167
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr ""
 
-#: option.c:162
+#: option.c:168
 msgid "Assume we are the only DHCP server on the local network."
 msgstr ""
 
-#: option.c:163
+#: option.c:169
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr ""
 
-#: option.c:164
+#: option.c:170
 msgid "Return MX records for local hosts."
 msgstr ""
 
-#: option.c:165
+#: option.c:171
 msgid "Specify an MX record."
 msgstr ""
 
-#: option.c:166
+#: option.c:172
 msgid "Specify BOOTP options to DHCP server."
 msgstr ""
 
-#: option.c:167
+#: option.c:173
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr ""
 
-#: option.c:168
+#: option.c:174
 msgid "Do NOT cache failed search results."
 msgstr ""
 
-#: option.c:169
+#: option.c:175
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr ""
 
-#: option.c:170
+#: option.c:176
 msgid "Set extra options to be set to DHCP clients."
 msgstr ""
 
-#: option.c:171
+#: option.c:177
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr ""
 
-#: option.c:172
+#: option.c:178
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr ""
 
-#: option.c:173
+#: option.c:179
 msgid "Log queries."
 msgstr ""
 
-#: option.c:174
+#: option.c:180
 msgid "Force the originating port for upstream queries."
 msgstr ""
 
-#: option.c:175
+#: option.c:181
 msgid "Do NOT read resolv.conf."
 msgstr ""
 
-#: option.c:176
+#: option.c:182
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr ""
 
-#: option.c:177
+#: option.c:183
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr ""
 
-#: option.c:178
+#: option.c:184
 msgid "Never forward queries to specified domains."
 msgstr ""
 
-#: option.c:179
+#: option.c:185
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr ""
 
-#: option.c:180
+#: option.c:186
 msgid "Specify default target in an MX record."
 msgstr ""
 
-#: option.c:181
+#: option.c:187
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr ""
 
-#: option.c:182
+#: option.c:188
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr ""
 
-#: option.c:183
+#: option.c:189
 msgid "Map DHCP vendor class to option set."
 msgstr ""
 
-#: option.c:184
+#: option.c:190
 msgid "Display dnsmasq version and copyright information."
 msgstr ""
 
-#: option.c:185
+#: option.c:191
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr ""
 
-#: option.c:186
+#: option.c:192
 msgid "Specify a SRV record."
 msgstr ""
 
-#: option.c:187
+#: option.c:193
 msgid "Display this message."
 msgstr ""
 
-#: option.c:188
+#: option.c:194
 #, c-format
 msgid "Specify path of PID file. (defaults to %s)."
 msgstr ""
 
-#: option.c:189
+#: option.c:195
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr ""
 
-#: option.c:190
+#: option.c:196
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr ""
 
-#: option.c:191
+#: option.c:197
 msgid "Specify TXT DNS record."
 msgstr ""
 
-#: option.c:192
+#: option.c:198
 msgid "Bind only to interfaces in use."
 msgstr ""
 
-#: option.c:193
+#: option.c:199
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr ""
 
-#: option.c:194
+#: option.c:200
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr ""
 
-#: option.c:195
+#: option.c:201
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr ""
 
-#: option.c:196
+#: option.c:202
 msgid "Enable dynamic address allocation for bootp."
 msgstr ""
 
-#: option.c:197
+#: option.c:203
 msgid "Map MAC address (with wildcards) to option set."
 msgstr ""
 
-#: option.c:198
+#: option.c:204
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 
-#: option.c:199
+#: option.c:205
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 
-#: option.c:200
+#: option.c:206
 msgid "Read configuration from all the files in this directory."
 msgstr ""
 
-#: option.c:201
+#: option.c:207
 msgid "Log to this syslog facility. (defaults to DAEMON)"
 msgstr ""
 
-#: option.c:202
+#: option.c:208
 msgid "Read leases at startup, but never write the lease file."
 msgstr ""
 
-#: option.c:203
+#: option.c:209
 #, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr ""
 
-#: option.c:316
+#: option.c:210
+#, c-format
+msgid "Clear DNS cache when reloading %s."
+msgstr ""
+
+#: option.c:323
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
 "\n"
 msgstr ""
 
-#: option.c:318
+#: option.c:325
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr ""
 
-#: option.c:320
+#: option.c:327
 #, c-format
 msgid "Valid options are :\n"
 msgstr ""
 
-#: option.c:355
+#: option.c:362
 msgid "extraneous parameter"
 msgstr ""
 
-#: option.c:359
+#: option.c:366
 msgid "missing parameter"
 msgstr ""
 
-#: option.c:381
+#: option.c:388
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr ""
 
-#: option.c:400
+#: option.c:407
 #, c-format
 msgid "cannot access %s: %s"
 msgstr ""
 
-#: option.c:477
+#: option.c:484
 msgid "bad MX preference"
 msgstr ""
 
-#: option.c:486
+#: option.c:493
 msgid "bad MX name"
 msgstr ""
 
-#: option.c:504
+#: option.c:511
 msgid "bad MX target"
 msgstr ""
 
-#: option.c:516
+#: option.c:523
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:715 option.c:726
+#: option.c:722 option.c:733
 msgid "bad port"
 msgstr ""
 
-#: option.c:871
+#: option.c:878
 msgid "bad dhcp-range"
 msgstr ""
 
-#: option.c:900
+#: option.c:907
 msgid "only one netid tag allowed"
 msgstr ""
 
-#: option.c:945
+#: option.c:952
 msgid "inconsistent DHCP range"
 msgstr ""
 
-#: option.c:1130
+#: option.c:1137
 msgid "bad dhcp-host"
 msgstr ""
 
-#: option.c:1191
+#: option.c:1198
 msgid "bad dhcp-option"
 msgstr ""
 
-#: option.c:1209
+#: option.c:1216
 msgid "bad domain in dhcp-option"
 msgstr ""
 
-#: option.c:1379
+#: option.c:1386
 msgid "dhcp-option too long"
 msgstr ""
 
-#: option.c:1576
+#: option.c:1583
 msgid "bad TXT record"
 msgstr ""
 
-#: option.c:1608
+#: option.c:1615
 msgid "TXT record string too long"
 msgstr ""
 
-#: option.c:1647
+#: option.c:1654
 msgid "bad SRV record"
 msgstr ""
 
-#: option.c:1660
+#: option.c:1667
 msgid "bad SRV target"
 msgstr ""
 
-#: option.c:1672
+#: option.c:1679
 msgid "invalid port number"
 msgstr ""
 
-#: option.c:1683
+#: option.c:1690
 msgid "invalid priority"
 msgstr ""
 
-#: option.c:1694
+#: option.c:1701
 msgid "invalid weight"
 msgstr ""
 
-#: option.c:1725
+#: option.c:1732
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
-#: option.c:1732
+#: option.c:1739
 #, c-format
 msgid "cannot read %s: %s"
 msgstr ""
 
-#: option.c:1774
+#: option.c:1781
 msgid "missing \""
 msgstr ""
 
-#: option.c:1809
+#: option.c:1816
 msgid "error"
 msgstr ""
 
-#: option.c:1813
+#: option.c:1820
 msgid "bad option"
 msgstr ""
 
-#: option.c:1877
+#: option.c:1884
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr ""
 
-#: option.c:1878
+#: option.c:1885
 #, c-format
 msgid ""
 "Compile time options %s\n"
 "\n"
 msgstr ""
 
-#: option.c:1879
+#: option.c:1886
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr ""
 
-#: option.c:1880
+#: option.c:1887
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr ""
 
-#: option.c:1881
+#: option.c:1888
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2.\n"
 msgstr ""
 
-#: option.c:1892
+#: option.c:1899
 msgid "try --help"
 msgstr ""
 
-#: option.c:1894
+#: option.c:1901
 msgid "try -w"
 msgstr ""
 
-#: option.c:1897
+#: option.c:1904
 #, c-format
 msgid "bad command line options: %s"
 msgstr ""
 
-#: option.c:1948
+#: option.c:1955
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr ""
 
-#: option.c:1976
+#: option.c:1983
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr ""
 
-#: option.c:1986
+#: option.c:1993
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr ""
 
-#: option.c:1989
+#: option.c:1996
 #, c-format
 msgid "failed to read %s: %s"
 msgstr ""
 
-#: option.c:2007
+#: option.c:2014
 #, c-format
 msgid "no search directive found in %s"
 msgstr ""
 
-#: forward.c:371
+#: forward.c:370
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr ""
 
-#: forward.c:878
-msgid "forwarding table overflow: check for server loops."
-msgstr ""
-
-#: isc.c:73 dnsmasq.c:480
+#: isc.c:73 dnsmasq.c:482
 #, c-format
 msgid "failed to access %s: %m"
 msgstr ""
@@ -553,7 +554,7 @@ msgstr ""
 msgid "failed to load %s: %m"
 msgstr ""
 
-#: isc.c:93 dnsmasq.c:502
+#: isc.c:93 dnsmasq.c:504
 #, c-format
 msgid "reading %s"
 msgstr ""
@@ -568,7 +569,7 @@ msgstr ""
 msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
 msgstr ""
 
-#: network.c:315 dnsmasq.c:129
+#: network.c:315 dnsmasq.c:132
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr ""
@@ -588,151 +589,151 @@ msgstr ""
 msgid "failed to listen on socket: %s"
 msgstr ""
 
-#: network.c:411
+#: network.c:419
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr ""
 
-#: network.c:420
+#: network.c:428
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %m"
 msgstr ""
 
-#: network.c:434
+#: network.c:442
 msgid "domain"
 msgstr ""
 
-#: network.c:436
+#: network.c:444
 msgid "unqualified"
 msgstr ""
 
-#: network.c:436
+#: network.c:444
 msgid "domains"
 msgstr ""
 
-#: network.c:439
+#: network.c:447
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr ""
 
-#: network.c:441
+#: network.c:449
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr ""
 
-#: network.c:444
+#: network.c:452
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr ""
 
-#: network.c:464
+#: network.c:472
 #, c-format
 msgid "failed to read %s: %m"
 msgstr ""
 
-#: dnsmasq.c:94
+#: dnsmasq.c:97
 msgid ""
 "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:111
+#: dnsmasq.c:114
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr ""
 
-#: dnsmasq.c:119
+#: dnsmasq.c:122
 #, c-format
 msgid "unknown interface %s"
 msgstr ""
 
-#: dnsmasq.c:125
+#: dnsmasq.c:128
 #, c-format
 msgid "no interface with address %s"
 msgstr ""
 
-#: dnsmasq.c:144
+#: dnsmasq.c:147
 msgid "must set exactly one interface on broken systems without IP_RECVIF"
 msgstr ""
 
-#: dnsmasq.c:157 dnsmasq.c:603
+#: dnsmasq.c:160 dnsmasq.c:609
 #, c-format
 msgid "DBus error: %s"
 msgstr ""
 
-#: dnsmasq.c:160
+#: dnsmasq.c:163
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:191
+#: dnsmasq.c:194
 #, c-format
 msgid "cannot create pipe: %s"
 msgstr ""
 
-#: dnsmasq.c:341
+#: dnsmasq.c:337
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr ""
 
-#: dnsmasq.c:343
+#: dnsmasq.c:339
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr ""
 
-#: dnsmasq.c:345
+#: dnsmasq.c:341
 #, c-format
 msgid "compile time options: %s"
 msgstr ""
 
-#: dnsmasq.c:351
+#: dnsmasq.c:347
 msgid "DBus support enabled: connected to system bus"
 msgstr ""
 
-#: dnsmasq.c:353
+#: dnsmasq.c:349
 msgid "DBus support enabled: bus connection pending"
 msgstr ""
 
-#: dnsmasq.c:358
+#: dnsmasq.c:354
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr ""
 
-#: dnsmasq.c:363
+#: dnsmasq.c:359
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr ""
 
-#: dnsmasq.c:368
+#: dnsmasq.c:364
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:382
+#: dnsmasq.c:378
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:383
+#: dnsmasq.c:379
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:393
+#: dnsmasq.c:389
 #, c-format
 msgid "warning: setting capabilities failed: %m"
 msgstr ""
 
-#: dnsmasq.c:395
+#: dnsmasq.c:391
 msgid "running as root"
 msgstr ""
 
-#: dnsmasq.c:511
+#: dnsmasq.c:515
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr ""
 
-#: dnsmasq.c:551
+#: dnsmasq.c:574
 msgid "exiting on receipt of SIGTERM"
 msgstr ""
 
-#: dnsmasq.c:605
+#: dnsmasq.c:611
 msgid "connected to system DBus"
 msgstr ""
 
@@ -766,27 +767,27 @@ msgstr ""
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr ""
 
-#: dhcp.c:318
+#: dhcp.c:317
 #, c-format
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr ""
 
-#: dhcp.c:635
+#: dhcp.c:634
 #, c-format
 msgid "failed to read %s:%m"
 msgstr ""
 
-#: dhcp.c:670
+#: dhcp.c:669
 #, c-format
 msgid "bad line at %s line %d"
 msgstr ""
 
-#: dhcp.c:779
+#: dhcp.c:776
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr ""
 
-#: dhcp.c:815
+#: dhcp.c:812
 #, c-format
 msgid "Ignoring DHCP host name %s because it has an illegal domain part"
 msgstr ""
@@ -815,107 +816,102 @@ msgstr ""
 msgid "failed to write %s: %s (retry in %us)"
 msgstr ""
 
-#: lease.c:522
-#, c-format
-msgid "failed to execute %s: %m"
-msgstr ""
-
-#: rfc2131.c:247
+#: rfc2131.c:261
 #, c-format
 msgid "no address range available for DHCP request %s %s"
 msgstr ""
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "with subnet selector"
 msgstr ""
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "via"
 msgstr ""
 
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:288 rfc2131.c:312
 msgid "disabled"
 msgstr ""
 
-#: rfc2131.c:310 rfc2131.c:741
+#: rfc2131.c:324 rfc2131.c:759
 msgid "address in use"
 msgstr ""
 
-#: rfc2131.c:313
+#: rfc2131.c:327
 msgid "no address configured"
 msgstr ""
 
-#: rfc2131.c:326 rfc2131.c:613
+#: rfc2131.c:340 rfc2131.c:631
 msgid "no address available"
 msgstr ""
 
-#: rfc2131.c:335 rfc2131.c:748
+#: rfc2131.c:349 rfc2131.c:767
 msgid "no leases left"
 msgstr ""
 
-#: rfc2131.c:338 rfc2131.c:715
+#: rfc2131.c:352 rfc2131.c:733
 msgid "wrong network"
 msgstr ""
 
-#: rfc2131.c:542
+#: rfc2131.c:559
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr ""
 
-#: rfc2131.c:562
+#: rfc2131.c:580
 msgid "unknown lease"
 msgstr ""
 
-#: rfc2131.c:571 rfc2131.c:813
+#: rfc2131.c:589 rfc2131.c:862
 msgid "ignored"
 msgstr ""
 
-#: rfc2131.c:587
+#: rfc2131.c:605
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:596
+#: rfc2131.c:614
 #, c-format
 msgid ""
 "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:599
+#: rfc2131.c:617
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:678
+#: rfc2131.c:696
 msgid "wrong address"
 msgstr ""
 
-#: rfc2131.c:691
+#: rfc2131.c:709
 msgid "lease not found"
 msgstr ""
 
-#: rfc2131.c:723
+#: rfc2131.c:741
 msgid "address not available"
 msgstr ""
 
-#: rfc2131.c:734
+#: rfc2131.c:752
 msgid "static lease available"
 msgstr ""
 
-#: rfc2131.c:738
+#: rfc2131.c:756
 msgid "address reserved"
 msgstr ""
 
-#: rfc2131.c:744
+#: rfc2131.c:762
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:945
+#: rfc2131.c:1000
 #, c-format
 msgid "cannot send DHCP option %d: no space left in packet"
 msgstr ""
 
-#: rfc2131.c:1246
+#: rfc2131.c:1301
 #, c-format
 msgid "More than one vendor class matches, using %s"
 msgstr ""
@@ -951,3 +947,18 @@ msgstr ""
 #, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr ""
+
+#: helper.c:145
+#, c-format
+msgid "child process killed by signal %d"
+msgstr ""
+
+#: helper.c:147
+#, c-format
+msgid "child process exited with status %d"
+msgstr ""
+
+#: helper.c:216
+#, c-format
+msgid "failed to execute %s: %m"
+msgstr ""
index ada6b347368d7f807b1964de7fe7de1e3c566c0f..c2b4545d7594ee278144057838cd58cdd61bc393 100644 (file)
--- a/po/no.po
+++ b/po/no.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.25\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-04 11:57+0100\n"
+"POT-Creation-Date: 2006-10-13 18:20+0100\n"
 "PO-Revision-Date: 2006-01-11 17:39+0000\n"
 "Last-Translator: Jan Erik Askildt <jeaskildt@gmail.com>\n"
 "Language-Team: Norwegian <i18n-nb@lister.ping.uio.no>\n"
@@ -17,31 +17,31 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: cache.c:570
+#: cache.c:606
 #, c-format
 msgid "failed to load names from %s: %m"
 msgstr "feilet Ã¥ laste navn fra %s: %m"
 
-#: cache.c:606 dhcp.c:683
+#: cache.c:642 dhcp.c:682
 #, c-format
 msgid "bad address at %s line %d"
 msgstr "dÃ¥rlig adresse ved %s linje %d"
 
-#: cache.c:633 dhcp.c:697
+#: cache.c:669 dhcp.c:696
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "dÃ¥rlig navn ved %s linje %d"
 
-#: cache.c:639 dhcp.c:751
+#: cache.c:675 dhcp.c:750
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "les %s - %d adresser"
 
-#: cache.c:675
+#: cache.c:711
 msgid "cleared cache"
 msgstr "mellomlager tømt"
 
-#: cache.c:728
+#: cache.c:764
 #, c-format
 msgid ""
 "not giving name %s to the DHCP lease of %s because the name exists in %s "
@@ -50,7 +50,7 @@ msgstr ""
 "gir ikke navnet %s til DHCP leien for %s fordi navnet eksisterer i %s med "
 "adressen %s"
 
-#: cache.c:772
+#: cache.c:808
 #, fuzzy, c-format
 msgid ""
 "time %lu, cache size %d, %d/%d cache insertions re-used unexpired cache "
@@ -59,7 +59,7 @@ msgstr ""
 "mellomlager størrelse %d, %d/%d mellomlager innsettinger re-bruker "
 "mellomlager plasser som ikke er utløpt"
 
-#: util.c:153 option.c:1214
+#: util.c:153 option.c:1221
 msgid "could not get memory"
 msgstr "kunne ikke fÃ¥ minne"
 
@@ -77,276 +77,281 @@ msgstr "FEILET 
 msgid "infinite"
 msgstr "uendelig"
 
-#: option.c:141
+#: option.c:147
 msgid "Specify local address(es) to listen on."
 msgstr "Spesifiser lokal(e) adresse(r) Ã¥ lytte pÃ¥."
 
-#: option.c:142
+#: option.c:148
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr "Returner ipaddr for alle verter i det spesifiserte domenet."
 
-#: option.c:143
+#: option.c:149
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr "Forfalsk revers oppslag for RFC1918 private adresse omrÃ¥der."
 
-#: option.c:144
+#: option.c:150
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr "Behandle ipaddr som NXDOMAIN (omgÃ¥r Verisign wildcard)."
 
-#: option.c:145
+#: option.c:151
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr "Spesifiser størrelsen pÃ¥ mellomlager plassene (standard er %s)."
 
-#: option.c:146
+#: option.c:152
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr "Spesifiser konfigurasjonsfil (standard er %s)."
 
-#: option.c:147
+#: option.c:153
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr "IKKE legg (fork) som bakgrunnsprosess: kjør i debug modus."
 
-#: option.c:148
+#: option.c:154
 msgid "Do NOT forward queries with no domain part."
 msgstr "IKKE videresend oppslag som mangler domene del."
 
-#: option.c:149
+#: option.c:155
 msgid "Return self-pointing MX records for local hosts."
 msgstr "Returner selv-pekende MX post for lokale verter."
 
-#: option.c:150
+#: option.c:156
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr "Utvid enkle navn i /etc/hosts med domene-suffiks."
 
-#: option.c:151
+#: option.c:157
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr "Ikke videresend falske/uekte DNS forespørsler fra Windows verter."
 
-#: option.c:152
+#: option.c:158
 msgid "Enable DHCP in the range given with lease duration."
 msgstr "Aktiver DHCP i det gitte omrÃ¥det med leie varighet"
 
-#: option.c:153
+#: option.c:159
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr "Skift til denne gruppen etter oppstart (standard er %s)."
 
-#: option.c:154
+#: option.c:160
 msgid "Set address or hostname for a specified machine."
 msgstr "Sett adresse eller vertsnavn for en spesifikk maskin."
 
-#: option.c:155
+#: option.c:161
 #, c-format
 msgid "Do NOT load %s file."
 msgstr "IKKE last %s filen."
 
-#: option.c:156
+#: option.c:162
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr "Spesifiser en verts (hosts) fil som skal leses i tilleg til %s."
 
-#: option.c:157
+#: option.c:163
 msgid "Specify interface(s) to listen on."
 msgstr "Spesifiser nettverkskort det skal lyttes pÃ¥."
 
-#: option.c:158
+#: option.c:164
 msgid "Specify interface(s) NOT to listen on."
 msgstr "Spesifiser nettverkskort det IKKE skal lyttes pÃ¥."
 
-#: option.c:159
+#: option.c:165
 msgid "Map DHCP user class to option set."
 msgstr "Map DHCP bruker klasse til opsjon sett."
 
-#: option.c:160
+#: option.c:166
 msgid "Don't do DHCP for hosts in option set."
 msgstr "Ikke utfør DHCP for klienter i opsjon sett."
 
-#: option.c:161
+#: option.c:167
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr "IKKE last (fork) som bakgrunnsprosess, IKKE kjør i debug modus."
 
-#: option.c:162
+#: option.c:168
 msgid "Assume we are the only DHCP server on the local network."
 msgstr "Anta at vi er den eneste DHCP tjeneren pÃ¥ det lokale nettverket."
 
-#: option.c:163
+#: option.c:169
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr "Spesifiser hvor DHCP leiene skal lagres (standard er %s)."
 
-#: option.c:164
+#: option.c:170
 msgid "Return MX records for local hosts."
 msgstr "Returner MX records for lokale verter."
 
-#: option.c:165
+#: option.c:171
 msgid "Specify an MX record."
 msgstr "Spesifiser en MX post."
 
-#: option.c:166
+#: option.c:172
 msgid "Specify BOOTP options to DHCP server."
 msgstr "Spesifiser BOOTP opsjoner til DHCP tjener."
 
-#: option.c:167
+#: option.c:173
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr "IKKE spør (poll) %s fil, les pÃ¥ nytt kun ved SIGHUP"
 
-#: option.c:168
+#: option.c:174
 msgid "Do NOT cache failed search results."
 msgstr "IKKE mellomlagre søkeresultater som feiler."
 
-#: option.c:169
+#: option.c:175
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr "Bruk navnetjenere kun som bestemt i rekkefølgen gitt i %s."
 
-#: option.c:170
+#: option.c:176
 msgid "Set extra options to be set to DHCP clients."
 msgstr "Sett ekstra opsjoner som skal fordeles til DHCP klientene."
 
-#: option.c:171
+#: option.c:177
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr "Spesifiser lytteport for DNS oppslag (standard er 53)."
 
-#: option.c:172
+#: option.c:178
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr "Maksimal støttet UDP pakkestørrelse for EDNS.0 (standard er %s)."
 
-#: option.c:173
+#: option.c:179
 msgid "Log queries."
 msgstr "Logg oppslag."
 
-#: option.c:174
+#: option.c:180
 msgid "Force the originating port for upstream queries."
 msgstr "Tving bruk av opprinnelig port for oppstrøms oppslag."
 
-#: option.c:175
+#: option.c:181
 msgid "Do NOT read resolv.conf."
 msgstr "IKKE les resolv.conf."
 
-#: option.c:176
+#: option.c:182
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr "Spesifiser stien til resolv.conf (standard er %s)."
 
-#: option.c:177
+#: option.c:183
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr "Spesifiser adressen(e) til oppstrøms tjenere med valgfrie domener."
 
-#: option.c:178
+#: option.c:184
 msgid "Never forward queries to specified domains."
 msgstr "Aldri videresend oppslag til spesifiserte domener."
 
-#: option.c:179
+#: option.c:185
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr "Spesifiser domenet som skal tildeles i DHCP leien."
 
-#: option.c:180
+#: option.c:186
 msgid "Specify default target in an MX record."
 msgstr "Spesifiser default mÃ¥l i en MX post."
 
-#: option.c:181
+#: option.c:187
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr "Spesifiser time-to-live i sekunder for svar fra /etc/hosts."
 
-#: option.c:182
+#: option.c:188
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr "Skift til denne bruker etter oppstart (standard er %s)."
 
-#: option.c:183
+#: option.c:189
 msgid "Map DHCP vendor class to option set."
 msgstr "Map DHCP produsent klasse til opsjon sett."
 
-#: option.c:184
+#: option.c:190
 msgid "Display dnsmasq version and copyright information."
 msgstr "Vis dnsmasq versjon og copyright informasjon."
 
-#: option.c:185
+#: option.c:191
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr "Oversett IPv4 adresser fra oppstrøms tjenere."
 
-#: option.c:186
+#: option.c:192
 msgid "Specify a SRV record."
 msgstr "Spesifiser en SRV post."
 
-#: option.c:187
+#: option.c:193
 msgid "Display this message."
 msgstr "Vis denne meldingen."
 
-#: option.c:188
+#: option.c:194
 #, c-format
 msgid "Specify path of PID file. (defaults to %s)."
 msgstr "Spesifiser stien til PID fil. (standard er %s)."
 
-#: option.c:189
+#: option.c:195
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
 
-#: option.c:190
+#: option.c:196
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr "Svar DNS oppslag basert pÃ¥ nettverkskortet oppslaget ble sendt til."
 
-#: option.c:191
+#: option.c:197
 msgid "Specify TXT DNS record."
 msgstr "Spesifiser TXT DNS post."
 
-#: option.c:192
+#: option.c:198
 msgid "Bind only to interfaces in use."
 msgstr "Bind kun til nettverkskort som er i bruk."
 
-#: option.c:193
+#: option.c:199
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr "Les DHCP statisk vert informasjon fra %s."
 
-#: option.c:194
+#: option.c:200
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr "Aktiver DBus interface for Ã¥ sette oppstrøms tjenere, osv."
 
-#: option.c:195
+#: option.c:201
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr "Ikke lever DHCP pÃ¥ dette nettverkskortet, kun lever DNS."
 
-#: option.c:196
+#: option.c:202
 msgid "Enable dynamic address allocation for bootp."
 msgstr "Aktiver dynamisk adresse allokering for bootp."
 
-#: option.c:197
+#: option.c:203
 #, fuzzy
 msgid "Map MAC address (with wildcards) to option set."
 msgstr "Map DHCP produsent klasse til opsjon sett."
 
-#: option.c:198
+#: option.c:204
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 
-#: option.c:199
+#: option.c:205
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 
-#: option.c:200
+#: option.c:206
 msgid "Read configuration from all the files in this directory."
 msgstr ""
 
-#: option.c:201
+#: option.c:207
 #, fuzzy
 msgid "Log to this syslog facility. (defaults to DAEMON)"
 msgstr "Skift til denne bruker etter oppstart (standard er %s)."
 
-#: option.c:202
+#: option.c:208
 msgid "Read leases at startup, but never write the lease file."
 msgstr ""
 
-#: option.c:203
+#: option.c:209
 #, fuzzy, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr "Spesifiser maksimum antall DHCP leier (standard er %s)"
 
-#: option.c:316
+#: option.c:210
+#, c-format
+msgid "Clear DNS cache when reloading %s."
+msgstr ""
+
+#: option.c:323
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -355,138 +360,138 @@ msgstr ""
 "Bruk: dnsmasq [opsjoner]\n"
 "\n"
 
-#: option.c:318
+#: option.c:325
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr "Bruk korte opsjoner kun pÃ¥ kommandolinjen.\n"
 
-#: option.c:320
+#: option.c:327
 #, c-format
 msgid "Valid options are :\n"
 msgstr "Gyldige opsjoner er :\n"
 
-#: option.c:355
+#: option.c:362
 msgid "extraneous parameter"
 msgstr "overflødig parameter"
 
-#: option.c:359
+#: option.c:366
 msgid "missing parameter"
 msgstr "mangler parameter"
 
-#: option.c:381
+#: option.c:388
 #, fuzzy, c-format
 msgid "cannot access directory %s: %s"
 msgstr "kan ikke lese %s: %s"
 
-#: option.c:400
+#: option.c:407
 #, fuzzy, c-format
 msgid "cannot access %s: %s"
 msgstr "kan ikke lese %s: %s"
 
-#: option.c:477
+#: option.c:484
 msgid "bad MX preference"
 msgstr "dÃ¥rlig MX preferanse"
 
-#: option.c:486
+#: option.c:493
 msgid "bad MX name"
 msgstr "dÃ¥rlig MX navn"
 
-#: option.c:504
+#: option.c:511
 msgid "bad MX target"
 msgstr "dÃ¥rlig MX mÃ¥l"
 
-#: option.c:516
+#: option.c:523
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:715 option.c:726
+#: option.c:722 option.c:733
 msgid "bad port"
 msgstr "dÃ¥rlig port"
 
-#: option.c:871
+#: option.c:878
 msgid "bad dhcp-range"
 msgstr "dÃ¥rlig dhcp-omrÃ¥de"
 
-#: option.c:900
+#: option.c:907
 msgid "only one netid tag allowed"
 msgstr ""
 
-#: option.c:945
+#: option.c:952
 msgid "inconsistent DHCP range"
 msgstr "ikke konsistent DHCP omrÃ¥de"
 
-#: option.c:1130
+#: option.c:1137
 msgid "bad dhcp-host"
 msgstr "dÃ¥rlig dhcp-vert"
 
-#: option.c:1191
+#: option.c:1198
 msgid "bad dhcp-option"
 msgstr "dÃ¥rlig dhcp-opsjon"
 
-#: option.c:1209
+#: option.c:1216
 msgid "bad domain in dhcp-option"
 msgstr "dÃ¥rlig domene i dhcp-opsjon"
 
-#: option.c:1379
+#: option.c:1386
 msgid "dhcp-option too long"
 msgstr "dhcp-opsjon for lang"
 
-#: option.c:1576
+#: option.c:1583
 msgid "bad TXT record"
 msgstr "dÃ¥rlig TXT post"
 
-#: option.c:1608
+#: option.c:1615
 msgid "TXT record string too long"
 msgstr "TXT post streng for lang"
 
-#: option.c:1647
+#: option.c:1654
 msgid "bad SRV record"
 msgstr "dÃ¥rlig SRV post"
 
-#: option.c:1660
+#: option.c:1667
 msgid "bad SRV target"
 msgstr "dÃ¥rlig SRV mÃ¥l"
 
-#: option.c:1672
+#: option.c:1679
 msgid "invalid port number"
 msgstr "ugyldig portnummer"
 
-#: option.c:1683
+#: option.c:1690
 msgid "invalid priority"
 msgstr "ugyldig prioritet"
 
-#: option.c:1694
+#: option.c:1701
 msgid "invalid weight"
 msgstr "ugyldig vekt"
 
-#: option.c:1725
+#: option.c:1732
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
-#: option.c:1732
+#: option.c:1739
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "kan ikke lese %s: %s"
 
-#: option.c:1774
+#: option.c:1781
 msgid "missing \""
 msgstr "mangler \""
 
-#: option.c:1809
+#: option.c:1816
 msgid "error"
 msgstr "feil"
 
-#: option.c:1813
+#: option.c:1820
 msgid "bad option"
 msgstr "dÃ¥rlig opsjon"
 
-#: option.c:1877
+#: option.c:1884
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Dnsmasq versjon %s %s\n"
 
-#: option.c:1878
+#: option.c:1885
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -495,67 +500,63 @@ msgstr ""
 "Kompileringsopsjoner %s\n"
 "\n"
 
-#: option.c:1879
+#: option.c:1886
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Denne programvaren kommer med ABSOLUTT INGEN GARANTI.\n"
 
-#: option.c:1880
+#: option.c:1887
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr "DNsmasq er fri programvare, du er velkommen til Ã¥ redistribuere den\n"
 
-#: option.c:1881
+#: option.c:1888
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2.\n"
 msgstr "under vilkÃ¥rene gitt i GNU General Public License, versjon 2.\n"
 
-#: option.c:1892
+#: option.c:1899
 msgid "try --help"
 msgstr ""
 
-#: option.c:1894
+#: option.c:1901
 msgid "try -w"
 msgstr ""
 
-#: option.c:1897
+#: option.c:1904
 #, fuzzy, c-format
 msgid "bad command line options: %s"
 msgstr "dÃ¥rlige kommandlinje opsjoner: %s."
 
-#: option.c:1948
+#: option.c:1955
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "klarer ikke Ã¥ fÃ¥ vertsnavn: %s"
 
-#: option.c:1976
+#: option.c:1983
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr "kun en resolv.conf fil tillat i no-poll modus."
 
-#: option.c:1986
+#: option.c:1993
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr "mÃ¥ ha nøyaktig en resolv.conf Ã¥ lese domene fra."
 
-#: option.c:1989
+#: option.c:1996
 #, fuzzy, c-format
 msgid "failed to read %s: %s"
 msgstr "feilet Ã¥ lese %s: %m"
 
-#: option.c:2007
+#: option.c:2014
 #, c-format
 msgid "no search directive found in %s"
 msgstr "intet søke direktiv funnet i %s"
 
-#: forward.c:371
+#: forward.c:370
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "navnetjener %s nektet Ã¥ gjøre et rekursivt oppslag"
 
-#: forward.c:878
-msgid "forwarding table overflow: check for server loops."
-msgstr "fremsendelse (forwarding) tabell overflyt: sjekk etter tjener løkker."
-
-#: isc.c:73 dnsmasq.c:480
+#: isc.c:73 dnsmasq.c:482
 #, c-format
 msgid "failed to access %s: %m"
 msgstr "feilet Ã¥ fÃ¥ tilgang til %s: %m"
@@ -565,7 +566,7 @@ msgstr "feilet 
 msgid "failed to load %s: %m"
 msgstr "feilet Ã¥ laste %s: %m"
 
-#: isc.c:93 dnsmasq.c:502
+#: isc.c:93 dnsmasq.c:504
 #, c-format
 msgid "reading %s"
 msgstr "leser %s"
@@ -580,7 +581,7 @@ msgstr "d
 msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
 msgstr "Ignorerer DHCP leie for %s siden den har en ulovlig domene del"
 
-#: network.c:315 dnsmasq.c:129
+#: network.c:315 dnsmasq.c:132
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr "feilet Ã¥ lage lytte socket: %s"
@@ -600,152 +601,152 @@ msgstr "feilet 
 msgid "failed to listen on socket: %s"
 msgstr "feilet Ã¥ lytte pÃ¥ socket: %s"
 
-#: network.c:411
+#: network.c:419
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr "ignorerer navnetjener %s - lokal tilknytning"
 
-#: network.c:420
+#: network.c:428
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %m"
 msgstr "ignorerer navnetjener %s - kan ikke lage/dinde socket: %m"
 
-#: network.c:434
+#: network.c:442
 msgid "domain"
 msgstr "domene"
 
-#: network.c:436
+#: network.c:444
 msgid "unqualified"
 msgstr "ikke kvalifisert"
 
-#: network.c:436
+#: network.c:444
 msgid "domains"
 msgstr "domener"
 
-#: network.c:439
+#: network.c:447
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr "benytter lokale adresser kun for %s %s"
 
-#: network.c:441
+#: network.c:449
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr "benytter navnetjener %s#%d for %s %s"
 
-#: network.c:444
+#: network.c:452
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr "benytter navnetjener %s#%d"
 
-#: network.c:464
+#: network.c:472
 #, c-format
 msgid "failed to read %s: %m"
 msgstr "feilet Ã¥ lese %s: %m"
 
-#: dnsmasq.c:94
+#: dnsmasq.c:97
 msgid ""
 "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
 msgstr ""
 "ISC dhcpf integrasjon ikke tilgjengelig: sett HAVE_ISC_READER i src/config.h"
 
-#: dnsmasq.c:111
+#: dnsmasq.c:114
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "feilet Ã¥ finne liste av tilknytninger (interfaces): %s"
 
-#: dnsmasq.c:119
+#: dnsmasq.c:122
 #, c-format
 msgid "unknown interface %s"
 msgstr "ukjent tilknytning (interface) %s"
 
-#: dnsmasq.c:125
+#: dnsmasq.c:128
 #, c-format
 msgid "no interface with address %s"
 msgstr "ingen tilknytning (interface) med adresse %s"
 
-#: dnsmasq.c:144
+#: dnsmasq.c:147
 msgid "must set exactly one interface on broken systems without IP_RECVIF"
 msgstr "mÃ¥ sette nøyaktig et interface pÃ¥ Ã¸delagte systemer uten IP_RECVIF"
 
-#: dnsmasq.c:157 dnsmasq.c:603
+#: dnsmasq.c:160 dnsmasq.c:609
 #, c-format
 msgid "DBus error: %s"
 msgstr "DBus feil: %s"
 
-#: dnsmasq.c:160
+#: dnsmasq.c:163
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr "DBus ikke tilgjengelig: sett HAVE_DBUS i src/config.h"
 
-#: dnsmasq.c:191
+#: dnsmasq.c:194
 #, fuzzy, c-format
 msgid "cannot create pipe: %s"
 msgstr "kan ikke lese %s: %s"
 
-#: dnsmasq.c:341
+#: dnsmasq.c:337
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "startet, versjon %s mellomlager størrelse %d"
 
-#: dnsmasq.c:343
+#: dnsmasq.c:339
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "startet, versjon %s mellomlager deaktivert"
 
-#: dnsmasq.c:345
+#: dnsmasq.c:341
 #, c-format
 msgid "compile time options: %s"
 msgstr "kompilerings opsjoner: %s"
 
-#: dnsmasq.c:351
+#: dnsmasq.c:347
 msgid "DBus support enabled: connected to system bus"
 msgstr "DBus støtte aktivert: koblet til system buss"
 
-#: dnsmasq.c:353
+#: dnsmasq.c:349
 msgid "DBus support enabled: bus connection pending"
 msgstr "DBus støtte aktivert: avventer buss tilkobling"
 
-#: dnsmasq.c:358
+#: dnsmasq.c:354
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "setter --bind-interfaces opsjon pÃ¥ grunn av OS begrensninger"
 
-#: dnsmasq.c:363
+#: dnsmasq.c:359
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "advarsel: nettverkskort %s eksisterer ikke for tiden"
 
-#: dnsmasq.c:368
+#: dnsmasq.c:364
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:382
+#: dnsmasq.c:378
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr "DHCP, statisk leie kun pÃ¥ %.0s%s, leie tid %s"
 
-#: dnsmasq.c:383
+#: dnsmasq.c:379
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, IP omrÃ¥de %s -- %s, leie tid %s"
 
-#: dnsmasq.c:393
+#: dnsmasq.c:389
 #, c-format
 msgid "warning: setting capabilities failed: %m"
 msgstr ""
 
-#: dnsmasq.c:395
+#: dnsmasq.c:391
 msgid "running as root"
 msgstr "kjører som rot (root)"
 
-#: dnsmasq.c:511
+#: dnsmasq.c:515
 #, fuzzy, c-format
 msgid "no servers found in %s, will retry"
 msgstr "intet søke direktiv funnet i %s"
 
-#: dnsmasq.c:551
+#: dnsmasq.c:574
 msgid "exiting on receipt of SIGTERM"
 msgstr "avslutter etter mottak av SIGTERM"
 
-#: dnsmasq.c:605
+#: dnsmasq.c:611
 msgid "connected to system DBus"
 msgstr "tilkoblet til system DBus"
 
@@ -779,27 +780,27 @@ msgstr "kan ikke lage ICMP raw socket: %s"
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "dubliserte IP adresser i %s dhcp-config direktiv."
 
-#: dhcp.c:318
+#: dhcp.c:317
 #, c-format
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr "DHCP omrÃ¥de %s -- %s er ikke konsistent med nettmaske %s"
 
-#: dhcp.c:635
+#: dhcp.c:634
 #, c-format
 msgid "failed to read %s:%m"
 msgstr "feilet Ã¥ lese %s:%m"
 
-#: dhcp.c:670
+#: dhcp.c:669
 #, c-format
 msgid "bad line at %s line %d"
 msgstr "dÃ¥rlig linje ved %s linje %d"
 
-#: dhcp.c:779
+#: dhcp.c:776
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "dubliserte IP adresser i %s (%s) i dhcp-config direktiv"
 
-#: dhcp.c:815
+#: dhcp.c:812
 #, c-format
 msgid "Ignoring DHCP host name %s because it has an illegal domain part"
 msgstr "Ignorerer DHCP verts navn %s pÃ¥ grunn av ulovlig domene del"
@@ -828,107 +829,102 @@ msgstr ""
 msgid "failed to write %s: %s (retry in %us)"
 msgstr "feilet Ã¥ lese %s: %m"
 
-#: lease.c:522
-#, fuzzy, c-format
-msgid "failed to execute %s: %m"
-msgstr "feilet Ã¥ fÃ¥ tilgang til %s: %m"
-
-#: rfc2131.c:247
+#: rfc2131.c:261
 #, c-format
 msgid "no address range available for DHCP request %s %s"
 msgstr "ingen adresse omrÃ¥de tilgjengelig for DHCP krav %s %s"
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "with subnet selector"
 msgstr "med subnet velger"
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "via"
 msgstr "via"
 
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:288 rfc2131.c:312
 msgid "disabled"
 msgstr "deaktivert"
 
-#: rfc2131.c:310 rfc2131.c:741
+#: rfc2131.c:324 rfc2131.c:759
 msgid "address in use"
 msgstr "adresse i bruk"
 
-#: rfc2131.c:313
+#: rfc2131.c:327
 msgid "no address configured"
 msgstr "ingen adresse konfigurert"
 
-#: rfc2131.c:326 rfc2131.c:613
+#: rfc2131.c:340 rfc2131.c:631
 msgid "no address available"
 msgstr "ingen adresse tilgjengelig"
 
-#: rfc2131.c:335 rfc2131.c:748
+#: rfc2131.c:349 rfc2131.c:767
 msgid "no leases left"
 msgstr "ingen leier igjen"
 
-#: rfc2131.c:338 rfc2131.c:715
+#: rfc2131.c:352 rfc2131.c:733
 msgid "wrong network"
 msgstr "galt nettverk"
 
-#: rfc2131.c:542
+#: rfc2131.c:559
 #, fuzzy, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "deaktiverer DHCP statisk adresse %s"
 
-#: rfc2131.c:562
+#: rfc2131.c:580
 msgid "unknown lease"
 msgstr "ukjent leie"
 
-#: rfc2131.c:571 rfc2131.c:813
+#: rfc2131.c:589 rfc2131.c:862
 msgid "ignored"
 msgstr "oversett"
 
-#: rfc2131.c:587
+#: rfc2131.c:605
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:596
+#: rfc2131.c:614
 #, c-format
 msgid ""
 "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:599
+#: rfc2131.c:617
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:678
+#: rfc2131.c:696
 msgid "wrong address"
 msgstr "gal adresse"
 
-#: rfc2131.c:691
+#: rfc2131.c:709
 msgid "lease not found"
 msgstr "leie ikke funnet"
 
-#: rfc2131.c:723
+#: rfc2131.c:741
 msgid "address not available"
 msgstr "adresse ikke tilgjengelig"
 
-#: rfc2131.c:734
+#: rfc2131.c:752
 msgid "static lease available"
 msgstr "statisk leie tilgjengelig"
 
-#: rfc2131.c:738
+#: rfc2131.c:756
 msgid "address reserved"
 msgstr "adresse reservert"
 
-#: rfc2131.c:744
+#: rfc2131.c:762
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:945
+#: rfc2131.c:1000
 #, c-format
 msgid "cannot send DHCP option %d: no space left in packet"
 msgstr "kan ikke sende DHCP opsjon %d: ikke mer plass i pakken"
 
-#: rfc2131.c:1246
+#: rfc2131.c:1301
 #, c-format
 msgid "More than one vendor class matches, using %s"
 msgstr "Mer enn en produsent klasse som passer, bruker %s"
@@ -965,6 +961,25 @@ msgstr "kan ikke lage DHCP BPF socket: %s"
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "DHCP krav for ikke støttet maskinvare type (%d) mottatt pÃ¥ %s"
 
+#: helper.c:145
+#, c-format
+msgid "child process killed by signal %d"
+msgstr ""
+
+#: helper.c:147
+#, c-format
+msgid "child process exited with status %d"
+msgstr ""
+
+#: helper.c:216
+#, fuzzy, c-format
+msgid "failed to execute %s: %m"
+msgstr "feilet Ã¥ fÃ¥ tilgang til %s: %m"
+
+#~ msgid "forwarding table overflow: check for server loops."
+#~ msgstr ""
+#~ "fremsendelse (forwarding) tabell overflyt: sjekk etter tjener løkker."
+
 #~ msgid "nested includes not allowed"
 #~ msgstr "nøstede inkluderinger er ikke tillatt"
 
index c555a5a47eb6c9ccbcd906f085e51059ad618313..17f78afe98b5e2a54dac377f6a39e00052e25b3c 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.24\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-04 11:57+0100\n"
+"POT-Creation-Date: 2006-10-13 18:20+0100\n"
 "PO-Revision-Date: 2005-10-04 19:17+0100\n"
 "Last-Translator: Tomasz Sochañski <nerdhero@gmail.com>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -16,31 +16,31 @@ msgstr ""
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2);\n"
 
-#: cache.c:570
+#: cache.c:606
 #, c-format
 msgid "failed to load names from %s: %m"
 msgstr "b³±d Â³adowania nazw z %s: %m"
 
-#: cache.c:606 dhcp.c:683
+#: cache.c:642 dhcp.c:682
 #, fuzzy, c-format
 msgid "bad address at %s line %d"
 msgstr "b³êdna nazwa w %s, linia %d"
 
-#: cache.c:633 dhcp.c:697
+#: cache.c:669 dhcp.c:696
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "b³êdna nazwa w %s, linia %d"
 
-#: cache.c:639 dhcp.c:751
+#: cache.c:675 dhcp.c:750
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "przeczytano %s - %d adresów"
 
-#: cache.c:675
+#: cache.c:711
 msgid "cleared cache"
 msgstr "wyczyszczono cache"
 
-#: cache.c:728
+#: cache.c:764
 #, c-format
 msgid ""
 "not giving name %s to the DHCP lease of %s because the name exists in %s "
@@ -49,7 +49,7 @@ msgstr ""
 "nazwa %s nie zosta³a nadana dzier¿awie DHCP %s, poniewa¿ nazwa istnieje w %s "
 "i ma adres %s"
 
-#: cache.c:772
+#: cache.c:808
 #, fuzzy, c-format
 msgid ""
 "time %lu, cache size %d, %d/%d cache insertions re-used unexpired cache "
@@ -57,7 +57,7 @@ msgid ""
 msgstr ""
 "wielko¶æ cache %d, %d/%d wpisów cache u¿yto ponownie z niewygas³ych wpisów"
 
-#: util.c:153 option.c:1214
+#: util.c:153 option.c:1221
 msgid "could not get memory"
 msgstr "nie mo¿na pobraæ pamiêci"
 
@@ -75,287 +75,292 @@ msgstr "B
 msgid "infinite"
 msgstr "nieskoñczona"
 
-#: option.c:141
+#: option.c:147
 msgid "Specify local address(es) to listen on."
 msgstr "Adres(y) lokalne do nas³uchiwania."
 
-#: option.c:142
+#: option.c:148
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr "Zwracanie adresu IP dla wszystkich hostów w podanych domenach."
 
-#: option.c:143
+#: option.c:149
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr "Symulacja reverse lookups dla adresów prywatnych opisanych w RFC1918."
 
-#: option.c:144
+#: option.c:150
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr "Adres IP traktowany jak NXDOMAIN"
 
-#: option.c:145
+#: option.c:151
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr "Wielko¶æ pamiêci cache we wpisach (domy¶lna: %s)"
 
-#: option.c:146
+#: option.c:152
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr "¦cie¿ka do pliku konfiguracyjnego (domy¶lna: %s)"
 
-#: option.c:147
+#: option.c:153
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr "NIE twórz procesu potomnego w tle: dzia³anie w trybie debugowania."
 
-#: option.c:148
+#: option.c:154
 msgid "Do NOT forward queries with no domain part."
 msgstr "Wy³±czenie przekazywania zapytañ bez czê¶ci domenowej."
 
-#: option.c:149
+#: option.c:155
 msgid "Return self-pointing MX records for local hosts."
 msgstr "Zwracanie samowskazuj±cego rekordu MX dla lokalnych hostów."
 
-#: option.c:150
+#: option.c:156
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr "Rozwijanie prostych nazw z /etc/hosts przyrostkiem domenowym."
 
-#: option.c:151
+#: option.c:157
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr "Wy³±czenie przekazywania pozornych zapytañ DNS z komputerów Windows"
 
-#: option.c:152
+#: option.c:158
 msgid "Enable DHCP in the range given with lease duration."
 msgstr "Enable DHCP w zakresie okre¶lonym czasem dzier¿awy."
 
-#: option.c:153
+#: option.c:159
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr "Po starcie zmiana grupy procesu na podan± (domy¶lnie: %s)."
 
-#: option.c:154
+#: option.c:160
 msgid "Set address or hostname for a specified machine."
 msgstr "Ustawienie adresu lub nazwy hosta dla okre¶lonej maszyny."
 
-#: option.c:155
+#: option.c:161
 #, c-format
 msgid "Do NOT load %s file."
 msgstr "Ignorowanie pliku %s."
 
-#: option.c:156
+#: option.c:162
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr "Dodatkowy plik hostów poza %s."
 
-#: option.c:157
+#: option.c:163
 msgid "Specify interface(s) to listen on."
 msgstr "Interfejs(y) do nas³uchiwania."
 
-#: option.c:158
+#: option.c:164
 msgid "Specify interface(s) NOT to listen on."
 msgstr "Interfejs(y), na których nie nas³uchiwaæ."
 
-#: option.c:159
+#: option.c:165
 msgid "Map DHCP user class to option set."
 msgstr "W³±czenie mapowania klasy u¿ytkownika DHCP do option set."
 
-#: option.c:160
+#: option.c:166
 msgid "Don't do DHCP for hosts in option set."
 msgstr ""
 "Wy³±czenie odpowiadania na Â¿adania DHCP hostów okre¶lonych w option set"
 
-#: option.c:161
+#: option.c:167
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr ""
 "Wy³±czenie tworzenia procesu potomnego w tle, wy³±czenie dzia³ania w trybie "
 "debug."
 
-#: option.c:162
+#: option.c:168
 msgid "Assume we are the only DHCP server on the local network."
 msgstr "Za³o¿enie, Â¿e jeste¶my jedynym serwerem DHCP w sieci lokalnej."
 
-#: option.c:163
+#: option.c:169
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr "¦cie¿ka przechowywania pliku dzier¿aw DHCP (domy¶lna: %s)"
 
-#: option.c:164
+#: option.c:170
 msgid "Return MX records for local hosts."
 msgstr "W³±czenie zwracania rekord MX dla hostów lokalnych."
 
-#: option.c:165
+#: option.c:171
 msgid "Specify an MX record."
 msgstr "Specyfikacja rekordu MX."
 
-#: option.c:166
+#: option.c:172
 msgid "Specify BOOTP options to DHCP server."
 msgstr "Okre¶lenie opcji BOOTP serwera DHCP."
 
-#: option.c:167
+#: option.c:173
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr ""
 "Wy³aczenie analizy pliku %s, ponownie Â³adowanie tylko po otrzymaniu sygna³u "
 "HUP"
 
-#: option.c:168
+#: option.c:174
 msgid "Do NOT cache failed search results."
 msgstr ""
 "Wy³±czenie zapisywania w pamiêci podrêcznej nieudanych wyników wyszukiwania."
 
-#: option.c:169
+#: option.c:175
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr "W³±czenie u¿ywania serwerów nazw w kolejno¶ci podanej w %s."
 
-#: option.c:170
+#: option.c:176
 msgid "Set extra options to be set to DHCP clients."
 msgstr "Dodatkowe opcje ustawieñ dla klientów DHCP."
 
-#: option.c:171
+#: option.c:177
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr "Port nas³uchiwania zapytañ DNS (domy¶lnie: 53)."
 
-#: option.c:172
+#: option.c:178
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr "Maksymalna obs³ugiwana wielko¶æ pakietu EDNS.0 (domy¶lnie: %s)."
 
-#: option.c:173
+#: option.c:179
 msgid "Log queries."
 msgstr "Zapytania zapisywane w pliku log."
 
-#: option.c:174
+#: option.c:180
 msgid "Force the originating port for upstream queries."
 msgstr ""
 
-#: option.c:175
+#: option.c:181
 msgid "Do NOT read resolv.conf."
 msgstr "Wy³±czenie czytania pliku resolv.conf"
 
-#: option.c:176
+#: option.c:182
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr "Podaj Â¶cie¿kê do pliku resolv.conf (domy¶lnie: %s)."
 
-#: option.c:177
+#: option.c:183
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr ""
 
-#: option.c:178
+#: option.c:184
 msgid "Never forward queries to specified domains."
 msgstr "Wy³±czenie przekazywania zapytañ do okre¶lonych domen."
 
-#: option.c:179
+#: option.c:185
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr "Nazwa domeny, która bêdzie przypisana w dzier¿awach DHCP."
 
-#: option.c:180
+#: option.c:186
 msgid "Specify default target in an MX record."
 msgstr "Okre¶lenie domy¶lnego celu w rekordzie MX."
 
-#: option.c:181
+#: option.c:187
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr ""
 "Okre¶lenie czasu wa¿no¶ci (time-to-live) w sekundach odpowiedzi branych z /"
 "etc/hosts."
 
-#: option.c:182
+#: option.c:188
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr "Po starcie zmiana u¿ytkownika procesu na podanego. (domy¶lnie: %s)."
 
-#: option.c:183
+#: option.c:189
 msgid "Map DHCP vendor class to option set."
 msgstr "Mapowanie nazwy dystrybutora DHCP do ustawieñ opcji."
 
-#: option.c:184
+#: option.c:190
 msgid "Display dnsmasq version and copyright information."
 msgstr ""
 "W³±czenie pokazywania wersji dnsmasq i informacji o ochronie praw autorskich."
 
-#: option.c:185
+#: option.c:191
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr ""
 
-#: option.c:186
+#: option.c:192
 msgid "Specify a SRV record."
 msgstr "Okre¶lenie rekordu SRV."
 
-#: option.c:187
+#: option.c:193
 msgid "Display this message."
 msgstr "Wy¶wietlenie tych informacji."
 
-#: option.c:188
+#: option.c:194
 #, c-format
 msgid "Specify path of PID file. (defaults to %s)."
 msgstr "Okre¶lenie Â¶cie¿ki do pliku PID. (domy¶lnie: %s)."
 
-#: option.c:189
+#: option.c:195
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr "Maksymalna liczba dzier¿aw DHCP. (domy¶lnie: %s)."
 
-#: option.c:190
+#: option.c:196
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr ""
 "Odpowiedzi na zapytania DNS uzale¿nione od interfejsu, który odebra³ "
 "zapytanie."
 
-#: option.c:191
+#: option.c:197
 msgid "Specify TXT DNS record."
 msgstr "Rekord TXT DNS."
 
-#: option.c:192
+#: option.c:198
 msgid "Bind only to interfaces in use."
 msgstr "W³±czenie nas³uchiwania tylko na u¿ywanych interfejsach."
 
-#: option.c:193
+#: option.c:199
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr "Statycznych informacji DHCP hosta z pliku %s."
 
-#: option.c:194
+#: option.c:200
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr ""
 
-#: option.c:195
+#: option.c:201
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr "Wy³±czenie DHCP na tym interfejsie, w³±czenie tylko DNS."
 
-#: option.c:196
+#: option.c:202
 msgid "Enable dynamic address allocation for bootp."
 msgstr "W³±czenie automatycznej alokacji adresu dla BOOTP."
 
-#: option.c:197
+#: option.c:203
 #, fuzzy
 msgid "Map MAC address (with wildcards) to option set."
 msgstr "Mapowanie nazwy dystrybutora DHCP do ustawieñ opcji."
 
-#: option.c:198
+#: option.c:204
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 
-#: option.c:199
+#: option.c:205
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 
-#: option.c:200
+#: option.c:206
 msgid "Read configuration from all the files in this directory."
 msgstr ""
 
-#: option.c:201
+#: option.c:207
 #, fuzzy
 msgid "Log to this syslog facility. (defaults to DAEMON)"
 msgstr "Po starcie zmiana u¿ytkownika procesu na podanego. (domy¶lnie: %s)."
 
-#: option.c:202
+#: option.c:208
 msgid "Read leases at startup, but never write the lease file."
 msgstr ""
 
-#: option.c:203
+#: option.c:209
 #, fuzzy, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr "Maksymalna liczba dzier¿aw DHCP. (domy¶lnie: %s)."
 
-#: option.c:316
+#: option.c:210
+#, c-format
+msgid "Clear DNS cache when reloading %s."
+msgstr ""
+
+#: option.c:323
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -364,138 +369,138 @@ msgstr ""
 "U¿ycie: dnsmasq [opcje]\n"
 "\n"
 
-#: option.c:318
+#: option.c:325
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr "Tylko krótkie opcje w linii komend.\n"
 
-#: option.c:320
+#: option.c:327
 #, c-format
 msgid "Valid options are :\n"
 msgstr "Obs³ugiwane opcje:\n"
 
-#: option.c:355
+#: option.c:362
 msgid "extraneous parameter"
 msgstr "dodatkowy parametr"
 
-#: option.c:359
+#: option.c:366
 msgid "missing parameter"
 msgstr "brak parametru"
 
-#: option.c:381
+#: option.c:388
 #, fuzzy, c-format
 msgid "cannot access directory %s: %s"
 msgstr "b³±d odczytu z %s: %s"
 
-#: option.c:400
+#: option.c:407
 #, fuzzy, c-format
 msgid "cannot access %s: %s"
 msgstr "b³±d odczytu z %s: %s"
 
-#: option.c:477
+#: option.c:484
 msgid "bad MX preference"
 msgstr ""
 
-#: option.c:486
+#: option.c:493
 msgid "bad MX name"
 msgstr "b³êdna nazwa MX"
 
-#: option.c:504
+#: option.c:511
 msgid "bad MX target"
 msgstr "b³êdny cel MX"
 
-#: option.c:516
+#: option.c:523
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:715 option.c:726
+#: option.c:722 option.c:733
 msgid "bad port"
 msgstr "nieprawid³owy port"
 
-#: option.c:871
+#: option.c:878
 msgid "bad dhcp-range"
 msgstr "nieprawid³owy zakres dhcp-range"
 
-#: option.c:900
+#: option.c:907
 msgid "only one netid tag allowed"
 msgstr ""
 
-#: option.c:945
+#: option.c:952
 msgid "inconsistent DHCP range"
 msgstr "niespójny zakres DHCP"
 
-#: option.c:1130
+#: option.c:1137
 msgid "bad dhcp-host"
 msgstr "b³±d w dhcp-host"
 
-#: option.c:1191
+#: option.c:1198
 msgid "bad dhcp-option"
 msgstr "b³±d w dhcp-option"
 
-#: option.c:1209
+#: option.c:1216
 msgid "bad domain in dhcp-option"
 msgstr "nieprawid³owa nazwa domeny w dhcp-option"
 
-#: option.c:1379
+#: option.c:1386
 msgid "dhcp-option too long"
 msgstr "zbyt d³uga nazwa w dhcp-option"
 
-#: option.c:1576
+#: option.c:1583
 msgid "bad TXT record"
 msgstr "nieprawid³owy rekord TX"
 
-#: option.c:1608
+#: option.c:1615
 msgid "TXT record string too long"
 msgstr "zbyt d³ugi rekord TXT"
 
-#: option.c:1647
+#: option.c:1654
 msgid "bad SRV record"
 msgstr "b³±d w rekordzie SRV"
 
-#: option.c:1660
+#: option.c:1667
 msgid "bad SRV target"
 msgstr "nieprawid³owy cel SRV"
 
-#: option.c:1672
+#: option.c:1679
 msgid "invalid port number"
 msgstr "nieprawid³owy port"
 
-#: option.c:1683
+#: option.c:1690
 msgid "invalid priority"
 msgstr "nieprawid³owy priorytet"
 
-#: option.c:1694
+#: option.c:1701
 msgid "invalid weight"
 msgstr "nieprawid³owe znaczenie"
 
-#: option.c:1725
+#: option.c:1732
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
-#: option.c:1732
+#: option.c:1739
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "b³±d odczytu z %s: %s"
 
-#: option.c:1774
+#: option.c:1781
 msgid "missing \""
 msgstr "brakuje \""
 
-#: option.c:1809
+#: option.c:1816
 msgid "error"
 msgstr "b³±d"
 
-#: option.c:1813
+#: option.c:1820
 msgid "bad option"
 msgstr "nieprawid³owa opcja"
 
-#: option.c:1877
+#: option.c:1884
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "Dnsmasq, wersja %s %s\n"
 
-#: option.c:1878
+#: option.c:1885
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -504,68 +509,63 @@ msgstr ""
 "Wkompilowane opcje %s\n"
 "\n"
 
-#: option.c:1879
+#: option.c:1886
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Oprogramowanie to nie zawiera Â¿adnych gwarancji.\n"
 
-#: option.c:1880
+#: option.c:1887
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr "Dnsmasq jest wolnym oprogramowaniem, mo¿esz je rozprowadzaæ\n"
 
-#: option.c:1881
+#: option.c:1888
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2.\n"
 msgstr "na warunkach okre¶lonych w GNU General Public Licence, wersja 2.\n"
 
-#: option.c:1892
+#: option.c:1899
 msgid "try --help"
 msgstr ""
 
-#: option.c:1894
+#: option.c:1901
 msgid "try -w"
 msgstr ""
 
-#: option.c:1897
+#: option.c:1904
 #, fuzzy, c-format
 msgid "bad command line options: %s"
 msgstr "nieprawid³owa opcja linii komend: %s."
 
-#: option.c:1948
+#: option.c:1955
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "nie mo¿na pobraæ nazwy hosta: %s"
 
-#: option.c:1976
+#: option.c:1983
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr "tylko jeden plik resolv.conf jest dopuszczany w trybie no-poll."
 
-#: option.c:1986
+#: option.c:1993
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr "musisz mieæ dok³adnie jeden plik resolv.conf do odczytu domen."
 
-#: option.c:1989
+#: option.c:1996
 #, fuzzy, c-format
 msgid "failed to read %s: %s"
 msgstr "b³±d w odczycie %s: %m"
 
-#: option.c:2007
+#: option.c:2014
 #, c-format
 msgid "no search directive found in %s"
 msgstr "brak wytycznych wyszukiwania w %s"
 
-#: forward.c:371
+#: forward.c:370
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "serwer nazw %s odmawia wykonania zapytania rekursywnego"
 
-#: forward.c:878
-msgid "forwarding table overflow: check for server loops."
-msgstr ""
-"przekroczenie zakresu tablicy przekazywania: sprawd¼ zapêtlenie serwera."
-
-#: isc.c:73 dnsmasq.c:480
+#: isc.c:73 dnsmasq.c:482
 #, c-format
 msgid "failed to access %s: %m"
 msgstr "b³±d w dostêpie do %s: %m"
@@ -575,7 +575,7 @@ msgstr "b
 msgid "failed to load %s: %m"
 msgstr "b³±d Â³adowania %s: %m"
 
-#: isc.c:93 dnsmasq.c:502
+#: isc.c:93 dnsmasq.c:504
 #, c-format
 msgid "reading %s"
 msgstr "czytanie %s"
@@ -592,7 +592,7 @@ msgstr ""
 "Ignorujê dzier¿awy DHCP dla %s poniewa¿ zawieraj± nieprawid³ow± czê¶æ "
 "domenow±"
 
-#: network.c:315 dnsmasq.c:129
+#: network.c:315 dnsmasq.c:132
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr "b³±d podczas tworzenia gniazda: %s"
@@ -612,153 +612,153 @@ msgstr "b
 msgid "failed to listen on socket: %s"
 msgstr "b³±d w³±czenia nas³uchiwania gniazda: %s"
 
-#: network.c:411
+#: network.c:419
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr "ignorowanie serwera nazw %s - interfejs lokalny"
 
-#: network.c:420
+#: network.c:428
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %m"
 msgstr "ignorowanie serwera nazw %s - nie mo¿na utworzyæ/dowi±zaæ gniazda: %m"
 
-#: network.c:434
+#: network.c:442
 msgid "domain"
 msgstr "domena"
 
-#: network.c:436
+#: network.c:444
 msgid "unqualified"
 msgstr "niekwalifikowany(a/e)"
 
-#: network.c:436
+#: network.c:444
 msgid "domains"
 msgstr "domeny"
 
-#: network.c:439
+#: network.c:447
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr "w³±czenie u¿ywania lokalnych adresów tylko dla %s %s"
 
-#: network.c:441
+#: network.c:449
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr "u¿ywany serwer nazw: %s#%d dla %s %s"
 
-#: network.c:444
+#: network.c:452
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr "u¿ywany serwer nazw %s#%d"
 
-#: network.c:464
+#: network.c:472
 #, c-format
 msgid "failed to read %s: %m"
 msgstr "b³±d w odczycie %s: %m"
 
-#: dnsmasq.c:94
+#: dnsmasq.c:97
 msgid ""
 "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
 msgstr ""
 "Intergracja z ISC dhcpd nie jest dostêpna: ustaw HAVE_ISC_READER w src/"
 "config.h"
 
-#: dnsmasq.c:111
+#: dnsmasq.c:114
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "b³±d w znalezieniu listy interfejsów sieciowych: %s"
 
-#: dnsmasq.c:119
+#: dnsmasq.c:122
 #, c-format
 msgid "unknown interface %s"
 msgstr "nieznany interfejs %s"
 
-#: dnsmasq.c:125
+#: dnsmasq.c:128
 #, c-format
 msgid "no interface with address %s"
 msgstr "brak interfejsu z adresem %s"
 
-#: dnsmasq.c:144
+#: dnsmasq.c:147
 msgid "must set exactly one interface on broken systems without IP_RECVIF"
 msgstr "musisz ustawiæ dok³adnie jeden interfejs w systemach bez IP_RECVIF"
 
-#: dnsmasq.c:157 dnsmasq.c:603
+#: dnsmasq.c:160 dnsmasq.c:609
 #, c-format
 msgid "DBus error: %s"
 msgstr "b³±d DBus: %s"
 
-#: dnsmasq.c:160
+#: dnsmasq.c:163
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr "DBus jest niedostêpny: ustaw HAVE_DBUS w src/config.h"
 
-#: dnsmasq.c:191
+#: dnsmasq.c:194
 #, fuzzy, c-format
 msgid "cannot create pipe: %s"
 msgstr "b³±d odczytu z %s: %s"
 
-#: dnsmasq.c:341
+#: dnsmasq.c:337
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "uruchomiony, wersja %s wielko¶æ cache %d"
 
-#: dnsmasq.c:343
+#: dnsmasq.c:339
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "uruchomiony, wersja %s cache wy³±czony"
 
-#: dnsmasq.c:345
+#: dnsmasq.c:341
 #, c-format
 msgid "compile time options: %s"
 msgstr "opcje kompilacji: %s"
 
-#: dnsmasq.c:351
+#: dnsmasq.c:347
 msgid "DBus support enabled: connected to system bus"
 msgstr "obs³uga DBus w³±czona: pod³±czono do szyny systemowej"
 
-#: dnsmasq.c:353
+#: dnsmasq.c:349
 msgid "DBus support enabled: bus connection pending"
 msgstr "obs³uga DBus w³±czona: pod³±czanie do szyny systemowej w toku"
 
-#: dnsmasq.c:358
+#: dnsmasq.c:354
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "ustawiam opcjê --bind-interfaces z powodu limitów systemu operacyjnego"
 
-#: dnsmasq.c:363
+#: dnsmasq.c:359
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "ostrze¿enie: interfejs %s obecnie nie istnieje"
 
-#: dnsmasq.c:368
+#: dnsmasq.c:364
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:382
+#: dnsmasq.c:378
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr "DHCP, statyczne dzier¿awy tylko na %.0s%s, czas dzier¿awy %s"
 
-#: dnsmasq.c:383
+#: dnsmasq.c:379
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, zakres IP %s -- %s, czas dzier¿awy %s"
 
-#: dnsmasq.c:393
+#: dnsmasq.c:389
 #, c-format
 msgid "warning: setting capabilities failed: %m"
 msgstr ""
 
-#: dnsmasq.c:395
+#: dnsmasq.c:391
 msgid "running as root"
 msgstr "pracuje z uprawnieniami u¿ytkownika root"
 
-#: dnsmasq.c:511
+#: dnsmasq.c:515
 #, fuzzy, c-format
 msgid "no servers found in %s, will retry"
 msgstr "brak wytycznych wyszukiwania w %s"
 
-#: dnsmasq.c:551
+#: dnsmasq.c:574
 msgid "exiting on receipt of SIGTERM"
 msgstr "wy³±czenie po otrzymaniu sygnalu SIGTERM"
 
-#: dnsmasq.c:605
+#: dnsmasq.c:611
 msgid "connected to system DBus"
 msgstr "po³±czono do systemowego DBus"
 
@@ -792,27 +792,27 @@ msgstr "b
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "powtórzenie adresu IP %s w opcji dhcp-config"
 
-#: dhcp.c:318
+#: dhcp.c:317
 #, c-format
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr "zakres DHCP %s -- %s jest niespójny z mask± sieciow± %s"
 
-#: dhcp.c:635
+#: dhcp.c:634
 #, c-format
 msgid "failed to read %s:%m"
 msgstr "b³±d odczytu %s:%m"
 
-#: dhcp.c:670
+#: dhcp.c:669
 #, fuzzy, c-format
 msgid "bad line at %s line %d"
 msgstr "b³êdna nazwa w %s, linia %d"
 
-#: dhcp.c:779
+#: dhcp.c:776
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "powtórzenie adresu IP %s (%s) w opcji dhcp-config"
 
-#: dhcp.c:815
+#: dhcp.c:812
 #, c-format
 msgid "Ignoring DHCP host name %s because it has an illegal domain part"
 msgstr ""
@@ -842,107 +842,102 @@ msgstr ""
 msgid "failed to write %s: %s (retry in %us)"
 msgstr "b³±d w odczycie %s: %m"
 
-#: lease.c:522
-#, fuzzy, c-format
-msgid "failed to execute %s: %m"
-msgstr "b³±d w dostêpie do %s: %m"
-
-#: rfc2131.c:247
+#: rfc2131.c:261
 #, c-format
 msgid "no address range available for DHCP request %s %s"
 msgstr "¿aden zakres adresowy nie jest dostêpny dla Â¿adania DHCP %s %s"
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "with subnet selector"
 msgstr "z selekcj± podsieci"
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "via"
 msgstr "przez"
 
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:288 rfc2131.c:312
 msgid "disabled"
 msgstr "wy³±czony(a)"
 
-#: rfc2131.c:310 rfc2131.c:741
+#: rfc2131.c:324 rfc2131.c:759
 msgid "address in use"
 msgstr "adres w u¿yciu"
 
-#: rfc2131.c:313
+#: rfc2131.c:327
 msgid "no address configured"
 msgstr "brak skonfigurowanego adresu"
 
-#: rfc2131.c:326 rfc2131.c:613
+#: rfc2131.c:340 rfc2131.c:631
 msgid "no address available"
 msgstr "brak dostêpnego adresu"
 
-#: rfc2131.c:335 rfc2131.c:748
+#: rfc2131.c:349 rfc2131.c:767
 msgid "no leases left"
 msgstr "brak wolnych dzier¿aw"
 
-#: rfc2131.c:338 rfc2131.c:715
+#: rfc2131.c:352 rfc2131.c:733
 msgid "wrong network"
 msgstr "nieprawid³owa sieæ"
 
-#: rfc2131.c:542
+#: rfc2131.c:559
 #, fuzzy, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "wy³±czanie statycznego adresu DHCP %s"
 
-#: rfc2131.c:562
+#: rfc2131.c:580
 msgid "unknown lease"
 msgstr "nieznana dzier¿awa"
 
-#: rfc2131.c:571 rfc2131.c:813
+#: rfc2131.c:589 rfc2131.c:862
 msgid "ignored"
 msgstr "ignorujê"
 
-#: rfc2131.c:587
+#: rfc2131.c:605
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:596
+#: rfc2131.c:614
 #, c-format
 msgid ""
 "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:599
+#: rfc2131.c:617
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:678
+#: rfc2131.c:696
 msgid "wrong address"
 msgstr "b³êdny adres"
 
-#: rfc2131.c:691
+#: rfc2131.c:709
 msgid "lease not found"
 msgstr "dzier¿awa nie znaleziona"
 
-#: rfc2131.c:723
+#: rfc2131.c:741
 msgid "address not available"
 msgstr "adres niedostêpny"
 
-#: rfc2131.c:734
+#: rfc2131.c:752
 msgid "static lease available"
 msgstr "dostêpna statyczna dzier¿awa"
 
-#: rfc2131.c:738
+#: rfc2131.c:756
 msgid "address reserved"
 msgstr "adres zarezerwowany"
 
-#: rfc2131.c:744
+#: rfc2131.c:762
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:945
+#: rfc2131.c:1000
 #, c-format
 msgid "cannot send DHCP option %d: no space left in packet"
 msgstr ""
 
-#: rfc2131.c:1246
+#: rfc2131.c:1301
 #, c-format
 msgid "More than one vendor class matches, using %s"
 msgstr "Wiêcej ni¿ jeden dystrybutor pasuj±cy, u¿ywam %s"
@@ -979,6 +974,25 @@ msgstr "b
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "¿±danie DHCP nieobs³ugiwanego typu sprzêtowego (%d) otrzymane na %s"
 
+#: helper.c:145
+#, c-format
+msgid "child process killed by signal %d"
+msgstr ""
+
+#: helper.c:147
+#, c-format
+msgid "child process exited with status %d"
+msgstr ""
+
+#: helper.c:216
+#, fuzzy, c-format
+msgid "failed to execute %s: %m"
+msgstr "b³±d w dostêpie do %s: %m"
+
+#~ msgid "forwarding table overflow: check for server loops."
+#~ msgstr ""
+#~ "przekroczenie zakresu tablicy przekazywania: sprawd¼ zapêtlenie serwera."
+
 #~ msgid "nested includes not allowed"
 #~ msgstr "zagnie¿d¿one do³±czanie plików jest niedozwolone"
 
index e473ac50e0140a9f3819d23e472866cc95f2f922..218fb119da43ea066f272634d839197801dddaf4 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.26\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-04 11:57+0100\n"
+"POT-Creation-Date: 2006-10-13 18:20+0100\n"
 "PO-Revision-Date: 2006-01-16 20:42+0000\n"
 "Last-Translator: Simon Kelley <simon@thekelleys.org.uk>\n"
 "Language-Team: Portuguese <ldp-br@bazar.conectiva.com.br>\n"
@@ -15,45 +15,45 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: cache.c:570
+#: cache.c:606
 #, c-format
 msgid "failed to load names from %s: %m"
 msgstr ""
 
-#: cache.c:606 dhcp.c:683
+#: cache.c:642 dhcp.c:682
 #, c-format
 msgid "bad address at %s line %d"
 msgstr ""
 
-#: cache.c:633 dhcp.c:697
+#: cache.c:669 dhcp.c:696
 #, c-format
 msgid "bad name at %s line %d"
 msgstr ""
 
-#: cache.c:639 dhcp.c:751
+#: cache.c:675 dhcp.c:750
 #, c-format
 msgid "read %s - %d addresses"
 msgstr ""
 
-#: cache.c:675
+#: cache.c:711
 msgid "cleared cache"
 msgstr ""
 
-#: cache.c:728
+#: cache.c:764
 #, c-format
 msgid ""
 "not giving name %s to the DHCP lease of %s because the name exists in %s "
 "with address %s"
 msgstr ""
 
-#: cache.c:772
+#: cache.c:808
 #, c-format
 msgid ""
 "time %lu, cache size %d, %d/%d cache insertions re-used unexpired cache "
 "entries."
 msgstr ""
 
-#: util.c:153 option.c:1214
+#: util.c:153 option.c:1221
 msgid "could not get memory"
 msgstr ""
 
@@ -71,479 +71,480 @@ msgstr ""
 msgid "infinite"
 msgstr ""
 
-#: option.c:141
+#: option.c:147
 msgid "Specify local address(es) to listen on."
 msgstr ""
 
-#: option.c:142
+#: option.c:148
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr ""
 
-#: option.c:143
+#: option.c:149
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr ""
 
-#: option.c:144
+#: option.c:150
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr ""
 
-#: option.c:145
+#: option.c:151
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr ""
 
-#: option.c:146
+#: option.c:152
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr ""
 
-#: option.c:147
+#: option.c:153
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr ""
 
-#: option.c:148
+#: option.c:154
 msgid "Do NOT forward queries with no domain part."
 msgstr ""
 
-#: option.c:149
+#: option.c:155
 msgid "Return self-pointing MX records for local hosts."
 msgstr ""
 
-#: option.c:150
+#: option.c:156
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr ""
 
-#: option.c:151
+#: option.c:157
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr ""
 
-#: option.c:152
+#: option.c:158
 msgid "Enable DHCP in the range given with lease duration."
 msgstr ""
 
-#: option.c:153
+#: option.c:159
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr ""
 
-#: option.c:154
+#: option.c:160
 msgid "Set address or hostname for a specified machine."
 msgstr ""
 
-#: option.c:155
+#: option.c:161
 #, c-format
 msgid "Do NOT load %s file."
 msgstr ""
 
-#: option.c:156
+#: option.c:162
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr ""
 
-#: option.c:157
+#: option.c:163
 msgid "Specify interface(s) to listen on."
 msgstr ""
 
-#: option.c:158
+#: option.c:164
 msgid "Specify interface(s) NOT to listen on."
 msgstr ""
 
-#: option.c:159
+#: option.c:165
 msgid "Map DHCP user class to option set."
 msgstr ""
 
-#: option.c:160
+#: option.c:166
 msgid "Don't do DHCP for hosts in option set."
 msgstr ""
 
-#: option.c:161
+#: option.c:167
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr ""
 
-#: option.c:162
+#: option.c:168
 msgid "Assume we are the only DHCP server on the local network."
 msgstr ""
 
-#: option.c:163
+#: option.c:169
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr ""
 
-#: option.c:164
+#: option.c:170
 msgid "Return MX records for local hosts."
 msgstr ""
 
-#: option.c:165
+#: option.c:171
 msgid "Specify an MX record."
 msgstr ""
 
-#: option.c:166
+#: option.c:172
 msgid "Specify BOOTP options to DHCP server."
 msgstr ""
 
-#: option.c:167
+#: option.c:173
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr ""
 
-#: option.c:168
+#: option.c:174
 msgid "Do NOT cache failed search results."
 msgstr ""
 
-#: option.c:169
+#: option.c:175
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr ""
 
-#: option.c:170
+#: option.c:176
 msgid "Set extra options to be set to DHCP clients."
 msgstr ""
 
-#: option.c:171
+#: option.c:177
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr ""
 
-#: option.c:172
+#: option.c:178
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr ""
 
-#: option.c:173
+#: option.c:179
 msgid "Log queries."
 msgstr ""
 
-#: option.c:174
+#: option.c:180
 msgid "Force the originating port for upstream queries."
 msgstr ""
 
-#: option.c:175
+#: option.c:181
 msgid "Do NOT read resolv.conf."
 msgstr ""
 
-#: option.c:176
+#: option.c:182
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr ""
 
-#: option.c:177
+#: option.c:183
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr ""
 
-#: option.c:178
+#: option.c:184
 msgid "Never forward queries to specified domains."
 msgstr ""
 
-#: option.c:179
+#: option.c:185
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr ""
 
-#: option.c:180
+#: option.c:186
 msgid "Specify default target in an MX record."
 msgstr ""
 
-#: option.c:181
+#: option.c:187
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr ""
 
-#: option.c:182
+#: option.c:188
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr ""
 
-#: option.c:183
+#: option.c:189
 msgid "Map DHCP vendor class to option set."
 msgstr ""
 
-#: option.c:184
+#: option.c:190
 msgid "Display dnsmasq version and copyright information."
 msgstr ""
 
-#: option.c:185
+#: option.c:191
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr ""
 
-#: option.c:186
+#: option.c:192
 msgid "Specify a SRV record."
 msgstr ""
 
-#: option.c:187
+#: option.c:193
 msgid "Display this message."
 msgstr ""
 
-#: option.c:188
+#: option.c:194
 #, c-format
 msgid "Specify path of PID file. (defaults to %s)."
 msgstr ""
 
-#: option.c:189
+#: option.c:195
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr ""
 
-#: option.c:190
+#: option.c:196
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr ""
 
-#: option.c:191
+#: option.c:197
 msgid "Specify TXT DNS record."
 msgstr ""
 
-#: option.c:192
+#: option.c:198
 msgid "Bind only to interfaces in use."
 msgstr ""
 
-#: option.c:193
+#: option.c:199
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr ""
 
-#: option.c:194
+#: option.c:200
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr ""
 
-#: option.c:195
+#: option.c:201
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr ""
 
-#: option.c:196
+#: option.c:202
 msgid "Enable dynamic address allocation for bootp."
 msgstr ""
 
-#: option.c:197
+#: option.c:203
 msgid "Map MAC address (with wildcards) to option set."
 msgstr ""
 
-#: option.c:198
+#: option.c:204
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 
-#: option.c:199
+#: option.c:205
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 
-#: option.c:200
+#: option.c:206
 msgid "Read configuration from all the files in this directory."
 msgstr ""
 
-#: option.c:201
+#: option.c:207
 msgid "Log to this syslog facility. (defaults to DAEMON)"
 msgstr ""
 
-#: option.c:202
+#: option.c:208
 msgid "Read leases at startup, but never write the lease file."
 msgstr ""
 
-#: option.c:203
+#: option.c:209
 #, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr ""
 
-#: option.c:316
+#: option.c:210
+#, c-format
+msgid "Clear DNS cache when reloading %s."
+msgstr ""
+
+#: option.c:323
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
 "\n"
 msgstr ""
 
-#: option.c:318
+#: option.c:325
 #, c-format
 msgid "Use short options only on the command line.\n"
 msgstr ""
 
-#: option.c:320
+#: option.c:327
 #, c-format
 msgid "Valid options are :\n"
 msgstr ""
 
-#: option.c:355
+#: option.c:362
 msgid "extraneous parameter"
 msgstr ""
 
-#: option.c:359
+#: option.c:366
 msgid "missing parameter"
 msgstr ""
 
-#: option.c:381
+#: option.c:388
 #, c-format
 msgid "cannot access directory %s: %s"
 msgstr ""
 
-#: option.c:400
+#: option.c:407
 #, c-format
 msgid "cannot access %s: %s"
 msgstr ""
 
-#: option.c:477
+#: option.c:484
 msgid "bad MX preference"
 msgstr ""
 
-#: option.c:486
+#: option.c:493
 msgid "bad MX name"
 msgstr ""
 
-#: option.c:504
+#: option.c:511
 msgid "bad MX target"
 msgstr ""
 
-#: option.c:516
+#: option.c:523
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:715 option.c:726
+#: option.c:722 option.c:733
 msgid "bad port"
 msgstr ""
 
-#: option.c:871
+#: option.c:878
 msgid "bad dhcp-range"
 msgstr ""
 
-#: option.c:900
+#: option.c:907
 msgid "only one netid tag allowed"
 msgstr ""
 
-#: option.c:945
+#: option.c:952
 msgid "inconsistent DHCP range"
 msgstr ""
 
-#: option.c:1130
+#: option.c:1137
 msgid "bad dhcp-host"
 msgstr ""
 
-#: option.c:1191
+#: option.c:1198
 msgid "bad dhcp-option"
 msgstr ""
 
-#: option.c:1209
+#: option.c:1216
 msgid "bad domain in dhcp-option"
 msgstr ""
 
-#: option.c:1379
+#: option.c:1386
 msgid "dhcp-option too long"
 msgstr ""
 
-#: option.c:1576
+#: option.c:1583
 msgid "bad TXT record"
 msgstr ""
 
-#: option.c:1608
+#: option.c:1615
 msgid "TXT record string too long"
 msgstr ""
 
-#: option.c:1647
+#: option.c:1654
 msgid "bad SRV record"
 msgstr ""
 
-#: option.c:1660
+#: option.c:1667
 msgid "bad SRV target"
 msgstr ""
 
-#: option.c:1672
+#: option.c:1679
 msgid "invalid port number"
 msgstr ""
 
-#: option.c:1683
+#: option.c:1690
 msgid "invalid priority"
 msgstr ""
 
-#: option.c:1694
+#: option.c:1701
 msgid "invalid weight"
 msgstr ""
 
-#: option.c:1725
+#: option.c:1732
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
-#: option.c:1732
+#: option.c:1739
 #, c-format
 msgid "cannot read %s: %s"
 msgstr ""
 
-#: option.c:1774
+#: option.c:1781
 msgid "missing \""
 msgstr ""
 
-#: option.c:1809
+#: option.c:1816
 msgid "error"
 msgstr ""
 
-#: option.c:1813
+#: option.c:1820
 msgid "bad option"
 msgstr ""
 
-#: option.c:1877
+#: option.c:1884
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr ""
 
-#: option.c:1878
+#: option.c:1885
 #, c-format
 msgid ""
 "Compile time options %s\n"
 "\n"
 msgstr ""
 
-#: option.c:1879
+#: option.c:1886
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr ""
 
-#: option.c:1880
+#: option.c:1887
 #, c-format
 msgid "Dnsmasq is free software, and you are welcome to redistribute it\n"
 msgstr ""
 
-#: option.c:1881
+#: option.c:1888
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2.\n"
 msgstr ""
 
-#: option.c:1892
+#: option.c:1899
 msgid "try --help"
 msgstr ""
 
-#: option.c:1894
+#: option.c:1901
 msgid "try -w"
 msgstr ""
 
-#: option.c:1897
+#: option.c:1904
 #, c-format
 msgid "bad command line options: %s"
 msgstr ""
 
-#: option.c:1948
+#: option.c:1955
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr ""
 
-#: option.c:1976
+#: option.c:1983
 msgid "only one resolv.conf file allowed in no-poll mode."
 msgstr ""
 
-#: option.c:1986
+#: option.c:1993
 msgid "must have exactly one resolv.conf to read domain from."
 msgstr ""
 
-#: option.c:1989
+#: option.c:1996
 #, c-format
 msgid "failed to read %s: %s"
 msgstr ""
 
-#: option.c:2007
+#: option.c:2014
 #, c-format
 msgid "no search directive found in %s"
 msgstr ""
 
-#: forward.c:371
+#: forward.c:370
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr ""
 
-#: forward.c:878
-msgid "forwarding table overflow: check for server loops."
-msgstr ""
-
-#: isc.c:73 dnsmasq.c:480
+#: isc.c:73 dnsmasq.c:482
 #, c-format
 msgid "failed to access %s: %m"
 msgstr ""
@@ -553,7 +554,7 @@ msgstr ""
 msgid "failed to load %s: %m"
 msgstr ""
 
-#: isc.c:93 dnsmasq.c:502
+#: isc.c:93 dnsmasq.c:504
 #, c-format
 msgid "reading %s"
 msgstr ""
@@ -568,7 +569,7 @@ msgstr ""
 msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
 msgstr ""
 
-#: network.c:315 dnsmasq.c:129
+#: network.c:315 dnsmasq.c:132
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr ""
@@ -588,151 +589,151 @@ msgstr ""
 msgid "failed to listen on socket: %s"
 msgstr ""
 
-#: network.c:411
+#: network.c:419
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr ""
 
-#: network.c:420
+#: network.c:428
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %m"
 msgstr ""
 
-#: network.c:434
+#: network.c:442
 msgid "domain"
 msgstr ""
 
-#: network.c:436
+#: network.c:444
 msgid "unqualified"
 msgstr ""
 
-#: network.c:436
+#: network.c:444
 msgid "domains"
 msgstr ""
 
-#: network.c:439
+#: network.c:447
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr ""
 
-#: network.c:441
+#: network.c:449
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr ""
 
-#: network.c:444
+#: network.c:452
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr ""
 
-#: network.c:464
+#: network.c:472
 #, c-format
 msgid "failed to read %s: %m"
 msgstr ""
 
-#: dnsmasq.c:94
+#: dnsmasq.c:97
 msgid ""
 "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:111
+#: dnsmasq.c:114
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr ""
 
-#: dnsmasq.c:119
+#: dnsmasq.c:122
 #, c-format
 msgid "unknown interface %s"
 msgstr ""
 
-#: dnsmasq.c:125
+#: dnsmasq.c:128
 #, c-format
 msgid "no interface with address %s"
 msgstr ""
 
-#: dnsmasq.c:144
+#: dnsmasq.c:147
 msgid "must set exactly one interface on broken systems without IP_RECVIF"
 msgstr ""
 
-#: dnsmasq.c:157 dnsmasq.c:603
+#: dnsmasq.c:160 dnsmasq.c:609
 #, c-format
 msgid "DBus error: %s"
 msgstr ""
 
-#: dnsmasq.c:160
+#: dnsmasq.c:163
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr ""
 
-#: dnsmasq.c:191
+#: dnsmasq.c:194
 #, c-format
 msgid "cannot create pipe: %s"
 msgstr ""
 
-#: dnsmasq.c:341
+#: dnsmasq.c:337
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr ""
 
-#: dnsmasq.c:343
+#: dnsmasq.c:339
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr ""
 
-#: dnsmasq.c:345
+#: dnsmasq.c:341
 #, c-format
 msgid "compile time options: %s"
 msgstr ""
 
-#: dnsmasq.c:351
+#: dnsmasq.c:347
 msgid "DBus support enabled: connected to system bus"
 msgstr ""
 
-#: dnsmasq.c:353
+#: dnsmasq.c:349
 msgid "DBus support enabled: bus connection pending"
 msgstr ""
 
-#: dnsmasq.c:358
+#: dnsmasq.c:354
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr ""
 
-#: dnsmasq.c:363
+#: dnsmasq.c:359
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr ""
 
-#: dnsmasq.c:368
+#: dnsmasq.c:364
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:382
+#: dnsmasq.c:378
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:383
+#: dnsmasq.c:379
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr ""
 
-#: dnsmasq.c:393
+#: dnsmasq.c:389
 #, c-format
 msgid "warning: setting capabilities failed: %m"
 msgstr ""
 
-#: dnsmasq.c:395
+#: dnsmasq.c:391
 msgid "running as root"
 msgstr ""
 
-#: dnsmasq.c:511
+#: dnsmasq.c:515
 #, c-format
 msgid "no servers found in %s, will retry"
 msgstr ""
 
-#: dnsmasq.c:551
+#: dnsmasq.c:574
 msgid "exiting on receipt of SIGTERM"
 msgstr ""
 
-#: dnsmasq.c:605
+#: dnsmasq.c:611
 msgid "connected to system DBus"
 msgstr ""
 
@@ -766,27 +767,27 @@ msgstr ""
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr ""
 
-#: dhcp.c:318
+#: dhcp.c:317
 #, c-format
 msgid "DHCP range %s -- %s is not consistent with netmask %s"
 msgstr ""
 
-#: dhcp.c:635
+#: dhcp.c:634
 #, c-format
 msgid "failed to read %s:%m"
 msgstr ""
 
-#: dhcp.c:670
+#: dhcp.c:669
 #, c-format
 msgid "bad line at %s line %d"
 msgstr ""
 
-#: dhcp.c:779
+#: dhcp.c:776
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr ""
 
-#: dhcp.c:815
+#: dhcp.c:812
 #, c-format
 msgid "Ignoring DHCP host name %s because it has an illegal domain part"
 msgstr ""
@@ -815,107 +816,102 @@ msgstr ""
 msgid "failed to write %s: %s (retry in %us)"
 msgstr ""
 
-#: lease.c:522
-#, c-format
-msgid "failed to execute %s: %m"
-msgstr ""
-
-#: rfc2131.c:247
+#: rfc2131.c:261
 #, c-format
 msgid "no address range available for DHCP request %s %s"
 msgstr ""
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "with subnet selector"
 msgstr ""
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "via"
 msgstr ""
 
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:288 rfc2131.c:312
 msgid "disabled"
 msgstr ""
 
-#: rfc2131.c:310 rfc2131.c:741
+#: rfc2131.c:324 rfc2131.c:759
 msgid "address in use"
 msgstr ""
 
-#: rfc2131.c:313
+#: rfc2131.c:327
 msgid "no address configured"
 msgstr ""
 
-#: rfc2131.c:326 rfc2131.c:613
+#: rfc2131.c:340 rfc2131.c:631
 msgid "no address available"
 msgstr ""
 
-#: rfc2131.c:335 rfc2131.c:748
+#: rfc2131.c:349 rfc2131.c:767
 msgid "no leases left"
 msgstr ""
 
-#: rfc2131.c:338 rfc2131.c:715
+#: rfc2131.c:352 rfc2131.c:733
 msgid "wrong network"
 msgstr ""
 
-#: rfc2131.c:542
+#: rfc2131.c:559
 #, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr ""
 
-#: rfc2131.c:562
+#: rfc2131.c:580
 msgid "unknown lease"
 msgstr ""
 
-#: rfc2131.c:571 rfc2131.c:813
+#: rfc2131.c:589 rfc2131.c:862
 msgid "ignored"
 msgstr ""
 
-#: rfc2131.c:587
+#: rfc2131.c:605
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:596
+#: rfc2131.c:614
 #, c-format
 msgid ""
 "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:599
+#: rfc2131.c:617
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:678
+#: rfc2131.c:696
 msgid "wrong address"
 msgstr ""
 
-#: rfc2131.c:691
+#: rfc2131.c:709
 msgid "lease not found"
 msgstr ""
 
-#: rfc2131.c:723
+#: rfc2131.c:741
 msgid "address not available"
 msgstr ""
 
-#: rfc2131.c:734
+#: rfc2131.c:752
 msgid "static lease available"
 msgstr ""
 
-#: rfc2131.c:738
+#: rfc2131.c:756
 msgid "address reserved"
 msgstr ""
 
-#: rfc2131.c:744
+#: rfc2131.c:762
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:945
+#: rfc2131.c:1000
 #, c-format
 msgid "cannot send DHCP option %d: no space left in packet"
 msgstr ""
 
-#: rfc2131.c:1246
+#: rfc2131.c:1301
 #, c-format
 msgid "More than one vendor class matches, using %s"
 msgstr ""
@@ -951,3 +947,18 @@ msgstr ""
 #, c-format
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr ""
+
+#: helper.c:145
+#, c-format
+msgid "child process killed by signal %d"
+msgstr ""
+
+#: helper.c:147
+#, c-format
+msgid "child process exited with status %d"
+msgstr ""
+
+#: helper.c:216
+#, c-format
+msgid "failed to execute %s: %m"
+msgstr ""
index fe34cf1cef8a9a746583adcbcbda1b4899d36d7a..86840fdc8d8547141377222657c8908044e57160 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: dnsmasq 2.24\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-04 11:57+0100\n"
+"POT-Creation-Date: 2006-10-13 18:20+0100\n"
 "PO-Revision-Date: 2005-11-22 16:46+0000\n"
 "Last-Translator: Simon Kelley <simon@thekelleys.org.uk>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -15,31 +15,31 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 # for compatibility purposes the letters Ã¢, Äƒ, ÅŸ, Å£ and Ã® can be written as their look-alike correspondent.
-#: cache.c:570
+#: cache.c:606
 #, c-format
 msgid "failed to load names from %s: %m"
 msgstr "încărcarea numelor din %s: %m a eÅŸuat"
 
-#: cache.c:606 dhcp.c:683
+#: cache.c:642 dhcp.c:682
 #, c-format
 msgid "bad address at %s line %d"
 msgstr "adresă greÅŸită Ã®n %s, linia %d"
 
-#: cache.c:633 dhcp.c:697
+#: cache.c:669 dhcp.c:696
 #, c-format
 msgid "bad name at %s line %d"
 msgstr "nume greÅŸit Ã®n %s linia %d"
 
-#: cache.c:639 dhcp.c:751
+#: cache.c:675 dhcp.c:750
 #, c-format
 msgid "read %s - %d addresses"
 msgstr "citesc %s - %d adrese"
 
-#: cache.c:675
+#: cache.c:711
 msgid "cleared cache"
 msgstr "memoria temporară a fost ÅŸtearsă"
 
-#: cache.c:728
+#: cache.c:764
 #, c-format
 msgid ""
 "not giving name %s to the DHCP lease of %s because the name exists in %s "
@@ -48,7 +48,7 @@ msgstr ""
 "nu pot da numele %s Ã®mprumutului de adresă DHCP a lui %s deoarece "
 "numeleexistă Ã®n %s cu adresa %s"
 
-#: cache.c:772
+#: cache.c:808
 #, fuzzy, c-format
 msgid ""
 "time %lu, cache size %d, %d/%d cache insertions re-used unexpired cache "
@@ -57,7 +57,7 @@ msgstr ""
 "cantitate de memorie temporară %d, %d/%d stocări temporare aureutilizat "
 "locaÅ£ii neexpirate."
 
-#: util.c:153 option.c:1214
+#: util.c:153 option.c:1221
 msgid "could not get memory"
 msgstr "nu am putut aloca memorie"
 
@@ -75,278 +75,283 @@ msgstr "pornirea A EÅžUAT"
 msgid "infinite"
 msgstr "infinit"
 
-#: option.c:141
+#: option.c:147
 msgid "Specify local address(es) to listen on."
 msgstr "SpecificaÅ£i adresele locale deservite."
 
-#: option.c:142
+#: option.c:148
 msgid "Return ipaddr for all hosts in specified domains."
 msgstr "AfiÅŸează adresele IP ale maÅŸinilor Ã®n domeniul dat."
 
-#: option.c:143
+#: option.c:149
 msgid "Fake reverse lookups for RFC1918 private address ranges."
 msgstr ""
 "Simulează căutări după adresă pentru domenii de adresă private (RFC1918)."
 
-#: option.c:144
+#: option.c:150
 msgid "Treat ipaddr as NXDOMAIN (defeats Verisign wildcard)."
 msgstr "Interpretează adresa IP ca NXDOMAIN (împotriva manipulărilor Verisign)"
 
-#: option.c:145
+#: option.c:151
 #, c-format
 msgid "Specify the size of the cache in entries (defaults to %s)."
 msgstr "Specifică mărimea Ã®nregistrărilor temporare (implicit e %s)."
 
-#: option.c:146
+#: option.c:152
 #, c-format
 msgid "Specify configuration file (defaults to %s)."
 msgstr "Specifică fiÅŸier de configurare (implicit e %s)."
 
-#: option.c:147
+#: option.c:153
 msgid "Do NOT fork into the background: run in debug mode."
 msgstr "NU porneÅŸte Ã®n fundal: rulează Ã®n modul depanare."
 
-#: option.c:148
+#: option.c:154
 msgid "Do NOT forward queries with no domain part."
 msgstr "NU Ã®nainta cererile ce nu conÅ£in domeniu DNS."
 
-#: option.c:149
+#: option.c:155
 msgid "Return self-pointing MX records for local hosts."
 msgstr "Răspunde cu Ã®nregistrări MX spre el Ã®nsuÅŸi pentru maÅŸini locale."
 
-#: option.c:150
+#: option.c:156
 msgid "Expand simple names in /etc/hosts with domain-suffix."
 msgstr "Adaugă numelor simple din /etc/hosts numele domeniului ca sufix."
 
-#: option.c:151
+#: option.c:157
 msgid "Don't forward spurious DNS requests from Windows hosts."
 msgstr "Nu inainta cereri DNS defecte provenite de la maÅŸini Windows."
 
-#: option.c:152
+#: option.c:158
 msgid "Enable DHCP in the range given with lease duration."
 msgstr "Activează DHCP Ã®n domeniul dat cu durată limitată de Ã®mprumut."
 
-#: option.c:153
+#: option.c:159
 #, c-format
 msgid "Change to this group after startup (defaults to %s)."
 msgstr "Rulează sub acest grup după pornire (implicit e %s)."
 
-#: option.c:154
+#: option.c:160
 msgid "Set address or hostname for a specified machine."
 msgstr "Schimbă adresa sau numele maÅŸinii specificate."
 
-#: option.c:155
+#: option.c:161
 #, c-format
 msgid "Do NOT load %s file."
 msgstr "Nu Ã®ncarcă fiÅŸierul %s."
 
-#: option.c:156
+#: option.c:162
 #, c-format
 msgid "Specify a hosts file to be read in addition to %s."
 msgstr "Specifică spre citire un fiÅŸier hosts adiÅ£ional la %s."
 
-#: option.c:157
+#: option.c:163
 msgid "Specify interface(s) to listen on."
 msgstr "Specifică interfeÅ£ele deservite."
 
-#: option.c:158
+#: option.c:164
 msgid "Specify interface(s) NOT to listen on."
 msgstr "Specifică interfeÅ£ele NE-deservite."
 
-#: option.c:159
+#: option.c:165
 msgid "Map DHCP user class to option set."
 msgstr "Leagă clasa de utilizator DHCP cu grup de opÅ£iuni."
 
-#: option.c:160
+#: option.c:166
 msgid "Don't do DHCP for hosts in option set."
 msgstr "Nu furniza DHCP maÅŸinilor din grupul de opÅ£iuni."
 
-#: option.c:161
+#: option.c:167
 msgid "Do NOT fork into the background, do NOT run in debug mode."
 msgstr "NU porneÅŸte Ã®n fundal, NU rulează Ã®n modul depanare."
 
-#: option.c:162
+#: option.c:168
 msgid "Assume we are the only DHCP server on the local network."
 msgstr "Presupune că suntem singurul server DHCP din reÅ£eaua locală."
 
-#: option.c:163
+#: option.c:169
 #, c-format
 msgid "Specify where to store DHCP leases (defaults to %s)."
 msgstr "Specifică fiÅŸierul de stocare a Ã®mprumuturilor DHCP (implicit e %s)."
 
-#: option.c:164
+#: option.c:170
 msgid "Return MX records for local hosts."
 msgstr "Răspunde cu Ã®ntregistrări MX pentru maÅŸini locale."
 
-#: option.c:165
+#: option.c:171
 msgid "Specify an MX record."
 msgstr "Specifică o Ã®nregistrare MX."
 
-#: option.c:166
+#: option.c:172
 msgid "Specify BOOTP options to DHCP server."
 msgstr "Specifică opÅ£iuni BOOTP serverului DHCP."
 
-#: option.c:167
+#: option.c:173
 #, c-format
 msgid "Do NOT poll %s file, reload only on SIGHUP."
 msgstr "Nu Ã®ncărca fiÅŸierul %s, citeÅŸte-l doar la SIGHUP."
 
-#: option.c:168
+#: option.c:174
 msgid "Do NOT cache failed search results."
 msgstr "NU memora rezultatele de căutare DNS eÅŸuatată."
 
-#: option.c:169
+#: option.c:175
 #, c-format
 msgid "Use nameservers strictly in the order given in %s."
 msgstr "FoloseÅŸte servere DNS strict Ã®n ordinea dată Ã®n %s."
 
-#: option.c:170
+#: option.c:176
 msgid "Set extra options to be set to DHCP clients."
 msgstr "Configurează opÅ£iuni Ã®n plusce trebuie trimise clienÅ£ilor DHCP."
 
-#: option.c:171
+#: option.c:177
 msgid "Specify port to listen for DNS requests on (defaults to 53)."
 msgstr "Specifică numărul portului pentru cereri DNS (implicit e 53)."
 
-#: option.c:172
+#: option.c:178
 #, c-format
 msgid "Maximum supported UDP packet size for EDNS.0 (defaults to %s)."
 msgstr "Marimea maximă a pachetului UDP pentru EDNS.0 (implicit e %s)."
 
-#: option.c:173
+#: option.c:179
 msgid "Log queries."
 msgstr "ÃŽnregistrează tranzacÅ£iile."
 
-#: option.c:174
+#: option.c:180
 msgid "Force the originating port for upstream queries."
 msgstr "ForÅ£ează acest port pentru datele ce pleacă."
 
-#: option.c:175
+#: option.c:181
 msgid "Do NOT read resolv.conf."
 msgstr "NU citi fiÅŸierul resolv.conf"
 
-#: option.c:176
+#: option.c:182
 #, c-format
 msgid "Specify path to resolv.conf (defaults to %s)."
 msgstr "Specifică calea către resolv.conf (implicit e %s)."
 
-#: option.c:177
+#: option.c:183
 msgid "Specify address(es) of upstream servers with optional domains."
 msgstr "Specifică adresele server(elor) superioare cu domenii opÅ£ionale."
 
-#: option.c:178
+#: option.c:184
 msgid "Never forward queries to specified domains."
 msgstr "Nu Ã®naintează cererile spre domeniile specificate."
 
-#: option.c:179
+#: option.c:185
 msgid "Specify the domain to be assigned in DHCP leases."
 msgstr "Specifică domeniul de transmis prin DHCP."
 
-#: option.c:180
+#: option.c:186
 msgid "Specify default target in an MX record."
 msgstr "Specifică o Å£intă Ã®ntr-o Ã®nregistrare MX."
 
-#: option.c:181
+#: option.c:187
 msgid "Specify time-to-live in seconds for replies from /etc/hosts."
 msgstr "Specifică TTL Ã®n secunde pentru răspunsurile din /etc/hosts."
 
-#: option.c:182
+#: option.c:188
 #, c-format
 msgid "Change to this user after startup. (defaults to %s)."
 msgstr "Rulează sub acest utilizator după pornire. (implicit e %s)."
 
-#: option.c:183
+#: option.c:189
 msgid "Map DHCP vendor class to option set."
 msgstr "Trimite opÅ£iuni DHCP Ã®n funcÅ£ie de marca plăcii de reÅ£ea."
 
-#: option.c:184
+#: option.c:190
 msgid "Display dnsmasq version and copyright information."
 msgstr "AfiÅŸează versiunea dnsmasq ÅŸi drepturile de autor."
 
-#: option.c:185
+#: option.c:191
 msgid "Translate IPv4 addresses from upstream servers."
 msgstr "Traduce adresele IPv4 de la serverele DNS superioare."
 
-#: option.c:186
+#: option.c:192
 msgid "Specify a SRV record."
 msgstr "Specifică o Ã®nregistrare SRV."
 
-#: option.c:187
+#: option.c:193
 msgid "Display this message."
 msgstr "AfiÅŸează acest mesaj."
 
-#: option.c:188
+#: option.c:194
 #, c-format
 msgid "Specify path of PID file. (defaults to %s)."
 msgstr "Specifică o cale pentru fiÅŸierul PID. (implicit %s)."
 
-#: option.c:189
+#: option.c:195
 #, c-format
 msgid "Specify maximum number of DHCP leases (defaults to %s)."
 msgstr "Specifică numărul maxim de Ã®mprumuturi DHCP (implicit %s)."
 
-#: option.c:190
+#: option.c:196
 msgid "Answer DNS queries based on the interface a query was sent to."
 msgstr ""
 "Răspunde cererilor DNS Ã®n funcÅ£ie de interfaÅ£a pe care a venit cererea."
 
-#: option.c:191
+#: option.c:197
 msgid "Specify TXT DNS record."
 msgstr "Specifică o Ã®nregistrare TXT."
 
-#: option.c:192
+#: option.c:198
 msgid "Bind only to interfaces in use."
 msgstr "Ascultă doar pe interfeÅ£ele active."
 
-#: option.c:193
+#: option.c:199
 #, c-format
 msgid "Read DHCP static host information from %s."
 msgstr "CiteÅŸte informaÅ£ii DHCP statice despre maÅŸină din %s."
 
-#: option.c:194
+#: option.c:200
 msgid "Enable the DBus interface for setting upstream servers, etc."
 msgstr "Activeaza interfaÅ£a DBus pentru configurarea serverelor superioare."
 
-#: option.c:195
+#: option.c:201
 msgid "Do not provide DHCP on this interface, only provide DNS."
 msgstr "Nu activează DHCP ci doar DNS pe această interfaţă."
 
-#: option.c:196
+#: option.c:202
 msgid "Enable dynamic address allocation for bootp."
 msgstr "Activează alocarea dinamică a adreselor pentru BOOTP."
 
-#: option.c:197
+#: option.c:203
 #, fuzzy
 msgid "Map MAC address (with wildcards) to option set."
 msgstr "Trimite opÅ£iuni DHCP Ã®n funcÅ£ie de marca plăcii de reÅ£ea."
 
-#: option.c:198
+#: option.c:204
 msgid "Disable ICMP echo address checking in the DHCP server."
 msgstr ""
 
-#: option.c:199
+#: option.c:205
 msgid "Script to run on DHCP lease creation and destruction."
 msgstr ""
 
-#: option.c:200
+#: option.c:206
 msgid "Read configuration from all the files in this directory."
 msgstr ""
 
-#: option.c:201
+#: option.c:207
 #, fuzzy
 msgid "Log to this syslog facility. (defaults to DAEMON)"
 msgstr "Rulează sub acest utilizator după pornire. (implicit e %s)."
 
-#: option.c:202
+#: option.c:208
 msgid "Read leases at startup, but never write the lease file."
 msgstr ""
 
-#: option.c:203
+#: option.c:209
 #, fuzzy, c-format
 msgid "Maximum number of concurrent DNS queries. (defaults to %s)"
 msgstr "Specifică numărul maxim de Ã®mprumuturi DHCP (implicit %s)."
 
-#: option.c:316
+#: option.c:210
+#, c-format
+msgid "Clear DNS cache when reloading %s."
+msgstr ""
+
+#: option.c:323
 #, c-format
 msgid ""
 "Usage: dnsmasq [options]\n"
@@ -355,138 +360,138 @@ msgstr ""
 "Utilizare: dnsmasq [opÅ£iuni]\n"
 "\n"
 
-#: option.c:318
+#: option.c:325
 #, 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:320
+#: option.c:327
 #, c-format
 msgid "Valid options are :\n"
 msgstr "OpÅ£iunile valide sunt:\n"
 
-#: option.c:355
+#: option.c:362
 msgid "extraneous parameter"
 msgstr "parametru nerecunoscut"
 
-#: option.c:359
+#: option.c:366
 msgid "missing parameter"
 msgstr "parametru lipsa"
 
-#: option.c:381
+#: option.c:388
 #, fuzzy, c-format
 msgid "cannot access directory %s: %s"
 msgstr "nu pot citi %s: %s"
 
-#: option.c:400
+#: option.c:407
 #, fuzzy, c-format
 msgid "cannot access %s: %s"
 msgstr "nu pot citi %s: %s"
 
-#: option.c:477
+#: option.c:484
 msgid "bad MX preference"
 msgstr "preferinţă MX invalidă"
 
-#: option.c:486
+#: option.c:493
 msgid "bad MX name"
 msgstr "nume MX invalid"
 
-#: option.c:504
+#: option.c:511
 msgid "bad MX target"
 msgstr "Å£intă MX invalidă"
 
-#: option.c:516
+#: option.c:523
 msgid "cannot run scripts under uClinux"
 msgstr ""
 
-#: option.c:715 option.c:726
+#: option.c:722 option.c:733
 msgid "bad port"
 msgstr "port invalid"
 
-#: option.c:871
+#: option.c:878
 msgid "bad dhcp-range"
 msgstr "dhcp-range invalid"
 
-#: option.c:900
+#: option.c:907
 msgid "only one netid tag allowed"
 msgstr ""
 
-#: option.c:945
+#: option.c:952
 msgid "inconsistent DHCP range"
 msgstr "domeniu DHCP inconsistent"
 
-#: option.c:1130
+#: option.c:1137
 msgid "bad dhcp-host"
 msgstr "dhcp-host invalid"
 
-#: option.c:1191
+#: option.c:1198
 msgid "bad dhcp-option"
 msgstr "dhcp-option invalid"
 
-#: option.c:1209
+#: option.c:1216
 msgid "bad domain in dhcp-option"
 msgstr "domeniu DNS invalid Ã®n declaraÅ£ia dhcp-option"
 
-#: option.c:1379
+#: option.c:1386
 msgid "dhcp-option too long"
 msgstr "declararea dhcp-option este prea lungă"
 
-#: option.c:1576
+#: option.c:1583
 msgid "bad TXT record"
 msgstr "înregistrare TXT invalidă"
 
-#: option.c:1608
+#: option.c:1615
 msgid "TXT record string too long"
 msgstr "ÅŸirul de caractere pentru Ã®nregistrarea TXT este prea lung"
 
-#: option.c:1647
+#: option.c:1654
 msgid "bad SRV record"
 msgstr "înregistrare SRV invalidă"
 
-#: option.c:1660
+#: option.c:1667
 msgid "bad SRV target"
 msgstr "Å£intă SRV invalidă"
 
-#: option.c:1672
+#: option.c:1679
 msgid "invalid port number"
 msgstr "număr de port invalid"
 
-#: option.c:1683
+#: option.c:1690
 msgid "invalid priority"
 msgstr "prioritate invalidă"
 
-#: option.c:1694
+#: option.c:1701
 msgid "invalid weight"
 msgstr "pondere invalidă"
 
-#: option.c:1725
+#: option.c:1732
 #, c-format
 msgid "files nested too deep in %s"
 msgstr ""
 
-#: option.c:1732
+#: option.c:1739
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "nu pot citi %s: %s"
 
-#: option.c:1774
+#: option.c:1781
 msgid "missing \""
 msgstr "lipseÅŸte \""
 
-#: option.c:1809
+#: option.c:1816
 msgid "error"
 msgstr "eroare"
 
-#: option.c:1813
+#: option.c:1820
 msgid "bad option"
 msgstr "opÅ£iune invalidă"
 
-#: option.c:1877
+#: option.c:1884
 #, c-format
 msgid "Dnsmasq version %s  %s\n"
 msgstr "dnsmasq versiunea %s  %s\n"
 
-#: option.c:1878
+#: option.c:1885
 #, c-format
 msgid ""
 "Compile time options %s\n"
@@ -495,68 +500,64 @@ msgstr ""
 "OpÅ£iuni cu care a fost compilat %s\n"
 "\n"
 
-#: option.c:1879
+#: option.c:1886
 #, c-format
 msgid "This software comes with ABSOLUTELY NO WARRANTY.\n"
 msgstr "Acest program vine FÄ‚RÄ‚ NICI O GARANÅ¢IE.\n"
 
-#: option.c:1880
+#: option.c:1887
 #, 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:1881
+#: option.c:1888
 #, c-format
 msgid "under the terms of the GNU General Public License, version 2.\n"
 msgstr "în termenii LicenÅ£ei publice generale GNU, versiunea 2.\n"
 
-#: option.c:1892
+#: option.c:1899
 msgid "try --help"
 msgstr ""
 
-#: option.c:1894
+#: option.c:1901
 msgid "try -w"
 msgstr ""
 
-#: option.c:1897
+#: option.c:1904
 #, fuzzy, c-format
 msgid "bad command line options: %s"
 msgstr "opÅ£iuni Ã®n linie de comandă invalide: %s."
 
-#: option.c:1948
+#: option.c:1955
 #, c-format
 msgid "cannot get host-name: %s"
 msgstr "nu pot citi numele maÅŸinii: %s"
 
-#: option.c:1976
+#: option.c:1983
 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:1986
+#: option.c:1993
 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:1989
+#: option.c:1996
 #, fuzzy, c-format
 msgid "failed to read %s: %s"
 msgstr "nu pot citi %s: %n"
 
-#: option.c:2007
+#: option.c:2014
 #, c-format
 msgid "no search directive found in %s"
 msgstr "nu s-a găsit nici un criteriu de căutare Ã®n %s"
 
-#: forward.c:371
+#: forward.c:370
 #, c-format
 msgid "nameserver %s refused to do a recursive query"
 msgstr "serverul DNS %s refuză interogările recursive"
 
-#: forward.c:878
-msgid "forwarding table overflow: check for server loops."
-msgstr "depăşire de memorie Ã®n tabela cu Ã®naintări DNS: verificaÅ£i de bucle."
-
-#: isc.c:73 dnsmasq.c:480
+#: isc.c:73 dnsmasq.c:482
 #, c-format
 msgid "failed to access %s: %m"
 msgstr "accesarea serverului %s a eÅŸuat: %n"
@@ -566,7 +567,7 @@ msgstr "accesarea serverului %s a eÅŸuat: %n"
 msgid "failed to load %s: %m"
 msgstr "nu pot Ã®ncărca %s: %n"
 
-#: isc.c:93 dnsmasq.c:502
+#: isc.c:93 dnsmasq.c:504
 #, c-format
 msgid "reading %s"
 msgstr "citesc %s"
@@ -581,7 +582,7 @@ msgstr "nume invalid Ã®n %s"
 msgid "Ignoring DHCP lease for %s because it has an illegal domain part"
 msgstr "ÃŽmprumutul DHCP pentru %s va fi ignorat deoarece are domeniu invalid"
 
-#: network.c:315 dnsmasq.c:129
+#: network.c:315 dnsmasq.c:132
 #, c-format
 msgid "failed to create listening socket: %s"
 msgstr "creearea socket-ului de ascultare a eÅŸuat: %s"
@@ -601,155 +602,155 @@ msgstr "activarea socket-ului de ascultare pentru %s a eÅŸuat: %s"
 msgid "failed to listen on socket: %s"
 msgstr "ascultarea pe socket a eÅŸuat: %s"
 
-#: network.c:411
+#: network.c:419
 #, c-format
 msgid "ignoring nameserver %s - local interface"
 msgstr "ignorăm serverul DNS %s - interfaţă locală"
 
-#: network.c:420
+#: network.c:428
 #, c-format
 msgid "ignoring nameserver %s - cannot make/bind socket: %m"
 msgstr "ignorăm serverul DNS %s - nu pot creea/activa socket-ul: %s"
 
-#: network.c:434
+#: network.c:442
 msgid "domain"
 msgstr "domeniu"
 
-#: network.c:436
+#: network.c:444
 msgid "unqualified"
 msgstr "invalid"
 
-#: network.c:436
+#: network.c:444
 msgid "domains"
 msgstr "domenii"
 
-#: network.c:439
+#: network.c:447
 #, c-format
 msgid "using local addresses only for %s %s"
 msgstr "folosim adresele locale doar pentru %S %s"
 
-#: network.c:441
+#: network.c:449
 #, c-format
 msgid "using nameserver %s#%d for %s %s"
 msgstr "folosim serverul DNS %s#%d pentru %s %s"
 
-#: network.c:444
+#: network.c:452
 #, c-format
 msgid "using nameserver %s#%d"
 msgstr "folosim serverul DNS %s#%d"
 
-#: network.c:464
+#: network.c:472
 #, c-format
 msgid "failed to read %s: %m"
 msgstr "nu pot citi %s: %n"
 
-#: dnsmasq.c:94
+#: dnsmasq.c:97
 msgid ""
 "ISC dhcpd integration not available: set HAVE_ISC_READER in src/config.h"
 msgstr ""
 "Integrarea cu ISC dhcpd nu este disponibilă:puneÅ£i HAVE_ISC_HEADER Ã®n src/"
 "config.h"
 
-#: dnsmasq.c:111
+#: dnsmasq.c:114
 #, c-format
 msgid "failed to find list of interfaces: %s"
 msgstr "enumerarea interfeÅ£elor a eÅŸuat: %s"
 
-#: dnsmasq.c:119
+#: dnsmasq.c:122
 #, c-format
 msgid "unknown interface %s"
 msgstr "interfaţă necunoscută %s"
 
-#: dnsmasq.c:125
+#: dnsmasq.c:128
 #, c-format
 msgid "no interface with address %s"
 msgstr "nu exista interfaţă pentru adresa %s"
 
-#: dnsmasq.c:144
+#: dnsmasq.c:147
 msgid "must set exactly one interface on broken systems without IP_RECVIF"
 msgstr ""
 "trebuie specificată exact o singură interfaţă pe sistemele defectece nu au "
 "IP_RECVIF"
 
-#: dnsmasq.c:157 dnsmasq.c:603
+#: dnsmasq.c:160 dnsmasq.c:609
 #, c-format
 msgid "DBus error: %s"
 msgstr "eroare DBus: %s"
 
-#: dnsmasq.c:160
+#: dnsmasq.c:163
 msgid "DBus not available: set HAVE_DBUS in src/config.h"
 msgstr "DBus nu este disponibil: puneÅ£i HAVE_DBUS in src/config.h"
 
-#: dnsmasq.c:191
+#: dnsmasq.c:194
 #, fuzzy, c-format
 msgid "cannot create pipe: %s"
 msgstr "nu pot citi %s: %s"
 
-#: dnsmasq.c:341
+#: dnsmasq.c:337
 #, c-format
 msgid "started, version %s cachesize %d"
 msgstr "am ponit, versiunea %s memorie temporară %d"
 
-#: dnsmasq.c:343
+#: dnsmasq.c:339
 #, c-format
 msgid "started, version %s cache disabled"
 msgstr "am pornit, versiunea %s memorie temporară dezactivată"
 
-#: dnsmasq.c:345
+#: dnsmasq.c:341
 #, c-format
 msgid "compile time options: %s"
 msgstr "compilat cu opÅ£iunile: %s"
 
-#: dnsmasq.c:351
+#: dnsmasq.c:347
 msgid "DBus support enabled: connected to system bus"
 msgstr "suportul DBus activ: sunt conectat la magistrala sistem"
 
-#: dnsmasq.c:353
+#: dnsmasq.c:349
 msgid "DBus support enabled: bus connection pending"
 msgstr "suportul DBus activ: aÅŸtept conexiunea la magistrală"
 
-#: dnsmasq.c:358
+#: dnsmasq.c:354
 msgid "setting --bind-interfaces option because of OS limitations"
 msgstr "specific opÅ£iunea --bind-interfaces din cauza limitărilor SO"
 
-#: dnsmasq.c:363
+#: dnsmasq.c:359
 #, c-format
 msgid "warning: interface %s does not currently exist"
 msgstr "atenÅ£ie: interfaÅ£a %s nu există momentan"
 
-#: dnsmasq.c:368
+#: dnsmasq.c:364
 msgid "warning: ignoring resolv-file flag because no-resolv is set"
 msgstr ""
 
-#: dnsmasq.c:382
+#: dnsmasq.c:378
 #, c-format
 msgid "DHCP, static leases only on %.0s%s, lease time %s"
 msgstr "DHCP, Ã®mprumuturi statice doar către  %.0s%s, timpul reînoirii %s"
 
-#: dnsmasq.c:383
+#: dnsmasq.c:379
 #, c-format
 msgid "DHCP, IP range %s -- %s, lease time %s"
 msgstr "DHCP, domeniu IP %s -- %s, timpul reînoirii %s"
 
-#: dnsmasq.c:393
+#: dnsmasq.c:389
 #, c-format
 msgid "warning: setting capabilities failed: %m"
 msgstr ""
 
-#: dnsmasq.c:395
+#: dnsmasq.c:391
 msgid "running as root"
 msgstr "rulez ca root"
 
-#: dnsmasq.c:511
+#: dnsmasq.c:515
 #, 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"
 
-#: dnsmasq.c:551
+#: dnsmasq.c:574
 msgid "exiting on receipt of SIGTERM"
 msgstr "am primit SIGTERM, am terminat"
 
-#: dnsmasq.c:605
+#: dnsmasq.c:611
 msgid "connected to system DBus"
 msgstr "magistrala sistem Dbus conectată"
 
@@ -783,27 +784,27 @@ msgstr "nu pot creea socket ICMP raw: %s."
 msgid "duplicate IP address %s in dhcp-config directive."
 msgstr "adresă IP duplicat %s Ã®n declaraÅ£ia dhcp-config."
 
-#: dhcp.c:318
+#: dhcp.c:317
 #, 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:635
+#: dhcp.c:634
 #, c-format
 msgid "failed to read %s:%m"
 msgstr "citirea %s:%n a eÅŸuat"
 
-#: dhcp.c:670
+#: dhcp.c:669
 #, c-format
 msgid "bad line at %s line %d"
 msgstr "linie invalidă Ã®n %s rândul %d"
 
-#: dhcp.c:779
+#: dhcp.c:776
 #, c-format
 msgid "duplicate IP address %s (%s) in dhcp-config directive"
 msgstr "adresă IP duplicat %s (%s) Ã®n declaraÅ£ia dhcp-config."
 
-#: dhcp.c:815
+#: dhcp.c:812
 #, c-format
 msgid "Ignoring DHCP host name %s because it has an illegal domain part"
 msgstr "Ignor numele DHCP al maÅŸinii %s deoarece are domeniu DNS ilegal"
@@ -832,107 +833,102 @@ msgstr ""
 msgid "failed to write %s: %s (retry in %us)"
 msgstr "nu pot citi %s: %n"
 
-#: lease.c:522
-#, fuzzy, c-format
-msgid "failed to execute %s: %m"
-msgstr "accesarea serverului %s a eÅŸuat: %n"
-
-#: rfc2131.c:247
+#: rfc2131.c:261
 #, c-format
 msgid "no address range available for DHCP request %s %s"
 msgstr "nici un domeniu de adrese disponibil pentru cererea DHCP %s %s"
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "with subnet selector"
 msgstr "cu selectorul de subreÅ£ea"
 
-#: rfc2131.c:248
+#: rfc2131.c:262
 msgid "via"
 msgstr "prin"
 
-#: rfc2131.c:274 rfc2131.c:298
+#: rfc2131.c:288 rfc2131.c:312
 msgid "disabled"
 msgstr "dezactivat"
 
-#: rfc2131.c:310 rfc2131.c:741
+#: rfc2131.c:324 rfc2131.c:759
 msgid "address in use"
 msgstr "adresa este folosită"
 
-#: rfc2131.c:313
+#: rfc2131.c:327
 msgid "no address configured"
 msgstr "adresă lipsă"
 
-#: rfc2131.c:326 rfc2131.c:613
+#: rfc2131.c:340 rfc2131.c:631
 msgid "no address available"
 msgstr "nici o adresă disponibilă"
 
-#: rfc2131.c:335 rfc2131.c:748
+#: rfc2131.c:349 rfc2131.c:767
 msgid "no leases left"
 msgstr "nu mai am de unde să Ã®mprumut"
 
-#: rfc2131.c:338 rfc2131.c:715
+#: rfc2131.c:352 rfc2131.c:733
 msgid "wrong network"
 msgstr "reÅ£ea greÅŸită"
 
-#: rfc2131.c:542
+#: rfc2131.c:559
 #, fuzzy, c-format
 msgid "disabling DHCP static address %s for %s"
 msgstr "dezactivăm adresele DHCP statice %s"
 
-#: rfc2131.c:562
+#: rfc2131.c:580
 msgid "unknown lease"
 msgstr "împrumut necunoscut"
 
-#: rfc2131.c:571 rfc2131.c:813
+#: rfc2131.c:589 rfc2131.c:862
 msgid "ignored"
 msgstr "ignorat"
 
-#: rfc2131.c:587
+#: rfc2131.c:605
 #, c-format
 msgid "not using configured address %s because it is leased to %s"
 msgstr ""
 
-#: rfc2131.c:596
+#: rfc2131.c:614
 #, c-format
 msgid ""
 "not using configured address %s because it is in use by the server or relay"
 msgstr ""
 
-#: rfc2131.c:599
+#: rfc2131.c:617
 #, c-format
 msgid "not using configured address %s because it was previously declined"
 msgstr ""
 
-#: rfc2131.c:678
+#: rfc2131.c:696
 msgid "wrong address"
 msgstr "adresă greÅŸită"
 
-#: rfc2131.c:691
+#: rfc2131.c:709
 msgid "lease not found"
 msgstr "împrumutul nu a fost găsit"
 
-#: rfc2131.c:723
+#: rfc2131.c:741
 msgid "address not available"
 msgstr "adresă indisponibilă"
 
-#: rfc2131.c:734
+#: rfc2131.c:752
 msgid "static lease available"
 msgstr "împrumut static este disponibil"
 
-#: rfc2131.c:738
+#: rfc2131.c:756
 msgid "address reserved"
 msgstr "adresă rezervată"
 
-#: rfc2131.c:744
+#: rfc2131.c:762
 msgid "no unique-id"
 msgstr ""
 
-#: rfc2131.c:945
+#: rfc2131.c:1000
 #, c-format
 msgid "cannot send DHCP option %d: no space left in packet"
 msgstr "nu pot trimite opÅ£iunea DHCP %d: nu mai este loc Ã®n pachet"
 
-#: rfc2131.c:1246
+#: rfc2131.c:1301
 #, c-format
 msgid "More than one vendor class matches, using %s"
 msgstr "Se potrivesc mai multe clase de mărci de interfeÅ£e, folosim %s"
@@ -969,6 +965,25 @@ msgstr "nu pot creea socket DHCP BPF: %s"
 msgid "DHCP request for unsupported hardware type (%d) received on %s"
 msgstr "cerere DHCP pentru dispozitiv nesuportat (%d) recepÅ£ionată prin %s"
 
+#: helper.c:145
+#, c-format
+msgid "child process killed by signal %d"
+msgstr ""
+
+#: helper.c:147
+#, c-format
+msgid "child process exited with status %d"
+msgstr ""
+
+#: helper.c:216
+#, fuzzy, c-format
+msgid "failed to execute %s: %m"
+msgstr "accesarea serverului %s a eÅŸuat: %n"
+
+#~ msgid "forwarding table overflow: check for server loops."
+#~ msgstr ""
+#~ "depăşire de memorie Ã®n tabela cu Ã®naintări DNS: verificaÅ£i de bucle."
+
 #~ msgid "nested includes not allowed"
 #~ msgstr "incluziunile locale nu sunt permise"
 
index efdf3bc25054feda44b70e00ec350fc5ac5afdb1..a11bee9454ee4d1fb5d3989090c3ff9c481b274f 100644 (file)
@@ -20,6 +20,40 @@ static int bignames_left, log_queries, cache_size, hash_size;
 static int uid;
 static char *addrbuff;
 
+/* type->string mapping: this is also used by the name-hash function as a mixing table. */
+static const struct {
+  unsigned int type;
+  const char * const name;
+} typestr[] = {
+  { 1,   "A" },
+  { 2,   "NS" },
+  { 5,   "CNAME" },
+  { 6,   "SOA" },
+  { 10,  "NULL" },
+  { 11,  "WKS" },
+  { 12,  "PTR" },
+  { 13,  "HINFO" },    
+  { 15,  "MX" },
+  { 16,  "TXT" },
+  { 22,  "NSAP" },
+  { 23,  "NSAP_PTR" },
+  { 24,  "SIG" },
+  { 25,  "KEY" },
+  { 28,  "AAAA" },
+  { 33,  "SRV" },
+  { 36,  "KX" },
+  { 37,  "CERT" },
+  { 38,  "A6" },
+  { 39,  "DNAME" },
+  { 41,  "OPT" },
+  { 250, "TSIG" },
+  { 251, "IXFR" },
+  { 252, "AXFR" },
+  { 253, "MAILB" },
+  { 254, "MAILA" },
+  { 255, "ANY" }
+};
+
 static void cache_free(struct crec *crecp);
 static void cache_unlink(struct crec *crecp);
 static void cache_link(struct crec *crecp);
@@ -66,17 +100,19 @@ void cache_init(int size, int logq)
 
 static struct crec **hash_bucket(char *name)
 {
-  unsigned int c, val = 0;
-  
-  /* don't use tolower and friends here - they may be messed up by LOCALE */
+  unsigned int c, val = 017465; /* Barker code - minimum self-correlationin cyclic shift */
+  const unsigned char *mix_tab = (const unsigned char*)typestr; 
+
   while((c = (unsigned char) *name++))
-    if (c >= 'A' && c <= 'Z')
-      val += c + 'a' - 'A';
-    else
-      val += c;
+    {
+      /* don't use tolower and friends here - they may be messed up by LOCALE */
+      if (c >= 'A' && c <= 'Z')
+       c += 'a' - 'A';
+      val = ((val << 7) | (val >> (32 - 7))) + (mix_tab[(val + c) & 0x1F] ^ c);
+    } 
   
   /* hash_size is a power of two */
-  return hash_table + (val & (hash_size - 1));
+  return hash_table + ((val ^ (val >> 16)) & (hash_size - 1));
 }
 
 static void cache_hash(struct crec *crecp)
@@ -909,38 +945,6 @@ void log_query(unsigned short flags, char *name, struct all_addr *addr,
   else if (flags & F_QUERY)
     {
       unsigned int i;
-      static const struct {
-       unsigned int type;
-       const char * const name;
-      } typestr[] = {
-       { 1,   "A" },
-       { 2,   "NS" },
-       { 5,   "CNAME" },
-       { 6,   "SOA" },
-       { 10,  "NULL" },
-       { 11,  "WKS" },
-       { 12,  "PTR" },
-       { 13,  "HINFO" },       
-        { 15,  "MX" },
-       { 16,  "TXT" },
-       { 22,  "NSAP" },
-       { 23,  "NSAP_PTR" },
-       { 24,  "SIG" },
-       { 25,  "KEY" },
-       { 28,  "AAAA" },
-       { 33,  "SRV" },
-        { 36,  "KX" },
-        { 37,  "CERT" },
-        { 38,  "A6" },
-        { 39,  "DNAME" },
-       { 41,  "OPT" },
-       { 250, "TSIG" },
-       { 251, "IXFR" },
-       { 252, "AXFR" },
-        { 253, "MAILB" },
-       { 254, "MAILA" },
-       { 255, "ANY" }
-      };
       
       if (type != 0)
         {
index 0e842f6f65b65bbb378bf2e2d830f2c0696644c5..50c8e408207a1dadfa2720e38f9c9a8cf48c6fbb 100644 (file)
    GNU General Public License for more details.
 */
 
-#define VERSION "2.33"
+#define VERSION "2.34"
 
 #define FTABSIZ 150 /* max number of outstanding requests (default) */
 #define MAX_PROCS 20 /* max no children for TCP requests */
 #define CHILD_LIFETIME 150 /* secs 'till terminated (RFC1035 suggests > 120s) */
 #define EDNS_PKTSZ 1280 /* default max EDNS.0 UDP packet from RFC2671 */
-#define TIMEOUT 20 /* drop UDP queries after TIMEOUT seconds */
+#define TIMEOUT 10 /* drop UDP queries after TIMEOUT seconds */
 #define LEASE_RETRY 60 /* on error, retry writing leasefile after LEASE_RETRY seconds */
-#define LOGRATE 120 /* log table overflows every LOGRATE seconds */
 #define CACHESIZ 150 /* default cache size */
 #define MAXLEASES 150 /* maximum number of DHCP leases */
 #define PING_WAIT 3 /* wait for ping address-in-use test */
index 08200bd3f397e7ebacbb957c80dfede62598b363..9b3d247a3354d48a389976bd35210aab5ded8fae 100644 (file)
@@ -282,8 +282,8 @@ char *dbus_init(struct daemon *daemon)
 }
  
 
-int set_dbus_listeners(struct daemon *daemon, int maxfd,
-                      fd_set *rset, fd_set *wset, fd_set *eset)
+void set_dbus_listeners(struct daemon *daemon, int *maxfdp,
+                       fd_set *rset, fd_set *wset, fd_set *eset)
 {
   struct watch *w;
   
@@ -293,8 +293,7 @@ int set_dbus_listeners(struct daemon *daemon, int maxfd,
        unsigned int flags = dbus_watch_get_flags(w->watch);
        int fd = dbus_watch_get_fd(w->watch);
        
-       if (fd > maxfd)
-         maxfd = fd;
+       bump_maxfd(fd, maxfdp);
        
        if (flags & DBUS_WATCH_READABLE)
          FD_SET(fd, rset);
@@ -304,7 +303,6 @@ int set_dbus_listeners(struct daemon *daemon, int maxfd,
        
        FD_SET(fd, eset);
       }
-  return maxfd;
 }
 
 void check_dbus_listeners(struct daemon *daemon,
index 6966979ba25f4955d99dd560d7a92403904e82a2..72067bda6d89dff6d9046bf8e251796a9f4f5af4 100644 (file)
@@ -138,7 +138,7 @@ void dhcp_packet(struct daemon *daemon, time_t now)
   msg.msg_name = &dest;
   msg.msg_namelen = sizeof(dest);
 
-  while ((sz = recvmsg(daemon->dhcpfd, &msg, 0)) && errno == EINTR);
+  while ((sz = recvmsg(daemon->dhcpfd, &msg, 0)) == -1 && errno == EINTR);
  
   if ((msg.msg_flags & MSG_TRUNC) ||
       sz < (ssize_t)(sizeof(*mess) - sizeof(mess->options)))
@@ -205,8 +205,7 @@ void dhcp_packet(struct daemon *daemon, time_t now)
   iov.iov_len = dhcp_reply(daemon, parm.current, ifr.ifr_name, (size_t)sz, now, unicast_dest);
   lease_update_file(daemon, now);
   lease_update_dns(daemon);
-  lease_collect(daemon);
-  
+    
   if (iov.iov_len == 0)
     return;
   
@@ -625,7 +624,7 @@ void dhcp_read_ethers(struct daemon *daemon)
   struct in_addr addr;
   unsigned char hwaddr[ETHER_ADDR_LEN];
   struct dhcp_config **up, *tmp;
-  struct dhcp_config *config, *configs = daemon->dhcp_conf;
+  struct dhcp_config *config;
   int count = 0, lineno = 0;
 
   addr.s_addr = 0; /* eliminate warning */
@@ -637,7 +636,7 @@ void dhcp_read_ethers(struct daemon *daemon)
     }
 
   /* This can be called again on SIGHUP, so remove entries created last time round. */
-  for (up = &daemon->dhcp_conf, config = configs; config; config = tmp)
+  for (up = &daemon->dhcp_conf, config = daemon->dhcp_conf; config; config = tmp)
     {
       tmp = config->next;
       if (config->flags & CONFIG_FROM_ETHERS)
@@ -686,7 +685,7 @@ void dhcp_read_ethers(struct daemon *daemon)
 
          flags = CONFIG_ADDR;
          
-         for (config = configs; config; config = config->next)
+         for (config = daemon->dhcp_conf; config; config = config->next)
            if ((config->flags & CONFIG_ADDR) && config->addr.s_addr == addr.s_addr)
              break;
        }
@@ -700,14 +699,14 @@ void dhcp_read_ethers(struct daemon *daemon)
 
          flags = CONFIG_NAME;
 
-         for (config = configs; config; config = config->next)
+         for (config = daemon->dhcp_conf; config; config = config->next)
            if ((config->flags & CONFIG_NAME) && hostname_isequal(config->hostname, ip))
              break;
        }
       
       if (!config)
        { 
-         for (config = configs; config; config = config->next)
+         for (config = daemon->dhcp_conf; config; config = config->next)
            if ((config->flags & CONFIG_HWADDR) && 
                config->wildcard_mask == 0 &&
                config->hwaddr_len == ETHER_ADDR_LEN &&
@@ -721,8 +720,8 @@ void dhcp_read_ethers(struct daemon *daemon)
                continue;
              config->flags = CONFIG_FROM_ETHERS;
              config->wildcard_mask = 0;
-             config->next = configs;
-             configs = config;
+             config->next = daemon->dhcp_conf;
+             daemon->dhcp_conf = config;
            }
          
          config->flags |= flags;
@@ -749,8 +748,6 @@ void dhcp_read_ethers(struct daemon *daemon)
   fclose(f);
 
   syslog(LOG_INFO, _("read %s - %d addresses"), ETHERSFILE, count);
-  
-  daemon->dhcp_conf =  configs;
 }
 
 void dhcp_update_configs(struct dhcp_config *configs)
index 3947d590a6d61f475d47613e992ad6062f3013aa..788e1681f2d848b1037af5e11d708999ab109fc6 100644 (file)
@@ -24,6 +24,9 @@ static char *compile_opts =
 #ifdef HAVE_BROKEN_RTC
 "no-RTC "
 #endif
+#ifdef NO_FORK
+"no-MMU "
+#endif
 #ifndef HAVE_ISC_READER
 "no-"
 #endif
@@ -40,7 +43,7 @@ static char *compile_opts =
 static pid_t pid;
 static int pipewrite;
 
-static int set_dns_listeners(struct daemon *daemon, fd_set *set, int maxfd);
+static int set_dns_listeners(struct daemon *daemon, time_t now, fd_set *set, int *maxfdp);
 static void check_dns_listeners(struct daemon *daemon, fd_set *set, time_t now);
 static void sig_handler(int sig);
 
@@ -195,62 +198,18 @@ int main (int argc, char **argv)
   /* prime the pipe to load stuff first time. */
   sig = SIGHUP; 
   write(pipewrite, &sig, 1);
-  if (daemon->options & OPT_DEBUG)   
-    {
-#ifdef LOG_PERROR
-      openlog("dnsmasq", LOG_PERROR, daemon->log_fac);
-#else
-      openlog("dnsmasq", 0, daemon->log_fac);
-#endif
-      
-#ifdef HAVE_LINUX_NETWORK
-      prctl(PR_SET_DUMPABLE, 1);
-#endif
-    }
-  else
+  
+  if (!(daemon->options & OPT_DEBUG))   
     {
       FILE *pidfile;
-      struct passwd *ent_pw = daemon->username ? getpwnam(daemon->username) : NULL;
       fd_set test_set;
-      int maxfd, i; 
+      int maxfd = -1, i; 
       int nullfd = open("/dev/null", O_RDWR);
 
-#ifdef HAVE_LINUX_NETWORK
-      cap_user_header_t hdr = NULL;
-      cap_user_data_t data = NULL; 
-      
-      /* On linux, we keep CAP_NETADMIN (for ARP-injection) and
-        CAP_NET_RAW (for icmp) if we're doing dhcp */
-      if (ent_pw && ent_pw->pw_uid != 0)
-       {
-         hdr = safe_malloc(sizeof(*hdr));
-         data = safe_malloc(sizeof(*data));
-         hdr->version = _LINUX_CAPABILITY_VERSION;
-         hdr->pid = 0; /* this process */
-         data->effective = data->permitted = data->inheritable =
-           (1 << CAP_NET_ADMIN) | (1 << CAP_NET_RAW) |
-           (1 << CAP_SETGID) | (1 << CAP_SETUID);
-                 
-         /* Tell kernel to not clear capabilities when dropping root */
-         if (capset(hdr, data) == -1 || prctl(PR_SET_KEEPCAPS, 1) == -1)
-           {
-             bad_capabilities = errno;
-             ent_pw = NULL;
-           }
-       }
-#endif
-
-      FD_ZERO(&test_set);
-      maxfd = set_dns_listeners(daemon, &test_set, -1);
-#ifdef HAVE_DBUS
-      maxfd = set_dbus_listeners(daemon, maxfd, &test_set, &test_set, &test_set);
-#endif
-      
       /* The following code "daemonizes" the process. 
         See Stevens section 12.4 */
-      
-#ifndef NO_FORK
+
+#ifndef NO_FORK      
       if (!(daemon->options & OPT_NO_FORK))
        {
          if (fork() != 0 )
@@ -274,7 +233,12 @@ int main (int argc, char **argv)
        }
       
       umask(0);
-
+      
+      FD_ZERO(&test_set);
+      set_dns_listeners(daemon, now, &test_set, &maxfd);
+#ifdef HAVE_DBUS
+      set_dbus_listeners(daemon, &maxfd, &test_set, &test_set, &test_set);
+#endif
       for (i=0; i<64; i++)
        {
          if (i == piperead || i == pipewrite)
@@ -303,7 +267,16 @@ int main (int argc, char **argv)
          else
            close(i);
        }
-
+    }
+  
+  /* if we are to run scripts, we need to fork a helper before dropping root. */
+      daemon->helperfd = create_helper(daemon);
+    
+  if (!(daemon->options & OPT_DEBUG))   
+    {
+      /* UID changing, etc */
+      struct passwd *ent_pw = daemon->username ? getpwnam(daemon->username) : NULL;    
+      
       if (daemon->groupname || ent_pw)
        {
          gid_t dummy;
@@ -318,32 +291,55 @@ int main (int argc, char **argv)
              setgid(gp->gr_gid);
            } 
        }
-
+      
       if (ent_pw && ent_pw->pw_uid != 0)
-       {
-         /* finally drop root */
-         setuid(ent_pw->pw_uid);
-         
+       {     
 #ifdef HAVE_LINUX_NETWORK
-         data->effective = data->permitted = 
-           (1 << CAP_NET_ADMIN) | (1 << CAP_NET_RAW);
-         data->inheritable = 0;
+         /* On linux, we keep CAP_NETADMIN (for ARP-injection) and
+            CAP_NET_RAW (for icmp) if we're doing dhcp */
+         cap_user_header_t hdr = safe_malloc(sizeof(*hdr));
+         cap_user_data_t data = safe_malloc(sizeof(*data));
+         hdr->version = _LINUX_CAPABILITY_VERSION;
+         hdr->pid = 0; /* this process */
+         data->effective = data->permitted = data->inheritable =
+           (1 << CAP_NET_ADMIN) | (1 << CAP_NET_RAW) |
+           (1 << CAP_SETGID) | (1 << CAP_SETUID);
          
-         /* lose the setuid and setgid capbilities */
-         capset(hdr, data);
+         /* Tell kernel to not clear capabilities when dropping root */
+         if (capset(hdr, data) == -1 || prctl(PR_SET_KEEPCAPS, 1) == -1)
+           bad_capabilities = errno;
+         else
 #endif
+           {
+             /* finally drop root */
+             setuid(ent_pw->pw_uid);
+             
+#ifdef HAVE_LINUX_NETWORK
+             data->effective = data->permitted = 
+               (1 << CAP_NET_ADMIN) | (1 << CAP_NET_RAW);
+             data->inheritable = 0;
+             
+             /* lose the setuid and setgid capbilities */
+             capset(hdr, data);
+#endif
+           }
        }
-
-      openlog("dnsmasq", LOG_PID, daemon->log_fac);
     }
+  
+  log_start(daemon);
+  
+#ifdef HAVE_LINUX_NETWORK
+  if (daemon->options & OPT_DEBUG) 
+    prctl(PR_SET_DUMPABLE, 1);
+#endif
 
   if (daemon->cachesize != 0)
     syslog(LOG_INFO, _("started, version %s cachesize %d"), VERSION, daemon->cachesize);
   else
     syslog(LOG_INFO, _("started, version %s cache disabled"), VERSION);
-
+  
   syslog(LOG_INFO, _("compile time options: %s"), compile_opts);
-
+  
 #ifdef HAVE_DBUS
   if (daemon->options & OPT_DBUS)
     {
@@ -399,53 +395,59 @@ int main (int argc, char **argv)
 
   pid = getpid();
   
-  /* Start lease-change script */
-  if (daemon->dhcp)
-    lease_collect(daemon);
-  
   while (1)
     {
-      int maxfd;
+      int maxfd = -1;
       struct timeval t, *tp = NULL;
       fd_set rset, wset, eset;
-
-      t.tv_sec = 0; /* no warning */
       
       FD_ZERO(&rset);
       FD_ZERO(&wset);
       FD_ZERO(&eset);
       
-      maxfd = set_dns_listeners(daemon, &rset, -1);
-       
+      /* if we are out of resources, find how long we have to wait
+        for some to come free, we'll loop around then and restart
+        listening for queries */
+      if ((t.tv_sec = set_dns_listeners(daemon, now, &rset, &maxfd)) != 0)
+       {
+         t.tv_usec = 0;
+         tp = &t;
+       }
+
 #ifdef HAVE_DBUS
       /* Whilst polling for the dbus, wake every quarter second */
       if ((daemon->options & OPT_DBUS) && !daemon->dbus)
        {
+         t.tv_sec = 0;
+         t.tv_usec = 250000;
          tp = &t;
-         tp->tv_sec = 0;
-         tp->tv_usec = 250000;
        }
 
-      maxfd = set_dbus_listeners(daemon, maxfd, &rset, &wset, &eset);
+      set_dbus_listeners(daemon, &maxfd, &rset, &wset, &eset);
 #endif 
   
       if (daemon->dhcp)
        {
          FD_SET(daemon->dhcpfd, &rset);
-         if (daemon->dhcpfd > maxfd)
-           maxfd = daemon->dhcpfd;
+         bump_maxfd(daemon->dhcpfd, &maxfd);
        }
 
 #ifdef HAVE_LINUX_NETWORK
       FD_SET(daemon->netlinkfd, &rset);
-      if (daemon->netlinkfd > maxfd)
-       maxfd = daemon->netlinkfd;
+      bump_maxfd(daemon->netlinkfd, &maxfd);
 #endif
       
       FD_SET(piperead, &rset);
-      if (piperead > maxfd)
-       maxfd = piperead;
-      
+      bump_maxfd(piperead, &maxfd);
+
+      while (helper_buf_empty() && do_script_run(daemon));
+
+      if (!helper_buf_empty())
+       {
+         FD_SET(daemon->helperfd, &wset);
+         bump_maxfd(daemon->helperfd, &maxfd);
+       }
+
       if (select(maxfd+1, &rset, &wset, &eset, tp) < 0)
        {
          /* otherwise undefined after error */
@@ -502,6 +504,8 @@ int main (int argc, char **argv)
                      syslog(LOG_INFO, _("reading %s"), latest->name);
                      warned = 0;
                      check_servers(daemon);
+                     if (daemon->options & OPT_RELOAD)
+                       cache_reload(daemon->options, daemon->namebuff, daemon->domain_suffix, daemon->addn_hosts);
                    }
                  else 
                    {
@@ -541,22 +545,33 @@ int main (int argc, char **argv)
                  {
                    lease_prune(NULL, now);
                    lease_update_file(daemon, now);
-                   lease_collect(daemon);
                  }
                break;
                
              case SIGTERM:
                {
                  int i;
-                 syslog(LOG_INFO, _("exiting on receipt of SIGTERM"));
                  /* Knock all our children on the head. */
                  for (i = 0; i < MAX_PROCS; i++)
                    if (daemon->tcp_pids[i] != 0)
                      kill(daemon->tcp_pids[i], SIGALRM);
                  
+                 /* handle pending lease transitions */
+                 if (daemon->helperfd != -1)
+                   {
+                     /* block in writes until all done */
+                     if ((i = fcntl(daemon->helperfd, F_GETFL)) != -1)
+                       fcntl(daemon->helperfd, F_SETFL, i & ~O_NONBLOCK); 
+                     do {
+                       helper_write(daemon);
+                     } while (!helper_buf_empty() || do_script_run(daemon));
+                     close(daemon->helperfd);
+                   }
+                    
                  if (daemon->lease_stream)
                    fclose(daemon->lease_stream);
-                   
+
+                 syslog(LOG_INFO, _("exiting on receipt of SIGTERM"));
                  exit(0);
                }
 
@@ -568,22 +583,13 @@ int main (int argc, char **argv)
                   whose pid != script_pid are TCP server threads. */ 
                while ((p = waitpid(-1, NULL, WNOHANG)) > 0)
                  {
-                   if (p == daemon->script_pid)
-                     {
-                       daemon->script_pid = 0;
-                       lease_collect(daemon);
-                     }
-                   else
-                     {
-                       int i;
-                       for (i = 0 ; i < MAX_PROCS; i++)
-                         if (daemon->tcp_pids[i] == p)
-                           {
-                             daemon->tcp_pids[i] = 0;
-                             daemon->num_kids--;
-                             break;
-                           }
-                     }
+                   int i;
+                   for (i = 0 ; i < MAX_PROCS; i++)
+                     if (daemon->tcp_pids[i] == p)
+                       {
+                         daemon->tcp_pids[i] = 0;
+                         break;
+                       }
                  }
                break;
              }
@@ -611,6 +617,9 @@ int main (int argc, char **argv)
       
       if (daemon->dhcp && FD_ISSET(daemon->dhcpfd, &rset))
        dhcp_packet(daemon, now);
+
+      if (daemon->helperfd != -1 && FD_ISSET(daemon->helperfd, &wset))
+       helper_write(daemon);
     }
 }
 
@@ -618,7 +627,8 @@ static void sig_handler(int sig)
 {
   if (pid == 0)
     {
-      /* ignore anything other than TERM during startup */
+      /* ignore anything other than TERM during startup
+        and in helper proc. (helper ignore TERM too) */
       if (sig == SIGTERM)
        exit(0);
     }
@@ -632,7 +642,7 @@ static void sig_handler(int sig)
     }
   else
     {
-      /* alarm is used to kill children after a fixed time. */
+      /* alarm is used to kill TCP children after a fixed time. */
       if (sig == SIGALRM)
        _exit(0);
     }
@@ -653,29 +663,42 @@ void clear_cache_and_reload(struct daemon *daemon, time_t now)
     }
 }
 
-static int set_dns_listeners(struct daemon *daemon, fd_set *set, int maxfd)
+static int set_dns_listeners(struct daemon *daemon, time_t now, fd_set *set, int *maxfdp)
 {
   struct serverfd *serverfdp;
   struct listener *listener;
+  int wait, i;
 
+  /* will we be able to get memory? */
+  get_new_frec(daemon, now, &wait);
+  
   for (serverfdp = daemon->sfds; serverfdp; serverfdp = serverfdp->next)
     {
       FD_SET(serverfdp->fd, set);
-      if (serverfdp->fd > maxfd)
-       maxfd = serverfdp->fd;
+      bump_maxfd(serverfdp->fd, maxfdp);
     }
          
   for (listener = daemon->listeners; listener; listener = listener->next)
     {
-      FD_SET(listener->fd, set);
-      if (listener->fd > maxfd)
-       maxfd = listener->fd;
-      FD_SET(listener->tcpfd, set);
-      if (listener->tcpfd > maxfd)
-       maxfd = listener->tcpfd;
+      /* only listen for queries if we have resources */
+      if (wait == 0)
+       {
+         FD_SET(listener->fd, set);
+         bump_maxfd(listener->fd, maxfdp);
+       }
+
+      /* death of a child goes through the select loop, so
+        we don't need to explicitly arrange to wake up here */
+      for (i = 0; i < MAX_PROCS; i++)
+       if (daemon->tcp_pids[i] == 0)
+         {
+           FD_SET(listener->tcpfd, set);
+           bump_maxfd(listener->tcpfd, maxfdp);
+           break;
+         }
     }
 
-  return maxfd;
+  return wait;
 }
 
 static void check_dns_listeners(struct daemon *daemon, fd_set *set, time_t now)
@@ -723,7 +746,7 @@ static void check_dns_listeners(struct daemon *daemon, fd_set *set, time_t now)
                     break;
             }
           
-          if ((daemon->num_kids >= MAX_PROCS) || !iface)
+          if (!iface)
             {
               shutdown(confd, SHUT_RDWR);
               close(confd);
@@ -740,7 +763,6 @@ static void check_dns_listeners(struct daemon *daemon, fd_set *set, time_t now)
                         daemon->tcp_pids[i] = p;
                         break;
                       }
-                  daemon->num_kids++;
                 }
               close(confd);
             }
@@ -869,7 +891,7 @@ int icmp_ping(struct daemon *daemon, struct in_addr addr)
       struct timeval tv;
       fd_set rset;
       struct sockaddr_in faddr;
-      int maxfd; 
+      int maxfd = fd
       socklen_t len = sizeof(faddr);
       
       tv.tv_usec = 250000;
@@ -877,7 +899,7 @@ int icmp_ping(struct daemon *daemon, struct in_addr addr)
       
       FD_ZERO(&rset);
       FD_SET(fd, &rset);
-      maxfd = set_dns_listeners(daemon, &rset, fd);
+      set_dns_listeners(daemon, now, &rset, &maxfd);
                
       if (select(maxfd+1, &rset, NULL, NULL, &tv) < 0)
        FD_ZERO(&rset);
index b0102d2d0cdf1f588919d1ae3de75dff01864982..2c81464ed2fd17d939bdbd867e5affc6e17c4d32 100644 (file)
@@ -111,6 +111,7 @@ extern int capset(cap_user_header_t header, cap_user_data_t data);
 #define OPT_BOOTP_DYNAMIC  1048576
 #define OPT_NO_PING        2097152
 #define OPT_LEASE_RO       4194304
+#define OPT_RELOAD         8388608
 
 struct all_addr {
   union {
@@ -229,8 +230,7 @@ struct serverfd {
 
 struct server {
   union mysockaddr addr, source_addr;
-  struct serverfd *sfd; /* non-NULL if this server has its own fd bound to
-                          a source port */
+  struct serverfd *sfd; 
   char *domain; /* set if this server only handles a domain. */ 
   int flags, tcpfd;
   struct server *next; 
@@ -283,12 +283,19 @@ struct frec {
   struct frec *next;
 };
 
+/* actions in the daemon->helper RPC */
+#define ACTION_DEL           1
+#define ACTION_OLD_HOSTNAME  2
+#define ACTION_OLD           3
+#define ACTION_ADD           4
+
 #define DHCP_CHADDR_MAX 16
 
 struct dhcp_lease {
   int clid_len;          /* length of client identifier */
   unsigned char *clid;   /* clientid */
   char *hostname, *fqdn; /* name from client-hostname option or config */
+  char *old_hostname;    /* hostname before it moved to another lease */
   char auth_name;        /* hostname came from config, not from client */
   char new;              /* newly created */
   char changed;          /* modified */
@@ -300,6 +307,8 @@ struct dhcp_lease {
   int hwaddr_len, hwaddr_type;
   unsigned char hwaddr[DHCP_CHADDR_MAX]; 
   struct in_addr addr;
+  unsigned char *vendorclass, *userclass;
+  unsigned int vendorclass_len, userclass_len;
   struct dhcp_lease *next;
 };
 
@@ -312,6 +321,7 @@ struct dhcp_netid_list {
   struct dhcp_netid *list;
   struct dhcp_netid_list *next;
 };
+
 struct dhcp_config {
   unsigned int flags;
   int clid_len;          /* length of client identifier */
@@ -450,11 +460,10 @@ struct daemon {
   struct server *last_server;
   struct server *srv_save; /* Used for resend on DoD */
   size_t packet_len;       /*      "        "        */
-  pid_t script_pid, tcp_pids[MAX_PROCS];
-  int num_kids;
-  
+  pid_t tcp_pids[MAX_PROCS];
   /* DHCP state */
-  int dhcpfd; 
+  int dhcpfd, helperfd
 #ifdef HAVE_LINUX_NETWORK
   int netlinkfd;
 #else
@@ -534,6 +543,9 @@ int memcmp_masked(unsigned char *a, unsigned char *b, int len,
                  unsigned int mask);
 int expand_buf(struct iovec *iov, size_t size);
 char *print_mac(struct daemon *daemon, unsigned char *mac, int len);
+void bump_maxfd(int fd, int *max);
+void log_start(struct daemon *daemon);
+int read_write(int fd, unsigned char *packet, int size, int rw);
 
 /* option.c */
 struct daemon *read_opts (int argc, char **argv, char *compile_opts);
@@ -544,6 +556,7 @@ void receive_query(struct listener *listen, struct daemon *daemon, time_t now);
 unsigned char *tcp_request(struct daemon *daemon, int confd, time_t now,
                           struct in_addr local_addr, struct in_addr netmask);
 void server_gone(struct daemon *daemon, struct server *server);
+struct frec *get_new_frec(struct daemon *daemon, time_t now, int *wait);
 
 /* network.c */
 struct serverfd *allocate_sfd(union mysockaddr *addr, struct serverfd **sfds);
@@ -592,7 +605,7 @@ struct dhcp_lease *lease_find_by_client(unsigned char *hwaddr, int hw_len, int h
 struct dhcp_lease *lease_find_by_addr(struct in_addr addr);
 void lease_prune(struct dhcp_lease *target, time_t now);
 void lease_update_from_configs(struct daemon *daemon);
-void lease_collect(struct daemon *daemon);
+int do_script_run(struct daemon *daemon);
 
 /* rfc2131.c */
 size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *iface_name, size_t sz, time_t now, int unicast_dest);
@@ -629,6 +642,13 @@ int iface_enumerate(struct daemon *daemon, void *parm,
 char *dbus_init(struct daemon *daemon);
 void check_dbus_listeners(struct daemon *daemon,
                          fd_set *rset, fd_set *wset, fd_set *eset);
-int set_dbus_listeners(struct daemon *daemon, int maxfd
-                      fd_set *rset, fd_set *wset, fd_set *eset);
+void set_dbus_listeners(struct daemon *daemon, int *maxfdp
+                       fd_set *rset, fd_set *wset, fd_set *eset);
 #endif
+
+/* helper.c */
+int create_helper(struct daemon *daemon);
+void helper_write(struct daemon *daemon);
+void queue_script(struct daemon *daemon, int action, 
+                 struct dhcp_lease *lease, char *hostname);
+int helper_buf_empty(void);
index 36e2bb14a7aa5819402f54e95bc41cd17e3d227f..523a6e35eabcf859612ead1bc6dabbfb43332a68 100644 (file)
@@ -14,7 +14,6 @@
 
 static struct frec *frec_list = NULL;
 
-static struct frec *get_new_frec(struct daemon *daemon, time_t now);
 static struct frec *lookup_frec(unsigned short id);
 static struct frec *lookup_frec_by_sender(unsigned short id,
                                          union mysockaddr *addr,
@@ -232,7 +231,7 @@ static void forward_query(struct daemon *daemon, int udpfd, union mysockaddr *ud
       if (gotname)
        flags = search_servers(daemon, now, &addrp, gotname, daemon->namebuff, &type, &domain);
       
-      if (!flags && !(forward = get_new_frec(daemon, now)))
+      if (!flags && !(forward = get_new_frec(daemon, now, NULL)))
        /* table full - server failure. */
        flags = F_NEG;
       
@@ -459,7 +458,6 @@ void reply_query(struct serverfd *sfd, struct daemon *daemon, time_t now)
           header->arcount = htons(0);
           if ((nn = resize_packet(header, (size_t)n, pheader, plen)))
             {
-              forward->forwardall = 1;
               header->qr = 0;
               header->tc = 0;
               forward_query(daemon, -1, NULL, NULL, 0, header, nn, now, forward);
@@ -657,31 +655,6 @@ void receive_query(struct listener *listen, struct daemon *daemon, time_t now)
                  header, (size_t)n, now, NULL);
 }
 
-static int read_write(int fd, unsigned char *packet, int size, int rw)
-{
-  ssize_t n, done;
-  
-  for (done = 0; done < size; done += n)
-    {
-    retry:
-      if (rw)
-       n = read(fd, &packet[done], (size_t)(size - done));
-      else
-       n = write(fd, &packet[done], (size_t)(size - done));
-
-      if (n == 0)
-       return 0;
-      else if (n == -1)
-       {
-         if (errno == EINTR)
-           goto retry;
-         else
-           return 0;
-       }
-    }
-  return 1;
-}
-  
 /* The daemon forks before calling this: it should deal with one connection,
    blocking as neccessary, and then return. Note, need to be a bit careful
    about resources for debug mode, when the fork is suppressed: that's
@@ -837,56 +810,72 @@ unsigned char *tcp_request(struct daemon *daemon, int confd, time_t now,
     }
 }
 
-static struct frec *get_new_frec(struct daemon *daemon, time_t now)
+static struct frec *allocate_frec(time_t now)
 {
-  struct frec *f = frec_list, *oldest = NULL;
-  time_t oldtime = now;
-  int count = 0;
-  static time_t warntime = 0;
-
-  while (f)
+  struct frec *f;
+  
+  if ((f = (struct frec *)malloc(sizeof(struct frec))))
     {
-      if (f->new_id == 0)
-       {
-         f->time = now;
-         return f;
-       }
+      f->next = frec_list;
+      f->time = now;
+      f->new_id = 0;
+      frec_list = f;
+    }
 
-      if (difftime(f->time, oldtime) <= 0)
-       {
-         oldtime = f->time;
-         oldest = f;
-       }
+  return f;
+}
 
-      count++;
-      f = f->next;
-    }
+/* if wait==NULL return a free or older than TIMEOUT record.
+   else return *wait zero if one available, or *wait is delay to
+   when the oldest in-use record will expire. */
+struct frec *get_new_frec(struct daemon *daemon, time_t now, int *wait)
+{
+  struct frec *f, *oldest;
+  int count;
+  
+  if (wait)
+    *wait = 0;
+
+  for (f = frec_list, oldest = NULL, count = 0; f; f = f->next, count++)
+    if (f->new_id == 0)
+      {
+       f->time = now;
+       return f;
+      }
+    else if (!oldest || difftime(f->time, oldest->time) <= 0)
+      oldest = f;
   
   /* can't find empty one, use oldest if there is one
      and it's older than timeout */
-  if (oldest && difftime(now, oldtime)  > TIMEOUT)
+  if (oldest && ((int)difftime(now, oldest->time)) >= TIMEOUT)
     { 
-      oldest->time = now;
+      /* keep stuff for twice timeout if we can by allocating a new
+        record instead */
+      if (difftime(now, oldest->time) < 2*TIMEOUT && 
+         count <= daemon->ftabsize &&
+         (f = allocate_frec(now)))
+       return f;
+
+      if (!wait)
+       {
+         oldest->new_id = 0;
+         oldest->time = now;
+       }
       return oldest;
     }
   
+  /* none available, calculate time 'till oldest record expires */
   if (count > daemon->ftabsize)
-    { /* limit logging rate so syslog isn't DOSed either */
-      if (!warntime || difftime(now, warntime) > LOGRATE)
-       {
-         warntime = now;
-         syslog(LOG_WARNING, _("forwarding table overflow: check for server loops."));
-       }
+    {
+      if (oldest && wait)
+       *wait = oldest->time + (time_t)TIMEOUT - now;
       return NULL;
     }
+  
+  if (!(f = allocate_frec(now)) && wait)
+    /* wait one second on malloc failure */
+    *wait = 1;
 
-  if ((f = (struct frec *)malloc(sizeof(struct frec))))
-    {
-      f->next = frec_list;
-      f->time = now;
-      f->new_id = 0;
-      frec_list = f;
-    }
   return f; /* OK if malloc fails and this is NULL */
 }
  
diff --git a/src/helper.c b/src/helper.c
new file mode 100644 (file)
index 0000000..15ee91b
--- /dev/null
@@ -0,0 +1,330 @@
+/* dnsmasq is Copyright (c) 2000-2006 Simon Kelley
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 dated June, 1991.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+*/
+
+#include "dnsmasq.h"
+
+/* This file has code to fork a helper process which recieves data via a pipe 
+   shared with the main process and which is responsible for calling a script when
+   DHCP leases change.
+
+   The helper process is forked before the main process drops root, so it retains root 
+   privs to pass on to the script. For this reason it tries to be paranoid about 
+   data received from the main process, in case that has been compromised. We don't
+   want the helper to give an attacker root. In particular, the script to be run is
+   not settable via the pipe, once the fork has taken place it is not alterable by the 
+   main process.
+*/
+
+struct script_data
+{
+  unsigned char action, hwaddr_len, hwaddr_type;
+  unsigned char clid_len, hostname_len, uclass_len, vclass_len;
+  struct in_addr addr;
+#ifdef HAVE_BROKEN_RTC
+  unsigned int length;
+#else
+  time_t expires;
+#endif
+  unsigned char hwaddr[DHCP_CHADDR_MAX];
+};
+
+static struct script_data *buf;
+static size_t bytes_in_buf, buf_size;
+
+int create_helper(struct daemon *daemon)
+{
+  pid_t pid;
+  int i, pipefd[2];
+  struct sigaction sigact;
+
+  buf = NULL;
+  buf_size = bytes_in_buf = 0;
+
+  if (!daemon->dhcp || !daemon->lease_change_command)
+    return -1;
+
+  /* create the pipe through which the main program sends us commands,
+   then fork our process. */
+  if (pipe(pipefd) == -1 || !fix_fd(pipefd[1]) || (pid = fork()) == -1)
+    return -1;
+  
+  if (pid != 0)
+    {
+      close(pipefd[0]); /* close reader side */
+      return pipefd[1];
+    }
+
+  /* ignore SIGTERM, so that we can clean up when the main process gets hit */
+  sigact.sa_handler = SIG_IGN;
+  sigact.sa_flags = 0;
+  sigemptyset(&sigact.sa_mask);
+  sigaction(SIGTERM, &sigact, NULL);
+
+  /* close all the sockets etc, we don't need them here */
+  for (i = 0; i < 64; i++)
+    if (i != STDOUT_FILENO && i != STDERR_FILENO && 
+       i != STDIN_FILENO && i != pipefd[0])
+      close(i);
+
+  /* we open our own log connection. */
+  log_start(daemon);
+  
+  /* don't give our end of the pipe to our children */
+  if ((i = fcntl(pipefd[0], F_GETFD)) != -1)
+    fcntl(pipefd[0], F_SETFD, i | FD_CLOEXEC); 
+      
+  /* loop here */
+  while(1)
+    {
+      struct script_data data;
+      char *p, *action_str, *hostname = NULL;
+      unsigned char *buf = (unsigned char *)daemon->namebuff;
+
+      /* we read zero bytes when pipe closed: this is our signal to exit */ 
+      if (!read_write(pipefd[0], (unsigned char *)&data, sizeof(data), 1))
+       _exit(0);
+      
+      if (data.action == ACTION_DEL)
+       action_str = "del";
+      else if (data.action == ACTION_ADD)
+       action_str = "add";
+      else if (data.action == ACTION_OLD || data.action == ACTION_OLD_HOSTNAME)
+       action_str = "old";
+      else
+       continue;
+       
+      /* stringify MAC into dhcp_buff */
+      p = daemon->dhcp_buff;
+      if (data.hwaddr_type != ARPHRD_ETHER || data.hwaddr_len == 0) 
+       p += sprintf(p, "%.2x-", data.hwaddr_type);
+      for (i = 0; (i < data.hwaddr_len) && (i < DHCP_CHADDR_MAX); i++)
+       {
+         p += sprintf(p, "%.2x", data.hwaddr[i]);
+         if (i != data.hwaddr_len - 1)
+           p += sprintf(p, ":");
+       }
+      
+      /* and CLID into packet */
+      if (!read_write(pipefd[0], buf, data.clid_len, 1))
+       continue;
+      for (p = daemon->packet, i = 0; i < data.clid_len; i++)
+       {
+         p += sprintf(p, "%.2x", buf[i]);
+         if (i != data.clid_len - 1) 
+           p += sprintf(p, ":");
+       }
+      
+      /* and expiry or length into dhcp_buff2 */
+#ifdef HAVE_BROKEN_RTC
+      sprintf(daemon->dhcp_buff2, "%u ", data.length);
+#else
+      sprintf(daemon->dhcp_buff2, "%lu ", (unsigned long)data.expires);
+#endif
+      
+      if (!read_write(pipefd[0], buf, data.hostname_len + data.uclass_len + data.vclass_len, 1))
+       continue;
+      
+      if ((pid = fork()) == -1)
+       continue;
+      
+      /* wait for child to complete */
+      if (pid != 0)
+       {
+         int status;
+         waitpid(pid, &status, 0);
+         if (WIFSIGNALED(status))
+           syslog(LOG_WARNING, _("child process killed by signal %d"), WTERMSIG(status));
+         else if (WIFEXITED(status) && WEXITSTATUS(status) != 0)
+           syslog(LOG_WARNING, _("child process exited with status %d"), WEXITSTATUS(status));
+         continue;
+       }
+      
+      if (data.clid_len != 0)
+       setenv("DNSMASQ_CLIENT_ID", daemon->packet, 1);
+      else
+       unsetenv("DNSMASQ_CLIENT_ID");
+      
+#ifdef HAVE_BROKEN_RTC
+      setenv("DNSMASQ_LEASE_LENGTH", daemon->dhcp_buff2, 1);
+      unsetenv("DNSMASQ_LEASE_EXPIRES");
+#else
+      setenv("DNSMASQ_LEASE_EXPIRES", daemon->dhcp_buff2, 1); 
+      unsetenv("DNSMASQ_LEASE_LENGTH");
+#endif
+      
+      if (data.vclass_len != 0)
+       {
+         buf[data.vclass_len - 1] = 0; /* don't trust zero-term */
+         /* cannot have = chars in env - truncate if found . */
+         if ((p = strchr((char *)buf, '=')))
+           *p = 0;
+         setenv("DNSMASQ_VENDOR_CLASS", (char *)buf, 1);
+         buf += data.vclass_len;
+       }
+      else 
+       unsetenv("DNSMASQ_VENDOR_CLASS");
+      
+      if (data.uclass_len != 0)
+       {
+         unsigned char *end = buf + data.uclass_len;
+         buf[data.uclass_len - 1] = 0; /* don't trust zero-term */
+         
+         for (i = 0; buf < end;)
+           {
+             size_t len = strlen((char *)buf) + 1;
+             if ((p = strchr((char *)buf, '=')))
+               *p = 0;
+             if (strlen((char *)buf) != 0)
+               {
+                 sprintf(daemon->dhcp_buff2, "DNSMASQ_USER_CLASS%i", i++);
+                 setenv(daemon->dhcp_buff2, (char *)buf, 1);
+               }
+             buf += len;
+           }
+       }
+      
+      if (data.hostname_len != 0)
+       {
+         hostname = (char *)buf;
+         hostname[data.hostname_len - 1] = 0;
+         canonicalise(hostname);
+       }
+      
+      if (data.action == ACTION_OLD_HOSTNAME && hostname)
+       {
+         setenv("DNSMASQ_OLD_HOSTNAME", hostname, 1);
+         hostname = NULL;
+       }
+      else
+       unsetenv("DNSMASQ_OLD_HOSTNAME");
+      
+      p =  strrchr(daemon->lease_change_command, '/');
+      execl(daemon->lease_change_command, 
+           p ? p+1 : daemon->lease_change_command,
+           action_str, daemon->dhcp_buff, inet_ntoa(data.addr), hostname, (char*)NULL);
+      
+      /* log socket should still be open, right? */
+      syslog(LOG_ERR, _("failed to execute %s: %m"), 
+            daemon->lease_change_command);
+      _exit(0); 
+    }
+}
+
+/* pack up lease data into a buffer */    
+void queue_script(struct daemon *daemon, int action, struct dhcp_lease *lease, char *hostname)
+{
+  unsigned char *p;
+  size_t size;
+  unsigned int hostname_len = 0, clid_len = 0, vclass_len = 0, uclass_len = 0;
+
+  /* no script */
+  if (daemon->helperfd == -1)
+    return;
+
+  if (action == ACTION_ADD)
+    {
+      if (lease->vendorclass)
+       vclass_len = lease->vendorclass_len;
+      if (lease->userclass)
+       uclass_len = lease->userclass_len;
+    }
+  if (lease->clid)
+    clid_len = lease->clid_len;
+  if (hostname)
+    hostname_len = strlen(hostname) + 1;
+
+  size = sizeof(struct script_data) +  clid_len + vclass_len + uclass_len + hostname_len;
+
+  if (size > buf_size)
+    {
+      struct script_data *new;
+      
+      /* start with resonable size, will almost never need extending. */
+      if (size < sizeof(struct script_data) + 200)
+       size = sizeof(struct script_data) + 200;
+
+      if (!(new = malloc(size)))
+       return;
+      if (buf)
+       free(buf);
+      buf = new;
+      buf_size = size;
+    }
+
+  buf->action = action;
+  buf->hwaddr_len = lease->hwaddr_len;
+  buf->hwaddr_type = lease->hwaddr_type;
+  buf->clid_len = clid_len;
+  buf->vclass_len = vclass_len;
+  buf->uclass_len = uclass_len;
+  buf->hostname_len = hostname_len;
+  buf->addr = lease->addr;
+  memcpy(buf->hwaddr, lease->hwaddr, lease->hwaddr_len);
+#ifdef HAVE_BROKEN_RTC 
+  buf->length = lease->length;
+#else
+  buf->expires = lease->expires;
+#endif
+  p = (unsigned char *)(buf+1);
+  if (buf->clid_len != 0)
+    {
+      memcpy(p, lease->clid, clid_len);
+      p += clid_len;
+    }
+  if (buf->vclass_len != 0)
+    {
+      memcpy(p, lease->vendorclass, vclass_len);
+      p += vclass_len;
+    }
+  if (buf->uclass_len != 0)
+    {
+      memcpy(p, lease->userclass, uclass_len);
+      p += uclass_len;
+    }
+  if (buf->hostname_len != 0)
+    {
+      memcpy(p, hostname, hostname_len);
+      p += hostname_len;
+    }
+
+  bytes_in_buf = p - (unsigned char *)buf;
+}
+
+int helper_buf_empty(void)
+{
+  return bytes_in_buf == 0;
+}
+
+void helper_write(struct daemon *daemon)
+{
+  ssize_t rc;
+
+  if (bytes_in_buf == 0)
+    return;
+  
+  if ((rc = write(daemon->helperfd, buf, bytes_in_buf)) != -1)
+    {
+      if (bytes_in_buf != (size_t)rc)
+       memmove(buf, buf + rc, bytes_in_buf - rc); 
+      bytes_in_buf -= rc;
+    }
+  else
+    {
+      if (errno == EAGAIN || errno == EINTR)
+       return;
+      bytes_in_buf = 0;
+    }
+}
+
+
+
index 3c93304c91feb816982c399ccdafd12f7d9555c4..b4f64ccd5bf2be40159cd04fb31b27c6b2027789 100644 (file)
@@ -418,8 +418,11 @@ void lease_set_hostname(struct dhcp_lease *lease, char *name, char *suffix, int
          {
            if (lease_tmp->auth_name && !auth)
              return;
-           lease_tmp->changed = 1; /* call script on change */
-           new_name = lease_tmp->hostname;
+           /* this shouldn't happen unless updates are very quick and the
+              script very slow, we just avoid a memory leak if it does. */
+           if (lease_tmp->old_hostname)
+             free(lease_tmp->old_hostname);
+           lease_tmp->old_hostname = lease_tmp->hostname;
            lease_tmp->hostname = NULL;
            if (lease_tmp->fqdn)
              {
@@ -441,7 +444,13 @@ void lease_set_hostname(struct dhcp_lease *lease, char *name, char *suffix, int
     }
 
   if (lease->hostname)
-    free(lease->hostname);
+    {
+      /* run script to say we lost our old name */
+      if (lease->old_hostname)
+       free(lease->old_hostname);
+      lease->old_hostname = lease->hostname;
+    }
+
   if (lease->fqdn)
     free(lease->fqdn);
   
@@ -454,121 +463,81 @@ void lease_set_hostname(struct dhcp_lease *lease, char *name, char *suffix, int
   lease->changed = 1; /* run script on change */
 }
 
-
-#ifndef NO_FORK
-static pid_t run_script(struct daemon *daemon, char *action, struct dhcp_lease *lease)
-{
-  if (daemon->lease_change_command)
-    {
-      char *addr = inet_ntoa(lease->addr);
-      char *com = strrchr(daemon->lease_change_command, '/');
-      char *p;
-      pid_t pid;
-      int i;
-
-      /* stringify MAC into dhcp_buff */
-      p = daemon->dhcp_buff;
-      if (lease->hwaddr_type != ARPHRD_ETHER || lease->hwaddr_len == 0) 
-       p += sprintf(p, "%.2x-", lease->hwaddr_type);
-      for (i = 0; i < lease->hwaddr_len; i++)
-       {
-         p += sprintf(p, "%.2x", lease->hwaddr[i]);
-         if (i != lease->hwaddr_len - 1)
-           p += sprintf(p, ":");
-       }
-      
-      /* and CLID into namebuff */
-      p = daemon->namebuff;
-      if (lease->clid)
-       for (i = 0; i < lease->clid_len; i++)
-         {
-           p += sprintf(p, "%.2x", lease->clid[i]);
-           if (i != lease->clid_len - 1) 
-             p += sprintf(p, ":");
-         }
-      
-      /* and expiry or length into dhcp_buff2 */
-#ifdef HAVE_BROKEN_RTC
-      sprintf(daemon->dhcp_buff2, "%u ", lease->length);
-#else
-      sprintf(daemon->dhcp_buff2, "%lu ", (unsigned long)lease->expires);
-#endif
-
-      pid = fork();
-      
-      if (pid == -1)
-       return 0; /* fork error */
-      else if (pid != 0)
-       return pid;
-      
-      if (lease->clid && lease->clid_len != 0)
-       setenv("DNSMASQ_CLIENT_ID", daemon->namebuff, 1);
-      else
-       unsetenv("DNSMASQ_CLIENT_ID");
-
-#ifdef HAVE_BROKEN_RTC
-      setenv("DNSMASQ_LEASE_LENGTH", daemon->dhcp_buff2, 1);
-      unsetenv("DNSMASQ_LEASE_EXPIRES");
-#else
-      setenv("DNSMASQ_LEASE_EXPIRES", daemon->dhcp_buff2, 1); 
-      unsetenv("DNSMASQ_LEASE_LENGTH");
-#endif
-
-      execl(daemon->lease_change_command, 
-           com ? com+1 : daemon->lease_change_command,
-           action, daemon->dhcp_buff, addr, lease->hostname, (char*)NULL);
-      
-      /* log socket should still be open, right? */
-      syslog(LOG_ERR, _("failed to execute %s: %m"), 
-            daemon->lease_change_command);
-      _exit(0);        
-    }
-
-  return 0;
-}
-#endif
-
 /* deleted leases get transferred to the old_leases list.
    remove them here, after calling the lease change
-   script. Also run the lease change script on new leases */
-void lease_collect(struct daemon *daemon)
+   script. Also run the lease change script on new/modified leases.
+
+   Return zero if nothing to do. */
+int do_script_run(struct daemon *daemon)
 {
   struct dhcp_lease *lease;
 
-  while (old_leases)
+  if (old_leases)
     {
-      if (daemon->script_pid != 0)
-       return; /* busy */
-      
       lease = old_leases;
-      old_leases = lease->next;
-
-#ifndef NO_FORK
-      daemon->script_pid = run_script(daemon, "del", lease);
-#endif
-            
-      if (lease->hostname)
-       free(lease->hostname); 
-      if (lease->fqdn)
-       free(lease->fqdn);
-      if (lease->clid)
-       free(lease->clid);
-      free(lease);
+                  
+      /* If the lease still has an old_hostname, do the "old" action on that first */
+      if (lease->old_hostname)
+       {
+         queue_script(daemon, ACTION_OLD_HOSTNAME, lease, lease->old_hostname);
+         free(lease->old_hostname);
+         lease->old_hostname = NULL;
+         return 1;
+       }
+      else 
+       {
+         queue_script(daemon, ACTION_DEL, lease, lease->hostname);
+         old_leases = lease->next;
+         
+         if (lease->hostname)
+           free(lease->hostname); 
+         if (lease->fqdn)
+           free(lease->fqdn);
+         if (lease->clid)
+           free(lease->clid);
+         if (lease->vendorclass)
+           free(lease->vendorclass);
+         if (lease->userclass)
+           free(lease->userclass);
+         free(lease);
+           
+         return 1; 
+       }
     }
-
+  
+  /* make sure we announce the loss of a hostname before its new location. */
+  for (lease = leases; lease; lease = lease->next)
+    if (lease->old_hostname)
+      {        
+       queue_script(daemon, ACTION_OLD_HOSTNAME, lease, lease->old_hostname);
+       free(lease->old_hostname);
+       lease->old_hostname = NULL;
+       return 1;
+      }
+  
   for (lease = leases; lease; lease = lease->next)
     if (lease->new || lease->changed || 
        (lease->aux_changed && (daemon->options & OPT_LEASE_RO)))
       {
-       if (daemon->script_pid != 0)
-         return; /* busy */
-
-#ifndef NO_FORK
-       daemon->script_pid = run_script(daemon, lease->new ? "add" : "old", lease);
-#endif
-
+       queue_script(daemon, lease->new ? ACTION_ADD : ACTION_OLD, lease, lease->hostname);
        lease->new = lease->changed = lease->aux_changed = 0;
+       
+       /* these are used for the "add" call, then junked, since they're not in the database */
+       if (lease->vendorclass)
+         {
+           free(lease->vendorclass);
+           lease->vendorclass = NULL;
+         }
+       if (lease->userclass)
+         {
+           free(lease->userclass);
+           lease->userclass = NULL;
+         }
+       
+       return 1;
       }
+
+  return 0; /* nothing to do */
 }
          
 
index 55159ae06b1a98c4d3773f208de197db91bdcfe1..05a66ca5171a18d0689f152480de85eb7604217a 100644 (file)
@@ -403,6 +403,14 @@ void check_servers(struct daemon *daemon)
        {
          port = prettyprint_addr(&new->addr, daemon->namebuff);
 
+         /* 0.0.0.0 is nothing, the stack treats it like 127.0.0.1 */
+         if (new->addr.sa.sa_family == AF_INET &&
+             new->addr.in.sin_addr.s_addr == 0)
+           {
+             free(new);
+             continue;
+           }
+
          for (iface = daemon->interfaces; iface; iface = iface->next)
            if (sockaddr_isequal(&new->addr, &iface->addr))
              break;
index 3b045d692b41ddeafa83fe4a8d0f8d2175c54144..756455278dac68f701e76622775bd303615a4564 100644 (file)
@@ -26,6 +26,10 @@ struct myoption {
 
 #define OPTSTRING "9531yZDNLERKzowefnbvhdkqr:m:p:c:l:s:i:t:u:g:a:x:S:C:A:T:H:Q:I:B:F:G:O:M:X:V:U:j:P:J:W:Y:2:4:6:7:8:0:"
 
+/* options which don't have a one-char version */
+#define LOPT_RELOAD 256
+
+
 #ifdef HAVE_GETOPT_LONG
 static const struct option opts[] =  
 #else
@@ -97,39 +101,41 @@ static const struct myoption opts[] =
     {"log-facility", 1, 0 ,'8'},
     {"leasefile-ro", 0, 0, '9'},
     {"dns-forward-max", 1, 0, '0'},
+    {"clear-on-reload", 0, 0, LOPT_RELOAD },
     { NULL, 0, 0, 0 }
   };
 
 struct optflags {
-  char c;
+  int c;
   unsigned int flag; 
 };
 
 static const struct optflags optmap[] = {
-  { 'b', OPT_BOGUSPRIV },
-  { 'f', OPT_FILTER },
-  { 'q', OPT_LOG },
-  { 'e', OPT_SELFMX },
-  { 'h', OPT_NO_HOSTS },
-  { 'n', OPT_NO_POLL },
-  { 'd', OPT_DEBUG },
-  { 'k', OPT_NO_FORK },
-  { 'K', OPT_AUTHORITATIVE },
-  { 'o', OPT_ORDER },
-  { 'R', OPT_NO_RESOLV },
-  { 'E', OPT_EXPAND },
-  { 'L', OPT_LOCALMX },
-  { 'N', OPT_NO_NEG },
-  { 'D', OPT_NODOTS_LOCAL },
-  { 'z', OPT_NOWILD },
-  { 'Z', OPT_ETHERS },
-  { 'y', OPT_LOCALISE },
-  { '1', OPT_DBUS },
-  { '3', OPT_BOOTP_DYNAMIC },
-  { '5', OPT_NO_PING },
-  { '9', OPT_LEASE_RO },
-  { 'v', 0},
-  { 'w', 0},
+  { 'b',            OPT_BOGUSPRIV },
+  { 'f',            OPT_FILTER },
+  { 'q',            OPT_LOG },
+  { 'e',            OPT_SELFMX },
+  { 'h',            OPT_NO_HOSTS },
+  { 'n',            OPT_NO_POLL },
+  { 'd',            OPT_DEBUG },
+  { 'k',            OPT_NO_FORK },
+  { 'K',            OPT_AUTHORITATIVE },
+  { 'o',            OPT_ORDER },
+  { 'R',            OPT_NO_RESOLV },
+  { 'E',            OPT_EXPAND },
+  { 'L',            OPT_LOCALMX },
+  { 'N',            OPT_NO_NEG },
+  { 'D',            OPT_NODOTS_LOCAL },
+  { 'z',            OPT_NOWILD },
+  { 'Z',            OPT_ETHERS },
+  { 'y',            OPT_LOCALISE },
+  { '1',            OPT_DBUS },
+  { '3',            OPT_BOOTP_DYNAMIC },
+  { '5',            OPT_NO_PING },
+  { '9',            OPT_LEASE_RO },
+  { LOPT_RELOAD,    OPT_RELOAD },
+  { 'v',            0},
+  { 'w',            0},
   { 0, 0 }
 };
 
@@ -201,6 +207,7 @@ static const struct {
   { "-8, --log-facility=facilty", gettext_noop("Log to this syslog facility. (defaults to DAEMON)"), NULL },
   { "-9, --leasefile-ro", gettext_noop("Read leases at startup, but never write the lease file."), NULL },
   { "-0, --dns-forward-max=<queries>", gettext_noop("Maximum number of concurrent DNS queries. (defaults to %s)"), "!" }, 
+  { "    --clear-on-reload", gettext_noop("Clear DNS cache when reloading %s."), RESOLVFILE },
   { NULL, NULL, NULL }
 }; 
 
index ccb1b7afea1c8b75739df1612411ea912b265bf5..3ec4bc1c16e02d3d72815d8b25b3d5ea87c42a77 100644 (file)
@@ -72,7 +72,7 @@ static void bootp_option_put(struct dhcp_packet *mess,
                             struct dhcp_boot *boot_opts, struct dhcp_netid *netids);
 static struct in_addr option_addr(unsigned char *opt);
 static unsigned int option_uint(unsigned char *opt, int size);
-static void log_packet(struct daemon *daemon, char *type, struct in_addr *addr, 
+static void log_packet(struct daemon *daemon, char *type, void *addr, 
                       struct dhcp_packet *mess, char *interface, char *string);
 static unsigned char *option_find(struct dhcp_packet *mess, size_t size, int opt_type, int minsize);
 static unsigned char *option_find1(unsigned char *p, unsigned char *end, int opt, int minsize);
@@ -214,7 +214,7 @@ size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *ifa
   if (mess->giaddr.s_addr || subnet_addr.s_addr || mess->ciaddr.s_addr)
     {
       struct dhcp_context *context_tmp, *context_new = NULL;
-      struct in_addr addr = mess->ciaddr;
+      struct in_addr addr;
       int force = 0;
       
       if (subnet_addr.s_addr)
@@ -227,19 +227,33 @@ size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *ifa
          addr = mess->giaddr;
          force = 1;
        }
+      else
+       {
+         /* If ciaddr is in the hardware derived set of contexts, leave that unchanged */
+         addr = mess->ciaddr;
+         for (context_tmp = context; context_tmp; context_tmp = context_tmp->current)
+           if (context_tmp->netmask.s_addr && 
+               is_same_net(addr, context_tmp->start, context_tmp->netmask) &&
+               is_same_net(addr, context_tmp->end, context_tmp->netmask))
+             {
+               context_new = context;
+               break;
+             }
+       } 
+               
+      if (!context_new)
+       for (context_tmp = daemon->dhcp; context_tmp; context_tmp = context_tmp->next)
+         if (context_tmp->netmask.s_addr  && 
+             is_same_net(addr, context_tmp->start, context_tmp->netmask) &&
+             is_same_net(addr, context_tmp->end, context_tmp->netmask))
+           {
+             context_tmp->current = context_new;
+             context_new = context_tmp;
+           }
       
-      for (context_tmp = daemon->dhcp; context_tmp; context_tmp = context_tmp->next)
-       if (context_tmp->netmask.s_addr  && 
-           is_same_net(addr, context_tmp->start, context_tmp->netmask) &&
-           is_same_net(addr, context_tmp->end, context_tmp->netmask))
-         {
-           context_tmp->current = context_new;
-           context_new = context_tmp;
-         }
-
       if (context_new || force)
        context = context_new;
-
+      
     }
   
   if (!context)
@@ -461,7 +475,10 @@ size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *ifa
      so zero the counts so that we don't get spurious matches between 
      the vendor string and the counts. If the lengths don't add up, we
      assume that the option is a single string and non RFC3004 compliant 
-     and just do the substring match. dhclient provides these broken options. */
+     and just do the substring match. dhclient provides these broken options.
+     The code, later, which sends user-class data to the lease-change script
+     relies on the transformation done here.
+  */
 
   if ((opt = option_find(mess, sz, OPTION_USER_CLASS, 1)))
     {
@@ -552,7 +569,8 @@ size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *ifa
       return 0;
 
     case DHCPRELEASE:
-      if (!(opt = option_find(mess, sz, OPTION_SERVER_IDENTIFIER, INADDRSZ)) ||
+      if (!(context = narrow_context(context, mess->ciaddr)) ||
+         !(opt = option_find(mess, sz, OPTION_SERVER_IDENTIFIER, INADDRSZ)) ||
          (context->local.s_addr != option_addr(opt).s_addr))
        return 0;
       
@@ -613,7 +631,7 @@ size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *ifa
            message = _("no address available");      
        }
       
-      log_packet(daemon, "DISCOVER", opt ? (struct in_addr *)option_ptr(opt) : NULL, mess, iface_name, message); 
+      log_packet(daemon, "DISCOVER", opt ? option_ptr(opt) : NULL, mess, iface_name, message); 
 
       if (message || !(context = narrow_context(context, mess->yiaddr)))
        return 0;
@@ -743,11 +761,42 @@ size_t dhcp_reply(struct daemon *daemon, struct dhcp_context *context, char *ifa
          else if (!clid && mess->hlen == 0)
            message = _("no unique-id");
          
-         else if (!lease && 
-                  !(lease = lease_allocate(mess->yiaddr)))
-           message = _("no leases left");
+         else if (!lease)
+           {        
+             if (!(lease = lease_allocate(mess->yiaddr)))
+               message = _("no leases left");
+             else
+               {
+                 /* copy user-class and vendor class into new lease, for the script */
+                 if ((opt = option_find(mess, sz, OPTION_USER_CLASS, 1)))
+                   {
+                     int len = option_len(opt);
+                     unsigned char *ucp = option_ptr(opt);
+                     /* If the user-class option started as counted strings, the first byte will be zero. */
+                     if (len != 0 && ucp[0] == 0)
+                       ucp++, len--;
+                     if ((lease->userclass = malloc(len+1)))
+                       {
+                         memcpy(lease->userclass, ucp, len);
+                         lease->userclass[len] = 0;
+                         lease->userclass_len = len+1;
+                       }
+                   }
+                 if ((opt = option_find(mess, sz, OPTION_VENDOR_ID, 1)))
+                   {
+                     int len = option_len(opt);
+                     unsigned char *ucp = option_ptr(opt);
+                     if ((lease->vendorclass = malloc(len+1)))
+                       {
+                         memcpy(lease->vendorclass, ucp, len);
+                         lease->vendorclass[len] = 0;
+                         lease->vendorclass_len = len+1;
+                       }
+                   }
+               }  
+           }
        }
-      
+
       if (message)
        {
          log_packet(daemon, "NAK", &mess->yiaddr, mess, iface_name, message);
@@ -869,14 +918,20 @@ static unsigned int calc_time(struct dhcp_context *context, struct dhcp_config *
   return time;
 }
 
-static void log_packet(struct daemon *daemon, char *type, struct in_addr *addr, 
+static void log_packet(struct daemon *daemon, char *type, void *addr, 
                       struct dhcp_packet *mess, char *interface, char *string)
 {
+  struct in_addr a;
+
+  /* addr may be misaligned */
+  if (addr)
+    memcpy(&a, addr, sizeof(a));
+  
   syslog(LOG_INFO, "%s%s(%s) %s%s%s %s",
         type ? "DHCP" : "BOOTP",
         type ? type : "",
         interface, 
-        addr ? inet_ntoa(*addr) : "",
+        addr ? inet_ntoa(a) : "",
         addr ? " " : "",
         print_mac(daemon, mess->chaddr, mess->hlen),
         string ? string : "");
index bb6e3498f283e5ba1c541616f47bcf786c4d78a5..9bfea8b724ba678148ca86f31bd48c0b892e944a 100644 (file)
@@ -410,3 +410,48 @@ char *print_mac(struct daemon *daemon, unsigned char *mac, int len)
   
   return daemon->namebuff;
 }
+
+void bump_maxfd(int fd, int *max)
+{
+  if (fd > *max)
+    *max = fd;
+}
+
+void log_start(struct daemon *daemon)
+{
+  if (daemon->options & OPT_DEBUG)   
+    {
+#ifdef LOG_PERROR
+      openlog("dnsmasq", LOG_PERROR, daemon->log_fac);
+#else
+      openlog("dnsmasq", 0, daemon->log_fac);
+#endif
+    }
+  else
+    openlog("dnsmasq", LOG_PID, daemon->log_fac);
+}
+
+int read_write(int fd, unsigned char *packet, int size, int rw)
+{
+  ssize_t n, done;
+  
+  for (done = 0; done < size; done += n)
+    {
+    retry:
+      if (rw)
+        n = read(fd, &packet[done], (size_t)(size - done));
+      else
+        n = write(fd, &packet[done], (size_t)(size - done));
+
+      if (n == 0)
+        return 0;
+      else if (n == -1)
+        {
+          if (errno == EINTR || errno == ENOMEM || errno == ENOBUFS)
+            goto retry;
+          else
+            return 0;
+        }
+    }
+  return 1;
+}