dnsmasq: bump to dnsmasq v2.80test5
Refresh patches Remove 240-ubus patch as upstream accepted. Add uci option ubus which allows to enable/disable ubus support (enabled by default) Upstream commits since last bump: da8b651 Implement --address=/example.com/# c5db8f9 Tidy 7f876b64c22b2b18412e2e3d8506ee33e42db7c 974a6d0 Add --caa-record b758b67 Improve logging of RRs from --dns-rr. 9bafdc6 Tidy up file parsing code. 97f876b Properly deal with unaligned addresses in DHCPv6 packets. cbfbd17 Fix broken DNSSEC records in previous. b6f926f Don't return NXDOMAIN to empty non-terminals. c822620 Add --dhcp-name-match 397c050 Handle case of --auth-zone but no --auth-server. 1682d15 Add missing EDNS0 section. EDNS0 section missing in replies to EDNS0-containing queries where answer generated from --local=/<domain>/ dd33e98 Fix crash parsing a --synth-domain with no prefix. Problem introduced in 2.79/6b2b564ac34cb3c862f168e6b1457f9f0b9ca69c c16d966 Add copyright to src/metrics.h 1dfed16 Remove C99 only code. 6f835ed Format fixes - ubus.c 9d6fd17 dnsmasq.c fix OPT_UBUS option usage 8c1b6a5 New metrics and ubus files. 8dcdb33 Add --enable-ubus option. aba8bbb Add collection of metrics caf4d57 Add OpenWRT ubus patch Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
This commit is contained in:
		| @@ -8,12 +8,12 @@ | |||||||
