summaryrefslogtreecommitdiff
path: root/src/dnsmasq.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dnsmasq.c')
-rw-r--r--src/dnsmasq.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/dnsmasq.c b/src/dnsmasq.c
index 2fe9808..422e40f 100644
--- a/src/dnsmasq.c
+++ b/src/dnsmasq.c
@@ -734,7 +734,11 @@ int main (int argc, char **argv)
/* if we are to run scripts, we need to fork a helper before dropping root. */
daemon->helperfd = -1;
#ifdef HAVE_SCRIPT
- if ((daemon->dhcp || daemon->dhcp6 || option_bool(OPT_TFTP) || option_bool(OPT_SCRIPT_ARP)) &&
+ if ((daemon->dhcp ||
+ daemon->dhcp6 ||
+ daemon->relay6 ||
+ option_bool(OPT_TFTP) ||
+ option_bool(OPT_SCRIPT_ARP)) &&
(daemon->lease_change_command || daemon->luascript))
daemon->helperfd = create_helper(pipewrite, err_pipe[1], script_uid, script_gid, max_fd);
#endif
@@ -1139,6 +1143,10 @@ int main (int argc, char **argv)
while (helper_buf_empty() && do_tftp_script_run());
# endif
+# ifdef HAVE_DHCP6
+ while (helper_buf_empty() && do_snoop_script_run());
+# endif
+
if (!helper_buf_empty())
poll_listen(daemon->helperfd, POLLOUT);
#else
@@ -1153,6 +1161,11 @@ int main (int argc, char **argv)
while (do_tftp_script_run());
# endif
+# ifdef HAVE_DHCP6
+ while (helper_buf_empty() && do_snoop_script_run());
+# endif
+
+
#endif