|
|
@@ -1,6 +1,6 @@
|
|
|
--- a/src/dnsmasq.c
|
|
|
+++ b/src/dnsmasq.c
|
|
|
-@@ -2097,6 +2097,10 @@
|
|
|
+@@ -2123,6 +2123,10 @@ static void do_tcp_connection(struct lis
|
|
|
daemon->pipe_to_parent = pipefd[1];
|
|
|
}
|
|
|
|
|
|
@@ -13,7 +13,7 @@
|
|
|
Reset that here. */
|
|
|
--- a/src/dnsmasq.h
|
|
|
+++ b/src/dnsmasq.h
|
|
|
-@@ -1670,14 +1670,26 @@ void emit_dbus_signal(int action, struct
|
|
|
+@@ -1722,14 +1722,26 @@ void emit_dbus_signal(int action, struct
|
|
|
|
|
|
/* ubus.c */
|
|
|
#ifdef HAVE_UBUS
|
|
|
@@ -50,7 +50,7 @@
|
|
|
+ if ((daemon->doctors || ubus_dns_notify_has_subscribers()) && do_doctor(header, n, daemon->namebuff))
|
|
|
cache_secure = 0;
|
|
|
|
|
|
- /* check_for_bogus_wildcard() does it's own caching, so
|
|
|
+ /* check_for_bogus_wildcard() does its own caching, so
|
|
|
--- a/src/rfc1035.c
|
|
|
+++ b/src/rfc1035.c
|
|
|
@@ -13,8 +13,10 @@
|
|
|
@@ -63,9 +63,9 @@
|
|
|
+#include <libubox/blobmsg.h>
|
|
|
+#endif
|
|
|
|
|
|
- int extract_name(struct dns_header *header, size_t plen, unsigned char **pp,
|
|
|
- char *name, int isExtract, int extrabytes)
|
|
|
-@@ -384,10 +386,65 @@ static int private_net6(struct in6_addr
|
|
|
+ /* EXTR_NAME_EXTRACT -> extract name
|
|
|
+ EXTR_NAME_COMPARE -> compare name, case insensitive
|
|
|
+@@ -444,10 +446,65 @@ int private_net6(struct in6_addr *a, int
|
|
|
((u32 *)a)[0] == htonl(0x20010db8); /* RFC 6303 4.6 */
|
|
|
}
|
|
|
|
|
|
@@ -132,7 +132,7 @@
|
|
|
int done = 0;
|
|
|
|
|
|
if (!(p = skip_questions(header, qlen)))
|
|
|
-@@ -404,7 +461,7 @@ int do_doctor(struct dns_header *header,
|
|
|
+@@ -464,7 +521,7 @@ int do_doctor(struct dns_header *header,
|
|
|
|
|
|
GETSHORT(qtype, p);
|
|
|
GETSHORT(qclass, p);
|
|
|
@@ -141,7 +141,7 @@
|
|
|
GETSHORT(rdlen, p);
|
|
|
|
|
|
if (qclass == C_IN && qtype == T_A)
|
|
|
-@@ -415,6 +472,9 @@ int do_doctor(struct dns_header *header,
|
|
|
+@@ -475,6 +532,9 @@ int do_doctor(struct dns_header *header,
|
|
|
if (!CHECK_LEN(header, p, qlen, INADDRSZ))
|
|
|
return done;
|
|
|
|
|
|
@@ -151,7 +151,7 @@
|
|
|
/* alignment */
|
|
|
memcpy(&addr.addr4, p, INADDRSZ);
|
|
|
|
|
|
-@@ -444,6 +504,14 @@ int do_doctor(struct dns_header *header,
|
|
|
+@@ -504,6 +564,14 @@ int do_doctor(struct dns_header *header,
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -222,7 +222,7 @@
|
|
|
static int ubus_handle_metrics(struct ubus_context *ctx, struct ubus_object *obj,
|
|
|
struct ubus_request_data *req, const char *method,
|
|
|
struct blob_attr *msg)
|
|
|
-@@ -328,6 +354,53 @@ fail:
|
|
|
+@@ -333,6 +359,53 @@ fail:
|
|
|
} \
|
|
|
} while (0)
|
|
|
|