import time
import logging
import logging.handlers
+import threading
import subprocess
import daemon
payload.set_verdict(nfqueue.NF_DROP)
- resp = Ether(src=ifmac, dst=ns.lladdr)/\
+ try:
+ client_lladdr = ns.lladdr
+ except AttributeError:
+ return 1
+
+ resp = Ether(src=ifmac, dst=client_lladdr)/\
IPv6(src=str(ifll), dst=ns.src)/\
ICMPv6ND_NA(R=1, O=0, S=1, tgt=ns.tgt)/\
ICMPv6NDOptDstLLAddr(lladdr=ifmac)
return 1
def send_periodic_ra(self):
+ # Use a separate thread as this may take a _long_ time with
+ # many interfaces and we want to be responsive in the mean time
+ threading.Thread(target=self._send_periodic_ra).start()
+
+ def _send_periodic_ra(self):
logging.debug("Sending out periodic RAs")
start = time.time()
i = 0