| include $(TOPDIR)/rules.mk | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
| PKG_NAME:=dnsmasq | PKG_NAME:=dnsmasq | ||||||
| PKG_VERSION:=2.80test3 | PKG_VERSION:=2.80test5 | ||||||
| PKG_RELEASE:=2 | PKG_RELEASE:=2 | ||||||
|  |  | ||||||
| PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz | ||||||
| PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq/test-releases | PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq/test-releases | ||||||
| PKG_HASH:=af9f6fd13e0d6c5a68059bcf8634c2784c0533017fd48fbaf59cd2955342d301 | PKG_HASH:=e17a4430ead6ec3f5710a55888ed261d9c19281954be5356e9f3a1171990f0d6 | ||||||
|  |  | ||||||
| PKG_LICENSE:=GPL-2.0 | PKG_LICENSE:=GPL-2.0 | ||||||
| PKG_LICENSE_FILES:=COPYING | PKG_LICENSE_FILES:=COPYING | ||||||
| @@ -122,7 +122,8 @@ Package/dnsmasq-full/conffiles = $(Package/dnsmasq/conffiles) | |||||||
| TARGET_CFLAGS += -ffunction-sections -fdata-sections | TARGET_CFLAGS += -ffunction-sections -fdata-sections | ||||||
| TARGET_LDFLAGS += -Wl,--gc-sections | TARGET_LDFLAGS += -Wl,--gc-sections | ||||||
|  |  | ||||||
| COPTS = $(if $(CONFIG_IPV6),,-DNO_IPV6) | COPTS = -DHAVE_UBUS \ | ||||||
|  | 	$(if $(CONFIG_IPV6),,-DNO_IPV6) | ||||||
|  |  | ||||||
| ifeq ($(BUILD_VARIANT),nodhcpv6) | ifeq ($(BUILD_VARIANT),nodhcpv6) | ||||||
| 	COPTS += -DNO_DHCP6 | 	COPTS += -DNO_DHCP6 | ||||||
|   | |||||||
| @@ -813,6 +813,7 @@ dnsmasq_start() | |||||||
| 	append_bool "$cfg" localise_queries "--localise-queries" | 	append_bool "$cfg" localise_queries "--localise-queries" | ||||||
| 	append_bool "$cfg" readethers "--read-ethers" | 	append_bool "$cfg" readethers "--read-ethers" | ||||||
| 	append_bool "$cfg" dbus "--enable-dbus" | 	append_bool "$cfg" dbus "--enable-dbus" | ||||||
|  | 	append_bool "$cfg" ubus "--enable-ubus"	1 | ||||||
| 	append_bool "$cfg" expandhosts "--expand-hosts" | 	append_bool "$cfg" expandhosts "--expand-hosts" | ||||||
| 	config_get tftp_root "$cfg" "tftp_root" | 	config_get tftp_root "$cfg" "tftp_root" | ||||||
| 	[ -n "$tftp_root" ] && mkdir -p "$tftp_root" && append_bool "$cfg" enable_tftp "--enable-tftp" | 	[ -n "$tftp_root" ] && mkdir -p "$tftp_root" && append_bool "$cfg" enable_tftp "--enable-tftp" | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk> | |||||||
|  |  | ||||||
| --- a/src/dnsmasq.h | --- a/src/dnsmasq.h | ||||||
| +++ b/src/dnsmasq.h | +++ b/src/dnsmasq.h | ||||||
| @@ -88,7 +88,7 @@ typedef unsigned long long u64; | @@ -89,7 +89,7 @@ typedef unsigned long long u64; | ||||||
|  #if defined(HAVE_SOLARIS_NETWORK) |  #if defined(HAVE_SOLARIS_NETWORK) | ||||||
|  #  include <sys/sockio.h> |  #  include <sys/sockio.h> | ||||||
|  #endif |  #endif | ||||||
|   | |||||||
| @@ -1,128 +0,0 @@ | |||||||
| --- a/src/dnsmasq.c |  | ||||||
| +++ b/src/dnsmasq.c |  | ||||||
| @@ -19,6 +19,8 @@ |  | ||||||
|   |  | ||||||
|  #include "dnsmasq.h" |  | ||||||
|   |  | ||||||
| +#include <libubus.h> |  | ||||||
| + |  | ||||||
|  struct daemon *daemon; |  | ||||||
|   |  | ||||||
|  static volatile pid_t pid = 0; |  | ||||||
| @@ -32,6 +34,64 @@ static void fatal_event(struct event_des |  | ||||||
|  static int read_event(int fd, struct event_desc *evp, char **msg); |  | ||||||
|  static void poll_resolv(int force, int do_reload, time_t now); |  | ||||||
|   |  | ||||||
| +static struct ubus_context *ubus; |  | ||||||
| +static struct blob_buf b; |  | ||||||
| + |  | ||||||
| +static struct ubus_object_type ubus_object_type = { |  | ||||||
| +	.name = "dnsmasq", |  | ||||||
| +}; |  | ||||||
| + |  | ||||||
| +static struct ubus_object ubus_object = { |  | ||||||
| +	.name = "dnsmasq", |  | ||||||
| +	.type = &ubus_object_type, |  | ||||||
| +}; |  | ||||||
| + |  | ||||||
| +void ubus_event_bcast(const char *type, const char *mac, const char *ip, const char *name, const char *interface) |  | ||||||
| +{ |  | ||||||
| +	if (!ubus || !ubus_object.has_subscribers) |  | ||||||
| +		return; |  | ||||||
| + |  | ||||||
| +	blob_buf_init(&b, 0); |  | ||||||
| +	if (mac) |  | ||||||
| +		blobmsg_add_string(&b, "mac", mac); |  | ||||||
| +	if (ip) |  | ||||||
| +		blobmsg_add_string(&b, "ip", ip); |  | ||||||
| +	if (name) |  | ||||||
| +		blobmsg_add_string(&b, "name", name); |  | ||||||
| +	if (interface) |  | ||||||
| +		blobmsg_add_string(&b, "interface", interface); |  | ||||||
| +	ubus_notify(ubus, &ubus_object, type, b.head, -1); |  | ||||||
| +} |  | ||||||
| + |  | ||||||
| +static void set_ubus_listeners(void) |  | ||||||
| +{ |  | ||||||
| +	if (!ubus) |  | ||||||
| +		return; |  | ||||||
| + |  | ||||||
| +	poll_listen(ubus->sock.fd, POLLIN); |  | ||||||
| +	poll_listen(ubus->sock.fd, POLLERR); |  | ||||||
| +	poll_listen(ubus->sock.fd, POLLHUP); |  | ||||||
| +} |  | ||||||
| + |  | ||||||
| +static void check_ubus_listeners() |  | ||||||
| +{ |  | ||||||
| +	if (!ubus) { |  | ||||||
| +		ubus = ubus_connect(NULL); |  | ||||||
| +		if (ubus) |  | ||||||
| +			ubus_add_object(ubus, &ubus_object); |  | ||||||
| +		else |  | ||||||
| +			return; |  | ||||||
| +	} |  | ||||||
| + |  | ||||||
| +	if (poll_check(ubus->sock.fd, POLLIN)) |  | ||||||
| +		ubus_handle_event(ubus); |  | ||||||
| + |  | ||||||
| +	if (poll_check(ubus->sock.fd, POLLHUP)) { |  | ||||||
| +		ubus_free(ubus); |  | ||||||
| +		ubus = NULL; |  | ||||||
| +	} |  | ||||||
| +} |  | ||||||
| + |  | ||||||
|  int main (int argc, char **argv) |  | ||||||
|  { |  | ||||||
|    int bind_fallback = 0; |  | ||||||
| @@ -949,6 +1009,7 @@ int main (int argc, char **argv) |  | ||||||
|        set_dbus_listeners(); |  | ||||||
|  #endif	 |  | ||||||
|     |  | ||||||
| +      set_ubus_listeners(); |  | ||||||
|  #ifdef HAVE_DHCP |  | ||||||
|        if (daemon->dhcp || daemon->relay4) |  | ||||||
|  	{ |  | ||||||
| @@ -1079,6 +1140,8 @@ int main (int argc, char **argv) |  | ||||||
|        check_dbus_listeners(); |  | ||||||
|  #endif |  | ||||||
|         |  | ||||||
| +      check_ubus_listeners(); |  | ||||||
| + |  | ||||||
|        check_dns_listeners(now); |  | ||||||
|   |  | ||||||
|  #ifdef HAVE_TFTP |  | ||||||
| --- a/Makefile |  | ||||||
| +++ b/Makefile |  | ||||||
| @@ -85,7 +85,7 @@ all : $(BUILDDIR) |  | ||||||
|  	@cd $(BUILDDIR) && $(MAKE) \ |  | ||||||
|   top="$(top)" \ |  | ||||||
|   build_cflags="$(version) $(dbus_cflags) $(idn2_cflags) $(idn_cflags) $(ct_cflags) $(lua_cflags) $(nettle_cflags)" \ |  | ||||||
| - build_libs="$(dbus_libs) $(idn2_libs) $(idn_libs) $(ct_libs) $(lua_libs) $(sunos_libs) $(nettle_libs) $(gmp_libs)" \ |  | ||||||
| + build_libs="$(dbus_libs) $(idn2_libs) $(idn_libs) $(ct_libs) $(lua_libs) $(sunos_libs) $(nettle_libs) $(gmp_libs) -lubox -lubus" \ |  | ||||||
|   -f $(top)/Makefile dnsmasq  |  | ||||||
|   |  | ||||||
|  mostly_clean : |  | ||||||
| --- a/src/dnsmasq.h |  | ||||||
| +++ b/src/dnsmasq.h |  | ||||||
| @@ -1445,6 +1445,8 @@ void emit_dbus_signal(int action, struct |  | ||||||
|  #  endif |  | ||||||
|  #endif |  | ||||||
|   |  | ||||||
| +void ubus_event_bcast(const char *type, const char *mac, const char *ip, const char *name, const char *interface); |  | ||||||
| + |  | ||||||
|  /* ipset.c */ |  | ||||||
|  #ifdef HAVE_IPSET |  | ||||||
|  void ipset_init(void); |  | ||||||
| --- a/src/rfc2131.c |  | ||||||
| +++ b/src/rfc2131.c |  | ||||||
| @@ -1636,6 +1636,10 @@ static void log_packet(char *type, void |  | ||||||
|  	      daemon->namebuff, |  | ||||||
|  	      string ? string : "", |  | ||||||
|  	      err ? err : ""); |  | ||||||
| +  if (!strcmp(type, "DHCPACK")) |  | ||||||
| +	  ubus_event_bcast("dhcp.ack", daemon->namebuff, addr ? inet_ntoa(a) : NULL, string ? string : NULL, interface); |  | ||||||
| +  else if (!strcmp(type, "DHCPRELEASE")) |  | ||||||
| +	  ubus_event_bcast("dhcp.release", daemon->namebuff, addr ? inet_ntoa(a) : NULL, string ? string : NULL, interface); |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  static void log_options(unsigned char *start, u32 xid) |  | ||||||
		Reference in New Issue
	
	Block a user
	 Hans Dedecker
					Hans Dedecker