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 = 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.'''