2012-12-24 04:17:54 +01:00
/* Generated by Cython 0.15.1 on Mon Dec 24 11:15:48 2012 */
2011-05-12 22:45:14 +02:00
# define PY_SSIZE_T_CLEAN
# include "Python.h"
# ifndef Py_PYTHON_H
# error Python headers needed to compile C extensions, please install development version of Python.
# else
# include <stddef.h> /* For offsetof */
# ifndef offsetof
# define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
# endif
# if !defined(WIN32) && !defined(MS_WINDOWS)
# ifndef __stdcall
# define __stdcall
# endif
# ifndef __cdecl
# define __cdecl
# endif
# ifndef __fastcall
# define __fastcall
# endif
# endif
# ifndef DL_IMPORT
# define DL_IMPORT(t) t
# endif
# ifndef DL_EXPORT
# define DL_EXPORT(t) t
# endif
# ifndef PY_LONG_LONG
# define PY_LONG_LONG LONG_LONG
# endif
# if PY_VERSION_HEX < 0x02040000
# define METH_COEXIST 0
# define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type)
# define PyDict_Contains(d,o) PySequence_Contains(d,o)
# endif
# if PY_VERSION_HEX < 0x02050000
typedef int Py_ssize_t ;
# define PY_SSIZE_T_MAX INT_MAX
# define PY_SSIZE_T_MIN INT_MIN
# define PY_FORMAT_SIZE_T ""
# define PyInt_FromSsize_t(z) PyInt_FromLong(z)
2011-10-14 23:14:25 +02:00
# define PyInt_AsSsize_t(o) __Pyx_PyInt_AsInt(o)
2011-05-12 22:45:14 +02:00
# define PyNumber_Index(o) PyNumber_Int(o)
# define PyIndex_Check(o) PyNumber_Check(o)
# define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message)
# endif
# if PY_VERSION_HEX < 0x02060000
# define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
# define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
# define Py_SIZE(ob) (((PyVarObject*)(ob))->ob_size)
# define PyVarObject_HEAD_INIT(type, size) \
PyObject_HEAD_INIT ( type ) size ,
# define PyType_Modified(t)
typedef struct {
void * buf ;
PyObject * obj ;
Py_ssize_t len ;
Py_ssize_t itemsize ;
int readonly ;
int ndim ;
char * format ;
Py_ssize_t * shape ;
Py_ssize_t * strides ;
Py_ssize_t * suboffsets ;
void * internal ;
} Py_buffer ;
# define PyBUF_SIMPLE 0
# define PyBUF_WRITABLE 0x0001
# define PyBUF_FORMAT 0x0004
# define PyBUF_ND 0x0008
# define PyBUF_STRIDES (0x0010 | PyBUF_ND)
# define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
# define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
# define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
# define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
# endif
# if PY_MAJOR_VERSION < 3
# define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
# else
# define __Pyx_BUILTIN_MODULE_NAME "builtins"
# endif
# if PY_MAJOR_VERSION >= 3
# define Py_TPFLAGS_CHECKTYPES 0
# define Py_TPFLAGS_HAVE_INDEX 0
# endif
# if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
# define Py_TPFLAGS_HAVE_NEWBUFFER 0
# endif
# if PY_MAJOR_VERSION >= 3
# define PyBaseString_Type PyUnicode_Type
# define PyStringObject PyUnicodeObject
# define PyString_Type PyUnicode_Type
# define PyString_Check PyUnicode_Check
# define PyString_CheckExact PyUnicode_CheckExact
# endif
# if PY_VERSION_HEX < 0x02060000
# define PyBytesObject PyStringObject
# define PyBytes_Type PyString_Type
# define PyBytes_Check PyString_Check
# define PyBytes_CheckExact PyString_CheckExact
# define PyBytes_FromString PyString_FromString
# define PyBytes_FromStringAndSize PyString_FromStringAndSize
# define PyBytes_FromFormat PyString_FromFormat
# define PyBytes_DecodeEscape PyString_DecodeEscape
# define PyBytes_AsString PyString_AsString
# define PyBytes_AsStringAndSize PyString_AsStringAndSize
# define PyBytes_Size PyString_Size
# define PyBytes_AS_STRING PyString_AS_STRING
# define PyBytes_GET_SIZE PyString_GET_SIZE
# define PyBytes_Repr PyString_Repr
# define PyBytes_Concat PyString_Concat
# define PyBytes_ConcatAndDel PyString_ConcatAndDel
2011-05-13 17:42:05 +02:00
# endif
# if PY_VERSION_HEX < 0x02060000
2011-05-12 22:45:14 +02:00
# define PySet_Check(obj) PyObject_TypeCheck(obj, &PySet_Type)
# define PyFrozenSet_Check(obj) PyObject_TypeCheck(obj, &PyFrozenSet_Type)
# endif
# ifndef PySet_CheckExact
2011-05-13 17:42:05 +02:00
# define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type)
2011-05-12 22:45:14 +02:00
# endif
2011-05-13 17:42:05 +02:00
# define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
2011-05-12 22:45:14 +02:00
# if PY_MAJOR_VERSION >= 3
# define PyIntObject PyLongObject
# define PyInt_Type PyLong_Type
# define PyInt_Check(op) PyLong_Check(op)
# define PyInt_CheckExact(op) PyLong_CheckExact(op)
# define PyInt_FromString PyLong_FromString
# define PyInt_FromUnicode PyLong_FromUnicode
# define PyInt_FromLong PyLong_FromLong
# define PyInt_FromSize_t PyLong_FromSize_t
# define PyInt_FromSsize_t PyLong_FromSsize_t
# define PyInt_AsLong PyLong_AsLong
# define PyInt_AS_LONG PyLong_AS_LONG
# define PyInt_AsSsize_t PyLong_AsSsize_t
# define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
# define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
# endif
# if PY_MAJOR_VERSION >= 3
2011-05-13 17:42:05 +02:00
# define PyBoolObject PyLongObject
2011-05-12 22:45:14 +02:00
# endif
2011-10-14 23:14:25 +02:00
# if PY_VERSION_HEX < 0x03020000
typedef long Py_hash_t ;
# define __Pyx_PyInt_FromHash_t PyInt_FromLong
# define __Pyx_PyInt_AsHash_t PyInt_AsLong
# else
# define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
# define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t
# endif
2011-05-12 22:45:14 +02:00
# if PY_MAJOR_VERSION >= 3
# define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
# define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
# else
# define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
# define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)
# endif
# if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300)
# define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b)
# define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value)
# define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b)
# else
# define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \
( PyErr_SetString ( PyExc_SystemError , " null argument to internal routine " ) , ( PyObject * ) 0 ) : \
( likely ( ( obj ) - > ob_type - > tp_as_mapping ) ? ( PySequence_GetSlice ( obj , a , b ) ) : \
( PyErr_Format ( PyExc_TypeError , " '%.200s' object is unsliceable " , ( obj ) - > ob_type - > tp_name ) , ( PyObject * ) 0 ) ) )
# define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \
( PyErr_SetString ( PyExc_SystemError , " null argument to internal routine " ) , - 1 ) : \
( likely ( ( obj ) - > ob_type - > tp_as_mapping ) ? ( PySequence_SetSlice ( obj , a , b , value ) ) : \
( PyErr_Format ( PyExc_TypeError , " '%.200s' object doesn't support slice assignment " , ( obj ) - > ob_type - > tp_name ) , - 1 ) ) )
# define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \
( PyErr_SetString ( PyExc_SystemError , " null argument to internal routine " ) , - 1 ) : \
( likely ( ( obj ) - > ob_type - > tp_as_mapping ) ? ( PySequence_DelSlice ( obj , a , b ) ) : \
( PyErr_Format ( PyExc_TypeError , " '%.200s' object doesn't support slice deletion " , ( obj ) - > ob_type - > tp_name ) , - 1 ) ) )
# endif
# if PY_MAJOR_VERSION >= 3
# define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
# endif
# if PY_VERSION_HEX < 0x02050000
# define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),((char *)(n)))
# define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
# define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),((char *)(n)))
# else
# define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),(n))
# define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
# define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),(n))
# endif
# if PY_VERSION_HEX < 0x02050000
# define __Pyx_NAMESTR(n) ((char *)(n))
# define __Pyx_DOCSTR(n) ((char *)(n))
# else
# define __Pyx_NAMESTR(n) (n)
# define __Pyx_DOCSTR(n) (n)
# endif
2011-10-14 23:14:25 +02:00
# ifndef __PYX_EXTERN_C
# ifdef __cplusplus
# define __PYX_EXTERN_C extern "C"
# else
# define __PYX_EXTERN_C extern
# endif
2011-05-12 22:45:14 +02:00
# endif
# if defined(WIN32) || defined(MS_WINDOWS)
# define _USE_MATH_DEFINES
# endif
# include <math.h>
2011-10-14 23:14:25 +02:00
# define __PYX_HAVE__netfilterqueue
2011-05-12 22:45:14 +02:00
# define __PYX_HAVE_API__netfilterqueue
# include "sys/types.h"
# include "netinet/ip.h"
# include "sys/time.h"
# include "netinet/in.h"
# include "libnfnetlink/linux_nfnetlink.h"
# include "libnetfilter_queue/linux_nfnetlink_queue.h"
# include "libnetfilter_queue/libnetfilter_queue.h"
# include "sys/socket.h"
2012-12-24 04:17:54 +01:00
# include "string.h"
2011-10-14 23:14:25 +02:00
# ifdef _OPENMP
# include <omp.h>
# endif /* _OPENMP */
2011-05-12 22:45:14 +02:00
# ifdef PYREX_WITHOUT_ASSERTIONS
# define CYTHON_WITHOUT_ASSERTIONS
# endif
/* inline attribute */
# ifndef CYTHON_INLINE
# if defined(__GNUC__)
# define CYTHON_INLINE __inline__
# elif defined(_MSC_VER)
# define CYTHON_INLINE __inline
# elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
# define CYTHON_INLINE inline
# else
# define CYTHON_INLINE
# endif
# endif
/* unused attribute */
# ifndef CYTHON_UNUSED
# if defined(__GNUC__)
# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
# define CYTHON_UNUSED __attribute__ ((__unused__))
# else
# define CYTHON_UNUSED
# endif
# elif defined(__ICC) || defined(__INTEL_COMPILER)
# define CYTHON_UNUSED __attribute__ ((__unused__))
# else
# define CYTHON_UNUSED
# endif
# endif
typedef struct { PyObject * * p ; char * s ; const long n ; const char * encoding ; const char is_unicode ; const char is_str ; const char intern ; } __Pyx_StringTabEntry ; /*proto*/
/* Type Conversion Predeclarations */
# define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s)
# define __Pyx_PyBytes_AsUString(s) ((unsigned char*) PyBytes_AsString(s))
2011-10-14 23:14:25 +02:00
# define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
2011-05-12 22:45:14 +02:00
# define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
static CYTHON_INLINE int __Pyx_PyObject_IsTrue ( PyObject * ) ;
static CYTHON_INLINE PyObject * __Pyx_PyNumber_Int ( PyObject * x ) ;
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t ( PyObject * ) ;
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t ( size_t ) ;
static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t ( PyObject * ) ;
# define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
# ifdef __GNUC__
2011-10-14 23:14:25 +02:00
/* Test for GCC > 2.95 */
# if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))
# define likely(x) __builtin_expect(!!(x), 1)
# define unlikely(x) __builtin_expect(!!(x), 0)
# else /* __GNUC__ > 2 ... */
# define likely(x) (x)
# define unlikely(x) (x)
# endif /* __GNUC__ > 2 ... */
2011-05-12 22:45:14 +02:00
# else /* __GNUC__ */
2011-10-14 23:14:25 +02:00
# define likely(x) (x)
# define unlikely(x) (x)
2011-05-12 22:45:14 +02:00
# endif /* __GNUC__ */
static PyObject * __pyx_m ;
static PyObject * __pyx_b ;
static PyObject * __pyx_empty_tuple ;
static PyObject * __pyx_empty_bytes ;
static int __pyx_lineno ;
static int __pyx_clineno = 0 ;
static const char * __pyx_cfilenm = __FILE__ ;
static const char * __pyx_filename ;
static const char * __pyx_f [ ] = {
" netfilterqueue.pyx " ,
" netfilterqueue.pxd " ,
} ;
2011-10-14 23:14:25 +02:00
/*--- Type declarations ---*/
struct __pyx_obj_14netfilterqueue_Packet ;
struct __pyx_obj_14netfilterqueue_NetfilterQueue ;
2011-05-12 22:45:14 +02:00
2011-05-13 17:42:05 +02:00
/* "netfilterqueue.pxd":19
2011-05-12 22:45:14 +02:00
*
* # Dummy defines from netinet / in . h :
* cdef enum : # < < < < < < < < < < < < < <
* IPPROTO_IP = 0 # Dummy protocol for TCP .
* IPPROTO_HOPOPTS = 0 # IPv6 Hop - by - Hop options .
*/
enum {
__pyx_e_14netfilterqueue_IPPROTO_IP = 0 ,
__pyx_e_14netfilterqueue_IPPROTO_HOPOPTS = 0 ,
__pyx_e_14netfilterqueue_IPPROTO_ICMP = 1 ,
__pyx_e_14netfilterqueue_IPPROTO_IGMP = 2 ,
__pyx_e_14netfilterqueue_IPPROTO_IPIP = 4 ,
__pyx_e_14netfilterqueue_IPPROTO_TCP = 6 ,
__pyx_e_14netfilterqueue_IPPROTO_EGP = 8 ,
__pyx_e_14netfilterqueue_IPPROTO_PUP = 12 ,
__pyx_e_14netfilterqueue_IPPROTO_UDP = 17 ,
__pyx_e_14netfilterqueue_IPPROTO_IDP = 22 ,
__pyx_e_14netfilterqueue_IPPROTO_TP = 29 ,
__pyx_e_14netfilterqueue_IPPROTO_IPV6 = 41 ,
__pyx_e_14netfilterqueue_IPPROTO_ROUTING = 43 ,
__pyx_e_14netfilterqueue_IPPROTO_FRAGMENT = 44 ,
__pyx_e_14netfilterqueue_IPPROTO_RSVP = 46 ,
__pyx_e_14netfilterqueue_IPPROTO_GRE = 47 ,
__pyx_e_14netfilterqueue_IPPROTO_ESP = 50 ,
__pyx_e_14netfilterqueue_IPPROTO_AH = 51 ,
__pyx_e_14netfilterqueue_IPPROTO_ICMPV6 = 58 ,
__pyx_e_14netfilterqueue_IPPROTO_NONE = 59 ,
__pyx_e_14netfilterqueue_IPPROTO_DSTOPTS = 60 ,
__pyx_e_14netfilterqueue_IPPROTO_MTP = 92 ,
__pyx_e_14netfilterqueue_IPPROTO_ENCAP = 98 ,
__pyx_e_14netfilterqueue_IPPROTO_PIM = 103 ,
__pyx_e_14netfilterqueue_IPPROTO_COMP = 108 ,
__pyx_e_14netfilterqueue_IPPROTO_SCTP = 132 ,
__pyx_e_14netfilterqueue_IPPROTO_RAW = 255 ,
__pyx_e_14netfilterqueue_IPPROTO_MAX
} ;
2011-05-13 17:42:05 +02:00
/* "netfilterqueue.pxd":134
2011-05-12 22:45:14 +02:00
*
* # Dummy defines from linux / socket . h :
* cdef enum : # Protocol families , same as address families . # < < < < < < < < < < < < < <
* PF_INET = 2
* PF_INET6 = 10
*/
enum {
__pyx_e_14netfilterqueue_PF_INET = 2 ,
__pyx_e_14netfilterqueue_PF_INET6 = 10
} ;
2011-05-13 17:42:05 +02:00
/* "netfilterqueue.pxd":142
2011-05-12 22:45:14 +02:00
*
* # Dummy defines from linux / netfilter . h
* cdef enum : # < < < < < < < < < < < < < <
* NF_DROP
* NF_ACCEPT
*/
enum {
2011-05-13 17:42:05 +02:00
/* "netfilterqueue.pxd":149
2011-05-12 22:45:14 +02:00
* NF_REPEAT
* NF_STOP
* NF_MAX_VERDICT = NF_STOP # < < < < < < < < < < < < < <
*
2011-05-13 17:42:05 +02:00
* cdef class Packet :
2011-05-12 22:45:14 +02:00
*/
__pyx_e_14netfilterqueue_NF_DROP ,
__pyx_e_14netfilterqueue_NF_ACCEPT ,
__pyx_e_14netfilterqueue_NF_STOLEN ,
__pyx_e_14netfilterqueue_NF_QUEUE ,
__pyx_e_14netfilterqueue_NF_REPEAT ,
__pyx_e_14netfilterqueue_NF_STOP ,
__pyx_e_14netfilterqueue_NF_MAX_VERDICT = __pyx_e_14netfilterqueue_NF_STOP
} ;
2011-05-13 17:42:05 +02:00
/* "netfilterqueue.pxd":151
2011-05-12 22:45:14 +02:00
* NF_MAX_VERDICT = NF_STOP
*
2011-05-13 17:42:05 +02:00
* cdef class Packet : # < < < < < < < < < < < < < <
2011-05-12 22:45:14 +02:00
* cdef nfq_q_handle * _qh
* cdef nfq_data * _nfa
*/
2011-05-13 17:42:05 +02:00
struct __pyx_obj_14netfilterqueue_Packet {
2011-05-12 22:45:14 +02:00
PyObject_HEAD
2011-05-13 17:42:05 +02:00
struct __pyx_vtabstruct_14netfilterqueue_Packet * __pyx_vtab ;
2011-05-12 22:45:14 +02:00
struct nfq_q_handle * _qh ;
struct nfq_data * _nfa ;
struct nfqnl_msg_packet_hdr * _hdr ;
int _verdict_is_set ;
int _mark_is_set ;
u_int32_t _given_mark ;
2012-12-24 04:17:54 +01:00
PyObject * _given_payload ;
2011-05-12 22:45:14 +02:00
u_int32_t id ;
u_int16_t hw_protocol ;
u_int8_t hook ;
Py_ssize_t payload_len ;
char * payload ;
struct timeval timestamp ;
} ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pxd":187
2011-10-14 23:14:25 +02:00
* cpdef drop ( self )
*
* cdef class NetfilterQueue : # < < < < < < < < < < < < < <
* cdef object user_callback # User callback
* cdef nfq_handle * h # Handle to NFQueue library
*/
struct __pyx_obj_14netfilterqueue_NetfilterQueue {
PyObject_HEAD
PyObject * user_callback ;
struct nfq_handle * h ;
struct nfq_q_handle * qh ;
u_int16_t af ;
PyObject * packet_copy_size ;
} ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":35
2011-05-12 22:45:14 +02:00
* return 1
*
2011-05-13 17:42:05 +02:00
* cdef class Packet : # < < < < < < < < < < < < < <
2012-12-24 04:17:54 +01:00
* " " " A packet received from NetfilterQueue. " " "
2011-05-12 22:45:14 +02:00
* def __cinit__ ( self ) :
*/
2011-05-13 17:42:05 +02:00
struct __pyx_vtabstruct_14netfilterqueue_Packet {
PyObject * ( * set_nfq_data ) ( struct __pyx_obj_14netfilterqueue_Packet * , struct nfq_q_handle * , struct nfq_data * ) ;
void ( * verdict ) ( struct __pyx_obj_14netfilterqueue_Packet * , u_int8_t ) ;
Py_ssize_t ( * get_payload_len ) ( struct __pyx_obj_14netfilterqueue_Packet * , int __pyx_skip_dispatch ) ;
double ( * get_timestamp ) ( struct __pyx_obj_14netfilterqueue_Packet * , int __pyx_skip_dispatch ) ;
2012-12-24 04:17:54 +01:00
PyObject * ( * set_payload ) ( struct __pyx_obj_14netfilterqueue_Packet * , PyObject * , int __pyx_skip_dispatch ) ;
2011-05-13 17:42:05 +02:00
PyObject * ( * set_mark ) ( struct __pyx_obj_14netfilterqueue_Packet * , u_int32_t , int __pyx_skip_dispatch ) ;
PyObject * ( * accept ) ( struct __pyx_obj_14netfilterqueue_Packet * , int __pyx_skip_dispatch ) ;
PyObject * ( * drop ) ( struct __pyx_obj_14netfilterqueue_Packet * , int __pyx_skip_dispatch ) ;
2011-05-12 22:45:14 +02:00
} ;
2011-05-13 17:42:05 +02:00
static struct __pyx_vtabstruct_14netfilterqueue_Packet * __pyx_vtabptr_14netfilterqueue_Packet ;
2011-05-12 22:45:14 +02:00
# ifndef CYTHON_REFNANNY
# define CYTHON_REFNANNY 0
# endif
# if CYTHON_REFNANNY
typedef struct {
void ( * INCREF ) ( void * , PyObject * , int ) ;
void ( * DECREF ) ( void * , PyObject * , int ) ;
void ( * GOTREF ) ( void * , PyObject * , int ) ;
void ( * GIVEREF ) ( void * , PyObject * , int ) ;
void * ( * SetupContext ) ( const char * , int , const char * ) ;
void ( * FinishContext ) ( void * * ) ;
} __Pyx_RefNannyAPIStruct ;
static __Pyx_RefNannyAPIStruct * __Pyx_RefNanny = NULL ;
2011-10-14 23:14:25 +02:00
static __Pyx_RefNannyAPIStruct * __Pyx_RefNannyImportAPI ( const char * modname ) ; /*proto*/
# define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
# define __Pyx_RefNannySetupContext(name) __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
2011-05-12 22:45:14 +02:00
# define __Pyx_RefNannyFinishContext() __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
2011-10-14 23:14:25 +02:00
# define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
# define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
# define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
2011-05-12 22:45:14 +02:00
# define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
2011-10-14 23:14:25 +02:00
# define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
# define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
# define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
# define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
2011-05-12 22:45:14 +02:00
# else
2011-10-14 23:14:25 +02:00
# define __Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
# define __Pyx_RefNannySetupContext(name)
# define __Pyx_RefNannyFinishContext()
# define __Pyx_INCREF(r) Py_INCREF(r)
# define __Pyx_DECREF(r) Py_DECREF(r)
# define __Pyx_GOTREF(r)
# define __Pyx_GIVEREF(r)
2011-10-14 23:14:25 +02:00
# define __Pyx_XINCREF(r) Py_XINCREF(r)
2011-05-12 22:45:14 +02:00
# define __Pyx_XDECREF(r) Py_XDECREF(r)
2011-10-14 23:14:25 +02:00
# define __Pyx_XGOTREF(r)
# define __Pyx_XGIVEREF(r)
2011-05-12 22:45:14 +02:00
# endif /* CYTHON_REFNANNY */
static PyObject * __Pyx_GetName ( PyObject * dict , PyObject * name ) ; /*proto*/
2011-10-14 23:14:25 +02:00
# ifndef __PYX_FORCE_INIT_THREADS
# if PY_VERSION_HEX < 0x02040200
# define __PYX_FORCE_INIT_THREADS 1
# else
# define __PYX_FORCE_INIT_THREADS 0
# endif
# endif
2011-05-12 22:45:14 +02:00
static void __Pyx_RaiseArgtupleInvalid ( const char * func_name , int exact ,
Py_ssize_t num_min , Py_ssize_t num_max , Py_ssize_t num_found ) ; /*proto*/
static CYTHON_INLINE int __Pyx_CheckKeywordStrings ( PyObject * kwdict ,
const char * function_name , int kw_allowed ) ; /*proto*/
2011-05-13 17:42:05 +02:00
static CYTHON_INLINE void __Pyx_ErrRestore ( PyObject * type , PyObject * value , PyObject * tb ) ; /*proto*/
static CYTHON_INLINE void __Pyx_ErrFetch ( PyObject * * type , PyObject * * value , PyObject * * tb ) ; /*proto*/
2011-05-12 22:45:14 +02:00
2011-10-14 23:14:25 +02:00
static void __Pyx_Raise ( PyObject * type , PyObject * value , PyObject * tb , PyObject * cause ) ; /*proto*/
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
static int __Pyx_ArgTypeTest ( PyObject * obj , PyTypeObject * type , int none_allowed ,
const char * name , int exact ) ; /*proto*/
2011-05-13 17:42:05 +02:00
static PyObject * __Pyx_PyDict_GetItemDefault ( PyObject * d , PyObject * key , PyObject * default_value ) {
PyObject * value ;
2011-05-12 22:45:14 +02:00
# if PY_MAJOR_VERSION >= 3
value = PyDict_GetItemWithError ( d , key ) ;
if ( unlikely ( ! value ) ) {
2011-05-13 17:42:05 +02:00
if ( unlikely ( PyErr_Occurred ( ) ) )
return NULL ;
value = default_value ;
2011-05-12 22:45:14 +02:00
}
Py_INCREF ( value ) ;
# else
2011-05-13 17:42:05 +02:00
if ( PyString_CheckExact ( key ) | | PyUnicode_CheckExact ( key ) | | PyInt_CheckExact ( key ) ) {
/* these presumably have safe hash functions */
value = PyDict_GetItem ( d , key ) ;
if ( unlikely ( ! value ) ) {
value = default_value ;
}
Py_INCREF ( value ) ;
} else {
PyObject * m ;
m = __Pyx_GetAttrString ( d , " get " ) ;
if ( ! m ) return NULL ;
value = PyObject_CallFunctionObjArgs ( m , key ,
( default_value = = Py_None ) ? NULL : default_value , NULL ) ;
Py_DECREF ( m ) ;
}
2011-05-12 22:45:14 +02:00
# endif
2011-05-13 17:42:05 +02:00
return value ;
}
2011-05-12 22:45:14 +02:00
static void __Pyx_RaiseDoubleKeywordsError (
const char * func_name , PyObject * kw_name ) ; /*proto*/
static int __Pyx_ParseOptionalKeywords ( PyObject * kwds , PyObject * * argnames [ ] , PyObject * kwds2 , PyObject * values [ ] , Py_ssize_t num_pos_args , const char * function_name ) ; /*proto*/
static CYTHON_INLINE PyObject * __Pyx_PyInt_to_py_u_int32_t ( u_int32_t ) ;
static CYTHON_INLINE PyObject * __Pyx_PyInt_to_py_u_int16_t ( u_int16_t ) ;
static CYTHON_INLINE PyObject * __Pyx_PyInt_to_py_u_int8_t ( u_int8_t ) ;
2011-05-13 17:42:05 +02:00
static CYTHON_INLINE u_int32_t __Pyx_PyInt_from_py_u_int32_t ( PyObject * ) ;
2011-05-12 22:45:14 +02:00
static CYTHON_INLINE u_int16_t __Pyx_PyInt_from_py_u_int16_t ( PyObject * ) ;
static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar ( PyObject * ) ;
static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort ( PyObject * ) ;
static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt ( PyObject * ) ;
static CYTHON_INLINE char __Pyx_PyInt_AsChar ( PyObject * ) ;
static CYTHON_INLINE short __Pyx_PyInt_AsShort ( PyObject * ) ;
static CYTHON_INLINE int __Pyx_PyInt_AsInt ( PyObject * ) ;
static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar ( PyObject * ) ;
static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort ( PyObject * ) ;
static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt ( PyObject * ) ;
static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble ( PyObject * ) ;
static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong ( PyObject * ) ;
static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong ( PyObject * ) ;
static CYTHON_INLINE long __Pyx_PyInt_AsLong ( PyObject * ) ;
static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong ( PyObject * ) ;
static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong ( PyObject * ) ;
static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong ( PyObject * ) ;
2011-10-14 23:14:25 +02:00
static void __Pyx_WriteUnraisable ( const char * name , int clineno ,
int lineno , const char * filename ) ; /*proto*/
2011-05-12 22:45:14 +02:00
static CYTHON_INLINE u_int8_t __Pyx_PyInt_from_py_u_int8_t ( PyObject * ) ;
2011-10-14 23:14:25 +02:00
static int __Pyx_check_binary_version ( void ) ;
2011-05-12 22:45:14 +02:00
static int __Pyx_SetVtable ( PyObject * dict , void * vtable ) ; /*proto*/
2011-10-14 23:14:25 +02:00
static void __Pyx_AddTraceback ( const char * funcname , int __pyx_clineno ,
int __pyx_lineno , const char * __pyx_filename ) ; /*proto*/
2011-05-12 22:45:14 +02:00
static int __Pyx_InitStrings ( __Pyx_StringTabEntry * t ) ; /*proto*/
2012-12-24 04:17:54 +01:00
/* Module declarations from 'libc.string' */
2011-10-14 23:14:25 +02:00
/* Module declarations from 'netfilterqueue' */
2011-05-13 17:42:05 +02:00
static PyTypeObject * __pyx_ptype_14netfilterqueue_Packet = 0 ;
2011-10-14 23:14:25 +02:00
static PyTypeObject * __pyx_ptype_14netfilterqueue_NetfilterQueue = 0 ;
2011-05-12 22:45:14 +02:00
static int __pyx_f_14netfilterqueue_global_callback ( struct nfq_q_handle * , struct nfgenmsg * , struct nfq_data * , void * ) ; /*proto*/
# define __Pyx_MODULE_NAME "netfilterqueue"
2011-10-14 23:14:25 +02:00
int __pyx_module_is_main_netfilterqueue = 0 ;
2011-05-12 22:45:14 +02:00
2011-10-14 23:14:25 +02:00
/* Implementation of 'netfilterqueue' */
2011-05-12 22:45:14 +02:00
static PyObject * __pyx_builtin_OSError ;
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_builtin_RuntimeWarning ;
static char __pyx_k_1 [ ] = " Unknown protocol " ;
static char __pyx_k_2 [ ] = " %s packet, %s bytes " ;
static char __pyx_k_3 [ ] = " Failed to get payload of packet. " ;
static char __pyx_k_5 [ ] = " Verdict already given for this packet. " ;
static char __pyx_k_7 [ ] = " Failed to open NFQueue. " ;
2011-05-13 18:48:29 +02:00
static char __pyx_k_9 [ ] = " Failed to bind family %s. Are you root? " ;
2011-05-13 17:42:05 +02:00
static char __pyx_k_12 [ ] = " Failed to create queue %s. " ;
static char __pyx_k_13 [ ] = " Failed to set packet copy mode. " ;
2012-12-24 04:17:54 +01:00
static char __pyx_k_15 [ ] = " \n Bind to a Linux netfilter queue. Send packets to a user-specified callback \n function. \n \n Copyright: (c) 2011, Kerkhoff Technologies Inc. \n License: MIT; see LICENSE.txt \n " ;
2011-10-14 23:14:25 +02:00
static char __pyx_k_17 [ ] = " DEFAULT_MAX_QUEUELEN " ;
static char __pyx_k_18 [ ] = " BBN-RCC-MON " ;
static char __pyx_k_19 [ ] = " NVP-II " ;
static char __pyx_k_20 [ ] = " DCN-MEAS " ;
static char __pyx_k_21 [ ] = " XNS-IDP " ;
static char __pyx_k_22 [ ] = " TRUNK-1 " ;
static char __pyx_k_23 [ ] = " TRUNK-2 " ;
static char __pyx_k_24 [ ] = " LEAF-1 " ;
static char __pyx_k_25 [ ] = " LEAF-2 " ;
static char __pyx_k_26 [ ] = " ISO-TP4 " ;
static char __pyx_k_27 [ ] = " MFE-NSP " ;
static char __pyx_k_28 [ ] = " MERIT-INP " ;
static char __pyx_k_29 [ ] = " IDPR-CMTP " ;
static char __pyx_k_30 [ ] = " TP++ " ;
static char __pyx_k_31 [ ] = " IPv6-Route " ;
static char __pyx_k_32 [ ] = " IPv6-Frag " ;
static char __pyx_k_33 [ ] = " I-NLSP " ;
static char __pyx_k_34 [ ] = " IPv6-ICMP " ;
static char __pyx_k_35 [ ] = " IPv6-NoNxt " ;
static char __pyx_k_36 [ ] = " IPv6-Opts " ;
static char __pyx_k_37 [ ] = " any host internal protocol " ;
static char __pyx_k_38 [ ] = " any local network " ;
static char __pyx_k_39 [ ] = " SAT-EXPAK " ;
static char __pyx_k_40 [ ] = " any distributed file system " ;
static char __pyx_k_41 [ ] = " SAT-MON " ;
static char __pyx_k_42 [ ] = " BR-SAT-MON " ;
static char __pyx_k_43 [ ] = " SUN-ND " ;
static char __pyx_k_44 [ ] = " WB-MON " ;
static char __pyx_k_45 [ ] = " WB-EXPAK " ;
static char __pyx_k_46 [ ] = " ISO-IP " ;
static char __pyx_k_47 [ ] = " SECURE-VMTP " ;
static char __pyx_k_48 [ ] = " NSFNET-IGP " ;
static char __pyx_k_49 [ ] = " Sprite-RPC " ;
static char __pyx_k_50 [ ] = " AX.25 " ;
static char __pyx_k_51 [ ] = " SCC-SP " ;
static char __pyx_k_52 [ ] = " any private encryption scheme " ;
static char __pyx_k_53 [ ] = " A/N " ;
static char __pyx_k_54 [ ] = " Compaq-Peer " ;
static char __pyx_k_55 [ ] = " IPX-in-IP " ;
static char __pyx_k_56 [ ] = " any 0-hop protocol " ;
static char __pyx_k_57 [ ] = " RSVP-E2E-IGNORE " ;
static char __pyx_k_58 [ ] = " MPLS-in-IP " ;
2011-05-13 17:42:05 +02:00
static char __pyx_k__AH [ ] = " AH " ;
static char __pyx_k__FC [ ] = " FC " ;
static char __pyx_k__IL [ ] = " IL " ;
static char __pyx_k__IP [ ] = " IP " ;
static char __pyx_k__SM [ ] = " SM " ;
static char __pyx_k__ST [ ] = " ST " ;
2011-05-12 22:45:14 +02:00
static char __pyx_k__af [ ] = " af " ;
2011-05-13 17:42:05 +02:00
static char __pyx_k__3PC [ ] = " 3PC " ;
static char __pyx_k__BNA [ ] = " BNA " ;
static char __pyx_k__CBT [ ] = " CBT " ;
static char __pyx_k__DDP [ ] = " DDP " ;
static char __pyx_k__DDX [ ] = " DDX " ;
static char __pyx_k__DGP [ ] = " DGP " ;
static char __pyx_k__DSR [ ] = " DSR " ;
static char __pyx_k__EGP [ ] = " EGP " ;
static char __pyx_k__ESP [ ] = " ESP " ;
static char __pyx_k__GGP [ ] = " GGP " ;
static char __pyx_k__GRE [ ] = " GRE " ;
static char __pyx_k__HIP [ ] = " HIP " ;
static char __pyx_k__HMP [ ] = " HMP " ;
static char __pyx_k__IGP [ ] = " IGP " ;
static char __pyx_k__MTP [ ] = " MTP " ;
static char __pyx_k__MUX [ ] = " MUX " ;
static char __pyx_k__PGM [ ] = " PGM " ;
static char __pyx_k__PIM [ ] = " PIM " ;
static char __pyx_k__PRM [ ] = " PRM " ;
static char __pyx_k__PTP [ ] = " PTP " ;
static char __pyx_k__PUP [ ] = " PUP " ;
static char __pyx_k__PVP [ ] = " PVP " ;
static char __pyx_k__QNX [ ] = " QNX " ;
static char __pyx_k__RDP [ ] = " RDP " ;
static char __pyx_k__RVD [ ] = " RVD " ;
static char __pyx_k__SMP [ ] = " SMP " ;
static char __pyx_k__SNP [ ] = " SNP " ;
static char __pyx_k__SPS [ ] = " SPS " ;
static char __pyx_k__SRP [ ] = " SRP " ;
static char __pyx_k__STP [ ] = " STP " ;
static char __pyx_k__TCF [ ] = " TCF " ;
static char __pyx_k__TCP [ ] = " TCP " ;
static char __pyx_k__TTP [ ] = " TTP " ;
static char __pyx_k__UDP [ ] = " UDP " ;
static char __pyx_k__UTI [ ] = " UTI " ;
static char __pyx_k__WSN [ ] = " WSN " ;
static char __pyx_k__XTP [ ] = " XTP " ;
static char __pyx_k__get [ ] = " get " ;
static char __pyx_k__ARIS [ ] = " ARIS " ;
static char __pyx_k__CFTP [ ] = " CFTP " ;
static char __pyx_k__CPHB [ ] = " CPHB " ;
static char __pyx_k__CPNX [ ] = " CPNX " ;
static char __pyx_k__CRTP [ ] = " CRTP " ;
static char __pyx_k__DCCP [ ] = " DCCP " ;
static char __pyx_k__FIRE [ ] = " FIRE " ;
static char __pyx_k__GMTP [ ] = " GMTP " ;
static char __pyx_k__IATP [ ] = " IATP " ;
static char __pyx_k__ICMP [ ] = " ICMP " ;
static char __pyx_k__IDPR [ ] = " IDPR " ;
static char __pyx_k__IDRP [ ] = " IDRP " ;
static char __pyx_k__IFMP [ ] = " IFMP " ;
static char __pyx_k__IGMP [ ] = " IGMP " ;
static char __pyx_k__IPCV [ ] = " IPCV " ;
static char __pyx_k__IPIP [ ] = " IPIP " ;
static char __pyx_k__IPLT [ ] = " IPLT " ;
static char __pyx_k__IPPC [ ] = " IPPC " ;
static char __pyx_k__IPv6 [ ] = " IPv6 " ;
static char __pyx_k__IRTP [ ] = " IRTP " ;
static char __pyx_k__ISIS [ ] = " ISIS " ;
static char __pyx_k__L2TP [ ] = " L2TP " ;
static char __pyx_k__LARP [ ] = " LARP " ;
static char __pyx_k__MICP [ ] = " MICP " ;
static char __pyx_k__NARP [ ] = " NARP " ;
static char __pyx_k__PIPE [ ] = " PIPE " ;
static char __pyx_k__PNNI [ ] = " PNNI " ;
static char __pyx_k__RSVP [ ] = " RSVP " ;
static char __pyx_k__SCPS [ ] = " SCPS " ;
static char __pyx_k__SCTP [ ] = " SCTP " ;
static char __pyx_k__SDRP [ ] = " SDRP " ;
static char __pyx_k__SKIP [ ] = " SKIP " ;
static char __pyx_k__TLSP [ ] = " TLSP " ;
static char __pyx_k__VISA [ ] = " VISA " ;
static char __pyx_k__VMTP [ ] = " VMTP " ;
static char __pyx_k__VRRP [ ] = " VRRP " ;
static char __pyx_k__XNET [ ] = " XNET " ;
2011-05-12 22:45:14 +02:00
static char __pyx_k__drop [ ] = " drop " ;
static char __pyx_k__mode [ ] = " mode " ;
2011-05-13 17:42:05 +02:00
static char __pyx_k__ARGUS [ ] = " ARGUS " ;
static char __pyx_k__CHAOS [ ] = " CHAOS " ;
static char __pyx_k__CRUDP [ ] = " CRUDP " ;
static char __pyx_k__EIGRP [ ] = " EIGRP " ;
static char __pyx_k__EMCON [ ] = " EMCON " ;
static char __pyx_k__ENCAP [ ] = " ENCAP " ;
static char __pyx_k__SWIPE [ ] = " SWIPE " ;
static char __pyx_k__Shim6 [ ] = " Shim6 " ;
static char __pyx_k__VINES [ ] = " VINES " ;
static char __pyx_k__manet [ ] = " manet " ;
2011-05-12 22:45:14 +02:00
static char __pyx_k__range [ ] = " range " ;
2011-05-13 17:42:05 +02:00
static char __pyx_k__HOPOPT [ ] = " HOPOPT " ;
static char __pyx_k__IPComp [ ] = " IPComp " ;
static char __pyx_k__MOBILE [ ] = " MOBILE " ;
static char __pyx_k__NETBLT [ ] = " NETBLT " ;
2011-05-12 22:45:14 +02:00
static char __pyx_k__accept [ ] = " accept " ;
2011-05-13 17:42:05 +02:00
static char __pyx_k__ETHERIP [ ] = " ETHERIP " ;
2011-05-12 22:45:14 +02:00
static char __pyx_k__OSError [ ] = " OSError " ;
2011-05-13 17:42:05 +02:00
static char __pyx_k__OSPFIGP [ ] = " OSPFIGP " ;
static char __pyx_k__UDPLite [ ] = " UDPLite " ;
2011-10-14 23:14:25 +02:00
static char __pyx_k__VERSION [ ] = " VERSION " ;
2011-05-13 18:48:29 +02:00
static char __pyx_k__max_len [ ] = " max_len " ;
2011-05-13 17:42:05 +02:00
static char __pyx_k__Mobility [ ] = " Mobility " ;
static char __pyx_k__Reserved [ ] = " Reserved " ;
static char __pyx_k__SSCOPMCE [ ] = " SSCOPMCE " ;
2011-05-12 22:45:14 +02:00
static char __pyx_k____main__ [ ] = " __main__ " ;
static char __pyx_k____test__ [ ] = " __test__ " ;
static char __pyx_k__set_mark [ ] = " set_mark " ;
static char __pyx_k__COPY_META [ ] = " COPY_META " ;
static char __pyx_k__COPY_NONE [ ] = " COPY_NONE " ;
2011-05-13 17:42:05 +02:00
static char __pyx_k__KRYPTOLAN [ ] = " KRYPTOLAN " ;
static char __pyx_k__PROTOCOLS [ ] = " PROTOCOLS " ;
2011-05-12 22:45:14 +02:00
static char __pyx_k__queue_num [ ] = " queue_num " ;
static char __pyx_k__COPY_PACKET [ ] = " COPY_PACKET " ;
2012-12-24 04:17:54 +01:00
static char __pyx_k__set_payload [ ] = " set_payload " ;
2011-05-12 22:45:14 +02:00
static char __pyx_k__get_timestamp [ ] = " get_timestamp " ;
2011-10-14 23:14:25 +02:00
static char __pyx_k__user_callback [ ] = " user_callback " ;
2011-05-13 17:42:05 +02:00
static char __pyx_k__RuntimeWarning [ ] = " RuntimeWarning " ;
2011-05-12 22:45:14 +02:00
static char __pyx_k__get_payload_len [ ] = " get_payload_len " ;
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_kp_s_1 ;
static PyObject * __pyx_kp_s_12 ;
static PyObject * __pyx_kp_s_13 ;
2011-10-14 23:14:25 +02:00
static PyObject * __pyx_n_s_17 ;
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_kp_s_18 ;
static PyObject * __pyx_kp_s_19 ;
2011-05-12 22:45:14 +02:00
static PyObject * __pyx_kp_s_2 ;
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_kp_s_20 ;
static PyObject * __pyx_kp_s_21 ;
static PyObject * __pyx_kp_s_22 ;
static PyObject * __pyx_kp_s_23 ;
static PyObject * __pyx_kp_s_24 ;
static PyObject * __pyx_kp_s_25 ;
static PyObject * __pyx_kp_s_26 ;
static PyObject * __pyx_kp_s_27 ;
static PyObject * __pyx_kp_s_28 ;
static PyObject * __pyx_kp_s_29 ;
2011-05-12 22:45:14 +02:00
static PyObject * __pyx_kp_s_3 ;
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_kp_s_30 ;
static PyObject * __pyx_kp_s_31 ;
static PyObject * __pyx_kp_s_32 ;
static PyObject * __pyx_kp_s_33 ;
static PyObject * __pyx_kp_s_34 ;
static PyObject * __pyx_kp_s_35 ;
static PyObject * __pyx_kp_s_36 ;
static PyObject * __pyx_kp_s_37 ;
static PyObject * __pyx_kp_s_38 ;
static PyObject * __pyx_kp_s_39 ;
static PyObject * __pyx_kp_s_40 ;
static PyObject * __pyx_kp_s_41 ;
static PyObject * __pyx_kp_s_42 ;
static PyObject * __pyx_kp_s_43 ;
static PyObject * __pyx_kp_s_44 ;
static PyObject * __pyx_kp_s_45 ;
static PyObject * __pyx_kp_s_46 ;
static PyObject * __pyx_kp_s_47 ;
static PyObject * __pyx_kp_s_48 ;
static PyObject * __pyx_kp_s_49 ;
static PyObject * __pyx_kp_s_5 ;
static PyObject * __pyx_kp_s_50 ;
static PyObject * __pyx_kp_s_51 ;
static PyObject * __pyx_kp_s_52 ;
static PyObject * __pyx_kp_s_53 ;
static PyObject * __pyx_kp_s_54 ;
static PyObject * __pyx_kp_s_55 ;
static PyObject * __pyx_kp_s_56 ;
2011-10-14 23:14:25 +02:00
static PyObject * __pyx_kp_s_57 ;
static PyObject * __pyx_kp_s_58 ;
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_kp_s_7 ;
static PyObject * __pyx_kp_s_9 ;
static PyObject * __pyx_kp_s__3PC ;
static PyObject * __pyx_n_s__AH ;
static PyObject * __pyx_n_s__ARGUS ;
static PyObject * __pyx_n_s__ARIS ;
static PyObject * __pyx_n_s__BNA ;
static PyObject * __pyx_n_s__CBT ;
static PyObject * __pyx_n_s__CFTP ;
static PyObject * __pyx_n_s__CHAOS ;
2011-05-12 22:45:14 +02:00
static PyObject * __pyx_n_s__COPY_META ;
static PyObject * __pyx_n_s__COPY_NONE ;
static PyObject * __pyx_n_s__COPY_PACKET ;
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_n_s__CPHB ;
static PyObject * __pyx_n_s__CPNX ;
static PyObject * __pyx_n_s__CRTP ;
static PyObject * __pyx_n_s__CRUDP ;
static PyObject * __pyx_n_s__DCCP ;
static PyObject * __pyx_n_s__DDP ;
static PyObject * __pyx_n_s__DDX ;
static PyObject * __pyx_n_s__DGP ;
static PyObject * __pyx_n_s__DSR ;
static PyObject * __pyx_n_s__EGP ;
static PyObject * __pyx_n_s__EIGRP ;
static PyObject * __pyx_n_s__EMCON ;
static PyObject * __pyx_n_s__ENCAP ;
static PyObject * __pyx_n_s__ESP ;
static PyObject * __pyx_n_s__ETHERIP ;
static PyObject * __pyx_n_s__FC ;
static PyObject * __pyx_n_s__FIRE ;
static PyObject * __pyx_n_s__GGP ;
static PyObject * __pyx_n_s__GMTP ;
static PyObject * __pyx_n_s__GRE ;
static PyObject * __pyx_n_s__HIP ;
static PyObject * __pyx_n_s__HMP ;
static PyObject * __pyx_n_s__HOPOPT ;
static PyObject * __pyx_n_s__IATP ;
static PyObject * __pyx_n_s__ICMP ;
static PyObject * __pyx_n_s__IDPR ;
static PyObject * __pyx_n_s__IDRP ;
static PyObject * __pyx_n_s__IFMP ;
static PyObject * __pyx_n_s__IGMP ;
static PyObject * __pyx_n_s__IGP ;
static PyObject * __pyx_n_s__IL ;
static PyObject * __pyx_n_s__IP ;
static PyObject * __pyx_n_s__IPCV ;
static PyObject * __pyx_n_s__IPComp ;
static PyObject * __pyx_n_s__IPIP ;
static PyObject * __pyx_n_s__IPLT ;
static PyObject * __pyx_n_s__IPPC ;
static PyObject * __pyx_n_s__IPv6 ;
static PyObject * __pyx_n_s__IRTP ;
static PyObject * __pyx_n_s__ISIS ;
static PyObject * __pyx_n_s__KRYPTOLAN ;
static PyObject * __pyx_n_s__L2TP ;
static PyObject * __pyx_n_s__LARP ;
static PyObject * __pyx_n_s__MICP ;
static PyObject * __pyx_n_s__MOBILE ;
static PyObject * __pyx_n_s__MTP ;
static PyObject * __pyx_n_s__MUX ;
static PyObject * __pyx_n_s__Mobility ;
static PyObject * __pyx_n_s__NARP ;
static PyObject * __pyx_n_s__NETBLT ;
2011-05-12 22:45:14 +02:00
static PyObject * __pyx_n_s__OSError ;
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_n_s__OSPFIGP ;
static PyObject * __pyx_n_s__PGM ;
static PyObject * __pyx_n_s__PIM ;
static PyObject * __pyx_n_s__PIPE ;
static PyObject * __pyx_n_s__PNNI ;
static PyObject * __pyx_n_s__PRM ;
static PyObject * __pyx_n_s__PROTOCOLS ;
static PyObject * __pyx_n_s__PTP ;
static PyObject * __pyx_n_s__PUP ;
static PyObject * __pyx_n_s__PVP ;
static PyObject * __pyx_n_s__QNX ;
static PyObject * __pyx_n_s__RDP ;
static PyObject * __pyx_n_s__RSVP ;
static PyObject * __pyx_n_s__RVD ;
static PyObject * __pyx_n_s__Reserved ;
static PyObject * __pyx_n_s__RuntimeWarning ;
static PyObject * __pyx_n_s__SCPS ;
static PyObject * __pyx_n_s__SCTP ;
static PyObject * __pyx_n_s__SDRP ;
static PyObject * __pyx_n_s__SKIP ;
static PyObject * __pyx_n_s__SM ;
static PyObject * __pyx_n_s__SMP ;
static PyObject * __pyx_n_s__SNP ;
static PyObject * __pyx_n_s__SPS ;
static PyObject * __pyx_n_s__SRP ;
static PyObject * __pyx_n_s__SSCOPMCE ;
static PyObject * __pyx_n_s__ST ;
static PyObject * __pyx_n_s__STP ;
static PyObject * __pyx_n_s__SWIPE ;
static PyObject * __pyx_n_s__Shim6 ;
static PyObject * __pyx_n_s__TCF ;
static PyObject * __pyx_n_s__TCP ;
static PyObject * __pyx_n_s__TLSP ;
static PyObject * __pyx_n_s__TTP ;
static PyObject * __pyx_n_s__UDP ;
static PyObject * __pyx_n_s__UDPLite ;
static PyObject * __pyx_n_s__UTI ;
2011-10-14 23:14:25 +02:00
static PyObject * __pyx_n_s__VERSION ;
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_n_s__VINES ;
static PyObject * __pyx_n_s__VISA ;
static PyObject * __pyx_n_s__VMTP ;
static PyObject * __pyx_n_s__VRRP ;
static PyObject * __pyx_n_s__WSN ;
static PyObject * __pyx_n_s__XNET ;
static PyObject * __pyx_n_s__XTP ;
2011-05-12 22:45:14 +02:00
static PyObject * __pyx_n_s____main__ ;
static PyObject * __pyx_n_s____test__ ;
static PyObject * __pyx_n_s__accept ;
static PyObject * __pyx_n_s__af ;
static PyObject * __pyx_n_s__drop ;
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_n_s__get ;
2011-05-12 22:45:14 +02:00
static PyObject * __pyx_n_s__get_payload_len ;
static PyObject * __pyx_n_s__get_timestamp ;
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_n_s__manet ;
2011-05-13 18:48:29 +02:00
static PyObject * __pyx_n_s__max_len ;
2011-05-12 22:45:14 +02:00
static PyObject * __pyx_n_s__mode ;
static PyObject * __pyx_n_s__queue_num ;
static PyObject * __pyx_n_s__range ;
static PyObject * __pyx_n_s__set_mark ;
2012-12-24 04:17:54 +01:00
static PyObject * __pyx_n_s__set_payload ;
2011-10-14 23:14:25 +02:00
static PyObject * __pyx_n_s__user_callback ;
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_int_0 ;
2011-05-12 22:45:14 +02:00
static PyObject * __pyx_int_1 ;
static PyObject * __pyx_int_2 ;
static PyObject * __pyx_int_3 ;
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_int_4 ;
static PyObject * __pyx_int_5 ;
static PyObject * __pyx_int_6 ;
static PyObject * __pyx_int_7 ;
static PyObject * __pyx_int_8 ;
static PyObject * __pyx_int_9 ;
static PyObject * __pyx_int_10 ;
static PyObject * __pyx_int_11 ;
static PyObject * __pyx_int_12 ;
static PyObject * __pyx_int_13 ;
static PyObject * __pyx_int_14 ;
static PyObject * __pyx_int_15 ;
static PyObject * __pyx_int_16 ;
static PyObject * __pyx_int_17 ;
static PyObject * __pyx_int_18 ;
static PyObject * __pyx_int_19 ;
static PyObject * __pyx_int_20 ;
static PyObject * __pyx_int_21 ;
static PyObject * __pyx_int_22 ;
static PyObject * __pyx_int_23 ;
static PyObject * __pyx_int_24 ;
static PyObject * __pyx_int_25 ;
static PyObject * __pyx_int_26 ;
static PyObject * __pyx_int_27 ;
static PyObject * __pyx_int_28 ;
static PyObject * __pyx_int_29 ;
static PyObject * __pyx_int_30 ;
static PyObject * __pyx_int_31 ;
static PyObject * __pyx_int_32 ;
static PyObject * __pyx_int_33 ;
static PyObject * __pyx_int_34 ;
static PyObject * __pyx_int_35 ;
static PyObject * __pyx_int_36 ;
static PyObject * __pyx_int_37 ;
static PyObject * __pyx_int_38 ;
static PyObject * __pyx_int_39 ;
static PyObject * __pyx_int_40 ;
static PyObject * __pyx_int_41 ;
static PyObject * __pyx_int_42 ;
static PyObject * __pyx_int_43 ;
static PyObject * __pyx_int_44 ;
static PyObject * __pyx_int_45 ;
static PyObject * __pyx_int_46 ;
static PyObject * __pyx_int_47 ;
static PyObject * __pyx_int_48 ;
static PyObject * __pyx_int_49 ;
static PyObject * __pyx_int_50 ;
static PyObject * __pyx_int_51 ;
static PyObject * __pyx_int_52 ;
static PyObject * __pyx_int_53 ;
static PyObject * __pyx_int_54 ;
static PyObject * __pyx_int_55 ;
static PyObject * __pyx_int_56 ;
static PyObject * __pyx_int_57 ;
static PyObject * __pyx_int_58 ;
static PyObject * __pyx_int_59 ;
static PyObject * __pyx_int_60 ;
static PyObject * __pyx_int_61 ;
static PyObject * __pyx_int_62 ;
static PyObject * __pyx_int_63 ;
static PyObject * __pyx_int_64 ;
static PyObject * __pyx_int_65 ;
static PyObject * __pyx_int_66 ;
static PyObject * __pyx_int_67 ;
static PyObject * __pyx_int_68 ;
static PyObject * __pyx_int_69 ;
static PyObject * __pyx_int_70 ;
static PyObject * __pyx_int_71 ;
static PyObject * __pyx_int_72 ;
static PyObject * __pyx_int_73 ;
static PyObject * __pyx_int_74 ;
static PyObject * __pyx_int_75 ;
static PyObject * __pyx_int_76 ;
static PyObject * __pyx_int_77 ;
static PyObject * __pyx_int_78 ;
static PyObject * __pyx_int_79 ;
static PyObject * __pyx_int_80 ;
static PyObject * __pyx_int_81 ;
static PyObject * __pyx_int_82 ;
static PyObject * __pyx_int_83 ;
static PyObject * __pyx_int_84 ;
static PyObject * __pyx_int_85 ;
static PyObject * __pyx_int_86 ;
static PyObject * __pyx_int_87 ;
static PyObject * __pyx_int_88 ;
static PyObject * __pyx_int_89 ;
static PyObject * __pyx_int_90 ;
static PyObject * __pyx_int_91 ;
static PyObject * __pyx_int_92 ;
static PyObject * __pyx_int_93 ;
static PyObject * __pyx_int_94 ;
static PyObject * __pyx_int_95 ;
static PyObject * __pyx_int_96 ;
static PyObject * __pyx_int_97 ;
static PyObject * __pyx_int_98 ;
static PyObject * __pyx_int_99 ;
static PyObject * __pyx_int_100 ;
static PyObject * __pyx_int_101 ;
static PyObject * __pyx_int_102 ;
static PyObject * __pyx_int_103 ;
static PyObject * __pyx_int_104 ;
static PyObject * __pyx_int_105 ;
static PyObject * __pyx_int_106 ;
static PyObject * __pyx_int_107 ;
static PyObject * __pyx_int_108 ;
static PyObject * __pyx_int_109 ;
static PyObject * __pyx_int_110 ;
static PyObject * __pyx_int_111 ;
static PyObject * __pyx_int_112 ;
static PyObject * __pyx_int_113 ;
static PyObject * __pyx_int_114 ;
static PyObject * __pyx_int_115 ;
static PyObject * __pyx_int_116 ;
static PyObject * __pyx_int_117 ;
static PyObject * __pyx_int_118 ;
static PyObject * __pyx_int_119 ;
static PyObject * __pyx_int_120 ;
static PyObject * __pyx_int_121 ;
static PyObject * __pyx_int_122 ;
static PyObject * __pyx_int_123 ;
static PyObject * __pyx_int_124 ;
static PyObject * __pyx_int_125 ;
static PyObject * __pyx_int_126 ;
static PyObject * __pyx_int_127 ;
static PyObject * __pyx_int_128 ;
static PyObject * __pyx_int_129 ;
static PyObject * __pyx_int_130 ;
static PyObject * __pyx_int_131 ;
static PyObject * __pyx_int_132 ;
static PyObject * __pyx_int_133 ;
static PyObject * __pyx_int_134 ;
static PyObject * __pyx_int_135 ;
static PyObject * __pyx_int_136 ;
static PyObject * __pyx_int_137 ;
static PyObject * __pyx_int_138 ;
static PyObject * __pyx_int_139 ;
static PyObject * __pyx_int_140 ;
static PyObject * __pyx_int_255 ;
static PyObject * __pyx_int_1024 ;
static u_int32_t __pyx_k_10 ;
static u_int8_t __pyx_k_11 ;
static PyObject * __pyx_k_tuple_4 ;
static PyObject * __pyx_k_tuple_6 ;
static PyObject * __pyx_k_tuple_8 ;
static PyObject * __pyx_k_tuple_14 ;
2011-10-14 23:14:25 +02:00
static PyObject * __pyx_k_tuple_16 ;
2011-05-13 17:42:05 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":24
2011-05-12 22:45:14 +02:00
* DEF MaxCopySize = BufferSize - MetadataSize
*
* cdef int global_callback ( nfq_q_handle * qh , nfgenmsg * nfmsg , # < < < < < < < < < < < < < <
* nfq_data * nfa , void * data ) with gil :
2012-12-24 04:17:54 +01:00
* " " " Create a Packet and pass it to appropriate callback. " " "
2011-05-12 22:45:14 +02:00
*/
2011-10-14 23:14:25 +02:00
static int __pyx_f_14netfilterqueue_global_callback ( struct nfq_q_handle * __pyx_v_qh , struct nfgenmsg * __pyx_v_nfmsg , struct nfq_data * __pyx_v_nfa , void * __pyx_v_data ) {
struct __pyx_obj_14netfilterqueue_NetfilterQueue * __pyx_v_nfqueue = 0 ;
PyObject * __pyx_v_user_callback = 0 ;
struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_packet = NULL ;
2011-05-12 22:45:14 +02:00
int __pyx_r ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
PyObject * __pyx_t_2 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
# ifdef WITH_THREAD
2011-10-14 23:14:25 +02:00
PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure ( ) ;
2011-05-12 22:45:14 +02:00
# endif
__Pyx_RefNannySetupContext ( " global_callback " ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":27
2011-05-13 17:42:05 +02:00
* nfq_data * nfa , void * data ) with gil :
2012-12-24 04:17:54 +01:00
* " " " Create a Packet and pass it to appropriate callback. " " "
2011-10-14 23:14:25 +02:00
* cdef NetfilterQueue nfqueue = < NetfilterQueue > data # < < < < < < < < < < < < < <
* cdef object user_callback = < object > nfqueue . user_callback
*
*/
__Pyx_INCREF ( ( ( PyObject * ) ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_data ) ) ) ;
__pyx_v_nfqueue = ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_data ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":28
* " " " Create a Packet and pass it to appropriate callback. " " "
2011-10-14 23:14:25 +02:00
* cdef NetfilterQueue nfqueue = < NetfilterQueue > data
* cdef object user_callback = < object > nfqueue . user_callback # < < < < < < < < < < < < < <
*
* packet = Packet ( )
*/
__Pyx_INCREF ( ( ( PyObject * ) __pyx_v_nfqueue - > user_callback ) ) ;
__pyx_v_user_callback = __pyx_v_nfqueue - > user_callback ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":30
2011-10-14 23:14:25 +02:00
* cdef object user_callback = < object > nfqueue . user_callback
*
2011-05-13 17:42:05 +02:00
* packet = Packet ( ) # < < < < < < < < < < < < < <
2011-05-12 22:45:14 +02:00
* packet . set_nfq_data ( qh , nfa )
2011-10-14 23:14:25 +02:00
* user_callback ( packet )
2011-05-12 22:45:14 +02:00
*/
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyObject_Call ( ( ( PyObject * ) ( ( PyObject * ) __pyx_ptype_14netfilterqueue_Packet ) ) , ( ( PyObject * ) __pyx_empty_tuple ) , NULL ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 30 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2011-05-13 17:42:05 +02:00
__pyx_v_packet = ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_t_1 ) ;
2011-05-12 22:45:14 +02:00
__pyx_t_1 = 0 ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":31
2011-10-14 23:14:25 +02:00
*
2011-05-13 17:42:05 +02:00
* packet = Packet ( )
2011-05-12 22:45:14 +02:00
* packet . set_nfq_data ( qh , nfa ) # < < < < < < < < < < < < < <
2011-10-14 23:14:25 +02:00
* user_callback ( packet )
2011-05-12 22:45:14 +02:00
* return 1
*/
2012-12-24 04:17:54 +01:00
__pyx_t_1 = ( ( struct __pyx_vtabstruct_14netfilterqueue_Packet * ) __pyx_v_packet - > __pyx_vtab ) - > set_nfq_data ( __pyx_v_packet , __pyx_v_qh , __pyx_v_nfa ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 31 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":32
2011-05-13 17:42:05 +02:00
* packet = Packet ( )
2011-05-12 22:45:14 +02:00
* packet . set_nfq_data ( qh , nfa )
2011-10-14 23:14:25 +02:00
* user_callback ( packet ) # < < < < < < < < < < < < < <
2011-05-12 22:45:14 +02:00
* return 1
*
*/
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 32 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-10-14 23:14:25 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_1 ) ) ;
2011-05-12 22:45:14 +02:00
__Pyx_INCREF ( ( ( PyObject * ) __pyx_v_packet ) ) ;
2011-10-14 23:14:25 +02:00
PyTuple_SET_ITEM ( __pyx_t_1 , 0 , ( ( PyObject * ) __pyx_v_packet ) ) ;
2011-05-12 22:45:14 +02:00
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_v_packet ) ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_2 = PyObject_Call ( __pyx_v_user_callback , ( ( PyObject * ) __pyx_t_1 ) , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 32 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-10-14 23:14:25 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_DECREF ( ( ( PyObject * ) __pyx_t_1 ) ) ; __pyx_t_1 = 0 ;
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":33
2011-05-12 22:45:14 +02:00
* packet . set_nfq_data ( qh , nfa )
2011-10-14 23:14:25 +02:00
* user_callback ( packet )
2011-05-12 22:45:14 +02:00
* return 1 # < < < < < < < < < < < < < <
*
2011-05-13 17:42:05 +02:00
* cdef class Packet :
2011-05-12 22:45:14 +02:00
*/
__pyx_r = 1 ;
goto __pyx_L0 ;
__pyx_r = 0 ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_WriteUnraisable ( " netfilterqueue.global_callback " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = 0 ;
__pyx_L0 : ;
2011-10-14 23:14:25 +02:00
__Pyx_XDECREF ( ( PyObject * ) __pyx_v_nfqueue ) ;
__Pyx_XDECREF ( __pyx_v_user_callback ) ;
__Pyx_XDECREF ( ( PyObject * ) __pyx_v_packet ) ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannyFinishContext ( ) ;
# ifdef WITH_THREAD
2011-10-14 23:14:25 +02:00
PyGILState_Release ( __pyx_gilstate_save ) ;
2011-05-12 22:45:14 +02:00
# endif
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":37
2011-05-13 17:42:05 +02:00
* cdef class Packet :
2012-12-24 04:17:54 +01:00
* " " " A packet received from NetfilterQueue. " " "
2011-05-12 22:45:14 +02:00
* def __cinit__ ( self ) : # < < < < < < < < < < < < < <
* self . _verdict_is_set = False
* self . _mark_is_set = False
*/
2011-05-13 17:42:05 +02:00
static int __pyx_pf_14netfilterqueue_6Packet___cinit__ ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
static int __pyx_pf_14netfilterqueue_6Packet___cinit__ ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) {
2011-05-12 22:45:14 +02:00
int __pyx_r ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " __cinit__ " ) ;
if ( unlikely ( PyTuple_GET_SIZE ( __pyx_args ) > 0 ) ) {
__Pyx_RaiseArgtupleInvalid ( " __cinit__ " , 1 , 0 , 0 , PyTuple_GET_SIZE ( __pyx_args ) ) ; return - 1 ; }
if ( unlikely ( __pyx_kwds ) & & unlikely ( PyDict_Size ( __pyx_kwds ) > 0 ) & & unlikely ( ! __Pyx_CheckKeywordStrings ( __pyx_kwds , " __cinit__ " , 0 ) ) ) return - 1 ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":38
* " " " A packet received from NetfilterQueue. " " "
2011-05-12 22:45:14 +02:00
* def __cinit__ ( self ) :
* self . _verdict_is_set = False # < < < < < < < < < < < < < <
* self . _mark_is_set = False
2012-12-24 04:17:54 +01:00
* self . _given_payload = None
2011-05-12 22:45:14 +02:00
*/
2011-05-13 17:42:05 +02:00
( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > _verdict_is_set = 0 ;
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":39
2011-05-12 22:45:14 +02:00
* def __cinit__ ( self ) :
* self . _verdict_is_set = False
* self . _mark_is_set = False # < < < < < < < < < < < < < <
2012-12-24 04:17:54 +01:00
* self . _given_payload = None
2011-05-12 22:45:14 +02:00
*
*/
2011-05-13 17:42:05 +02:00
( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > _mark_is_set = 0 ;
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":40
2011-05-12 22:45:14 +02:00
* self . _verdict_is_set = False
* self . _mark_is_set = False
2012-12-24 04:17:54 +01:00
* self . _given_payload = None # < < < < < < < < < < < < < <
2011-05-12 22:45:14 +02:00
*
* def __str__ ( self ) :
*/
2012-12-24 04:17:54 +01:00
__Pyx_INCREF ( Py_None ) ;
__Pyx_GIVEREF ( Py_None ) ;
__Pyx_GOTREF ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > _given_payload ) ;
__Pyx_DECREF ( ( ( PyObject * ) ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > _given_payload ) ) ;
( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > _given_payload = ( ( PyObject * ) Py_None ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = 0 ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":42
* self . _given_payload = None
2011-05-12 22:45:14 +02:00
*
* def __str__ ( self ) : # < < < < < < < < < < < < < <
* cdef iphdr * hdr = < iphdr * > self . payload
2011-05-13 17:42:05 +02:00
* protocol = PROTOCOLS . get ( hdr . protocol , " Unknown protocol " )
2011-05-12 22:45:14 +02:00
*/
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_1__str__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pf_14netfilterqueue_6Packet_1__str__ ( PyObject * __pyx_v_self ) {
2011-05-12 22:45:14 +02:00
struct iphdr * __pyx_v_hdr ;
2011-10-14 23:14:25 +02:00
PyObject * __pyx_v_protocol = NULL ;
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-13 17:42:05 +02:00
PyObject * __pyx_t_1 = NULL ;
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_2 = NULL ;
PyObject * __pyx_t_3 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " __str__ " ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":43
2011-05-12 22:45:14 +02:00
*
* def __str__ ( self ) :
* cdef iphdr * hdr = < iphdr * > self . payload # < < < < < < < < < < < < < <
2011-05-13 17:42:05 +02:00
* protocol = PROTOCOLS . get ( hdr . protocol , " Unknown protocol " )
* return " %s packet, %s bytes " % ( protocol , self . payload_len )
2011-05-12 22:45:14 +02:00
*/
2011-05-13 17:42:05 +02:00
__pyx_v_hdr = ( ( struct iphdr * ) ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > payload ) ;
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":44
2011-05-12 22:45:14 +02:00
* def __str__ ( self ) :
* cdef iphdr * hdr = < iphdr * > self . payload
2011-05-13 17:42:05 +02:00
* protocol = PROTOCOLS . get ( hdr . protocol , " Unknown protocol " ) # < < < < < < < < < < < < < <
* return " %s packet, %s bytes " % ( protocol , self . payload_len )
*
2011-05-12 22:45:14 +02:00
*/
2012-12-24 04:17:54 +01:00
__pyx_t_1 = __Pyx_GetName ( __pyx_m , __pyx_n_s__PROTOCOLS ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 44 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_2 = PyObject_GetAttr ( __pyx_t_1 , __pyx_n_s__get ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 44 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2011-05-13 17:42:05 +02:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2012-12-24 04:17:54 +01:00
__pyx_t_1 = __Pyx_PyInt_to_py_u_int8_t ( __pyx_v_hdr - > protocol ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 44 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_3 = PyTuple_New ( 2 ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 44 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_3 ) ) ;
2011-05-13 17:42:05 +02:00
PyTuple_SET_ITEM ( __pyx_t_3 , 0 , __pyx_t_1 ) ;
__Pyx_GIVEREF ( __pyx_t_1 ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_kp_s_1 ) ) ;
PyTuple_SET_ITEM ( __pyx_t_3 , 1 , ( ( PyObject * ) __pyx_kp_s_1 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_kp_s_1 ) ) ;
__pyx_t_1 = 0 ;
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyObject_Call ( __pyx_t_2 , ( ( PyObject * ) __pyx_t_3 ) , NULL ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 44 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_DECREF ( ( ( PyObject * ) __pyx_t_3 ) ) ; __pyx_t_3 = 0 ;
2011-05-13 17:42:05 +02:00
__pyx_v_protocol = __pyx_t_1 ;
__pyx_t_1 = 0 ;
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":45
2011-05-13 17:42:05 +02:00
* cdef iphdr * hdr = < iphdr * > self . payload
* protocol = PROTOCOLS . get ( hdr . protocol , " Unknown protocol " )
2011-05-12 22:45:14 +02:00
* return " %s packet, %s bytes " % ( protocol , self . payload_len ) # < < < < < < < < < < < < < <
*
* cdef set_nfq_data ( self , nfq_q_handle * qh , nfq_data * nfa ) :
*/
__Pyx_XDECREF ( __pyx_r ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyInt_FromSsize_t ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > payload_len ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 45 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_3 = PyTuple_New ( 2 ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 45 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_3 ) ) ;
2011-05-12 22:45:14 +02:00
__Pyx_INCREF ( __pyx_v_protocol ) ;
2011-05-13 17:42:05 +02:00
PyTuple_SET_ITEM ( __pyx_t_3 , 0 , __pyx_v_protocol ) ;
2011-05-12 22:45:14 +02:00
__Pyx_GIVEREF ( __pyx_v_protocol ) ;
2011-05-13 17:42:05 +02:00
PyTuple_SET_ITEM ( __pyx_t_3 , 1 , __pyx_t_1 ) ;
__Pyx_GIVEREF ( __pyx_t_1 ) ;
__pyx_t_1 = 0 ;
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyNumber_Remainder ( ( ( PyObject * ) __pyx_kp_s_2 ) , ( ( PyObject * ) __pyx_t_3 ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 45 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_1 ) ) ;
__Pyx_DECREF ( ( ( PyObject * ) __pyx_t_3 ) ) ; __pyx_t_3 = 0 ;
__pyx_r = ( ( PyObject * ) __pyx_t_1 ) ;
__pyx_t_1 = 0 ;
2011-05-12 22:45:14 +02:00
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
2011-05-13 17:42:05 +02:00
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_t_2 ) ;
__Pyx_XDECREF ( __pyx_t_3 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.__str__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = NULL ;
__pyx_L0 : ;
2011-10-14 23:14:25 +02:00
__Pyx_XDECREF ( __pyx_v_protocol ) ;
2011-05-12 22:45:14 +02:00
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":47
2011-05-12 22:45:14 +02:00
* return " %s packet, %s bytes " % ( protocol , self . payload_len )
*
* cdef set_nfq_data ( self , nfq_q_handle * qh , nfq_data * nfa ) : # < < < < < < < < < < < < < <
* " " "
* Assign a packet from NFQ to this object . Parse the header and load
*/
2011-10-14 23:14:25 +02:00
static PyObject * __pyx_f_14netfilterqueue_6Packet_set_nfq_data ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , struct nfq_q_handle * __pyx_v_qh , struct nfq_data * __pyx_v_nfa ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
int __pyx_t_1 ;
PyObject * __pyx_t_2 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " set_nfq_data " ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":52
2011-05-12 22:45:14 +02:00
* local values .
* " " "
* self . _qh = qh # < < < < < < < < < < < < < <
* self . _nfa = nfa
* self . _hdr = nfq_get_msg_packet_hdr ( nfa )
*/
__pyx_v_self - > _qh = __pyx_v_qh ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":53
2011-05-12 22:45:14 +02:00
* " " "
* self . _qh = qh
* self . _nfa = nfa # < < < < < < < < < < < < < <
* self . _hdr = nfq_get_msg_packet_hdr ( nfa )
*
*/
__pyx_v_self - > _nfa = __pyx_v_nfa ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":54
2011-05-12 22:45:14 +02:00
* self . _qh = qh
* self . _nfa = nfa
* self . _hdr = nfq_get_msg_packet_hdr ( nfa ) # < < < < < < < < < < < < < <
*
* self . id = ntohl ( self . _hdr . packet_id )
*/
__pyx_v_self - > _hdr = nfq_get_msg_packet_hdr ( __pyx_v_nfa ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":56
2011-05-12 22:45:14 +02:00
* self . _hdr = nfq_get_msg_packet_hdr ( nfa )
*
* self . id = ntohl ( self . _hdr . packet_id ) # < < < < < < < < < < < < < <
* self . hw_protocol = ntohs ( self . _hdr . hw_protocol )
* self . hook = self . _hdr . hook
*/
__pyx_v_self - > id = ntohl ( __pyx_v_self - > _hdr - > packet_id ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":57
2011-05-12 22:45:14 +02:00
*
* self . id = ntohl ( self . _hdr . packet_id )
* self . hw_protocol = ntohs ( self . _hdr . hw_protocol ) # < < < < < < < < < < < < < <
* self . hook = self . _hdr . hook
*
*/
__pyx_v_self - > hw_protocol = ntohs ( __pyx_v_self - > _hdr - > hw_protocol ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":58
2011-05-12 22:45:14 +02:00
* self . id = ntohl ( self . _hdr . packet_id )
* self . hw_protocol = ntohs ( self . _hdr . hw_protocol )
* self . hook = self . _hdr . hook # < < < < < < < < < < < < < <
*
* self . payload_len = nfq_get_payload ( self . _nfa , & self . payload )
*/
__pyx_v_self - > hook = __pyx_v_self - > _hdr - > hook ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":60
2011-05-12 22:45:14 +02:00
* self . hook = self . _hdr . hook
*
* self . payload_len = nfq_get_payload ( self . _nfa , & self . payload ) # < < < < < < < < < < < < < <
* if self . payload_len < 0 :
* raise OSError ( " Failed to get payload of packet. " )
*/
__pyx_v_self - > payload_len = nfq_get_payload ( __pyx_v_self - > _nfa , ( & __pyx_v_self - > payload ) ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":61
2011-05-12 22:45:14 +02:00
*
* self . payload_len = nfq_get_payload ( self . _nfa , & self . payload )
* if self . payload_len < 0 : # < < < < < < < < < < < < < <
* raise OSError ( " Failed to get payload of packet. " )
*
*/
__pyx_t_1 = ( __pyx_v_self - > payload_len < 0 ) ;
if ( __pyx_t_1 ) {
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":62
2011-05-12 22:45:14 +02:00
* self . payload_len = nfq_get_payload ( self . _nfa , & self . payload )
* if self . payload_len < 0 :
* raise OSError ( " Failed to get payload of packet. " ) # < < < < < < < < < < < < < <
*
* nfq_get_timestamp ( self . _nfa , & self . timestamp )
*/
2012-12-24 04:17:54 +01:00
__pyx_t_2 = PyObject_Call ( __pyx_builtin_OSError , ( ( PyObject * ) __pyx_k_tuple_4 ) , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 62 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_Raise ( __pyx_t_2 , 0 , 0 , 0 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2012-12-24 04:17:54 +01:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 62 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
goto __pyx_L3 ;
}
__pyx_L3 : ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":64
2011-05-12 22:45:14 +02:00
* raise OSError ( " Failed to get payload of packet. " )
*
* nfq_get_timestamp ( self . _nfa , & self . timestamp ) # < < < < < < < < < < < < < <
*
* cdef void verdict ( self , u_int8_t verdict ) :
*/
nfq_get_timestamp ( __pyx_v_self - > _nfa , ( & __pyx_v_self - > timestamp ) ) ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.set_nfq_data " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":66
2011-05-12 22:45:14 +02:00
* nfq_get_timestamp ( self . _nfa , & self . timestamp )
*
* cdef void verdict ( self , u_int8_t verdict ) : # < < < < < < < < < < < < < <
* " " " Call appropriate set_verdict... function on packet. " " "
2011-05-13 17:42:05 +02:00
* if self . _verdict_is_set :
2011-05-12 22:45:14 +02:00
*/
2011-10-14 23:14:25 +02:00
static void __pyx_f_14netfilterqueue_6Packet_verdict ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , u_int8_t __pyx_v_verdict ) {
2012-12-24 04:17:54 +01:00
u_int32_t __pyx_v_modified_payload_len ;
unsigned char * __pyx_v_modified_payload ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-13 17:42:05 +02:00
PyObject * __pyx_t_1 = NULL ;
2012-12-24 04:17:54 +01:00
int __pyx_t_2 ;
Py_ssize_t __pyx_t_3 ;
unsigned char * __pyx_t_4 ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " verdict " ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":68
2011-05-13 17:42:05 +02:00
* cdef void verdict ( self , u_int8_t verdict ) :
* " " " Call appropriate set_verdict... function on packet. " " "
* if self . _verdict_is_set : # < < < < < < < < < < < < < <
* raise RuntimeWarning ( " Verdict already given for this packet. " )
*
*/
if ( __pyx_v_self - > _verdict_is_set ) {
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":69
2011-05-13 17:42:05 +02:00
* " " " Call appropriate set_verdict... function on packet. " " "
* if self . _verdict_is_set :
* raise RuntimeWarning ( " Verdict already given for this packet. " ) # < < < < < < < < < < < < < <
*
2012-12-24 04:17:54 +01:00
* cdef u_int32_t modified_payload_len = 0
2011-05-13 17:42:05 +02:00
*/
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyObject_Call ( __pyx_builtin_RuntimeWarning , ( ( PyObject * ) __pyx_k_tuple_6 ) , NULL ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 69 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_Raise ( __pyx_t_1 , 0 , 0 , 0 ) ;
2011-05-13 17:42:05 +02:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2012-12-24 04:17:54 +01:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 69 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
goto __pyx_L3 ;
}
__pyx_L3 : ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":71
2011-05-13 17:42:05 +02:00
* raise RuntimeWarning ( " Verdict already given for this packet. " )
2011-05-12 22:45:14 +02:00
*
2012-12-24 04:17:54 +01:00
* cdef u_int32_t modified_payload_len = 0 # < < < < < < < < < < < < < <
* cdef unsigned char * modified_payload = NULL
* if self . _given_payload :
*/
__pyx_v_modified_payload_len = 0 ;
/* "netfilterqueue.pyx":72
*
* cdef u_int32_t modified_payload_len = 0
* cdef unsigned char * modified_payload = NULL # < < < < < < < < < < < < < <
* if self . _given_payload :
* modified_payload_len = len ( self . _given_payload )
*/
__pyx_v_modified_payload = NULL ;
/* "netfilterqueue.pyx":73
* cdef u_int32_t modified_payload_len = 0
* cdef unsigned char * modified_payload = NULL
* if self . _given_payload : # < < < < < < < < < < < < < <
* modified_payload_len = len ( self . _given_payload )
* modified_payload = self . _given_payload
*/
__pyx_t_2 = ( ( ( PyObject * ) __pyx_v_self - > _given_payload ) ! = Py_None ) & & ( PyBytes_GET_SIZE ( ( ( PyObject * ) __pyx_v_self - > _given_payload ) ) ! = 0 ) ;
if ( __pyx_t_2 ) {
/* "netfilterqueue.pyx":74
* cdef unsigned char * modified_payload = NULL
* if self . _given_payload :
* modified_payload_len = len ( self . _given_payload ) # < < < < < < < < < < < < < <
* modified_payload = self . _given_payload
* if self . _mark_is_set :
*/
__pyx_t_1 = ( ( PyObject * ) __pyx_v_self - > _given_payload ) ;
__Pyx_INCREF ( __pyx_t_1 ) ;
if ( unlikely ( __pyx_t_1 = = Py_None ) ) {
PyErr_SetString ( PyExc_TypeError , " object of type 'NoneType' has no len() " ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 74 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
}
__pyx_t_3 = PyBytes_GET_SIZE ( __pyx_t_1 ) ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
__pyx_v_modified_payload_len = __pyx_t_3 ;
/* "netfilterqueue.pyx":75
* if self . _given_payload :
* modified_payload_len = len ( self . _given_payload )
* modified_payload = self . _given_payload # < < < < < < < < < < < < < <
* if self . _mark_is_set :
* nfq_set_verdict_mark ( # TODO : make this use nfq_set_verdict2 if
*/
__pyx_t_4 = __Pyx_PyBytes_AsUString ( ( ( PyObject * ) __pyx_v_self - > _given_payload ) ) ; if ( unlikely ( ( ! __pyx_t_4 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 75 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_v_modified_payload = __pyx_t_4 ;
goto __pyx_L4 ;
}
__pyx_L4 : ;
/* "netfilterqueue.pyx":76
* modified_payload_len = len ( self . _given_payload )
* modified_payload = self . _given_payload
2011-05-12 22:45:14 +02:00
* if self . _mark_is_set : # < < < < < < < < < < < < < <
2012-12-24 04:17:54 +01:00
* nfq_set_verdict_mark ( # TODO : make this use nfq_set_verdict2 if
* # available on system
2011-05-12 22:45:14 +02:00
*/
if ( __pyx_v_self - > _mark_is_set ) {
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":84
2011-05-12 22:45:14 +02:00
* htonl ( self . _given_mark ) ,
2012-12-24 04:17:54 +01:00
* modified_payload_len ,
* modified_payload ) # < < < < < < < < < < < < < <
2011-05-12 22:45:14 +02:00
* else :
2012-12-24 04:17:54 +01:00
* nfq_set_verdict (
2011-05-12 22:45:14 +02:00
*/
2012-12-24 04:17:54 +01:00
nfq_set_verdict_mark ( __pyx_v_self - > _qh , __pyx_v_self - > id , __pyx_v_verdict , htonl ( __pyx_v_self - > _given_mark ) , __pyx_v_modified_payload_len , __pyx_v_modified_payload ) ;
goto __pyx_L5 ;
2011-05-12 22:45:14 +02:00
}
/*else*/ {
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":91
2011-05-12 22:45:14 +02:00
* verdict ,
2012-12-24 04:17:54 +01:00
* modified_payload_len ,
* modified_payload ) # < < < < < < < < < < < < < <
2011-05-12 22:45:14 +02:00
*
2012-12-24 04:17:54 +01:00
* self . _verdict_is_set = True
2011-05-12 22:45:14 +02:00
*/
2012-12-24 04:17:54 +01:00
nfq_set_verdict ( __pyx_v_self - > _qh , __pyx_v_self - > id , __pyx_v_verdict , __pyx_v_modified_payload_len , __pyx_v_modified_payload ) ;
2011-05-12 22:45:14 +02:00
}
2012-12-24 04:17:54 +01:00
__pyx_L5 : ;
2011-05-13 17:42:05 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":93
* modified_payload )
2011-05-13 17:42:05 +02:00
*
* self . _verdict_is_set = True # < < < < < < < < < < < < < <
*
* def get_payload ( self ) :
*/
__pyx_v_self - > _verdict_is_set = 1 ;
2011-05-12 22:45:14 +02:00
2011-05-13 17:42:05 +02:00
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_WriteUnraisable ( " netfilterqueue.Packet.verdict " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-13 17:42:05 +02:00
__pyx_L0 : ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannyFinishContext ( ) ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":95
2011-05-13 17:42:05 +02:00
* self . _verdict_is_set = True
2011-05-12 22:45:14 +02:00
*
* def get_payload ( self ) : # < < < < < < < < < < < < < <
2011-05-13 17:42:05 +02:00
* " " " Return payload as Python string. " " "
2012-12-24 04:17:54 +01:00
* cdef object py_string = PyString_FromStringAndSize ( self . payload ,
2011-05-12 22:45:14 +02:00
*/
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_2get_payload ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_6Packet_2get_payload [ ] = " Return payload as Python string. " ;
static PyObject * __pyx_pf_14netfilterqueue_6Packet_2get_payload ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_v_py_string = 0 ;
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " get_payload " ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":98
2011-05-13 17:42:05 +02:00
* " " " Return payload as Python string. " " "
2012-12-24 04:17:54 +01:00
* cdef object py_string = PyString_FromStringAndSize ( self . payload ,
* self . payload_len ) # < < < < < < < < < < < < < <
2011-05-12 22:45:14 +02:00
* return py_string
*
*/
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyString_FromStringAndSize ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > payload , ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > payload_len ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 97 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_v_py_string = __pyx_t_1 ;
__pyx_t_1 = 0 ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":99
* cdef object py_string = PyString_FromStringAndSize ( self . payload ,
* self . payload_len )
2011-05-12 22:45:14 +02:00
* return py_string # < < < < < < < < < < < < < <
*
* cpdef Py_ssize_t get_payload_len ( self ) :
*/
__Pyx_XDECREF ( __pyx_r ) ;
__Pyx_INCREF ( __pyx_v_py_string ) ;
__pyx_r = __pyx_v_py_string ;
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.get_payload " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XDECREF ( __pyx_v_py_string ) ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":101
2011-05-12 22:45:14 +02:00
* return py_string
*
* cpdef Py_ssize_t get_payload_len ( self ) : # < < < < < < < < < < < < < <
* return self . payload_len
*
*/
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_3get_payload_len ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
2011-10-14 23:14:25 +02:00
static Py_ssize_t __pyx_f_14netfilterqueue_6Packet_get_payload_len ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , int __pyx_skip_dispatch ) {
2011-05-12 22:45:14 +02:00
Py_ssize_t __pyx_r ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
PyObject * __pyx_t_2 = NULL ;
Py_ssize_t __pyx_t_3 ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " get_payload_len " ) ;
/* Check if called by wrapper */
if ( unlikely ( __pyx_skip_dispatch ) ) ;
/* Check if overriden in Python */
else if ( unlikely ( Py_TYPE ( ( ( PyObject * ) __pyx_v_self ) ) - > tp_dictoffset ! = 0 ) ) {
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyObject_GetAttr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s__get_payload_len ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 101 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2011-05-13 17:42:05 +02:00
if ( ! PyCFunction_Check ( __pyx_t_1 ) | | ( PyCFunction_GET_FUNCTION ( __pyx_t_1 ) ! = ( void * ) & __pyx_pf_14netfilterqueue_6Packet_3get_payload_len ) ) {
2012-12-24 04:17:54 +01:00
__pyx_t_2 = PyObject_Call ( __pyx_t_1 , ( ( PyObject * ) __pyx_empty_tuple ) , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 101 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_3 = __Pyx_PyIndex_AsSsize_t ( __pyx_t_2 ) ; if ( unlikely ( ( __pyx_t_3 = = ( Py_ssize_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 101 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
__pyx_r = __pyx_t_3 ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
goto __pyx_L0 ;
}
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":102
2011-05-12 22:45:14 +02:00
*
* cpdef Py_ssize_t get_payload_len ( self ) :
* return self . payload_len # < < < < < < < < < < < < < <
*
* cpdef double get_timestamp ( self ) :
*/
__pyx_r = __pyx_v_self - > payload_len ;
goto __pyx_L0 ;
__pyx_r = 0 ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_WriteUnraisable ( " netfilterqueue.Packet.get_payload_len " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":101
2011-05-12 22:45:14 +02:00
* return py_string
*
* cpdef Py_ssize_t get_payload_len ( self ) : # < < < < < < < < < < < < < <
* return self . payload_len
*
*/
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_3get_payload_len ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static PyObject * __pyx_pf_14netfilterqueue_6Packet_3get_payload_len ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " get_payload_len " ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyInt_FromSsize_t ( ( ( struct __pyx_vtabstruct_14netfilterqueue_Packet * ) ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > __pyx_vtab ) - > get_payload_len ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) , 1 ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 101 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.get_payload_len " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":104
2011-05-12 22:45:14 +02:00
* return self . payload_len
*
* cpdef double get_timestamp ( self ) : # < < < < < < < < < < < < < <
* return self . timestamp . tv_sec + ( self . timestamp . tv_usec / 1000000.0 )
*
*/
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_4get_timestamp ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
2011-10-14 23:14:25 +02:00
static double __pyx_f_14netfilterqueue_6Packet_get_timestamp ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , int __pyx_skip_dispatch ) {
2011-05-12 22:45:14 +02:00
double __pyx_r ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
PyObject * __pyx_t_2 = NULL ;
double __pyx_t_3 ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " get_timestamp " ) ;
/* Check if called by wrapper */
if ( unlikely ( __pyx_skip_dispatch ) ) ;
/* Check if overriden in Python */
else if ( unlikely ( Py_TYPE ( ( ( PyObject * ) __pyx_v_self ) ) - > tp_dictoffset ! = 0 ) ) {
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyObject_GetAttr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s__get_timestamp ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 104 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2011-05-13 17:42:05 +02:00
if ( ! PyCFunction_Check ( __pyx_t_1 ) | | ( PyCFunction_GET_FUNCTION ( __pyx_t_1 ) ! = ( void * ) & __pyx_pf_14netfilterqueue_6Packet_4get_timestamp ) ) {
2012-12-24 04:17:54 +01:00
__pyx_t_2 = PyObject_Call ( __pyx_t_1 , ( ( PyObject * ) __pyx_empty_tuple ) , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 104 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_3 = __pyx_PyFloat_AsDouble ( __pyx_t_2 ) ; if ( unlikely ( ( __pyx_t_3 = = ( double ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 104 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
__pyx_r = __pyx_t_3 ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
goto __pyx_L0 ;
}
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":105
2011-05-12 22:45:14 +02:00
*
* cpdef double get_timestamp ( self ) :
* return self . timestamp . tv_sec + ( self . timestamp . tv_usec / 1000000.0 ) # < < < < < < < < < < < < < <
*
2012-12-24 04:17:54 +01:00
* cpdef set_payload ( self , bytes payload ) :
2011-05-12 22:45:14 +02:00
*/
__pyx_r = ( __pyx_v_self - > timestamp . tv_sec + ( __pyx_v_self - > timestamp . tv_usec / 1000000.0 ) ) ;
goto __pyx_L0 ;
__pyx_r = 0 ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_WriteUnraisable ( " netfilterqueue.Packet.get_timestamp " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":104
2011-05-12 22:45:14 +02:00
* return self . payload_len
*
* cpdef double get_timestamp ( self ) : # < < < < < < < < < < < < < <
* return self . timestamp . tv_sec + ( self . timestamp . tv_usec / 1000000.0 )
*
*/
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_4get_timestamp ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static PyObject * __pyx_pf_14netfilterqueue_6Packet_4get_timestamp ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " get_timestamp " ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyFloat_FromDouble ( ( ( struct __pyx_vtabstruct_14netfilterqueue_Packet * ) ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > __pyx_vtab ) - > get_timestamp ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) , 1 ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 104 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.get_timestamp " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":107
* return self . timestamp . tv_sec + ( self . timestamp . tv_usec / 1000000.0 )
*
* cpdef set_payload ( self , bytes payload ) : # < < < < < < < < < < < < < <
* " " " Set the new payload of this packet. " " "
* self . _given_payload = payload
*/
static PyObject * __pyx_pf_14netfilterqueue_6Packet_5set_payload ( PyObject * __pyx_v_self , PyObject * __pyx_v_payload ) ; /*proto*/
static PyObject * __pyx_f_14netfilterqueue_6Packet_set_payload ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , PyObject * __pyx_v_payload , int __pyx_skip_dispatch ) {
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
PyObject * __pyx_t_2 = NULL ;
PyObject * __pyx_t_3 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " set_payload " ) ;
/* Check if called by wrapper */
if ( unlikely ( __pyx_skip_dispatch ) ) ;
/* Check if overriden in Python */
else if ( unlikely ( Py_TYPE ( ( ( PyObject * ) __pyx_v_self ) ) - > tp_dictoffset ! = 0 ) ) {
__pyx_t_1 = PyObject_GetAttr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s__set_payload ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 107 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_1 ) ;
if ( ! PyCFunction_Check ( __pyx_t_1 ) | | ( PyCFunction_GET_FUNCTION ( __pyx_t_1 ) ! = ( void * ) & __pyx_pf_14netfilterqueue_6Packet_5set_payload ) ) {
__Pyx_XDECREF ( __pyx_r ) ;
__pyx_t_2 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 107 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_2 ) ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_v_payload ) ) ;
PyTuple_SET_ITEM ( __pyx_t_2 , 0 , ( ( PyObject * ) __pyx_v_payload ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_v_payload ) ) ;
__pyx_t_3 = PyObject_Call ( __pyx_t_1 , ( ( PyObject * ) __pyx_t_2 ) , NULL ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 107 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_3 ) ;
__Pyx_DECREF ( ( ( PyObject * ) __pyx_t_2 ) ) ; __pyx_t_2 = 0 ;
__pyx_r = __pyx_t_3 ;
__pyx_t_3 = 0 ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
goto __pyx_L0 ;
}
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
}
/* "netfilterqueue.pyx":109
* cpdef set_payload ( self , bytes payload ) :
* " " " Set the new payload of this packet. " " "
* self . _given_payload = payload # < < < < < < < < < < < < < <
*
* cpdef set_mark ( self , u_int32_t mark ) :
*/
__Pyx_INCREF ( ( ( PyObject * ) __pyx_v_payload ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_v_payload ) ) ;
__Pyx_GOTREF ( __pyx_v_self - > _given_payload ) ;
__Pyx_DECREF ( ( ( PyObject * ) __pyx_v_self - > _given_payload ) ) ;
__pyx_v_self - > _given_payload = __pyx_v_payload ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
__Pyx_XDECREF ( __pyx_t_3 ) ;
__Pyx_AddTraceback ( " netfilterqueue.Packet.set_payload " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
/* "netfilterqueue.pyx":107
* return self . timestamp . tv_sec + ( self . timestamp . tv_usec / 1000000.0 )
*
* cpdef set_payload ( self , bytes payload ) : # < < < < < < < < < < < < < <
* " " " Set the new payload of this packet. " " "
* self . _given_payload = payload
*/
static PyObject * __pyx_pf_14netfilterqueue_6Packet_5set_payload ( PyObject * __pyx_v_self , PyObject * __pyx_v_payload ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_6Packet_5set_payload [ ] = " Set the new payload of this packet. " ;
static PyObject * __pyx_pf_14netfilterqueue_6Packet_5set_payload ( PyObject * __pyx_v_self , PyObject * __pyx_v_payload ) {
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
__Pyx_RefNannySetupContext ( " set_payload " ) ;
if ( unlikely ( ! __Pyx_ArgTypeTest ( ( ( PyObject * ) __pyx_v_payload ) , ( & PyBytes_Type ) , 1 , " payload " , 1 ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 107 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_XDECREF ( __pyx_r ) ;
__pyx_t_1 = ( ( struct __pyx_vtabstruct_14netfilterqueue_Packet * ) ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > __pyx_vtab ) - > set_payload ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) , __pyx_v_payload , 1 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 107 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_AddTraceback ( " netfilterqueue.Packet.set_payload " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
/* "netfilterqueue.pyx":111
* self . _given_payload = payload
2011-05-12 22:45:14 +02:00
*
* cpdef set_mark ( self , u_int32_t mark ) : # < < < < < < < < < < < < < <
* self . _given_mark = mark
* self . _mark_is_set = True
*/
2012-12-24 04:17:54 +01:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_6set_mark ( PyObject * __pyx_v_self , PyObject * __pyx_arg_mark ) ; /*proto*/
2011-10-14 23:14:25 +02:00
static PyObject * __pyx_f_14netfilterqueue_6Packet_set_mark ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , u_int32_t __pyx_v_mark , int __pyx_skip_dispatch ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
PyObject * __pyx_t_2 = NULL ;
PyObject * __pyx_t_3 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " set_mark " ) ;
/* Check if called by wrapper */
if ( unlikely ( __pyx_skip_dispatch ) ) ;
/* Check if overriden in Python */
else if ( unlikely ( Py_TYPE ( ( ( PyObject * ) __pyx_v_self ) ) - > tp_dictoffset ! = 0 ) ) {
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyObject_GetAttr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s__set_mark ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 111 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2012-12-24 04:17:54 +01:00
if ( ! PyCFunction_Check ( __pyx_t_1 ) | | ( PyCFunction_GET_FUNCTION ( __pyx_t_1 ) ! = ( void * ) & __pyx_pf_14netfilterqueue_6Packet_6set_mark ) ) {
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_2 = __Pyx_PyInt_to_py_u_int32_t ( __pyx_v_mark ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 111 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_3 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 111 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_3 ) ) ;
PyTuple_SET_ITEM ( __pyx_t_3 , 0 , __pyx_t_2 ) ;
__Pyx_GIVEREF ( __pyx_t_2 ) ;
__pyx_t_2 = 0 ;
2012-12-24 04:17:54 +01:00
__pyx_t_2 = PyObject_Call ( __pyx_t_1 , ( ( PyObject * ) __pyx_t_3 ) , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 111 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_DECREF ( ( ( PyObject * ) __pyx_t_3 ) ) ; __pyx_t_3 = 0 ;
__pyx_r = __pyx_t_2 ;
__pyx_t_2 = 0 ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
goto __pyx_L0 ;
}
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":112
2011-05-12 22:45:14 +02:00
*
* cpdef set_mark ( self , u_int32_t mark ) :
* self . _given_mark = mark # < < < < < < < < < < < < < <
* self . _mark_is_set = True
*
*/
__pyx_v_self - > _given_mark = __pyx_v_mark ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":113
2011-05-12 22:45:14 +02:00
* cpdef set_mark ( self , u_int32_t mark ) :
* self . _given_mark = mark
* self . _mark_is_set = True # < < < < < < < < < < < < < <
*
* cpdef accept ( self ) :
*/
__pyx_v_self - > _mark_is_set = 1 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
__Pyx_XDECREF ( __pyx_t_3 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.set_mark " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":111
* self . _given_payload = payload
2011-05-12 22:45:14 +02:00
*
* cpdef set_mark ( self , u_int32_t mark ) : # < < < < < < < < < < < < < <
* self . _given_mark = mark
* self . _mark_is_set = True
*/
2012-12-24 04:17:54 +01:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_6set_mark ( PyObject * __pyx_v_self , PyObject * __pyx_arg_mark ) ; /*proto*/
static PyObject * __pyx_pf_14netfilterqueue_6Packet_6set_mark ( PyObject * __pyx_v_self , PyObject * __pyx_arg_mark ) {
2011-05-12 22:45:14 +02:00
u_int32_t __pyx_v_mark ;
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " set_mark " ) ;
assert ( __pyx_arg_mark ) ; {
2012-12-24 04:17:54 +01:00
__pyx_v_mark = __Pyx_PyInt_from_py_u_int32_t ( __pyx_arg_mark ) ; if ( unlikely ( ( __pyx_v_mark = = ( u_int32_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 111 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2011-05-12 22:45:14 +02:00
}
goto __pyx_L4_argument_unpacking_done ;
__pyx_L3_error : ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.set_mark " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return NULL ;
__pyx_L4_argument_unpacking_done : ;
__Pyx_XDECREF ( __pyx_r ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_1 = ( ( struct __pyx_vtabstruct_14netfilterqueue_Packet * ) ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > __pyx_vtab ) - > set_mark ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) , __pyx_v_mark , 1 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 111 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.set_mark " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":115
2011-05-12 22:45:14 +02:00
* self . _mark_is_set = True
*
* cpdef accept ( self ) : # < < < < < < < < < < < < < <
* " " " Accept the packet. " " "
* self . verdict ( NF_ACCEPT )
*/
2012-12-24 04:17:54 +01:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_7accept ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
2011-10-14 23:14:25 +02:00
static PyObject * __pyx_f_14netfilterqueue_6Packet_accept ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , int __pyx_skip_dispatch ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
PyObject * __pyx_t_2 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " accept " ) ;
/* Check if called by wrapper */
if ( unlikely ( __pyx_skip_dispatch ) ) ;
/* Check if overriden in Python */
else if ( unlikely ( Py_TYPE ( ( ( PyObject * ) __pyx_v_self ) ) - > tp_dictoffset ! = 0 ) ) {
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyObject_GetAttr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s__accept ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 115 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2012-12-24 04:17:54 +01:00
if ( ! PyCFunction_Check ( __pyx_t_1 ) | | ( PyCFunction_GET_FUNCTION ( __pyx_t_1 ) ! = ( void * ) & __pyx_pf_14netfilterqueue_6Packet_7accept ) ) {
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_2 = PyObject_Call ( __pyx_t_1 , ( ( PyObject * ) __pyx_empty_tuple ) , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 115 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__pyx_r = __pyx_t_2 ;
__pyx_t_2 = 0 ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
goto __pyx_L0 ;
}
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":117
2011-05-12 22:45:14 +02:00
* cpdef accept ( self ) :
* " " " Accept the packet. " " "
* self . verdict ( NF_ACCEPT ) # < < < < < < < < < < < < < <
*
* cpdef drop ( self ) :
*/
2011-05-13 17:42:05 +02:00
( ( struct __pyx_vtabstruct_14netfilterqueue_Packet * ) __pyx_v_self - > __pyx_vtab ) - > verdict ( __pyx_v_self , __pyx_e_14netfilterqueue_NF_ACCEPT ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.accept " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":115
2011-05-12 22:45:14 +02:00
* self . _mark_is_set = True
*
* cpdef accept ( self ) : # < < < < < < < < < < < < < <
* " " " Accept the packet. " " "
* self . verdict ( NF_ACCEPT )
*/
2012-12-24 04:17:54 +01:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_7accept ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_6Packet_7accept [ ] = " Accept the packet. " ;
static PyObject * __pyx_pf_14netfilterqueue_6Packet_7accept ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " accept " ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_1 = ( ( struct __pyx_vtabstruct_14netfilterqueue_Packet * ) ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > __pyx_vtab ) - > accept ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) , 1 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 115 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.accept " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":119
2011-05-12 22:45:14 +02:00
* self . verdict ( NF_ACCEPT )
*
* cpdef drop ( self ) : # < < < < < < < < < < < < < <
* " " " Drop the packet. " " "
* self . verdict ( NF_DROP )
*/
2012-12-24 04:17:54 +01:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_8drop ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
2011-10-14 23:14:25 +02:00
static PyObject * __pyx_f_14netfilterqueue_6Packet_drop ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , int __pyx_skip_dispatch ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
PyObject * __pyx_t_2 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " drop " ) ;
/* Check if called by wrapper */
if ( unlikely ( __pyx_skip_dispatch ) ) ;
/* Check if overriden in Python */
else if ( unlikely ( Py_TYPE ( ( ( PyObject * ) __pyx_v_self ) ) - > tp_dictoffset ! = 0 ) ) {
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyObject_GetAttr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s__drop ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 119 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2012-12-24 04:17:54 +01:00
if ( ! PyCFunction_Check ( __pyx_t_1 ) | | ( PyCFunction_GET_FUNCTION ( __pyx_t_1 ) ! = ( void * ) & __pyx_pf_14netfilterqueue_6Packet_8drop ) ) {
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_2 = PyObject_Call ( __pyx_t_1 , ( ( PyObject * ) __pyx_empty_tuple ) , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 119 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__pyx_r = __pyx_t_2 ;
__pyx_t_2 = 0 ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
goto __pyx_L0 ;
}
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":121
2011-05-12 22:45:14 +02:00
* cpdef drop ( self ) :
* " " " Drop the packet. " " "
* self . verdict ( NF_DROP ) # < < < < < < < < < < < < < <
*
2011-10-14 23:14:25 +02:00
* cdef class NetfilterQueue :
2011-05-12 22:45:14 +02:00
*/
2011-05-13 17:42:05 +02:00
( ( struct __pyx_vtabstruct_14netfilterqueue_Packet * ) __pyx_v_self - > __pyx_vtab ) - > verdict ( __pyx_v_self , __pyx_e_14netfilterqueue_NF_DROP ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.drop " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":119
2011-05-12 22:45:14 +02:00
* self . verdict ( NF_ACCEPT )
*
* cpdef drop ( self ) : # < < < < < < < < < < < < < <
* " " " Drop the packet. " " "
* self . verdict ( NF_DROP )
*/
2012-12-24 04:17:54 +01:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_8drop ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_6Packet_8drop [ ] = " Drop the packet. " ;
static PyObject * __pyx_pf_14netfilterqueue_6Packet_8drop ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " drop " ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_1 = ( ( struct __pyx_vtabstruct_14netfilterqueue_Packet * ) ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > __pyx_vtab ) - > drop ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) , 1 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 119 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.drop " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2011-05-13 17:42:05 +02:00
/* "netfilterqueue.pxd":162
2011-05-12 22:45:14 +02:00
*
* # From NFQ packet header :
* cdef readonly u_int32_t id # < < < < < < < < < < < < < <
* cdef readonly u_int16_t hw_protocol
* cdef readonly u_int8_t hook
*/
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_2id___get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pf_14netfilterqueue_6Packet_2id___get__ ( PyObject * __pyx_v_self ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " __get__ " ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2011-05-13 17:42:05 +02:00
__pyx_t_1 = __Pyx_PyInt_to_py_u_int32_t ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > id ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 162 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.id.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2011-05-13 17:42:05 +02:00
/* "netfilterqueue.pxd":163
2011-05-12 22:45:14 +02:00
* # From NFQ packet header :
* cdef readonly u_int32_t id
* cdef readonly u_int16_t hw_protocol # < < < < < < < < < < < < < <
* cdef readonly u_int8_t hook
*
*/
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_11hw_protocol___get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pf_14netfilterqueue_6Packet_11hw_protocol___get__ ( PyObject * __pyx_v_self ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " __get__ " ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2011-05-13 17:42:05 +02:00
__pyx_t_1 = __Pyx_PyInt_to_py_u_int16_t ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > hw_protocol ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 163 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.hw_protocol.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2011-05-13 17:42:05 +02:00
/* "netfilterqueue.pxd":164
2011-05-12 22:45:14 +02:00
* cdef readonly u_int32_t id
* cdef readonly u_int16_t hw_protocol
* cdef readonly u_int8_t hook # < < < < < < < < < < < < < <
*
* # Packet details :
*/
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_4hook___get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pf_14netfilterqueue_6Packet_4hook___get__ ( PyObject * __pyx_v_self ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " __get__ " ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2011-05-13 17:42:05 +02:00
__pyx_t_1 = __Pyx_PyInt_to_py_u_int8_t ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > hook ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 164 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.hook.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2011-05-13 17:42:05 +02:00
/* "netfilterqueue.pxd":168
2011-05-12 22:45:14 +02:00
* # Packet details :
* cdef Py_ssize_t payload_len
* cdef readonly char * payload # < < < < < < < < < < < < < <
* cdef timeval timestamp
* # TODO : implement these
*/
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_7payload___get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pf_14netfilterqueue_6Packet_7payload___get__ ( PyObject * __pyx_v_self ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_1 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " __get__ " ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2011-05-13 17:42:05 +02:00
__pyx_t_1 = PyBytes_FromString ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) - > payload ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 168 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_1 ) ) ;
__pyx_r = ( ( PyObject * ) __pyx_t_1 ) ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.payload.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":125
2011-10-14 23:14:25 +02:00
* cdef class NetfilterQueue :
2011-05-12 22:45:14 +02:00
* " " " Handle a single numbered queue. " " "
* def __cinit__ ( self , * args , * * kwargs ) : # < < < < < < < < < < < < < <
2011-05-13 17:42:05 +02:00
* self . af = kwargs . get ( " af " , PF_INET )
*
2011-05-12 22:45:14 +02:00
*/
2011-10-14 23:14:25 +02:00
static int __pyx_pf_14netfilterqueue_14NetfilterQueue___cinit__ ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
static int __pyx_pf_14netfilterqueue_14NetfilterQueue___cinit__ ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_v_args = 0 ;
PyObject * __pyx_v_kwargs = 0 ;
int __pyx_r ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-13 17:42:05 +02:00
PyObject * __pyx_t_1 = NULL ;
2011-05-12 22:45:14 +02:00
PyObject * __pyx_t_2 = NULL ;
u_int16_t __pyx_t_3 ;
2011-05-13 17:42:05 +02:00
int __pyx_t_4 ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " __cinit__ " ) ;
if ( unlikely ( __pyx_kwds ) & & unlikely ( ! __Pyx_CheckKeywordStrings ( __pyx_kwds , " __cinit__ " , 1 ) ) ) return - 1 ;
__pyx_v_kwargs = ( __pyx_kwds ) ? PyDict_Copy ( __pyx_kwds ) : PyDict_New ( ) ;
if ( unlikely ( ! __pyx_v_kwargs ) ) return - 1 ;
__Pyx_GOTREF ( __pyx_v_kwargs ) ;
__Pyx_INCREF ( __pyx_args ) ;
__pyx_v_args = __pyx_args ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":126
2011-05-12 22:45:14 +02:00
* " " " Handle a single numbered queue. " " "
* def __cinit__ ( self , * args , * * kwargs ) :
2011-05-13 17:42:05 +02:00
* self . af = kwargs . get ( " af " , PF_INET ) # < < < < < < < < < < < < < <
2011-05-12 22:45:14 +02:00
*
* self . h = nfq_open ( )
*/
2011-10-14 23:14:25 +02:00
if ( unlikely ( ( ( PyObject * ) __pyx_v_kwargs ) = = Py_None ) ) {
2012-12-24 04:17:54 +01:00
PyErr_Format ( PyExc_AttributeError , " 'NoneType' object has no attribute '%s' " , " get " ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 126 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
}
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyInt_FromLong ( __pyx_e_14netfilterqueue_PF_INET ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 126 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_2 = __Pyx_PyDict_GetItemDefault ( ( ( PyObject * ) __pyx_v_kwargs ) , ( ( PyObject * ) __pyx_n_s__af ) , __pyx_t_1 ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 126 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2012-12-24 04:17:54 +01:00
__pyx_t_3 = __Pyx_PyInt_from_py_u_int16_t ( __pyx_t_2 ) ; if ( unlikely ( ( __pyx_t_3 = = ( u_int16_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 126 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2011-10-14 23:14:25 +02:00
( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > af = __pyx_t_3 ;
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":128
2011-05-13 17:42:05 +02:00
* self . af = kwargs . get ( " af " , PF_INET )
2011-05-12 22:45:14 +02:00
*
* self . h = nfq_open ( ) # < < < < < < < < < < < < < <
* if self . h = = NULL :
* raise OSError ( " Failed to open NFQueue. " )
*/
2011-10-14 23:14:25 +02:00
( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > h = nfq_open ( ) ;
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":129
2011-05-12 22:45:14 +02:00
*
* self . h = nfq_open ( )
* if self . h = = NULL : # < < < < < < < < < < < < < <
* raise OSError ( " Failed to open NFQueue. " )
* nfq_unbind_pf ( self . h , self . af ) # This does NOT kick out previous
*/
2011-10-14 23:14:25 +02:00
__pyx_t_4 = ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > h = = NULL ) ;
2011-05-13 17:42:05 +02:00
if ( __pyx_t_4 ) {
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":130
2011-05-12 22:45:14 +02:00
* self . h = nfq_open ( )
* if self . h = = NULL :
* raise OSError ( " Failed to open NFQueue. " ) # < < < < < < < < < < < < < <
* nfq_unbind_pf ( self . h , self . af ) # This does NOT kick out previous
* # running queues
*/
2012-12-24 04:17:54 +01:00
__pyx_t_2 = PyObject_Call ( __pyx_builtin_OSError , ( ( PyObject * ) __pyx_k_tuple_8 ) , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 130 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_Raise ( __pyx_t_2 , 0 , 0 , 0 ) ;
2011-05-13 17:42:05 +02:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2012-12-24 04:17:54 +01:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 130 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
goto __pyx_L5 ;
2011-05-12 22:45:14 +02:00
}
2011-05-13 17:42:05 +02:00
__pyx_L5 : ;
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":131
2011-05-12 22:45:14 +02:00
* if self . h = = NULL :
* raise OSError ( " Failed to open NFQueue. " )
* nfq_unbind_pf ( self . h , self . af ) # This does NOT kick out previous # < < < < < < < < < < < < < <
* # running queues
* if nfq_bind_pf ( self . h , self . af ) < 0 :
*/
2011-10-14 23:14:25 +02:00
nfq_unbind_pf ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > h , ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > af ) ;
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":133
2011-05-12 22:45:14 +02:00
* nfq_unbind_pf ( self . h , self . af ) # This does NOT kick out previous
* # running queues
* if nfq_bind_pf ( self . h , self . af ) < 0 : # < < < < < < < < < < < < < <
2011-05-13 18:48:29 +02:00
* raise OSError ( " Failed to bind family %s. Are you root? " % self . af )
2011-05-12 22:45:14 +02:00
*
*/
2011-10-14 23:14:25 +02:00
__pyx_t_4 = ( nfq_bind_pf ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > h , ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > af ) < 0 ) ;
2011-05-13 17:42:05 +02:00
if ( __pyx_t_4 ) {
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":134
2011-05-12 22:45:14 +02:00
* # running queues
* if nfq_bind_pf ( self . h , self . af ) < 0 :
2011-05-13 18:48:29 +02:00
* raise OSError ( " Failed to bind family %s. Are you root? " % self . af ) # < < < < < < < < < < < < < <
2011-05-12 22:45:14 +02:00
*
* def __dealloc__ ( self ) :
*/
2012-12-24 04:17:54 +01:00
__pyx_t_2 = __Pyx_PyInt_to_py_u_int16_t ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > af ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 134 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyNumber_Remainder ( ( ( PyObject * ) __pyx_kp_s_9 ) , __pyx_t_2 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 134 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_1 ) ) ;
2011-05-12 22:45:14 +02:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2012-12-24 04:17:54 +01:00
__pyx_t_2 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 134 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_2 ) ) ;
PyTuple_SET_ITEM ( __pyx_t_2 , 0 , ( ( PyObject * ) __pyx_t_1 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_t_1 ) ) ;
__pyx_t_1 = 0 ;
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyObject_Call ( __pyx_builtin_OSError , ( ( PyObject * ) __pyx_t_2 ) , NULL ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 134 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_DECREF ( ( ( PyObject * ) __pyx_t_2 ) ) ; __pyx_t_2 = 0 ;
2011-10-14 23:14:25 +02:00
__Pyx_Raise ( __pyx_t_1 , 0 , 0 , 0 ) ;
2011-05-13 17:42:05 +02:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2012-12-24 04:17:54 +01:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 134 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
goto __pyx_L6 ;
2011-05-12 22:45:14 +02:00
}
2011-05-13 17:42:05 +02:00
__pyx_L6 : ;
2011-05-12 22:45:14 +02:00
__pyx_r = 0 ;
goto __pyx_L0 ;
__pyx_L1_error : ;
2011-05-13 17:42:05 +02:00
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_t_2 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.NetfilterQueue.__cinit__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = - 1 ;
__pyx_L0 : ;
2011-10-14 23:14:25 +02:00
__Pyx_XDECREF ( __pyx_v_args ) ;
__Pyx_XDECREF ( __pyx_v_kwargs ) ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":136
2011-05-13 18:48:29 +02:00
* raise OSError ( " Failed to bind family %s. Are you root? " % self . af )
2011-05-12 22:45:14 +02:00
*
* def __dealloc__ ( self ) : # < < < < < < < < < < < < < <
* if self . qh ! = NULL :
* nfq_destroy_queue ( self . qh )
*/
2011-10-14 23:14:25 +02:00
static void __pyx_pf_14netfilterqueue_14NetfilterQueue_1__dealloc__ ( PyObject * __pyx_v_self ) ; /*proto*/
static void __pyx_pf_14netfilterqueue_14NetfilterQueue_1__dealloc__ ( PyObject * __pyx_v_self ) {
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
int __pyx_t_1 ;
__Pyx_RefNannySetupContext ( " __dealloc__ " ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":137
2011-05-12 22:45:14 +02:00
*
* def __dealloc__ ( self ) :
* if self . qh ! = NULL : # < < < < < < < < < < < < < <
* nfq_destroy_queue ( self . qh )
* # Don ' t call nfq_unbind_pf unless you want to disconnect any other
*/
2011-10-14 23:14:25 +02:00
__pyx_t_1 = ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > qh ! = NULL ) ;
2011-05-12 22:45:14 +02:00
if ( __pyx_t_1 ) {
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":138
2011-05-12 22:45:14 +02:00
* def __dealloc__ ( self ) :
* if self . qh ! = NULL :
* nfq_destroy_queue ( self . qh ) # < < < < < < < < < < < < < <
* # Don ' t call nfq_unbind_pf unless you want to disconnect any other
* # processes using this libnetfilter_queue on this protocol family !
*/
2011-10-14 23:14:25 +02:00
nfq_destroy_queue ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > qh ) ;
2011-05-12 22:45:14 +02:00
goto __pyx_L5 ;
}
__pyx_L5 : ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":141
2011-05-12 22:45:14 +02:00
* # Don ' t call nfq_unbind_pf unless you want to disconnect any other
* # processes using this libnetfilter_queue on this protocol family !
* nfq_close ( self . h ) # < < < < < < < < < < < < < <
*
2012-12-24 04:17:54 +01:00
* def bind ( self , int queue_num , object user_callback ,
2011-05-12 22:45:14 +02:00
*/
2011-10-14 23:14:25 +02:00
nfq_close ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > h ) ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannyFinishContext ( ) ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":143
2011-05-12 22:45:14 +02:00
* nfq_close ( self . h )
*
2012-12-24 04:17:54 +01:00
* def bind ( self , int queue_num , object user_callback , # < < < < < < < < < < < < < <
* u_int32_t max_len = DEFAULT_MAX_QUEUELEN ,
* u_int8_t mode = NFQNL_COPY_PACKET ,
2011-05-12 22:45:14 +02:00
*/
2011-10-14 23:14:25 +02:00
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_2bind ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_14NetfilterQueue_2bind [ ] = " Create and bind to a new queue. " ;
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_2bind ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) {
2011-05-12 22:45:14 +02:00
int __pyx_v_queue_num ;
2011-10-14 23:14:25 +02:00
PyObject * __pyx_v_user_callback = 0 ;
2011-05-13 18:48:29 +02:00
u_int32_t __pyx_v_max_len ;
2011-05-12 22:45:14 +02:00
u_int8_t __pyx_v_mode ;
u_int32_t __pyx_v_range ;
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
int __pyx_t_1 ;
PyObject * __pyx_t_2 = NULL ;
PyObject * __pyx_t_3 = NULL ;
2011-10-14 23:14:25 +02:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
static PyObject * * __pyx_pyargnames [ ] = { & __pyx_n_s__queue_num , & __pyx_n_s__user_callback , & __pyx_n_s__max_len , & __pyx_n_s__mode , & __pyx_n_s__range , 0 } ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " bind " ) ;
2011-10-14 23:14:25 +02:00
{
PyObject * values [ 5 ] = { 0 , 0 , 0 , 0 , 0 } ;
if ( unlikely ( __pyx_kwds ) ) {
Py_ssize_t kw_args ;
switch ( PyTuple_GET_SIZE ( __pyx_args ) ) {
case 5 : values [ 4 ] = PyTuple_GET_ITEM ( __pyx_args , 4 ) ;
case 4 : values [ 3 ] = PyTuple_GET_ITEM ( __pyx_args , 3 ) ;
case 3 : values [ 2 ] = PyTuple_GET_ITEM ( __pyx_args , 2 ) ;
case 2 : values [ 1 ] = PyTuple_GET_ITEM ( __pyx_args , 1 ) ;
case 1 : values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
case 0 : break ;
default : goto __pyx_L5_argtuple_error ;
}
kw_args = PyDict_Size ( __pyx_kwds ) ;
switch ( PyTuple_GET_SIZE ( __pyx_args ) ) {
case 0 :
values [ 0 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s__queue_num ) ;
if ( likely ( values [ 0 ] ) ) kw_args - - ;
else goto __pyx_L5_argtuple_error ;
case 1 :
values [ 1 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s__user_callback ) ;
if ( likely ( values [ 1 ] ) ) kw_args - - ;
else {
2012-12-24 04:17:54 +01:00
__Pyx_RaiseArgtupleInvalid ( " bind " , 0 , 2 , 5 , 1 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 143 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2011-10-14 23:14:25 +02:00
}
case 2 :
if ( kw_args > 0 ) {
PyObject * value = PyDict_GetItem ( __pyx_kwds , __pyx_n_s__max_len ) ;
if ( value ) { values [ 2 ] = value ; kw_args - - ; }
}
case 3 :
if ( kw_args > 0 ) {
PyObject * value = PyDict_GetItem ( __pyx_kwds , __pyx_n_s__mode ) ;
if ( value ) { values [ 3 ] = value ; kw_args - - ; }
}
case 4 :
if ( kw_args > 0 ) {
PyObject * value = PyDict_GetItem ( __pyx_kwds , __pyx_n_s__range ) ;
if ( value ) { values [ 4 ] = value ; kw_args - - ; }
}
2011-05-12 22:45:14 +02:00
}
2011-10-14 23:14:25 +02:00
if ( unlikely ( kw_args > 0 ) ) {
2012-12-24 04:17:54 +01:00
if ( unlikely ( __Pyx_ParseOptionalKeywords ( __pyx_kwds , __pyx_pyargnames , 0 , values , PyTuple_GET_SIZE ( __pyx_args ) , " bind " ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 143 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2011-05-12 22:45:14 +02:00
}
2011-10-14 23:14:25 +02:00
} else {
switch ( PyTuple_GET_SIZE ( __pyx_args ) ) {
case 5 : values [ 4 ] = PyTuple_GET_ITEM ( __pyx_args , 4 ) ;
case 4 : values [ 3 ] = PyTuple_GET_ITEM ( __pyx_args , 3 ) ;
case 3 : values [ 2 ] = PyTuple_GET_ITEM ( __pyx_args , 2 ) ;
case 2 : values [ 1 ] = PyTuple_GET_ITEM ( __pyx_args , 1 ) ;
values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
break ;
default : goto __pyx_L5_argtuple_error ;
2011-05-12 22:45:14 +02:00
}
}
2012-12-24 04:17:54 +01:00
__pyx_v_queue_num = __Pyx_PyInt_AsInt ( values [ 0 ] ) ; if ( unlikely ( ( __pyx_v_queue_num = = ( int ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 143 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2011-10-14 23:14:25 +02:00
__pyx_v_user_callback = values [ 1 ] ;
if ( values [ 2 ] ) {
2012-12-24 04:17:54 +01:00
__pyx_v_max_len = __Pyx_PyInt_from_py_u_int32_t ( values [ 2 ] ) ; if ( unlikely ( ( __pyx_v_max_len = = ( u_int32_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 144 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2011-05-13 17:42:05 +02:00
} else {
2011-05-13 18:48:29 +02:00
__pyx_v_max_len = __pyx_k_10 ;
2011-05-13 17:42:05 +02:00
}
2011-10-14 23:14:25 +02:00
if ( values [ 3 ] ) {
2012-12-24 04:17:54 +01:00
__pyx_v_mode = __Pyx_PyInt_from_py_u_int8_t ( values [ 3 ] ) ; if ( unlikely ( ( __pyx_v_mode = = ( u_int8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 145 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2011-05-12 22:45:14 +02:00
} else {
2011-05-13 17:42:05 +02:00
__pyx_v_mode = __pyx_k_11 ;
2011-05-12 22:45:14 +02:00
}
2011-10-14 23:14:25 +02:00
if ( values [ 4 ] ) {
2012-12-24 04:17:54 +01:00
__pyx_v_range = __Pyx_PyInt_from_py_u_int32_t ( values [ 4 ] ) ; if ( unlikely ( ( __pyx_v_range = = ( u_int32_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 146 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2011-05-12 22:45:14 +02:00
} else {
__pyx_v_range = ( ( u_int32_t ) 65535 ) ;
}
}
goto __pyx_L4_argument_unpacking_done ;
__pyx_L5_argtuple_error : ;
2012-12-24 04:17:54 +01:00
__Pyx_RaiseArgtupleInvalid ( " bind " , 0 , 2 , 5 , PyTuple_GET_SIZE ( __pyx_args ) ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 143 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2011-05-12 22:45:14 +02:00
__pyx_L3_error : ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.NetfilterQueue.bind " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return NULL ;
__pyx_L4_argument_unpacking_done : ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":148
* u_int32_t range = MaxPacketSize ) :
2011-10-14 23:14:25 +02:00
* " " " Create and bind to a new queue. " " "
* self . user_callback = user_callback # < < < < < < < < < < < < < <
2012-12-24 04:17:54 +01:00
* self . qh = nfq_create_queue ( self . h , queue_num ,
* < nfq_callback * > global_callback , < void * > self )
2011-10-14 23:14:25 +02:00
*/
__Pyx_INCREF ( __pyx_v_user_callback ) ;
__Pyx_GIVEREF ( __pyx_v_user_callback ) ;
__Pyx_GOTREF ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > user_callback ) ;
__Pyx_DECREF ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > user_callback ) ;
( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > user_callback = __pyx_v_user_callback ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":149
2011-05-13 17:42:05 +02:00
* " " " Create and bind to a new queue. " " "
2011-10-14 23:14:25 +02:00
* self . user_callback = user_callback
2012-12-24 04:17:54 +01:00
* self . qh = nfq_create_queue ( self . h , queue_num , # < < < < < < < < < < < < < <
* < nfq_callback * > global_callback , < void * > self )
2011-05-12 22:45:14 +02:00
* if self . qh = = NULL :
*/
2011-10-14 23:14:25 +02:00
( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > qh = nfq_create_queue ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > h , __pyx_v_queue_num , ( ( nfq_callback * ) __pyx_f_14netfilterqueue_global_callback ) , ( ( void * ) __pyx_v_self ) ) ;
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":151
* self . qh = nfq_create_queue ( self . h , queue_num ,
* < nfq_callback * > global_callback , < void * > self )
2011-05-12 22:45:14 +02:00
* if self . qh = = NULL : # < < < < < < < < < < < < < <
* raise OSError ( " Failed to create queue %s. " % queue_num )
*
*/
2011-10-14 23:14:25 +02:00
__pyx_t_1 = ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > qh = = NULL ) ;
2011-05-12 22:45:14 +02:00
if ( __pyx_t_1 ) {
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":152
* < nfq_callback * > global_callback , < void * > self )
2011-05-12 22:45:14 +02:00
* if self . qh = = NULL :
* raise OSError ( " Failed to create queue %s. " % queue_num ) # < < < < < < < < < < < < < <
*
* if range > MaxCopySize :
*/
2012-12-24 04:17:54 +01:00
__pyx_t_2 = PyInt_FromLong ( __pyx_v_queue_num ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 152 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_3 = PyNumber_Remainder ( ( ( PyObject * ) __pyx_kp_s_12 ) , __pyx_t_2 ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 152 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_3 ) ) ;
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2012-12-24 04:17:54 +01:00
__pyx_t_2 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 152 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_2 ) ) ;
PyTuple_SET_ITEM ( __pyx_t_2 , 0 , ( ( PyObject * ) __pyx_t_3 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_t_3 ) ) ;
__pyx_t_3 = 0 ;
2012-12-24 04:17:54 +01:00
__pyx_t_3 = PyObject_Call ( __pyx_builtin_OSError , ( ( PyObject * ) __pyx_t_2 ) , NULL ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 152 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
__Pyx_DECREF ( ( ( PyObject * ) __pyx_t_2 ) ) ; __pyx_t_2 = 0 ;
2011-10-14 23:14:25 +02:00
__Pyx_Raise ( __pyx_t_3 , 0 , 0 , 0 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2012-12-24 04:17:54 +01:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 152 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
goto __pyx_L6 ;
}
__pyx_L6 : ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":154
2011-05-12 22:45:14 +02:00
* raise OSError ( " Failed to create queue %s. " % queue_num )
*
* if range > MaxCopySize : # < < < < < < < < < < < < < <
* range = MaxCopySize
* if nfq_set_mode ( self . qh , mode , range ) < 0 :
*/
__pyx_t_1 = ( __pyx_v_range > 4016 ) ;
if ( __pyx_t_1 ) {
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":155
2011-05-12 22:45:14 +02:00
*
* if range > MaxCopySize :
* range = MaxCopySize # < < < < < < < < < < < < < <
* if nfq_set_mode ( self . qh , mode , range ) < 0 :
* raise OSError ( " Failed to set packet copy mode. " )
*/
__pyx_v_range = 4016 ;
goto __pyx_L7 ;
}
__pyx_L7 : ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":156
2011-05-12 22:45:14 +02:00
* if range > MaxCopySize :
* range = MaxCopySize
* if nfq_set_mode ( self . qh , mode , range ) < 0 : # < < < < < < < < < < < < < <
* raise OSError ( " Failed to set packet copy mode. " )
*
*/
2011-10-14 23:14:25 +02:00
__pyx_t_1 = ( nfq_set_mode ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > qh , __pyx_v_mode , __pyx_v_range ) < 0 ) ;
2011-05-12 22:45:14 +02:00
if ( __pyx_t_1 ) {
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":157
2011-05-12 22:45:14 +02:00
* range = MaxCopySize
* if nfq_set_mode ( self . qh , mode , range ) < 0 :
* raise OSError ( " Failed to set packet copy mode. " ) # < < < < < < < < < < < < < <
*
2011-05-13 18:48:29 +02:00
* nfq_set_queue_maxlen ( self . qh , max_len )
2011-05-12 22:45:14 +02:00
*/
2012-12-24 04:17:54 +01:00
__pyx_t_3 = PyObject_Call ( __pyx_builtin_OSError , ( ( PyObject * ) __pyx_k_tuple_14 ) , NULL ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 157 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_Raise ( __pyx_t_3 , 0 , 0 , 0 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2012-12-24 04:17:54 +01:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 157 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
goto __pyx_L8 ;
}
__pyx_L8 : ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":159
2011-05-12 22:45:14 +02:00
* raise OSError ( " Failed to set packet copy mode. " )
*
2011-05-13 18:48:29 +02:00
* nfq_set_queue_maxlen ( self . qh , max_len ) # < < < < < < < < < < < < < <
2011-05-12 22:45:14 +02:00
*
* def unbind ( self ) :
*/
2011-10-14 23:14:25 +02:00
nfq_set_queue_maxlen ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > qh , __pyx_v_max_len ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
__Pyx_XDECREF ( __pyx_t_3 ) ;
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " netfilterqueue.NetfilterQueue.bind " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":161
2011-05-13 18:48:29 +02:00
* nfq_set_queue_maxlen ( self . qh , max_len )
2011-05-12 22:45:14 +02:00
*
* def unbind ( self ) : # < < < < < < < < < < < < < <
* " " " Destroy the queue. " " "
* if self . qh ! = NULL :
*/
2011-10-14 23:14:25 +02:00
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_3unbind ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_14NetfilterQueue_3unbind [ ] = " Destroy the queue. " ;
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_3unbind ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
int __pyx_t_1 ;
__Pyx_RefNannySetupContext ( " unbind " ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":163
2011-05-12 22:45:14 +02:00
* def unbind ( self ) :
* " " " Destroy the queue. " " "
* if self . qh ! = NULL : # < < < < < < < < < < < < < <
* nfq_destroy_queue ( self . qh )
* # See warning about nfq_unbind_pf in __dealloc__ above .
*/
2011-10-14 23:14:25 +02:00
__pyx_t_1 = ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > qh ! = NULL ) ;
2011-05-12 22:45:14 +02:00
if ( __pyx_t_1 ) {
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":164
2011-05-12 22:45:14 +02:00
* " " " Destroy the queue. " " "
* if self . qh ! = NULL :
* nfq_destroy_queue ( self . qh ) # < < < < < < < < < < < < < <
* # See warning about nfq_unbind_pf in __dealloc__ above .
*
*/
2011-10-14 23:14:25 +02:00
nfq_destroy_queue ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > qh ) ;
2011-05-12 22:45:14 +02:00
goto __pyx_L5 ;
}
__pyx_L5 : ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":167
2011-05-12 22:45:14 +02:00
* # See warning about nfq_unbind_pf in __dealloc__ above .
*
* def run ( self ) : # < < < < < < < < < < < < < <
* " " " Begin accepting packets. " " "
* cdef int fd = nfq_fd ( self . h )
*/
2011-10-14 23:14:25 +02:00
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_4run ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_14NetfilterQueue_4run [ ] = " Begin accepting packets. " ;
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_4run ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
2011-05-12 22:45:14 +02:00
int __pyx_v_fd ;
char __pyx_v_buf [ 4096 ] ;
int __pyx_v_rv ;
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
int __pyx_t_1 ;
__Pyx_RefNannySetupContext ( " run " ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":169
2011-05-12 22:45:14 +02:00
* def run ( self ) :
* " " " Begin accepting packets. " " "
* cdef int fd = nfq_fd ( self . h ) # < < < < < < < < < < < < < <
* cdef char buf [ BufferSize ]
* cdef int rv
*/
2011-10-14 23:14:25 +02:00
__pyx_v_fd = nfq_fd ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > h ) ;
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":172
2011-05-12 22:45:14 +02:00
* cdef char buf [ BufferSize ]
* cdef int rv
* with nogil : # < < < < < < < < < < < < < <
* rv = recv ( fd , buf , sizeof ( buf ) , 0 )
* while rv > = 0 :
*/
{
2011-10-14 23:14:25 +02:00
# ifdef WITH_THREAD
PyThreadState * _save = NULL ;
# endif
Py_UNBLOCK_THREADS
/*try:*/ {
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":173
2011-05-12 22:45:14 +02:00
* cdef int rv
* with nogil :
* rv = recv ( fd , buf , sizeof ( buf ) , 0 ) # < < < < < < < < < < < < < <
* while rv > = 0 :
* nfq_handle_packet ( self . h , buf , rv )
*/
2011-10-14 23:14:25 +02:00
__pyx_v_rv = recv ( __pyx_v_fd , __pyx_v_buf , ( sizeof ( __pyx_v_buf ) ) , 0 ) ;
}
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":172
2011-05-12 22:45:14 +02:00
* cdef char buf [ BufferSize ]
* cdef int rv
* with nogil : # < < < < < < < < < < < < < <
* rv = recv ( fd , buf , sizeof ( buf ) , 0 )
* while rv > = 0 :
*/
2011-10-14 23:14:25 +02:00
/*finally:*/ {
Py_BLOCK_THREADS
}
2011-05-12 22:45:14 +02:00
}
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":174
2011-05-12 22:45:14 +02:00
* with nogil :
* rv = recv ( fd , buf , sizeof ( buf ) , 0 )
* while rv > = 0 : # < < < < < < < < < < < < < <
* nfq_handle_packet ( self . h , buf , rv )
* with nogil :
*/
while ( 1 ) {
__pyx_t_1 = ( __pyx_v_rv > = 0 ) ;
if ( ! __pyx_t_1 ) break ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":175
2011-05-12 22:45:14 +02:00
* rv = recv ( fd , buf , sizeof ( buf ) , 0 )
* while rv > = 0 :
* nfq_handle_packet ( self . h , buf , rv ) # < < < < < < < < < < < < < <
* with nogil :
* rv = recv ( fd , buf , sizeof ( buf ) , 0 )
*/
2011-10-14 23:14:25 +02:00
nfq_handle_packet ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) - > h , __pyx_v_buf , __pyx_v_rv ) ;
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":176
2011-05-12 22:45:14 +02:00
* while rv > = 0 :
* nfq_handle_packet ( self . h , buf , rv )
* with nogil : # < < < < < < < < < < < < < <
* rv = recv ( fd , buf , sizeof ( buf ) , 0 )
*
*/
{
2011-10-14 23:14:25 +02:00
# ifdef WITH_THREAD
PyThreadState * _save = NULL ;
# endif
Py_UNBLOCK_THREADS
/*try:*/ {
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":177
2011-05-12 22:45:14 +02:00
* nfq_handle_packet ( self . h , buf , rv )
* with nogil :
* rv = recv ( fd , buf , sizeof ( buf ) , 0 ) # < < < < < < < < < < < < < <
*
2011-10-14 23:14:25 +02:00
* PROTOCOLS = {
2011-05-12 22:45:14 +02:00
*/
2011-10-14 23:14:25 +02:00
__pyx_v_rv = recv ( __pyx_v_fd , __pyx_v_buf , ( sizeof ( __pyx_v_buf ) ) , 0 ) ;
}
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":176
2011-05-12 22:45:14 +02:00
* while rv > = 0 :
* nfq_handle_packet ( self . h , buf , rv )
* with nogil : # < < < < < < < < < < < < < <
* rv = recv ( fd , buf , sizeof ( buf ) , 0 )
*
*/
2011-10-14 23:14:25 +02:00
/*finally:*/ {
Py_BLOCK_THREADS
}
2011-05-12 22:45:14 +02:00
}
}
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2011-05-13 17:42:05 +02:00
static struct __pyx_vtabstruct_14netfilterqueue_Packet __pyx_vtable_14netfilterqueue_Packet ;
2011-05-12 22:45:14 +02:00
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_tp_new_14netfilterqueue_Packet ( PyTypeObject * t , PyObject * a , PyObject * k ) {
struct __pyx_obj_14netfilterqueue_Packet * p ;
2011-05-12 22:45:14 +02:00
PyObject * o = ( * t - > tp_alloc ) ( t , 0 ) ;
if ( ! o ) return 0 ;
2011-05-13 17:42:05 +02:00
p = ( ( struct __pyx_obj_14netfilterqueue_Packet * ) o ) ;
p - > __pyx_vtab = __pyx_vtabptr_14netfilterqueue_Packet ;
2012-12-24 04:17:54 +01:00
p - > _given_payload = ( ( PyObject * ) Py_None ) ; Py_INCREF ( Py_None ) ;
2011-05-13 17:42:05 +02:00
if ( __pyx_pf_14netfilterqueue_6Packet___cinit__ ( o , __pyx_empty_tuple , NULL ) < 0 ) {
2011-05-12 22:45:14 +02:00
Py_DECREF ( o ) ; o = 0 ;
}
return o ;
}
2011-05-13 17:42:05 +02:00
static void __pyx_tp_dealloc_14netfilterqueue_Packet ( PyObject * o ) {
2012-12-24 04:17:54 +01:00
struct __pyx_obj_14netfilterqueue_Packet * p = ( struct __pyx_obj_14netfilterqueue_Packet * ) o ;
Py_XDECREF ( ( ( PyObject * ) p - > _given_payload ) ) ;
2011-05-12 22:45:14 +02:00
( * Py_TYPE ( o ) - > tp_free ) ( o ) ;
}
2012-12-24 04:17:54 +01:00
static int __pyx_tp_traverse_14netfilterqueue_Packet ( PyObject * o , visitproc v , void * a ) {
int e ;
struct __pyx_obj_14netfilterqueue_Packet * p = ( struct __pyx_obj_14netfilterqueue_Packet * ) o ;
if ( p - > _given_payload ) {
e = ( * v ) ( p - > _given_payload , a ) ; if ( e ) return e ;
}
return 0 ;
}
static int __pyx_tp_clear_14netfilterqueue_Packet ( PyObject * o ) {
struct __pyx_obj_14netfilterqueue_Packet * p = ( struct __pyx_obj_14netfilterqueue_Packet * ) o ;
PyObject * tmp ;
tmp = ( ( PyObject * ) p - > _given_payload ) ;
p - > _given_payload = ( ( PyObject * ) Py_None ) ; Py_INCREF ( Py_None ) ;
Py_XDECREF ( tmp ) ;
return 0 ;
}
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_getprop_14netfilterqueue_6Packet_id ( PyObject * o , void * x ) {
return __pyx_pf_14netfilterqueue_6Packet_2id___get__ ( o ) ;
2011-05-12 22:45:14 +02:00
}
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_getprop_14netfilterqueue_6Packet_hw_protocol ( PyObject * o , void * x ) {
return __pyx_pf_14netfilterqueue_6Packet_11hw_protocol___get__ ( o ) ;
2011-05-12 22:45:14 +02:00
}
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_getprop_14netfilterqueue_6Packet_hook ( PyObject * o , void * x ) {
return __pyx_pf_14netfilterqueue_6Packet_4hook___get__ ( o ) ;
2011-05-12 22:45:14 +02:00
}
2011-05-13 17:42:05 +02:00
static PyObject * __pyx_getprop_14netfilterqueue_6Packet_payload ( PyObject * o , void * x ) {
return __pyx_pf_14netfilterqueue_6Packet_7payload___get__ ( o ) ;
2011-05-12 22:45:14 +02:00
}
2011-05-13 17:42:05 +02:00
static PyMethodDef __pyx_methods_14netfilterqueue_Packet [ ] = {
{ __Pyx_NAMESTR ( " get_payload " ) , ( PyCFunction ) __pyx_pf_14netfilterqueue_6Packet_2get_payload , METH_NOARGS , __Pyx_DOCSTR ( __pyx_doc_14netfilterqueue_6Packet_2get_payload ) } ,
{ __Pyx_NAMESTR ( " get_payload_len " ) , ( PyCFunction ) __pyx_pf_14netfilterqueue_6Packet_3get_payload_len , METH_NOARGS , __Pyx_DOCSTR ( 0 ) } ,
{ __Pyx_NAMESTR ( " get_timestamp " ) , ( PyCFunction ) __pyx_pf_14netfilterqueue_6Packet_4get_timestamp , METH_NOARGS , __Pyx_DOCSTR ( 0 ) } ,
2012-12-24 04:17:54 +01:00
{ __Pyx_NAMESTR ( " set_payload " ) , ( PyCFunction ) __pyx_pf_14netfilterqueue_6Packet_5set_payload , METH_O , __Pyx_DOCSTR ( __pyx_doc_14netfilterqueue_6Packet_5set_payload ) } ,
{ __Pyx_NAMESTR ( " set_mark " ) , ( PyCFunction ) __pyx_pf_14netfilterqueue_6Packet_6set_mark , METH_O , __Pyx_DOCSTR ( 0 ) } ,
{ __Pyx_NAMESTR ( " accept " ) , ( PyCFunction ) __pyx_pf_14netfilterqueue_6Packet_7accept , METH_NOARGS , __Pyx_DOCSTR ( __pyx_doc_14netfilterqueue_6Packet_7accept ) } ,
{ __Pyx_NAMESTR ( " drop " ) , ( PyCFunction ) __pyx_pf_14netfilterqueue_6Packet_8drop , METH_NOARGS , __Pyx_DOCSTR ( __pyx_doc_14netfilterqueue_6Packet_8drop ) } ,
2011-05-12 22:45:14 +02:00
{ 0 , 0 , 0 , 0 }
} ;
2011-05-13 17:42:05 +02:00
static struct PyGetSetDef __pyx_getsets_14netfilterqueue_Packet [ ] = {
{ ( char * ) " id " , __pyx_getprop_14netfilterqueue_6Packet_id , 0 , 0 , 0 } ,
{ ( char * ) " hw_protocol " , __pyx_getprop_14netfilterqueue_6Packet_hw_protocol , 0 , 0 , 0 } ,
{ ( char * ) " hook " , __pyx_getprop_14netfilterqueue_6Packet_hook , 0 , 0 , 0 } ,
{ ( char * ) " payload " , __pyx_getprop_14netfilterqueue_6Packet_payload , 0 , 0 , 0 } ,
2011-05-12 22:45:14 +02:00
{ 0 , 0 , 0 , 0 , 0 }
} ;
2011-05-13 17:42:05 +02:00
static PyNumberMethods __pyx_tp_as_number_Packet = {
2011-05-12 22:45:14 +02:00
0 , /*nb_add*/
0 , /*nb_subtract*/
0 , /*nb_multiply*/
# if PY_MAJOR_VERSION < 3
0 , /*nb_divide*/
# endif
0 , /*nb_remainder*/
0 , /*nb_divmod*/
0 , /*nb_power*/
0 , /*nb_negative*/
0 , /*nb_positive*/
0 , /*nb_absolute*/
0 , /*nb_nonzero*/
0 , /*nb_invert*/
0 , /*nb_lshift*/
0 , /*nb_rshift*/
0 , /*nb_and*/
0 , /*nb_xor*/
0 , /*nb_or*/
# if PY_MAJOR_VERSION < 3
0 , /*nb_coerce*/
# endif
0 , /*nb_int*/
# if PY_MAJOR_VERSION < 3
0 , /*nb_long*/
# else
0 , /*reserved*/
# endif
0 , /*nb_float*/
# if PY_MAJOR_VERSION < 3
0 , /*nb_oct*/
# endif
# if PY_MAJOR_VERSION < 3
0 , /*nb_hex*/
# endif
0 , /*nb_inplace_add*/
0 , /*nb_inplace_subtract*/
0 , /*nb_inplace_multiply*/
# if PY_MAJOR_VERSION < 3
0 , /*nb_inplace_divide*/
# endif
0 , /*nb_inplace_remainder*/
0 , /*nb_inplace_power*/
0 , /*nb_inplace_lshift*/
0 , /*nb_inplace_rshift*/
0 , /*nb_inplace_and*/
0 , /*nb_inplace_xor*/
0 , /*nb_inplace_or*/
0 , /*nb_floor_divide*/
0 , /*nb_true_divide*/
0 , /*nb_inplace_floor_divide*/
0 , /*nb_inplace_true_divide*/
# if PY_VERSION_HEX >= 0x02050000
0 , /*nb_index*/
# endif
} ;
2011-05-13 17:42:05 +02:00
static PySequenceMethods __pyx_tp_as_sequence_Packet = {
2011-05-12 22:45:14 +02:00
0 , /*sq_length*/
0 , /*sq_concat*/
0 , /*sq_repeat*/
0 , /*sq_item*/
0 , /*sq_slice*/
0 , /*sq_ass_item*/
0 , /*sq_ass_slice*/
0 , /*sq_contains*/
0 , /*sq_inplace_concat*/
0 , /*sq_inplace_repeat*/
} ;
2011-05-13 17:42:05 +02:00
static PyMappingMethods __pyx_tp_as_mapping_Packet = {
2011-05-12 22:45:14 +02:00
0 , /*mp_length*/
0 , /*mp_subscript*/
0 , /*mp_ass_subscript*/
} ;
2011-05-13 17:42:05 +02:00
static PyBufferProcs __pyx_tp_as_buffer_Packet = {
2011-05-12 22:45:14 +02:00
# if PY_MAJOR_VERSION < 3
0 , /*bf_getreadbuffer*/
# endif
# if PY_MAJOR_VERSION < 3
0 , /*bf_getwritebuffer*/
# endif
# if PY_MAJOR_VERSION < 3
0 , /*bf_getsegcount*/
# endif
# if PY_MAJOR_VERSION < 3
0 , /*bf_getcharbuffer*/
# endif
# if PY_VERSION_HEX >= 0x02060000
0 , /*bf_getbuffer*/
# endif
# if PY_VERSION_HEX >= 0x02060000
0 , /*bf_releasebuffer*/
# endif
} ;
2011-05-13 17:42:05 +02:00
static PyTypeObject __pyx_type_14netfilterqueue_Packet = {
2011-05-12 22:45:14 +02:00
PyVarObject_HEAD_INIT ( 0 , 0 )
2011-05-13 17:42:05 +02:00
__Pyx_NAMESTR ( " netfilterqueue.Packet " ) , /*tp_name*/
sizeof ( struct __pyx_obj_14netfilterqueue_Packet ) , /*tp_basicsize*/
2011-05-12 22:45:14 +02:00
0 , /*tp_itemsize*/
2011-05-13 17:42:05 +02:00
__pyx_tp_dealloc_14netfilterqueue_Packet , /*tp_dealloc*/
2011-05-12 22:45:14 +02:00
0 , /*tp_print*/
0 , /*tp_getattr*/
0 , /*tp_setattr*/
# if PY_MAJOR_VERSION < 3
0 , /*tp_compare*/
# else
0 , /*reserved*/
# endif
0 , /*tp_repr*/
2011-05-13 17:42:05 +02:00
& __pyx_tp_as_number_Packet , /*tp_as_number*/
& __pyx_tp_as_sequence_Packet , /*tp_as_sequence*/
& __pyx_tp_as_mapping_Packet , /*tp_as_mapping*/
2011-05-12 22:45:14 +02:00
0 , /*tp_hash*/
0 , /*tp_call*/
2011-05-13 17:42:05 +02:00
__pyx_pf_14netfilterqueue_6Packet_1__str__ , /*tp_str*/
2011-05-12 22:45:14 +02:00
0 , /*tp_getattro*/
0 , /*tp_setattro*/
2011-05-13 17:42:05 +02:00
& __pyx_tp_as_buffer_Packet , /*tp_as_buffer*/
2012-12-24 04:17:54 +01:00
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_CHECKTYPES | Py_TPFLAGS_HAVE_NEWBUFFER | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC , /*tp_flags*/
__Pyx_DOCSTR ( " A packet received from NetfilterQueue. " ) , /*tp_doc*/
__pyx_tp_traverse_14netfilterqueue_Packet , /*tp_traverse*/
__pyx_tp_clear_14netfilterqueue_Packet , /*tp_clear*/
2011-05-12 22:45:14 +02:00
0 , /*tp_richcompare*/
0 , /*tp_weaklistoffset*/
0 , /*tp_iter*/
0 , /*tp_iternext*/
2011-05-13 17:42:05 +02:00
__pyx_methods_14netfilterqueue_Packet , /*tp_methods*/
2011-05-12 22:45:14 +02:00
0 , /*tp_members*/
2011-05-13 17:42:05 +02:00
__pyx_getsets_14netfilterqueue_Packet , /*tp_getset*/
2011-05-12 22:45:14 +02:00
0 , /*tp_base*/
0 , /*tp_dict*/
0 , /*tp_descr_get*/
0 , /*tp_descr_set*/
0 , /*tp_dictoffset*/
0 , /*tp_init*/
0 , /*tp_alloc*/
2011-05-13 17:42:05 +02:00
__pyx_tp_new_14netfilterqueue_Packet , /*tp_new*/
2011-05-12 22:45:14 +02:00
0 , /*tp_free*/
0 , /*tp_is_gc*/
0 , /*tp_bases*/
0 , /*tp_mro*/
0 , /*tp_cache*/
0 , /*tp_subclasses*/
0 , /*tp_weaklist*/
0 , /*tp_del*/
# if PY_VERSION_HEX >= 0x02060000
0 , /*tp_version_tag*/
# endif
} ;
2011-10-14 23:14:25 +02:00
static PyObject * __pyx_tp_new_14netfilterqueue_NetfilterQueue ( PyTypeObject * t , PyObject * a , PyObject * k ) {
struct __pyx_obj_14netfilterqueue_NetfilterQueue * p ;
2011-05-12 22:45:14 +02:00
PyObject * o = ( * t - > tp_alloc ) ( t , 0 ) ;
if ( ! o ) return 0 ;
2011-10-14 23:14:25 +02:00
p = ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) o ) ;
p - > user_callback = Py_None ; Py_INCREF ( Py_None ) ;
2011-05-12 22:45:14 +02:00
p - > packet_copy_size = Py_None ; Py_INCREF ( Py_None ) ;
2011-10-14 23:14:25 +02:00
if ( __pyx_pf_14netfilterqueue_14NetfilterQueue___cinit__ ( o , a , k ) < 0 ) {
2011-05-12 22:45:14 +02:00
Py_DECREF ( o ) ; o = 0 ;
}
return o ;
}
2011-10-14 23:14:25 +02:00
static void __pyx_tp_dealloc_14netfilterqueue_NetfilterQueue ( PyObject * o ) {
struct __pyx_obj_14netfilterqueue_NetfilterQueue * p = ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) o ;
2011-05-12 22:45:14 +02:00
{
PyObject * etype , * eval , * etb ;
PyErr_Fetch ( & etype , & eval , & etb ) ;
+ + Py_REFCNT ( o ) ;
2011-10-14 23:14:25 +02:00
__pyx_pf_14netfilterqueue_14NetfilterQueue_1__dealloc__ ( o ) ;
2011-05-12 22:45:14 +02:00
if ( PyErr_Occurred ( ) ) PyErr_WriteUnraisable ( o ) ;
- - Py_REFCNT ( o ) ;
PyErr_Restore ( etype , eval , etb ) ;
}
2011-10-14 23:14:25 +02:00
Py_XDECREF ( p - > user_callback ) ;
2011-05-12 22:45:14 +02:00
Py_XDECREF ( p - > packet_copy_size ) ;
( * Py_TYPE ( o ) - > tp_free ) ( o ) ;
}
2011-10-14 23:14:25 +02:00
static int __pyx_tp_traverse_14netfilterqueue_NetfilterQueue ( PyObject * o , visitproc v , void * a ) {
2011-05-12 22:45:14 +02:00
int e ;
2011-10-14 23:14:25 +02:00
struct __pyx_obj_14netfilterqueue_NetfilterQueue * p = ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) o ;
if ( p - > user_callback ) {
e = ( * v ) ( p - > user_callback , a ) ; if ( e ) return e ;
}
2011-05-12 22:45:14 +02:00
if ( p - > packet_copy_size ) {
e = ( * v ) ( p - > packet_copy_size , a ) ; if ( e ) return e ;
}
return 0 ;
}
2011-10-14 23:14:25 +02:00
static int __pyx_tp_clear_14netfilterqueue_NetfilterQueue ( PyObject * o ) {
struct __pyx_obj_14netfilterqueue_NetfilterQueue * p = ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) o ;
2011-05-12 22:45:14 +02:00
PyObject * tmp ;
2011-10-14 23:14:25 +02:00
tmp = ( ( PyObject * ) p - > user_callback ) ;
p - > user_callback = Py_None ; Py_INCREF ( Py_None ) ;
Py_XDECREF ( tmp ) ;
2011-05-12 22:45:14 +02:00
tmp = ( ( PyObject * ) p - > packet_copy_size ) ;
p - > packet_copy_size = Py_None ; Py_INCREF ( Py_None ) ;
Py_XDECREF ( tmp ) ;
return 0 ;
}
2011-10-14 23:14:25 +02:00
static PyMethodDef __pyx_methods_14netfilterqueue_NetfilterQueue [ ] = {
{ __Pyx_NAMESTR ( " bind " ) , ( PyCFunction ) __pyx_pf_14netfilterqueue_14NetfilterQueue_2bind , METH_VARARGS | METH_KEYWORDS , __Pyx_DOCSTR ( __pyx_doc_14netfilterqueue_14NetfilterQueue_2bind ) } ,
{ __Pyx_NAMESTR ( " unbind " ) , ( PyCFunction ) __pyx_pf_14netfilterqueue_14NetfilterQueue_3unbind , METH_NOARGS , __Pyx_DOCSTR ( __pyx_doc_14netfilterqueue_14NetfilterQueue_3unbind ) } ,
{ __Pyx_NAMESTR ( " run " ) , ( PyCFunction ) __pyx_pf_14netfilterqueue_14NetfilterQueue_4run , METH_NOARGS , __Pyx_DOCSTR ( __pyx_doc_14netfilterqueue_14NetfilterQueue_4run ) } ,
2011-05-12 22:45:14 +02:00
{ 0 , 0 , 0 , 0 }
} ;
2011-10-14 23:14:25 +02:00
static PyNumberMethods __pyx_tp_as_number_NetfilterQueue = {
2011-05-12 22:45:14 +02:00
0 , /*nb_add*/
0 , /*nb_subtract*/
0 , /*nb_multiply*/
# if PY_MAJOR_VERSION < 3
0 , /*nb_divide*/
# endif
0 , /*nb_remainder*/
0 , /*nb_divmod*/
0 , /*nb_power*/
0 , /*nb_negative*/
0 , /*nb_positive*/
0 , /*nb_absolute*/
0 , /*nb_nonzero*/
0 , /*nb_invert*/
0 , /*nb_lshift*/
0 , /*nb_rshift*/
0 , /*nb_and*/
0 , /*nb_xor*/
0 , /*nb_or*/
# if PY_MAJOR_VERSION < 3
0 , /*nb_coerce*/
# endif
0 , /*nb_int*/
# if PY_MAJOR_VERSION < 3
0 , /*nb_long*/
# else
0 , /*reserved*/
# endif
0 , /*nb_float*/
# if PY_MAJOR_VERSION < 3
0 , /*nb_oct*/
# endif
# if PY_MAJOR_VERSION < 3
0 , /*nb_hex*/
# endif
0 , /*nb_inplace_add*/
0 , /*nb_inplace_subtract*/
0 , /*nb_inplace_multiply*/
# if PY_MAJOR_VERSION < 3
0 , /*nb_inplace_divide*/
# endif
0 , /*nb_inplace_remainder*/
0 , /*nb_inplace_power*/
0 , /*nb_inplace_lshift*/
0 , /*nb_inplace_rshift*/
0 , /*nb_inplace_and*/
0 , /*nb_inplace_xor*/
0 , /*nb_inplace_or*/
0 , /*nb_floor_divide*/
0 , /*nb_true_divide*/
0 , /*nb_inplace_floor_divide*/
0 , /*nb_inplace_true_divide*/
# if PY_VERSION_HEX >= 0x02050000
0 , /*nb_index*/
# endif
} ;
2011-10-14 23:14:25 +02:00
static PySequenceMethods __pyx_tp_as_sequence_NetfilterQueue = {
2011-05-12 22:45:14 +02:00
0 , /*sq_length*/
0 , /*sq_concat*/
0 , /*sq_repeat*/
0 , /*sq_item*/
0 , /*sq_slice*/
0 , /*sq_ass_item*/
0 , /*sq_ass_slice*/
0 , /*sq_contains*/
0 , /*sq_inplace_concat*/
0 , /*sq_inplace_repeat*/
} ;
2011-10-14 23:14:25 +02:00
static PyMappingMethods __pyx_tp_as_mapping_NetfilterQueue = {
2011-05-12 22:45:14 +02:00
0 , /*mp_length*/
0 , /*mp_subscript*/
0 , /*mp_ass_subscript*/
} ;
2011-10-14 23:14:25 +02:00
static PyBufferProcs __pyx_tp_as_buffer_NetfilterQueue = {
2011-05-12 22:45:14 +02:00
# if PY_MAJOR_VERSION < 3
0 , /*bf_getreadbuffer*/
# endif
# if PY_MAJOR_VERSION < 3
0 , /*bf_getwritebuffer*/
# endif
# if PY_MAJOR_VERSION < 3
0 , /*bf_getsegcount*/
# endif
# if PY_MAJOR_VERSION < 3
0 , /*bf_getcharbuffer*/
# endif
# if PY_VERSION_HEX >= 0x02060000
0 , /*bf_getbuffer*/
# endif
# if PY_VERSION_HEX >= 0x02060000
0 , /*bf_releasebuffer*/
# endif
} ;
2011-10-14 23:14:25 +02:00
static PyTypeObject __pyx_type_14netfilterqueue_NetfilterQueue = {
2011-05-12 22:45:14 +02:00
PyVarObject_HEAD_INIT ( 0 , 0 )
2011-10-14 23:14:25 +02:00
__Pyx_NAMESTR ( " netfilterqueue.NetfilterQueue " ) , /*tp_name*/
sizeof ( struct __pyx_obj_14netfilterqueue_NetfilterQueue ) , /*tp_basicsize*/
2011-05-12 22:45:14 +02:00
0 , /*tp_itemsize*/
2011-10-14 23:14:25 +02:00
__pyx_tp_dealloc_14netfilterqueue_NetfilterQueue , /*tp_dealloc*/
2011-05-12 22:45:14 +02:00
0 , /*tp_print*/
0 , /*tp_getattr*/
0 , /*tp_setattr*/
# if PY_MAJOR_VERSION < 3
0 , /*tp_compare*/
# else
0 , /*reserved*/
# endif
0 , /*tp_repr*/
2011-10-14 23:14:25 +02:00
& __pyx_tp_as_number_NetfilterQueue , /*tp_as_number*/
& __pyx_tp_as_sequence_NetfilterQueue , /*tp_as_sequence*/
& __pyx_tp_as_mapping_NetfilterQueue , /*tp_as_mapping*/
2011-05-12 22:45:14 +02:00
0 , /*tp_hash*/
0 , /*tp_call*/
0 , /*tp_str*/
0 , /*tp_getattro*/
0 , /*tp_setattro*/
2011-10-14 23:14:25 +02:00
& __pyx_tp_as_buffer_NetfilterQueue , /*tp_as_buffer*/
2011-05-12 22:45:14 +02:00
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_CHECKTYPES | Py_TPFLAGS_HAVE_NEWBUFFER | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC , /*tp_flags*/
__Pyx_DOCSTR ( " Handle a single numbered queue. " ) , /*tp_doc*/
2011-10-14 23:14:25 +02:00
__pyx_tp_traverse_14netfilterqueue_NetfilterQueue , /*tp_traverse*/
__pyx_tp_clear_14netfilterqueue_NetfilterQueue , /*tp_clear*/
2011-05-12 22:45:14 +02:00
0 , /*tp_richcompare*/
0 , /*tp_weaklistoffset*/
0 , /*tp_iter*/
0 , /*tp_iternext*/
2011-10-14 23:14:25 +02:00
__pyx_methods_14netfilterqueue_NetfilterQueue , /*tp_methods*/
2011-05-12 22:45:14 +02:00
0 , /*tp_members*/
0 , /*tp_getset*/
0 , /*tp_base*/
0 , /*tp_dict*/
0 , /*tp_descr_get*/
0 , /*tp_descr_set*/
0 , /*tp_dictoffset*/
0 , /*tp_init*/
0 , /*tp_alloc*/
2011-10-14 23:14:25 +02:00
__pyx_tp_new_14netfilterqueue_NetfilterQueue , /*tp_new*/
2011-05-12 22:45:14 +02:00
0 , /*tp_free*/
0 , /*tp_is_gc*/
0 , /*tp_bases*/
0 , /*tp_mro*/
0 , /*tp_cache*/
0 , /*tp_subclasses*/
0 , /*tp_weaklist*/
0 , /*tp_del*/
# if PY_VERSION_HEX >= 0x02060000
0 , /*tp_version_tag*/
# endif
} ;
static PyMethodDef __pyx_methods [ ] = {
{ 0 , 0 , 0 , 0 }
} ;
# if PY_MAJOR_VERSION >= 3
static struct PyModuleDef __pyx_moduledef = {
PyModuleDef_HEAD_INIT ,
__Pyx_NAMESTR ( " netfilterqueue " ) ,
2011-10-14 23:14:25 +02:00
__Pyx_DOCSTR ( __pyx_k_15 ) , /* m_doc */
2011-05-12 22:45:14 +02:00
- 1 , /* m_size */
__pyx_methods /* m_methods */ ,
NULL , /* m_reload */
NULL , /* m_traverse */
NULL , /* m_clear */
NULL /* m_free */
} ;
# endif
static __Pyx_StringTabEntry __pyx_string_tab [ ] = {
2011-05-13 17:42:05 +02:00
{ & __pyx_kp_s_1 , __pyx_k_1 , sizeof ( __pyx_k_1 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_12 , __pyx_k_12 , sizeof ( __pyx_k_12 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_13 , __pyx_k_13 , sizeof ( __pyx_k_13 ) , 0 , 0 , 1 , 0 } ,
2011-10-14 23:14:25 +02:00
{ & __pyx_n_s_17 , __pyx_k_17 , sizeof ( __pyx_k_17 ) , 0 , 0 , 1 , 1 } ,
2011-05-13 17:42:05 +02:00
{ & __pyx_kp_s_18 , __pyx_k_18 , sizeof ( __pyx_k_18 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_19 , __pyx_k_19 , sizeof ( __pyx_k_19 ) , 0 , 0 , 1 , 0 } ,
2011-05-12 22:45:14 +02:00
{ & __pyx_kp_s_2 , __pyx_k_2 , sizeof ( __pyx_k_2 ) , 0 , 0 , 1 , 0 } ,
2011-05-13 17:42:05 +02:00
{ & __pyx_kp_s_20 , __pyx_k_20 , sizeof ( __pyx_k_20 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_21 , __pyx_k_21 , sizeof ( __pyx_k_21 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_22 , __pyx_k_22 , sizeof ( __pyx_k_22 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_23 , __pyx_k_23 , sizeof ( __pyx_k_23 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_24 , __pyx_k_24 , sizeof ( __pyx_k_24 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_25 , __pyx_k_25 , sizeof ( __pyx_k_25 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_26 , __pyx_k_26 , sizeof ( __pyx_k_26 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_27 , __pyx_k_27 , sizeof ( __pyx_k_27 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_28 , __pyx_k_28 , sizeof ( __pyx_k_28 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_29 , __pyx_k_29 , sizeof ( __pyx_k_29 ) , 0 , 0 , 1 , 0 } ,
2011-05-12 22:45:14 +02:00
{ & __pyx_kp_s_3 , __pyx_k_3 , sizeof ( __pyx_k_3 ) , 0 , 0 , 1 , 0 } ,
2011-05-13 17:42:05 +02:00
{ & __pyx_kp_s_30 , __pyx_k_30 , sizeof ( __pyx_k_30 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_31 , __pyx_k_31 , sizeof ( __pyx_k_31 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_32 , __pyx_k_32 , sizeof ( __pyx_k_32 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_33 , __pyx_k_33 , sizeof ( __pyx_k_33 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_34 , __pyx_k_34 , sizeof ( __pyx_k_34 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_35 , __pyx_k_35 , sizeof ( __pyx_k_35 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_36 , __pyx_k_36 , sizeof ( __pyx_k_36 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_37 , __pyx_k_37 , sizeof ( __pyx_k_37 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_38 , __pyx_k_38 , sizeof ( __pyx_k_38 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_39 , __pyx_k_39 , sizeof ( __pyx_k_39 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_40 , __pyx_k_40 , sizeof ( __pyx_k_40 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_41 , __pyx_k_41 , sizeof ( __pyx_k_41 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_42 , __pyx_k_42 , sizeof ( __pyx_k_42 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_43 , __pyx_k_43 , sizeof ( __pyx_k_43 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_44 , __pyx_k_44 , sizeof ( __pyx_k_44 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_45 , __pyx_k_45 , sizeof ( __pyx_k_45 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_46 , __pyx_k_46 , sizeof ( __pyx_k_46 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_47 , __pyx_k_47 , sizeof ( __pyx_k_47 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_48 , __pyx_k_48 , sizeof ( __pyx_k_48 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_49 , __pyx_k_49 , sizeof ( __pyx_k_49 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_5 , __pyx_k_5 , sizeof ( __pyx_k_5 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_50 , __pyx_k_50 , sizeof ( __pyx_k_50 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_51 , __pyx_k_51 , sizeof ( __pyx_k_51 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_52 , __pyx_k_52 , sizeof ( __pyx_k_52 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_53 , __pyx_k_53 , sizeof ( __pyx_k_53 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_54 , __pyx_k_54 , sizeof ( __pyx_k_54 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_55 , __pyx_k_55 , sizeof ( __pyx_k_55 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_56 , __pyx_k_56 , sizeof ( __pyx_k_56 ) , 0 , 0 , 1 , 0 } ,
2011-10-14 23:14:25 +02:00
{ & __pyx_kp_s_57 , __pyx_k_57 , sizeof ( __pyx_k_57 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_58 , __pyx_k_58 , sizeof ( __pyx_k_58 ) , 0 , 0 , 1 , 0 } ,
2011-05-13 17:42:05 +02:00
{ & __pyx_kp_s_7 , __pyx_k_7 , sizeof ( __pyx_k_7 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_9 , __pyx_k_9 , sizeof ( __pyx_k_9 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s__3PC , __pyx_k__3PC , sizeof ( __pyx_k__3PC ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_n_s__AH , __pyx_k__AH , sizeof ( __pyx_k__AH ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__ARGUS , __pyx_k__ARGUS , sizeof ( __pyx_k__ARGUS ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__ARIS , __pyx_k__ARIS , sizeof ( __pyx_k__ARIS ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__BNA , __pyx_k__BNA , sizeof ( __pyx_k__BNA ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__CBT , __pyx_k__CBT , sizeof ( __pyx_k__CBT ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__CFTP , __pyx_k__CFTP , sizeof ( __pyx_k__CFTP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__CHAOS , __pyx_k__CHAOS , sizeof ( __pyx_k__CHAOS ) , 0 , 0 , 1 , 1 } ,
2011-05-12 22:45:14 +02:00
{ & __pyx_n_s__COPY_META , __pyx_k__COPY_META , sizeof ( __pyx_k__COPY_META ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__COPY_NONE , __pyx_k__COPY_NONE , sizeof ( __pyx_k__COPY_NONE ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__COPY_PACKET , __pyx_k__COPY_PACKET , sizeof ( __pyx_k__COPY_PACKET ) , 0 , 0 , 1 , 1 } ,
2011-05-13 17:42:05 +02:00
{ & __pyx_n_s__CPHB , __pyx_k__CPHB , sizeof ( __pyx_k__CPHB ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__CPNX , __pyx_k__CPNX , sizeof ( __pyx_k__CPNX ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__CRTP , __pyx_k__CRTP , sizeof ( __pyx_k__CRTP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__CRUDP , __pyx_k__CRUDP , sizeof ( __pyx_k__CRUDP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__DCCP , __pyx_k__DCCP , sizeof ( __pyx_k__DCCP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__DDP , __pyx_k__DDP , sizeof ( __pyx_k__DDP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__DDX , __pyx_k__DDX , sizeof ( __pyx_k__DDX ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__DGP , __pyx_k__DGP , sizeof ( __pyx_k__DGP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__DSR , __pyx_k__DSR , sizeof ( __pyx_k__DSR ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__EGP , __pyx_k__EGP , sizeof ( __pyx_k__EGP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__EIGRP , __pyx_k__EIGRP , sizeof ( __pyx_k__EIGRP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__EMCON , __pyx_k__EMCON , sizeof ( __pyx_k__EMCON ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__ENCAP , __pyx_k__ENCAP , sizeof ( __pyx_k__ENCAP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__ESP , __pyx_k__ESP , sizeof ( __pyx_k__ESP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__ETHERIP , __pyx_k__ETHERIP , sizeof ( __pyx_k__ETHERIP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__FC , __pyx_k__FC , sizeof ( __pyx_k__FC ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__FIRE , __pyx_k__FIRE , sizeof ( __pyx_k__FIRE ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__GGP , __pyx_k__GGP , sizeof ( __pyx_k__GGP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__GMTP , __pyx_k__GMTP , sizeof ( __pyx_k__GMTP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__GRE , __pyx_k__GRE , sizeof ( __pyx_k__GRE ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__HIP , __pyx_k__HIP , sizeof ( __pyx_k__HIP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__HMP , __pyx_k__HMP , sizeof ( __pyx_k__HMP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__HOPOPT , __pyx_k__HOPOPT , sizeof ( __pyx_k__HOPOPT ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IATP , __pyx_k__IATP , sizeof ( __pyx_k__IATP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__ICMP , __pyx_k__ICMP , sizeof ( __pyx_k__ICMP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IDPR , __pyx_k__IDPR , sizeof ( __pyx_k__IDPR ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IDRP , __pyx_k__IDRP , sizeof ( __pyx_k__IDRP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IFMP , __pyx_k__IFMP , sizeof ( __pyx_k__IFMP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IGMP , __pyx_k__IGMP , sizeof ( __pyx_k__IGMP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IGP , __pyx_k__IGP , sizeof ( __pyx_k__IGP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IL , __pyx_k__IL , sizeof ( __pyx_k__IL ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IP , __pyx_k__IP , sizeof ( __pyx_k__IP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IPCV , __pyx_k__IPCV , sizeof ( __pyx_k__IPCV ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IPComp , __pyx_k__IPComp , sizeof ( __pyx_k__IPComp ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IPIP , __pyx_k__IPIP , sizeof ( __pyx_k__IPIP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IPLT , __pyx_k__IPLT , sizeof ( __pyx_k__IPLT ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IPPC , __pyx_k__IPPC , sizeof ( __pyx_k__IPPC ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IPv6 , __pyx_k__IPv6 , sizeof ( __pyx_k__IPv6 ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__IRTP , __pyx_k__IRTP , sizeof ( __pyx_k__IRTP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__ISIS , __pyx_k__ISIS , sizeof ( __pyx_k__ISIS ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__KRYPTOLAN , __pyx_k__KRYPTOLAN , sizeof ( __pyx_k__KRYPTOLAN ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__L2TP , __pyx_k__L2TP , sizeof ( __pyx_k__L2TP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__LARP , __pyx_k__LARP , sizeof ( __pyx_k__LARP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__MICP , __pyx_k__MICP , sizeof ( __pyx_k__MICP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__MOBILE , __pyx_k__MOBILE , sizeof ( __pyx_k__MOBILE ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__MTP , __pyx_k__MTP , sizeof ( __pyx_k__MTP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__MUX , __pyx_k__MUX , sizeof ( __pyx_k__MUX ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__Mobility , __pyx_k__Mobility , sizeof ( __pyx_k__Mobility ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__NARP , __pyx_k__NARP , sizeof ( __pyx_k__NARP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__NETBLT , __pyx_k__NETBLT , sizeof ( __pyx_k__NETBLT ) , 0 , 0 , 1 , 1 } ,
2011-05-12 22:45:14 +02:00
{ & __pyx_n_s__OSError , __pyx_k__OSError , sizeof ( __pyx_k__OSError ) , 0 , 0 , 1 , 1 } ,
2011-05-13 17:42:05 +02:00
{ & __pyx_n_s__OSPFIGP , __pyx_k__OSPFIGP , sizeof ( __pyx_k__OSPFIGP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__PGM , __pyx_k__PGM , sizeof ( __pyx_k__PGM ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__PIM , __pyx_k__PIM , sizeof ( __pyx_k__PIM ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__PIPE , __pyx_k__PIPE , sizeof ( __pyx_k__PIPE ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__PNNI , __pyx_k__PNNI , sizeof ( __pyx_k__PNNI ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__PRM , __pyx_k__PRM , sizeof ( __pyx_k__PRM ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__PROTOCOLS , __pyx_k__PROTOCOLS , sizeof ( __pyx_k__PROTOCOLS ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__PTP , __pyx_k__PTP , sizeof ( __pyx_k__PTP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__PUP , __pyx_k__PUP , sizeof ( __pyx_k__PUP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__PVP , __pyx_k__PVP , sizeof ( __pyx_k__PVP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__QNX , __pyx_k__QNX , sizeof ( __pyx_k__QNX ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__RDP , __pyx_k__RDP , sizeof ( __pyx_k__RDP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__RSVP , __pyx_k__RSVP , sizeof ( __pyx_k__RSVP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__RVD , __pyx_k__RVD , sizeof ( __pyx_k__RVD ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__Reserved , __pyx_k__Reserved , sizeof ( __pyx_k__Reserved ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__RuntimeWarning , __pyx_k__RuntimeWarning , sizeof ( __pyx_k__RuntimeWarning ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__SCPS , __pyx_k__SCPS , sizeof ( __pyx_k__SCPS ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__SCTP , __pyx_k__SCTP , sizeof ( __pyx_k__SCTP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__SDRP , __pyx_k__SDRP , sizeof ( __pyx_k__SDRP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__SKIP , __pyx_k__SKIP , sizeof ( __pyx_k__SKIP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__SM , __pyx_k__SM , sizeof ( __pyx_k__SM ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__SMP , __pyx_k__SMP , sizeof ( __pyx_k__SMP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__SNP , __pyx_k__SNP , sizeof ( __pyx_k__SNP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__SPS , __pyx_k__SPS , sizeof ( __pyx_k__SPS ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__SRP , __pyx_k__SRP , sizeof ( __pyx_k__SRP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__SSCOPMCE , __pyx_k__SSCOPMCE , sizeof ( __pyx_k__SSCOPMCE ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__ST , __pyx_k__ST , sizeof ( __pyx_k__ST ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__STP , __pyx_k__STP , sizeof ( __pyx_k__STP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__SWIPE , __pyx_k__SWIPE , sizeof ( __pyx_k__SWIPE ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__Shim6 , __pyx_k__Shim6 , sizeof ( __pyx_k__Shim6 ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__TCF , __pyx_k__TCF , sizeof ( __pyx_k__TCF ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__TCP , __pyx_k__TCP , sizeof ( __pyx_k__TCP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__TLSP , __pyx_k__TLSP , sizeof ( __pyx_k__TLSP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__TTP , __pyx_k__TTP , sizeof ( __pyx_k__TTP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__UDP , __pyx_k__UDP , sizeof ( __pyx_k__UDP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__UDPLite , __pyx_k__UDPLite , sizeof ( __pyx_k__UDPLite ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__UTI , __pyx_k__UTI , sizeof ( __pyx_k__UTI ) , 0 , 0 , 1 , 1 } ,
2011-10-14 23:14:25 +02:00
{ & __pyx_n_s__VERSION , __pyx_k__VERSION , sizeof ( __pyx_k__VERSION ) , 0 , 0 , 1 , 1 } ,
2011-05-13 17:42:05 +02:00
{ & __pyx_n_s__VINES , __pyx_k__VINES , sizeof ( __pyx_k__VINES ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__VISA , __pyx_k__VISA , sizeof ( __pyx_k__VISA ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__VMTP , __pyx_k__VMTP , sizeof ( __pyx_k__VMTP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__VRRP , __pyx_k__VRRP , sizeof ( __pyx_k__VRRP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__WSN , __pyx_k__WSN , sizeof ( __pyx_k__WSN ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__XNET , __pyx_k__XNET , sizeof ( __pyx_k__XNET ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__XTP , __pyx_k__XTP , sizeof ( __pyx_k__XTP ) , 0 , 0 , 1 , 1 } ,
2011-05-12 22:45:14 +02:00
{ & __pyx_n_s____main__ , __pyx_k____main__ , sizeof ( __pyx_k____main__ ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s____test__ , __pyx_k____test__ , sizeof ( __pyx_k____test__ ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__accept , __pyx_k__accept , sizeof ( __pyx_k__accept ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__af , __pyx_k__af , sizeof ( __pyx_k__af ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__drop , __pyx_k__drop , sizeof ( __pyx_k__drop ) , 0 , 0 , 1 , 1 } ,
2011-05-13 17:42:05 +02:00
{ & __pyx_n_s__get , __pyx_k__get , sizeof ( __pyx_k__get ) , 0 , 0 , 1 , 1 } ,
2011-05-12 22:45:14 +02:00
{ & __pyx_n_s__get_payload_len , __pyx_k__get_payload_len , sizeof ( __pyx_k__get_payload_len ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__get_timestamp , __pyx_k__get_timestamp , sizeof ( __pyx_k__get_timestamp ) , 0 , 0 , 1 , 1 } ,
2011-05-13 17:42:05 +02:00
{ & __pyx_n_s__manet , __pyx_k__manet , sizeof ( __pyx_k__manet ) , 0 , 0 , 1 , 1 } ,
2011-05-13 18:48:29 +02:00
{ & __pyx_n_s__max_len , __pyx_k__max_len , sizeof ( __pyx_k__max_len ) , 0 , 0 , 1 , 1 } ,
2011-05-12 22:45:14 +02:00
{ & __pyx_n_s__mode , __pyx_k__mode , sizeof ( __pyx_k__mode ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__queue_num , __pyx_k__queue_num , sizeof ( __pyx_k__queue_num ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__range , __pyx_k__range , sizeof ( __pyx_k__range ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__set_mark , __pyx_k__set_mark , sizeof ( __pyx_k__set_mark ) , 0 , 0 , 1 , 1 } ,
2012-12-24 04:17:54 +01:00
{ & __pyx_n_s__set_payload , __pyx_k__set_payload , sizeof ( __pyx_k__set_payload ) , 0 , 0 , 1 , 1 } ,
2011-10-14 23:14:25 +02:00
{ & __pyx_n_s__user_callback , __pyx_k__user_callback , sizeof ( __pyx_k__user_callback ) , 0 , 0 , 1 , 1 } ,
2011-05-12 22:45:14 +02:00
{ 0 , 0 , 0 , 0 , 0 , 0 , 0 }
} ;
static int __Pyx_InitCachedBuiltins ( void ) {
2012-12-24 04:17:54 +01:00
__pyx_builtin_OSError = __Pyx_GetName ( __pyx_b , __pyx_n_s__OSError ) ; if ( ! __pyx_builtin_OSError ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 62 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_builtin_RuntimeWarning = __Pyx_GetName ( __pyx_b , __pyx_n_s__RuntimeWarning ) ; if ( ! __pyx_builtin_RuntimeWarning ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 69 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
return 0 ;
__pyx_L1_error : ;
return - 1 ;
}
static int __Pyx_InitCachedConstants ( void ) {
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
__Pyx_RefNannySetupContext ( " __Pyx_InitCachedConstants " ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":62
2011-05-12 22:45:14 +02:00
* self . payload_len = nfq_get_payload ( self . _nfa , & self . payload )
* if self . payload_len < 0 :
* raise OSError ( " Failed to get payload of packet. " ) # < < < < < < < < < < < < < <
*
* nfq_get_timestamp ( self . _nfa , & self . timestamp )
*/
2012-12-24 04:17:54 +01:00
__pyx_k_tuple_4 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_k_tuple_4 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 62 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_k_tuple_4 ) ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_kp_s_3 ) ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_4 , 0 , ( ( PyObject * ) __pyx_kp_s_3 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_kp_s_3 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_k_tuple_4 ) ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":69
2011-05-13 17:42:05 +02:00
* " " " Call appropriate set_verdict... function on packet. " " "
* if self . _verdict_is_set :
* raise RuntimeWarning ( " Verdict already given for this packet. " ) # < < < < < < < < < < < < < <
*
2012-12-24 04:17:54 +01:00
* cdef u_int32_t modified_payload_len = 0
2011-05-13 17:42:05 +02:00
*/
2012-12-24 04:17:54 +01:00
__pyx_k_tuple_6 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_k_tuple_6 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 69 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_k_tuple_6 ) ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_kp_s_5 ) ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_6 , 0 , ( ( PyObject * ) __pyx_kp_s_5 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_kp_s_5 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_k_tuple_6 ) ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":130
2011-05-12 22:45:14 +02:00
* self . h = nfq_open ( )
* if self . h = = NULL :
* raise OSError ( " Failed to open NFQueue. " ) # < < < < < < < < < < < < < <
* nfq_unbind_pf ( self . h , self . af ) # This does NOT kick out previous
* # running queues
*/
2012-12-24 04:17:54 +01:00
__pyx_k_tuple_8 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_k_tuple_8 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 130 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_k_tuple_8 ) ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_kp_s_7 ) ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_8 , 0 , ( ( PyObject * ) __pyx_kp_s_7 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_kp_s_7 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_k_tuple_8 ) ) ;
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":157
2011-05-12 22:45:14 +02:00
* range = MaxCopySize
* if nfq_set_mode ( self . qh , mode , range ) < 0 :
* raise OSError ( " Failed to set packet copy mode. " ) # < < < < < < < < < < < < < <
*
2011-05-13 18:48:29 +02:00
* nfq_set_queue_maxlen ( self . qh , max_len )
2011-05-12 22:45:14 +02:00
*/
2012-12-24 04:17:54 +01:00
__pyx_k_tuple_14 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_k_tuple_14 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 157 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_k_tuple_14 ) ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_kp_s_13 ) ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_14 , 0 , ( ( PyObject * ) __pyx_kp_s_13 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_kp_s_13 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_k_tuple_14 ) ) ;
2011-10-14 23:14:25 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":9
2011-10-14 23:14:25 +02:00
* " " "
2012-12-24 04:17:54 +01:00
* from libc . string cimport strlen
2011-10-14 23:14:25 +02:00
* VERSION = ( 0 , 3 , 0 ) # < < < < < < < < < < < < < <
*
* # Constants for module users
*/
2012-12-24 04:17:54 +01:00
__pyx_k_tuple_16 = PyTuple_New ( 3 ) ; if ( unlikely ( ! __pyx_k_tuple_16 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 9 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-10-14 23:14:25 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_k_tuple_16 ) ) ;
__Pyx_INCREF ( __pyx_int_0 ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_16 , 0 , __pyx_int_0 ) ;
__Pyx_GIVEREF ( __pyx_int_0 ) ;
__Pyx_INCREF ( __pyx_int_3 ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_16 , 1 , __pyx_int_3 ) ;
__Pyx_GIVEREF ( __pyx_int_3 ) ;
__Pyx_INCREF ( __pyx_int_0 ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_16 , 2 , __pyx_int_0 ) ;
__Pyx_GIVEREF ( __pyx_int_0 ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_k_tuple_16 ) ) ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return 0 ;
__pyx_L1_error : ;
__Pyx_RefNannyFinishContext ( ) ;
return - 1 ;
}
static int __Pyx_InitGlobals ( void ) {
if ( __Pyx_InitStrings ( __pyx_string_tab ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
2011-05-13 17:42:05 +02:00
__pyx_int_0 = PyInt_FromLong ( 0 ) ; if ( unlikely ( ! __pyx_int_0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
2011-05-12 22:45:14 +02:00
__pyx_int_1 = PyInt_FromLong ( 1 ) ; if ( unlikely ( ! __pyx_int_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_2 = PyInt_FromLong ( 2 ) ; if ( unlikely ( ! __pyx_int_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_3 = PyInt_FromLong ( 3 ) ; if ( unlikely ( ! __pyx_int_3 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
2011-05-13 17:42:05 +02:00
__pyx_int_4 = PyInt_FromLong ( 4 ) ; if ( unlikely ( ! __pyx_int_4 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_5 = PyInt_FromLong ( 5 ) ; if ( unlikely ( ! __pyx_int_5 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_6 = PyInt_FromLong ( 6 ) ; if ( unlikely ( ! __pyx_int_6 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_7 = PyInt_FromLong ( 7 ) ; if ( unlikely ( ! __pyx_int_7 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_8 = PyInt_FromLong ( 8 ) ; if ( unlikely ( ! __pyx_int_8 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_9 = PyInt_FromLong ( 9 ) ; if ( unlikely ( ! __pyx_int_9 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_10 = PyInt_FromLong ( 10 ) ; if ( unlikely ( ! __pyx_int_10 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_11 = PyInt_FromLong ( 11 ) ; if ( unlikely ( ! __pyx_int_11 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_12 = PyInt_FromLong ( 12 ) ; if ( unlikely ( ! __pyx_int_12 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_13 = PyInt_FromLong ( 13 ) ; if ( unlikely ( ! __pyx_int_13 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_14 = PyInt_FromLong ( 14 ) ; if ( unlikely ( ! __pyx_int_14 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_15 = PyInt_FromLong ( 15 ) ; if ( unlikely ( ! __pyx_int_15 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_16 = PyInt_FromLong ( 16 ) ; if ( unlikely ( ! __pyx_int_16 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_17 = PyInt_FromLong ( 17 ) ; if ( unlikely ( ! __pyx_int_17 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_18 = PyInt_FromLong ( 18 ) ; if ( unlikely ( ! __pyx_int_18 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_19 = PyInt_FromLong ( 19 ) ; if ( unlikely ( ! __pyx_int_19 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_20 = PyInt_FromLong ( 20 ) ; if ( unlikely ( ! __pyx_int_20 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_21 = PyInt_FromLong ( 21 ) ; if ( unlikely ( ! __pyx_int_21 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_22 = PyInt_FromLong ( 22 ) ; if ( unlikely ( ! __pyx_int_22 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_23 = PyInt_FromLong ( 23 ) ; if ( unlikely ( ! __pyx_int_23 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_24 = PyInt_FromLong ( 24 ) ; if ( unlikely ( ! __pyx_int_24 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_25 = PyInt_FromLong ( 25 ) ; if ( unlikely ( ! __pyx_int_25 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_26 = PyInt_FromLong ( 26 ) ; if ( unlikely ( ! __pyx_int_26 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_27 = PyInt_FromLong ( 27 ) ; if ( unlikely ( ! __pyx_int_27 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_28 = PyInt_FromLong ( 28 ) ; if ( unlikely ( ! __pyx_int_28 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_29 = PyInt_FromLong ( 29 ) ; if ( unlikely ( ! __pyx_int_29 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_30 = PyInt_FromLong ( 30 ) ; if ( unlikely ( ! __pyx_int_30 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_31 = PyInt_FromLong ( 31 ) ; if ( unlikely ( ! __pyx_int_31 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_32 = PyInt_FromLong ( 32 ) ; if ( unlikely ( ! __pyx_int_32 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_33 = PyInt_FromLong ( 33 ) ; if ( unlikely ( ! __pyx_int_33 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_34 = PyInt_FromLong ( 34 ) ; if ( unlikely ( ! __pyx_int_34 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_35 = PyInt_FromLong ( 35 ) ; if ( unlikely ( ! __pyx_int_35 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_36 = PyInt_FromLong ( 36 ) ; if ( unlikely ( ! __pyx_int_36 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_37 = PyInt_FromLong ( 37 ) ; if ( unlikely ( ! __pyx_int_37 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_38 = PyInt_FromLong ( 38 ) ; if ( unlikely ( ! __pyx_int_38 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_39 = PyInt_FromLong ( 39 ) ; if ( unlikely ( ! __pyx_int_39 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_40 = PyInt_FromLong ( 40 ) ; if ( unlikely ( ! __pyx_int_40 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_41 = PyInt_FromLong ( 41 ) ; if ( unlikely ( ! __pyx_int_41 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_42 = PyInt_FromLong ( 42 ) ; if ( unlikely ( ! __pyx_int_42 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_43 = PyInt_FromLong ( 43 ) ; if ( unlikely ( ! __pyx_int_43 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_44 = PyInt_FromLong ( 44 ) ; if ( unlikely ( ! __pyx_int_44 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_45 = PyInt_FromLong ( 45 ) ; if ( unlikely ( ! __pyx_int_45 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_46 = PyInt_FromLong ( 46 ) ; if ( unlikely ( ! __pyx_int_46 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_47 = PyInt_FromLong ( 47 ) ; if ( unlikely ( ! __pyx_int_47 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_48 = PyInt_FromLong ( 48 ) ; if ( unlikely ( ! __pyx_int_48 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_49 = PyInt_FromLong ( 49 ) ; if ( unlikely ( ! __pyx_int_49 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_50 = PyInt_FromLong ( 50 ) ; if ( unlikely ( ! __pyx_int_50 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_51 = PyInt_FromLong ( 51 ) ; if ( unlikely ( ! __pyx_int_51 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_52 = PyInt_FromLong ( 52 ) ; if ( unlikely ( ! __pyx_int_52 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_53 = PyInt_FromLong ( 53 ) ; if ( unlikely ( ! __pyx_int_53 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_54 = PyInt_FromLong ( 54 ) ; if ( unlikely ( ! __pyx_int_54 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_55 = PyInt_FromLong ( 55 ) ; if ( unlikely ( ! __pyx_int_55 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_56 = PyInt_FromLong ( 56 ) ; if ( unlikely ( ! __pyx_int_56 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_57 = PyInt_FromLong ( 57 ) ; if ( unlikely ( ! __pyx_int_57 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_58 = PyInt_FromLong ( 58 ) ; if ( unlikely ( ! __pyx_int_58 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_59 = PyInt_FromLong ( 59 ) ; if ( unlikely ( ! __pyx_int_59 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_60 = PyInt_FromLong ( 60 ) ; if ( unlikely ( ! __pyx_int_60 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_61 = PyInt_FromLong ( 61 ) ; if ( unlikely ( ! __pyx_int_61 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_62 = PyInt_FromLong ( 62 ) ; if ( unlikely ( ! __pyx_int_62 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_63 = PyInt_FromLong ( 63 ) ; if ( unlikely ( ! __pyx_int_63 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_64 = PyInt_FromLong ( 64 ) ; if ( unlikely ( ! __pyx_int_64 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_65 = PyInt_FromLong ( 65 ) ; if ( unlikely ( ! __pyx_int_65 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_66 = PyInt_FromLong ( 66 ) ; if ( unlikely ( ! __pyx_int_66 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_67 = PyInt_FromLong ( 67 ) ; if ( unlikely ( ! __pyx_int_67 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_68 = PyInt_FromLong ( 68 ) ; if ( unlikely ( ! __pyx_int_68 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_69 = PyInt_FromLong ( 69 ) ; if ( unlikely ( ! __pyx_int_69 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_70 = PyInt_FromLong ( 70 ) ; if ( unlikely ( ! __pyx_int_70 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_71 = PyInt_FromLong ( 71 ) ; if ( unlikely ( ! __pyx_int_71 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_72 = PyInt_FromLong ( 72 ) ; if ( unlikely ( ! __pyx_int_72 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_73 = PyInt_FromLong ( 73 ) ; if ( unlikely ( ! __pyx_int_73 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_74 = PyInt_FromLong ( 74 ) ; if ( unlikely ( ! __pyx_int_74 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_75 = PyInt_FromLong ( 75 ) ; if ( unlikely ( ! __pyx_int_75 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_76 = PyInt_FromLong ( 76 ) ; if ( unlikely ( ! __pyx_int_76 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_77 = PyInt_FromLong ( 77 ) ; if ( unlikely ( ! __pyx_int_77 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_78 = PyInt_FromLong ( 78 ) ; if ( unlikely ( ! __pyx_int_78 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_79 = PyInt_FromLong ( 79 ) ; if ( unlikely ( ! __pyx_int_79 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_80 = PyInt_FromLong ( 80 ) ; if ( unlikely ( ! __pyx_int_80 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_81 = PyInt_FromLong ( 81 ) ; if ( unlikely ( ! __pyx_int_81 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_82 = PyInt_FromLong ( 82 ) ; if ( unlikely ( ! __pyx_int_82 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_83 = PyInt_FromLong ( 83 ) ; if ( unlikely ( ! __pyx_int_83 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_84 = PyInt_FromLong ( 84 ) ; if ( unlikely ( ! __pyx_int_84 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_85 = PyInt_FromLong ( 85 ) ; if ( unlikely ( ! __pyx_int_85 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_86 = PyInt_FromLong ( 86 ) ; if ( unlikely ( ! __pyx_int_86 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_87 = PyInt_FromLong ( 87 ) ; if ( unlikely ( ! __pyx_int_87 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_88 = PyInt_FromLong ( 88 ) ; if ( unlikely ( ! __pyx_int_88 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_89 = PyInt_FromLong ( 89 ) ; if ( unlikely ( ! __pyx_int_89 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_90 = PyInt_FromLong ( 90 ) ; if ( unlikely ( ! __pyx_int_90 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_91 = PyInt_FromLong ( 91 ) ; if ( unlikely ( ! __pyx_int_91 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_92 = PyInt_FromLong ( 92 ) ; if ( unlikely ( ! __pyx_int_92 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_93 = PyInt_FromLong ( 93 ) ; if ( unlikely ( ! __pyx_int_93 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_94 = PyInt_FromLong ( 94 ) ; if ( unlikely ( ! __pyx_int_94 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_95 = PyInt_FromLong ( 95 ) ; if ( unlikely ( ! __pyx_int_95 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_96 = PyInt_FromLong ( 96 ) ; if ( unlikely ( ! __pyx_int_96 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_97 = PyInt_FromLong ( 97 ) ; if ( unlikely ( ! __pyx_int_97 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_98 = PyInt_FromLong ( 98 ) ; if ( unlikely ( ! __pyx_int_98 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_99 = PyInt_FromLong ( 99 ) ; if ( unlikely ( ! __pyx_int_99 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_100 = PyInt_FromLong ( 100 ) ; if ( unlikely ( ! __pyx_int_100 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_101 = PyInt_FromLong ( 101 ) ; if ( unlikely ( ! __pyx_int_101 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_102 = PyInt_FromLong ( 102 ) ; if ( unlikely ( ! __pyx_int_102 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_103 = PyInt_FromLong ( 103 ) ; if ( unlikely ( ! __pyx_int_103 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_104 = PyInt_FromLong ( 104 ) ; if ( unlikely ( ! __pyx_int_104 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_105 = PyInt_FromLong ( 105 ) ; if ( unlikely ( ! __pyx_int_105 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_106 = PyInt_FromLong ( 106 ) ; if ( unlikely ( ! __pyx_int_106 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_107 = PyInt_FromLong ( 107 ) ; if ( unlikely ( ! __pyx_int_107 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_108 = PyInt_FromLong ( 108 ) ; if ( unlikely ( ! __pyx_int_108 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_109 = PyInt_FromLong ( 109 ) ; if ( unlikely ( ! __pyx_int_109 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_110 = PyInt_FromLong ( 110 ) ; if ( unlikely ( ! __pyx_int_110 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_111 = PyInt_FromLong ( 111 ) ; if ( unlikely ( ! __pyx_int_111 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_112 = PyInt_FromLong ( 112 ) ; if ( unlikely ( ! __pyx_int_112 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_113 = PyInt_FromLong ( 113 ) ; if ( unlikely ( ! __pyx_int_113 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_114 = PyInt_FromLong ( 114 ) ; if ( unlikely ( ! __pyx_int_114 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_115 = PyInt_FromLong ( 115 ) ; if ( unlikely ( ! __pyx_int_115 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_116 = PyInt_FromLong ( 116 ) ; if ( unlikely ( ! __pyx_int_116 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_117 = PyInt_FromLong ( 117 ) ; if ( unlikely ( ! __pyx_int_117 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_118 = PyInt_FromLong ( 118 ) ; if ( unlikely ( ! __pyx_int_118 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_119 = PyInt_FromLong ( 119 ) ; if ( unlikely ( ! __pyx_int_119 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_120 = PyInt_FromLong ( 120 ) ; if ( unlikely ( ! __pyx_int_120 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_121 = PyInt_FromLong ( 121 ) ; if ( unlikely ( ! __pyx_int_121 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_122 = PyInt_FromLong ( 122 ) ; if ( unlikely ( ! __pyx_int_122 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_123 = PyInt_FromLong ( 123 ) ; if ( unlikely ( ! __pyx_int_123 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_124 = PyInt_FromLong ( 124 ) ; if ( unlikely ( ! __pyx_int_124 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_125 = PyInt_FromLong ( 125 ) ; if ( unlikely ( ! __pyx_int_125 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_126 = PyInt_FromLong ( 126 ) ; if ( unlikely ( ! __pyx_int_126 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_127 = PyInt_FromLong ( 127 ) ; if ( unlikely ( ! __pyx_int_127 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_128 = PyInt_FromLong ( 128 ) ; if ( unlikely ( ! __pyx_int_128 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_129 = PyInt_FromLong ( 129 ) ; if ( unlikely ( ! __pyx_int_129 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_130 = PyInt_FromLong ( 130 ) ; if ( unlikely ( ! __pyx_int_130 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_131 = PyInt_FromLong ( 131 ) ; if ( unlikely ( ! __pyx_int_131 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_132 = PyInt_FromLong ( 132 ) ; if ( unlikely ( ! __pyx_int_132 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_133 = PyInt_FromLong ( 133 ) ; if ( unlikely ( ! __pyx_int_133 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_134 = PyInt_FromLong ( 134 ) ; if ( unlikely ( ! __pyx_int_134 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_135 = PyInt_FromLong ( 135 ) ; if ( unlikely ( ! __pyx_int_135 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_136 = PyInt_FromLong ( 136 ) ; if ( unlikely ( ! __pyx_int_136 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_137 = PyInt_FromLong ( 137 ) ; if ( unlikely ( ! __pyx_int_137 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_138 = PyInt_FromLong ( 138 ) ; if ( unlikely ( ! __pyx_int_138 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_139 = PyInt_FromLong ( 139 ) ; if ( unlikely ( ! __pyx_int_139 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_140 = PyInt_FromLong ( 140 ) ; if ( unlikely ( ! __pyx_int_140 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_255 = PyInt_FromLong ( 255 ) ; if ( unlikely ( ! __pyx_int_255 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
__pyx_int_1024 = PyInt_FromLong ( 1024 ) ; if ( unlikely ( ! __pyx_int_1024 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
2011-05-12 22:45:14 +02:00
return 0 ;
__pyx_L1_error : ;
return - 1 ;
}
# if PY_MAJOR_VERSION < 3
PyMODINIT_FUNC initnetfilterqueue ( void ) ; /*proto*/
PyMODINIT_FUNC initnetfilterqueue ( void )
# else
PyMODINIT_FUNC PyInit_netfilterqueue ( void ) ; /*proto*/
PyMODINIT_FUNC PyInit_netfilterqueue ( void )
# endif
{
PyObject * __pyx_t_1 = NULL ;
2011-05-13 17:42:05 +02:00
u_int32_t __pyx_t_2 ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
# if CYTHON_REFNANNY
__Pyx_RefNanny = __Pyx_RefNannyImportAPI ( " refnanny " ) ;
if ( ! __Pyx_RefNanny ) {
PyErr_Clear ( ) ;
__Pyx_RefNanny = __Pyx_RefNannyImportAPI ( " Cython.Runtime.refnanny " ) ;
if ( ! __Pyx_RefNanny )
Py_FatalError ( " failed to import 'refnanny' module " ) ;
}
# endif
2011-10-14 23:14:25 +02:00
__Pyx_RefNannySetupContext ( " PyMODINIT_FUNC PyInit_netfilterqueue(void) " ) ;
if ( __Pyx_check_binary_version ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
__pyx_empty_tuple = PyTuple_New ( 0 ) ; if ( unlikely ( ! __pyx_empty_tuple ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_empty_bytes = PyBytes_FromStringAndSize ( " " , 0 ) ; if ( unlikely ( ! __pyx_empty_bytes ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
# ifdef __pyx_binding_PyCFunctionType_USED
if ( __pyx_binding_PyCFunctionType_init ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
# endif
/*--- Library function declarations ---*/
/*--- Threads initialization code ---*/
# if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
# ifdef WITH_THREAD /* Python build with threading support? */
PyEval_InitThreads ( ) ;
# endif
# endif
/*--- Module creation code ---*/
# if PY_MAJOR_VERSION < 3
2011-10-14 23:14:25 +02:00
__pyx_m = Py_InitModule4 ( __Pyx_NAMESTR ( " netfilterqueue " ) , __pyx_methods , __Pyx_DOCSTR ( __pyx_k_15 ) , 0 , PYTHON_API_VERSION ) ;
2011-05-12 22:45:14 +02:00
# else
__pyx_m = PyModule_Create ( & __pyx_moduledef ) ;
# endif
if ( ! __pyx_m ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
# if PY_MAJOR_VERSION < 3
Py_INCREF ( __pyx_m ) ;
# endif
__pyx_b = PyImport_AddModule ( __Pyx_NAMESTR ( __Pyx_BUILTIN_MODULE_NAME ) ) ;
if ( ! __pyx_b ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
if ( __Pyx_SetAttrString ( __pyx_m , " __builtins__ " , __pyx_b ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
/*--- Initialize various global constants etc. ---*/
if ( unlikely ( __Pyx_InitGlobals ( ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( __pyx_module_is_main_netfilterqueue ) {
if ( __Pyx_SetAttrString ( __pyx_m , " __name__ " , __pyx_n_s____main__ ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
}
/*--- Builtin init code ---*/
if ( unlikely ( __Pyx_InitCachedBuiltins ( ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
/*--- Constants init code ---*/
if ( unlikely ( __Pyx_InitCachedConstants ( ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
/*--- Global init code ---*/
2011-10-14 23:14:25 +02:00
/*--- Variable export code ---*/
2011-05-12 22:45:14 +02:00
/*--- Function export code ---*/
/*--- Type init code ---*/
2011-05-13 17:42:05 +02:00
__pyx_vtabptr_14netfilterqueue_Packet = & __pyx_vtable_14netfilterqueue_Packet ;
__pyx_vtable_14netfilterqueue_Packet . set_nfq_data = ( PyObject * ( * ) ( struct __pyx_obj_14netfilterqueue_Packet * , struct nfq_q_handle * , struct nfq_data * ) ) __pyx_f_14netfilterqueue_6Packet_set_nfq_data ;
__pyx_vtable_14netfilterqueue_Packet . verdict = ( void ( * ) ( struct __pyx_obj_14netfilterqueue_Packet * , u_int8_t ) ) __pyx_f_14netfilterqueue_6Packet_verdict ;
__pyx_vtable_14netfilterqueue_Packet . get_payload_len = ( Py_ssize_t ( * ) ( struct __pyx_obj_14netfilterqueue_Packet * , int __pyx_skip_dispatch ) ) __pyx_f_14netfilterqueue_6Packet_get_payload_len ;
__pyx_vtable_14netfilterqueue_Packet . get_timestamp = ( double ( * ) ( struct __pyx_obj_14netfilterqueue_Packet * , int __pyx_skip_dispatch ) ) __pyx_f_14netfilterqueue_6Packet_get_timestamp ;
2012-12-24 04:17:54 +01:00
__pyx_vtable_14netfilterqueue_Packet . set_payload = ( PyObject * ( * ) ( struct __pyx_obj_14netfilterqueue_Packet * , PyObject * , int __pyx_skip_dispatch ) ) __pyx_f_14netfilterqueue_6Packet_set_payload ;
2011-05-13 17:42:05 +02:00
__pyx_vtable_14netfilterqueue_Packet . set_mark = ( PyObject * ( * ) ( struct __pyx_obj_14netfilterqueue_Packet * , u_int32_t , int __pyx_skip_dispatch ) ) __pyx_f_14netfilterqueue_6Packet_set_mark ;
__pyx_vtable_14netfilterqueue_Packet . accept = ( PyObject * ( * ) ( struct __pyx_obj_14netfilterqueue_Packet * , int __pyx_skip_dispatch ) ) __pyx_f_14netfilterqueue_6Packet_accept ;
__pyx_vtable_14netfilterqueue_Packet . drop = ( PyObject * ( * ) ( struct __pyx_obj_14netfilterqueue_Packet * , int __pyx_skip_dispatch ) ) __pyx_f_14netfilterqueue_6Packet_drop ;
2012-12-24 04:17:54 +01:00
if ( PyType_Ready ( & __pyx_type_14netfilterqueue_Packet ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 35 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( __Pyx_SetVtable ( __pyx_type_14netfilterqueue_Packet . tp_dict , __pyx_vtabptr_14netfilterqueue_Packet ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 35 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( __Pyx_SetAttrString ( __pyx_m , " Packet " , ( PyObject * ) & __pyx_type_14netfilterqueue_Packet ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 35 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__pyx_ptype_14netfilterqueue_Packet = & __pyx_type_14netfilterqueue_Packet ;
2012-12-24 04:17:54 +01:00
if ( PyType_Ready ( & __pyx_type_14netfilterqueue_NetfilterQueue ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 123 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( __Pyx_SetAttrString ( __pyx_m , " NetfilterQueue " , ( PyObject * ) & __pyx_type_14netfilterqueue_NetfilterQueue ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 123 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-10-14 23:14:25 +02:00
__pyx_ptype_14netfilterqueue_NetfilterQueue = & __pyx_type_14netfilterqueue_NetfilterQueue ;
2011-05-12 22:45:14 +02:00
/*--- Type import code ---*/
2011-10-14 23:14:25 +02:00
/*--- Variable import code ---*/
2011-05-12 22:45:14 +02:00
/*--- Function import code ---*/
/*--- Execution code ---*/
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":9
2011-10-14 23:14:25 +02:00
* " " "
2012-12-24 04:17:54 +01:00
* from libc . string cimport strlen
2011-10-14 23:14:25 +02:00
* VERSION = ( 0 , 3 , 0 ) # < < < < < < < < < < < < < <
*
* # Constants for module users
*/
2012-12-24 04:17:54 +01:00
if ( PyObject_SetAttr ( __pyx_m , __pyx_n_s__VERSION , ( ( PyObject * ) __pyx_k_tuple_16 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 9 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-10-14 23:14:25 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":12
2011-10-14 23:14:25 +02:00
*
2011-05-12 22:45:14 +02:00
* # Constants for module users
* COPY_NONE = 1 # < < < < < < < < < < < < < <
* COPY_META = 2
* COPY_PACKET = 3
*/
2012-12-24 04:17:54 +01:00
if ( PyObject_SetAttr ( __pyx_m , __pyx_n_s__COPY_NONE , __pyx_int_1 ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 12 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":13
2011-05-12 22:45:14 +02:00
* # Constants for module users
* COPY_NONE = 1
* COPY_META = 2 # < < < < < < < < < < < < < <
* COPY_PACKET = 3
*
*/
2012-12-24 04:17:54 +01:00
if ( PyObject_SetAttr ( __pyx_m , __pyx_n_s__COPY_META , __pyx_int_2 ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 13 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":14
2011-05-12 22:45:14 +02:00
* COPY_NONE = 1
* COPY_META = 2
* COPY_PACKET = 3 # < < < < < < < < < < < < < <
*
2011-05-13 17:42:05 +02:00
* DEFAULT_MAX_QUEUELEN = 1024
*/
2012-12-24 04:17:54 +01:00
if ( PyObject_SetAttr ( __pyx_m , __pyx_n_s__COPY_PACKET , __pyx_int_3 ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 14 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":16
2011-05-13 17:42:05 +02:00
* COPY_PACKET = 3
*
* DEFAULT_MAX_QUEUELEN = 1024 # < < < < < < < < < < < < < <
*
2011-05-12 22:45:14 +02:00
* # Packet copying defaults
*/
2012-12-24 04:17:54 +01:00
if ( PyObject_SetAttr ( __pyx_m , __pyx_n_s_17 , __pyx_int_1024 ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 16 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":144
2011-05-12 22:45:14 +02:00
*
2012-12-24 04:17:54 +01:00
* def bind ( self , int queue_num , object user_callback ,
* u_int32_t max_len = DEFAULT_MAX_QUEUELEN , # < < < < < < < < < < < < < <
* u_int8_t mode = NFQNL_COPY_PACKET ,
* u_int32_t range = MaxPacketSize ) :
2011-05-12 22:45:14 +02:00
*/
2012-12-24 04:17:54 +01:00
__pyx_t_1 = __Pyx_GetName ( __pyx_m , __pyx_n_s_17 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 144 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2012-12-24 04:17:54 +01:00
__pyx_t_2 = __Pyx_PyInt_from_py_u_int32_t ( __pyx_t_1 ) ; if ( unlikely ( ( __pyx_t_2 = = ( u_int32_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 144 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
__pyx_k_10 = __pyx_t_2 ;
2011-10-14 23:14:25 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":145
* def bind ( self , int queue_num , object user_callback ,
* u_int32_t max_len = DEFAULT_MAX_QUEUELEN ,
* u_int8_t mode = NFQNL_COPY_PACKET , # < < < < < < < < < < < < < <
* u_int32_t range = MaxPacketSize ) :
2011-10-14 23:14:25 +02:00
* " " " Create and bind to a new queue. " " "
*/
2011-05-13 17:42:05 +02:00
__pyx_k_11 = NFQNL_COPY_PACKET ;
2011-05-12 22:45:14 +02:00
2012-12-24 04:17:54 +01:00
/* "netfilterqueue.pyx":179
2011-10-14 23:14:25 +02:00
* rv = recv ( fd , buf , sizeof ( buf ) , 0 )
2011-05-12 22:45:14 +02:00
*
2011-05-13 17:42:05 +02:00
* PROTOCOLS = { # < < < < < < < < < < < < < <
* 0 : " HOPOPT " ,
* 1 : " ICMP " ,
*/
2012-12-24 04:17:54 +01:00
__pyx_t_1 = PyDict_New ( ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_1 ) ) ;
2012-12-24 04:17:54 +01:00
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_0 , ( ( PyObject * ) __pyx_n_s__HOPOPT ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_1 , ( ( PyObject * ) __pyx_n_s__ICMP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_2 , ( ( PyObject * ) __pyx_n_s__IGMP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_3 , ( ( PyObject * ) __pyx_n_s__GGP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_4 , ( ( PyObject * ) __pyx_n_s__IP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_5 , ( ( PyObject * ) __pyx_n_s__ST ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_6 , ( ( PyObject * ) __pyx_n_s__TCP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_7 , ( ( PyObject * ) __pyx_n_s__CBT ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_8 , ( ( PyObject * ) __pyx_n_s__EGP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_9 , ( ( PyObject * ) __pyx_n_s__IGP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_10 , ( ( PyObject * ) __pyx_kp_s_18 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_11 , ( ( PyObject * ) __pyx_kp_s_19 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_12 , ( ( PyObject * ) __pyx_n_s__PUP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_13 , ( ( PyObject * ) __pyx_n_s__ARGUS ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_14 , ( ( PyObject * ) __pyx_n_s__EMCON ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_15 , ( ( PyObject * ) __pyx_n_s__XNET ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_16 , ( ( PyObject * ) __pyx_n_s__CHAOS ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_17 , ( ( PyObject * ) __pyx_n_s__UDP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_18 , ( ( PyObject * ) __pyx_n_s__MUX ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_19 , ( ( PyObject * ) __pyx_kp_s_20 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_20 , ( ( PyObject * ) __pyx_n_s__HMP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_21 , ( ( PyObject * ) __pyx_n_s__PRM ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_22 , ( ( PyObject * ) __pyx_kp_s_21 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_23 , ( ( PyObject * ) __pyx_kp_s_22 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_24 , ( ( PyObject * ) __pyx_kp_s_23 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_25 , ( ( PyObject * ) __pyx_kp_s_24 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_26 , ( ( PyObject * ) __pyx_kp_s_25 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_27 , ( ( PyObject * ) __pyx_n_s__RDP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_28 , ( ( PyObject * ) __pyx_n_s__IRTP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_29 , ( ( PyObject * ) __pyx_kp_s_26 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_30 , ( ( PyObject * ) __pyx_n_s__NETBLT ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_31 , ( ( PyObject * ) __pyx_kp_s_27 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_32 , ( ( PyObject * ) __pyx_kp_s_28 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_33 , ( ( PyObject * ) __pyx_n_s__DCCP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_34 , ( ( PyObject * ) __pyx_kp_s__3PC ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_35 , ( ( PyObject * ) __pyx_n_s__IDPR ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_36 , ( ( PyObject * ) __pyx_n_s__XTP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_37 , ( ( PyObject * ) __pyx_n_s__DDP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_38 , ( ( PyObject * ) __pyx_kp_s_29 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_39 , ( ( PyObject * ) __pyx_kp_s_30 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_40 , ( ( PyObject * ) __pyx_n_s__IL ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_41 , ( ( PyObject * ) __pyx_n_s__IPv6 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_42 , ( ( PyObject * ) __pyx_n_s__SDRP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_43 , ( ( PyObject * ) __pyx_kp_s_31 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_44 , ( ( PyObject * ) __pyx_kp_s_32 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_45 , ( ( PyObject * ) __pyx_n_s__IDRP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_46 , ( ( PyObject * ) __pyx_n_s__RSVP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_47 , ( ( PyObject * ) __pyx_n_s__GRE ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_48 , ( ( PyObject * ) __pyx_n_s__DSR ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_49 , ( ( PyObject * ) __pyx_n_s__BNA ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_50 , ( ( PyObject * ) __pyx_n_s__ESP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_51 , ( ( PyObject * ) __pyx_n_s__AH ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_52 , ( ( PyObject * ) __pyx_kp_s_33 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_53 , ( ( PyObject * ) __pyx_n_s__SWIPE ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_54 , ( ( PyObject * ) __pyx_n_s__NARP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_55 , ( ( PyObject * ) __pyx_n_s__MOBILE ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_56 , ( ( PyObject * ) __pyx_n_s__TLSP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_57 , ( ( PyObject * ) __pyx_n_s__SKIP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_58 , ( ( PyObject * ) __pyx_kp_s_34 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_59 , ( ( PyObject * ) __pyx_kp_s_35 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_60 , ( ( PyObject * ) __pyx_kp_s_36 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_61 , ( ( PyObject * ) __pyx_kp_s_37 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_62 , ( ( PyObject * ) __pyx_n_s__CFTP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_63 , ( ( PyObject * ) __pyx_kp_s_38 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_64 , ( ( PyObject * ) __pyx_kp_s_39 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_65 , ( ( PyObject * ) __pyx_n_s__KRYPTOLAN ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_66 , ( ( PyObject * ) __pyx_n_s__RVD ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_67 , ( ( PyObject * ) __pyx_n_s__IPPC ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_68 , ( ( PyObject * ) __pyx_kp_s_40 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_69 , ( ( PyObject * ) __pyx_kp_s_41 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_70 , ( ( PyObject * ) __pyx_n_s__VISA ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_71 , ( ( PyObject * ) __pyx_n_s__IPCV ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_72 , ( ( PyObject * ) __pyx_n_s__CPNX ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_73 , ( ( PyObject * ) __pyx_n_s__CPHB ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_74 , ( ( PyObject * ) __pyx_n_s__WSN ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_75 , ( ( PyObject * ) __pyx_n_s__PVP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_76 , ( ( PyObject * ) __pyx_kp_s_42 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_77 , ( ( PyObject * ) __pyx_kp_s_43 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_78 , ( ( PyObject * ) __pyx_kp_s_44 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_79 , ( ( PyObject * ) __pyx_kp_s_45 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_80 , ( ( PyObject * ) __pyx_kp_s_46 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_81 , ( ( PyObject * ) __pyx_n_s__VMTP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_82 , ( ( PyObject * ) __pyx_kp_s_47 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_83 , ( ( PyObject * ) __pyx_n_s__VINES ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_84 , ( ( PyObject * ) __pyx_n_s__TTP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_85 , ( ( PyObject * ) __pyx_kp_s_48 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_86 , ( ( PyObject * ) __pyx_n_s__DGP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_87 , ( ( PyObject * ) __pyx_n_s__TCF ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_88 , ( ( PyObject * ) __pyx_n_s__EIGRP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_89 , ( ( PyObject * ) __pyx_n_s__OSPFIGP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_90 , ( ( PyObject * ) __pyx_kp_s_49 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_91 , ( ( PyObject * ) __pyx_n_s__LARP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_92 , ( ( PyObject * ) __pyx_n_s__MTP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_93 , ( ( PyObject * ) __pyx_kp_s_50 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_94 , ( ( PyObject * ) __pyx_n_s__IPIP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_95 , ( ( PyObject * ) __pyx_n_s__MICP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_96 , ( ( PyObject * ) __pyx_kp_s_51 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_97 , ( ( PyObject * ) __pyx_n_s__ETHERIP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_98 , ( ( PyObject * ) __pyx_n_s__ENCAP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_99 , ( ( PyObject * ) __pyx_kp_s_52 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_100 , ( ( PyObject * ) __pyx_n_s__GMTP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_101 , ( ( PyObject * ) __pyx_n_s__IFMP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_102 , ( ( PyObject * ) __pyx_n_s__PNNI ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_103 , ( ( PyObject * ) __pyx_n_s__PIM ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_104 , ( ( PyObject * ) __pyx_n_s__ARIS ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_105 , ( ( PyObject * ) __pyx_n_s__SCPS ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_106 , ( ( PyObject * ) __pyx_n_s__QNX ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_107 , ( ( PyObject * ) __pyx_kp_s_53 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_108 , ( ( PyObject * ) __pyx_n_s__IPComp ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_109 , ( ( PyObject * ) __pyx_n_s__SNP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_110 , ( ( PyObject * ) __pyx_kp_s_54 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_111 , ( ( PyObject * ) __pyx_kp_s_55 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_112 , ( ( PyObject * ) __pyx_n_s__VRRP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_113 , ( ( PyObject * ) __pyx_n_s__PGM ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_114 , ( ( PyObject * ) __pyx_kp_s_56 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_115 , ( ( PyObject * ) __pyx_n_s__L2TP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_116 , ( ( PyObject * ) __pyx_n_s__DDX ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_117 , ( ( PyObject * ) __pyx_n_s__IATP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_118 , ( ( PyObject * ) __pyx_n_s__STP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_119 , ( ( PyObject * ) __pyx_n_s__SRP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_120 , ( ( PyObject * ) __pyx_n_s__UTI ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_121 , ( ( PyObject * ) __pyx_n_s__SMP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_122 , ( ( PyObject * ) __pyx_n_s__SM ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_123 , ( ( PyObject * ) __pyx_n_s__PTP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_124 , ( ( PyObject * ) __pyx_n_s__ISIS ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_125 , ( ( PyObject * ) __pyx_n_s__FIRE ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_126 , ( ( PyObject * ) __pyx_n_s__CRTP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_127 , ( ( PyObject * ) __pyx_n_s__CRUDP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_128 , ( ( PyObject * ) __pyx_n_s__SSCOPMCE ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_129 , ( ( PyObject * ) __pyx_n_s__IPLT ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_130 , ( ( PyObject * ) __pyx_n_s__SPS ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_131 , ( ( PyObject * ) __pyx_n_s__PIPE ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_132 , ( ( PyObject * ) __pyx_n_s__SCTP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_133 , ( ( PyObject * ) __pyx_n_s__FC ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_134 , ( ( PyObject * ) __pyx_kp_s_57 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_135 , ( ( PyObject * ) __pyx_n_s__Mobility ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_136 , ( ( PyObject * ) __pyx_n_s__UDPLite ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_137 , ( ( PyObject * ) __pyx_kp_s_58 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_138 , ( ( PyObject * ) __pyx_n_s__manet ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_139 , ( ( PyObject * ) __pyx_n_s__HIP ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_140 , ( ( PyObject * ) __pyx_n_s__Shim6 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_255 , ( ( PyObject * ) __pyx_n_s__Reserved ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( PyObject_SetAttr ( __pyx_m , __pyx_n_s__PROTOCOLS , ( ( PyObject * ) __pyx_t_1 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 179 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-05-13 17:42:05 +02:00
__Pyx_DECREF ( ( ( PyObject * ) __pyx_t_1 ) ) ; __pyx_t_1 = 0 ;
/* "netfilterqueue.pyx":1
2011-10-14 23:14:25 +02:00
* " " " # <<<<<<<<<<<<<<
* Bind to a Linux netfilter queue . Send packets to a user - specified callback
* function .
2011-05-12 22:45:14 +02:00
*/
__pyx_t_1 = PyDict_New ( ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_1 ) ) ;
if ( PyObject_SetAttr ( __pyx_m , __pyx_n_s____test__ , ( ( PyObject * ) __pyx_t_1 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( ( ( PyObject * ) __pyx_t_1 ) ) ; __pyx_t_1 = 0 ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
if ( __pyx_m ) {
2011-10-14 23:14:25 +02:00
__Pyx_AddTraceback ( " init netfilterqueue " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2011-05-12 22:45:14 +02:00
Py_DECREF ( __pyx_m ) ; __pyx_m = 0 ;
} else if ( ! PyErr_Occurred ( ) ) {
PyErr_SetString ( PyExc_ImportError , " init netfilterqueue " ) ;
}
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
# if PY_MAJOR_VERSION < 3
return ;
# else
return __pyx_m ;
# endif
}
/* Runtime support code */
2011-10-14 23:14:25 +02:00
# if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct * __Pyx_RefNannyImportAPI ( const char * modname ) {
PyObject * m = NULL , * p = NULL ;
void * r = NULL ;
m = PyImport_ImportModule ( ( char * ) modname ) ;
if ( ! m ) goto end ;
p = PyObject_GetAttrString ( m , ( char * ) " RefNannyAPI " ) ;
if ( ! p ) goto end ;
r = PyLong_AsVoidPtr ( p ) ;
end :
Py_XDECREF ( p ) ;
Py_XDECREF ( m ) ;
return ( __Pyx_RefNannyAPIStruct * ) r ;
}
# endif /* CYTHON_REFNANNY */
2011-05-12 22:45:14 +02:00
static PyObject * __Pyx_GetName ( PyObject * dict , PyObject * name ) {
PyObject * result ;
result = PyObject_GetAttr ( dict , name ) ;
2011-10-14 23:14:25 +02:00
if ( ! result ) {
if ( dict ! = __pyx_b ) {
PyErr_Clear ( ) ;
result = PyObject_GetAttr ( __pyx_b , name ) ;
}
if ( ! result ) {
PyErr_SetObject ( PyExc_NameError , name ) ;
}
}
2011-05-12 22:45:14 +02:00
return result ;
}
static void __Pyx_RaiseArgtupleInvalid (
const char * func_name ,
int exact ,
Py_ssize_t num_min ,
Py_ssize_t num_max ,
Py_ssize_t num_found )
{
Py_ssize_t num_expected ;
2011-10-14 23:14:25 +02:00
const char * more_or_less ;
2011-05-12 22:45:14 +02:00
if ( num_found < num_min ) {
num_expected = num_min ;
more_or_less = " at least " ;
} else {
num_expected = num_max ;
more_or_less = " at most " ;
}
if ( exact ) {
more_or_less = " exactly " ;
}
PyErr_Format ( PyExc_TypeError ,
2011-10-14 23:14:25 +02:00
" %s() takes %s % " PY_FORMAT_SIZE_T " d positional argument%s (% " PY_FORMAT_SIZE_T " d given) " ,
func_name , more_or_less , num_expected ,
( num_expected = = 1 ) ? " " : " s " , num_found ) ;
2011-05-12 22:45:14 +02:00
}
static CYTHON_INLINE int __Pyx_CheckKeywordStrings (
PyObject * kwdict ,
const char * function_name ,
int kw_allowed )
{
PyObject * key = 0 ;
Py_ssize_t pos = 0 ;
while ( PyDict_Next ( kwdict , & pos , & key , 0 ) ) {
# if PY_MAJOR_VERSION < 3
if ( unlikely ( ! PyString_CheckExact ( key ) ) & & unlikely ( ! PyString_Check ( key ) ) )
# else
if ( unlikely ( ! PyUnicode_CheckExact ( key ) ) & & unlikely ( ! PyUnicode_Check ( key ) ) )
# endif
goto invalid_keyword_type ;
}
if ( ( ! kw_allowed ) & & unlikely ( key ) )
goto invalid_keyword ;
return 1 ;
invalid_keyword_type :
PyErr_Format ( PyExc_TypeError ,
" %s() keywords must be strings " , function_name ) ;
return 0 ;
invalid_keyword :
PyErr_Format ( PyExc_TypeError ,
# if PY_MAJOR_VERSION < 3
" %s() got an unexpected keyword argument '%s' " ,
function_name , PyString_AsString ( key ) ) ;
# else
" %s() got an unexpected keyword argument '%U' " ,
function_name , key ) ;
# endif
return 0 ;
}
2011-05-13 17:42:05 +02:00
static CYTHON_INLINE void __Pyx_ErrRestore ( PyObject * type , PyObject * value , PyObject * tb ) {
PyObject * tmp_type , * tmp_value , * tmp_tb ;
PyThreadState * tstate = PyThreadState_GET ( ) ;
tmp_type = tstate - > curexc_type ;
tmp_value = tstate - > curexc_value ;
tmp_tb = tstate - > curexc_traceback ;
tstate - > curexc_type = type ;
tstate - > curexc_value = value ;
tstate - > curexc_traceback = tb ;
Py_XDECREF ( tmp_type ) ;
Py_XDECREF ( tmp_value ) ;
Py_XDECREF ( tmp_tb ) ;
2011-05-12 22:45:14 +02:00
}
2011-05-13 17:42:05 +02:00
static CYTHON_INLINE void __Pyx_ErrFetch ( PyObject * * type , PyObject * * value , PyObject * * tb ) {
PyThreadState * tstate = PyThreadState_GET ( ) ;
* type = tstate - > curexc_type ;
* value = tstate - > curexc_value ;
* tb = tstate - > curexc_traceback ;
tstate - > curexc_type = 0 ;
tstate - > curexc_value = 0 ;
tstate - > curexc_traceback = 0 ;
2011-05-12 22:45:14 +02:00
}
2011-05-13 17:42:05 +02:00
# if PY_MAJOR_VERSION < 3
2011-10-14 23:14:25 +02:00
static void __Pyx_Raise ( PyObject * type , PyObject * value , PyObject * tb , PyObject * cause ) {
/* cause is unused */
2011-05-13 17:42:05 +02:00
Py_XINCREF ( type ) ;
Py_XINCREF ( value ) ;
Py_XINCREF ( tb ) ;
/* First, check the traceback argument, replacing None with NULL. */
if ( tb = = Py_None ) {
Py_DECREF ( tb ) ;
tb = 0 ;
}
else if ( tb ! = NULL & & ! PyTraceBack_Check ( tb ) ) {
PyErr_SetString ( PyExc_TypeError ,
" raise: arg 3 must be a traceback or None " ) ;
goto raise_error ;
}
/* Next, replace a missing value with None */
if ( value = = NULL ) {
value = Py_None ;
Py_INCREF ( value ) ;
}
# if PY_VERSION_HEX < 0x02050000
if ( ! PyClass_Check ( type ) )
# else
if ( ! PyType_Check ( type ) )
# endif
{
/* Raising an instance. The value should be a dummy. */
if ( value ! = Py_None ) {
PyErr_SetString ( PyExc_TypeError ,
" instance exception may not have a separate value " ) ;
goto raise_error ;
}
/* Normalize to raise <class>, <instance> */
Py_DECREF ( value ) ;
value = type ;
# if PY_VERSION_HEX < 0x02050000
if ( PyInstance_Check ( type ) ) {
type = ( PyObject * ) ( ( PyInstanceObject * ) type ) - > in_class ;
Py_INCREF ( type ) ;
}
else {
type = 0 ;
PyErr_SetString ( PyExc_TypeError ,
" raise: exception must be an old-style class or instance " ) ;
goto raise_error ;
}
# else
type = ( PyObject * ) Py_TYPE ( type ) ;
Py_INCREF ( type ) ;
if ( ! PyType_IsSubtype ( ( PyTypeObject * ) type , ( PyTypeObject * ) PyExc_BaseException ) ) {
PyErr_SetString ( PyExc_TypeError ,
" raise: exception class must be a subclass of BaseException " ) ;
goto raise_error ;
}
# endif
}
__Pyx_ErrRestore ( type , value , tb ) ;
return ;
raise_error :
Py_XDECREF ( value ) ;
Py_XDECREF ( type ) ;
Py_XDECREF ( tb ) ;
return ;
}
# else /* Python 3+ */
2011-10-14 23:14:25 +02:00
static void __Pyx_Raise ( PyObject * type , PyObject * value , PyObject * tb , PyObject * cause ) {
2011-05-13 17:42:05 +02:00
if ( tb = = Py_None ) {
tb = 0 ;
} else if ( tb & & ! PyTraceBack_Check ( tb ) ) {
PyErr_SetString ( PyExc_TypeError ,
" raise: arg 3 must be a traceback or None " ) ;
goto bad ;
}
if ( value = = Py_None )
value = 0 ;
if ( PyExceptionInstance_Check ( type ) ) {
if ( value ) {
PyErr_SetString ( PyExc_TypeError ,
" instance exception may not have a separate value " ) ;
goto bad ;
}
value = type ;
type = ( PyObject * ) Py_TYPE ( value ) ;
} else if ( ! PyExceptionClass_Check ( type ) ) {
PyErr_SetString ( PyExc_TypeError ,
" raise: exception class must be a subclass of BaseException " ) ;
goto bad ;
}
2011-10-14 23:14:25 +02:00
if ( cause ) {
PyObject * fixed_cause ;
if ( PyExceptionClass_Check ( cause ) ) {
fixed_cause = PyObject_CallObject ( cause , NULL ) ;
if ( fixed_cause = = NULL )
goto bad ;
}
else if ( PyExceptionInstance_Check ( cause ) ) {
fixed_cause = cause ;
Py_INCREF ( fixed_cause ) ;
}
else {
PyErr_SetString ( PyExc_TypeError ,
" exception causes must derive from "
" BaseException " ) ;
goto bad ;
}
if ( ! value ) {
value = PyObject_CallObject ( type , NULL ) ;
}
PyException_SetCause ( value , fixed_cause ) ;
}
2011-05-13 17:42:05 +02:00
PyErr_SetObject ( type , value ) ;
if ( tb ) {
PyThreadState * tstate = PyThreadState_GET ( ) ;
PyObject * tmp_tb = tstate - > curexc_traceback ;
if ( tb ! = tmp_tb ) {
Py_INCREF ( tb ) ;
tstate - > curexc_traceback = tb ;
Py_XDECREF ( tmp_tb ) ;
}
}
bad :
return ;
}
# endif
2012-12-24 04:17:54 +01:00
static int __Pyx_ArgTypeTest ( PyObject * obj , PyTypeObject * type , int none_allowed ,
const char * name , int exact )
{
if ( ! type ) {
PyErr_Format ( PyExc_SystemError , " Missing type object " ) ;
return 0 ;
}
if ( none_allowed & & obj = = Py_None ) return 1 ;
else if ( exact ) {
if ( Py_TYPE ( obj ) = = type ) return 1 ;
}
else {
if ( PyObject_TypeCheck ( obj , type ) ) return 1 ;
}
PyErr_Format ( PyExc_TypeError ,
" Argument '%s' has incorrect type (expected %s, got %s) " ,
name , type - > tp_name , Py_TYPE ( obj ) - > tp_name ) ;
return 0 ;
}
2011-05-13 17:42:05 +02:00
static void __Pyx_RaiseDoubleKeywordsError (
const char * func_name ,
PyObject * kw_name )
{
PyErr_Format ( PyExc_TypeError ,
# if PY_MAJOR_VERSION >= 3
" %s() got multiple values for keyword argument '%U' " , func_name , kw_name ) ;
# else
" %s() got multiple values for keyword argument '%s' " , func_name ,
PyString_AS_STRING ( kw_name ) ) ;
# endif
}
static int __Pyx_ParseOptionalKeywords (
PyObject * kwds ,
PyObject * * argnames [ ] ,
2011-05-12 22:45:14 +02:00
PyObject * kwds2 ,
PyObject * values [ ] ,
Py_ssize_t num_pos_args ,
const char * function_name )
{
PyObject * key = 0 , * value = 0 ;
Py_ssize_t pos = 0 ;
PyObject * * * name ;
PyObject * * * first_kw_arg = argnames + num_pos_args ;
while ( PyDict_Next ( kwds , & pos , & key , & value ) ) {
name = first_kw_arg ;
while ( * name & & ( * * name ! = key ) ) name + + ;
if ( * name ) {
values [ name - argnames ] = value ;
} else {
# if PY_MAJOR_VERSION < 3
if ( unlikely ( ! PyString_CheckExact ( key ) ) & & unlikely ( ! PyString_Check ( key ) ) ) {
# else
if ( unlikely ( ! PyUnicode_CheckExact ( key ) ) & & unlikely ( ! PyUnicode_Check ( key ) ) ) {
# endif
goto invalid_keyword_type ;
} else {
for ( name = first_kw_arg ; * name ; name + + ) {
# if PY_MAJOR_VERSION >= 3
if ( PyUnicode_GET_SIZE ( * * name ) = = PyUnicode_GET_SIZE ( key ) & &
PyUnicode_Compare ( * * name , key ) = = 0 ) break ;
# else
if ( PyString_GET_SIZE ( * * name ) = = PyString_GET_SIZE ( key ) & &
_PyString_Eq ( * * name , key ) ) break ;
# endif
}
if ( * name ) {
values [ name - argnames ] = value ;
} else {
/* unexpected keyword found */
for ( name = argnames ; name ! = first_kw_arg ; name + + ) {
if ( * * name = = key ) goto arg_passed_twice ;
# if PY_MAJOR_VERSION >= 3
if ( PyUnicode_GET_SIZE ( * * name ) = = PyUnicode_GET_SIZE ( key ) & &
PyUnicode_Compare ( * * name , key ) = = 0 ) goto arg_passed_twice ;
# else
if ( PyString_GET_SIZE ( * * name ) = = PyString_GET_SIZE ( key ) & &
_PyString_Eq ( * * name , key ) ) goto arg_passed_twice ;
# endif
}
if ( kwds2 ) {
if ( unlikely ( PyDict_SetItem ( kwds2 , key , value ) ) ) goto bad ;
} else {
goto invalid_keyword ;
}
}
}
}
}
return 0 ;
arg_passed_twice :
__Pyx_RaiseDoubleKeywordsError ( function_name , * * name ) ;
goto bad ;
invalid_keyword_type :
PyErr_Format ( PyExc_TypeError ,
" %s() keywords must be strings " , function_name ) ;
goto bad ;
invalid_keyword :
PyErr_Format ( PyExc_TypeError ,
# if PY_MAJOR_VERSION < 3
" %s() got an unexpected keyword argument '%s' " ,
function_name , PyString_AsString ( key ) ) ;
# else
" %s() got an unexpected keyword argument '%U' " ,
function_name , key ) ;
# endif
bad :
return - 1 ;
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_to_py_u_int32_t ( u_int32_t val ) {
const u_int32_t neg_one = ( u_int32_t ) - 1 , const_zero = ( u_int32_t ) 0 ;
const int is_unsigned = const_zero < neg_one ;
if ( ( sizeof ( u_int32_t ) = = sizeof ( char ) ) | |
( sizeof ( u_int32_t ) = = sizeof ( short ) ) ) {
return PyInt_FromLong ( ( long ) val ) ;
} else if ( ( sizeof ( u_int32_t ) = = sizeof ( int ) ) | |
( sizeof ( u_int32_t ) = = sizeof ( long ) ) ) {
if ( is_unsigned )
return PyLong_FromUnsignedLong ( ( unsigned long ) val ) ;
else
return PyInt_FromLong ( ( long ) val ) ;
} else if ( sizeof ( u_int32_t ) = = sizeof ( PY_LONG_LONG ) ) {
if ( is_unsigned )
return PyLong_FromUnsignedLongLong ( ( unsigned PY_LONG_LONG ) val ) ;
else
return PyLong_FromLongLong ( ( PY_LONG_LONG ) val ) ;
} else {
int one = 1 ; int little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & val ;
2011-10-14 23:14:25 +02:00
return _PyLong_FromByteArray ( bytes , sizeof ( u_int32_t ) ,
2011-05-12 22:45:14 +02:00
little , ! is_unsigned ) ;
}
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_to_py_u_int16_t ( u_int16_t val ) {
const u_int16_t neg_one = ( u_int16_t ) - 1 , const_zero = ( u_int16_t ) 0 ;
const int is_unsigned = const_zero < neg_one ;
if ( ( sizeof ( u_int16_t ) = = sizeof ( char ) ) | |
( sizeof ( u_int16_t ) = = sizeof ( short ) ) ) {
return PyInt_FromLong ( ( long ) val ) ;
} else if ( ( sizeof ( u_int16_t ) = = sizeof ( int ) ) | |
( sizeof ( u_int16_t ) = = sizeof ( long ) ) ) {
if ( is_unsigned )
return PyLong_FromUnsignedLong ( ( unsigned long ) val ) ;
else
return PyInt_FromLong ( ( long ) val ) ;
} else if ( sizeof ( u_int16_t ) = = sizeof ( PY_LONG_LONG ) ) {
if ( is_unsigned )
return PyLong_FromUnsignedLongLong ( ( unsigned PY_LONG_LONG ) val ) ;
else
return PyLong_FromLongLong ( ( PY_LONG_LONG ) val ) ;
} else {
int one = 1 ; int little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & val ;
2011-10-14 23:14:25 +02:00
return _PyLong_FromByteArray ( bytes , sizeof ( u_int16_t ) ,
2011-05-12 22:45:14 +02:00
little , ! is_unsigned ) ;
}
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_to_py_u_int8_t ( u_int8_t val ) {
const u_int8_t neg_one = ( u_int8_t ) - 1 , const_zero = ( u_int8_t ) 0 ;
const int is_unsigned = const_zero < neg_one ;
if ( ( sizeof ( u_int8_t ) = = sizeof ( char ) ) | |
( sizeof ( u_int8_t ) = = sizeof ( short ) ) ) {
return PyInt_FromLong ( ( long ) val ) ;
} else if ( ( sizeof ( u_int8_t ) = = sizeof ( int ) ) | |
( sizeof ( u_int8_t ) = = sizeof ( long ) ) ) {
if ( is_unsigned )
return PyLong_FromUnsignedLong ( ( unsigned long ) val ) ;
else
return PyInt_FromLong ( ( long ) val ) ;
} else if ( sizeof ( u_int8_t ) = = sizeof ( PY_LONG_LONG ) ) {
if ( is_unsigned )
return PyLong_FromUnsignedLongLong ( ( unsigned PY_LONG_LONG ) val ) ;
else
return PyLong_FromLongLong ( ( PY_LONG_LONG ) val ) ;
} else {
int one = 1 ; int little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & val ;
2011-10-14 23:14:25 +02:00
return _PyLong_FromByteArray ( bytes , sizeof ( u_int8_t ) ,
2011-05-12 22:45:14 +02:00
little , ! is_unsigned ) ;
}
}
2011-05-13 17:42:05 +02:00
static CYTHON_INLINE u_int32_t __Pyx_PyInt_from_py_u_int32_t ( PyObject * x ) {
const u_int32_t neg_one = ( u_int32_t ) - 1 , const_zero = ( u_int32_t ) 0 ;
const int is_unsigned = const_zero < neg_one ;
if ( sizeof ( u_int32_t ) = = sizeof ( char ) ) {
if ( is_unsigned )
return ( u_int32_t ) __Pyx_PyInt_AsUnsignedChar ( x ) ;
else
return ( u_int32_t ) __Pyx_PyInt_AsSignedChar ( x ) ;
} else if ( sizeof ( u_int32_t ) = = sizeof ( short ) ) {
if ( is_unsigned )
return ( u_int32_t ) __Pyx_PyInt_AsUnsignedShort ( x ) ;
else
return ( u_int32_t ) __Pyx_PyInt_AsSignedShort ( x ) ;
} else if ( sizeof ( u_int32_t ) = = sizeof ( int ) ) {
if ( is_unsigned )
return ( u_int32_t ) __Pyx_PyInt_AsUnsignedInt ( x ) ;
else
return ( u_int32_t ) __Pyx_PyInt_AsSignedInt ( x ) ;
} else if ( sizeof ( u_int32_t ) = = sizeof ( long ) ) {
if ( is_unsigned )
return ( u_int32_t ) __Pyx_PyInt_AsUnsignedLong ( x ) ;
else
return ( u_int32_t ) __Pyx_PyInt_AsSignedLong ( x ) ;
} else if ( sizeof ( u_int32_t ) = = sizeof ( PY_LONG_LONG ) ) {
if ( is_unsigned )
return ( u_int32_t ) __Pyx_PyInt_AsUnsignedLongLong ( x ) ;
else
return ( u_int32_t ) __Pyx_PyInt_AsSignedLongLong ( x ) ;
} else {
u_int32_t val ;
PyObject * v = __Pyx_PyNumber_Int ( x ) ;
# if PY_VERSION_HEX < 0x03000000
if ( likely ( v ) & & ! PyLong_Check ( v ) ) {
PyObject * tmp = v ;
v = PyNumber_Long ( tmp ) ;
Py_DECREF ( tmp ) ;
2011-05-12 22:45:14 +02:00
}
# endif
2011-05-13 17:42:05 +02:00
if ( likely ( v ) ) {
int one = 1 ; int is_little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & val ;
int ret = _PyLong_AsByteArray ( ( PyLongObject * ) v ,
bytes , sizeof ( val ) ,
is_little , ! is_unsigned ) ;
Py_DECREF ( v ) ;
if ( likely ( ! ret ) )
return val ;
2011-05-12 22:45:14 +02:00
}
2011-05-13 17:42:05 +02:00
return ( u_int32_t ) - 1 ;
2011-05-12 22:45:14 +02:00
}
}
static CYTHON_INLINE u_int16_t __Pyx_PyInt_from_py_u_int16_t ( PyObject * x ) {
const u_int16_t neg_one = ( u_int16_t ) - 1 , const_zero = ( u_int16_t ) 0 ;
const int is_unsigned = const_zero < neg_one ;
if ( sizeof ( u_int16_t ) = = sizeof ( char ) ) {
if ( is_unsigned )
return ( u_int16_t ) __Pyx_PyInt_AsUnsignedChar ( x ) ;
else
return ( u_int16_t ) __Pyx_PyInt_AsSignedChar ( x ) ;
} else if ( sizeof ( u_int16_t ) = = sizeof ( short ) ) {
if ( is_unsigned )
return ( u_int16_t ) __Pyx_PyInt_AsUnsignedShort ( x ) ;
else
return ( u_int16_t ) __Pyx_PyInt_AsSignedShort ( x ) ;
} else if ( sizeof ( u_int16_t ) = = sizeof ( int ) ) {
if ( is_unsigned )
return ( u_int16_t ) __Pyx_PyInt_AsUnsignedInt ( x ) ;
else
return ( u_int16_t ) __Pyx_PyInt_AsSignedInt ( x ) ;
} else if ( sizeof ( u_int16_t ) = = sizeof ( long ) ) {
if ( is_unsigned )
return ( u_int16_t ) __Pyx_PyInt_AsUnsignedLong ( x ) ;
else
return ( u_int16_t ) __Pyx_PyInt_AsSignedLong ( x ) ;
} else if ( sizeof ( u_int16_t ) = = sizeof ( PY_LONG_LONG ) ) {
if ( is_unsigned )
return ( u_int16_t ) __Pyx_PyInt_AsUnsignedLongLong ( x ) ;
else
return ( u_int16_t ) __Pyx_PyInt_AsSignedLongLong ( x ) ;
} else {
u_int16_t val ;
PyObject * v = __Pyx_PyNumber_Int ( x ) ;
# if PY_VERSION_HEX < 0x03000000
if ( likely ( v ) & & ! PyLong_Check ( v ) ) {
PyObject * tmp = v ;
v = PyNumber_Long ( tmp ) ;
Py_DECREF ( tmp ) ;
}
# endif
if ( likely ( v ) ) {
int one = 1 ; int is_little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & val ;
int ret = _PyLong_AsByteArray ( ( PyLongObject * ) v ,
bytes , sizeof ( val ) ,
is_little , ! is_unsigned ) ;
Py_DECREF ( v ) ;
if ( likely ( ! ret ) )
return val ;
}
return ( u_int16_t ) - 1 ;
}
}
static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar ( PyObject * x ) {
const unsigned char neg_one = ( unsigned char ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( sizeof ( unsigned char ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( unsigned char ) val ) ) {
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to unsigned char " :
" value too large to convert to unsigned char " ) ;
}
return ( unsigned char ) - 1 ;
}
return ( unsigned char ) val ;
}
return ( unsigned char ) __Pyx_PyInt_AsUnsignedLong ( x ) ;
}
static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort ( PyObject * x ) {
const unsigned short neg_one = ( unsigned short ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( sizeof ( unsigned short ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( unsigned short ) val ) ) {
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to unsigned short " :
" value too large to convert to unsigned short " ) ;
}
return ( unsigned short ) - 1 ;
}
return ( unsigned short ) val ;
}
return ( unsigned short ) __Pyx_PyInt_AsUnsignedLong ( x ) ;
}
static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt ( PyObject * x ) {
const unsigned int neg_one = ( unsigned int ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( sizeof ( unsigned int ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( unsigned int ) val ) ) {
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to unsigned int " :
" value too large to convert to unsigned int " ) ;
}
return ( unsigned int ) - 1 ;
}
return ( unsigned int ) val ;
}
return ( unsigned int ) __Pyx_PyInt_AsUnsignedLong ( x ) ;
}
static CYTHON_INLINE char __Pyx_PyInt_AsChar ( PyObject * x ) {
const char neg_one = ( char ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( sizeof ( char ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( char ) val ) ) {
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to char " :
" value too large to convert to char " ) ;
}
return ( char ) - 1 ;
}
return ( char ) val ;
}
return ( char ) __Pyx_PyInt_AsLong ( x ) ;
}
static CYTHON_INLINE short __Pyx_PyInt_AsShort ( PyObject * x ) {
const short neg_one = ( short ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( sizeof ( short ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( short ) val ) ) {
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to short " :
" value too large to convert to short " ) ;
}
return ( short ) - 1 ;
}
return ( short ) val ;
}
return ( short ) __Pyx_PyInt_AsLong ( x ) ;
}
static CYTHON_INLINE int __Pyx_PyInt_AsInt ( PyObject * x ) {
const int neg_one = ( int ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( sizeof ( int ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( int ) val ) ) {
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to int " :
" value too large to convert to int " ) ;
}
return ( int ) - 1 ;
}
return ( int ) val ;
}
return ( int ) __Pyx_PyInt_AsLong ( x ) ;
}
static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar ( PyObject * x ) {
const signed char neg_one = ( signed char ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( sizeof ( signed char ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( signed char ) val ) ) {
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to signed char " :
" value too large to convert to signed char " ) ;
}
return ( signed char ) - 1 ;
}
return ( signed char ) val ;
}
return ( signed char ) __Pyx_PyInt_AsSignedLong ( x ) ;
}
static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort ( PyObject * x ) {
const signed short neg_one = ( signed short ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( sizeof ( signed short ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( signed short ) val ) ) {
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to signed short " :
" value too large to convert to signed short " ) ;
}
return ( signed short ) - 1 ;
}
return ( signed short ) val ;
}
return ( signed short ) __Pyx_PyInt_AsSignedLong ( x ) ;
}
static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt ( PyObject * x ) {
const signed int neg_one = ( signed int ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( sizeof ( signed int ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( signed int ) val ) ) {
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to signed int " :
" value too large to convert to signed int " ) ;
}
return ( signed int ) - 1 ;
}
return ( signed int ) val ;
}
return ( signed int ) __Pyx_PyInt_AsSignedLong ( x ) ;
}
static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble ( PyObject * x ) {
const int neg_one = ( int ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( sizeof ( int ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( int ) val ) ) {
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to int " :
" value too large to convert to int " ) ;
}
return ( int ) - 1 ;
}
return ( int ) val ;
}
return ( int ) __Pyx_PyInt_AsLong ( x ) ;
}
static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong ( PyObject * x ) {
const unsigned long neg_one = ( unsigned long ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
# if PY_VERSION_HEX < 0x03000000
if ( likely ( PyInt_Check ( x ) ) ) {
long val = PyInt_AS_LONG ( x ) ;
if ( is_unsigned & & unlikely ( val < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to unsigned long " ) ;
return ( unsigned long ) - 1 ;
}
return ( unsigned long ) val ;
} else
# endif
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to unsigned long " ) ;
return ( unsigned long ) - 1 ;
}
2011-10-14 23:14:25 +02:00
return ( unsigned long ) PyLong_AsUnsignedLong ( x ) ;
2011-05-12 22:45:14 +02:00
} else {
2011-10-14 23:14:25 +02:00
return ( unsigned long ) PyLong_AsLong ( x ) ;
2011-05-12 22:45:14 +02:00
}
} else {
unsigned long val ;
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
if ( ! tmp ) return ( unsigned long ) - 1 ;
val = __Pyx_PyInt_AsUnsignedLong ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
}
static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong ( PyObject * x ) {
const unsigned PY_LONG_LONG neg_one = ( unsigned PY_LONG_LONG ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
# if PY_VERSION_HEX < 0x03000000
if ( likely ( PyInt_Check ( x ) ) ) {
long val = PyInt_AS_LONG ( x ) ;
if ( is_unsigned & & unlikely ( val < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to unsigned PY_LONG_LONG " ) ;
return ( unsigned PY_LONG_LONG ) - 1 ;
}
return ( unsigned PY_LONG_LONG ) val ;
} else
# endif
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to unsigned PY_LONG_LONG " ) ;
return ( unsigned PY_LONG_LONG ) - 1 ;
}
2011-10-14 23:14:25 +02:00
return ( unsigned PY_LONG_LONG ) PyLong_AsUnsignedLongLong ( x ) ;
2011-05-12 22:45:14 +02:00
} else {
2011-10-14 23:14:25 +02:00
return ( unsigned PY_LONG_LONG ) PyLong_AsLongLong ( x ) ;
2011-05-12 22:45:14 +02:00
}
} else {
unsigned PY_LONG_LONG val ;
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
if ( ! tmp ) return ( unsigned PY_LONG_LONG ) - 1 ;
val = __Pyx_PyInt_AsUnsignedLongLong ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
}
static CYTHON_INLINE long __Pyx_PyInt_AsLong ( PyObject * x ) {
const long neg_one = ( long ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
# if PY_VERSION_HEX < 0x03000000
if ( likely ( PyInt_Check ( x ) ) ) {
long val = PyInt_AS_LONG ( x ) ;
if ( is_unsigned & & unlikely ( val < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to long " ) ;
return ( long ) - 1 ;
}
return ( long ) val ;
} else
# endif
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to long " ) ;
return ( long ) - 1 ;
}
2011-10-14 23:14:25 +02:00
return ( long ) PyLong_AsUnsignedLong ( x ) ;
2011-05-12 22:45:14 +02:00
} else {
2011-10-14 23:14:25 +02:00
return ( long ) PyLong_AsLong ( x ) ;
2011-05-12 22:45:14 +02:00
}
} else {
long val ;
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
if ( ! tmp ) return ( long ) - 1 ;
val = __Pyx_PyInt_AsLong ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
}
static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong ( PyObject * x ) {
const PY_LONG_LONG neg_one = ( PY_LONG_LONG ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
# if PY_VERSION_HEX < 0x03000000
if ( likely ( PyInt_Check ( x ) ) ) {
long val = PyInt_AS_LONG ( x ) ;
if ( is_unsigned & & unlikely ( val < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to PY_LONG_LONG " ) ;
return ( PY_LONG_LONG ) - 1 ;
}
return ( PY_LONG_LONG ) val ;
} else
# endif
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to PY_LONG_LONG " ) ;
return ( PY_LONG_LONG ) - 1 ;
}
2011-10-14 23:14:25 +02:00
return ( PY_LONG_LONG ) PyLong_AsUnsignedLongLong ( x ) ;
2011-05-12 22:45:14 +02:00
} else {
2011-10-14 23:14:25 +02:00
return ( PY_LONG_LONG ) PyLong_AsLongLong ( x ) ;
2011-05-12 22:45:14 +02:00
}
} else {
PY_LONG_LONG val ;
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
if ( ! tmp ) return ( PY_LONG_LONG ) - 1 ;
val = __Pyx_PyInt_AsLongLong ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
}
static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong ( PyObject * x ) {
const signed long neg_one = ( signed long ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
# if PY_VERSION_HEX < 0x03000000
if ( likely ( PyInt_Check ( x ) ) ) {
long val = PyInt_AS_LONG ( x ) ;
if ( is_unsigned & & unlikely ( val < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to signed long " ) ;
return ( signed long ) - 1 ;
}
return ( signed long ) val ;
} else
# endif
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to signed long " ) ;
return ( signed long ) - 1 ;
}
2011-10-14 23:14:25 +02:00
return ( signed long ) PyLong_AsUnsignedLong ( x ) ;
2011-05-12 22:45:14 +02:00
} else {
2011-10-14 23:14:25 +02:00
return ( signed long ) PyLong_AsLong ( x ) ;
2011-05-12 22:45:14 +02:00
}
} else {
signed long val ;
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
if ( ! tmp ) return ( signed long ) - 1 ;
val = __Pyx_PyInt_AsSignedLong ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
}
static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong ( PyObject * x ) {
const signed PY_LONG_LONG neg_one = ( signed PY_LONG_LONG ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
# if PY_VERSION_HEX < 0x03000000
if ( likely ( PyInt_Check ( x ) ) ) {
long val = PyInt_AS_LONG ( x ) ;
if ( is_unsigned & & unlikely ( val < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to signed PY_LONG_LONG " ) ;
return ( signed PY_LONG_LONG ) - 1 ;
}
return ( signed PY_LONG_LONG ) val ;
} else
# endif
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to signed PY_LONG_LONG " ) ;
return ( signed PY_LONG_LONG ) - 1 ;
}
2011-10-14 23:14:25 +02:00
return ( signed PY_LONG_LONG ) PyLong_AsUnsignedLongLong ( x ) ;
2011-05-12 22:45:14 +02:00
} else {
2011-10-14 23:14:25 +02:00
return ( signed PY_LONG_LONG ) PyLong_AsLongLong ( x ) ;
2011-05-12 22:45:14 +02:00
}
} else {
signed PY_LONG_LONG val ;
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
if ( ! tmp ) return ( signed PY_LONG_LONG ) - 1 ;
val = __Pyx_PyInt_AsSignedLongLong ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
}
2011-10-14 23:14:25 +02:00
static void __Pyx_WriteUnraisable ( const char * name , int clineno ,
int lineno , const char * filename ) {
2011-05-12 22:45:14 +02:00
PyObject * old_exc , * old_val , * old_tb ;
PyObject * ctx ;
__Pyx_ErrFetch ( & old_exc , & old_val , & old_tb ) ;
# if PY_MAJOR_VERSION < 3
ctx = PyString_FromString ( name ) ;
# else
ctx = PyUnicode_FromString ( name ) ;
# endif
__Pyx_ErrRestore ( old_exc , old_val , old_tb ) ;
if ( ! ctx ) {
PyErr_WriteUnraisable ( Py_None ) ;
} else {
PyErr_WriteUnraisable ( ctx ) ;
Py_DECREF ( ctx ) ;
}
}
static CYTHON_INLINE u_int8_t __Pyx_PyInt_from_py_u_int8_t ( PyObject * x ) {
const u_int8_t neg_one = ( u_int8_t ) - 1 , const_zero = ( u_int8_t ) 0 ;
const int is_unsigned = const_zero < neg_one ;
if ( sizeof ( u_int8_t ) = = sizeof ( char ) ) {
if ( is_unsigned )
return ( u_int8_t ) __Pyx_PyInt_AsUnsignedChar ( x ) ;
else
return ( u_int8_t ) __Pyx_PyInt_AsSignedChar ( x ) ;
} else if ( sizeof ( u_int8_t ) = = sizeof ( short ) ) {
if ( is_unsigned )
return ( u_int8_t ) __Pyx_PyInt_AsUnsignedShort ( x ) ;
else
return ( u_int8_t ) __Pyx_PyInt_AsSignedShort ( x ) ;
} else if ( sizeof ( u_int8_t ) = = sizeof ( int ) ) {
if ( is_unsigned )
return ( u_int8_t ) __Pyx_PyInt_AsUnsignedInt ( x ) ;
else
return ( u_int8_t ) __Pyx_PyInt_AsSignedInt ( x ) ;
} else if ( sizeof ( u_int8_t ) = = sizeof ( long ) ) {
if ( is_unsigned )
return ( u_int8_t ) __Pyx_PyInt_AsUnsignedLong ( x ) ;
else
return ( u_int8_t ) __Pyx_PyInt_AsSignedLong ( x ) ;
} else if ( sizeof ( u_int8_t ) = = sizeof ( PY_LONG_LONG ) ) {
if ( is_unsigned )
return ( u_int8_t ) __Pyx_PyInt_AsUnsignedLongLong ( x ) ;
else
return ( u_int8_t ) __Pyx_PyInt_AsSignedLongLong ( x ) ;
} else {
u_int8_t val ;
PyObject * v = __Pyx_PyNumber_Int ( x ) ;
# if PY_VERSION_HEX < 0x03000000
if ( likely ( v ) & & ! PyLong_Check ( v ) ) {
PyObject * tmp = v ;
v = PyNumber_Long ( tmp ) ;
Py_DECREF ( tmp ) ;
}
# endif
if ( likely ( v ) ) {
int one = 1 ; int is_little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & val ;
int ret = _PyLong_AsByteArray ( ( PyLongObject * ) v ,
bytes , sizeof ( val ) ,
is_little , ! is_unsigned ) ;
Py_DECREF ( v ) ;
if ( likely ( ! ret ) )
return val ;
}
return ( u_int8_t ) - 1 ;
}
}
2011-10-14 23:14:25 +02:00
static int __Pyx_check_binary_version ( void ) {
char ctversion [ 4 ] , rtversion [ 4 ] ;
PyOS_snprintf ( ctversion , 4 , " %d.%d " , PY_MAJOR_VERSION , PY_MINOR_VERSION ) ;
PyOS_snprintf ( rtversion , 4 , " %s " , Py_GetVersion ( ) ) ;
if ( ctversion [ 0 ] ! = rtversion [ 0 ] | | ctversion [ 2 ] ! = rtversion [ 2 ] ) {
char message [ 200 ] ;
PyOS_snprintf ( message , sizeof ( message ) ,
" compiletime version %s of module '%.100s' "
" does not match runtime version %s " ,
ctversion , __Pyx_MODULE_NAME , rtversion ) ;
# if PY_VERSION_HEX < 0x02050000
return PyErr_Warn ( NULL , message ) ;
# else
return PyErr_WarnEx ( NULL , message , 1 ) ;
# endif
}
return 0 ;
}
2011-05-12 22:45:14 +02:00
static int __Pyx_SetVtable ( PyObject * dict , void * vtable ) {
# if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0)
PyObject * ob = PyCapsule_New ( vtable , 0 , 0 ) ;
# else
PyObject * ob = PyCObject_FromVoidPtr ( vtable , 0 ) ;
# endif
if ( ! ob )
goto bad ;
if ( PyDict_SetItemString ( dict , " __pyx_vtable__ " , ob ) < 0 )
goto bad ;
Py_DECREF ( ob ) ;
return 0 ;
bad :
Py_XDECREF ( ob ) ;
return - 1 ;
}
# include "compile.h"
# include "frameobject.h"
# include "traceback.h"
2011-10-14 23:14:25 +02:00
static void __Pyx_AddTraceback ( const char * funcname , int __pyx_clineno ,
int __pyx_lineno , const char * __pyx_filename ) {
2011-05-12 22:45:14 +02:00
PyObject * py_srcfile = 0 ;
PyObject * py_funcname = 0 ;
PyObject * py_globals = 0 ;
PyCodeObject * py_code = 0 ;
PyFrameObject * py_frame = 0 ;
# if PY_MAJOR_VERSION < 3
py_srcfile = PyString_FromString ( __pyx_filename ) ;
# else
py_srcfile = PyUnicode_FromString ( __pyx_filename ) ;
# endif
if ( ! py_srcfile ) goto bad ;
if ( __pyx_clineno ) {
# if PY_MAJOR_VERSION < 3
py_funcname = PyString_FromFormat ( " %s (%s:%d) " , funcname , __pyx_cfilenm , __pyx_clineno ) ;
# else
py_funcname = PyUnicode_FromFormat ( " %s (%s:%d) " , funcname , __pyx_cfilenm , __pyx_clineno ) ;
# endif
}
else {
# if PY_MAJOR_VERSION < 3
py_funcname = PyString_FromString ( funcname ) ;
# else
py_funcname = PyUnicode_FromString ( funcname ) ;
# endif
}
if ( ! py_funcname ) goto bad ;
py_globals = PyModule_GetDict ( __pyx_m ) ;
if ( ! py_globals ) goto bad ;
py_code = PyCode_New (
0 , /*int argcount,*/
# if PY_MAJOR_VERSION >= 3
0 , /*int kwonlyargcount,*/
# endif
0 , /*int nlocals,*/
0 , /*int stacksize,*/
0 , /*int flags,*/
__pyx_empty_bytes , /*PyObject *code,*/
__pyx_empty_tuple , /*PyObject *consts,*/
__pyx_empty_tuple , /*PyObject *names,*/
__pyx_empty_tuple , /*PyObject *varnames,*/
__pyx_empty_tuple , /*PyObject *freevars,*/
__pyx_empty_tuple , /*PyObject *cellvars,*/
py_srcfile , /*PyObject *filename,*/
py_funcname , /*PyObject *name,*/
__pyx_lineno , /*int firstlineno,*/
__pyx_empty_bytes /*PyObject *lnotab*/
) ;
if ( ! py_code ) goto bad ;
py_frame = PyFrame_New (
PyThreadState_GET ( ) , /*PyThreadState *tstate,*/
py_code , /*PyCodeObject *code,*/
py_globals , /*PyObject *globals,*/
0 /*PyObject *locals*/
) ;
if ( ! py_frame ) goto bad ;
py_frame - > f_lineno = __pyx_lineno ;
PyTraceBack_Here ( py_frame ) ;
bad :
Py_XDECREF ( py_srcfile ) ;
Py_XDECREF ( py_funcname ) ;
Py_XDECREF ( py_code ) ;
Py_XDECREF ( py_frame ) ;
}
static int __Pyx_InitStrings ( __Pyx_StringTabEntry * t ) {
while ( t - > p ) {
# if PY_MAJOR_VERSION < 3
if ( t - > is_unicode ) {
* t - > p = PyUnicode_DecodeUTF8 ( t - > s , t - > n - 1 , NULL ) ;
} else if ( t - > intern ) {
* t - > p = PyString_InternFromString ( t - > s ) ;
} else {
* t - > p = PyString_FromStringAndSize ( t - > s , t - > n - 1 ) ;
}
# else /* Python 3+ has unicode identifiers */
if ( t - > is_unicode | t - > is_str ) {
if ( t - > intern ) {
* t - > p = PyUnicode_InternFromString ( t - > s ) ;
} else if ( t - > encoding ) {
* t - > p = PyUnicode_Decode ( t - > s , t - > n - 1 , t - > encoding , NULL ) ;
} else {
* t - > p = PyUnicode_FromStringAndSize ( t - > s , t - > n - 1 ) ;
}
} else {
* t - > p = PyBytes_FromStringAndSize ( t - > s , t - > n - 1 ) ;
}
# endif
if ( ! * t - > p )
return - 1 ;
+ + t ;
}
return 0 ;
}
/* Type Conversion Functions */
static CYTHON_INLINE int __Pyx_PyObject_IsTrue ( PyObject * x ) {
int is_true = x = = Py_True ;
if ( is_true | ( x = = Py_False ) | ( x = = Py_None ) ) return is_true ;
else return PyObject_IsTrue ( x ) ;
}
static CYTHON_INLINE PyObject * __Pyx_PyNumber_Int ( PyObject * x ) {
PyNumberMethods * m ;
const char * name = NULL ;
PyObject * res = NULL ;
# if PY_VERSION_HEX < 0x03000000
if ( PyInt_Check ( x ) | | PyLong_Check ( x ) )
# else
if ( PyLong_Check ( x ) )
# endif
return Py_INCREF ( x ) , x ;
m = Py_TYPE ( x ) - > tp_as_number ;
# if PY_VERSION_HEX < 0x03000000
if ( m & & m - > nb_int ) {
name = " int " ;
res = PyNumber_Int ( x ) ;
}
else if ( m & & m - > nb_long ) {
name = " long " ;
res = PyNumber_Long ( x ) ;
}
# else
if ( m & & m - > nb_int ) {
name = " int " ;
res = PyNumber_Long ( x ) ;
}
# endif
if ( res ) {
# if PY_VERSION_HEX < 0x03000000
if ( ! PyInt_Check ( res ) & & ! PyLong_Check ( res ) ) {
# else
if ( ! PyLong_Check ( res ) ) {
# endif
PyErr_Format ( PyExc_TypeError ,
" __%s__ returned non-%s (type %.200s) " ,
name , name , Py_TYPE ( res ) - > tp_name ) ;
Py_DECREF ( res ) ;
return NULL ;
}
}
else if ( ! PyErr_Occurred ( ) ) {
PyErr_SetString ( PyExc_TypeError ,
" an integer is required " ) ;
}
return res ;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t ( PyObject * b ) {
Py_ssize_t ival ;
PyObject * x = PyNumber_Index ( b ) ;
if ( ! x ) return - 1 ;
ival = PyInt_AsSsize_t ( x ) ;
Py_DECREF ( x ) ;
return ival ;
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t ( size_t ival ) {
# if PY_VERSION_HEX < 0x02050000
if ( ival < = LONG_MAX )
return PyInt_FromLong ( ( long ) ival ) ;
else {
unsigned char * bytes = ( unsigned char * ) & ival ;
int one = 1 ; int little = ( int ) * ( unsigned char * ) & one ;
return _PyLong_FromByteArray ( bytes , sizeof ( size_t ) , little , 0 ) ;
}
# else
return PyInt_FromSize_t ( ival ) ;
# endif
}
static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t ( PyObject * x ) {
unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong ( x ) ;
if ( unlikely ( val = = ( unsigned PY_LONG_LONG ) - 1 & & PyErr_Occurred ( ) ) ) {
return ( size_t ) - 1 ;
} else if ( unlikely ( val ! = ( unsigned PY_LONG_LONG ) ( size_t ) val ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" value too large to convert to size_t " ) ;
return ( size_t ) - 1 ;
}
return ( size_t ) val ;
}
# endif /* Py_PYTHON_H */