mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 18:28:25 +00:00
DHCPv4 relay-agent options exposed to DHCP-script.
This commit is contained in:
@@ -31,6 +31,13 @@ version 2.66
|
|||||||
the local DNS server if dnsmasq is configured to not act
|
the local DNS server if dnsmasq is configured to not act
|
||||||
as DNS server, or it's configured to a non-standard port.
|
as DNS server, or it's configured to a non-standard port.
|
||||||
|
|
||||||
|
Add DNSMASQ_CIRCUIT_ID, DNSMASQ_SUBCRIBER_ID,
|
||||||
|
DNSMASQ_REMOTE_ID variables to the environment of the
|
||||||
|
lease-change script (and the correponding Lua). These hold
|
||||||
|
information inserted into the DHCP request by a DHCP relay
|
||||||
|
agent. Thanks to Lakefield Communications for providing a
|
||||||
|
bounty for this addition.
|
||||||
|
|
||||||
|
|
||||||
version 2.65
|
version 2.65
|
||||||
Fix regression which broke forwarding of queries sent via
|
Fix regression which broke forwarding of queries sent via
|
||||||
|
|||||||
@@ -1230,6 +1230,9 @@ For IPv4 only:
|
|||||||
|
|
||||||
DNSMASQ_CLIENT_ID if the host provided a client-id.
|
DNSMASQ_CLIENT_ID if the host provided a client-id.
|
||||||
|
|
||||||
|
DNSMASQ_CIRCUIT_ID, DNSMASQ_SUBSCRIBER_ID, DNSMASQ_REMOTE_ID if a
|
||||||
|
DHCP relay-agent added any of these options.
|
||||||
|
|
||||||
If the client provides vendor-class, DNSMASQ_VENDOR_CLASS.
|
If the client provides vendor-class, DNSMASQ_VENDOR_CLASS.
|
||||||
|
|
||||||
For IPv6 only:
|
For IPv6 only:
|
||||||
|
|||||||
@@ -397,6 +397,9 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
|
|||||||
buf = grab_extradata_lua(buf, end, "cpewan_oui");
|
buf = grab_extradata_lua(buf, end, "cpewan_oui");
|
||||||
buf = grab_extradata_lua(buf, end, "cpewan_serial");
|
buf = grab_extradata_lua(buf, end, "cpewan_serial");
|
||||||
buf = grab_extradata_lua(buf, end, "cpewan_class");
|
buf = grab_extradata_lua(buf, end, "cpewan_class");
|
||||||
|
buf = grab_extradata_lua(buf, end, "circuit_id");
|
||||||
|
buf = grab_extradata_lua(buf, end, "subscriber_id");
|
||||||
|
buf = grab_extradata_lua(buf, end, "remote_id");
|
||||||
}
|
}
|
||||||
|
|
||||||
buf = grab_extradata_lua(buf, end, "tags");
|
buf = grab_extradata_lua(buf, end, "tags");
|
||||||
@@ -528,6 +531,9 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
|
|||||||
buf = grab_extradata(buf, end, "DNSMASQ_CPEWAN_OUI", &err);
|
buf = grab_extradata(buf, end, "DNSMASQ_CPEWAN_OUI", &err);
|
||||||
buf = grab_extradata(buf, end, "DNSMASQ_CPEWAN_SERIAL", &err);
|
buf = grab_extradata(buf, end, "DNSMASQ_CPEWAN_SERIAL", &err);
|
||||||
buf = grab_extradata(buf, end, "DNSMASQ_CPEWAN_CLASS", &err);
|
buf = grab_extradata(buf, end, "DNSMASQ_CPEWAN_CLASS", &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_REMOTE_ID", &err);
|
||||||
}
|
}
|
||||||
|
|
||||||
buf = grab_extradata(buf, end, "DNSMASQ_TAGS", &err);
|
buf = grab_extradata(buf, end, "DNSMASQ_TAGS", &err);
|
||||||
|
|||||||
@@ -1257,6 +1257,19 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
|||||||
add_extradata_opt(lease, serial);
|
add_extradata_opt(lease, serial);
|
||||||
add_extradata_opt(lease, class);
|
add_extradata_opt(lease, class);
|
||||||
|
|
||||||
|
if ((opt = option_find(mess, sz, OPTION_AGENT_ID, 1)))
|
||||||
|
{
|
||||||
|
add_extradata_opt(lease, option_find1(option_ptr(opt, 0), option_ptr(opt, option_len(opt)), SUBOPT_CIRCUIT_ID, 1));
|
||||||
|
add_extradata_opt(lease, option_find1(option_ptr(opt, 0), option_ptr(opt, option_len(opt)), SUBOPT_SUBSCR_ID, 1));
|
||||||
|
add_extradata_opt(lease, option_find1(option_ptr(opt, 0), option_ptr(opt, option_len(opt)), SUBOPT_REMOTE_ID, 1));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
add_extradata_opt(lease, NULL);
|
||||||
|
add_extradata_opt(lease, NULL);
|
||||||
|
add_extradata_opt(lease, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/* space-concat tag set */
|
/* space-concat tag set */
|
||||||
if (!tagif_netid)
|
if (!tagif_netid)
|
||||||
add_extradata_opt(lease, NULL);
|
add_extradata_opt(lease, NULL);
|
||||||
|
|||||||
Reference in New Issue
Block a user