mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 18:28:25 +00:00
Pass MUD URLs (RFC 8520) supplied via DHCPv4 to DHCP scripts
Extract Manufacturer Usage Description (MUD) URL from DHCP Option 161 and make it available to DHCP scripts as DNSMASQ_MUD_URL. See https://datatracker.ietf.org/doc/html/rfc8520#section-17.3 and https://datatracker.ietf.org/doc/html/rfc8520#section-10 Co-authored-by: Jasper Wiegratz <wiegratz@uni-bremen.de>
This commit is contained in:
committed by
Simon Kelley
parent
508d6b4885
commit
b5581ed173
@@ -64,6 +64,7 @@
|
|||||||
#define OPTION_SIP_SERVER 120
|
#define OPTION_SIP_SERVER 120
|
||||||
#define OPTION_VENDOR_IDENT 124
|
#define OPTION_VENDOR_IDENT 124
|
||||||
#define OPTION_VENDOR_IDENT_OPT 125
|
#define OPTION_VENDOR_IDENT_OPT 125
|
||||||
|
#define OPTION_MUD_URL_V4 161
|
||||||
#define OPTION_END 255
|
#define OPTION_END 255
|
||||||
|
|
||||||
#define SUBOPT_CIRCUIT_ID 1
|
#define SUBOPT_CIRCUIT_ID 1
|
||||||
|
|||||||
@@ -633,6 +633,7 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
|
|||||||
buf = grab_extradata(buf, end, "DNSMASQ_CIRCUIT_ID", &err);
|
buf = grab_extradata(buf, end, "DNSMASQ_CIRCUIT_ID", &err);
|
||||||
buf = grab_extradata(buf, end, "DNSMASQ_SUBSCRIBER_ID", &err);
|
buf = grab_extradata(buf, end, "DNSMASQ_SUBSCRIBER_ID", &err);
|
||||||
buf = grab_extradata(buf, end, "DNSMASQ_REMOTE_ID", &err);
|
buf = grab_extradata(buf, end, "DNSMASQ_REMOTE_ID", &err);
|
||||||
|
buf = grab_extradata(buf, end, "DNSMASQ_MUD_URL", &err);
|
||||||
buf = grab_extradata(buf, end, "DNSMASQ_REQUESTED_OPTIONS", &err);
|
buf = grab_extradata(buf, end, "DNSMASQ_REQUESTED_OPTIONS", &err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1417,6 +1417,15 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
|||||||
add_extradata_opt(lease, NULL);
|
add_extradata_opt(lease, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((opt = option_find(mess, sz, OPTION_MUD_URL_V4, 1)))
|
||||||
|
{
|
||||||
|
add_extradata_opt(lease, opt);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
add_extradata_opt(lease, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/* DNSMASQ_REQUESTED_OPTIONS */
|
/* DNSMASQ_REQUESTED_OPTIONS */
|
||||||
if ((opt = option_find(mess, sz, OPTION_REQUESTED_OPTIONS, 1)))
|
if ((opt = option_find(mess, sz, OPTION_REQUESTED_OPTIONS, 1)))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user