include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dnsmasq
-PKG_VERSION:=2.47
-PKG_RELEASE:=3
+PKG_VERSION:=2.49
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
-PKG_MD5SUM:=4524081e56d0b935717d493e8e8d3e11
+PKG_MD5SUM:=7ccc861d8a733474f9c0a0a127006ee9
 
 include $(INCLUDE_DIR)/package.mk
 
 
-Index: dnsmasq-2.47/src/config.h
-===================================================================
---- dnsmasq-2.47.orig/src/config.h     2009-02-15 19:05:25.000000000 +0200 
-+++ dnsmasq-2.47/src/config.h  2009-02-15 19:05:25.000000000 +0200 
-@@ -282,8 +282,9 @@
+--- a/src/config.h
++++ b/src/config.h
+@@ -257,8 +257,9 @@ NOTES:
  /* We assume that systems which don't have IPv6
     headers don't have ntop and pton either */
  
 
+++ /dev/null
-diff -ur dnsmasq-2.47.orig/src/netlink.c dnsmasq-2.47/src/netlink.c
---- dnsmasq-2.47.orig/src/netlink.c    2009-02-15 19:05:25.000000000 +0200
-+++ dnsmasq-2.47/src/netlink.c 2008-02-15 19:05:25.000000000 +0200
-@@ -21,6 +21,10 @@
- #include <linux/types.h>
- #include <linux/netlink.h>
- #include <linux/rtnetlink.h>
-+#ifndef IFA_RTA
-+# include "linux/if_addr.h"
-+# define IFA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
-+#endif
- 
- /* linux 2.6.19 buggers up the headers, patch it up here. */ 
- #ifndef IFA_RTA
 
 --- a/src/netlink.c
 +++ b/src/netlink.c
-@@ -116,6 +116,7 @@
+@@ -129,6 +129,7 @@ int iface_enumerate(void *parm, int (*ip
    ssize_t len;
    static unsigned int seq = 0;
    int family = AF_INET;
  
    struct {
      struct nlmsghdr nlh;
-@@ -187,9 +188,12 @@
+@@ -207,9 +208,12 @@ int iface_enumerate(void *parm, int (*ip
                    rta = RTA_NEXT(rta, len1);
                  }
                
              }
  #ifdef HAVE_IPV6
            else if (ifa->ifa_family == AF_INET6)
-@@ -205,7 +209,7 @@
+@@ -225,7 +229,7 @@ int iface_enumerate(void *parm, int (*ip
                
                if (addrp && ipv6_callback)
                  if (!((*ipv6_callback)(addrp, ifa->ifa_index, ifa->ifa_index, parm)))
          }
 --- a/src/network.c
 +++ b/src/network.c
-@@ -278,7 +278,7 @@
+@@ -296,7 +296,7 @@ static int create_ipv6_listener(struct l
        bind(tcpfd, (struct sockaddr *)&addr, sa_len(&addr)) == -1 ||
        listen(tcpfd, 5) == -1 ||
        bind(fd, (struct sockaddr *)&addr, sa_len(&addr)) == -1)