diff --git a/new_packet.pxd b/new_packet.pxd index 0d5c35e..49ca104 100644 --- a/new_packet.pxd +++ b/new_packet.pxd @@ -175,6 +175,7 @@ cdef class CPacket: cdef nfqnl_msg_packet_hw *_hw # protocol headers + cdef iphdr *ip_header cdef tcphdr *tcp_header cdef udphdr *udp_header cdef icmphdr *icmp_header diff --git a/new_packet.pyx b/new_packet.pyx index 3fc0f69..9a9f5ce 100644 --- a/new_packet.pyx +++ b/new_packet.pyx @@ -178,14 +178,13 @@ cdef class NetfilterQueue: # processes using this libnetfilter_queue on this protocol family! nfq_close(self.h) - def bind(self, int queue_num, object user_callback, u_int16_t max_len=DEFAULT_MAX_QUEUELEN, + def bind(self, int queue_num, u_int16_t max_len=DEFAULT_MAX_QUEUELEN, u_int8_t mode=NFQNL_COPY_PACKET, u_int16_t range=MaxPacketSize, u_int32_t sock_len=SockRcvSize): '''Create and bind to a new queue.''' cdef unsigned int newsiz - self.user_callback = user_callback - self.qh = nfq_create_queue(self.h, queue_num, global_callback, self) + self.qh = nfq_create_queue(self.h, queue_num, CPacket.nf_callback, self) if self.qh == NULL: raise OSError(f'Failed to create queue {queue_num}')