def __init__(self, callback, queue_number=0, debug=False):
Thread.__init__(self)
self.debug=debug
self._stop = False
self.nf_queue_started=False
self.queue_number=queue_number
self.q = nfqueue.queue()
self.printDebug("Setting callback")
self.q.set_callback(callback)
self.printDebug("Open nfqueue number %s" % self.queue_number)
try:
self.q.fast_open(self.queue_number, AF_INET6)
self.fd = self.q.get_fd()
self.q.set_queue_maxlen(100000)
asyncore.file_dispatcher.__init__(self, self.fd, None)
self.q.set_mode(nfqueue.NFQNL_COPY_PACKET)
except:
self._stop = True
print "Impossible to open NetFilter Queue {}".format(self.queue_number)
return
self.nf_queue_started=True
self.printDebug("Queue is ready")
评论列表
文章目录