From 3db76737be0ad9d059cb2bedad7c38dd001de68a Mon Sep 17 00:00:00 2001
From: dowright <dowright@nationofnobodies.com>
Date: Mon, 23 Aug 2021 22:31:19 -0700
Subject: [PATCH] work on new packet

---
 new_packet.pxd | 2 +-
 new_packet.pyx | 5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/new_packet.pxd b/new_packet.pxd
index 75bb486..71a7fdb 100644
--- a/new_packet.pxd
+++ b/new_packet.pxd
@@ -200,7 +200,7 @@ cdef class CPacket:
 
     cdef int nf_callback(self, nfq_q_handle *qh, nfgenmsg *nfmsg, nfq_data *nfa, void *data)
     cdef void parse(self, nfq_q_handle *qh, nfq_data *nfa) nogil
-    cdef void _parse(self, unsigned char **data)
+    cdef void _parse(self, unsigned char **data) nogil
     cdef void verdict(self, u_int32_t verdict)
 
 cdef class NetfilterQueue:
diff --git a/new_packet.pyx b/new_packet.pyx
index be8ae95..e1301eb 100644
--- a/new_packet.pyx
+++ b/new_packet.pyx
@@ -48,7 +48,8 @@ cdef class CPacket:
         # cdef object user_callback = <object > nfqueue.user_callback
 
         packet = CPacket()
-        packet.parse(qh, nfa)
+        with nogil:
+            packet.parse(qh, nfa)
 
         return 1
 
@@ -88,7 +89,7 @@ cdef class CPacket:
         # with gil:
             # callback(self)
 
-    cdef void _parse(self, unsigned char **data):
+    cdef void _parse(self, unsigned char **data) nogil:
         '''Index tcp/ip packet layers 3 & 4 for use as instance objects.
         the before_exit method will be called before returning, which can be used to create
         subclass specific objects like namedtuples or application layer data.'''