2016-10-27 22:49:16 +02:00
/* Generated by Cython 0.24.1 */
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.
2016-06-28 05:03:55 +02:00
# elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03020000)
# error Cython requires Python 2.6+ or Python 3.2+.
2011-05-12 22:45:14 +02:00
# else
2016-10-27 22:49:16 +02:00
# define CYTHON_ABI "0_24_1"
2016-06-28 05:03:55 +02:00
# include <stddef.h>
2011-05-12 22:45:14 +02:00
# ifndef offsetof
2016-06-28 05:03:55 +02:00
# define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
2011-05-12 22:45:14 +02:00
# 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
2013-04-03 13:55:51 +02:00
# ifndef Py_HUGE_VAL
# define Py_HUGE_VAL HUGE_VAL
# endif
# ifdef PYPY_VERSION
2016-06-28 05:03:55 +02:00
# define CYTHON_COMPILING_IN_PYPY 1
# define CYTHON_COMPILING_IN_CPYTHON 0
2013-04-03 13:55:51 +02:00
# else
2016-06-28 05:03:55 +02:00
# define CYTHON_COMPILING_IN_PYPY 0
# define CYTHON_COMPILING_IN_CPYTHON 1
2011-05-12 22:45:14 +02:00
# endif
2016-06-28 05:03:55 +02:00
# if !defined(CYTHON_USE_PYLONG_INTERNALS) && CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x02070000
# define CYTHON_USE_PYLONG_INTERNALS 1
2011-05-12 22:45:14 +02:00
# endif
2016-06-28 05:03:55 +02:00
# if CYTHON_USE_PYLONG_INTERNALS
# include "longintrepr.h"
# undef SHIFT
# undef BASE
# undef MASK
2011-05-12 22:45:14 +02:00
# endif
2016-06-28 05:03:55 +02:00
# if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
# define Py_OptimizeFlag 0
# endif
# define __PYX_BUILD_PY_SSIZE_T "n"
# define CYTHON_FORMAT_SSIZE_T "z"
2011-05-12 22:45:14 +02:00
# if PY_MAJOR_VERSION < 3
# define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
2016-06-28 05:03:55 +02:00
# define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
PyCode_New ( a + k , l , s , f , code , c , n , v , fv , cell , fn , name , fline , lnos )
# define __Pyx_DefaultClassType PyClass_Type
2011-05-12 22:45:14 +02:00
# else
# define __Pyx_BUILTIN_MODULE_NAME "builtins"
2016-06-28 05:03:55 +02:00
# define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
2013-04-03 13:55:51 +02:00
PyCode_New ( a , k , l , s , f , code , c , n , v , fv , cell , fn , name , fline , lnos )
2016-06-28 05:03:55 +02:00
# define __Pyx_DefaultClassType PyType_Type
2013-04-03 13:55:51 +02:00
# endif
2016-06-28 05:03:55 +02:00
# ifndef Py_TPFLAGS_CHECKTYPES
2011-05-12 22:45:14 +02:00
# define Py_TPFLAGS_CHECKTYPES 0
2016-06-28 05:03:55 +02:00
# endif
# ifndef Py_TPFLAGS_HAVE_INDEX
2011-05-12 22:45:14 +02:00
# define Py_TPFLAGS_HAVE_INDEX 0
# endif
2016-06-28 05:03:55 +02:00
# ifndef Py_TPFLAGS_HAVE_NEWBUFFER
2011-05-12 22:45:14 +02:00
# define Py_TPFLAGS_HAVE_NEWBUFFER 0
# endif
2016-06-28 05:03:55 +02:00
# ifndef Py_TPFLAGS_HAVE_FINALIZE
# define Py_TPFLAGS_HAVE_FINALIZE 0
# endif
2013-04-03 13:55:51 +02:00
# if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
# define CYTHON_PEP393_ENABLED 1
2016-06-28 05:03:55 +02:00
# define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\
2013-04-03 13:55:51 +02:00
0 : _PyUnicode_Ready ( ( PyObject * ) ( op ) ) )
# define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u)
# define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
2016-06-28 05:03:55 +02:00
# define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u)
# define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u)
2013-04-03 13:55:51 +02:00
# define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i)
2016-06-28 05:03:55 +02:00
# define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
2013-04-03 13:55:51 +02:00
# else
# define CYTHON_PEP393_ENABLED 0
# define __Pyx_PyUnicode_READY(op) (0)
# define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u)
# define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
2016-06-28 05:03:55 +02:00
# define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE))
# define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u))
# define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
# define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u))
# endif
# if CYTHON_COMPILING_IN_PYPY
# define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b)
# define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b)
# else
# define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b)
# define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
PyNumber_Add ( a , b ) : __Pyx_PyUnicode_Concat ( a , b ) )
# endif
# if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains)
# define PyUnicode_Contains(u, s) PySequence_Contains(u, s)
# endif
2016-10-27 22:49:16 +02:00
# if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check)
# define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type)
# endif
2016-06-28 05:03:55 +02:00
# if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format)
# define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt)
# endif
# if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
# define PyObject_Malloc(s) PyMem_Malloc(s)
# define PyObject_Free(p) PyMem_Free(p)
# define PyObject_Realloc(p) PyMem_Realloc(p)
# endif
# define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
# define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
# if PY_MAJOR_VERSION >= 3
# define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b)
# else
# define __Pyx_PyString_Format(a, b) PyString_Format(a, b)
# endif
# if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
# define PyObject_ASCII(o) PyObject_Repr(o)
2013-04-03 13:55:51 +02:00
# endif
2011-05-12 22:45:14 +02:00
# 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
2016-06-28 05:03:55 +02:00
# if PY_MAJOR_VERSION >= 3
# define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
# define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
# else
# define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
# define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
2011-05-12 22:45:14 +02:00
# 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
2016-06-28 05:03:55 +02:00
# define PyNumber_Int PyNumber_Long
2011-05-12 22:45:14 +02:00
# 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
2016-06-28 05:03:55 +02:00
# if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
# ifndef PyUnicode_InternFromString
# define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
# endif
# endif
# if PY_VERSION_HEX < 0x030200A4
2011-10-14 23:14:25 +02:00
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
2016-06-28 05:03:55 +02:00
# define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
# else
# define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
2011-05-12 22:45:14 +02:00
# endif
2016-06-28 05:03:55 +02:00
# if PY_VERSION_HEX >= 0x030500B1
# define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
# define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
# elif CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
typedef struct {
unaryfunc am_await ;
unaryfunc am_aiter ;
unaryfunc am_anext ;
} __Pyx_PyAsyncMethodsStruct ;
# define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
2011-05-12 22:45:14 +02:00
# else
2016-06-28 05:03:55 +02:00
# define __Pyx_PyType_AsAsync(obj) NULL
# endif
# ifndef CYTHON_RESTRICT
# if defined(__GNUC__)
# define CYTHON_RESTRICT __restrict__
# elif defined(_MSC_VER) && _MSC_VER >= 1400
# define CYTHON_RESTRICT __restrict
# elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
# define CYTHON_RESTRICT restrict
# else
# define CYTHON_RESTRICT
# endif
# endif
# define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
# 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
# if defined(WIN32) || defined(MS_WINDOWS)
# define _USE_MATH_DEFINES
2011-05-12 22:45:14 +02:00
# endif
2016-06-28 05:03:55 +02:00
# include <math.h>
# ifdef NAN
# define __PYX_NAN() ((float) NAN)
2011-05-12 22:45:14 +02:00
# else
2016-06-28 05:03:55 +02:00
static CYTHON_INLINE float __PYX_NAN ( ) {
float value ;
memset ( & value , 0xFF , sizeof ( value ) ) ;
return value ;
}
2011-05-12 22:45:14 +02:00
# endif
2016-10-27 22:49:16 +02:00
# if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
# define __Pyx_truncl trunc
# else
# define __Pyx_truncl truncl
# endif
2011-05-12 22:45:14 +02:00
2013-04-03 13:55:51 +02:00
2016-06-28 05:03:55 +02:00
# define __PYX_ERR(f_index, lineno, Ln_error) \
{ \
__pyx_filename = __pyx_f [ f_index ] ; __pyx_lineno = lineno ; __pyx_clineno = __LINE__ ; goto Ln_error ; \
}
2013-04-03 13:55:51 +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
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
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"
2015-08-06 22:26:40 +02:00
# include <errno.h>
2011-05-12 22:45:14 +02:00
# include "netinet/ip.h"
# include "sys/time.h"
# include "netinet/in.h"
# include "libnfnetlink/linux_nfnetlink.h"
2015-08-06 22:26:40 +02:00
# include "libnfnetlink/libnfnetlink.h"
2011-05-12 22:45:14 +02:00
# include "libnetfilter_queue/linux_nfnetlink_queue.h"
# include "libnetfilter_queue/libnetfilter_queue.h"
# include "sys/socket.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
# 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
2013-04-03 13:55:51 +02:00
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
2011-05-12 22:45:14 +02:00
# define CYTHON_UNUSED __attribute__ ((__unused__))
# else
# define CYTHON_UNUSED
# endif
# endif
2016-06-28 05:03:55 +02:00
# ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON
# define CYTHON_NCP_UNUSED
# else
# define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
# endif
typedef struct { PyObject * * p ; const char * s ; const Py_ssize_t n ; const char * encoding ;
const char is_unicode ; const char is_str ; const char intern ; } __Pyx_StringTabEntry ;
# define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
# define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
# define __PYX_DEFAULT_STRING_ENCODING ""
# define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
# define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
# define __Pyx_uchar_cast(c) ((unsigned char)c)
# define __Pyx_long_cast(x) ((long)x)
# define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\
( sizeof ( type ) < sizeof ( Py_ssize_t ) ) | | \
( sizeof ( type ) > sizeof ( Py_ssize_t ) & & \
likely ( v < ( type ) PY_SSIZE_T_MAX | | \
v = = ( type ) PY_SSIZE_T_MAX ) & & \
( ! is_signed | | likely ( v > ( type ) PY_SSIZE_T_MIN | | \
v = = ( type ) PY_SSIZE_T_MIN ) ) ) | | \
( sizeof ( type ) = = sizeof ( Py_ssize_t ) & & \
( is_signed | | likely ( v < ( type ) PY_SSIZE_T_MAX | | \
v = = ( type ) PY_SSIZE_T_MAX ) ) ) )
# if defined (__cplusplus) && __cplusplus >= 201103L
# include <cstdlib>
# define __Pyx_sst_abs(value) std::abs(value)
# elif SIZEOF_INT >= SIZEOF_SIZE_T
# define __Pyx_sst_abs(value) abs(value)
# elif SIZEOF_LONG >= SIZEOF_SIZE_T
# define __Pyx_sst_abs(value) labs(value)
# elif defined (_MSC_VER) && defined (_M_X64)
# define __Pyx_sst_abs(value) _abs64(value)
# elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
# define __Pyx_sst_abs(value) llabs(value)
# elif defined (__GNUC__)
# define __Pyx_sst_abs(value) __builtin_llabs(value)
# else
# define __Pyx_sst_abs(value) ((value<0) ? -value : value)
# endif
static CYTHON_INLINE char * __Pyx_PyObject_AsString ( PyObject * ) ;
static CYTHON_INLINE char * __Pyx_PyObject_AsStringAndSize ( PyObject * , Py_ssize_t * length ) ;
# define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
# define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
# define __Pyx_PyBytes_FromString PyBytes_FromString
# define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject * __Pyx_PyUnicode_FromString ( const char * ) ;
# if PY_MAJOR_VERSION < 3
# define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString
# define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
# else
# define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString
# define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
# endif
# define __Pyx_PyObject_AsSString(s) ((signed char*) __Pyx_PyObject_AsString(s))
# define __Pyx_PyObject_AsUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s))
# define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s)
# define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s)
# define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s)
# define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s)
# define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
# if PY_MAJOR_VERSION < 3
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen ( const Py_UNICODE * u )
{
const Py_UNICODE * u_end = u ;
while ( * u_end + + ) ;
return ( size_t ) ( u_end - u - 1 ) ;
}
# else
# define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen
# endif
# define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
# define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
# define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode
# define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
# define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
# define __Pyx_PyBool_FromLong(b) ((b) ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False))
2011-05-12 22:45:14 +02:00
static CYTHON_INLINE int __Pyx_PyObject_IsTrue ( PyObject * ) ;
2016-06-28 05:03:55 +02:00
static CYTHON_INLINE PyObject * __Pyx_PyNumber_IntOrLong ( PyObject * x ) ;
2011-05-12 22:45:14 +02:00
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t ( PyObject * ) ;
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t ( size_t ) ;
2013-04-03 13:55:51 +02:00
# if CYTHON_COMPILING_IN_CPYTHON
2011-05-12 22:45:14 +02:00
# define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
2013-04-03 13:55:51 +02:00
# else
# define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
# endif
# define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
2016-06-28 05:03:55 +02:00
# if PY_MAJOR_VERSION >= 3
# define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
# else
# define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
# endif
# define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x))
# if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
static int __Pyx_sys_getdefaultencoding_not_ascii ;
static int __Pyx_init_sys_getdefaultencoding_params ( void ) {
PyObject * sys ;
PyObject * default_encoding = NULL ;
PyObject * ascii_chars_u = NULL ;
PyObject * ascii_chars_b = NULL ;
const char * default_encoding_c ;
sys = PyImport_ImportModule ( " sys " ) ;
if ( ! sys ) goto bad ;
default_encoding = PyObject_CallMethod ( sys , ( char * ) " getdefaultencoding " , NULL ) ;
Py_DECREF ( sys ) ;
if ( ! default_encoding ) goto bad ;
default_encoding_c = PyBytes_AsString ( default_encoding ) ;
if ( ! default_encoding_c ) goto bad ;
if ( strcmp ( default_encoding_c , " ascii " ) = = 0 ) {
__Pyx_sys_getdefaultencoding_not_ascii = 0 ;
} else {
char ascii_chars [ 128 ] ;
int c ;
for ( c = 0 ; c < 128 ; c + + ) {
ascii_chars [ c ] = c ;
}
__Pyx_sys_getdefaultencoding_not_ascii = 1 ;
ascii_chars_u = PyUnicode_DecodeASCII ( ascii_chars , 128 , NULL ) ;
if ( ! ascii_chars_u ) goto bad ;
ascii_chars_b = PyUnicode_AsEncodedString ( ascii_chars_u , default_encoding_c , NULL ) ;
if ( ! ascii_chars_b | | ! PyBytes_Check ( ascii_chars_b ) | | memcmp ( ascii_chars , PyBytes_AS_STRING ( ascii_chars_b ) , 128 ) ! = 0 ) {
PyErr_Format (
PyExc_ValueError ,
" This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii. " ,
default_encoding_c ) ;
goto bad ;
}
Py_DECREF ( ascii_chars_u ) ;
Py_DECREF ( ascii_chars_b ) ;
}
Py_DECREF ( default_encoding ) ;
return 0 ;
bad :
Py_XDECREF ( default_encoding ) ;
Py_XDECREF ( ascii_chars_u ) ;
Py_XDECREF ( ascii_chars_b ) ;
return - 1 ;
}
# endif
# if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
# define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
# else
# define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
# if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
static char * __PYX_DEFAULT_STRING_ENCODING ;
static int __Pyx_init_sys_getdefaultencoding_params ( void ) {
PyObject * sys ;
PyObject * default_encoding = NULL ;
char * default_encoding_c ;
sys = PyImport_ImportModule ( " sys " ) ;
if ( ! sys ) goto bad ;
default_encoding = PyObject_CallMethod ( sys , ( char * ) ( const char * ) " getdefaultencoding " , NULL ) ;
Py_DECREF ( sys ) ;
if ( ! default_encoding ) goto bad ;
default_encoding_c = PyBytes_AsString ( default_encoding ) ;
if ( ! default_encoding_c ) goto bad ;
__PYX_DEFAULT_STRING_ENCODING = ( char * ) malloc ( strlen ( default_encoding_c ) ) ;
if ( ! __PYX_DEFAULT_STRING_ENCODING ) goto bad ;
strcpy ( __PYX_DEFAULT_STRING_ENCODING , default_encoding_c ) ;
Py_DECREF ( default_encoding ) ;
return 0 ;
bad :
Py_XDECREF ( default_encoding ) ;
return - 1 ;
}
# endif
# endif
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* Test for GCC > 2.95 */
# if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
# define likely(x) __builtin_expect(!!(x), 1)
# define unlikely(x) __builtin_expect(!!(x), 0)
# else /* !__GNUC__ or GCC < 2.95 */
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__ */
2016-06-28 05:03:55 +02:00
2011-05-12 22:45:14 +02:00
static PyObject * __pyx_m ;
2016-06-28 05:03:55 +02:00
static PyObject * __pyx_d ;
2011-05-12 22:45:14 +02:00
static PyObject * __pyx_b ;
static PyObject * __pyx_empty_tuple ;
static PyObject * __pyx_empty_bytes ;
2016-06-28 05:03:55 +02:00
static PyObject * __pyx_empty_unicode ;
2011-05-12 22:45:14 +02:00
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
2015-08-06 22:26:40 +02:00
/* "netfilterqueue.pxd":10
*
* # dummy defines from asm - generic / errno . h :
* cdef enum : # < < < < < < < < < < < < < <
2016-06-28 08:48:53 +02:00
* EAGAIN = 11 # Try again
* EWOULDBLOCK = EAGAIN
*/
enum {
/* "netfilterqueue.pxd":12
* cdef enum :
* EAGAIN = 11 # Try again
* EWOULDBLOCK = EAGAIN # < < < < < < < < < < < < < <
2015-08-06 22:26:40 +02:00
* ENOBUFS = 105 # No buffer space available
*
*/
2016-06-28 08:48:53 +02:00
__pyx_e_14netfilterqueue_EAGAIN = 11 ,
__pyx_e_14netfilterqueue_EWOULDBLOCK = __pyx_e_14netfilterqueue_EAGAIN ,
2016-06-28 05:36:00 +02:00
__pyx_e_14netfilterqueue_ENOBUFS = 0x69
2015-08-06 22:26:40 +02:00
} ;
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pxd":28
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 ,
2016-06-28 05:03:55 +02:00
__pyx_e_14netfilterqueue_IPPROTO_PIM = 0x67 ,
__pyx_e_14netfilterqueue_IPPROTO_COMP = 0x6C ,
__pyx_e_14netfilterqueue_IPPROTO_SCTP = 0x84 ,
__pyx_e_14netfilterqueue_IPPROTO_RAW = 0xFF ,
2011-05-12 22:45:14 +02:00
__pyx_e_14netfilterqueue_IPPROTO_MAX
} ;
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pxd":151
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
} ;
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pxd":160
2011-05-12 22:45:14 +02:00
*
* # Dummy defines from linux / netfilter . h
* cdef enum : # < < < < < < < < < < < < < <
* NF_DROP
* NF_ACCEPT
*/
enum {
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pxd":167
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
} ;
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pxd":169
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 ;
2013-04-15 05:30:35 +02:00
u_int32_t mark ;
2011-05-12 22:45:14 +02:00
Py_ssize_t payload_len ;
char * payload ;
struct timeval timestamp ;
} ;
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pxd":208
2013-04-03 13:55:51 +02:00
* cpdef repeat ( self )
2011-10-14 23:14:25 +02:00
*
* 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 ;
} ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":40
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 ) ;
2013-04-15 05:30:35 +02:00
PyObject * ( * get_mark ) ( struct __pyx_obj_14netfilterqueue_Packet * , int __pyx_skip_dispatch ) ;
2011-05-13 17:42:05 +02:00
PyObject * ( * accept ) ( struct __pyx_obj_14netfilterqueue_Packet * , int __pyx_skip_dispatch ) ;
PyObject * ( * drop ) ( struct __pyx_obj_14netfilterqueue_Packet * , int __pyx_skip_dispatch ) ;
2013-04-03 13:55:51 +02:00
PyObject * ( * repeat ) ( 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 ;
2016-06-28 05:03:55 +02:00
/* --- Runtime support code (head) --- */
/* Refnanny.proto */
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 ;
2016-06-28 05:03:55 +02:00
static __Pyx_RefNannyAPIStruct * __Pyx_RefNannyImportAPI ( const char * modname ) ;
2011-10-14 23:14:25 +02:00
# define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
2013-04-03 13:55:51 +02:00
# ifdef WITH_THREAD
2016-06-28 05:03:55 +02:00
# define __Pyx_RefNannySetupContext(name, acquire_gil)\
if ( acquire_gil ) { \
PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure ( ) ; \
__pyx_refnanny = __Pyx_RefNanny - > SetupContext ( ( name ) , __LINE__ , __FILE__ ) ; \
PyGILState_Release ( __pyx_gilstate_save ) ; \
} else { \
__pyx_refnanny = __Pyx_RefNanny - > SetupContext ( ( name ) , __LINE__ , __FILE__ ) ; \
2013-04-03 13:55:51 +02:00
}
# else
2016-06-28 05:03:55 +02:00
# define __Pyx_RefNannySetupContext(name, acquire_gil)\
2013-04-03 13:55:51 +02:00
__pyx_refnanny = __Pyx_RefNanny - > SetupContext ( ( name ) , __LINE__ , __FILE__ )
# endif
2016-06-28 05:03:55 +02:00
# define __Pyx_RefNannyFinishContext()\
2013-04-03 13:55:51 +02:00
__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
2013-04-03 13:55:51 +02:00
# define __Pyx_RefNannySetupContext(name, acquire_gil)
2011-05-12 22:45:14 +02:00
# 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)
2016-06-28 05:03:55 +02:00
# endif
# define __Pyx_XDECREF_SET(r, v) do {\
PyObject * tmp = ( PyObject * ) r ; \
r = v ; __Pyx_XDECREF ( tmp ) ; \
} while ( 0 )
# define __Pyx_DECREF_SET(r, v) do {\
PyObject * tmp = ( PyObject * ) r ; \
r = v ; __Pyx_DECREF ( tmp ) ; \
} while ( 0 )
2013-04-03 13:55:51 +02:00
# define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
# define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* PyObjectGetAttrStr.proto */
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject * __Pyx_PyObject_GetAttrStr ( PyObject * obj , PyObject * attr_name ) {
PyTypeObject * tp = Py_TYPE ( obj ) ;
if ( likely ( tp - > tp_getattro ) )
return tp - > tp_getattro ( obj , attr_name ) ;
# if PY_MAJOR_VERSION < 3
if ( likely ( tp - > tp_getattr ) )
return tp - > tp_getattr ( obj , PyString_AS_STRING ( attr_name ) ) ;
# endif
return PyObject_GetAttr ( obj , attr_name ) ;
}
# else
# define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
# endif
/* GetBuiltinName.proto */
static PyObject * __Pyx_GetBuiltinName ( PyObject * name ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* ForceInitThreads.proto */
2011-10-14 23:14:25 +02:00
# ifndef __PYX_FORCE_INIT_THREADS
2013-04-03 13:55:51 +02:00
# define __PYX_FORCE_INIT_THREADS 0
2011-10-14 23:14:25 +02:00
# endif
2016-06-28 05:03:55 +02:00
/* PyObjectCall.proto */
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject * __Pyx_PyObject_Call ( PyObject * func , PyObject * arg , PyObject * kw ) ;
2011-05-12 22:45:14 +02:00
# else
2016-06-28 05:03:55 +02:00
# define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
2011-05-12 22:45:14 +02:00
# endif
2016-06-28 05:03:55 +02:00
/* PyObjectCallMethO.proto */
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject * __Pyx_PyObject_CallMethO ( PyObject * func , PyObject * arg ) ;
# endif
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* PyObjectCallOneArg.proto */
static CYTHON_INLINE PyObject * __Pyx_PyObject_CallOneArg ( PyObject * func , PyObject * arg ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* PyThreadStateGet.proto */
# if CYTHON_COMPILING_IN_CPYTHON
# define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate;
# define __Pyx_PyThreadState_assign __pyx_tstate = PyThreadState_GET();
# else
# define __Pyx_PyThreadState_declare
# define __Pyx_PyThreadState_assign
# endif
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* PyErrFetchRestore.proto */
# if CYTHON_COMPILING_IN_CPYTHON
# define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
# define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
# define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
# define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx_ErrRestoreInState ( PyThreadState * tstate , PyObject * type , PyObject * value , PyObject * tb ) ;
static CYTHON_INLINE void __Pyx_ErrFetchInState ( PyThreadState * tstate , PyObject * * type , PyObject * * value , PyObject * * tb ) ;
# else
# define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb)
# define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb)
# define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb)
# define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb)
# endif
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* WriteUnraisableException.proto */
static void __Pyx_WriteUnraisable ( const char * name , int clineno ,
int lineno , const char * filename ,
int full_traceback , int nogil ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* RaiseArgTupleInvalid.proto */
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 ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* KeywordStringCheck.proto */
static CYTHON_INLINE int __Pyx_CheckKeywordStrings ( PyObject * kwdict , const char * function_name , int kw_allowed ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* GetModuleGlobalName.proto */
static CYTHON_INLINE PyObject * __Pyx_GetModuleGlobalName ( PyObject * name ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* RaiseException.proto */
static void __Pyx_Raise ( PyObject * type , PyObject * value , PyObject * tb , PyObject * cause ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* PyObjectCallNoArg.proto */
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject * __Pyx_PyObject_CallNoArg ( PyObject * func ) ;
# else
# define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
# endif
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* ArgTypeTest.proto */
static CYTHON_INLINE int __Pyx_ArgTypeTest ( PyObject * obj , PyTypeObject * type , int none_allowed ,
const char * name , int exact ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* dict_getitem_default.proto */
static PyObject * __Pyx_PyDict_GetItemDefault ( PyObject * d , PyObject * key , PyObject * default_value ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* RaiseDoubleKeywords.proto */
static void __Pyx_RaiseDoubleKeywordsError ( const char * func_name , PyObject * kw_name ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* ParseKeywords.proto */
static int __Pyx_ParseOptionalKeywords ( PyObject * kwds , PyObject * * argnames [ ] , \
PyObject * kwds2 , PyObject * values [ ] , Py_ssize_t num_pos_args , \
const char * function_name ) ;
2011-10-14 23:14:25 +02:00
2016-06-28 08:48:53 +02:00
/* SaveResetException.proto */
# if CYTHON_COMPILING_IN_CPYTHON
# define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSave ( PyThreadState * tstate , PyObject * * type , PyObject * * value , PyObject * * tb ) ;
# define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionReset ( PyThreadState * tstate , PyObject * type , PyObject * value , PyObject * tb ) ;
# else
# define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb)
# define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb)
# endif
/* PyErrExceptionMatches.proto */
# if CYTHON_COMPILING_IN_CPYTHON
# define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState ( PyThreadState * tstate , PyObject * err ) ;
# else
# define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err)
# endif
/* GetException.proto */
# if CYTHON_COMPILING_IN_CPYTHON
# define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb)
static int __Pyx__GetException ( PyThreadState * tstate , PyObject * * type , PyObject * * value , PyObject * * tb ) ;
# else
static int __Pyx_GetException ( PyObject * * type , PyObject * * value , PyObject * * tb ) ;
# endif
/* GetItemInt.proto */
# define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
( __Pyx_fits_Py_ssize_t ( i , type , is_signed ) ? \
__Pyx_GetItemInt_Fast ( o , ( Py_ssize_t ) i , is_list , wraparound , boundscheck ) : \
( is_list ? ( PyErr_SetString ( PyExc_IndexError , " list index out of range " ) , ( PyObject * ) NULL ) : \
__Pyx_GetItemInt_Generic ( o , to_py_func ( i ) ) ) )
# define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
( __Pyx_fits_Py_ssize_t ( i , type , is_signed ) ? \
__Pyx_GetItemInt_List_Fast ( o , ( Py_ssize_t ) i , wraparound , boundscheck ) : \
( PyErr_SetString ( PyExc_IndexError , " list index out of range " ) , ( PyObject * ) NULL ) )
static CYTHON_INLINE PyObject * __Pyx_GetItemInt_List_Fast ( PyObject * o , Py_ssize_t i ,
int wraparound , int boundscheck ) ;
# define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
( __Pyx_fits_Py_ssize_t ( i , type , is_signed ) ? \
__Pyx_GetItemInt_Tuple_Fast ( o , ( Py_ssize_t ) i , wraparound , boundscheck ) : \
( PyErr_SetString ( PyExc_IndexError , " tuple index out of range " ) , ( PyObject * ) NULL ) )
static CYTHON_INLINE PyObject * __Pyx_GetItemInt_Tuple_Fast ( PyObject * o , Py_ssize_t i ,
int wraparound , int boundscheck ) ;
static CYTHON_INLINE PyObject * __Pyx_GetItemInt_Generic ( PyObject * o , PyObject * j ) ;
static CYTHON_INLINE PyObject * __Pyx_GetItemInt_Fast ( PyObject * o , Py_ssize_t i ,
int is_list , int wraparound , int boundscheck ) ;
2016-06-28 05:03:55 +02:00
/* SetVTable.proto */
static int __Pyx_SetVtable ( PyObject * dict , void * vtable ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 08:48:53 +02:00
/* Import.proto */
static PyObject * __Pyx_Import ( PyObject * name , PyObject * from_list , int level ) ;
2016-06-28 05:03:55 +02:00
/* CodeObjectCache.proto */
2013-04-03 13:55:51 +02:00
typedef struct {
PyCodeObject * code_object ;
2016-06-28 05:03:55 +02:00
int code_line ;
2013-04-03 13:55:51 +02:00
} __Pyx_CodeObjectCacheEntry ;
struct __Pyx_CodeObjectCache {
int count ;
int max_count ;
__Pyx_CodeObjectCacheEntry * entries ;
} ;
static struct __Pyx_CodeObjectCache __pyx_code_cache = { 0 , 0 , NULL } ;
static int __pyx_bisect_code_objects ( __Pyx_CodeObjectCacheEntry * entries , int count , int code_line ) ;
static PyCodeObject * __pyx_find_code_object ( int code_line ) ;
static void __pyx_insert_code_object ( int code_line , PyCodeObject * code_object ) ;
2016-06-28 05:03:55 +02:00
/* AddTraceback.proto */
2013-04-03 13:55:51 +02:00
static void __Pyx_AddTraceback ( const char * funcname , int c_line ,
2016-06-28 05:03:55 +02:00
int py_line , const char * filename ) ;
/* CIntToPy.proto */
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_u_int8_t ( u_int8_t value ) ;
/* CIntToPy.proto */
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_u_int32_t ( u_int32_t value ) ;
/* CIntToPy.proto */
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_u_int16_t ( u_int16_t value ) ;
/* CIntToPy.proto */
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_int ( int value ) ;
2016-06-28 05:36:00 +02:00
/* CIntToPy.proto */
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_unsigned_int ( unsigned int value ) ;
2016-06-28 08:48:53 +02:00
/* CIntToPy.proto */
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_long ( long value ) ;
2016-06-28 05:03:55 +02:00
/* CIntFromPy.proto */
static CYTHON_INLINE u_int32_t __Pyx_PyInt_As_u_int32_t ( PyObject * ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyInt_As_int ( PyObject * ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* CIntFromPy.proto */
static CYTHON_INLINE u_int8_t __Pyx_PyInt_As_u_int8_t ( PyObject * ) ;
/* CIntFromPy.proto */
static CYTHON_INLINE u_int16_t __Pyx_PyInt_As_u_int16_t ( PyObject * ) ;
/* CIntFromPy.proto */
static CYTHON_INLINE long __Pyx_PyInt_As_long ( PyObject * ) ;
/* CheckBinaryVersion.proto */
static int __Pyx_check_binary_version ( void ) ;
/* InitStrings.proto */
static int __Pyx_InitStrings ( __Pyx_StringTabEntry * t ) ;
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 ) ; /* proto*/
static void __pyx_f_14netfilterqueue_6Packet_verdict ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , u_int8_t __pyx_v_verdict ) ; /* proto*/
static Py_ssize_t __pyx_f_14netfilterqueue_6Packet_get_payload_len ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , int __pyx_skip_dispatch ) ; /* proto*/
static double __pyx_f_14netfilterqueue_6Packet_get_timestamp ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , int __pyx_skip_dispatch ) ; /* 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 ) ; /* proto*/
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 ) ; /* proto*/
static PyObject * __pyx_f_14netfilterqueue_6Packet_get_mark ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , int __pyx_skip_dispatch ) ; /* proto*/
static PyObject * __pyx_f_14netfilterqueue_6Packet_accept ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , int __pyx_skip_dispatch ) ; /* proto*/
static PyObject * __pyx_f_14netfilterqueue_6Packet_drop ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , int __pyx_skip_dispatch ) ; /* proto*/
static PyObject * __pyx_f_14netfilterqueue_6Packet_repeat ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , int __pyx_skip_dispatch ) ; /* proto*/
2013-04-03 13:55:51 +02:00
2015-05-16 09:25:44 +02:00
/* Module declarations from 'cpython.version' */
/* Module declarations from 'cpython' */
2013-04-03 13:55:51 +02:00
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 ;
2016-06-28 05:03:55 +02:00
static const char __pyx_k_AH [ ] = " AH " ;
static const char __pyx_k_FC [ ] = " FC " ;
static const char __pyx_k_IL [ ] = " IL " ;
static const char __pyx_k_IP [ ] = " IP " ;
static const char __pyx_k_SM [ ] = " SM " ;
static const char __pyx_k_ST [ ] = " ST " ;
static const char __pyx_k_TP [ ] = " TP++ " ;
static const char __pyx_k_af [ ] = " af " ;
static const char __pyx_k_3PC [ ] = " 3PC " ;
static const char __pyx_k_A_N [ ] = " A/N " ;
static const char __pyx_k_BNA [ ] = " BNA " ;
static const char __pyx_k_CBT [ ] = " CBT " ;
static const char __pyx_k_DDP [ ] = " DDP " ;
static const char __pyx_k_DDX [ ] = " DDX " ;
static const char __pyx_k_DGP [ ] = " DGP " ;
static const char __pyx_k_DSR [ ] = " DSR " ;
static const char __pyx_k_EGP [ ] = " EGP " ;
static const char __pyx_k_ESP [ ] = " ESP " ;
static const char __pyx_k_GGP [ ] = " GGP " ;
static const char __pyx_k_GRE [ ] = " GRE " ;
static const char __pyx_k_HIP [ ] = " HIP " ;
static const char __pyx_k_HMP [ ] = " HMP " ;
static const char __pyx_k_IGP [ ] = " IGP " ;
static const char __pyx_k_MTP [ ] = " MTP " ;
static const char __pyx_k_MUX [ ] = " MUX " ;
static const char __pyx_k_PGM [ ] = " PGM " ;
static const char __pyx_k_PIM [ ] = " PIM " ;
static const char __pyx_k_PRM [ ] = " PRM " ;
static const char __pyx_k_PTP [ ] = " PTP " ;
static const char __pyx_k_PUP [ ] = " PUP " ;
static const char __pyx_k_PVP [ ] = " PVP " ;
static const char __pyx_k_QNX [ ] = " QNX " ;
static const char __pyx_k_RDP [ ] = " RDP " ;
static const char __pyx_k_RVD [ ] = " RVD " ;
static const char __pyx_k_SMP [ ] = " SMP " ;
static const char __pyx_k_SNP [ ] = " SNP " ;
static const char __pyx_k_SPS [ ] = " SPS " ;
static const char __pyx_k_SRP [ ] = " SRP " ;
static const char __pyx_k_STP [ ] = " STP " ;
static const char __pyx_k_TCF [ ] = " TCF " ;
static const char __pyx_k_TCP [ ] = " TCP " ;
static const char __pyx_k_TTP [ ] = " TTP " ;
static const char __pyx_k_UDP [ ] = " UDP " ;
static const char __pyx_k_UTI [ ] = " UTI " ;
static const char __pyx_k_WSN [ ] = " WSN " ;
static const char __pyx_k_XTP [ ] = " XTP " ;
static const char __pyx_k_get [ ] = " get " ;
static const char __pyx_k_ARIS [ ] = " ARIS " ;
static const char __pyx_k_CFTP [ ] = " CFTP " ;
static const char __pyx_k_CPHB [ ] = " CPHB " ;
static const char __pyx_k_CPNX [ ] = " CPNX " ;
static const char __pyx_k_CRTP [ ] = " CRTP " ;
static const char __pyx_k_DCCP [ ] = " DCCP " ;
static const char __pyx_k_FIRE [ ] = " FIRE " ;
static const char __pyx_k_GMTP [ ] = " GMTP " ;
static const char __pyx_k_IATP [ ] = " IATP " ;
static const char __pyx_k_ICMP [ ] = " ICMP " ;
static const char __pyx_k_IDPR [ ] = " IDPR " ;
static const char __pyx_k_IDRP [ ] = " IDRP " ;
static const char __pyx_k_IFMP [ ] = " IFMP " ;
static const char __pyx_k_IGMP [ ] = " IGMP " ;
static const char __pyx_k_IPCV [ ] = " IPCV " ;
static const char __pyx_k_IPIP [ ] = " IPIP " ;
static const char __pyx_k_IPLT [ ] = " IPLT " ;
static const char __pyx_k_IPPC [ ] = " IPPC " ;
static const char __pyx_k_IPv6 [ ] = " IPv6 " ;
static const char __pyx_k_IRTP [ ] = " IRTP " ;
static const char __pyx_k_ISIS [ ] = " ISIS " ;
static const char __pyx_k_L2TP [ ] = " L2TP " ;
static const char __pyx_k_LARP [ ] = " LARP " ;
static const char __pyx_k_MICP [ ] = " MICP " ;
static const char __pyx_k_NARP [ ] = " NARP " ;
static const char __pyx_k_PIPE [ ] = " PIPE " ;
static const char __pyx_k_PNNI [ ] = " PNNI " ;
static const char __pyx_k_RSVP [ ] = " RSVP " ;
static const char __pyx_k_SCPS [ ] = " SCPS " ;
static const char __pyx_k_SCTP [ ] = " SCTP " ;
static const char __pyx_k_SDRP [ ] = " SDRP " ;
static const char __pyx_k_SKIP [ ] = " SKIP " ;
static const char __pyx_k_TLSP [ ] = " TLSP " ;
static const char __pyx_k_VISA [ ] = " VISA " ;
static const char __pyx_k_VMTP [ ] = " VMTP " ;
static const char __pyx_k_VRRP [ ] = " VRRP " ;
static const char __pyx_k_XNET [ ] = " XNET " ;
2016-06-28 08:48:53 +02:00
static const char __pyx_k_args [ ] = " args " ;
2016-06-28 05:03:55 +02:00
static const char __pyx_k_drop [ ] = " drop " ;
static const char __pyx_k_main [ ] = " __main__ " ;
static const char __pyx_k_mode [ ] = " mode " ;
2016-06-28 08:48:53 +02:00
static const char __pyx_k_recv [ ] = " recv " ;
2016-06-28 05:03:55 +02:00
static const char __pyx_k_test [ ] = " __test__ " ;
static const char __pyx_k_ARGUS [ ] = " ARGUS " ;
static const char __pyx_k_AX_25 [ ] = " AX.25 " ;
static const char __pyx_k_CHAOS [ ] = " CHAOS " ;
static const char __pyx_k_CRUDP [ ] = " CRUDP " ;
static const char __pyx_k_EIGRP [ ] = " EIGRP " ;
static const char __pyx_k_EMCON [ ] = " EMCON " ;
static const char __pyx_k_ENCAP [ ] = " ENCAP " ;
static const char __pyx_k_SWIPE [ ] = " SWIPE " ;
static const char __pyx_k_Shim6 [ ] = " Shim6 " ;
static const char __pyx_k_VINES [ ] = " VINES " ;
2016-06-28 05:46:50 +02:00
static const char __pyx_k_block [ ] = " block " ;
2016-06-28 08:48:53 +02:00
static const char __pyx_k_error [ ] = " error " ;
2016-06-28 05:03:55 +02:00
static const char __pyx_k_manet [ ] = " manet " ;
static const char __pyx_k_range [ ] = " range " ;
static const char __pyx_k_HOPOPT [ ] = " HOPOPT " ;
static const char __pyx_k_IPComp [ ] = " IPComp " ;
static const char __pyx_k_ISO_IP [ ] = " ISO-IP " ;
static const char __pyx_k_I_NLSP [ ] = " I-NLSP " ;
static const char __pyx_k_LEAF_1 [ ] = " LEAF-1 " ;
static const char __pyx_k_LEAF_2 [ ] = " LEAF-2 " ;
static const char __pyx_k_MOBILE [ ] = " MOBILE " ;
static const char __pyx_k_NETBLT [ ] = " NETBLT " ;
static const char __pyx_k_NVP_II [ ] = " NVP-II " ;
static const char __pyx_k_SCC_SP [ ] = " SCC-SP " ;
static const char __pyx_k_SUN_ND [ ] = " SUN-ND " ;
static const char __pyx_k_WB_MON [ ] = " WB-MON " ;
static const char __pyx_k_accept [ ] = " accept " ;
2016-06-28 08:48:53 +02:00
static const char __pyx_k_get_fd [ ] = " get_fd " ;
static const char __pyx_k_import [ ] = " __import__ " ;
2016-06-28 05:03:55 +02:00
static const char __pyx_k_repeat [ ] = " repeat " ;
2016-06-28 08:48:53 +02:00
static const char __pyx_k_socket [ ] = " socket " ;
2016-06-28 05:03:55 +02:00
static const char __pyx_k_ETHERIP [ ] = " ETHERIP " ;
static const char __pyx_k_ISO_TP4 [ ] = " ISO-TP4 " ;
static const char __pyx_k_MFE_NSP [ ] = " MFE-NSP " ;
static const char __pyx_k_OSError [ ] = " OSError " ;
static const char __pyx_k_OSPFIGP [ ] = " OSPFIGP " ;
static const char __pyx_k_SAT_MON [ ] = " SAT-MON " ;
static const char __pyx_k_TRUNK_1 [ ] = " TRUNK-1 " ;
static const char __pyx_k_TRUNK_2 [ ] = " TRUNK-2 " ;
static const char __pyx_k_UDPLite [ ] = " UDPLite " ;
static const char __pyx_k_VERSION [ ] = " VERSION " ;
static const char __pyx_k_XNS_IDP [ ] = " XNS-IDP " ;
static const char __pyx_k_max_len [ ] = " max_len " ;
static const char __pyx_k_DCN_MEAS [ ] = " DCN-MEAS " ;
static const char __pyx_k_Mobility [ ] = " Mobility " ;
static const char __pyx_k_Reserved [ ] = " Reserved " ;
static const char __pyx_k_SSCOPMCE [ ] = " SSCOPMCE " ;
static const char __pyx_k_WB_EXPAK [ ] = " WB-EXPAK " ;
static const char __pyx_k_get_mark [ ] = " get_mark " ;
static const char __pyx_k_set_mark [ ] = " set_mark " ;
2016-06-28 05:36:00 +02:00
static const char __pyx_k_sock_len [ ] = " sock_len " ;
2016-06-28 05:03:55 +02:00
static const char __pyx_k_COPY_META [ ] = " COPY_META " ;
static const char __pyx_k_COPY_NONE [ ] = " COPY_NONE " ;
static const char __pyx_k_IDPR_CMTP [ ] = " IDPR-CMTP " ;
static const char __pyx_k_IPX_in_IP [ ] = " IPX-in-IP " ;
static const char __pyx_k_IPv6_Frag [ ] = " IPv6-Frag " ;
static const char __pyx_k_IPv6_ICMP [ ] = " IPv6-ICMP " ;
static const char __pyx_k_IPv6_Opts [ ] = " IPv6-Opts " ;
static const char __pyx_k_KRYPTOLAN [ ] = " KRYPTOLAN " ;
static const char __pyx_k_MERIT_INP [ ] = " MERIT-INP " ;
static const char __pyx_k_PROTOCOLS [ ] = " PROTOCOLS " ;
static const char __pyx_k_SAT_EXPAK [ ] = " SAT-EXPAK " ;
static const char __pyx_k_queue_num [ ] = " queue_num " ;
static const char __pyx_k_BR_SAT_MON [ ] = " BR-SAT-MON " ;
static const char __pyx_k_IPv6_NoNxt [ ] = " IPv6-NoNxt " ;
static const char __pyx_k_IPv6_Route [ ] = " IPv6-Route " ;
static const char __pyx_k_MPLS_in_IP [ ] = " MPLS-in-IP " ;
static const char __pyx_k_NSFNET_IGP [ ] = " NSFNET-IGP " ;
static const char __pyx_k_Sprite_RPC [ ] = " Sprite-RPC " ;
static const char __pyx_k_pyx_vtable [ ] = " __pyx_vtable__ " ;
static const char __pyx_k_BBN_RCC_MON [ ] = " BBN-RCC-MON " ;
static const char __pyx_k_COPY_PACKET [ ] = " COPY_PACKET " ;
static const char __pyx_k_Compaq_Peer [ ] = " Compaq-Peer " ;
static const char __pyx_k_SECURE_VMTP [ ] = " SECURE-VMTP " ;
static const char __pyx_k_set_payload [ ] = " set_payload " ;
static const char __pyx_k_get_timestamp [ ] = " get_timestamp " ;
static const char __pyx_k_user_callback [ ] = " user_callback " ;
static const char __pyx_k_RuntimeWarning [ ] = " RuntimeWarning " ;
static const char __pyx_k_RSVP_E2E_IGNORE [ ] = " RSVP-E2E-IGNORE " ;
static const char __pyx_k_get_payload_len [ ] = " get_payload_len " ;
static const char __pyx_k_Unknown_protocol [ ] = " Unknown protocol " ;
static const char __pyx_k_s_packet_s_bytes [ ] = " %s packet, %s bytes " ;
static const char __pyx_k_any_local_network [ ] = " any local network " ;
static const char __pyx_k_any_0_hop_protocol [ ] = " any 0-hop protocol " ;
static const char __pyx_k_Failed_to_open_NFQueue [ ] = " Failed to open NFQueue. " ;
static const char __pyx_k_Failed_to_create_queue_s [ ] = " Failed to create queue %s. " ;
static const char __pyx_k_any_host_internal_protocol [ ] = " any host internal protocol " ;
static const char __pyx_k_any_distributed_file_system [ ] = " any distributed file system " ;
static const char __pyx_k_any_private_encryption_scheme [ ] = " any private encryption scheme " ;
static const char __pyx_k_Failed_to_set_packet_copy_mode [ ] = " Failed to set packet copy mode. " ;
2016-06-28 05:10:26 +02:00
static const char __pyx_k_Bind_to_a_Linux_netfilter_queue [ ] = " \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 " ;
2016-06-28 05:03:55 +02:00
static const char __pyx_k_Failed_to_bind_family_s_Are_you [ ] = " Failed to bind family %s. Are you root? " ;
static const char __pyx_k_Failed_to_get_payload_of_packet [ ] = " Failed to get payload of packet. " ;
2016-06-28 05:36:00 +02:00
static const char __pyx_k_Socket_rcvbuf_limit_is_now_d_req [ ] = " Socket rcvbuf limit is now %d, requested %d. " ;
2016-06-28 05:03:55 +02:00
static const char __pyx_k_Verdict_already_given_for_this_p [ ] = " Verdict already given for this packet. " ;
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_kp_s_AX_25 ;
static PyObject * __pyx_kp_s_A_N ;
static PyObject * __pyx_kp_s_BBN_RCC_MON ;
static PyObject * __pyx_n_s_BNA ;
static PyObject * __pyx_kp_s_BR_SAT_MON ;
static PyObject * __pyx_n_s_CBT ;
static PyObject * __pyx_n_s_CFTP ;
static PyObject * __pyx_n_s_CHAOS ;
static PyObject * __pyx_n_s_COPY_META ;
static PyObject * __pyx_n_s_COPY_NONE ;
static PyObject * __pyx_n_s_COPY_PACKET ;
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_kp_s_Compaq_Peer ;
static PyObject * __pyx_n_s_DCCP ;
static PyObject * __pyx_kp_s_DCN_MEAS ;
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_kp_s_Failed_to_bind_family_s_Are_you ;
static PyObject * __pyx_kp_s_Failed_to_create_queue_s ;
static PyObject * __pyx_kp_s_Failed_to_get_payload_of_packet ;
static PyObject * __pyx_kp_s_Failed_to_open_NFQueue ;
static PyObject * __pyx_kp_s_Failed_to_set_packet_copy_mode ;
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_kp_s_IDPR_CMTP ;
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_kp_s_IPX_in_IP ;
static PyObject * __pyx_n_s_IPv6 ;
static PyObject * __pyx_kp_s_IPv6_Frag ;
static PyObject * __pyx_kp_s_IPv6_ICMP ;
static PyObject * __pyx_kp_s_IPv6_NoNxt ;
static PyObject * __pyx_kp_s_IPv6_Opts ;
static PyObject * __pyx_kp_s_IPv6_Route ;
static PyObject * __pyx_n_s_IRTP ;
static PyObject * __pyx_n_s_ISIS ;
static PyObject * __pyx_kp_s_ISO_IP ;
static PyObject * __pyx_kp_s_ISO_TP4 ;
static PyObject * __pyx_kp_s_I_NLSP ;
static PyObject * __pyx_n_s_KRYPTOLAN ;
static PyObject * __pyx_n_s_L2TP ;
static PyObject * __pyx_n_s_LARP ;
static PyObject * __pyx_kp_s_LEAF_1 ;
static PyObject * __pyx_kp_s_LEAF_2 ;
static PyObject * __pyx_kp_s_MERIT_INP ;
static PyObject * __pyx_kp_s_MFE_NSP ;
static PyObject * __pyx_n_s_MICP ;
static PyObject * __pyx_n_s_MOBILE ;
static PyObject * __pyx_kp_s_MPLS_in_IP ;
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 ;
static PyObject * __pyx_kp_s_NSFNET_IGP ;
static PyObject * __pyx_kp_s_NVP_II ;
static PyObject * __pyx_n_s_OSError ;
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_kp_s_RSVP_E2E_IGNORE ;
static PyObject * __pyx_n_s_RVD ;
static PyObject * __pyx_n_s_Reserved ;
static PyObject * __pyx_n_s_RuntimeWarning ;
static PyObject * __pyx_kp_s_SAT_EXPAK ;
static PyObject * __pyx_kp_s_SAT_MON ;
static PyObject * __pyx_kp_s_SCC_SP ;
static PyObject * __pyx_n_s_SCPS ;
static PyObject * __pyx_n_s_SCTP ;
static PyObject * __pyx_n_s_SDRP ;
static PyObject * __pyx_kp_s_SECURE_VMTP ;
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_kp_s_SUN_ND ;
static PyObject * __pyx_n_s_SWIPE ;
static PyObject * __pyx_n_s_Shim6 ;
2015-08-06 22:26:40 +02:00
static PyObject * __pyx_kp_s_Socket_rcvbuf_limit_is_now_d_req ;
2016-06-28 05:03:55 +02:00
static PyObject * __pyx_kp_s_Sprite_RPC ;
static PyObject * __pyx_n_s_TCF ;
static PyObject * __pyx_n_s_TCP ;
static PyObject * __pyx_n_s_TLSP ;
static PyObject * __pyx_kp_s_TP ;
static PyObject * __pyx_kp_s_TRUNK_1 ;
static PyObject * __pyx_kp_s_TRUNK_2 ;
static PyObject * __pyx_n_s_TTP ;
static PyObject * __pyx_n_s_UDP ;
static PyObject * __pyx_n_s_UDPLite ;
static PyObject * __pyx_n_s_UTI ;
static PyObject * __pyx_kp_s_Unknown_protocol ;
static PyObject * __pyx_n_s_VERSION ;
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_kp_s_Verdict_already_given_for_this_p ;
static PyObject * __pyx_kp_s_WB_EXPAK ;
static PyObject * __pyx_kp_s_WB_MON ;
static PyObject * __pyx_n_s_WSN ;
static PyObject * __pyx_n_s_XNET ;
static PyObject * __pyx_kp_s_XNS_IDP ;
static PyObject * __pyx_n_s_XTP ;
static PyObject * __pyx_n_s_accept ;
static PyObject * __pyx_n_s_af ;
static PyObject * __pyx_kp_s_any_0_hop_protocol ;
static PyObject * __pyx_kp_s_any_distributed_file_system ;
static PyObject * __pyx_kp_s_any_host_internal_protocol ;
static PyObject * __pyx_kp_s_any_local_network ;
static PyObject * __pyx_kp_s_any_private_encryption_scheme ;
2016-06-28 08:48:53 +02:00
static PyObject * __pyx_n_s_args ;
2015-11-17 23:07:50 +01:00
static PyObject * __pyx_n_s_block ;
2016-06-28 05:03:55 +02:00
static PyObject * __pyx_n_s_drop ;
2016-06-28 08:48:53 +02:00
static PyObject * __pyx_n_s_error ;
2016-06-28 05:03:55 +02:00
static PyObject * __pyx_n_s_get ;
2016-06-28 08:48:53 +02:00
static PyObject * __pyx_n_s_get_fd ;
2016-06-28 05:03:55 +02:00
static PyObject * __pyx_n_s_get_mark ;
static PyObject * __pyx_n_s_get_payload_len ;
static PyObject * __pyx_n_s_get_timestamp ;
2016-06-28 08:48:53 +02:00
static PyObject * __pyx_n_s_import ;
2016-06-28 05:03:55 +02:00
static PyObject * __pyx_n_s_main ;
static PyObject * __pyx_n_s_manet ;
static PyObject * __pyx_n_s_max_len ;
static PyObject * __pyx_n_s_mode ;
static PyObject * __pyx_n_s_pyx_vtable ;
static PyObject * __pyx_n_s_queue_num ;
static PyObject * __pyx_n_s_range ;
2016-06-28 08:48:53 +02:00
static PyObject * __pyx_n_s_recv ;
2016-06-28 05:03:55 +02:00
static PyObject * __pyx_n_s_repeat ;
static PyObject * __pyx_kp_s_s_packet_s_bytes ;
static PyObject * __pyx_n_s_set_mark ;
static PyObject * __pyx_n_s_set_payload ;
2015-08-06 22:26:40 +02:00
static PyObject * __pyx_n_s_sock_len ;
2016-06-28 08:48:53 +02:00
static PyObject * __pyx_n_s_socket ;
2016-06-28 05:03:55 +02:00
static PyObject * __pyx_n_s_test ;
static PyObject * __pyx_n_s_user_callback ;
2013-04-03 13:55:51 +02:00
static int __pyx_pf_14netfilterqueue_6Packet___cinit__ ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_14netfilterqueue_6Packet_2__str__ ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_14netfilterqueue_6Packet_4get_payload ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_14netfilterqueue_6Packet_6get_payload_len ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_14netfilterqueue_6Packet_8get_timestamp ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_14netfilterqueue_6Packet_10set_payload ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , PyObject * __pyx_v_payload ) ; /* proto */
static PyObject * __pyx_pf_14netfilterqueue_6Packet_12set_mark ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , u_int32_t __pyx_v_mark ) ; /* proto */
2013-04-15 05:30:35 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_14get_mark ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_14netfilterqueue_6Packet_16accept ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_14netfilterqueue_6Packet_18drop ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_14netfilterqueue_6Packet_20repeat ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) ; /* proto */
2013-04-03 13:55:51 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_2id___get__ ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_14netfilterqueue_6Packet_11hw_protocol___get__ ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_14netfilterqueue_6Packet_4hook___get__ ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) ; /* proto */
2013-04-15 05:30:35 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_4mark___get__ ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) ; /* proto */
2013-04-03 13:55:51 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_7payload___get__ ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) ; /* proto */
static int __pyx_pf_14netfilterqueue_14NetfilterQueue___cinit__ ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * __pyx_v_self , CYTHON_UNUSED PyObject * __pyx_v_args , PyObject * __pyx_v_kwargs ) ; /* proto */
static void __pyx_pf_14netfilterqueue_14NetfilterQueue_2__dealloc__ ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * __pyx_v_self ) ; /* proto */
2016-06-28 05:36:00 +02:00
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_4bind ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * __pyx_v_self , int __pyx_v_queue_num , PyObject * __pyx_v_user_callback , u_int32_t __pyx_v_max_len , u_int8_t __pyx_v_mode , u_int32_t __pyx_v_range , u_int32_t __pyx_v_sock_len ) ; /* proto */
2013-04-03 13:55:51 +02:00
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_6unbind ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * __pyx_v_self ) ; /* proto */
2015-11-17 23:07:50 +01:00
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_8get_fd ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * __pyx_v_self ) ; /* proto */
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_10run ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * __pyx_v_self , PyObject * __pyx_v_block ) ; /* proto */
2016-06-28 08:48:53 +02:00
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_12run_socket ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * __pyx_v_self , PyObject * __pyx_v_s ) ; /* proto */
2016-06-28 05:03:55 +02:00
static PyObject * __pyx_tp_new_14netfilterqueue_Packet ( PyTypeObject * t , PyObject * a , PyObject * k ) ; /*proto*/
static PyObject * __pyx_tp_new_14netfilterqueue_NetfilterQueue ( PyTypeObject * t , PyObject * a , PyObject * k ) ; /*proto*/
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 ;
2016-06-28 08:48:53 +02:00
static PyObject * __pyx_int_4096 ;
2015-08-06 22:26:40 +02:00
static u_int8_t __pyx_k__4 ;
2016-06-28 05:03:55 +02:00
static PyObject * __pyx_tuple_ ;
static PyObject * __pyx_tuple__2 ;
static PyObject * __pyx_tuple__3 ;
2015-08-06 22:26:40 +02:00
static PyObject * __pyx_tuple__5 ;
2016-06-28 05:03:55 +02:00
static PyObject * __pyx_tuple__6 ;
2016-06-28 08:48:53 +02:00
static PyObject * __pyx_tuple__7 ;
2011-05-13 17:42:05 +02:00
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pyx":30
2015-05-16 09:25:44 +02:00
* cimport cpython . version
2011-05-12 22:45:14 +02:00
*
* 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
*/
2013-04-03 13:55:51 +02:00
static int __pyx_f_14netfilterqueue_global_callback ( struct nfq_q_handle * __pyx_v_qh , CYTHON_UNUSED struct nfgenmsg * __pyx_v_nfmsg , struct nfq_data * __pyx_v_nfa , void * __pyx_v_data ) {
2011-10-14 23:14:25 +02:00
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 ;
2016-06-28 05:03:55 +02:00
PyObject * __pyx_t_3 = NULL ;
PyObject * __pyx_t_4 = NULL ;
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
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " global_callback " , 0 ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pyx":33
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
2016-06-28 08:48:53 +02:00
* packet = Packet ( )
2011-10-14 23:14:25 +02:00
*/
2016-06-28 05:03:55 +02:00
__pyx_t_1 = ( ( PyObject * ) __pyx_v_data ) ;
__Pyx_INCREF ( __pyx_t_1 ) ;
__pyx_v_nfqueue = ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_t_1 ) ;
__pyx_t_1 = 0 ;
2011-10-14 23:14:25 +02:00
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pyx":34
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 # < < < < < < < < < < < < < <
* packet = Packet ( )
2016-06-28 08:48:53 +02:00
* packet . set_nfq_data ( qh , nfa )
2011-10-14 23:14:25 +02:00
*/
2016-06-28 05:03:55 +02:00
__pyx_t_1 = __pyx_v_nfqueue - > user_callback ;
__Pyx_INCREF ( __pyx_t_1 ) ;
__pyx_v_user_callback = __pyx_t_1 ;
__pyx_t_1 = 0 ;
2011-10-14 23:14:25 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":35
2016-06-28 08:48:53 +02:00
* cdef NetfilterQueue nfqueue = < NetfilterQueue > data
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
*/
2016-06-28 05:36:00 +02:00
__pyx_t_1 = __Pyx_PyObject_Call ( ( ( PyObject * ) __pyx_ptype_14netfilterqueue_Packet ) , __pyx_empty_tuple , NULL ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 35 , __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 ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":36
2016-06-28 08:48:53 +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
* return 1
*/
2016-06-28 05:36:00 +02: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_ERR ( 0 , 36 , __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 ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":37
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
*
*/
2016-06-28 05:03:55 +02:00
__Pyx_INCREF ( __pyx_v_user_callback ) ;
__pyx_t_2 = __pyx_v_user_callback ; __pyx_t_3 = NULL ;
if ( CYTHON_COMPILING_IN_CPYTHON & & unlikely ( PyMethod_Check ( __pyx_t_2 ) ) ) {
__pyx_t_3 = PyMethod_GET_SELF ( __pyx_t_2 ) ;
if ( likely ( __pyx_t_3 ) ) {
PyObject * function = PyMethod_GET_FUNCTION ( __pyx_t_2 ) ;
__Pyx_INCREF ( __pyx_t_3 ) ;
__Pyx_INCREF ( function ) ;
__Pyx_DECREF_SET ( __pyx_t_2 , function ) ;
}
}
if ( ! __pyx_t_3 ) {
2016-06-28 05:36:00 +02:00
__pyx_t_1 = __Pyx_PyObject_CallOneArg ( __pyx_t_2 , ( ( PyObject * ) __pyx_v_packet ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 37 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
} else {
2016-06-28 05:36:00 +02:00
__pyx_t_4 = PyTuple_New ( 1 + 1 ) ; if ( unlikely ( ! __pyx_t_4 ) ) __PYX_ERR ( 0 , 37 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_4 ) ;
__Pyx_GIVEREF ( __pyx_t_3 ) ; PyTuple_SET_ITEM ( __pyx_t_4 , 0 , __pyx_t_3 ) ; __pyx_t_3 = NULL ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_v_packet ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_v_packet ) ) ;
PyTuple_SET_ITEM ( __pyx_t_4 , 0 + 1 , ( ( PyObject * ) __pyx_v_packet ) ) ;
2016-06-28 05:36:00 +02:00
__pyx_t_1 = __Pyx_PyObject_Call ( __pyx_t_2 , __pyx_t_4 , NULL ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 37 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
}
2011-10-14 23:14:25 +02:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":38
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 ;
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pyx":30
2015-05-16 09:25:44 +02:00
* cimport cpython . version
2016-06-28 05:03:55 +02:00
*
* cdef int global_callback ( nfq_q_handle * qh , nfgenmsg * nfmsg , # < < < < < < < < < < < < < <
* nfq_data * nfa , void * data ) with gil :
* " " " Create a Packet and pass it to appropriate callback. " " "
*/
/* function exit code */
2011-05-12 22:45:14 +02:00
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_XDECREF ( __pyx_t_3 ) ;
__Pyx_XDECREF ( __pyx_t_4 ) ;
__Pyx_WriteUnraisable ( " netfilterqueue.global_callback " , __pyx_clineno , __pyx_lineno , __pyx_filename , 0 , 0 ) ;
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 ;
}
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":42
2016-06-28 05:03:55 +02:00
* cdef class Packet :
* " " " A packet received from NetfilterQueue. " " "
* def __cinit__ ( self ) : # < < < < < < < < < < < < < <
* self . _verdict_is_set = False
* self . _mark_is_set = False
*/
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static int __pyx_pw_14netfilterqueue_6Packet_1__cinit__ ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
static int __pyx_pw_14netfilterqueue_6Packet_1__cinit__ ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) {
int __pyx_r ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __cinit__ (wrapper) " , 0 ) ;
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 ;
__pyx_r = __pyx_pf_14netfilterqueue_6Packet___cinit__ ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static int __pyx_pf_14netfilterqueue_6Packet___cinit__ ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) {
2011-05-12 22:45:14 +02:00
int __pyx_r ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " __cinit__ " , 0 ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":43
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
2012-12-24 04:17:54 +01:00
* self . _given_payload = None
2011-05-12 22:45:14 +02:00
*/
2013-04-03 13:55:51 +02:00
__pyx_v_self - > _verdict_is_set = 0 ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":44
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
*
*/
2013-04-03 13:55:51 +02:00
__pyx_v_self - > _mark_is_set = 0 ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":45
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 ) ;
2013-04-03 13:55:51 +02:00
__Pyx_GOTREF ( __pyx_v_self - > _given_payload ) ;
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_v_self - > _given_payload ) ;
2013-04-03 13:55:51 +02:00
__pyx_v_self - > _given_payload = ( ( PyObject * ) Py_None ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":42
2016-06-28 05:03:55 +02:00
* cdef class Packet :
* " " " A packet received from NetfilterQueue. " " "
* def __cinit__ ( self ) : # < < < < < < < < < < < < < <
* self . _verdict_is_set = False
* self . _mark_is_set = False
*/
/* function exit code */
2011-05-12 22:45:14 +02:00
__pyx_r = 0 ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":47
2016-06-28 05:03:55 +02:00
* self . _given_payload = None
*
* def __str__ ( self ) : # < < < < < < < < < < < < < <
* cdef iphdr * hdr = < iphdr * > self . payload
* protocol = PROTOCOLS . get ( hdr . protocol , " Unknown protocol " )
*/
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_6Packet_3__str__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pw_14netfilterqueue_6Packet_3__str__ ( PyObject * __pyx_v_self ) {
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __str__ (wrapper) " , 0 ) ;
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_2__str__ ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_14netfilterqueue_6Packet_2__str__ ( struct __pyx_obj_14netfilterqueue_Packet * __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 ;
2016-06-28 05:03:55 +02:00
PyObject * __pyx_t_4 = NULL ;
Py_ssize_t __pyx_t_5 ;
PyObject * __pyx_t_6 = NULL ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " __str__ " , 0 ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":48
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
*/
2013-04-03 13:55:51 +02:00
__pyx_v_hdr = ( ( struct iphdr * ) __pyx_v_self - > payload ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":49
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
*/
2016-06-28 05:36:00 +02:00
__pyx_t_2 = __Pyx_GetModuleGlobalName ( __pyx_n_s_PROTOCOLS ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 49 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2016-06-28 05:36:00 +02:00
__pyx_t_3 = __Pyx_PyObject_GetAttrStr ( __pyx_t_2 , __pyx_n_s_get ) ; if ( unlikely ( ! __pyx_t_3 ) ) __PYX_ERR ( 0 , 49 , __pyx_L1_error )
2013-04-03 13:55:51 +02:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-05-13 17:42:05 +02:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2016-06-28 05:36:00 +02:00
__pyx_t_2 = __Pyx_PyInt_From_u_int8_t ( __pyx_v_hdr - > protocol ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 49 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__pyx_t_4 = NULL ;
__pyx_t_5 = 0 ;
if ( CYTHON_COMPILING_IN_CPYTHON & & unlikely ( PyMethod_Check ( __pyx_t_3 ) ) ) {
__pyx_t_4 = PyMethod_GET_SELF ( __pyx_t_3 ) ;
if ( likely ( __pyx_t_4 ) ) {
PyObject * function = PyMethod_GET_FUNCTION ( __pyx_t_3 ) ;
__Pyx_INCREF ( __pyx_t_4 ) ;
__Pyx_INCREF ( function ) ;
__Pyx_DECREF_SET ( __pyx_t_3 , function ) ;
__pyx_t_5 = 1 ;
}
}
2016-06-28 05:36:00 +02:00
__pyx_t_6 = PyTuple_New ( 2 + __pyx_t_5 ) ; if ( unlikely ( ! __pyx_t_6 ) ) __PYX_ERR ( 0 , 49 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_6 ) ;
if ( __pyx_t_4 ) {
__Pyx_GIVEREF ( __pyx_t_4 ) ; PyTuple_SET_ITEM ( __pyx_t_6 , 0 , __pyx_t_4 ) ; __pyx_t_4 = NULL ;
}
__Pyx_GIVEREF ( __pyx_t_2 ) ;
PyTuple_SET_ITEM ( __pyx_t_6 , 0 + __pyx_t_5 , __pyx_t_2 ) ;
__Pyx_INCREF ( __pyx_kp_s_Unknown_protocol ) ;
__Pyx_GIVEREF ( __pyx_kp_s_Unknown_protocol ) ;
PyTuple_SET_ITEM ( __pyx_t_6 , 1 + __pyx_t_5 , __pyx_kp_s_Unknown_protocol ) ;
__pyx_t_2 = 0 ;
2016-06-28 05:36:00 +02:00
__pyx_t_1 = __Pyx_PyObject_Call ( __pyx_t_3 , __pyx_t_6 , NULL ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 49 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_DECREF ( __pyx_t_6 ) ; __pyx_t_6 = 0 ;
__Pyx_DECREF ( __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
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":50
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 ) ;
2016-06-28 05:36:00 +02:00
__pyx_t_1 = PyInt_FromSsize_t ( __pyx_v_self - > payload_len ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 50 , __pyx_L1_error )
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2016-06-28 05:36:00 +02:00
__pyx_t_3 = PyTuple_New ( 2 ) ; if ( unlikely ( ! __pyx_t_3 ) ) __PYX_ERR ( 0 , 50 , __pyx_L1_error )
2013-04-03 13:55:51 +02:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_INCREF ( __pyx_v_protocol ) ;
__Pyx_GIVEREF ( __pyx_v_protocol ) ;
2016-06-28 05:03:55 +02:00
PyTuple_SET_ITEM ( __pyx_t_3 , 0 , __pyx_v_protocol ) ;
2011-05-13 17:42:05 +02:00
__Pyx_GIVEREF ( __pyx_t_1 ) ;
2016-06-28 05:03:55 +02:00
PyTuple_SET_ITEM ( __pyx_t_3 , 1 , __pyx_t_1 ) ;
2011-05-13 17:42:05 +02:00
__pyx_t_1 = 0 ;
2016-06-28 05:36:00 +02:00
__pyx_t_1 = __Pyx_PyString_Format ( __pyx_kp_s_s_packet_s_bytes , __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 50 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
__pyx_r = __pyx_t_1 ;
2011-05-13 17:42:05 +02:00
__pyx_t_1 = 0 ;
2011-05-12 22:45:14 +02:00
goto __pyx_L0 ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":47
2016-06-28 05:03:55 +02:00
* self . _given_payload = None
*
* def __str__ ( self ) : # < < < < < < < < < < < < < <
* cdef iphdr * hdr = < iphdr * > self . payload
* protocol = PROTOCOLS . get ( hdr . protocol , " Unknown protocol " )
*/
/* function exit code */
2011-05-12 22:45:14 +02:00
__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 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_XDECREF ( __pyx_t_4 ) ;
__Pyx_XDECREF ( __pyx_t_6 ) ;
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 ;
}
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":52
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
2013-04-03 13:55:51 +02:00
u_int8_t __pyx_t_1 ;
int __pyx_t_2 ;
PyObject * __pyx_t_3 = NULL ;
__Pyx_RefNannySetupContext ( " set_nfq_data " , 0 ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":57
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 ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":58
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 ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":59
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 ) ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":61
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 ) ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":62
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 ) ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":63
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 )
*/
2013-04-03 13:55:51 +02:00
__pyx_t_1 = __pyx_v_self - > _hdr - > hook ;
__pyx_v_self - > hook = __pyx_t_1 ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":65
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 ) ) ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":66
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. " )
*
*/
2016-06-28 05:03:55 +02:00
__pyx_t_2 = ( ( __pyx_v_self - > payload_len < 0 ) ! = 0 ) ;
2013-04-03 13:55:51 +02:00
if ( __pyx_t_2 ) {
2011-05-12 22:45:14 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":67
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 )
*/
2016-06-28 05:36:00 +02:00
__pyx_t_3 = __Pyx_PyObject_Call ( __pyx_builtin_OSError , __pyx_tuple_ , NULL ) ; if ( unlikely ( ! __pyx_t_3 ) ) __PYX_ERR ( 0 , 67 , __pyx_L1_error )
2013-04-03 13:55:51 +02:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
__Pyx_Raise ( __pyx_t_3 , 0 , 0 , 0 ) ;
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2016-06-28 05:36:00 +02:00
__PYX_ERR ( 0 , 67 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":66
2016-06-28 05:03:55 +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. " )
*
*/
2011-05-12 22:45:14 +02:00
}
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":69
2011-05-12 22:45:14 +02:00
* raise OSError ( " Failed to get payload of packet. " )
*
* nfq_get_timestamp ( self . _nfa , & self . timestamp ) # < < < < < < < < < < < < < <
2013-04-15 05:30:35 +02:00
* self . mark = nfq_get_nfmark ( nfa )
2011-05-12 22:45:14 +02:00
*
*/
nfq_get_timestamp ( __pyx_v_self - > _nfa , ( & __pyx_v_self - > timestamp ) ) ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":70
2013-04-15 05:30:35 +02:00
*
* nfq_get_timestamp ( self . _nfa , & self . timestamp )
* self . mark = nfq_get_nfmark ( nfa ) # < < < < < < < < < < < < < <
*
* cdef void verdict ( self , u_int8_t verdict ) :
*/
__pyx_v_self - > mark = nfq_get_nfmark ( __pyx_v_nfa ) ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":52
2016-06-28 05:03:55 +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
*/
/* function exit code */
2011-05-12 22:45:14 +02:00
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
2013-04-03 13:55:51 +02:00
__Pyx_XDECREF ( __pyx_t_3 ) ;
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 ;
}
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":72
2013-04-15 05:30:35 +02:00
* self . mark = nfq_get_nfmark ( nfa )
2011-05-12 22:45:14 +02:00
*
* 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
2016-06-28 05:03:55 +02:00
int __pyx_t_1 ;
PyObject * __pyx_t_2 = NULL ;
2012-12-24 04:17:54 +01:00
Py_ssize_t __pyx_t_3 ;
unsigned char * __pyx_t_4 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " verdict " , 0 ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":74
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. " )
*
*/
2016-06-28 05:03:55 +02:00
__pyx_t_1 = ( __pyx_v_self - > _verdict_is_set ! = 0 ) ;
if ( __pyx_t_1 ) {
2011-05-13 17:42:05 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":75
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
*/
2016-06-28 05:36:00 +02:00
__pyx_t_2 = __Pyx_PyObject_Call ( __pyx_builtin_RuntimeWarning , __pyx_tuple__2 , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 75 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_Raise ( __pyx_t_2 , 0 , 0 , 0 ) ;
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2016-06-28 05:36:00 +02:00
__PYX_ERR ( 0 , 75 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":74
2016-06-28 05:03:55 +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. " )
*
*/
2011-05-13 17:42:05 +02:00
}
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":77
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 ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":78
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 :
* modified_payload_len = len ( self . _given_payload )
*/
__pyx_v_modified_payload = NULL ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":79
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 : # < < < < < < < < < < < < < <
* modified_payload_len = len ( self . _given_payload )
* modified_payload = self . _given_payload
*/
2016-06-28 05:03:55 +02:00
__pyx_t_1 = ( __pyx_v_self - > _given_payload ! = Py_None ) & & ( PyBytes_GET_SIZE ( __pyx_v_self - > _given_payload ) ! = 0 ) ;
if ( __pyx_t_1 ) {
2012-12-24 04:17:54 +01:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":80
2012-12-24 04:17:54 +01:00
* 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 :
*/
2016-06-28 05:03:55 +02:00
__pyx_t_2 = __pyx_v_self - > _given_payload ;
__Pyx_INCREF ( __pyx_t_2 ) ;
if ( unlikely ( __pyx_t_2 = = Py_None ) ) {
2013-04-03 13:55:51 +02:00
PyErr_SetString ( PyExc_TypeError , " object of type 'NoneType' has no len() " ) ;
2016-06-28 05:36:00 +02:00
__PYX_ERR ( 0 , 80 , __pyx_L1_error )
2012-12-24 04:17:54 +01:00
}
2016-06-28 05:36:00 +02:00
__pyx_t_3 = PyBytes_GET_SIZE ( __pyx_t_2 ) ; if ( unlikely ( __pyx_t_3 = = - 1 ) ) __PYX_ERR ( 0 , 80 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2012-12-24 04:17:54 +01:00
__pyx_v_modified_payload_len = __pyx_t_3 ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":81
2012-12-24 04:17:54 +01:00
* if self . _given_payload :
* modified_payload_len = len ( self . _given_payload )
* modified_payload = self . _given_payload # < < < < < < < < < < < < < <
* if self . _mark_is_set :
2016-06-28 06:27:12 +02:00
* nfq_set_verdict2 (
2012-12-24 04:17:54 +01:00
*/
2016-06-28 05:36:00 +02:00
__pyx_t_4 = __Pyx_PyObject_AsUString ( __pyx_v_self - > _given_payload ) ; if ( unlikely ( ( ! __pyx_t_4 ) & & PyErr_Occurred ( ) ) ) __PYX_ERR ( 0 , 81 , __pyx_L1_error )
2012-12-24 04:17:54 +01:00
__pyx_v_modified_payload = __pyx_t_4 ;
2016-06-28 05:03:55 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":79
2016-06-28 05:03:55 +02:00
* 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
*/
2012-12-24 04:17:54 +01:00
}
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":82
2012-12-24 04:17:54 +01:00
* 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 : # < < < < < < < < < < < < < <
2016-06-28 06:27:12 +02:00
* nfq_set_verdict2 (
2013-04-03 13:55:51 +02:00
* self . _qh ,
2011-05-12 22:45:14 +02:00
*/
2016-06-28 05:03:55 +02:00
__pyx_t_1 = ( __pyx_v_self - > _mark_is_set ! = 0 ) ;
if ( __pyx_t_1 ) {
2011-05-12 22:45:14 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":83
2016-06-28 05:03:55 +02:00
* modified_payload = self . _given_payload
* if self . _mark_is_set :
2016-06-28 06:27:12 +02:00
* nfq_set_verdict2 ( # < < < < < < < < < < < < < <
2016-06-28 05:03:55 +02:00
* self . _qh ,
* self . id ,
2011-05-12 22:45:14 +02:00
*/
2016-06-28 06:27:12 +02:00
nfq_set_verdict2 ( __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 ) ;
2016-06-28 05:03:55 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":82
2016-06-28 05:03:55 +02:00
* modified_payload_len = len ( self . _given_payload )
* modified_payload = self . _given_payload
* if self . _mark_is_set : # < < < < < < < < < < < < < <
2016-06-28 06:27:12 +02:00
* nfq_set_verdict2 (
2016-06-28 05:03:55 +02:00
* self . _qh ,
*/
2012-12-24 04:17:54 +01:00
goto __pyx_L5 ;
2011-05-12 22:45:14 +02:00
}
2016-06-28 05:03:55 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":91
2016-06-28 05:03:55 +02:00
* modified_payload )
* else :
* nfq_set_verdict ( # < < < < < < < < < < < < < <
* self . _qh ,
* self . id ,
*/
2011-05-12 22:45:14 +02:00
/*else*/ {
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":96
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
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":98
2012-12-24 04:17:54 +01:00
* 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
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":72
2016-06-28 05:03:55 +02:00
* self . mark = nfq_get_nfmark ( nfa )
*
* cdef void verdict ( self , u_int8_t verdict ) : # < < < < < < < < < < < < < <
* " " " Call appropriate set_verdict... function on packet. " " "
* if self . _verdict_is_set :
*/
/* function exit code */
2011-05-13 17:42:05 +02:00
goto __pyx_L0 ;
__pyx_L1_error : ;
2016-06-28 05:03:55 +02:00
__Pyx_XDECREF ( __pyx_t_2 ) ;
__Pyx_WriteUnraisable ( " netfilterqueue.Packet.verdict " , __pyx_clineno , __pyx_lineno , __pyx_filename , 0 , 0 ) ;
2011-05-13 17:42:05 +02:00
__pyx_L0 : ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannyFinishContext ( ) ;
}
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":100
2016-06-28 05:03:55 +02:00
* self . _verdict_is_set = True
*
* def get_payload ( self ) : # < < < < < < < < < < < < < <
* " " " Return payload as Python string. " " "
2015-05-16 09:25:44 +02:00
* cdef object py_string
2016-06-28 05:03:55 +02:00
*/
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_6Packet_5get_payload ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_6Packet_4get_payload [ ] = " Return payload as Python string. " ;
static PyObject * __pyx_pw_14netfilterqueue_6Packet_5get_payload ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " get_payload (wrapper) " , 0 ) ;
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_4get_payload ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_14netfilterqueue_6Packet_4get_payload ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) {
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
2016-10-27 22:49:16 +02:00
PyObject * __pyx_t_1 = NULL ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " get_payload " , 0 ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":103
2011-05-13 17:42:05 +02:00
* " " " Return payload as Python string. " " "
2015-05-16 09:25:44 +02:00
* cdef object py_string
2016-10-27 22:49:16 +02:00
* py_string = self . payload [ : self . payload_len ] # < < < < < < < < < < < < < <
2016-06-28 05:10:26 +02:00
* return py_string
*
*/
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyBytes_FromStringAndSize ( __pyx_v_self - > payload + 0 , __pyx_v_self - > payload_len - 0 ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 103 , __pyx_L1_error )
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_v_py_string = __pyx_t_1 ;
__pyx_t_1 = 0 ;
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":104
* cdef object py_string
* py_string = 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 ;
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":100
2016-06-28 05:03:55 +02:00
* self . _verdict_is_set = True
*
* def get_payload ( self ) : # < < < < < < < < < < < < < <
* " " " Return payload as Python string. " " "
2015-05-16 09:25:44 +02:00
* cdef object py_string
2016-06-28 05:03:55 +02:00
*/
/* function exit code */
2011-05-12 22:45:14 +02:00
__pyx_L1_error : ;
2016-10-27 22:49:16 +02:00
__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 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":106
2011-05-12 22:45:14 +02:00
* return py_string
*
* cpdef Py_ssize_t get_payload_len ( self ) : # < < < < < < < < < < < < < <
* return self . payload_len
*
*/
2013-04-03 13:55:51 +02:00
static PyObject * __pyx_pw_14netfilterqueue_6Packet_7get_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 ;
2016-06-28 05:03:55 +02:00
PyObject * __pyx_t_3 = NULL ;
PyObject * __pyx_t_4 = NULL ;
Py_ssize_t __pyx_t_5 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " get_payload_len " , 0 ) ;
2011-05-12 22:45:14 +02:00
/* Check if called by wrapper */
if ( unlikely ( __pyx_skip_dispatch ) ) ;
2013-04-03 13:55:51 +02:00
/* Check if overridden in Python */
2011-05-12 22:45:14 +02:00
else if ( unlikely ( Py_TYPE ( ( ( PyObject * ) __pyx_v_self ) ) - > tp_dictoffset ! = 0 ) ) {
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyObject_GetAttrStr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s_get_payload_len ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 106 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2013-04-03 13:55:51 +02:00
if ( ! PyCFunction_Check ( __pyx_t_1 ) | | ( PyCFunction_GET_FUNCTION ( __pyx_t_1 ) ! = ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_7get_payload_len ) ) {
2016-06-28 05:03:55 +02:00
__Pyx_INCREF ( __pyx_t_1 ) ;
__pyx_t_3 = __pyx_t_1 ; __pyx_t_4 = NULL ;
if ( CYTHON_COMPILING_IN_CPYTHON & & unlikely ( PyMethod_Check ( __pyx_t_3 ) ) ) {
__pyx_t_4 = PyMethod_GET_SELF ( __pyx_t_3 ) ;
if ( likely ( __pyx_t_4 ) ) {
PyObject * function = PyMethod_GET_FUNCTION ( __pyx_t_3 ) ;
__Pyx_INCREF ( __pyx_t_4 ) ;
__Pyx_INCREF ( function ) ;
__Pyx_DECREF_SET ( __pyx_t_3 , function ) ;
}
}
if ( __pyx_t_4 ) {
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_CallOneArg ( __pyx_t_3 , __pyx_t_4 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 106 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
} else {
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_CallNoArg ( __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 106 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
}
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2016-10-27 22:49:16 +02:00
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t ( __pyx_t_2 ) ; if ( unlikely ( ( __pyx_t_5 = = ( Py_ssize_t ) - 1 ) & & PyErr_Occurred ( ) ) ) __PYX_ERR ( 0 , 106 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2016-06-28 05:03:55 +02:00
__pyx_r = __pyx_t_5 ;
2011-05-12 22:45:14 +02:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
goto __pyx_L0 ;
}
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":107
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 ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":106
2016-06-28 05:03:55 +02:00
* return py_string
*
* cpdef Py_ssize_t get_payload_len ( self ) : # < < < < < < < < < < < < < <
* return self . payload_len
*
*/
/* function exit code */
2011-05-12 22:45:14 +02:00
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_XDECREF ( __pyx_t_3 ) ;
__Pyx_XDECREF ( __pyx_t_4 ) ;
__Pyx_WriteUnraisable ( " netfilterqueue.Packet.get_payload_len " , __pyx_clineno , __pyx_lineno , __pyx_filename , 0 , 0 ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_6Packet_7get_payload_len ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static PyObject * __pyx_pw_14netfilterqueue_6Packet_7get_payload_len ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " get_payload_len (wrapper) " , 0 ) ;
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_6get_payload_len ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_14netfilterqueue_6Packet_6get_payload_len ( struct __pyx_obj_14netfilterqueue_Packet * __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 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " get_payload_len " , 0 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_1 = PyInt_FromSsize_t ( __pyx_f_14netfilterqueue_6Packet_get_payload_len ( __pyx_v_self , 1 ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 106 , __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 ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2011-05-12 22:45:14 +02:00
__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 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":109
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 )
*
*/
2013-04-03 13:55:51 +02:00
static PyObject * __pyx_pw_14netfilterqueue_6Packet_9get_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 ;
2016-06-28 05:03:55 +02:00
PyObject * __pyx_t_3 = NULL ;
PyObject * __pyx_t_4 = NULL ;
double __pyx_t_5 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " get_timestamp " , 0 ) ;
2011-05-12 22:45:14 +02:00
/* Check if called by wrapper */
if ( unlikely ( __pyx_skip_dispatch ) ) ;
2013-04-03 13:55:51 +02:00
/* Check if overridden in Python */
2011-05-12 22:45:14 +02:00
else if ( unlikely ( Py_TYPE ( ( ( PyObject * ) __pyx_v_self ) ) - > tp_dictoffset ! = 0 ) ) {
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyObject_GetAttrStr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s_get_timestamp ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 109 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2013-04-03 13:55:51 +02:00
if ( ! PyCFunction_Check ( __pyx_t_1 ) | | ( PyCFunction_GET_FUNCTION ( __pyx_t_1 ) ! = ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_9get_timestamp ) ) {
2016-06-28 05:03:55 +02:00
__Pyx_INCREF ( __pyx_t_1 ) ;
__pyx_t_3 = __pyx_t_1 ; __pyx_t_4 = NULL ;
if ( CYTHON_COMPILING_IN_CPYTHON & & unlikely ( PyMethod_Check ( __pyx_t_3 ) ) ) {
__pyx_t_4 = PyMethod_GET_SELF ( __pyx_t_3 ) ;
if ( likely ( __pyx_t_4 ) ) {
PyObject * function = PyMethod_GET_FUNCTION ( __pyx_t_3 ) ;
__Pyx_INCREF ( __pyx_t_4 ) ;
__Pyx_INCREF ( function ) ;
__Pyx_DECREF_SET ( __pyx_t_3 , function ) ;
}
}
if ( __pyx_t_4 ) {
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_CallOneArg ( __pyx_t_3 , __pyx_t_4 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 109 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
} else {
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_CallNoArg ( __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 109 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
}
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2016-10-27 22:49:16 +02:00
__pyx_t_5 = __pyx_PyFloat_AsDouble ( __pyx_t_2 ) ; if ( unlikely ( ( __pyx_t_5 = = ( double ) - 1 ) & & PyErr_Occurred ( ) ) ) __PYX_ERR ( 0 , 109 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2016-06-28 05:03:55 +02:00
__pyx_r = __pyx_t_5 ;
2011-05-12 22:45:14 +02:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
goto __pyx_L0 ;
}
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":110
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 ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":109
2016-06-28 05:03:55 +02:00
* return self . payload_len
*
* cpdef double get_timestamp ( self ) : # < < < < < < < < < < < < < <
* return self . timestamp . tv_sec + ( self . timestamp . tv_usec / 1000000.0 )
*
*/
/* function exit code */
2011-05-12 22:45:14 +02:00
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_XDECREF ( __pyx_t_3 ) ;
__Pyx_XDECREF ( __pyx_t_4 ) ;
__Pyx_WriteUnraisable ( " netfilterqueue.Packet.get_timestamp " , __pyx_clineno , __pyx_lineno , __pyx_filename , 0 , 0 ) ;
2011-05-12 22:45:14 +02:00
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_6Packet_9get_timestamp ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static PyObject * __pyx_pw_14netfilterqueue_6Packet_9get_timestamp ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " get_timestamp (wrapper) " , 0 ) ;
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_8get_timestamp ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_14netfilterqueue_6Packet_8get_timestamp ( struct __pyx_obj_14netfilterqueue_Packet * __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 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " get_timestamp " , 0 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_1 = PyFloat_FromDouble ( __pyx_f_14netfilterqueue_6Packet_get_timestamp ( __pyx_v_self , 1 ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 109 , __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 ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2011-05-12 22:45:14 +02:00
__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 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":112
2012-12-24 04:17:54 +01:00
* 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
*/
2013-04-03 13:55:51 +02:00
static PyObject * __pyx_pw_14netfilterqueue_6Packet_11set_payload ( PyObject * __pyx_v_self , PyObject * __pyx_v_payload ) ; /*proto*/
2012-12-24 04:17:54 +01:00
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 ;
2016-06-28 05:03:55 +02:00
PyObject * __pyx_t_4 = NULL ;
PyObject * __pyx_t_5 = NULL ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " set_payload " , 0 ) ;
2012-12-24 04:17:54 +01:00
/* Check if called by wrapper */
if ( unlikely ( __pyx_skip_dispatch ) ) ;
2013-04-03 13:55:51 +02:00
/* Check if overridden in Python */
2012-12-24 04:17:54 +01:00
else if ( unlikely ( Py_TYPE ( ( ( PyObject * ) __pyx_v_self ) ) - > tp_dictoffset ! = 0 ) ) {
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyObject_GetAttrStr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s_set_payload ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 112 , __pyx_L1_error )
2012-12-24 04:17:54 +01:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2013-04-03 13:55:51 +02:00
if ( ! PyCFunction_Check ( __pyx_t_1 ) | | ( PyCFunction_GET_FUNCTION ( __pyx_t_1 ) ! = ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_11set_payload ) ) {
2012-12-24 04:17:54 +01:00
__Pyx_XDECREF ( __pyx_r ) ;
2016-06-28 05:03:55 +02:00
__Pyx_INCREF ( __pyx_t_1 ) ;
__pyx_t_3 = __pyx_t_1 ; __pyx_t_4 = NULL ;
if ( CYTHON_COMPILING_IN_CPYTHON & & unlikely ( PyMethod_Check ( __pyx_t_3 ) ) ) {
__pyx_t_4 = PyMethod_GET_SELF ( __pyx_t_3 ) ;
if ( likely ( __pyx_t_4 ) ) {
PyObject * function = PyMethod_GET_FUNCTION ( __pyx_t_3 ) ;
__Pyx_INCREF ( __pyx_t_4 ) ;
__Pyx_INCREF ( function ) ;
__Pyx_DECREF_SET ( __pyx_t_3 , function ) ;
}
}
if ( ! __pyx_t_4 ) {
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_CallOneArg ( __pyx_t_3 , __pyx_v_payload ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 112 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
} else {
2016-10-27 22:49:16 +02:00
__pyx_t_5 = PyTuple_New ( 1 + 1 ) ; if ( unlikely ( ! __pyx_t_5 ) ) __PYX_ERR ( 0 , 112 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
__Pyx_GIVEREF ( __pyx_t_4 ) ; PyTuple_SET_ITEM ( __pyx_t_5 , 0 , __pyx_t_4 ) ; __pyx_t_4 = NULL ;
__Pyx_INCREF ( __pyx_v_payload ) ;
__Pyx_GIVEREF ( __pyx_v_payload ) ;
PyTuple_SET_ITEM ( __pyx_t_5 , 0 + 1 , __pyx_v_payload ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_Call ( __pyx_t_3 , __pyx_t_5 , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 112 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
}
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
__pyx_r = __pyx_t_2 ;
__pyx_t_2 = 0 ;
2012-12-24 04:17:54 +01:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
goto __pyx_L0 ;
}
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":114
2012-12-24 04:17:54 +01:00
* 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 ) :
*/
2016-06-28 05:03:55 +02:00
__Pyx_INCREF ( __pyx_v_payload ) ;
__Pyx_GIVEREF ( __pyx_v_payload ) ;
2012-12-24 04:17:54 +01:00
__Pyx_GOTREF ( __pyx_v_self - > _given_payload ) ;
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_v_self - > _given_payload ) ;
2012-12-24 04:17:54 +01:00
__pyx_v_self - > _given_payload = __pyx_v_payload ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":112
2016-06-28 05:03:55 +02:00
* 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
*/
/* function exit code */
2012-12-24 04:17:54 +01: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 ) ;
__Pyx_XDECREF ( __pyx_t_3 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_XDECREF ( __pyx_t_4 ) ;
__Pyx_XDECREF ( __pyx_t_5 ) ;
2012-12-24 04:17:54 +01:00
__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 ;
}
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_6Packet_11set_payload ( PyObject * __pyx_v_self , PyObject * __pyx_v_payload ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_6Packet_10set_payload [ ] = " Set the new payload of this packet. " ;
static PyObject * __pyx_pw_14netfilterqueue_6Packet_11set_payload ( PyObject * __pyx_v_self , PyObject * __pyx_v_payload ) {
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " set_payload (wrapper) " , 0 ) ;
2016-10-27 22:49:16 +02:00
if ( unlikely ( ! __Pyx_ArgTypeTest ( ( ( PyObject * ) __pyx_v_payload ) , ( & PyBytes_Type ) , 1 , " payload " , 1 ) ) ) __PYX_ERR ( 0 , 112 , __pyx_L1_error )
2013-04-03 13:55:51 +02:00
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_10set_payload ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) , ( ( PyObject * ) __pyx_v_payload ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
goto __pyx_L0 ;
__pyx_L1_error : ;
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_14netfilterqueue_6Packet_10set_payload ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , PyObject * __pyx_v_payload ) {
2012-12-24 04:17:54 +01:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " set_payload " , 0 ) ;
2012-12-24 04:17:54 +01:00
__Pyx_XDECREF ( __pyx_r ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __pyx_f_14netfilterqueue_6Packet_set_payload ( __pyx_v_self , __pyx_v_payload , 1 ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 112 , __pyx_L1_error )
2012-12-24 04:17:54 +01:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2012-12-24 04:17:54 +01:00
__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 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":116
2012-12-24 04:17:54 +01:00
* 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
*/
2013-04-03 13:55:51 +02:00
static PyObject * __pyx_pw_14netfilterqueue_6Packet_13set_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 ;
2016-06-28 05:03:55 +02:00
PyObject * __pyx_t_4 = NULL ;
PyObject * __pyx_t_5 = NULL ;
PyObject * __pyx_t_6 = NULL ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " set_mark " , 0 ) ;
2011-05-12 22:45:14 +02:00
/* Check if called by wrapper */
if ( unlikely ( __pyx_skip_dispatch ) ) ;
2013-04-03 13:55:51 +02:00
/* Check if overridden in Python */
2011-05-12 22:45:14 +02:00
else if ( unlikely ( Py_TYPE ( ( ( PyObject * ) __pyx_v_self ) ) - > tp_dictoffset ! = 0 ) ) {
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyObject_GetAttrStr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s_set_mark ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 116 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2013-04-03 13:55:51 +02:00
if ( ! PyCFunction_Check ( __pyx_t_1 ) | | ( PyCFunction_GET_FUNCTION ( __pyx_t_1 ) ! = ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_13set_mark ) ) {
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_3 = __Pyx_PyInt_From_u_int32_t ( __pyx_v_mark ) ; if ( unlikely ( ! __pyx_t_3 ) ) __PYX_ERR ( 0 , 116 , __pyx_L1_error )
2013-04-03 13:55:51 +02:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_INCREF ( __pyx_t_1 ) ;
__pyx_t_4 = __pyx_t_1 ; __pyx_t_5 = NULL ;
if ( CYTHON_COMPILING_IN_CPYTHON & & unlikely ( PyMethod_Check ( __pyx_t_4 ) ) ) {
__pyx_t_5 = PyMethod_GET_SELF ( __pyx_t_4 ) ;
if ( likely ( __pyx_t_5 ) ) {
PyObject * function = PyMethod_GET_FUNCTION ( __pyx_t_4 ) ;
__Pyx_INCREF ( __pyx_t_5 ) ;
__Pyx_INCREF ( function ) ;
__Pyx_DECREF_SET ( __pyx_t_4 , function ) ;
}
}
if ( ! __pyx_t_5 ) {
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_CallOneArg ( __pyx_t_4 , __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 116 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
__Pyx_GOTREF ( __pyx_t_2 ) ;
} else {
2016-10-27 22:49:16 +02:00
__pyx_t_6 = PyTuple_New ( 1 + 1 ) ; if ( unlikely ( ! __pyx_t_6 ) ) __PYX_ERR ( 0 , 116 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_6 ) ;
__Pyx_GIVEREF ( __pyx_t_5 ) ; PyTuple_SET_ITEM ( __pyx_t_6 , 0 , __pyx_t_5 ) ; __pyx_t_5 = NULL ;
__Pyx_GIVEREF ( __pyx_t_3 ) ;
PyTuple_SET_ITEM ( __pyx_t_6 , 0 + 1 , __pyx_t_3 ) ;
__pyx_t_3 = 0 ;
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_Call ( __pyx_t_4 , __pyx_t_6 , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 116 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_DECREF ( __pyx_t_6 ) ; __pyx_t_6 = 0 ;
}
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
2011-05-12 22:45:14 +02:00
__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 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":117
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 ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":118
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 # < < < < < < < < < < < < < <
*
2013-04-15 05:30:35 +02:00
* cpdef get_mark ( self ) :
2011-05-12 22:45:14 +02:00
*/
__pyx_v_self - > _mark_is_set = 1 ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":116
2016-06-28 05:03:55 +02:00
* self . _given_payload = payload
*
* cpdef set_mark ( self , u_int32_t mark ) : # < < < < < < < < < < < < < <
* self . _given_mark = mark
* self . _mark_is_set = True
*/
/* function exit code */
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 ) ;
__Pyx_XDECREF ( __pyx_t_3 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_XDECREF ( __pyx_t_4 ) ;
__Pyx_XDECREF ( __pyx_t_5 ) ;
__Pyx_XDECREF ( __pyx_t_6 ) ;
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 ;
}
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_6Packet_13set_mark ( PyObject * __pyx_v_self , PyObject * __pyx_arg_mark ) ; /*proto*/
static PyObject * __pyx_pw_14netfilterqueue_6Packet_13set_mark ( PyObject * __pyx_v_self , PyObject * __pyx_arg_mark ) {
u_int32_t __pyx_v_mark ;
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " set_mark (wrapper) " , 0 ) ;
assert ( __pyx_arg_mark ) ; {
2016-10-27 22:49:16 +02:00
__pyx_v_mark = __Pyx_PyInt_As_u_int32_t ( __pyx_arg_mark ) ; if ( unlikely ( ( __pyx_v_mark = = ( u_int32_t ) - 1 ) & & PyErr_Occurred ( ) ) ) __PYX_ERR ( 0 , 116 , __pyx_L3_error )
2013-04-03 13:55:51 +02:00
}
goto __pyx_L4_argument_unpacking_done ;
__pyx_L3_error : ;
__Pyx_AddTraceback ( " netfilterqueue.Packet.set_mark " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__Pyx_RefNannyFinishContext ( ) ;
return NULL ;
__pyx_L4_argument_unpacking_done : ;
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_12set_mark ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) , ( ( u_int32_t ) __pyx_v_mark ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_14netfilterqueue_6Packet_12set_mark ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , u_int32_t __pyx_v_mark ) {
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 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " set_mark " , 0 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __pyx_f_14netfilterqueue_6Packet_set_mark ( __pyx_v_self , __pyx_v_mark , 1 ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 116 , __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 ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2011-05-12 22:45:14 +02:00
__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 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":120
2013-04-15 05:30:35 +02:00
* self . _mark_is_set = True
*
* cpdef get_mark ( self ) : # < < < < < < < < < < < < < <
* if self . _mark_is_set :
* return self . _given_mark
*/
static PyObject * __pyx_pw_14netfilterqueue_6Packet_15get_mark ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static PyObject * __pyx_f_14netfilterqueue_6Packet_get_mark ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self , int __pyx_skip_dispatch ) {
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
PyObject * __pyx_t_2 = NULL ;
2016-06-28 05:03:55 +02:00
PyObject * __pyx_t_3 = NULL ;
PyObject * __pyx_t_4 = NULL ;
int __pyx_t_5 ;
2013-04-15 05:30:35 +02:00
__Pyx_RefNannySetupContext ( " get_mark " , 0 ) ;
/* Check if called by wrapper */
if ( unlikely ( __pyx_skip_dispatch ) ) ;
/* Check if overridden in Python */
else if ( unlikely ( Py_TYPE ( ( ( PyObject * ) __pyx_v_self ) ) - > tp_dictoffset ! = 0 ) ) {
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyObject_GetAttrStr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s_get_mark ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 120 , __pyx_L1_error )
2013-04-15 05:30:35 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
if ( ! PyCFunction_Check ( __pyx_t_1 ) | | ( PyCFunction_GET_FUNCTION ( __pyx_t_1 ) ! = ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_15get_mark ) ) {
__Pyx_XDECREF ( __pyx_r ) ;
2016-06-28 05:03:55 +02:00
__Pyx_INCREF ( __pyx_t_1 ) ;
__pyx_t_3 = __pyx_t_1 ; __pyx_t_4 = NULL ;
if ( CYTHON_COMPILING_IN_CPYTHON & & unlikely ( PyMethod_Check ( __pyx_t_3 ) ) ) {
__pyx_t_4 = PyMethod_GET_SELF ( __pyx_t_3 ) ;
if ( likely ( __pyx_t_4 ) ) {
PyObject * function = PyMethod_GET_FUNCTION ( __pyx_t_3 ) ;
__Pyx_INCREF ( __pyx_t_4 ) ;
__Pyx_INCREF ( function ) ;
__Pyx_DECREF_SET ( __pyx_t_3 , function ) ;
}
}
if ( __pyx_t_4 ) {
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_CallOneArg ( __pyx_t_3 , __pyx_t_4 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 120 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
} else {
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_CallNoArg ( __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 120 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
}
2013-04-15 05:30:35 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2013-04-15 05:30:35 +02:00
__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 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":121
2013-04-15 05:30:35 +02:00
*
* cpdef get_mark ( self ) :
* if self . _mark_is_set : # < < < < < < < < < < < < < <
* return self . _given_mark
* return self . mark
*/
2016-06-28 05:03:55 +02:00
__pyx_t_5 = ( __pyx_v_self - > _mark_is_set ! = 0 ) ;
if ( __pyx_t_5 ) {
2013-04-15 05:30:35 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":122
2013-04-15 05:30:35 +02:00
* cpdef get_mark ( self ) :
* if self . _mark_is_set :
* return self . _given_mark # < < < < < < < < < < < < < <
* return self . mark
*
*/
__Pyx_XDECREF ( __pyx_r ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyInt_From_u_int32_t ( __pyx_v_self - > _given_mark ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 122 , __pyx_L1_error )
2013-04-15 05:30:35 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
2016-06-28 05:03:55 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":121
2016-06-28 05:03:55 +02:00
*
* cpdef get_mark ( self ) :
* if self . _mark_is_set : # < < < < < < < < < < < < < <
* return self . _given_mark
* return self . mark
*/
2013-04-15 05:30:35 +02:00
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":123
2013-04-15 05:30:35 +02:00
* if self . _mark_is_set :
* return self . _given_mark
* return self . mark # < < < < < < < < < < < < < <
*
* cpdef accept ( self ) :
*/
__Pyx_XDECREF ( __pyx_r ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyInt_From_u_int32_t ( __pyx_v_self - > mark ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 123 , __pyx_L1_error )
2013-04-15 05:30:35 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":120
2016-06-28 05:03:55 +02:00
* self . _mark_is_set = True
*
* cpdef get_mark ( self ) : # < < < < < < < < < < < < < <
* if self . _mark_is_set :
* return self . _given_mark
*/
/* function exit code */
2013-04-15 05:30:35 +02:00
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_XDECREF ( __pyx_t_3 ) ;
__Pyx_XDECREF ( __pyx_t_4 ) ;
2013-04-15 05:30:35 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.get_mark " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_6Packet_15get_mark ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static PyObject * __pyx_pw_14netfilterqueue_6Packet_15get_mark ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " get_mark (wrapper) " , 0 ) ;
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_14get_mark ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-15 05:30:35 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_14netfilterqueue_6Packet_14get_mark ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) {
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
__Pyx_RefNannySetupContext ( " get_mark " , 0 ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __pyx_f_14netfilterqueue_6Packet_get_mark ( __pyx_v_self , 1 ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 120 , __pyx_L1_error )
2013-04-15 05:30:35 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-15 05:30:35 +02:00
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_AddTraceback ( " netfilterqueue.Packet.get_mark " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":125
2013-04-15 05:30:35 +02:00
* return self . mark
*
2011-05-12 22:45:14 +02:00
* cpdef accept ( self ) : # < < < < < < < < < < < < < <
* " " " Accept the packet. " " "
* self . verdict ( NF_ACCEPT )
*/
2013-04-15 05:30:35 +02:00
static PyObject * __pyx_pw_14netfilterqueue_6Packet_17accept ( 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 ;
2016-06-28 05:03:55 +02:00
PyObject * __pyx_t_3 = NULL ;
PyObject * __pyx_t_4 = NULL ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " accept " , 0 ) ;
2011-05-12 22:45:14 +02:00
/* Check if called by wrapper */
if ( unlikely ( __pyx_skip_dispatch ) ) ;
2013-04-03 13:55:51 +02:00
/* Check if overridden in Python */
2011-05-12 22:45:14 +02:00
else if ( unlikely ( Py_TYPE ( ( ( PyObject * ) __pyx_v_self ) ) - > tp_dictoffset ! = 0 ) ) {
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyObject_GetAttrStr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s_accept ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 125 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2013-04-15 05:30:35 +02:00
if ( ! PyCFunction_Check ( __pyx_t_1 ) | | ( PyCFunction_GET_FUNCTION ( __pyx_t_1 ) ! = ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_17accept ) ) {
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2016-06-28 05:03:55 +02:00
__Pyx_INCREF ( __pyx_t_1 ) ;
__pyx_t_3 = __pyx_t_1 ; __pyx_t_4 = NULL ;
if ( CYTHON_COMPILING_IN_CPYTHON & & unlikely ( PyMethod_Check ( __pyx_t_3 ) ) ) {
__pyx_t_4 = PyMethod_GET_SELF ( __pyx_t_3 ) ;
if ( likely ( __pyx_t_4 ) ) {
PyObject * function = PyMethod_GET_FUNCTION ( __pyx_t_3 ) ;
__Pyx_INCREF ( __pyx_t_4 ) ;
__Pyx_INCREF ( function ) ;
__Pyx_DECREF_SET ( __pyx_t_3 , function ) ;
}
}
if ( __pyx_t_4 ) {
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_CallOneArg ( __pyx_t_3 , __pyx_t_4 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 125 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
} else {
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_CallNoArg ( __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 125 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
}
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2011-05-12 22:45:14 +02:00
__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 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":127
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
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":125
2016-06-28 05:03:55 +02:00
* return self . mark
*
* cpdef accept ( self ) : # < < < < < < < < < < < < < <
* " " " Accept the packet. " " "
* self . verdict ( NF_ACCEPT )
*/
/* function exit code */
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 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_XDECREF ( __pyx_t_3 ) ;
__Pyx_XDECREF ( __pyx_t_4 ) ;
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 ;
}
2013-04-03 13:55:51 +02:00
/* Python wrapper */
2013-04-15 05:30:35 +02:00
static PyObject * __pyx_pw_14netfilterqueue_6Packet_17accept ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_6Packet_16accept [ ] = " Accept the packet. " ;
static PyObject * __pyx_pw_14netfilterqueue_6Packet_17accept ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
2013-04-03 13:55:51 +02:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " accept (wrapper) " , 0 ) ;
2013-04-15 05:30:35 +02:00
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_16accept ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2013-04-15 05:30:35 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_16accept ( struct __pyx_obj_14netfilterqueue_Packet * __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 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " accept " , 0 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __pyx_f_14netfilterqueue_6Packet_accept ( __pyx_v_self , 1 ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 125 , __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 ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2011-05-12 22:45:14 +02:00
__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 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":129
2011-05-12 22:45:14 +02:00
* self . verdict ( NF_ACCEPT )
*
* cpdef drop ( self ) : # < < < < < < < < < < < < < <
* " " " Drop the packet. " " "
* self . verdict ( NF_DROP )
*/
2013-04-15 05:30:35 +02:00
static PyObject * __pyx_pw_14netfilterqueue_6Packet_19drop ( 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 ;
2016-06-28 05:03:55 +02:00
PyObject * __pyx_t_3 = NULL ;
PyObject * __pyx_t_4 = NULL ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " drop " , 0 ) ;
2011-05-12 22:45:14 +02:00
/* Check if called by wrapper */
if ( unlikely ( __pyx_skip_dispatch ) ) ;
2013-04-03 13:55:51 +02:00
/* Check if overridden in Python */
2011-05-12 22:45:14 +02:00
else if ( unlikely ( Py_TYPE ( ( ( PyObject * ) __pyx_v_self ) ) - > tp_dictoffset ! = 0 ) ) {
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyObject_GetAttrStr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s_drop ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 129 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2013-04-15 05:30:35 +02:00
if ( ! PyCFunction_Check ( __pyx_t_1 ) | | ( PyCFunction_GET_FUNCTION ( __pyx_t_1 ) ! = ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_19drop ) ) {
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2016-06-28 05:03:55 +02:00
__Pyx_INCREF ( __pyx_t_1 ) ;
__pyx_t_3 = __pyx_t_1 ; __pyx_t_4 = NULL ;
if ( CYTHON_COMPILING_IN_CPYTHON & & unlikely ( PyMethod_Check ( __pyx_t_3 ) ) ) {
__pyx_t_4 = PyMethod_GET_SELF ( __pyx_t_3 ) ;
if ( likely ( __pyx_t_4 ) ) {
PyObject * function = PyMethod_GET_FUNCTION ( __pyx_t_3 ) ;
__Pyx_INCREF ( __pyx_t_4 ) ;
__Pyx_INCREF ( function ) ;
__Pyx_DECREF_SET ( __pyx_t_3 , function ) ;
}
}
if ( __pyx_t_4 ) {
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_CallOneArg ( __pyx_t_3 , __pyx_t_4 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 129 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
} else {
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_CallNoArg ( __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 129 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
}
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2011-05-12 22:45:14 +02:00
__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 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":131
2011-05-12 22:45:14 +02:00
* cpdef drop ( self ) :
* " " " Drop the packet. " " "
* self . verdict ( NF_DROP ) # < < < < < < < < < < < < < <
*
2013-04-03 13:55:51 +02:00
* cpdef repeat ( self ) :
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
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":129
2016-06-28 05:03:55 +02:00
* self . verdict ( NF_ACCEPT )
*
* cpdef drop ( self ) : # < < < < < < < < < < < < < <
* " " " Drop the packet. " " "
* self . verdict ( NF_DROP )
*/
/* function exit code */
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 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_XDECREF ( __pyx_t_3 ) ;
__Pyx_XDECREF ( __pyx_t_4 ) ;
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 ;
}
2013-04-03 13:55:51 +02:00
/* Python wrapper */
2013-04-15 05:30:35 +02:00
static PyObject * __pyx_pw_14netfilterqueue_6Packet_19drop ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_6Packet_18drop [ ] = " Drop the packet. " ;
static PyObject * __pyx_pw_14netfilterqueue_6Packet_19drop ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
2013-04-03 13:55:51 +02:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " drop (wrapper) " , 0 ) ;
2013-04-15 05:30:35 +02:00
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_18drop ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2013-04-15 05:30:35 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_18drop ( struct __pyx_obj_14netfilterqueue_Packet * __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 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " drop " , 0 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __pyx_f_14netfilterqueue_6Packet_drop ( __pyx_v_self , 1 ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 129 , __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 ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2011-05-12 22:45:14 +02:00
__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 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":133
2013-04-03 13:55:51 +02:00
* self . verdict ( NF_DROP )
2011-05-12 22:45:14 +02:00
*
2013-04-03 13:55:51 +02:00
* cpdef repeat ( self ) : # < < < < < < < < < < < < < <
* " " " Repeat the packet. " " "
* self . verdict ( NF_REPEAT )
2011-05-12 22:45:14 +02:00
*/
2013-04-15 05:30:35 +02:00
static PyObject * __pyx_pw_14netfilterqueue_6Packet_21repeat ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
2013-04-03 13:55:51 +02:00
static PyObject * __pyx_f_14netfilterqueue_6Packet_repeat ( 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 ;
2013-04-03 13:55:51 +02:00
PyObject * __pyx_t_2 = NULL ;
2016-06-28 05:03:55 +02:00
PyObject * __pyx_t_3 = NULL ;
PyObject * __pyx_t_4 = NULL ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " repeat " , 0 ) ;
/* Check if called by wrapper */
if ( unlikely ( __pyx_skip_dispatch ) ) ;
/* Check if overridden in Python */
else if ( unlikely ( Py_TYPE ( ( ( PyObject * ) __pyx_v_self ) ) - > tp_dictoffset ! = 0 ) ) {
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyObject_GetAttrStr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s_repeat ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 133 , __pyx_L1_error )
2013-04-03 13:55:51 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2013-04-15 05:30:35 +02:00
if ( ! PyCFunction_Check ( __pyx_t_1 ) | | ( PyCFunction_GET_FUNCTION ( __pyx_t_1 ) ! = ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_21repeat ) ) {
2013-04-03 13:55:51 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2016-06-28 05:03:55 +02:00
__Pyx_INCREF ( __pyx_t_1 ) ;
__pyx_t_3 = __pyx_t_1 ; __pyx_t_4 = NULL ;
if ( CYTHON_COMPILING_IN_CPYTHON & & unlikely ( PyMethod_Check ( __pyx_t_3 ) ) ) {
__pyx_t_4 = PyMethod_GET_SELF ( __pyx_t_3 ) ;
if ( likely ( __pyx_t_4 ) ) {
PyObject * function = PyMethod_GET_FUNCTION ( __pyx_t_3 ) ;
__Pyx_INCREF ( __pyx_t_4 ) ;
__Pyx_INCREF ( function ) ;
__Pyx_DECREF_SET ( __pyx_t_3 , function ) ;
}
}
if ( __pyx_t_4 ) {
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_CallOneArg ( __pyx_t_3 , __pyx_t_4 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 133 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
} else {
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_CallNoArg ( __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 133 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
}
2013-04-03 13:55:51 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2013-04-03 13:55:51 +02:00
__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 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":135
2013-04-03 13:55:51 +02:00
* cpdef repeat ( self ) :
* " " " Repeat the packet. " " "
* self . verdict ( NF_REPEAT ) # < < < < < < < < < < < < < <
*
* cdef class NetfilterQueue :
*/
( ( struct __pyx_vtabstruct_14netfilterqueue_Packet * ) __pyx_v_self - > __pyx_vtab ) - > verdict ( __pyx_v_self , __pyx_e_14netfilterqueue_NF_REPEAT ) ;
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":133
2016-06-28 05:03:55 +02:00
* self . verdict ( NF_DROP )
*
* cpdef repeat ( self ) : # < < < < < < < < < < < < < <
* " " " Repeat the packet. " " "
* self . verdict ( NF_REPEAT )
*/
/* function exit code */
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 ) ;
2013-04-03 13:55:51 +02:00
__Pyx_XDECREF ( __pyx_t_2 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_XDECREF ( __pyx_t_3 ) ;
__Pyx_XDECREF ( __pyx_t_4 ) ;
2013-04-03 13:55:51 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.repeat " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = 0 ;
2011-05-12 22:45:14 +02:00
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2013-04-03 13:55:51 +02:00
/* Python wrapper */
2013-04-15 05:30:35 +02:00
static PyObject * __pyx_pw_14netfilterqueue_6Packet_21repeat ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_6Packet_20repeat [ ] = " Repeat the packet. " ;
static PyObject * __pyx_pw_14netfilterqueue_6Packet_21repeat ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
2013-04-03 13:55:51 +02:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " repeat (wrapper) " , 0 ) ;
2013-04-15 05:30:35 +02:00
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_20repeat ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2013-04-15 05:30:35 +02:00
static PyObject * __pyx_pf_14netfilterqueue_6Packet_20repeat ( struct __pyx_obj_14netfilterqueue_Packet * __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 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " repeat " , 0 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __pyx_f_14netfilterqueue_6Packet_repeat ( __pyx_v_self , 1 ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 133 , __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 ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2011-05-12 22:45:14 +02:00
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2013-04-03 13:55:51 +02:00
__Pyx_AddTraceback ( " netfilterqueue.Packet.repeat " , __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 ;
}
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pxd":180
2016-06-28 05:03:55 +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
*/
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_6Packet_2id_1__get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pw_14netfilterqueue_6Packet_2id_1__get__ ( PyObject * __pyx_v_self ) {
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __get__ (wrapper) " , 0 ) ;
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_2id___get__ ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_14netfilterqueue_6Packet_2id___get__ ( struct __pyx_obj_14netfilterqueue_Packet * __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 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " __get__ " , 0 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2016-06-28 08:48:53 +02:00
__pyx_t_1 = __Pyx_PyInt_From_u_int32_t ( __pyx_v_self - > id ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 1 , 180 , __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 ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2011-05-12 22:45:14 +02:00
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2013-04-03 13:55:51 +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 ;
}
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pxd":181
2016-06-28 05:03:55 +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
* cdef readonly u_int32_t mark
*/
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_6Packet_11hw_protocol_1__get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pw_14netfilterqueue_6Packet_11hw_protocol_1__get__ ( PyObject * __pyx_v_self ) {
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __get__ (wrapper) " , 0 ) ;
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_11hw_protocol___get__ ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_14netfilterqueue_6Packet_11hw_protocol___get__ ( struct __pyx_obj_14netfilterqueue_Packet * __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 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " __get__ " , 0 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_XDECREF ( __pyx_r ) ;
2016-06-28 08:48:53 +02:00
__pyx_t_1 = __Pyx_PyInt_From_u_int16_t ( __pyx_v_self - > hw_protocol ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 1 , 181 , __pyx_L1_error )
2013-04-03 13:55:51 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
2011-05-12 22:45:14 +02:00
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2011-05-12 22:45:14 +02:00
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2013-04-03 13:55:51 +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 ;
}
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pxd":182
2016-06-28 05:03:55 +02:00
* cdef readonly u_int32_t id
* cdef readonly u_int16_t hw_protocol
* cdef readonly u_int8_t hook # < < < < < < < < < < < < < <
* cdef readonly u_int32_t mark
*
*/
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_6Packet_4hook_1__get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pw_14netfilterqueue_6Packet_4hook_1__get__ ( PyObject * __pyx_v_self ) {
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __get__ (wrapper) " , 0 ) ;
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_4hook___get__ ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_14netfilterqueue_6Packet_4hook___get__ ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) {
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
__Pyx_RefNannySetupContext ( " __get__ " , 0 ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2016-06-28 08:48:53 +02:00
__pyx_t_1 = __Pyx_PyInt_From_u_int8_t ( __pyx_v_self - > hook ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 1 , 182 , __pyx_L1_error )
2013-04-03 13:55:51 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_AddTraceback ( " netfilterqueue.Packet.hook.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pxd":183
2016-06-28 05:03:55 +02:00
* cdef readonly u_int16_t hw_protocol
* cdef readonly u_int8_t hook
* cdef readonly u_int32_t mark # < < < < < < < < < < < < < <
*
* # Packet details :
*/
2013-04-15 05:30:35 +02:00
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_6Packet_4mark_1__get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pw_14netfilterqueue_6Packet_4mark_1__get__ ( PyObject * __pyx_v_self ) {
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __get__ (wrapper) " , 0 ) ;
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_4mark___get__ ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-15 05:30:35 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_14netfilterqueue_6Packet_4mark___get__ ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) {
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
__Pyx_RefNannySetupContext ( " __get__ " , 0 ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2016-06-28 08:48:53 +02:00
__pyx_t_1 = __Pyx_PyInt_From_u_int32_t ( __pyx_v_self - > mark ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 1 , 183 , __pyx_L1_error )
2013-04-15 05:30:35 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-15 05:30:35 +02:00
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_AddTraceback ( " netfilterqueue.Packet.mark.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pxd":187
2016-06-28 05:03:55 +02:00
* # Packet details :
* cdef Py_ssize_t payload_len
* cdef readonly char * payload # < < < < < < < < < < < < < <
* cdef timeval timestamp
* # TODO : implement these
*/
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_6Packet_7payload_1__get__ ( PyObject * __pyx_v_self ) ; /*proto*/
static PyObject * __pyx_pw_14netfilterqueue_6Packet_7payload_1__get__ ( PyObject * __pyx_v_self ) {
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __get__ (wrapper) " , 0 ) ;
__pyx_r = __pyx_pf_14netfilterqueue_6Packet_7payload___get__ ( ( ( struct __pyx_obj_14netfilterqueue_Packet * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_14netfilterqueue_6Packet_7payload___get__ ( struct __pyx_obj_14netfilterqueue_Packet * __pyx_v_self ) {
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
__Pyx_RefNannySetupContext ( " __get__ " , 0 ) ;
__Pyx_XDECREF ( __pyx_r ) ;
2016-06-28 08:48:53 +02:00
__pyx_t_1 = __Pyx_PyBytes_FromString ( __pyx_v_self - > payload ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 1 , 187 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
2013-04-03 13:55:51 +02:00
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_AddTraceback ( " netfilterqueue.Packet.payload.__get__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":139
2016-06-28 05:03:55 +02:00
* cdef class NetfilterQueue :
* " " " Handle a single numbered queue. " " "
* def __cinit__ ( self , * args , * * kwargs ) : # < < < < < < < < < < < < < <
* self . af = kwargs . get ( " af " , PF_INET )
*
*/
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static int __pyx_pw_14netfilterqueue_14NetfilterQueue_1__cinit__ ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
static int __pyx_pw_14netfilterqueue_14NetfilterQueue_1__cinit__ ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) {
CYTHON_UNUSED PyObject * __pyx_v_args = 0 ;
PyObject * __pyx_v_kwargs = 0 ;
int __pyx_r ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __cinit__ (wrapper) " , 0 ) ;
if ( unlikely ( __pyx_kwds ) & & unlikely ( ! __Pyx_CheckKeywordStrings ( __pyx_kwds , " __cinit__ " , 1 ) ) ) return - 1 ;
2016-06-28 05:03:55 +02:00
__pyx_v_kwargs = ( __pyx_kwds ) ? PyDict_Copy ( __pyx_kwds ) : PyDict_New ( ) ; if ( unlikely ( ! __pyx_v_kwargs ) ) return - 1 ;
2013-04-03 13:55:51 +02:00
__Pyx_GOTREF ( __pyx_v_kwargs ) ;
__Pyx_INCREF ( __pyx_args ) ;
__pyx_v_args = __pyx_args ;
__pyx_r = __pyx_pf_14netfilterqueue_14NetfilterQueue___cinit__ ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) , __pyx_v_args , __pyx_v_kwargs ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_XDECREF ( __pyx_v_args ) ;
__Pyx_XDECREF ( __pyx_v_kwargs ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static int __pyx_pf_14netfilterqueue_14NetfilterQueue___cinit__ ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * __pyx_v_self , CYTHON_UNUSED PyObject * __pyx_v_args , PyObject * __pyx_v_kwargs ) {
2011-05-12 22:45:14 +02:00
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 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " __cinit__ " , 0 ) ;
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":140
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 ( )
*/
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyInt_From_int ( __pyx_e_14netfilterqueue_PF_INET ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 140 , __pyx_L1_error )
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyDict_GetItemDefault ( __pyx_v_kwargs , __pyx_n_s_af , __pyx_t_1 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 140 , __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 ;
2016-10-27 22:49:16 +02:00
__pyx_t_3 = __Pyx_PyInt_As_u_int16_t ( __pyx_t_2 ) ; if ( unlikely ( ( __pyx_t_3 = = ( u_int16_t ) - 1 ) & & PyErr_Occurred ( ) ) ) __PYX_ERR ( 0 , 140 , __pyx_L1_error )
2011-05-13 17:42:05 +02:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2013-04-03 13:55:51 +02:00
__pyx_v_self - > af = __pyx_t_3 ;
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":142
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. " )
*/
2013-04-03 13:55:51 +02:00
__pyx_v_self - > h = nfq_open ( ) ;
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":143
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
*/
2016-06-28 05:03:55 +02:00
__pyx_t_4 = ( ( __pyx_v_self - > h = = NULL ) ! = 0 ) ;
2011-05-13 17:42:05 +02:00
if ( __pyx_t_4 ) {
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":144
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
*/
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_Call ( __pyx_builtin_OSError , __pyx_tuple__3 , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 144 , __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 ;
2016-10-27 22:49:16 +02:00
__PYX_ERR ( 0 , 144 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":143
2016-06-28 05:03:55 +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-05-12 22:45:14 +02:00
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":145
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 :
*/
2013-04-03 13:55:51 +02:00
nfq_unbind_pf ( __pyx_v_self - > h , __pyx_v_self - > af ) ;
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":147
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
*
*/
2016-06-28 05:03:55 +02:00
__pyx_t_4 = ( ( nfq_bind_pf ( __pyx_v_self - > h , __pyx_v_self - > af ) < 0 ) ! = 0 ) ;
2011-05-13 17:42:05 +02:00
if ( __pyx_t_4 ) {
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":148
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 ) :
*/
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyInt_From_u_int16_t ( __pyx_v_self - > af ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 148 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyString_Format ( __pyx_kp_s_Failed_to_bind_family_s_Are_you , __pyx_t_2 ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 148 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2016-10-27 22:49:16 +02:00
__pyx_t_2 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 148 , __pyx_L1_error )
2013-04-03 13:55:51 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_GIVEREF ( __pyx_t_1 ) ;
PyTuple_SET_ITEM ( __pyx_t_2 , 0 , __pyx_t_1 ) ;
2011-05-13 17:42:05 +02:00
__pyx_t_1 = 0 ;
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyObject_Call ( __pyx_builtin_OSError , __pyx_t_2 , NULL ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 148 , __pyx_L1_error )
2011-05-13 17:42:05 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __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 ;
2016-10-27 22:49:16 +02:00
__PYX_ERR ( 0 , 148 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":147
2016-06-28 05:03:55 +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 : # < < < < < < < < < < < < < <
* raise OSError ( " Failed to bind family %s. Are you root? " % self . af )
*
*/
2011-05-12 22:45:14 +02:00
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":139
2016-06-28 05:03:55 +02:00
* cdef class NetfilterQueue :
* " " " Handle a single numbered queue. " " "
* def __cinit__ ( self , * args , * * kwargs ) : # < < < < < < < < < < < < < <
* self . af = kwargs . get ( " af " , PF_INET )
*
*/
/* function exit code */
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 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":150
2016-06-28 05:03:55 +02:00
* raise OSError ( " Failed to bind family %s. Are you root? " % self . af )
*
* def __dealloc__ ( self ) : # < < < < < < < < < < < < < <
* if self . qh ! = NULL :
* nfq_destroy_queue ( self . qh )
*/
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static void __pyx_pw_14netfilterqueue_14NetfilterQueue_3__dealloc__ ( PyObject * __pyx_v_self ) ; /*proto*/
static void __pyx_pw_14netfilterqueue_14NetfilterQueue_3__dealloc__ ( PyObject * __pyx_v_self ) {
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __dealloc__ (wrapper) " , 0 ) ;
__pyx_pf_14netfilterqueue_14NetfilterQueue_2__dealloc__ ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
}
static void __pyx_pf_14netfilterqueue_14NetfilterQueue_2__dealloc__ ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * __pyx_v_self ) {
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2011-05-12 22:45:14 +02:00
int __pyx_t_1 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " __dealloc__ " , 0 ) ;
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":151
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
*/
2016-06-28 05:03:55 +02:00
__pyx_t_1 = ( ( __pyx_v_self - > qh ! = NULL ) ! = 0 ) ;
2011-05-12 22:45:14 +02:00
if ( __pyx_t_1 ) {
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":152
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 !
*/
2013-04-03 13:55:51 +02:00
nfq_destroy_queue ( __pyx_v_self - > qh ) ;
2016-06-28 05:03:55 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":151
2016-06-28 05:03:55 +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-05-12 22:45:14 +02:00
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":155
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
*/
2013-04-03 13:55:51 +02:00
nfq_close ( __pyx_v_self - > h ) ;
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":150
2016-06-28 05:03:55 +02:00
* raise OSError ( " Failed to bind family %s. Are you root? " % self . af )
*
* def __dealloc__ ( self ) : # < < < < < < < < < < < < < <
* if self . qh ! = NULL :
* nfq_destroy_queue ( self . qh )
*/
/* function exit code */
2011-05-12 22:45:14 +02:00
__Pyx_RefNannyFinishContext ( ) ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":157
2016-06-28 05:03:55 +02:00
* nfq_close ( self . h )
*
* def bind ( self , int queue_num , object user_callback , # < < < < < < < < < < < < < <
* u_int32_t max_len = DEFAULT_MAX_QUEUELEN ,
* u_int8_t mode = NFQNL_COPY_PACKET ,
*/
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_14NetfilterQueue_5bind ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_14NetfilterQueue_4bind [ ] = " Create and bind to a new queue. " ;
static PyObject * __pyx_pw_14netfilterqueue_14NetfilterQueue_5bind ( 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 ;
2015-08-06 22:26:40 +02:00
u_int32_t __pyx_v_sock_len ;
2013-04-03 13:55:51 +02:00
PyObject * __pyx_r = 0 ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " bind (wrapper) " , 0 ) ;
2011-10-14 23:14:25 +02:00
{
2015-08-06 22:26:40 +02:00
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 , & __pyx_n_s_sock_len , 0 } ;
PyObject * values [ 6 ] = { 0 , 0 , 0 , 0 , 0 , 0 } ;
2011-10-14 23:14:25 +02:00
if ( unlikely ( __pyx_kwds ) ) {
Py_ssize_t kw_args ;
2013-04-03 13:55:51 +02:00
const Py_ssize_t pos_args = PyTuple_GET_SIZE ( __pyx_args ) ;
switch ( pos_args ) {
2015-08-06 22:26:40 +02:00
case 6 : values [ 5 ] = PyTuple_GET_ITEM ( __pyx_args , 5 ) ;
2011-10-14 23:14:25 +02:00
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 ) ;
2013-04-03 13:55:51 +02:00
switch ( pos_args ) {
2011-10-14 23:14:25 +02:00
case 0 :
2016-06-28 05:03:55 +02:00
if ( likely ( ( values [ 0 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_queue_num ) ) ! = 0 ) ) kw_args - - ;
2011-10-14 23:14:25 +02:00
else goto __pyx_L5_argtuple_error ;
case 1 :
2016-06-28 05:03:55 +02:00
if ( likely ( ( values [ 1 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_user_callback ) ) ! = 0 ) ) kw_args - - ;
2011-10-14 23:14:25 +02:00
else {
2016-10-27 22:49:16 +02:00
__Pyx_RaiseArgtupleInvalid ( " bind " , 0 , 2 , 6 , 1 ) ; __PYX_ERR ( 0 , 157 , __pyx_L3_error )
2011-10-14 23:14:25 +02:00
}
case 2 :
if ( kw_args > 0 ) {
2016-06-28 05:03:55 +02:00
PyObject * value = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_max_len ) ;
2011-10-14 23:14:25 +02:00
if ( value ) { values [ 2 ] = value ; kw_args - - ; }
}
case 3 :
if ( kw_args > 0 ) {
2016-06-28 05:03:55 +02:00
PyObject * value = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_mode ) ;
2011-10-14 23:14:25 +02:00
if ( value ) { values [ 3 ] = value ; kw_args - - ; }
}
case 4 :
if ( kw_args > 0 ) {
2016-06-28 05:03:55 +02:00
PyObject * value = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_range ) ;
2011-10-14 23:14:25 +02:00
if ( value ) { values [ 4 ] = value ; kw_args - - ; }
}
2015-08-06 22:26:40 +02:00
case 5 :
if ( kw_args > 0 ) {
PyObject * value = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_sock_len ) ;
if ( value ) { values [ 5 ] = value ; kw_args - - ; }
}
2011-05-12 22:45:14 +02:00
}
2011-10-14 23:14:25 +02:00
if ( unlikely ( kw_args > 0 ) ) {
2016-10-27 22:49:16 +02:00
if ( unlikely ( __Pyx_ParseOptionalKeywords ( __pyx_kwds , __pyx_pyargnames , 0 , values , pos_args , " bind " ) < 0 ) ) __PYX_ERR ( 0 , 157 , __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 ) ) {
2015-08-06 22:26:40 +02:00
case 6 : values [ 5 ] = PyTuple_GET_ITEM ( __pyx_args , 5 ) ;
2011-10-14 23:14:25 +02:00
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
}
}
2016-10-27 22:49:16 +02:00
__pyx_v_queue_num = __Pyx_PyInt_As_int ( values [ 0 ] ) ; if ( unlikely ( ( __pyx_v_queue_num = = ( int ) - 1 ) & & PyErr_Occurred ( ) ) ) __PYX_ERR ( 0 , 157 , __pyx_L3_error )
2011-10-14 23:14:25 +02:00
__pyx_v_user_callback = values [ 1 ] ;
if ( values [ 2 ] ) {
2016-10-27 22:49:16 +02:00
__pyx_v_max_len = __Pyx_PyInt_As_u_int32_t ( values [ 2 ] ) ; if ( unlikely ( ( __pyx_v_max_len = = ( u_int32_t ) - 1 ) & & PyErr_Occurred ( ) ) ) __PYX_ERR ( 0 , 158 , __pyx_L3_error )
2011-05-13 17:42:05 +02:00
} else {
2016-06-28 05:36:00 +02:00
__pyx_v_max_len = ( ( u_int32_t ) 0x400 ) ;
2011-05-13 17:42:05 +02:00
}
2011-10-14 23:14:25 +02:00
if ( values [ 3 ] ) {
2016-10-27 22:49:16 +02:00
__pyx_v_mode = __Pyx_PyInt_As_u_int8_t ( values [ 3 ] ) ; if ( unlikely ( ( __pyx_v_mode = = ( u_int8_t ) - 1 ) & & PyErr_Occurred ( ) ) ) __PYX_ERR ( 0 , 159 , __pyx_L3_error )
2011-05-12 22:45:14 +02:00
} else {
2015-08-06 22:26:40 +02:00
__pyx_v_mode = __pyx_k__4 ;
2011-05-12 22:45:14 +02:00
}
2011-10-14 23:14:25 +02:00
if ( values [ 4 ] ) {
2016-10-27 22:49:16 +02:00
__pyx_v_range = __Pyx_PyInt_As_u_int32_t ( values [ 4 ] ) ; if ( unlikely ( ( __pyx_v_range = = ( u_int32_t ) - 1 ) & & PyErr_Occurred ( ) ) ) __PYX_ERR ( 0 , 160 , __pyx_L3_error )
2011-05-12 22:45:14 +02:00
} else {
2016-06-28 05:03:55 +02:00
__pyx_v_range = ( ( u_int32_t ) 0xFFFF ) ;
2011-05-12 22:45:14 +02:00
}
2015-08-06 22:26:40 +02:00
if ( values [ 5 ] ) {
2016-10-27 22:49:16 +02:00
__pyx_v_sock_len = __Pyx_PyInt_As_u_int32_t ( values [ 5 ] ) ; if ( unlikely ( ( __pyx_v_sock_len = = ( u_int32_t ) - 1 ) & & PyErr_Occurred ( ) ) ) __PYX_ERR ( 0 , 161 , __pyx_L3_error )
2015-08-06 22:26:40 +02:00
} else {
2016-06-28 05:36:00 +02:00
__pyx_v_sock_len = ( ( u_int32_t ) 0x257800 ) ;
2015-08-06 22:26:40 +02:00
}
2011-05-12 22:45:14 +02:00
}
goto __pyx_L4_argument_unpacking_done ;
__pyx_L5_argtuple_error : ;
2016-10-27 22:49:16 +02:00
__Pyx_RaiseArgtupleInvalid ( " bind " , 0 , 2 , 6 , PyTuple_GET_SIZE ( __pyx_args ) ) ; __PYX_ERR ( 0 , 157 , __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 : ;
2015-08-06 22:26:40 +02:00
__pyx_r = __pyx_pf_14netfilterqueue_14NetfilterQueue_4bind ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) , __pyx_v_queue_num , __pyx_v_user_callback , __pyx_v_max_len , __pyx_v_mode , __pyx_v_range , __pyx_v_sock_len ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2011-05-12 22:45:14 +02:00
2015-08-06 22:26:40 +02:00
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_4bind ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * __pyx_v_self , int __pyx_v_queue_num , PyObject * __pyx_v_user_callback , u_int32_t __pyx_v_max_len , u_int8_t __pyx_v_mode , u_int32_t __pyx_v_range , u_int32_t __pyx_v_sock_len ) {
unsigned int __pyx_v_newsiz ;
2013-04-03 13:55:51 +02:00
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
int __pyx_t_1 ;
PyObject * __pyx_t_2 = NULL ;
PyObject * __pyx_t_3 = NULL ;
2015-08-06 22:26:40 +02:00
PyObject * __pyx_t_4 = NULL ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " bind " , 0 ) ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":164
2011-10-14 23:14:25 +02:00
* " " " Create and bind to a new queue. " " "
2015-08-06 22:26:40 +02:00
* cdef unsigned int newsiz
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-10-14 23:14:25 +02:00
*/
__Pyx_INCREF ( __pyx_v_user_callback ) ;
__Pyx_GIVEREF ( __pyx_v_user_callback ) ;
2013-04-03 13:55:51 +02:00
__Pyx_GOTREF ( __pyx_v_self - > user_callback ) ;
__Pyx_DECREF ( __pyx_v_self - > user_callback ) ;
__pyx_v_self - > user_callback = __pyx_v_user_callback ;
2011-10-14 23:14:25 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":165
2015-08-06 22:26:40 +02:00
* cdef unsigned int newsiz
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 :
*/
2013-04-03 13:55:51 +02:00
__pyx_v_self - > qh = nfq_create_queue ( __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
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":167
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 : # < < < < < < < < < < < < < <
* raise OSError ( " Failed to create queue %s. " % queue_num )
*
*/
2016-06-28 05:03:55 +02:00
__pyx_t_1 = ( ( __pyx_v_self - > qh = = NULL ) ! = 0 ) ;
2011-05-12 22:45:14 +02:00
if ( __pyx_t_1 ) {
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":168
2012-12-24 04:17:54 +01:00
* < 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 :
*/
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyInt_From_int ( __pyx_v_queue_num ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 168 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_3 = __Pyx_PyString_Format ( __pyx_kp_s_Failed_to_create_queue_s , __pyx_t_2 ) ; if ( unlikely ( ! __pyx_t_3 ) ) __PYX_ERR ( 0 , 168 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2016-10-27 22:49:16 +02:00
__pyx_t_2 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 168 , __pyx_L1_error )
2013-04-03 13:55:51 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_GIVEREF ( __pyx_t_3 ) ;
PyTuple_SET_ITEM ( __pyx_t_2 , 0 , __pyx_t_3 ) ;
2011-05-12 22:45:14 +02:00
__pyx_t_3 = 0 ;
2016-10-27 22:49:16 +02:00
__pyx_t_3 = __Pyx_PyObject_Call ( __pyx_builtin_OSError , __pyx_t_2 , NULL ) ; if ( unlikely ( ! __pyx_t_3 ) ) __PYX_ERR ( 0 , 168 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __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 ;
2016-10-27 22:49:16 +02:00
__PYX_ERR ( 0 , 168 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":167
2016-06-28 05:03:55 +02:00
* self . qh = nfq_create_queue ( self . h , queue_num ,
* < nfq_callback * > global_callback , < void * > self )
* if self . qh = = NULL : # < < < < < < < < < < < < < <
* raise OSError ( " Failed to create queue %s. " % queue_num )
*
*/
2011-05-12 22:45:14 +02:00
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":170
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 :
*/
2016-06-28 05:03:55 +02:00
__pyx_t_1 = ( ( __pyx_v_range > 0xFB0 ) ! = 0 ) ;
2011-05-12 22:45:14 +02:00
if ( __pyx_t_1 ) {
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":171
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. " )
*/
2016-06-28 05:03:55 +02:00
__pyx_v_range = 0xFB0 ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":170
2016-06-28 05:03:55 +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 :
*/
2011-05-12 22:45:14 +02:00
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":172
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. " )
*
*/
2016-06-28 05:03:55 +02:00
__pyx_t_1 = ( ( nfq_set_mode ( __pyx_v_self - > qh , __pyx_v_mode , __pyx_v_range ) < 0 ) ! = 0 ) ;
2011-05-12 22:45:14 +02:00
if ( __pyx_t_1 ) {
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":173
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
*/
2016-10-27 22:49:16 +02:00
__pyx_t_3 = __Pyx_PyObject_Call ( __pyx_builtin_OSError , __pyx_tuple__5 , NULL ) ; if ( unlikely ( ! __pyx_t_3 ) ) __PYX_ERR ( 0 , 173 , __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 ;
2016-10-27 22:49:16 +02:00
__PYX_ERR ( 0 , 173 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":172
2016-06-28 05:03:55 +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-05-12 22:45:14 +02:00
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":175
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
*
2015-08-06 22:26:40 +02:00
* newsiz = nfnl_rcvbufsiz ( nfq_nfnlh ( self . h ) , sock_len )
2011-05-12 22:45:14 +02:00
*/
2013-04-03 13:55:51 +02:00
nfq_set_queue_maxlen ( __pyx_v_self - > qh , __pyx_v_max_len ) ;
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":177
2015-08-06 22:26:40 +02:00
* nfq_set_queue_maxlen ( self . qh , max_len )
*
* newsiz = nfnl_rcvbufsiz ( nfq_nfnlh ( self . h ) , sock_len ) # < < < < < < < < < < < < < <
* if newsiz ! = sock_len * 2 :
* raise RuntimeWarning ( " Socket rcvbuf limit is now %d, requested %d. " % ( newsiz , sock_len ) )
*/
__pyx_v_newsiz = nfnl_rcvbufsiz ( nfq_nfnlh ( __pyx_v_self - > h ) , __pyx_v_sock_len ) ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":178
2015-08-06 22:26:40 +02:00
*
* newsiz = nfnl_rcvbufsiz ( nfq_nfnlh ( self . h ) , sock_len )
* if newsiz ! = sock_len * 2 : # < < < < < < < < < < < < < <
* raise RuntimeWarning ( " Socket rcvbuf limit is now %d, requested %d. " % ( newsiz , sock_len ) )
*
*/
__pyx_t_1 = ( ( __pyx_v_newsiz ! = ( __pyx_v_sock_len * 2 ) ) ! = 0 ) ;
if ( __pyx_t_1 ) {
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":179
2015-08-06 22:26:40 +02:00
* newsiz = nfnl_rcvbufsiz ( nfq_nfnlh ( self . h ) , sock_len )
* if newsiz ! = sock_len * 2 :
* raise RuntimeWarning ( " Socket rcvbuf limit is now %d, requested %d. " % ( newsiz , sock_len ) ) # < < < < < < < < < < < < < <
*
* def unbind ( self ) :
*/
2016-10-27 22:49:16 +02:00
__pyx_t_3 = __Pyx_PyInt_From_unsigned_int ( __pyx_v_newsiz ) ; if ( unlikely ( ! __pyx_t_3 ) ) __PYX_ERR ( 0 , 179 , __pyx_L1_error )
2015-08-06 22:26:40 +02:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyInt_From_u_int32_t ( __pyx_v_sock_len ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 179 , __pyx_L1_error )
2015-08-06 22:26:40 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_4 = PyTuple_New ( 2 ) ; if ( unlikely ( ! __pyx_t_4 ) ) __PYX_ERR ( 0 , 179 , __pyx_L1_error )
2015-08-06 22:26:40 +02:00
__Pyx_GOTREF ( __pyx_t_4 ) ;
__Pyx_GIVEREF ( __pyx_t_3 ) ;
2016-06-28 05:36:00 +02:00
PyTuple_SET_ITEM ( __pyx_t_4 , 0 , __pyx_t_3 ) ;
2015-08-06 22:26:40 +02:00
__Pyx_GIVEREF ( __pyx_t_2 ) ;
2016-06-28 05:36:00 +02:00
PyTuple_SET_ITEM ( __pyx_t_4 , 1 , __pyx_t_2 ) ;
2015-08-06 22:26:40 +02:00
__pyx_t_3 = 0 ;
__pyx_t_2 = 0 ;
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyString_Format ( __pyx_kp_s_Socket_rcvbuf_limit_is_now_d_req , __pyx_t_4 ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 179 , __pyx_L1_error )
2015-08-06 22:26:40 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
2016-10-27 22:49:16 +02:00
__pyx_t_4 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_t_4 ) ) __PYX_ERR ( 0 , 179 , __pyx_L1_error )
2015-08-06 22:26:40 +02:00
__Pyx_GOTREF ( __pyx_t_4 ) ;
__Pyx_GIVEREF ( __pyx_t_2 ) ;
2016-06-28 05:36:00 +02:00
PyTuple_SET_ITEM ( __pyx_t_4 , 0 , __pyx_t_2 ) ;
2015-08-06 22:26:40 +02:00
__pyx_t_2 = 0 ;
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_Call ( __pyx_builtin_RuntimeWarning , __pyx_t_4 , NULL ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 179 , __pyx_L1_error )
2015-08-06 22:26:40 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
__Pyx_Raise ( __pyx_t_2 , 0 , 0 , 0 ) ;
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2016-10-27 22:49:16 +02:00
__PYX_ERR ( 0 , 179 , __pyx_L1_error )
2016-06-28 05:36:00 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":178
2016-06-28 05:36:00 +02:00
*
* newsiz = nfnl_rcvbufsiz ( nfq_nfnlh ( self . h ) , sock_len )
* if newsiz ! = sock_len * 2 : # < < < < < < < < < < < < < <
* raise RuntimeWarning ( " Socket rcvbuf limit is now %d, requested %d. " % ( newsiz , sock_len ) )
*
*/
2015-08-06 22:26:40 +02:00
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":157
2016-06-28 05:03:55 +02:00
* nfq_close ( self . h )
*
* def bind ( self , int queue_num , object user_callback , # < < < < < < < < < < < < < <
* u_int32_t max_len = DEFAULT_MAX_QUEUELEN ,
* u_int8_t mode = NFQNL_COPY_PACKET ,
*/
/* function exit code */
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 ) ;
2015-08-06 22:26:40 +02:00
__Pyx_XDECREF ( __pyx_t_4 ) ;
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 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":181
2015-08-06 22:26:40 +02:00
* raise RuntimeWarning ( " Socket rcvbuf limit is now %d, requested %d. " % ( newsiz , sock_len ) )
2016-06-28 05:03:55 +02:00
*
* def unbind ( self ) : # < < < < < < < < < < < < < <
* " " " Destroy the queue. " " "
* if self . qh ! = NULL :
*/
2013-04-03 13:55:51 +02:00
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_14NetfilterQueue_7unbind ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_14NetfilterQueue_6unbind [ ] = " Destroy the queue. " ;
static PyObject * __pyx_pw_14netfilterqueue_14NetfilterQueue_7unbind ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " unbind (wrapper) " , 0 ) ;
__pyx_r = __pyx_pf_14netfilterqueue_14NetfilterQueue_6unbind ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_6unbind ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * __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
int __pyx_t_1 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " unbind " , 0 ) ;
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":183
2011-05-12 22:45:14 +02:00
* def unbind ( self ) :
* " " " Destroy the queue. " " "
* if self . qh ! = NULL : # < < < < < < < < < < < < < <
* nfq_destroy_queue ( self . qh )
2016-06-28 05:03:55 +02:00
* self . qh = NULL
2011-05-12 22:45:14 +02:00
*/
2016-06-28 05:03:55 +02:00
__pyx_t_1 = ( ( __pyx_v_self - > qh ! = NULL ) ! = 0 ) ;
2011-05-12 22:45:14 +02:00
if ( __pyx_t_1 ) {
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":184
2011-05-12 22:45:14 +02:00
* " " " Destroy the queue. " " "
* if self . qh ! = NULL :
* nfq_destroy_queue ( self . qh ) # < < < < < < < < < < < < < <
2016-06-28 05:03:55 +02:00
* self . qh = NULL
2011-05-12 22:45:14 +02:00
* # See warning about nfq_unbind_pf in __dealloc__ above .
*/
2013-04-03 13:55:51 +02:00
nfq_destroy_queue ( __pyx_v_self - > qh ) ;
2016-06-28 05:03:55 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":183
2016-06-28 05:03:55 +02:00
* def unbind ( self ) :
* " " " Destroy the queue. " " "
* if self . qh ! = NULL : # < < < < < < < < < < < < < <
* nfq_destroy_queue ( self . qh )
* self . qh = NULL
*/
2011-05-12 22:45:14 +02:00
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":185
2016-06-28 05:03:55 +02:00
* if self . qh ! = NULL :
* nfq_destroy_queue ( self . qh )
* self . qh = NULL # < < < < < < < < < < < < < <
* # See warning about nfq_unbind_pf in __dealloc__ above .
*
*/
__pyx_v_self - > qh = NULL ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":181
2015-08-06 22:26:40 +02:00
* raise RuntimeWarning ( " Socket rcvbuf limit is now %d, requested %d. " % ( newsiz , sock_len ) )
2016-06-28 05:03:55 +02:00
*
* def unbind ( self ) : # < < < < < < < < < < < < < <
* " " " Destroy the queue. " " "
* if self . qh ! = NULL :
*/
/* function exit code */
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 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":188
2016-06-28 05:03:55 +02:00
* # See warning about nfq_unbind_pf in __dealloc__ above .
*
2015-11-17 23:07:50 +01:00
* def get_fd ( self ) : # < < < < < < < < < < < < < <
* " " " Get the file descriptor of the queue handler. " " "
* return nfq_fd ( self . h )
*/
2013-04-03 13:55:51 +02:00
/* Python wrapper */
2015-11-17 23:07:50 +01:00
static PyObject * __pyx_pw_14netfilterqueue_14NetfilterQueue_9get_fd ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_14NetfilterQueue_8get_fd [ ] = " Get the file descriptor of the queue handler. " ;
static PyObject * __pyx_pw_14netfilterqueue_14NetfilterQueue_9get_fd ( PyObject * __pyx_v_self , CYTHON_UNUSED PyObject * unused ) {
2013-04-03 13:55:51 +02:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
2015-11-17 23:07:50 +01:00
__Pyx_RefNannySetupContext ( " get_fd (wrapper) " , 0 ) ;
__pyx_r = __pyx_pf_14netfilterqueue_14NetfilterQueue_8get_fd ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) ) ;
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-11-17 23:07:50 +01:00
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_8get_fd ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * __pyx_v_self ) {
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
__Pyx_RefNannySetupContext ( " get_fd " , 0 ) ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":190
2015-11-17 23:07:50 +01:00
* def get_fd ( self ) :
* " " " Get the file descriptor of the queue handler. " " "
* return nfq_fd ( self . h ) # < < < < < < < < < < < < < <
*
* def run ( self , block = True ) :
*/
__Pyx_XDECREF ( __pyx_r ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyInt_From_int ( nfq_fd ( __pyx_v_self - > h ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 190 , __pyx_L1_error )
2015-11-17 23:07:50 +01:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":188
2011-05-12 22:45:14 +02:00
* # See warning about nfq_unbind_pf in __dealloc__ above .
*
2015-11-17 23:07:50 +01:00
* def get_fd ( self ) : # < < < < < < < < < < < < < <
* " " " Get the file descriptor of the queue handler. " " "
* return nfq_fd ( self . h )
*/
/* function exit code */
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_AddTraceback ( " netfilterqueue.NetfilterQueue.get_fd " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":192
2015-11-17 23:07:50 +01:00
* return nfq_fd ( self . h )
*
* def run ( self , block = True ) : # < < < < < < < < < < < < < <
2016-06-28 08:48:53 +02:00
* " " " Accept packets using recv. " " "
* cdef int fd = self . get_fd ( )
2016-06-28 05:03:55 +02:00
*/
2013-04-03 13:55:51 +02:00
/* Python wrapper */
2015-11-17 23:07:50 +01:00
static PyObject * __pyx_pw_14netfilterqueue_14NetfilterQueue_11run ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
2016-06-28 08:48:53 +02:00
static char __pyx_doc_14netfilterqueue_14NetfilterQueue_10run [ ] = " Accept packets using recv. " ;
2015-11-17 23:07:50 +01:00
static PyObject * __pyx_pw_14netfilterqueue_14NetfilterQueue_11run ( PyObject * __pyx_v_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) {
PyObject * __pyx_v_block = 0 ;
2013-04-03 13:55:51 +02:00
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " run (wrapper) " , 0 ) ;
2015-11-17 23:07:50 +01:00
{
static PyObject * * __pyx_pyargnames [ ] = { & __pyx_n_s_block , 0 } ;
PyObject * values [ 1 ] = { 0 } ;
values [ 0 ] = ( ( PyObject * ) Py_True ) ;
if ( unlikely ( __pyx_kwds ) ) {
Py_ssize_t kw_args ;
const Py_ssize_t pos_args = PyTuple_GET_SIZE ( __pyx_args ) ;
switch ( pos_args ) {
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 ( pos_args ) {
case 0 :
if ( kw_args > 0 ) {
PyObject * value = PyDict_GetItem ( __pyx_kwds , __pyx_n_s_block ) ;
if ( value ) { values [ 0 ] = value ; kw_args - - ; }
}
}
if ( unlikely ( kw_args > 0 ) ) {
2016-10-27 22:49:16 +02:00
if ( unlikely ( __Pyx_ParseOptionalKeywords ( __pyx_kwds , __pyx_pyargnames , 0 , values , pos_args , " run " ) < 0 ) ) __PYX_ERR ( 0 , 192 , __pyx_L3_error )
2015-11-17 23:07:50 +01:00
}
} else {
switch ( PyTuple_GET_SIZE ( __pyx_args ) ) {
case 1 : values [ 0 ] = PyTuple_GET_ITEM ( __pyx_args , 0 ) ;
case 0 : break ;
default : goto __pyx_L5_argtuple_error ;
}
}
__pyx_v_block = values [ 0 ] ;
}
goto __pyx_L4_argument_unpacking_done ;
__pyx_L5_argtuple_error : ;
2016-10-27 22:49:16 +02:00
__Pyx_RaiseArgtupleInvalid ( " run " , 0 , 0 , 1 , PyTuple_GET_SIZE ( __pyx_args ) ) ; __PYX_ERR ( 0 , 192 , __pyx_L3_error )
2015-11-17 23:07:50 +01:00
__pyx_L3_error : ;
__Pyx_AddTraceback ( " netfilterqueue.NetfilterQueue.run " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__Pyx_RefNannyFinishContext ( ) ;
return NULL ;
__pyx_L4_argument_unpacking_done : ;
__pyx_r = __pyx_pf_14netfilterqueue_14NetfilterQueue_10run ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) , __pyx_v_block ) ;
2016-06-28 05:03:55 +02:00
/* function exit code */
2013-04-03 13:55:51 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2015-11-17 23:07:50 +01:00
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_10run ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * __pyx_v_self , PyObject * __pyx_v_block ) {
2011-05-12 22:45:14 +02:00
int __pyx_v_fd ;
2016-06-28 05:03:55 +02:00
char __pyx_v_buf [ 0x1000 ] ;
2011-05-12 22:45:14 +02:00
int __pyx_v_rv ;
2015-11-17 23:07:50 +01:00
int __pyx_v_recv_flags ;
2011-05-12 22:45:14 +02:00
PyObject * __pyx_r = NULL ;
2011-10-14 23:14:25 +02:00
__Pyx_RefNannyDeclarations
2016-06-28 08:48:53 +02:00
PyObject * __pyx_t_1 = NULL ;
PyObject * __pyx_t_2 = NULL ;
PyObject * __pyx_t_3 = NULL ;
int __pyx_t_4 ;
int __pyx_t_5 ;
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " run " , 0 ) ;
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":194
2015-11-17 23:07:50 +01:00
* def run ( self , block = True ) :
2016-06-28 08:48:53 +02:00
* " " " Accept packets using recv. " " "
* cdef int fd = self . get_fd ( ) # < < < < < < < < < < < < < <
2011-05-12 22:45:14 +02:00
* cdef char buf [ BufferSize ]
* cdef int rv
*/
2016-10-27 22:49:16 +02:00
__pyx_t_2 = __Pyx_PyObject_GetAttrStr ( ( ( PyObject * ) __pyx_v_self ) , __pyx_n_s_get_fd ) ; if ( unlikely ( ! __pyx_t_2 ) ) __PYX_ERR ( 0 , 194 , __pyx_L1_error )
2016-06-28 08:48:53 +02:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__pyx_t_3 = NULL ;
if ( CYTHON_COMPILING_IN_CPYTHON & & likely ( PyMethod_Check ( __pyx_t_2 ) ) ) {
__pyx_t_3 = PyMethod_GET_SELF ( __pyx_t_2 ) ;
if ( likely ( __pyx_t_3 ) ) {
PyObject * function = PyMethod_GET_FUNCTION ( __pyx_t_2 ) ;
__Pyx_INCREF ( __pyx_t_3 ) ;
__Pyx_INCREF ( function ) ;
__Pyx_DECREF_SET ( __pyx_t_2 , function ) ;
}
}
if ( __pyx_t_3 ) {
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyObject_CallOneArg ( __pyx_t_2 , __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 194 , __pyx_L1_error )
2016-06-28 08:48:53 +02:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
} else {
2016-10-27 22:49:16 +02:00
__pyx_t_1 = __Pyx_PyObject_CallNoArg ( __pyx_t_2 ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 194 , __pyx_L1_error )
2016-06-28 08:48:53 +02:00
}
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2016-10-27 22:49:16 +02:00
__pyx_t_4 = __Pyx_PyInt_As_int ( __pyx_t_1 ) ; if ( unlikely ( ( __pyx_t_4 = = ( int ) - 1 ) & & PyErr_Occurred ( ) ) ) __PYX_ERR ( 0 , 194 , __pyx_L1_error )
2016-06-28 08:48:53 +02:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
__pyx_v_fd = __pyx_t_4 ;
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":198
2011-05-12 22:45:14 +02:00
* cdef int rv
2015-11-17 23:07:50 +01:00
* cdef int recv_flags
* recv_flags = 0 if block else MSG_DONTWAIT # < < < < < < < < < < < < < <
2016-06-28 05:46:50 +02:00
*
* while True :
2015-11-17 23:07:50 +01:00
*/
2016-10-27 22:49:16 +02:00
__pyx_t_5 = __Pyx_PyObject_IsTrue ( __pyx_v_block ) ; if ( unlikely ( __pyx_t_5 < 0 ) ) __PYX_ERR ( 0 , 198 , __pyx_L1_error )
2016-06-28 08:48:53 +02:00
if ( __pyx_t_5 ) {
__pyx_t_4 = 0 ;
2015-11-17 23:07:50 +01:00
} else {
2016-06-28 08:48:53 +02:00
__pyx_t_4 = MSG_DONTWAIT ;
2015-11-17 23:07:50 +01:00
}
2016-06-28 08:48:53 +02:00
__pyx_v_recv_flags = __pyx_t_4 ;
2015-11-17 23:07:50 +01:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":200
2015-11-17 23:07:50 +01:00
* recv_flags = 0 if block else MSG_DONTWAIT
2016-06-28 05:46:50 +02:00
*
2015-08-06 22:26:40 +02:00
* while True : # < < < < < < < < < < < < < <
2011-05-12 22:45:14 +02:00
* with nogil :
2015-11-17 23:07:50 +01:00
* rv = recv ( fd , buf , sizeof ( buf ) , recv_flags )
2011-05-12 22:45:14 +02:00
*/
2015-08-06 22:26:40 +02:00
while ( 1 ) {
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":201
2016-06-28 05:46:50 +02:00
*
2015-08-06 22:26:40 +02:00
* while True :
2011-05-12 22:45:14 +02:00
* with nogil : # < < < < < < < < < < < < < <
2015-11-17 23:07:50 +01:00
* rv = recv ( fd , buf , sizeof ( buf ) , recv_flags )
2015-08-06 22:26:40 +02:00
* if ( rv > = 0 ) :
2011-05-12 22:45:14 +02:00
*/
{
2011-10-14 23:14:25 +02:00
# ifdef WITH_THREAD
2016-06-28 05:03:55 +02:00
PyThreadState * _save ;
2011-10-14 23:14:25 +02:00
Py_UNBLOCK_THREADS
2016-06-28 05:03:55 +02:00
# endif
2011-10-14 23:14:25 +02:00
/*try:*/ {
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":202
2015-08-06 22:26:40 +02:00
* while True :
2011-05-12 22:45:14 +02:00
* with nogil :
2015-11-17 23:07:50 +01:00
* rv = recv ( fd , buf , sizeof ( buf ) , recv_flags ) # < < < < < < < < < < < < < <
2015-08-06 22:26:40 +02:00
* if ( rv > = 0 ) :
* nfq_handle_packet ( self . h , buf , rv )
2011-05-12 22:45:14 +02:00
*/
2015-11-17 23:07:50 +01:00
__pyx_v_rv = recv ( __pyx_v_fd , __pyx_v_buf , ( sizeof ( __pyx_v_buf ) ) , __pyx_v_recv_flags ) ;
2011-10-14 23:14:25 +02:00
}
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":201
2016-06-28 05:46:50 +02:00
*
2015-08-06 22:26:40 +02:00
* while True :
2011-05-12 22:45:14 +02:00
* with nogil : # < < < < < < < < < < < < < <
2015-11-17 23:07:50 +01:00
* rv = recv ( fd , buf , sizeof ( buf ) , recv_flags )
2015-08-06 22:26:40 +02:00
* if ( rv > = 0 ) :
2011-05-12 22:45:14 +02:00
*/
2011-10-14 23:14:25 +02:00
/*finally:*/ {
2016-06-28 05:03:55 +02:00
/*normal exit:*/ {
# ifdef WITH_THREAD
Py_BLOCK_THREADS
# endif
2015-08-06 22:26:40 +02:00
goto __pyx_L9 ;
2016-06-28 05:03:55 +02:00
}
2015-08-06 22:26:40 +02:00
__pyx_L9 : ;
2011-10-14 23:14:25 +02:00
}
2011-05-12 22:45:14 +02:00
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":203
2015-08-06 22:26:40 +02:00
* with nogil :
2016-06-28 05:46:50 +02:00
* rv = recv ( fd , buf , sizeof ( buf ) , recv_flags )
2015-08-06 22:26:40 +02:00
* if ( rv > = 0 ) : # < < < < < < < < < < < < < <
* nfq_handle_packet ( self . h , buf , rv )
* else :
*/
2016-06-28 08:48:53 +02:00
__pyx_t_5 = ( ( __pyx_v_rv > = 0 ) ! = 0 ) ;
if ( __pyx_t_5 ) {
2015-08-06 22:26:40 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":204
2016-06-28 05:46:50 +02:00
* rv = recv ( fd , buf , sizeof ( buf ) , recv_flags )
2015-08-06 22:26:40 +02:00
* if ( rv > = 0 ) :
* nfq_handle_packet ( self . h , buf , rv ) # < < < < < < < < < < < < < <
* else :
* if errno ! = ENOBUFS :
*/
nfq_handle_packet ( __pyx_v_self - > h , __pyx_v_buf , __pyx_v_rv ) ;
2016-06-28 05:36:00 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":203
2016-06-28 05:36:00 +02:00
* with nogil :
2016-06-28 05:46:50 +02:00
* rv = recv ( fd , buf , sizeof ( buf ) , recv_flags )
2016-06-28 05:36:00 +02:00
* if ( rv > = 0 ) : # < < < < < < < < < < < < < <
* nfq_handle_packet ( self . h , buf , rv )
* else :
*/
2015-08-06 22:26:40 +02:00
goto __pyx_L10 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":206
2015-08-06 22:26:40 +02:00
* nfq_handle_packet ( self . h , buf , rv )
* else :
* if errno ! = ENOBUFS : # < < < < < < < < < < < < < <
* break
*
*/
2016-06-28 05:36:00 +02:00
/*else*/ {
2016-06-28 08:48:53 +02:00
__pyx_t_5 = ( ( errno ! = __pyx_e_14netfilterqueue_ENOBUFS ) ! = 0 ) ;
if ( __pyx_t_5 ) {
2015-08-06 22:26:40 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":207
2015-08-06 22:26:40 +02:00
* else :
* if errno ! = ENOBUFS :
* break # < < < < < < < < < < < < < <
*
2016-06-28 08:48:53 +02:00
* def run_socket ( self , s ) :
2015-08-06 22:26:40 +02:00
*/
goto __pyx_L4_break ;
2016-06-28 05:36:00 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":206
2016-06-28 05:36:00 +02:00
* nfq_handle_packet ( self . h , buf , rv )
* else :
* if errno ! = ENOBUFS : # < < < < < < < < < < < < < <
* break
*
*/
2015-08-06 22:26:40 +02:00
}
}
__pyx_L10 : ;
2011-05-12 22:45:14 +02:00
}
2015-08-06 22:26:40 +02:00
__pyx_L4_break : ;
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":192
2016-06-28 05:46:50 +02:00
* return nfq_fd ( self . h )
2016-06-28 05:03:55 +02:00
*
2016-06-28 05:46:50 +02:00
* def run ( self , block = True ) : # < < < < < < < < < < < < < <
2016-06-28 08:48:53 +02:00
* " " " Accept packets using recv. " " "
* cdef int fd = self . get_fd ( )
2016-06-28 05:03:55 +02:00
*/
/* function exit code */
2011-05-12 22:45:14 +02:00
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
2016-06-28 05:46:50 +02:00
goto __pyx_L0 ;
__pyx_L1_error : ;
2016-06-28 08:48:53 +02:00
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
__Pyx_XDECREF ( __pyx_t_3 ) ;
2015-11-17 23:07:50 +01:00
__Pyx_AddTraceback ( " netfilterqueue.NetfilterQueue.run " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = NULL ;
__pyx_L0 : ;
2011-05-12 22:45:14 +02:00
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2016-06-28 08:48:53 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":209
2016-06-28 08:48:53 +02:00
* break
*
* def run_socket ( self , s ) : # < < < < < < < < < < < < < <
* " " " Accept packets using socket.recv so that, for example, gevent can monkeypatch it. " " "
2016-06-28 09:13:40 +02:00
* while True :
2016-06-28 08:48:53 +02:00
*/
/* Python wrapper */
static PyObject * __pyx_pw_14netfilterqueue_14NetfilterQueue_13run_socket ( PyObject * __pyx_v_self , PyObject * __pyx_v_s ) ; /*proto*/
static char __pyx_doc_14netfilterqueue_14NetfilterQueue_12run_socket [ ] = " Accept packets using socket.recv so that, for example, gevent can monkeypatch it. " ;
static PyObject * __pyx_pw_14netfilterqueue_14NetfilterQueue_13run_socket ( PyObject * __pyx_v_self , PyObject * __pyx_v_s ) {
PyObject * __pyx_r = 0 ;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " run_socket (wrapper) " , 0 ) ;
__pyx_r = __pyx_pf_14netfilterqueue_14NetfilterQueue_12run_socket ( ( ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) __pyx_v_self ) , ( ( PyObject * ) __pyx_v_s ) ) ;
/* function exit code */
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
static PyObject * __pyx_pf_14netfilterqueue_14NetfilterQueue_12run_socket ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * __pyx_v_self , PyObject * __pyx_v_s ) {
PyObject * __pyx_v_buf = NULL ;
Py_ssize_t __pyx_v_rv ;
PyObject * __pyx_v_e = NULL ;
PyObject * __pyx_v_err = NULL ;
PyObject * __pyx_r = NULL ;
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
PyObject * __pyx_t_2 = NULL ;
PyObject * __pyx_t_3 = NULL ;
PyObject * __pyx_t_4 = NULL ;
PyObject * __pyx_t_5 = NULL ;
Py_ssize_t __pyx_t_6 ;
int __pyx_t_7 ;
char * __pyx_t_8 ;
int __pyx_t_9 ;
PyObject * __pyx_t_10 = NULL ;
PyObject * __pyx_t_11 = NULL ;
PyObject * __pyx_t_12 = NULL ;
int __pyx_t_13 ;
__Pyx_RefNannySetupContext ( " run_socket " , 0 ) ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":211
2016-06-28 08:48:53 +02:00
* def run_socket ( self , s ) :
* " " " Accept packets using socket.recv so that, for example, gevent can monkeypatch it. " " "
2016-06-28 09:13:40 +02:00
* while True : # < < < < < < < < < < < < < <
* try :
2016-06-28 08:48:53 +02:00
* buf = s . recv ( BufferSize )
*/
2016-06-28 09:13:40 +02:00
while ( 1 ) {
2016-06-28 08:48:53 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":212
2016-06-28 08:48:53 +02:00
* " " " Accept packets using socket.recv so that, for example, gevent can monkeypatch it. " " "
2016-06-28 09:13:40 +02:00
* while True :
* try : # < < < < < < < < < < < < < <
2016-06-28 08:48:53 +02:00
* buf = s . recv ( BufferSize )
* rv = len ( buf )
*/
2016-06-28 09:13:40 +02:00
{
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ExceptionSave ( & __pyx_t_1 , & __pyx_t_2 , & __pyx_t_3 ) ;
__Pyx_XGOTREF ( __pyx_t_1 ) ;
__Pyx_XGOTREF ( __pyx_t_2 ) ;
__Pyx_XGOTREF ( __pyx_t_3 ) ;
/*try:*/ {
2016-06-28 08:48:53 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":213
2016-06-28 09:13:40 +02:00
* while True :
* try :
2016-06-28 08:48:53 +02:00
* buf = s . recv ( BufferSize ) # < < < < < < < < < < < < < <
* rv = len ( buf )
* if rv > = 0 :
*/
2016-10-27 22:49:16 +02:00
__pyx_t_4 = __Pyx_PyObject_GetAttrStr ( __pyx_v_s , __pyx_n_s_recv ) ; if ( unlikely ( ! __pyx_t_4 ) ) __PYX_ERR ( 0 , 213 , __pyx_L5_error )
2016-06-28 08:48:53 +02:00
__Pyx_GOTREF ( __pyx_t_4 ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_5 = __Pyx_PyObject_Call ( __pyx_t_4 , __pyx_tuple__6 , NULL ) ; if ( unlikely ( ! __pyx_t_5 ) ) __PYX_ERR ( 0 , 213 , __pyx_L5_error )
2016-06-28 08:48:53 +02:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
__Pyx_XDECREF_SET ( __pyx_v_buf , __pyx_t_5 ) ;
__pyx_t_5 = 0 ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":214
2016-06-28 09:13:40 +02:00
* try :
2016-06-28 08:48:53 +02:00
* buf = s . recv ( BufferSize )
* rv = len ( buf ) # < < < < < < < < < < < < < <
* if rv > = 0 :
* nfq_handle_packet ( self . h , buf , rv )
*/
2016-10-27 22:49:16 +02:00
__pyx_t_6 = PyObject_Length ( __pyx_v_buf ) ; if ( unlikely ( __pyx_t_6 = = - 1 ) ) __PYX_ERR ( 0 , 214 , __pyx_L5_error )
2016-06-28 08:48:53 +02:00
__pyx_v_rv = __pyx_t_6 ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":215
2016-06-28 08:48:53 +02:00
* buf = s . recv ( BufferSize )
* rv = len ( buf )
* if rv > = 0 : # < < < < < < < < < < < < < <
* nfq_handle_packet ( self . h , buf , rv )
* else :
*/
__pyx_t_7 = ( ( __pyx_v_rv > = 0 ) ! = 0 ) ;
if ( __pyx_t_7 ) {
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":216
2016-06-28 08:48:53 +02:00
* rv = len ( buf )
* if rv > = 0 :
* nfq_handle_packet ( self . h , buf , rv ) # < < < < < < < < < < < < < <
* else :
* break
*/
2016-10-27 22:49:16 +02:00
__pyx_t_8 = __Pyx_PyObject_AsString ( __pyx_v_buf ) ; if ( unlikely ( ( ! __pyx_t_8 ) & & PyErr_Occurred ( ) ) ) __PYX_ERR ( 0 , 216 , __pyx_L5_error )
2016-06-28 08:48:53 +02:00
nfq_handle_packet ( __pyx_v_self - > h , __pyx_t_8 , __pyx_v_rv ) ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":215
2016-06-28 08:48:53 +02:00
* buf = s . recv ( BufferSize )
* rv = len ( buf )
* if rv > = 0 : # < < < < < < < < < < < < < <
* nfq_handle_packet ( self . h , buf , rv )
* else :
*/
goto __pyx_L13 ;
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":218
2016-06-28 08:48:53 +02:00
* nfq_handle_packet ( self . h , buf , rv )
* else :
* break # < < < < < < < < < < < < < <
2016-06-28 09:13:40 +02:00
* except socket . error as e :
* err = e . args [ 0 ]
2016-06-28 08:48:53 +02:00
*/
/*else*/ {
2016-06-28 09:13:40 +02:00
goto __pyx_L10_try_break ;
2016-06-28 08:48:53 +02:00
}
__pyx_L13 : ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":212
2016-06-28 08:48:53 +02:00
* " " " Accept packets using socket.recv so that, for example, gevent can monkeypatch it. " " "
2016-06-28 09:13:40 +02:00
* while True :
* try : # < < < < < < < < < < < < < <
2016-06-28 08:48:53 +02:00
* buf = s . recv ( BufferSize )
2016-06-28 09:13:40 +02:00
* rv = len ( buf )
2016-06-28 08:48:53 +02:00
*/
2016-06-28 09:13:40 +02:00
}
__Pyx_XDECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
__Pyx_XDECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
__Pyx_XDECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
goto __pyx_L12_try_end ;
__pyx_L5_error : ;
__Pyx_PyThreadState_assign
__Pyx_XDECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
__Pyx_XDECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":219
2016-06-28 08:48:53 +02:00
* else :
* break
2016-06-28 09:13:40 +02:00
* except socket . error as e : # < < < < < < < < < < < < < <
* err = e . args [ 0 ]
* if err = = ENOBUFS :
2016-06-28 08:48:53 +02:00
*/
2016-10-27 22:49:16 +02:00
__pyx_t_5 = __Pyx_GetModuleGlobalName ( __pyx_n_s_socket ) ; if ( unlikely ( ! __pyx_t_5 ) ) __PYX_ERR ( 0 , 219 , __pyx_L7_except_error )
2016-06-28 08:48:53 +02:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_4 = __Pyx_PyObject_GetAttrStr ( __pyx_t_5 , __pyx_n_s_error ) ; if ( unlikely ( ! __pyx_t_4 ) ) __PYX_ERR ( 0 , 219 , __pyx_L7_except_error )
2016-06-28 09:13:40 +02:00
__Pyx_GOTREF ( __pyx_t_4 ) ;
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches ( __pyx_t_4 ) ;
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
if ( __pyx_t_9 ) {
__Pyx_AddTraceback ( " netfilterqueue.NetfilterQueue.run_socket " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2016-10-27 22:49:16 +02:00
if ( __Pyx_GetException ( & __pyx_t_4 , & __pyx_t_5 , & __pyx_t_10 ) < 0 ) __PYX_ERR ( 0 , 219 , __pyx_L7_except_error )
2016-06-28 09:13:40 +02:00
__Pyx_GOTREF ( __pyx_t_4 ) ;
__Pyx_GOTREF ( __pyx_t_5 ) ;
__Pyx_GOTREF ( __pyx_t_10 ) ;
__Pyx_INCREF ( __pyx_t_5 ) ;
__Pyx_XDECREF_SET ( __pyx_v_e , __pyx_t_5 ) ;
2016-06-28 08:48:53 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":220
2016-06-28 08:48:53 +02:00
* break
2016-06-28 09:13:40 +02:00
* except socket . error as e :
* err = e . args [ 0 ] # < < < < < < < < < < < < < <
* if err = = ENOBUFS :
* continue
*/
2016-10-27 22:49:16 +02:00
__pyx_t_11 = __Pyx_PyObject_GetAttrStr ( __pyx_v_e , __pyx_n_s_args ) ; if ( unlikely ( ! __pyx_t_11 ) ) __PYX_ERR ( 0 , 220 , __pyx_L7_except_error )
2016-06-28 09:13:40 +02:00
__Pyx_GOTREF ( __pyx_t_11 ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_12 = __Pyx_GetItemInt ( __pyx_t_11 , 0 , long , 1 , __Pyx_PyInt_From_long , 0 , 0 , 1 ) ; if ( unlikely ( ! __pyx_t_12 ) ) __PYX_ERR ( 0 , 220 , __pyx_L7_except_error )
2016-06-28 09:13:40 +02:00
__Pyx_GOTREF ( __pyx_t_12 ) ;
__Pyx_DECREF ( __pyx_t_11 ) ; __pyx_t_11 = 0 ;
__Pyx_XDECREF_SET ( __pyx_v_err , __pyx_t_12 ) ;
__pyx_t_12 = 0 ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":221
2016-06-28 09:13:40 +02:00
* except socket . error as e :
* err = e . args [ 0 ]
* if err = = ENOBUFS : # < < < < < < < < < < < < < <
* continue
* elif err = = EAGAIN or err = = EWOULDBLOCK :
*/
2016-10-27 22:49:16 +02:00
__pyx_t_12 = __Pyx_PyInt_From_int ( __pyx_e_14netfilterqueue_ENOBUFS ) ; if ( unlikely ( ! __pyx_t_12 ) ) __PYX_ERR ( 0 , 221 , __pyx_L7_except_error )
2016-06-28 09:13:40 +02:00
__Pyx_GOTREF ( __pyx_t_12 ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_11 = PyObject_RichCompare ( __pyx_v_err , __pyx_t_12 , Py_EQ ) ; __Pyx_XGOTREF ( __pyx_t_11 ) ; if ( unlikely ( ! __pyx_t_11 ) ) __PYX_ERR ( 0 , 221 , __pyx_L7_except_error )
2016-06-28 09:13:40 +02:00
__Pyx_DECREF ( __pyx_t_12 ) ; __pyx_t_12 = 0 ;
2016-10-27 22:49:16 +02:00
__pyx_t_7 = __Pyx_PyObject_IsTrue ( __pyx_t_11 ) ; if ( unlikely ( __pyx_t_7 < 0 ) ) __PYX_ERR ( 0 , 221 , __pyx_L7_except_error )
2016-06-28 09:13:40 +02:00
__Pyx_DECREF ( __pyx_t_11 ) ; __pyx_t_11 = 0 ;
if ( __pyx_t_7 ) {
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":222
2016-06-28 09:13:40 +02:00
* err = e . args [ 0 ]
* if err = = ENOBUFS :
* continue # < < < < < < < < < < < < < <
* elif err = = EAGAIN or err = = EWOULDBLOCK :
* # This should only happen with a non - blocking socket , and the
*/
goto __pyx_L15_except_continue ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":221
2016-06-28 09:13:40 +02:00
* except socket . error as e :
* err = e . args [ 0 ]
* if err = = ENOBUFS : # < < < < < < < < < < < < < <
* continue
* elif err = = EAGAIN or err = = EWOULDBLOCK :
*/
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":223
2016-06-28 09:13:40 +02:00
* if err = = ENOBUFS :
* continue
* elif err = = EAGAIN or err = = EWOULDBLOCK : # < < < < < < < < < < < < < <
* # This should only happen with a non - blocking socket , and the
* # app should call run_socket again when more data is available .
*/
2016-10-27 22:49:16 +02:00
__pyx_t_11 = __Pyx_PyInt_From_int ( __pyx_e_14netfilterqueue_EAGAIN ) ; if ( unlikely ( ! __pyx_t_11 ) ) __PYX_ERR ( 0 , 223 , __pyx_L7_except_error )
2016-06-28 09:13:40 +02:00
__Pyx_GOTREF ( __pyx_t_11 ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_12 = PyObject_RichCompare ( __pyx_v_err , __pyx_t_11 , Py_EQ ) ; __Pyx_XGOTREF ( __pyx_t_12 ) ; if ( unlikely ( ! __pyx_t_12 ) ) __PYX_ERR ( 0 , 223 , __pyx_L7_except_error )
2016-06-28 09:13:40 +02:00
__Pyx_DECREF ( __pyx_t_11 ) ; __pyx_t_11 = 0 ;
2016-10-27 22:49:16 +02:00
__pyx_t_13 = __Pyx_PyObject_IsTrue ( __pyx_t_12 ) ; if ( unlikely ( __pyx_t_13 < 0 ) ) __PYX_ERR ( 0 , 223 , __pyx_L7_except_error )
2016-06-28 09:13:40 +02:00
__Pyx_DECREF ( __pyx_t_12 ) ; __pyx_t_12 = 0 ;
if ( ! __pyx_t_13 ) {
} else {
__pyx_t_7 = __pyx_t_13 ;
goto __pyx_L17_bool_binop_done ;
}
2016-10-27 22:49:16 +02:00
__pyx_t_12 = __Pyx_PyInt_From_int ( __pyx_e_14netfilterqueue_EWOULDBLOCK ) ; if ( unlikely ( ! __pyx_t_12 ) ) __PYX_ERR ( 0 , 223 , __pyx_L7_except_error )
2016-06-28 09:13:40 +02:00
__Pyx_GOTREF ( __pyx_t_12 ) ;
2016-10-27 22:49:16 +02:00
__pyx_t_11 = PyObject_RichCompare ( __pyx_v_err , __pyx_t_12 , Py_EQ ) ; __Pyx_XGOTREF ( __pyx_t_11 ) ; if ( unlikely ( ! __pyx_t_11 ) ) __PYX_ERR ( 0 , 223 , __pyx_L7_except_error )
2016-06-28 09:13:40 +02:00
__Pyx_DECREF ( __pyx_t_12 ) ; __pyx_t_12 = 0 ;
2016-10-27 22:49:16 +02:00
__pyx_t_13 = __Pyx_PyObject_IsTrue ( __pyx_t_11 ) ; if ( unlikely ( __pyx_t_13 < 0 ) ) __PYX_ERR ( 0 , 223 , __pyx_L7_except_error )
2016-06-28 09:13:40 +02:00
__Pyx_DECREF ( __pyx_t_11 ) ; __pyx_t_11 = 0 ;
2016-06-28 08:48:53 +02:00
__pyx_t_7 = __pyx_t_13 ;
2016-06-28 09:13:40 +02:00
__pyx_L17_bool_binop_done : ;
if ( __pyx_t_7 ) {
2016-06-28 08:48:53 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":226
2016-06-28 09:13:40 +02:00
* # This should only happen with a non - blocking socket , and the
* # app should call run_socket again when more data is available .
* break # < < < < < < < < < < < < < <
* else :
* # This is bad . Let the caller handle it .
*/
goto __pyx_L14_except_break ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":223
2016-06-28 09:13:40 +02:00
* if err = = ENOBUFS :
* continue
* elif err = = EAGAIN or err = = EWOULDBLOCK : # < < < < < < < < < < < < < <
* # This should only happen with a non - blocking socket , and the
* # app should call run_socket again when more data is available .
*/
}
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":229
2016-06-28 09:13:40 +02:00
* else :
* # This is bad . Let the caller handle it .
* raise e # < < < < < < < < < < < < < <
2016-06-28 08:48:53 +02:00
*
* PROTOCOLS = {
*/
2016-06-28 09:13:40 +02:00
/*else*/ {
__Pyx_Raise ( __pyx_v_e , 0 , 0 , 0 ) ;
2016-10-27 22:49:16 +02:00
__PYX_ERR ( 0 , 229 , __pyx_L7_except_error )
2016-06-28 09:13:40 +02:00
}
__pyx_L14_except_break : ;
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
__Pyx_DECREF ( __pyx_t_10 ) ; __pyx_t_10 = 0 ;
goto __pyx_L10_try_break ;
__pyx_L15_except_continue : ;
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
__Pyx_DECREF ( __pyx_t_10 ) ; __pyx_t_10 = 0 ;
goto __pyx_L11_try_continue ;
2016-06-28 08:48:53 +02:00
}
2016-06-28 09:13:40 +02:00
goto __pyx_L7_except_error ;
__pyx_L7_except_error : ;
2016-06-28 08:48:53 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":212
2016-06-28 08:48:53 +02:00
* " " " Accept packets using socket.recv so that, for example, gevent can monkeypatch it. " " "
2016-06-28 09:13:40 +02:00
* while True :
* try : # < < < < < < < < < < < < < <
2016-06-28 08:48:53 +02:00
* buf = s . recv ( BufferSize )
2016-06-28 09:13:40 +02:00
* rv = len ( buf )
2016-06-28 08:48:53 +02:00
*/
2016-06-28 09:13:40 +02:00
__Pyx_PyThreadState_assign
__Pyx_XGIVEREF ( __pyx_t_1 ) ;
__Pyx_XGIVEREF ( __pyx_t_2 ) ;
__Pyx_XGIVEREF ( __pyx_t_3 ) ;
__Pyx_ExceptionReset ( __pyx_t_1 , __pyx_t_2 , __pyx_t_3 ) ;
goto __pyx_L1_error ;
__pyx_L10_try_break : ;
__Pyx_PyThreadState_assign
__Pyx_XGIVEREF ( __pyx_t_1 ) ;
__Pyx_XGIVEREF ( __pyx_t_2 ) ;
__Pyx_XGIVEREF ( __pyx_t_3 ) ;
__Pyx_ExceptionReset ( __pyx_t_1 , __pyx_t_2 , __pyx_t_3 ) ;
goto __pyx_L4_break ;
__pyx_L11_try_continue : ;
__Pyx_PyThreadState_assign
__Pyx_XGIVEREF ( __pyx_t_1 ) ;
__Pyx_XGIVEREF ( __pyx_t_2 ) ;
__Pyx_XGIVEREF ( __pyx_t_3 ) ;
__Pyx_ExceptionReset ( __pyx_t_1 , __pyx_t_2 , __pyx_t_3 ) ;
goto __pyx_L3_continue ;
__pyx_L12_try_end : ;
}
__pyx_L3_continue : ;
2016-06-28 08:48:53 +02:00
}
2016-06-28 09:13:40 +02:00
__pyx_L4_break : ;
2016-06-28 08:48:53 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":209
2016-06-28 08:48:53 +02:00
* break
*
* def run_socket ( self , s ) : # < < < < < < < < < < < < < <
* " " " Accept packets using socket.recv so that, for example, gevent can monkeypatch it. " " "
2016-06-28 09:13:40 +02:00
* while True :
2016-06-28 08:48:53 +02:00
*/
/* function exit code */
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_4 ) ;
__Pyx_XDECREF ( __pyx_t_5 ) ;
__Pyx_XDECREF ( __pyx_t_10 ) ;
__Pyx_XDECREF ( __pyx_t_11 ) ;
__Pyx_XDECREF ( __pyx_t_12 ) ;
__Pyx_AddTraceback ( " netfilterqueue.NetfilterQueue.run_socket " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XDECREF ( __pyx_v_buf ) ;
__Pyx_XDECREF ( __pyx_v_e ) ;
__Pyx_XDECREF ( __pyx_v_err ) ;
__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
2013-04-03 13:55:51 +02:00
static PyObject * __pyx_tp_new_14netfilterqueue_Packet ( PyTypeObject * t , CYTHON_UNUSED PyObject * a , CYTHON_UNUSED PyObject * k ) {
2011-05-13 17:42:05 +02:00
struct __pyx_obj_14netfilterqueue_Packet * p ;
2016-06-28 05:03:55 +02:00
PyObject * o ;
if ( likely ( ( t - > tp_flags & Py_TPFLAGS_IS_ABSTRACT ) = = 0 ) ) {
o = ( * t - > tp_alloc ) ( t , 0 ) ;
} else {
o = ( PyObject * ) PyBaseObject_Type . tp_new ( t , __pyx_empty_tuple , 0 ) ;
}
if ( unlikely ( ! 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 ) ;
2016-06-28 05:03:55 +02:00
if ( unlikely ( __pyx_pw_14netfilterqueue_6Packet_1__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 ;
2016-06-28 05:03:55 +02:00
# if PY_VERSION_HEX >= 0x030400a1
if ( unlikely ( Py_TYPE ( o ) - > tp_finalize ) & & ( ! PyType_IS_GC ( Py_TYPE ( o ) ) | | ! _PyGC_FINALIZED ( o ) ) ) {
if ( PyObject_CallFinalizerFromDealloc ( o ) ) return ;
}
# endif
2013-04-03 13:55:51 +02:00
Py_CLEAR ( p - > _given_payload ) ;
2011-05-12 22:45:14 +02:00
( * Py_TYPE ( o ) - > tp_free ) ( o ) ;
}
2013-04-03 13:55:51 +02:00
static PyObject * __pyx_getprop_14netfilterqueue_6Packet_id ( PyObject * o , CYTHON_UNUSED void * x ) {
return __pyx_pw_14netfilterqueue_6Packet_2id_1__get__ ( o ) ;
2011-05-12 22:45:14 +02:00
}
2013-04-03 13:55:51 +02:00
static PyObject * __pyx_getprop_14netfilterqueue_6Packet_hw_protocol ( PyObject * o , CYTHON_UNUSED void * x ) {
return __pyx_pw_14netfilterqueue_6Packet_11hw_protocol_1__get__ ( o ) ;
2011-05-12 22:45:14 +02:00
}
2013-04-03 13:55:51 +02:00
static PyObject * __pyx_getprop_14netfilterqueue_6Packet_hook ( PyObject * o , CYTHON_UNUSED void * x ) {
return __pyx_pw_14netfilterqueue_6Packet_4hook_1__get__ ( o ) ;
2011-05-12 22:45:14 +02:00
}
2013-04-15 05:30:35 +02:00
static PyObject * __pyx_getprop_14netfilterqueue_6Packet_mark ( PyObject * o , CYTHON_UNUSED void * x ) {
return __pyx_pw_14netfilterqueue_6Packet_4mark_1__get__ ( o ) ;
}
2013-04-03 13:55:51 +02:00
static PyObject * __pyx_getprop_14netfilterqueue_6Packet_payload ( PyObject * o , CYTHON_UNUSED void * x ) {
return __pyx_pw_14netfilterqueue_6Packet_7payload_1__get__ ( o ) ;
2011-05-12 22:45:14 +02:00
}
2011-05-13 17:42:05 +02:00
static PyMethodDef __pyx_methods_14netfilterqueue_Packet [ ] = {
2016-06-28 05:03:55 +02:00
{ " get_payload " , ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_5get_payload , METH_NOARGS , __pyx_doc_14netfilterqueue_6Packet_4get_payload } ,
{ " get_payload_len " , ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_7get_payload_len , METH_NOARGS , 0 } ,
{ " get_timestamp " , ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_9get_timestamp , METH_NOARGS , 0 } ,
{ " set_payload " , ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_11set_payload , METH_O , __pyx_doc_14netfilterqueue_6Packet_10set_payload } ,
{ " set_mark " , ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_13set_mark , METH_O , 0 } ,
{ " get_mark " , ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_15get_mark , METH_NOARGS , 0 } ,
{ " accept " , ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_17accept , METH_NOARGS , __pyx_doc_14netfilterqueue_6Packet_16accept } ,
{ " drop " , ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_19drop , METH_NOARGS , __pyx_doc_14netfilterqueue_6Packet_18drop } ,
{ " repeat " , ( PyCFunction ) __pyx_pw_14netfilterqueue_6Packet_21repeat , METH_NOARGS , __pyx_doc_14netfilterqueue_6Packet_20repeat } ,
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 [ ] = {
2016-06-28 05:03:55 +02:00
{ ( char * ) " id " , __pyx_getprop_14netfilterqueue_6Packet_id , 0 , ( char * ) 0 , 0 } ,
{ ( char * ) " hw_protocol " , __pyx_getprop_14netfilterqueue_6Packet_hw_protocol , 0 , ( char * ) 0 , 0 } ,
{ ( char * ) " hook " , __pyx_getprop_14netfilterqueue_6Packet_hook , 0 , ( char * ) 0 , 0 } ,
{ ( char * ) " mark " , __pyx_getprop_14netfilterqueue_6Packet_mark , 0 , ( char * ) 0 , 0 } ,
{ ( char * ) " payload " , __pyx_getprop_14netfilterqueue_6Packet_payload , 0 , ( char * ) 0 , 0 } ,
2011-05-12 22:45:14 +02:00
{ 0 , 0 , 0 , 0 , 0 }
} ;
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 )
2016-06-28 05:03:55 +02:00
" netfilterqueue.Packet " , /*tp_name*/
2011-05-13 17:42:05 +02:00
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*/
2016-06-28 05:03:55 +02:00
# endif
# if PY_MAJOR_VERSION >= 3
0 , /*tp_as_async*/
2011-05-12 22:45:14 +02:00
# endif
0 , /*tp_repr*/
2016-06-28 05:03:55 +02:00
0 , /*tp_as_number*/
0 , /*tp_as_sequence*/
0 , /*tp_as_mapping*/
2011-05-12 22:45:14 +02:00
0 , /*tp_hash*/
0 , /*tp_call*/
2013-04-03 13:55:51 +02:00
__pyx_pw_14netfilterqueue_6Packet_3__str__ , /*tp_str*/
2011-05-12 22:45:14 +02:00
0 , /*tp_getattro*/
0 , /*tp_setattro*/
2016-06-28 05:03:55 +02:00
0 , /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_VERSION_TAG | Py_TPFLAGS_CHECKTYPES | Py_TPFLAGS_HAVE_NEWBUFFER | Py_TPFLAGS_BASETYPE , /*tp_flags*/
" A packet received from NetfilterQueue. " , /*tp_doc*/
0 , /*tp_traverse*/
0 , /*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*/
0 , /*tp_version_tag*/
2016-06-28 05:03:55 +02:00
# if PY_VERSION_HEX >= 0x030400a1
0 , /*tp_finalize*/
2011-05-12 22:45:14 +02:00
# 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 ;
2016-06-28 05:03:55 +02:00
PyObject * o ;
if ( likely ( ( t - > tp_flags & Py_TPFLAGS_IS_ABSTRACT ) = = 0 ) ) {
o = ( * t - > tp_alloc ) ( t , 0 ) ;
} else {
o = ( PyObject * ) PyBaseObject_Type . tp_new ( t , __pyx_empty_tuple , 0 ) ;
}
if ( unlikely ( ! 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 ) ;
2016-06-28 05:03:55 +02:00
if ( unlikely ( __pyx_pw_14netfilterqueue_14NetfilterQueue_1__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 ;
2016-06-28 05:03:55 +02:00
# if PY_VERSION_HEX >= 0x030400a1
if ( unlikely ( Py_TYPE ( o ) - > tp_finalize ) & & ! _PyGC_FINALIZED ( o ) ) {
if ( PyObject_CallFinalizerFromDealloc ( o ) ) return ;
}
# endif
2013-04-03 13:55:51 +02:00
PyObject_GC_UnTrack ( o ) ;
2011-05-12 22:45:14 +02:00
{
PyObject * etype , * eval , * etb ;
PyErr_Fetch ( & etype , & eval , & etb ) ;
+ + Py_REFCNT ( o ) ;
2013-04-03 13:55:51 +02:00
__pyx_pw_14netfilterqueue_14NetfilterQueue_3__dealloc__ ( o ) ;
2011-05-12 22:45:14 +02:00
- - Py_REFCNT ( o ) ;
PyErr_Restore ( etype , eval , etb ) ;
}
2013-04-03 13:55:51 +02:00
Py_CLEAR ( p - > user_callback ) ;
Py_CLEAR ( p - > packet_copy_size ) ;
2011-05-12 22:45:14 +02:00
( * 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 ) {
2011-05-12 22:45:14 +02:00
PyObject * tmp ;
2016-06-28 05:03:55 +02:00
struct __pyx_obj_14netfilterqueue_NetfilterQueue * p = ( struct __pyx_obj_14netfilterqueue_NetfilterQueue * ) o ;
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 [ ] = {
2016-06-28 05:03:55 +02:00
{ " bind " , ( PyCFunction ) __pyx_pw_14netfilterqueue_14NetfilterQueue_5bind , METH_VARARGS | METH_KEYWORDS , __pyx_doc_14netfilterqueue_14NetfilterQueue_4bind } ,
{ " unbind " , ( PyCFunction ) __pyx_pw_14netfilterqueue_14NetfilterQueue_7unbind , METH_NOARGS , __pyx_doc_14netfilterqueue_14NetfilterQueue_6unbind } ,
2015-11-17 23:07:50 +01:00
{ " get_fd " , ( PyCFunction ) __pyx_pw_14netfilterqueue_14NetfilterQueue_9get_fd , METH_NOARGS , __pyx_doc_14netfilterqueue_14NetfilterQueue_8get_fd } ,
{ " run " , ( PyCFunction ) __pyx_pw_14netfilterqueue_14NetfilterQueue_11run , METH_VARARGS | METH_KEYWORDS , __pyx_doc_14netfilterqueue_14NetfilterQueue_10run } ,
2016-06-28 08:48:53 +02:00
{ " run_socket " , ( PyCFunction ) __pyx_pw_14netfilterqueue_14NetfilterQueue_13run_socket , METH_O , __pyx_doc_14netfilterqueue_14NetfilterQueue_12run_socket } ,
2011-05-12 22:45:14 +02:00
{ 0 , 0 , 0 , 0 }
} ;
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 )
2016-06-28 05:03:55 +02:00
" netfilterqueue.NetfilterQueue " , /*tp_name*/
2011-10-14 23:14:25 +02:00
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*/
2016-06-28 05:03:55 +02:00
# endif
# if PY_MAJOR_VERSION >= 3
0 , /*tp_as_async*/
2011-05-12 22:45:14 +02:00
# endif
0 , /*tp_repr*/
2016-06-28 05:03:55 +02:00
0 , /*tp_as_number*/
0 , /*tp_as_sequence*/
0 , /*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*/
2016-06-28 05:03:55 +02:00
0 , /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_VERSION_TAG | Py_TPFLAGS_CHECKTYPES | Py_TPFLAGS_HAVE_NEWBUFFER | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC , /*tp_flags*/
" 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*/
0 , /*tp_version_tag*/
2016-06-28 05:03:55 +02:00
# if PY_VERSION_HEX >= 0x030400a1
0 , /*tp_finalize*/
2011-05-12 22:45:14 +02:00
# endif
} ;
static PyMethodDef __pyx_methods [ ] = {
{ 0 , 0 , 0 , 0 }
} ;
# if PY_MAJOR_VERSION >= 3
static struct PyModuleDef __pyx_moduledef = {
2013-04-03 13:55:51 +02:00
# if PY_VERSION_HEX < 0x03020000
{ PyObject_HEAD_INIT ( NULL ) NULL , 0 , NULL } ,
# else
2011-05-12 22:45:14 +02:00
PyModuleDef_HEAD_INIT ,
2013-04-03 13:55:51 +02:00
# endif
2016-06-28 05:03:55 +02:00
" netfilterqueue " ,
__pyx_k_Bind_to_a_Linux_netfilter_queue , /* 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 [ ] = {
2016-06-28 05:03:55 +02:00
{ & __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_kp_s_AX_25 , __pyx_k_AX_25 , sizeof ( __pyx_k_AX_25 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_A_N , __pyx_k_A_N , sizeof ( __pyx_k_A_N ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_BBN_RCC_MON , __pyx_k_BBN_RCC_MON , sizeof ( __pyx_k_BBN_RCC_MON ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_n_s_BNA , __pyx_k_BNA , sizeof ( __pyx_k_BNA ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_kp_s_BR_SAT_MON , __pyx_k_BR_SAT_MON , sizeof ( __pyx_k_BR_SAT_MON ) , 0 , 0 , 1 , 0 } ,
{ & __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 } ,
{ & __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 } ,
{ & __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_kp_s_Compaq_Peer , __pyx_k_Compaq_Peer , sizeof ( __pyx_k_Compaq_Peer ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_n_s_DCCP , __pyx_k_DCCP , sizeof ( __pyx_k_DCCP ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_kp_s_DCN_MEAS , __pyx_k_DCN_MEAS , sizeof ( __pyx_k_DCN_MEAS ) , 0 , 0 , 1 , 0 } ,
{ & __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_kp_s_Failed_to_bind_family_s_Are_you , __pyx_k_Failed_to_bind_family_s_Are_you , sizeof ( __pyx_k_Failed_to_bind_family_s_Are_you ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_Failed_to_create_queue_s , __pyx_k_Failed_to_create_queue_s , sizeof ( __pyx_k_Failed_to_create_queue_s ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_Failed_to_get_payload_of_packet , __pyx_k_Failed_to_get_payload_of_packet , sizeof ( __pyx_k_Failed_to_get_payload_of_packet ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_Failed_to_open_NFQueue , __pyx_k_Failed_to_open_NFQueue , sizeof ( __pyx_k_Failed_to_open_NFQueue ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_Failed_to_set_packet_copy_mode , __pyx_k_Failed_to_set_packet_copy_mode , sizeof ( __pyx_k_Failed_to_set_packet_copy_mode ) , 0 , 0 , 1 , 0 } ,
{ & __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_kp_s_IDPR_CMTP , __pyx_k_IDPR_CMTP , sizeof ( __pyx_k_IDPR_CMTP ) , 0 , 0 , 1 , 0 } ,
{ & __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_kp_s_IPX_in_IP , __pyx_k_IPX_in_IP , sizeof ( __pyx_k_IPX_in_IP ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_n_s_IPv6 , __pyx_k_IPv6 , sizeof ( __pyx_k_IPv6 ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_kp_s_IPv6_Frag , __pyx_k_IPv6_Frag , sizeof ( __pyx_k_IPv6_Frag ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_IPv6_ICMP , __pyx_k_IPv6_ICMP , sizeof ( __pyx_k_IPv6_ICMP ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_IPv6_NoNxt , __pyx_k_IPv6_NoNxt , sizeof ( __pyx_k_IPv6_NoNxt ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_IPv6_Opts , __pyx_k_IPv6_Opts , sizeof ( __pyx_k_IPv6_Opts ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_IPv6_Route , __pyx_k_IPv6_Route , sizeof ( __pyx_k_IPv6_Route ) , 0 , 0 , 1 , 0 } ,
{ & __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_kp_s_ISO_IP , __pyx_k_ISO_IP , sizeof ( __pyx_k_ISO_IP ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_ISO_TP4 , __pyx_k_ISO_TP4 , sizeof ( __pyx_k_ISO_TP4 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_I_NLSP , __pyx_k_I_NLSP , sizeof ( __pyx_k_I_NLSP ) , 0 , 0 , 1 , 0 } ,
{ & __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_kp_s_LEAF_1 , __pyx_k_LEAF_1 , sizeof ( __pyx_k_LEAF_1 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_LEAF_2 , __pyx_k_LEAF_2 , sizeof ( __pyx_k_LEAF_2 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_MERIT_INP , __pyx_k_MERIT_INP , sizeof ( __pyx_k_MERIT_INP ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_MFE_NSP , __pyx_k_MFE_NSP , sizeof ( __pyx_k_MFE_NSP ) , 0 , 0 , 1 , 0 } ,
{ & __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_kp_s_MPLS_in_IP , __pyx_k_MPLS_in_IP , sizeof ( __pyx_k_MPLS_in_IP ) , 0 , 0 , 1 , 0 } ,
{ & __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 } ,
{ & __pyx_kp_s_NSFNET_IGP , __pyx_k_NSFNET_IGP , sizeof ( __pyx_k_NSFNET_IGP ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_NVP_II , __pyx_k_NVP_II , sizeof ( __pyx_k_NVP_II ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_n_s_OSError , __pyx_k_OSError , sizeof ( __pyx_k_OSError ) , 0 , 0 , 1 , 1 } ,
{ & __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_kp_s_RSVP_E2E_IGNORE , __pyx_k_RSVP_E2E_IGNORE , sizeof ( __pyx_k_RSVP_E2E_IGNORE ) , 0 , 0 , 1 , 0 } ,
{ & __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_kp_s_SAT_EXPAK , __pyx_k_SAT_EXPAK , sizeof ( __pyx_k_SAT_EXPAK ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_SAT_MON , __pyx_k_SAT_MON , sizeof ( __pyx_k_SAT_MON ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_SCC_SP , __pyx_k_SCC_SP , sizeof ( __pyx_k_SCC_SP ) , 0 , 0 , 1 , 0 } ,
{ & __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_kp_s_SECURE_VMTP , __pyx_k_SECURE_VMTP , sizeof ( __pyx_k_SECURE_VMTP ) , 0 , 0 , 1 , 0 } ,
{ & __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_kp_s_SUN_ND , __pyx_k_SUN_ND , sizeof ( __pyx_k_SUN_ND ) , 0 , 0 , 1 , 0 } ,
{ & __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 } ,
2015-08-06 22:26:40 +02:00
{ & __pyx_kp_s_Socket_rcvbuf_limit_is_now_d_req , __pyx_k_Socket_rcvbuf_limit_is_now_d_req , sizeof ( __pyx_k_Socket_rcvbuf_limit_is_now_d_req ) , 0 , 0 , 1 , 0 } ,
2016-06-28 05:03:55 +02:00
{ & __pyx_kp_s_Sprite_RPC , __pyx_k_Sprite_RPC , sizeof ( __pyx_k_Sprite_RPC ) , 0 , 0 , 1 , 0 } ,
{ & __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_kp_s_TP , __pyx_k_TP , sizeof ( __pyx_k_TP ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_TRUNK_1 , __pyx_k_TRUNK_1 , sizeof ( __pyx_k_TRUNK_1 ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_TRUNK_2 , __pyx_k_TRUNK_2 , sizeof ( __pyx_k_TRUNK_2 ) , 0 , 0 , 1 , 0 } ,
{ & __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 } ,
{ & __pyx_kp_s_Unknown_protocol , __pyx_k_Unknown_protocol , sizeof ( __pyx_k_Unknown_protocol ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_n_s_VERSION , __pyx_k_VERSION , sizeof ( __pyx_k_VERSION ) , 0 , 0 , 1 , 1 } ,
{ & __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_kp_s_Verdict_already_given_for_this_p , __pyx_k_Verdict_already_given_for_this_p , sizeof ( __pyx_k_Verdict_already_given_for_this_p ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_WB_EXPAK , __pyx_k_WB_EXPAK , sizeof ( __pyx_k_WB_EXPAK ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_WB_MON , __pyx_k_WB_MON , sizeof ( __pyx_k_WB_MON ) , 0 , 0 , 1 , 0 } ,
{ & __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_kp_s_XNS_IDP , __pyx_k_XNS_IDP , sizeof ( __pyx_k_XNS_IDP ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_n_s_XTP , __pyx_k_XTP , sizeof ( __pyx_k_XTP ) , 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_kp_s_any_0_hop_protocol , __pyx_k_any_0_hop_protocol , sizeof ( __pyx_k_any_0_hop_protocol ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_any_distributed_file_system , __pyx_k_any_distributed_file_system , sizeof ( __pyx_k_any_distributed_file_system ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_any_host_internal_protocol , __pyx_k_any_host_internal_protocol , sizeof ( __pyx_k_any_host_internal_protocol ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_any_local_network , __pyx_k_any_local_network , sizeof ( __pyx_k_any_local_network ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_kp_s_any_private_encryption_scheme , __pyx_k_any_private_encryption_scheme , sizeof ( __pyx_k_any_private_encryption_scheme ) , 0 , 0 , 1 , 0 } ,
2016-06-28 08:48:53 +02:00
{ & __pyx_n_s_args , __pyx_k_args , sizeof ( __pyx_k_args ) , 0 , 0 , 1 , 1 } ,
2015-11-17 23:07:50 +01:00
{ & __pyx_n_s_block , __pyx_k_block , sizeof ( __pyx_k_block ) , 0 , 0 , 1 , 1 } ,
2016-06-28 05:03:55 +02:00
{ & __pyx_n_s_drop , __pyx_k_drop , sizeof ( __pyx_k_drop ) , 0 , 0 , 1 , 1 } ,
2016-06-28 08:48:53 +02:00
{ & __pyx_n_s_error , __pyx_k_error , sizeof ( __pyx_k_error ) , 0 , 0 , 1 , 1 } ,
2016-06-28 05:03:55 +02:00
{ & __pyx_n_s_get , __pyx_k_get , sizeof ( __pyx_k_get ) , 0 , 0 , 1 , 1 } ,
2016-06-28 08:48:53 +02:00
{ & __pyx_n_s_get_fd , __pyx_k_get_fd , sizeof ( __pyx_k_get_fd ) , 0 , 0 , 1 , 1 } ,
2016-06-28 05:03:55 +02:00
{ & __pyx_n_s_get_mark , __pyx_k_get_mark , sizeof ( __pyx_k_get_mark ) , 0 , 0 , 1 , 1 } ,
{ & __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 } ,
2016-06-28 08:48:53 +02:00
{ & __pyx_n_s_import , __pyx_k_import , sizeof ( __pyx_k_import ) , 0 , 0 , 1 , 1 } ,
2016-06-28 05:03:55 +02:00
{ & __pyx_n_s_main , __pyx_k_main , sizeof ( __pyx_k_main ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s_manet , __pyx_k_manet , sizeof ( __pyx_k_manet ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s_max_len , __pyx_k_max_len , sizeof ( __pyx_k_max_len ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s_mode , __pyx_k_mode , sizeof ( __pyx_k_mode ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s_pyx_vtable , __pyx_k_pyx_vtable , sizeof ( __pyx_k_pyx_vtable ) , 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 } ,
2016-06-28 08:48:53 +02:00
{ & __pyx_n_s_recv , __pyx_k_recv , sizeof ( __pyx_k_recv ) , 0 , 0 , 1 , 1 } ,
2016-06-28 05:03:55 +02:00
{ & __pyx_n_s_repeat , __pyx_k_repeat , sizeof ( __pyx_k_repeat ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_kp_s_s_packet_s_bytes , __pyx_k_s_packet_s_bytes , sizeof ( __pyx_k_s_packet_s_bytes ) , 0 , 0 , 1 , 0 } ,
{ & __pyx_n_s_set_mark , __pyx_k_set_mark , sizeof ( __pyx_k_set_mark ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s_set_payload , __pyx_k_set_payload , sizeof ( __pyx_k_set_payload ) , 0 , 0 , 1 , 1 } ,
2015-08-06 22:26:40 +02:00
{ & __pyx_n_s_sock_len , __pyx_k_sock_len , sizeof ( __pyx_k_sock_len ) , 0 , 0 , 1 , 1 } ,
2016-06-28 08:48:53 +02:00
{ & __pyx_n_s_socket , __pyx_k_socket , sizeof ( __pyx_k_socket ) , 0 , 0 , 1 , 1 } ,
2016-06-28 05:03:55 +02:00
{ & __pyx_n_s_test , __pyx_k_test , sizeof ( __pyx_k_test ) , 0 , 0 , 1 , 1 } ,
{ & __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 ) {
2016-06-28 05:36:00 +02:00
__pyx_builtin_OSError = __Pyx_GetBuiltinName ( __pyx_n_s_OSError ) ; if ( ! __pyx_builtin_OSError ) __PYX_ERR ( 0 , 67 , __pyx_L1_error )
__pyx_builtin_RuntimeWarning = __Pyx_GetBuiltinName ( __pyx_n_s_RuntimeWarning ) ; if ( ! __pyx_builtin_RuntimeWarning ) __PYX_ERR ( 0 , 75 , __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
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " __Pyx_InitCachedConstants " , 0 ) ;
2011-05-12 22:45:14 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":67
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 )
*/
2016-06-28 05:36:00 +02:00
__pyx_tuple_ = PyTuple_Pack ( 1 , __pyx_kp_s_Failed_to_get_payload_of_packet ) ; if ( unlikely ( ! __pyx_tuple_ ) ) __PYX_ERR ( 0 , 67 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_tuple_ ) ;
__Pyx_GIVEREF ( __pyx_tuple_ ) ;
2011-05-13 17:42:05 +02:00
2016-06-28 05:36:00 +02:00
/* "netfilterqueue.pyx":75
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
*/
2016-06-28 05:36:00 +02:00
__pyx_tuple__2 = PyTuple_Pack ( 1 , __pyx_kp_s_Verdict_already_given_for_this_p ) ; if ( unlikely ( ! __pyx_tuple__2 ) ) __PYX_ERR ( 0 , 75 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_tuple__2 ) ;
__Pyx_GIVEREF ( __pyx_tuple__2 ) ;
2011-05-13 17:42:05 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":144
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
*/
2016-10-27 22:49:16 +02:00
__pyx_tuple__3 = PyTuple_Pack ( 1 , __pyx_kp_s_Failed_to_open_NFQueue ) ; if ( unlikely ( ! __pyx_tuple__3 ) ) __PYX_ERR ( 0 , 144 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_tuple__3 ) ;
__Pyx_GIVEREF ( __pyx_tuple__3 ) ;
2011-05-13 17:42:05 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":173
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
*/
2016-10-27 22:49:16 +02:00
__pyx_tuple__5 = PyTuple_Pack ( 1 , __pyx_kp_s_Failed_to_set_packet_copy_mode ) ; if ( unlikely ( ! __pyx_tuple__5 ) ) __PYX_ERR ( 0 , 173 , __pyx_L1_error )
2015-08-06 22:26:40 +02:00
__Pyx_GOTREF ( __pyx_tuple__5 ) ;
__Pyx_GIVEREF ( __pyx_tuple__5 ) ;
2011-10-14 23:14:25 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":213
2016-06-28 09:13:40 +02:00
* while True :
* try :
2016-06-28 08:48:53 +02:00
* buf = s . recv ( BufferSize ) # < < < < < < < < < < < < < <
* rv = len ( buf )
* if rv > = 0 :
*/
2016-10-27 22:49:16 +02:00
__pyx_tuple__6 = PyTuple_Pack ( 1 , __pyx_int_4096 ) ; if ( unlikely ( ! __pyx_tuple__6 ) ) __PYX_ERR ( 0 , 213 , __pyx_L1_error )
2016-06-28 08:48:53 +02:00
__Pyx_GOTREF ( __pyx_tuple__6 ) ;
__Pyx_GIVEREF ( __pyx_tuple__6 ) ;
2012-12-24 04:24:23 +01:00
/* "netfilterqueue.pyx":8
* License : MIT ; see LICENSE . txt
2011-10-14 23:14:25 +02:00
* " " "
2016-10-27 22:49:16 +02:00
* VERSION = ( 0 , 7 , 0 ) # < < < < < < < < < < < < < <
2011-10-14 23:14:25 +02:00
*
* # Constants for module users
*/
2016-10-27 22:49:16 +02:00
__pyx_tuple__7 = PyTuple_Pack ( 3 , __pyx_int_0 , __pyx_int_7 , __pyx_int_0 ) ; if ( unlikely ( ! __pyx_tuple__7 ) ) __PYX_ERR ( 0 , 8 , __pyx_L1_error )
2016-06-28 08:48:53 +02:00
__Pyx_GOTREF ( __pyx_tuple__7 ) ;
__Pyx_GIVEREF ( __pyx_tuple__7 ) ;
2011-05-12 22:45:14 +02:00
__Pyx_RefNannyFinishContext ( ) ;
return 0 ;
__pyx_L1_error : ;
__Pyx_RefNannyFinishContext ( ) ;
return - 1 ;
}
static int __Pyx_InitGlobals ( void ) {
2016-06-28 05:03:55 +02:00
if ( __Pyx_InitStrings ( __pyx_string_tab ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error ) ;
__pyx_int_0 = PyInt_FromLong ( 0 ) ; if ( unlikely ( ! __pyx_int_0 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_1 = PyInt_FromLong ( 1 ) ; if ( unlikely ( ! __pyx_int_1 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_2 = PyInt_FromLong ( 2 ) ; if ( unlikely ( ! __pyx_int_2 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_3 = PyInt_FromLong ( 3 ) ; if ( unlikely ( ! __pyx_int_3 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_4 = PyInt_FromLong ( 4 ) ; if ( unlikely ( ! __pyx_int_4 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_5 = PyInt_FromLong ( 5 ) ; if ( unlikely ( ! __pyx_int_5 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_6 = PyInt_FromLong ( 6 ) ; if ( unlikely ( ! __pyx_int_6 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_7 = PyInt_FromLong ( 7 ) ; if ( unlikely ( ! __pyx_int_7 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_8 = PyInt_FromLong ( 8 ) ; if ( unlikely ( ! __pyx_int_8 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_9 = PyInt_FromLong ( 9 ) ; if ( unlikely ( ! __pyx_int_9 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_10 = PyInt_FromLong ( 10 ) ; if ( unlikely ( ! __pyx_int_10 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_11 = PyInt_FromLong ( 11 ) ; if ( unlikely ( ! __pyx_int_11 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_12 = PyInt_FromLong ( 12 ) ; if ( unlikely ( ! __pyx_int_12 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_13 = PyInt_FromLong ( 13 ) ; if ( unlikely ( ! __pyx_int_13 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_14 = PyInt_FromLong ( 14 ) ; if ( unlikely ( ! __pyx_int_14 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_15 = PyInt_FromLong ( 15 ) ; if ( unlikely ( ! __pyx_int_15 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_16 = PyInt_FromLong ( 16 ) ; if ( unlikely ( ! __pyx_int_16 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_17 = PyInt_FromLong ( 17 ) ; if ( unlikely ( ! __pyx_int_17 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_18 = PyInt_FromLong ( 18 ) ; if ( unlikely ( ! __pyx_int_18 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_19 = PyInt_FromLong ( 19 ) ; if ( unlikely ( ! __pyx_int_19 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_20 = PyInt_FromLong ( 20 ) ; if ( unlikely ( ! __pyx_int_20 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_21 = PyInt_FromLong ( 21 ) ; if ( unlikely ( ! __pyx_int_21 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_22 = PyInt_FromLong ( 22 ) ; if ( unlikely ( ! __pyx_int_22 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_23 = PyInt_FromLong ( 23 ) ; if ( unlikely ( ! __pyx_int_23 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_24 = PyInt_FromLong ( 24 ) ; if ( unlikely ( ! __pyx_int_24 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_25 = PyInt_FromLong ( 25 ) ; if ( unlikely ( ! __pyx_int_25 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_26 = PyInt_FromLong ( 26 ) ; if ( unlikely ( ! __pyx_int_26 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_27 = PyInt_FromLong ( 27 ) ; if ( unlikely ( ! __pyx_int_27 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_28 = PyInt_FromLong ( 28 ) ; if ( unlikely ( ! __pyx_int_28 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_29 = PyInt_FromLong ( 29 ) ; if ( unlikely ( ! __pyx_int_29 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_30 = PyInt_FromLong ( 30 ) ; if ( unlikely ( ! __pyx_int_30 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_31 = PyInt_FromLong ( 31 ) ; if ( unlikely ( ! __pyx_int_31 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_32 = PyInt_FromLong ( 32 ) ; if ( unlikely ( ! __pyx_int_32 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_33 = PyInt_FromLong ( 33 ) ; if ( unlikely ( ! __pyx_int_33 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_34 = PyInt_FromLong ( 34 ) ; if ( unlikely ( ! __pyx_int_34 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_35 = PyInt_FromLong ( 35 ) ; if ( unlikely ( ! __pyx_int_35 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_36 = PyInt_FromLong ( 36 ) ; if ( unlikely ( ! __pyx_int_36 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_37 = PyInt_FromLong ( 37 ) ; if ( unlikely ( ! __pyx_int_37 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_38 = PyInt_FromLong ( 38 ) ; if ( unlikely ( ! __pyx_int_38 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_39 = PyInt_FromLong ( 39 ) ; if ( unlikely ( ! __pyx_int_39 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_40 = PyInt_FromLong ( 40 ) ; if ( unlikely ( ! __pyx_int_40 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_41 = PyInt_FromLong ( 41 ) ; if ( unlikely ( ! __pyx_int_41 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_42 = PyInt_FromLong ( 42 ) ; if ( unlikely ( ! __pyx_int_42 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_43 = PyInt_FromLong ( 43 ) ; if ( unlikely ( ! __pyx_int_43 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_44 = PyInt_FromLong ( 44 ) ; if ( unlikely ( ! __pyx_int_44 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_45 = PyInt_FromLong ( 45 ) ; if ( unlikely ( ! __pyx_int_45 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_46 = PyInt_FromLong ( 46 ) ; if ( unlikely ( ! __pyx_int_46 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_47 = PyInt_FromLong ( 47 ) ; if ( unlikely ( ! __pyx_int_47 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_48 = PyInt_FromLong ( 48 ) ; if ( unlikely ( ! __pyx_int_48 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_49 = PyInt_FromLong ( 49 ) ; if ( unlikely ( ! __pyx_int_49 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_50 = PyInt_FromLong ( 50 ) ; if ( unlikely ( ! __pyx_int_50 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_51 = PyInt_FromLong ( 51 ) ; if ( unlikely ( ! __pyx_int_51 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_52 = PyInt_FromLong ( 52 ) ; if ( unlikely ( ! __pyx_int_52 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_53 = PyInt_FromLong ( 53 ) ; if ( unlikely ( ! __pyx_int_53 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_54 = PyInt_FromLong ( 54 ) ; if ( unlikely ( ! __pyx_int_54 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_55 = PyInt_FromLong ( 55 ) ; if ( unlikely ( ! __pyx_int_55 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_56 = PyInt_FromLong ( 56 ) ; if ( unlikely ( ! __pyx_int_56 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_57 = PyInt_FromLong ( 57 ) ; if ( unlikely ( ! __pyx_int_57 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_58 = PyInt_FromLong ( 58 ) ; if ( unlikely ( ! __pyx_int_58 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_59 = PyInt_FromLong ( 59 ) ; if ( unlikely ( ! __pyx_int_59 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_60 = PyInt_FromLong ( 60 ) ; if ( unlikely ( ! __pyx_int_60 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_61 = PyInt_FromLong ( 61 ) ; if ( unlikely ( ! __pyx_int_61 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_62 = PyInt_FromLong ( 62 ) ; if ( unlikely ( ! __pyx_int_62 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_63 = PyInt_FromLong ( 63 ) ; if ( unlikely ( ! __pyx_int_63 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_64 = PyInt_FromLong ( 64 ) ; if ( unlikely ( ! __pyx_int_64 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_65 = PyInt_FromLong ( 65 ) ; if ( unlikely ( ! __pyx_int_65 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_66 = PyInt_FromLong ( 66 ) ; if ( unlikely ( ! __pyx_int_66 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_67 = PyInt_FromLong ( 67 ) ; if ( unlikely ( ! __pyx_int_67 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_68 = PyInt_FromLong ( 68 ) ; if ( unlikely ( ! __pyx_int_68 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_69 = PyInt_FromLong ( 69 ) ; if ( unlikely ( ! __pyx_int_69 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_70 = PyInt_FromLong ( 70 ) ; if ( unlikely ( ! __pyx_int_70 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_71 = PyInt_FromLong ( 71 ) ; if ( unlikely ( ! __pyx_int_71 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_72 = PyInt_FromLong ( 72 ) ; if ( unlikely ( ! __pyx_int_72 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_73 = PyInt_FromLong ( 73 ) ; if ( unlikely ( ! __pyx_int_73 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_74 = PyInt_FromLong ( 74 ) ; if ( unlikely ( ! __pyx_int_74 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_75 = PyInt_FromLong ( 75 ) ; if ( unlikely ( ! __pyx_int_75 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_76 = PyInt_FromLong ( 76 ) ; if ( unlikely ( ! __pyx_int_76 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_77 = PyInt_FromLong ( 77 ) ; if ( unlikely ( ! __pyx_int_77 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_78 = PyInt_FromLong ( 78 ) ; if ( unlikely ( ! __pyx_int_78 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_79 = PyInt_FromLong ( 79 ) ; if ( unlikely ( ! __pyx_int_79 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_80 = PyInt_FromLong ( 80 ) ; if ( unlikely ( ! __pyx_int_80 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_81 = PyInt_FromLong ( 81 ) ; if ( unlikely ( ! __pyx_int_81 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_82 = PyInt_FromLong ( 82 ) ; if ( unlikely ( ! __pyx_int_82 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_83 = PyInt_FromLong ( 83 ) ; if ( unlikely ( ! __pyx_int_83 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_84 = PyInt_FromLong ( 84 ) ; if ( unlikely ( ! __pyx_int_84 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_85 = PyInt_FromLong ( 85 ) ; if ( unlikely ( ! __pyx_int_85 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_86 = PyInt_FromLong ( 86 ) ; if ( unlikely ( ! __pyx_int_86 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_87 = PyInt_FromLong ( 87 ) ; if ( unlikely ( ! __pyx_int_87 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_88 = PyInt_FromLong ( 88 ) ; if ( unlikely ( ! __pyx_int_88 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_89 = PyInt_FromLong ( 89 ) ; if ( unlikely ( ! __pyx_int_89 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_90 = PyInt_FromLong ( 90 ) ; if ( unlikely ( ! __pyx_int_90 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_91 = PyInt_FromLong ( 91 ) ; if ( unlikely ( ! __pyx_int_91 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_92 = PyInt_FromLong ( 92 ) ; if ( unlikely ( ! __pyx_int_92 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_93 = PyInt_FromLong ( 93 ) ; if ( unlikely ( ! __pyx_int_93 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_94 = PyInt_FromLong ( 94 ) ; if ( unlikely ( ! __pyx_int_94 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_95 = PyInt_FromLong ( 95 ) ; if ( unlikely ( ! __pyx_int_95 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_96 = PyInt_FromLong ( 96 ) ; if ( unlikely ( ! __pyx_int_96 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_97 = PyInt_FromLong ( 97 ) ; if ( unlikely ( ! __pyx_int_97 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_98 = PyInt_FromLong ( 98 ) ; if ( unlikely ( ! __pyx_int_98 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_99 = PyInt_FromLong ( 99 ) ; if ( unlikely ( ! __pyx_int_99 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_100 = PyInt_FromLong ( 100 ) ; if ( unlikely ( ! __pyx_int_100 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_101 = PyInt_FromLong ( 101 ) ; if ( unlikely ( ! __pyx_int_101 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_102 = PyInt_FromLong ( 102 ) ; if ( unlikely ( ! __pyx_int_102 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_103 = PyInt_FromLong ( 103 ) ; if ( unlikely ( ! __pyx_int_103 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_104 = PyInt_FromLong ( 104 ) ; if ( unlikely ( ! __pyx_int_104 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_105 = PyInt_FromLong ( 105 ) ; if ( unlikely ( ! __pyx_int_105 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_106 = PyInt_FromLong ( 106 ) ; if ( unlikely ( ! __pyx_int_106 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_107 = PyInt_FromLong ( 107 ) ; if ( unlikely ( ! __pyx_int_107 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_108 = PyInt_FromLong ( 108 ) ; if ( unlikely ( ! __pyx_int_108 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_109 = PyInt_FromLong ( 109 ) ; if ( unlikely ( ! __pyx_int_109 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_110 = PyInt_FromLong ( 110 ) ; if ( unlikely ( ! __pyx_int_110 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_111 = PyInt_FromLong ( 111 ) ; if ( unlikely ( ! __pyx_int_111 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_112 = PyInt_FromLong ( 112 ) ; if ( unlikely ( ! __pyx_int_112 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_113 = PyInt_FromLong ( 113 ) ; if ( unlikely ( ! __pyx_int_113 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_114 = PyInt_FromLong ( 114 ) ; if ( unlikely ( ! __pyx_int_114 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_115 = PyInt_FromLong ( 115 ) ; if ( unlikely ( ! __pyx_int_115 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_116 = PyInt_FromLong ( 116 ) ; if ( unlikely ( ! __pyx_int_116 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_117 = PyInt_FromLong ( 117 ) ; if ( unlikely ( ! __pyx_int_117 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_118 = PyInt_FromLong ( 118 ) ; if ( unlikely ( ! __pyx_int_118 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_119 = PyInt_FromLong ( 119 ) ; if ( unlikely ( ! __pyx_int_119 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_120 = PyInt_FromLong ( 120 ) ; if ( unlikely ( ! __pyx_int_120 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_121 = PyInt_FromLong ( 121 ) ; if ( unlikely ( ! __pyx_int_121 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_122 = PyInt_FromLong ( 122 ) ; if ( unlikely ( ! __pyx_int_122 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_123 = PyInt_FromLong ( 123 ) ; if ( unlikely ( ! __pyx_int_123 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_124 = PyInt_FromLong ( 124 ) ; if ( unlikely ( ! __pyx_int_124 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_125 = PyInt_FromLong ( 125 ) ; if ( unlikely ( ! __pyx_int_125 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_126 = PyInt_FromLong ( 126 ) ; if ( unlikely ( ! __pyx_int_126 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_127 = PyInt_FromLong ( 127 ) ; if ( unlikely ( ! __pyx_int_127 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_128 = PyInt_FromLong ( 128 ) ; if ( unlikely ( ! __pyx_int_128 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_129 = PyInt_FromLong ( 129 ) ; if ( unlikely ( ! __pyx_int_129 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_130 = PyInt_FromLong ( 130 ) ; if ( unlikely ( ! __pyx_int_130 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_131 = PyInt_FromLong ( 131 ) ; if ( unlikely ( ! __pyx_int_131 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_132 = PyInt_FromLong ( 132 ) ; if ( unlikely ( ! __pyx_int_132 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_133 = PyInt_FromLong ( 133 ) ; if ( unlikely ( ! __pyx_int_133 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_134 = PyInt_FromLong ( 134 ) ; if ( unlikely ( ! __pyx_int_134 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_135 = PyInt_FromLong ( 135 ) ; if ( unlikely ( ! __pyx_int_135 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_136 = PyInt_FromLong ( 136 ) ; if ( unlikely ( ! __pyx_int_136 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_137 = PyInt_FromLong ( 137 ) ; if ( unlikely ( ! __pyx_int_137 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_138 = PyInt_FromLong ( 138 ) ; if ( unlikely ( ! __pyx_int_138 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_139 = PyInt_FromLong ( 139 ) ; if ( unlikely ( ! __pyx_int_139 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_140 = PyInt_FromLong ( 140 ) ; if ( unlikely ( ! __pyx_int_140 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_int_255 = PyInt_FromLong ( 255 ) ; if ( unlikely ( ! __pyx_int_255 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
2016-06-28 08:48:53 +02:00
__pyx_int_4096 = PyInt_FromLong ( 4096 ) ; if ( unlikely ( ! __pyx_int_4096 ) ) __PYX_ERR ( 0 , 1 , __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-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
2013-04-03 13:55:51 +02:00
__Pyx_RefNannySetupContext ( " PyMODINIT_FUNC PyInit_netfilterqueue(void) " , 0 ) ;
2016-06-28 05:03:55 +02:00
if ( __Pyx_check_binary_version ( ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_empty_tuple = PyTuple_New ( 0 ) ; if ( unlikely ( ! __pyx_empty_tuple ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_empty_bytes = PyBytes_FromStringAndSize ( " " , 0 ) ; if ( unlikely ( ! __pyx_empty_bytes ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_empty_unicode = PyUnicode_FromStringAndSize ( " " , 0 ) ; if ( unlikely ( ! __pyx_empty_unicode ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
2013-04-03 13:55:51 +02:00
# ifdef __Pyx_CyFunction_USED
2016-06-28 05:03:55 +02:00
if ( __pyx_CyFunction_init ( ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
2013-04-03 13:55:51 +02:00
# endif
# ifdef __Pyx_FusedFunction_USED
2016-06-28 05:03:55 +02:00
if ( __pyx_FusedFunction_init ( ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
# endif
# ifdef __Pyx_Coroutine_USED
if ( __pyx_Coroutine_init ( ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
2013-04-03 13:55:51 +02:00
# endif
# ifdef __Pyx_Generator_USED
2016-06-28 05:03:55 +02:00
if ( __pyx_Generator_init ( ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
# endif
# ifdef __Pyx_StopAsyncIteration_USED
if ( __pyx_StopAsyncIteration_init ( ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
# 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
2016-06-28 05:03:55 +02:00
__pyx_m = Py_InitModule4 ( " netfilterqueue " , __pyx_methods , __pyx_k_Bind_to_a_Linux_netfilter_queue , 0 , PYTHON_API_VERSION ) ; Py_XINCREF ( __pyx_m ) ;
2011-05-12 22:45:14 +02:00
# else
__pyx_m = PyModule_Create ( & __pyx_moduledef ) ;
# endif
2016-06-28 05:03:55 +02:00
if ( unlikely ( ! __pyx_m ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__pyx_d = PyModule_GetDict ( __pyx_m ) ; if ( unlikely ( ! __pyx_d ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
Py_INCREF ( __pyx_d ) ;
__pyx_b = PyImport_AddModule ( __Pyx_BUILTIN_MODULE_NAME ) ; if ( unlikely ( ! __pyx_b ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
2013-04-03 13:55:51 +02:00
# if CYTHON_COMPILING_IN_PYPY
Py_INCREF ( __pyx_b ) ;
2011-05-12 22:45:14 +02:00
# endif
2016-06-28 05:03:55 +02:00
if ( PyObject_SetAttrString ( __pyx_m , " __builtins__ " , __pyx_b ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error ) ;
2011-05-12 22:45:14 +02:00
/*--- Initialize various global constants etc. ---*/
2016-06-28 05:03:55 +02:00
if ( __Pyx_InitGlobals ( ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
# if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
if ( __Pyx_init_sys_getdefaultencoding_params ( ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
# endif
2011-05-12 22:45:14 +02:00
if ( __pyx_module_is_main_netfilterqueue ) {
2016-06-28 05:03:55 +02:00
if ( PyObject_SetAttrString ( __pyx_m , " __name__ " , __pyx_n_s_main ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
}
# if PY_MAJOR_VERSION >= 3
{
PyObject * modules = PyImport_GetModuleDict ( ) ; if ( unlikely ( ! modules ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
if ( ! PyDict_GetItemString ( modules , " netfilterqueue " ) ) {
if ( unlikely ( PyDict_SetItemString ( modules , " netfilterqueue " , __pyx_m ) < 0 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
}
2011-05-12 22:45:14 +02:00
}
2016-06-28 05:03:55 +02:00
# endif
2011-05-12 22:45:14 +02:00
/*--- Builtin init code ---*/
2016-06-28 05:03:55 +02:00
if ( __Pyx_InitCachedBuiltins ( ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
/*--- Constants init code ---*/
2016-06-28 05:03:55 +02:00
if ( __Pyx_InitCachedConstants ( ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
/*--- 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 ;
2013-04-15 05:30:35 +02:00
__pyx_vtable_14netfilterqueue_Packet . get_mark = ( PyObject * ( * ) ( struct __pyx_obj_14netfilterqueue_Packet * , int __pyx_skip_dispatch ) ) __pyx_f_14netfilterqueue_6Packet_get_mark ;
2011-05-13 17:42:05 +02:00
__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 ;
2013-04-03 13:55:51 +02:00
__pyx_vtable_14netfilterqueue_Packet . repeat = ( PyObject * ( * ) ( struct __pyx_obj_14netfilterqueue_Packet * , int __pyx_skip_dispatch ) ) __pyx_f_14netfilterqueue_6Packet_repeat ;
2016-06-28 05:36:00 +02:00
if ( PyType_Ready ( & __pyx_type_14netfilterqueue_Packet ) < 0 ) __PYX_ERR ( 0 , 40 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__pyx_type_14netfilterqueue_Packet . tp_print = 0 ;
2016-06-28 05:36:00 +02:00
if ( __Pyx_SetVtable ( __pyx_type_14netfilterqueue_Packet . tp_dict , __pyx_vtabptr_14netfilterqueue_Packet ) < 0 ) __PYX_ERR ( 0 , 40 , __pyx_L1_error )
if ( PyObject_SetAttrString ( __pyx_m , " Packet " , ( PyObject * ) & __pyx_type_14netfilterqueue_Packet ) < 0 ) __PYX_ERR ( 0 , 40 , __pyx_L1_error )
2011-05-13 17:42:05 +02:00
__pyx_ptype_14netfilterqueue_Packet = & __pyx_type_14netfilterqueue_Packet ;
2016-10-27 22:49:16 +02:00
if ( PyType_Ready ( & __pyx_type_14netfilterqueue_NetfilterQueue ) < 0 ) __PYX_ERR ( 0 , 137 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__pyx_type_14netfilterqueue_NetfilterQueue . tp_print = 0 ;
2016-10-27 22:49:16 +02:00
if ( PyObject_SetAttrString ( __pyx_m , " NetfilterQueue " , ( PyObject * ) & __pyx_type_14netfilterqueue_NetfilterQueue ) < 0 ) __PYX_ERR ( 0 , 137 , __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 ---*/
2016-06-28 05:03:55 +02:00
# if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
if ( __Pyx_patch_abc ( ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
# endif
2011-05-12 22:45:14 +02:00
2012-12-24 04:24:23 +01:00
/* "netfilterqueue.pyx":8
* License : MIT ; see LICENSE . txt
2011-10-14 23:14:25 +02:00
* " " "
2016-10-27 22:49:16 +02:00
* VERSION = ( 0 , 7 , 0 ) # < < < < < < < < < < < < < <
2011-10-14 23:14:25 +02:00
*
* # Constants for module users
*/
2016-06-28 08:48:53 +02:00
if ( PyDict_SetItem ( __pyx_d , __pyx_n_s_VERSION , __pyx_tuple__7 ) < 0 ) __PYX_ERR ( 0 , 8 , __pyx_L1_error )
2011-10-14 23:14:25 +02:00
2012-12-24 04:24:23 +01:00
/* "netfilterqueue.pyx":11
2011-10-14 23:14:25 +02:00
*
2011-05-12 22:45:14 +02:00
* # Constants for module users
2016-06-28 05:52:13 +02:00
* COPY_NONE = 0 # < < < < < < < < < < < < < <
* COPY_META = 1
* COPY_PACKET = 2
2011-05-12 22:45:14 +02:00
*/
2016-06-28 05:52:13 +02:00
if ( PyDict_SetItem ( __pyx_d , __pyx_n_s_COPY_NONE , __pyx_int_0 ) < 0 ) __PYX_ERR ( 0 , 11 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
2012-12-24 04:24:23 +01:00
/* "netfilterqueue.pyx":12
2011-05-12 22:45:14 +02:00
* # Constants for module users
2016-06-28 05:52:13 +02:00
* COPY_NONE = 0
* COPY_META = 1 # < < < < < < < < < < < < < <
* COPY_PACKET = 2
2011-05-12 22:45:14 +02:00
*
*/
2016-06-28 05:52:13 +02:00
if ( PyDict_SetItem ( __pyx_d , __pyx_n_s_COPY_META , __pyx_int_1 ) < 0 ) __PYX_ERR ( 0 , 12 , __pyx_L1_error )
2011-05-12 22:45:14 +02:00
2012-12-24 04:24:23 +01:00
/* "netfilterqueue.pyx":13
2016-06-28 05:52:13 +02:00
* COPY_NONE = 0
* COPY_META = 1
* COPY_PACKET = 2 # < < < < < < < < < < < < < <
2011-05-12 22:45:14 +02:00
*
* # Packet copying defaults
*/
2016-06-28 05:52:13 +02:00
if ( PyDict_SetItem ( __pyx_d , __pyx_n_s_COPY_PACKET , __pyx_int_2 ) < 0 ) __PYX_ERR ( 0 , 13 , __pyx_L1_error )
2011-10-14 23:14:25 +02:00
2016-06-28 08:48:53 +02:00
/* "netfilterqueue.pyx":27
* DEF SockRcvSize = DEFAULT_MAX_QUEUELEN * SockCopySize / 2
*
* import socket # < < < < < < < < < < < < < <
* cimport cpython . version
*
*/
__pyx_t_1 = __Pyx_Import ( __pyx_n_s_socket , 0 , - 1 ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 27 , __pyx_L1_error )
__Pyx_GOTREF ( __pyx_t_1 ) ;
if ( PyDict_SetItem ( __pyx_d , __pyx_n_s_socket , __pyx_t_1 ) < 0 ) __PYX_ERR ( 0 , 27 , __pyx_L1_error )
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":159
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 , # < < < < < < < < < < < < < <
2015-08-06 22:26:40 +02:00
* u_int32_t range = MaxPacketSize ,
* u_int32_t sock_len = SockRcvSize ) :
2011-10-14 23:14:25 +02:00
*/
2015-08-06 22:26:40 +02:00
__pyx_k__4 = NFQNL_COPY_PACKET ;
2011-05-12 22:45:14 +02:00
2016-10-27 22:49:16 +02:00
/* "netfilterqueue.pyx":232
2011-05-12 22:45:14 +02:00
*
2016-06-28 05:03:55 +02:00
* PROTOCOLS = {
* 0 : " HOPOPT " , # < < < < < < < < < < < < < <
2011-05-13 17:42:05 +02:00
* 1 : " ICMP " ,
2016-06-28 05:03:55 +02:00
* 2 : " IGMP " ,
2011-05-13 17:42:05 +02:00
*/
2016-10-27 22:49:16 +02:00
__pyx_t_1 = PyDict_New ( ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2016-10-27 22:49:16 +02:00
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_0 , __pyx_n_s_HOPOPT ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_1 , __pyx_n_s_ICMP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_2 , __pyx_n_s_IGMP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_3 , __pyx_n_s_GGP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_4 , __pyx_n_s_IP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_5 , __pyx_n_s_ST ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_6 , __pyx_n_s_TCP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_7 , __pyx_n_s_CBT ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_8 , __pyx_n_s_EGP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_9 , __pyx_n_s_IGP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_10 , __pyx_kp_s_BBN_RCC_MON ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_11 , __pyx_kp_s_NVP_II ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_12 , __pyx_n_s_PUP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_13 , __pyx_n_s_ARGUS ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_14 , __pyx_n_s_EMCON ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_15 , __pyx_n_s_XNET ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_16 , __pyx_n_s_CHAOS ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_17 , __pyx_n_s_UDP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_18 , __pyx_n_s_MUX ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_19 , __pyx_kp_s_DCN_MEAS ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_20 , __pyx_n_s_HMP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_21 , __pyx_n_s_PRM ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_22 , __pyx_kp_s_XNS_IDP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_23 , __pyx_kp_s_TRUNK_1 ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_24 , __pyx_kp_s_TRUNK_2 ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_25 , __pyx_kp_s_LEAF_1 ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_26 , __pyx_kp_s_LEAF_2 ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_27 , __pyx_n_s_RDP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_28 , __pyx_n_s_IRTP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_29 , __pyx_kp_s_ISO_TP4 ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_30 , __pyx_n_s_NETBLT ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_31 , __pyx_kp_s_MFE_NSP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_32 , __pyx_kp_s_MERIT_INP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_33 , __pyx_n_s_DCCP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_34 , __pyx_kp_s_3PC ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_35 , __pyx_n_s_IDPR ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_36 , __pyx_n_s_XTP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_37 , __pyx_n_s_DDP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_38 , __pyx_kp_s_IDPR_CMTP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_39 , __pyx_kp_s_TP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_40 , __pyx_n_s_IL ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_41 , __pyx_n_s_IPv6 ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_42 , __pyx_n_s_SDRP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_43 , __pyx_kp_s_IPv6_Route ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_44 , __pyx_kp_s_IPv6_Frag ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_45 , __pyx_n_s_IDRP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_46 , __pyx_n_s_RSVP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_47 , __pyx_n_s_GRE ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_48 , __pyx_n_s_DSR ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_49 , __pyx_n_s_BNA ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_50 , __pyx_n_s_ESP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_51 , __pyx_n_s_AH ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_52 , __pyx_kp_s_I_NLSP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_53 , __pyx_n_s_SWIPE ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_54 , __pyx_n_s_NARP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_55 , __pyx_n_s_MOBILE ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_56 , __pyx_n_s_TLSP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_57 , __pyx_n_s_SKIP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_58 , __pyx_kp_s_IPv6_ICMP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_59 , __pyx_kp_s_IPv6_NoNxt ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_60 , __pyx_kp_s_IPv6_Opts ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_61 , __pyx_kp_s_any_host_internal_protocol ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_62 , __pyx_n_s_CFTP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_63 , __pyx_kp_s_any_local_network ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_64 , __pyx_kp_s_SAT_EXPAK ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_65 , __pyx_n_s_KRYPTOLAN ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_66 , __pyx_n_s_RVD ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_67 , __pyx_n_s_IPPC ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_68 , __pyx_kp_s_any_distributed_file_system ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_69 , __pyx_kp_s_SAT_MON ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_70 , __pyx_n_s_VISA ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_71 , __pyx_n_s_IPCV ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_72 , __pyx_n_s_CPNX ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_73 , __pyx_n_s_CPHB ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_74 , __pyx_n_s_WSN ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_75 , __pyx_n_s_PVP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_76 , __pyx_kp_s_BR_SAT_MON ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_77 , __pyx_kp_s_SUN_ND ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_78 , __pyx_kp_s_WB_MON ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_79 , __pyx_kp_s_WB_EXPAK ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_80 , __pyx_kp_s_ISO_IP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_81 , __pyx_n_s_VMTP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_82 , __pyx_kp_s_SECURE_VMTP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_83 , __pyx_n_s_VINES ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_84 , __pyx_n_s_TTP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_85 , __pyx_kp_s_NSFNET_IGP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_86 , __pyx_n_s_DGP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_87 , __pyx_n_s_TCF ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_88 , __pyx_n_s_EIGRP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_89 , __pyx_n_s_OSPFIGP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_90 , __pyx_kp_s_Sprite_RPC ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_91 , __pyx_n_s_LARP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_92 , __pyx_n_s_MTP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_93 , __pyx_kp_s_AX_25 ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_94 , __pyx_n_s_IPIP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_95 , __pyx_n_s_MICP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_96 , __pyx_kp_s_SCC_SP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_97 , __pyx_n_s_ETHERIP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_98 , __pyx_n_s_ENCAP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_99 , __pyx_kp_s_any_private_encryption_scheme ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_100 , __pyx_n_s_GMTP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_101 , __pyx_n_s_IFMP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_102 , __pyx_n_s_PNNI ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_103 , __pyx_n_s_PIM ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_104 , __pyx_n_s_ARIS ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_105 , __pyx_n_s_SCPS ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_106 , __pyx_n_s_QNX ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_107 , __pyx_kp_s_A_N ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_108 , __pyx_n_s_IPComp ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_109 , __pyx_n_s_SNP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_110 , __pyx_kp_s_Compaq_Peer ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_111 , __pyx_kp_s_IPX_in_IP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_112 , __pyx_n_s_VRRP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_113 , __pyx_n_s_PGM ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_114 , __pyx_kp_s_any_0_hop_protocol ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_115 , __pyx_n_s_L2TP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_116 , __pyx_n_s_DDX ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_117 , __pyx_n_s_IATP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_118 , __pyx_n_s_STP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_119 , __pyx_n_s_SRP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_120 , __pyx_n_s_UTI ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_121 , __pyx_n_s_SMP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_122 , __pyx_n_s_SM ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_123 , __pyx_n_s_PTP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_124 , __pyx_n_s_ISIS ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_125 , __pyx_n_s_FIRE ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_126 , __pyx_n_s_CRTP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_127 , __pyx_n_s_CRUDP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_128 , __pyx_n_s_SSCOPMCE ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_129 , __pyx_n_s_IPLT ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_130 , __pyx_n_s_SPS ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_131 , __pyx_n_s_PIPE ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_132 , __pyx_n_s_SCTP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_133 , __pyx_n_s_FC ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_134 , __pyx_kp_s_RSVP_E2E_IGNORE ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_135 , __pyx_n_s_Mobility ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_136 , __pyx_n_s_UDPLite ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_137 , __pyx_kp_s_MPLS_in_IP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_138 , __pyx_n_s_manet ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_139 , __pyx_n_s_HIP ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_140 , __pyx_n_s_Shim6 ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_t_1 , __pyx_int_255 , __pyx_n_s_Reserved ) < 0 ) __PYX_ERR ( 0 , 232 , __pyx_L1_error )
if ( PyDict_SetItem ( __pyx_d , __pyx_n_s_PROTOCOLS , __pyx_t_1 ) < 0 ) __PYX_ERR ( 0 , 231 , __pyx_L1_error )
2016-06-28 05:03:55 +02:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2011-05-13 17:42:05 +02:00
/* "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
*/
2016-06-28 05:03:55 +02:00
__pyx_t_1 = PyDict_New ( ) ; if ( unlikely ( ! __pyx_t_1 ) ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__Pyx_GOTREF ( __pyx_t_1 ) ;
if ( PyDict_SetItem ( __pyx_d , __pyx_n_s_test , __pyx_t_1 ) < 0 ) __PYX_ERR ( 0 , 1 , __pyx_L1_error )
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
/*--- Wrapped vars code ---*/
2011-05-12 22:45:14 +02:00
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
if ( __pyx_m ) {
2016-06-28 05:03:55 +02:00
if ( __pyx_d ) {
__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
}
2016-06-28 05:03:55 +02:00
/* --- Runtime support code --- */
/* Refnanny */
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 ;
}
2016-06-28 05:03:55 +02:00
# endif
2011-10-14 23:14:25 +02:00
2016-06-28 05:03:55 +02:00
/* GetBuiltinName */
static PyObject * __Pyx_GetBuiltinName ( PyObject * name ) {
PyObject * result = __Pyx_PyObject_GetAttrStr ( __pyx_b , name ) ;
if ( unlikely ( ! result ) ) {
PyErr_Format ( PyExc_NameError ,
# if PY_MAJOR_VERSION >= 3
" name '%U' is not defined " , name ) ;
# else
" name '%.200s' is not defined " , PyString_AS_STRING ( name ) ) ;
# endif
2011-10-14 23:14:25 +02:00
}
2011-05-12 22:45:14 +02:00
return result ;
}
2016-06-28 05:03:55 +02:00
/* PyObjectCall */
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject * __Pyx_PyObject_Call ( PyObject * func , PyObject * arg , PyObject * kw ) {
PyObject * result ;
ternaryfunc call = func - > ob_type - > tp_call ;
if ( unlikely ( ! call ) )
return PyObject_Call ( func , arg , kw ) ;
if ( unlikely ( Py_EnterRecursiveCall ( ( char * ) " while calling a Python object " ) ) )
return NULL ;
result = ( * call ) ( func , arg , kw ) ;
Py_LeaveRecursiveCall ( ) ;
if ( unlikely ( ! result ) & & unlikely ( ! PyErr_Occurred ( ) ) ) {
PyErr_SetString (
PyExc_SystemError ,
" NULL result without error in PyObject_Call " ) ;
2011-05-12 22:45:14 +02:00
}
2016-06-28 05:03:55 +02:00
return result ;
}
# endif
/* PyObjectCallMethO */
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject * __Pyx_PyObject_CallMethO ( PyObject * func , PyObject * arg ) {
PyObject * self , * result ;
PyCFunction cfunc ;
cfunc = PyCFunction_GET_FUNCTION ( func ) ;
self = PyCFunction_GET_SELF ( func ) ;
if ( unlikely ( Py_EnterRecursiveCall ( ( char * ) " while calling a Python object " ) ) )
return NULL ;
result = cfunc ( self , arg ) ;
Py_LeaveRecursiveCall ( ) ;
if ( unlikely ( ! result ) & & unlikely ( ! PyErr_Occurred ( ) ) ) {
PyErr_SetString (
PyExc_SystemError ,
" NULL result without error in PyObject_Call " ) ;
2011-05-12 22:45:14 +02:00
}
2016-06-28 05:03:55 +02:00
return result ;
2011-05-12 22:45:14 +02:00
}
2016-06-28 05:03:55 +02:00
# endif
2011-05-12 22:45:14 +02:00
2016-06-28 05:03:55 +02:00
/* PyObjectCallOneArg */
# if CYTHON_COMPILING_IN_CPYTHON
static PyObject * __Pyx__PyObject_CallOneArg ( PyObject * func , PyObject * arg ) {
PyObject * result ;
PyObject * args = PyTuple_New ( 1 ) ;
if ( unlikely ( ! args ) ) return NULL ;
Py_INCREF ( arg ) ;
PyTuple_SET_ITEM ( args , 0 , arg ) ;
result = __Pyx_PyObject_Call ( func , args , NULL ) ;
Py_DECREF ( args ) ;
return result ;
}
static CYTHON_INLINE PyObject * __Pyx_PyObject_CallOneArg ( PyObject * func , PyObject * arg ) {
# ifdef __Pyx_CyFunction_USED
if ( likely ( PyCFunction_Check ( func ) | | PyObject_TypeCheck ( func , __pyx_CyFunctionType ) ) ) {
2013-04-03 13:55:51 +02:00
# else
2016-06-28 05:03:55 +02:00
if ( likely ( PyCFunction_Check ( func ) ) ) {
# endif
if ( likely ( PyCFunction_GET_FLAGS ( func ) & METH_O ) ) {
return __Pyx_PyObject_CallMethO ( func , arg ) ;
}
}
return __Pyx__PyObject_CallOneArg ( func , arg ) ;
}
# else
static CYTHON_INLINE PyObject * __Pyx_PyObject_CallOneArg ( PyObject * func , PyObject * arg ) {
PyObject * result ;
PyObject * args = PyTuple_Pack ( 1 , arg ) ;
if ( unlikely ( ! args ) ) return NULL ;
result = __Pyx_PyObject_Call ( func , args , NULL ) ;
Py_DECREF ( args ) ;
return result ;
}
# endif
/* PyErrFetchRestore */
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE void __Pyx_ErrRestoreInState ( PyThreadState * tstate , PyObject * type , PyObject * value , PyObject * tb ) {
PyObject * tmp_type , * tmp_value , * tmp_tb ;
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 ) ;
}
static CYTHON_INLINE void __Pyx_ErrFetchInState ( PyThreadState * tstate , PyObject * * type , PyObject * * value , PyObject * * tb ) {
* type = tstate - > curexc_type ;
* value = tstate - > curexc_value ;
* tb = tstate - > curexc_traceback ;
tstate - > curexc_type = 0 ;
tstate - > curexc_value = 0 ;
tstate - > curexc_traceback = 0 ;
}
# endif
/* WriteUnraisableException */
static void __Pyx_WriteUnraisable ( const char * name , CYTHON_UNUSED int clineno ,
CYTHON_UNUSED int lineno , CYTHON_UNUSED const char * filename ,
int full_traceback , CYTHON_UNUSED int nogil ) {
PyObject * old_exc , * old_val , * old_tb ;
PyObject * ctx ;
__Pyx_PyThreadState_declare
# ifdef WITH_THREAD
PyGILState_STATE state ;
if ( nogil )
state = PyGILState_Ensure ( ) ;
# ifdef _MSC_VER
else state = ( PyGILState_STATE ) - 1 ;
# endif
# endif
__Pyx_PyThreadState_assign
__Pyx_ErrFetch ( & old_exc , & old_val , & old_tb ) ;
if ( full_traceback ) {
Py_XINCREF ( old_exc ) ;
Py_XINCREF ( old_val ) ;
Py_XINCREF ( old_tb ) ;
__Pyx_ErrRestore ( old_exc , old_val , old_tb ) ;
PyErr_PrintEx ( 1 ) ;
}
# 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 ) ;
}
# ifdef WITH_THREAD
if ( nogil )
PyGILState_Release ( state ) ;
# endif
}
/* RaiseArgTupleInvalid */
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 ;
const char * more_or_less ;
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 ,
" %.200s() takes %.8s % " CYTHON_FORMAT_SSIZE_T " d positional argument%.1s (% " CYTHON_FORMAT_SSIZE_T " d given) " ,
func_name , more_or_less , num_expected ,
( num_expected = = 1 ) ? " " : " s " , num_found ) ;
}
/* KeywordStringCheck */
static CYTHON_INLINE int __Pyx_CheckKeywordStrings (
PyObject * kwdict ,
const char * function_name ,
int kw_allowed )
{
PyObject * key = 0 ;
Py_ssize_t pos = 0 ;
# if CYTHON_COMPILING_IN_PYPY
if ( ! kw_allowed & & PyDict_Next ( kwdict , & pos , & key , 0 ) )
goto invalid_keyword ;
return 1 ;
# else
while ( PyDict_Next ( kwdict , & pos , & key , 0 ) ) {
# if PY_MAJOR_VERSION < 3
2011-05-12 22:45:14 +02:00
if ( unlikely ( ! PyString_CheckExact ( key ) ) & & unlikely ( ! PyString_Check ( key ) ) )
# endif
2013-04-03 13:55:51 +02:00
if ( unlikely ( ! PyUnicode_Check ( key ) ) )
goto invalid_keyword_type ;
2011-05-12 22:45:14 +02:00
}
if ( ( ! kw_allowed ) & & unlikely ( key ) )
goto invalid_keyword ;
return 1 ;
invalid_keyword_type :
PyErr_Format ( PyExc_TypeError ,
2016-06-28 05:03:55 +02:00
" %.200s() keywords must be strings " , function_name ) ;
2011-05-12 22:45:14 +02:00
return 0 ;
2013-04-03 13:55:51 +02:00
# endif
2011-05-12 22:45:14 +02:00
invalid_keyword :
PyErr_Format ( PyExc_TypeError ,
# if PY_MAJOR_VERSION < 3
2016-06-28 05:03:55 +02:00
" %.200s() got an unexpected keyword argument '%.200s' " ,
2011-05-12 22:45:14 +02:00
function_name , PyString_AsString ( key ) ) ;
# else
" %s() got an unexpected keyword argument '%U' " ,
function_name , key ) ;
# endif
return 0 ;
}
2016-06-28 05:03:55 +02:00
/* GetModuleGlobalName */
static CYTHON_INLINE PyObject * __Pyx_GetModuleGlobalName ( PyObject * name ) {
PyObject * result ;
2013-04-03 13:55:51 +02:00
# if CYTHON_COMPILING_IN_CPYTHON
2016-06-28 05:03:55 +02:00
result = PyDict_GetItem ( __pyx_d , name ) ;
if ( likely ( result ) ) {
Py_INCREF ( result ) ;
} else {
2013-04-03 13:55:51 +02:00
# else
2016-06-28 05:03:55 +02:00
result = PyObject_GetItem ( __pyx_d , name ) ;
if ( ! result ) {
PyErr_Clear ( ) ;
2013-04-03 13:55:51 +02:00
# endif
2016-06-28 05:03:55 +02:00
result = __Pyx_GetBuiltinName ( name ) ;
}
return result ;
2011-05-12 22:45:14 +02:00
}
2016-06-28 05:03:55 +02:00
/* RaiseException */
# if PY_MAJOR_VERSION < 3
2013-04-03 13:55:51 +02:00
static void __Pyx_Raise ( PyObject * type , PyObject * value , PyObject * tb ,
CYTHON_UNUSED PyObject * cause ) {
2016-06-28 05:03:55 +02:00
__Pyx_PyThreadState_declare
2011-05-13 17:42:05 +02:00
Py_XINCREF ( type ) ;
2013-04-03 13:55:51 +02:00
if ( ! value | | value = = Py_None )
value = NULL ;
else
2011-05-13 17:42:05 +02:00
Py_INCREF ( value ) ;
2013-04-03 13:55:51 +02:00
if ( ! tb | | tb = = Py_None )
tb = NULL ;
else {
Py_INCREF ( tb ) ;
if ( ! PyTraceBack_Check ( tb ) ) {
PyErr_SetString ( PyExc_TypeError ,
" raise: arg 3 must be a traceback or None " ) ;
goto raise_error ;
}
2011-05-13 17:42:05 +02:00
}
2013-04-03 13:55:51 +02:00
if ( PyType_Check ( type ) ) {
# if CYTHON_COMPILING_IN_PYPY
if ( ! value ) {
Py_INCREF ( Py_None ) ;
value = Py_None ;
}
# endif
PyErr_NormalizeException ( & type , & value , & tb ) ;
} else {
if ( value ) {
2011-05-13 17:42:05 +02:00
PyErr_SetString ( PyExc_TypeError ,
" instance exception may not have a separate value " ) ;
goto raise_error ;
}
value = type ;
2016-06-28 05:03:55 +02:00
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 ;
}
2011-05-13 17:42:05 +02:00
}
2016-06-28 05:03:55 +02:00
__Pyx_PyThreadState_assign
2011-05-13 17:42:05 +02:00
__Pyx_ErrRestore ( type , value , tb ) ;
return ;
raise_error :
Py_XDECREF ( value ) ;
Py_XDECREF ( type ) ;
Py_XDECREF ( tb ) ;
return ;
}
2016-06-28 05:03:55 +02:00
# else
2011-10-14 23:14:25 +02:00
static void __Pyx_Raise ( PyObject * type , PyObject * value , PyObject * tb , PyObject * cause ) {
2013-04-03 13:55:51 +02:00
PyObject * owned_instance = NULL ;
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 ) ;
2013-04-03 13:55:51 +02:00
} else if ( PyExceptionClass_Check ( type ) ) {
2016-06-28 05:03:55 +02:00
PyObject * instance_class = NULL ;
if ( value & & PyExceptionInstance_Check ( value ) ) {
instance_class = ( PyObject * ) Py_TYPE ( value ) ;
if ( instance_class ! = type ) {
int is_subclass = PyObject_IsSubclass ( instance_class , type ) ;
if ( ! is_subclass ) {
instance_class = NULL ;
} else if ( unlikely ( is_subclass = = - 1 ) ) {
goto bad ;
} else {
type = instance_class ;
}
}
2013-04-03 13:55:51 +02:00
}
2016-06-28 05:03:55 +02:00
if ( ! instance_class ) {
PyObject * args ;
if ( ! value )
args = PyTuple_New ( 0 ) ;
else if ( PyTuple_Check ( value ) ) {
Py_INCREF ( value ) ;
args = value ;
} else
args = PyTuple_Pack ( 1 , value ) ;
if ( ! args )
goto bad ;
owned_instance = PyObject_Call ( type , args , NULL ) ;
Py_DECREF ( args ) ;
if ( ! owned_instance )
goto bad ;
value = owned_instance ;
if ( ! PyExceptionInstance_Check ( value ) ) {
PyErr_Format ( PyExc_TypeError ,
" calling %R should have returned an instance of "
" BaseException, not %R " ,
type , Py_TYPE ( value ) ) ;
goto bad ;
}
2013-04-03 13:55:51 +02:00
}
} else {
2011-05-13 17:42:05 +02:00
PyErr_SetString ( PyExc_TypeError ,
" raise: exception class must be a subclass of BaseException " ) ;
goto bad ;
}
2016-06-28 05:03:55 +02:00
# if PY_VERSION_HEX >= 0x03030000
if ( cause ) {
# else
2013-04-03 13:55:51 +02:00
if ( cause & & cause ! = Py_None ) {
2016-06-28 05:03:55 +02:00
# endif
2011-10-14 23:14:25 +02:00
PyObject * fixed_cause ;
2016-06-28 05:03:55 +02:00
if ( cause = = Py_None ) {
fixed_cause = NULL ;
} else if ( PyExceptionClass_Check ( cause ) ) {
2011-10-14 23:14:25 +02:00
fixed_cause = PyObject_CallObject ( cause , NULL ) ;
if ( fixed_cause = = NULL )
goto bad ;
2016-06-28 05:03:55 +02:00
} else if ( PyExceptionInstance_Check ( cause ) ) {
2011-10-14 23:14:25 +02:00
fixed_cause = cause ;
Py_INCREF ( fixed_cause ) ;
2016-06-28 05:03:55 +02:00
} else {
2011-10-14 23:14:25 +02:00
PyErr_SetString ( PyExc_TypeError ,
" exception causes must derive from "
" BaseException " ) ;
goto bad ;
}
PyException_SetCause ( value , fixed_cause ) ;
}
2011-05-13 17:42:05 +02:00
PyErr_SetObject ( type , value ) ;
if ( tb ) {
2016-06-28 05:03:55 +02:00
# if CYTHON_COMPILING_IN_PYPY
PyObject * tmp_type , * tmp_value , * tmp_tb ;
PyErr_Fetch ( & tmp_type , & tmp_value , & tmp_tb ) ;
Py_INCREF ( tb ) ;
PyErr_Restore ( tmp_type , tmp_value , tb ) ;
Py_XDECREF ( tmp_tb ) ;
# else
2011-05-13 17:42:05 +02:00
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 ) ;
}
2016-06-28 05:03:55 +02:00
# endif
2011-05-13 17:42:05 +02:00
}
bad :
2013-04-03 13:55:51 +02:00
Py_XDECREF ( owned_instance ) ;
2011-05-13 17:42:05 +02:00
return ;
}
# endif
2016-06-28 05:03:55 +02:00
/* PyObjectCallNoArg */
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject * __Pyx_PyObject_CallNoArg ( PyObject * func ) {
# ifdef __Pyx_CyFunction_USED
if ( likely ( PyCFunction_Check ( func ) | | PyObject_TypeCheck ( func , __pyx_CyFunctionType ) ) ) {
# else
if ( likely ( PyCFunction_Check ( func ) ) ) {
# endif
if ( likely ( PyCFunction_GET_FLAGS ( func ) & METH_NOARGS ) ) {
return __Pyx_PyObject_CallMethO ( func , NULL ) ;
}
}
return __Pyx_PyObject_Call ( func , __pyx_empty_tuple , NULL ) ;
}
# endif
/* ArgTypeTest */
static void __Pyx_RaiseArgumentTypeInvalid ( const char * name , PyObject * obj , PyTypeObject * type ) {
PyErr_Format ( PyExc_TypeError ,
" Argument '%.200s' has incorrect type (expected %.200s, got %.200s) " ,
name , type - > tp_name , Py_TYPE ( obj ) - > tp_name ) ;
}
static CYTHON_INLINE int __Pyx_ArgTypeTest ( PyObject * obj , PyTypeObject * type , int none_allowed ,
2012-12-24 04:17:54 +01:00
const char * name , int exact )
{
2016-06-28 05:03:55 +02:00
if ( unlikely ( ! type ) ) {
PyErr_SetString ( PyExc_SystemError , " Missing type object " ) ;
2012-12-24 04:17:54 +01:00
return 0 ;
}
if ( none_allowed & & obj = = Py_None ) return 1 ;
else if ( exact ) {
2016-06-28 05:03:55 +02:00
if ( likely ( Py_TYPE ( obj ) = = type ) ) return 1 ;
# if PY_MAJOR_VERSION == 2
else if ( ( type = = & PyBaseString_Type ) & & likely ( __Pyx_PyBaseString_CheckExact ( obj ) ) ) return 1 ;
# endif
2012-12-24 04:17:54 +01:00
}
else {
2016-06-28 05:03:55 +02:00
if ( likely ( PyObject_TypeCheck ( obj , type ) ) ) return 1 ;
2012-12-24 04:17:54 +01:00
}
2016-06-28 05:03:55 +02:00
__Pyx_RaiseArgumentTypeInvalid ( name , obj , type ) ;
2012-12-24 04:17:54 +01:00
return 0 ;
}
2016-06-28 05:03:55 +02:00
/* dict_getitem_default */
static PyObject * __Pyx_PyDict_GetItemDefault ( PyObject * d , PyObject * key , PyObject * default_value ) {
PyObject * value ;
# if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
value = PyDict_GetItemWithError ( d , key ) ;
if ( unlikely ( ! value ) ) {
if ( unlikely ( PyErr_Occurred ( ) ) )
return NULL ;
value = default_value ;
}
Py_INCREF ( value ) ;
# else
if ( PyString_CheckExact ( key ) | | PyUnicode_CheckExact ( key ) | | PyInt_CheckExact ( key ) ) {
value = PyDict_GetItem ( d , key ) ;
if ( unlikely ( ! value ) ) {
value = default_value ;
}
Py_INCREF ( value ) ;
} else {
if ( default_value = = Py_None )
default_value = NULL ;
value = PyObject_CallMethodObjArgs (
d , __pyx_n_s_get , key , default_value , NULL ) ;
}
# endif
return value ;
}
/* RaiseDoubleKeywords */
static void __Pyx_RaiseDoubleKeywordsError (
2011-05-13 17:42:05 +02:00
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 ,
2013-04-03 13:55:51 +02:00
PyString_AsString ( kw_name ) ) ;
2011-05-13 17:42:05 +02:00
# endif
}
2016-06-28 05:03:55 +02:00
/* ParseKeywords */
static int __Pyx_ParseOptionalKeywords (
2011-05-13 17:42:05 +02:00
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 ;
2013-04-03 13:55:51 +02:00
continue ;
}
name = first_kw_arg ;
# if PY_MAJOR_VERSION < 3
if ( likely ( PyString_CheckExact ( key ) ) | | likely ( PyString_Check ( key ) ) ) {
while ( * name ) {
if ( ( CYTHON_COMPILING_IN_PYPY | | PyString_GET_SIZE ( * * name ) = = PyString_GET_SIZE ( key ) )
& & _PyString_Eq ( * * name , key ) ) {
2011-05-12 22:45:14 +02:00
values [ name - argnames ] = value ;
2013-04-03 13:55:51 +02:00
break ;
}
name + + ;
}
if ( * name ) continue ;
else {
PyObject * * * argname = argnames ;
while ( argname ! = first_kw_arg ) {
if ( ( * * argname = = key ) | | (
( CYTHON_COMPILING_IN_PYPY | | PyString_GET_SIZE ( * * argname ) = = PyString_GET_SIZE ( key ) )
& & _PyString_Eq ( * * argname , key ) ) ) {
goto arg_passed_twice ;
2011-05-12 22:45:14 +02:00
}
2013-04-03 13:55:51 +02:00
argname + + ;
2011-05-12 22:45:14 +02:00
}
}
2013-04-03 13:55:51 +02:00
} else
# endif
if ( likely ( PyUnicode_Check ( key ) ) ) {
while ( * name ) {
int cmp = ( * * name = = key ) ? 0 :
# if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
( PyUnicode_GET_SIZE ( * * name ) ! = PyUnicode_GET_SIZE ( key ) ) ? 1 :
# endif
PyUnicode_Compare ( * * name , key ) ;
if ( cmp < 0 & & unlikely ( PyErr_Occurred ( ) ) ) goto bad ;
if ( cmp = = 0 ) {
values [ name - argnames ] = value ;
break ;
}
name + + ;
}
if ( * name ) continue ;
else {
PyObject * * * argname = argnames ;
while ( argname ! = first_kw_arg ) {
int cmp = ( * * argname = = key ) ? 0 :
# if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
( PyUnicode_GET_SIZE ( * * argname ) ! = PyUnicode_GET_SIZE ( key ) ) ? 1 :
# endif
PyUnicode_Compare ( * * argname , key ) ;
if ( cmp < 0 & & unlikely ( PyErr_Occurred ( ) ) ) goto bad ;
if ( cmp = = 0 ) goto arg_passed_twice ;
argname + + ;
}
}
} else
goto invalid_keyword_type ;
if ( kwds2 ) {
if ( unlikely ( PyDict_SetItem ( kwds2 , key , value ) ) ) goto bad ;
} else {
goto invalid_keyword ;
2011-05-12 22:45:14 +02:00
}
}
return 0 ;
arg_passed_twice :
2013-04-03 13:55:51 +02:00
__Pyx_RaiseDoubleKeywordsError ( function_name , key ) ;
2011-05-12 22:45:14 +02:00
goto bad ;
invalid_keyword_type :
PyErr_Format ( PyExc_TypeError ,
2016-06-28 05:03:55 +02:00
" %.200s() keywords must be strings " , function_name ) ;
2011-05-12 22:45:14 +02:00
goto bad ;
invalid_keyword :
PyErr_Format ( PyExc_TypeError ,
# if PY_MAJOR_VERSION < 3
2016-06-28 05:03:55 +02:00
" %.200s() got an unexpected keyword argument '%.200s' " ,
2011-05-12 22:45:14 +02:00
function_name , PyString_AsString ( key ) ) ;
# else
" %s() got an unexpected keyword argument '%U' " ,
function_name , key ) ;
# endif
bad :
return - 1 ;
}
2016-06-28 08:48:53 +02:00
/* SaveResetException */
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE void __Pyx__ExceptionSave ( PyThreadState * tstate , PyObject * * type , PyObject * * value , PyObject * * tb ) {
* type = tstate - > exc_type ;
* value = tstate - > exc_value ;
* tb = tstate - > exc_traceback ;
Py_XINCREF ( * type ) ;
Py_XINCREF ( * value ) ;
Py_XINCREF ( * tb ) ;
}
static CYTHON_INLINE void __Pyx__ExceptionReset ( PyThreadState * tstate , PyObject * type , PyObject * value , PyObject * tb ) {
PyObject * tmp_type , * tmp_value , * tmp_tb ;
tmp_type = tstate - > exc_type ;
tmp_value = tstate - > exc_value ;
tmp_tb = tstate - > exc_traceback ;
tstate - > exc_type = type ;
tstate - > exc_value = value ;
tstate - > exc_traceback = tb ;
Py_XDECREF ( tmp_type ) ;
Py_XDECREF ( tmp_value ) ;
Py_XDECREF ( tmp_tb ) ;
}
# endif
/* PyErrExceptionMatches */
# if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState ( PyThreadState * tstate , PyObject * err ) {
PyObject * exc_type = tstate - > curexc_type ;
if ( exc_type = = err ) return 1 ;
if ( unlikely ( ! exc_type ) ) return 0 ;
return PyErr_GivenExceptionMatches ( exc_type , err ) ;
}
# endif
/* GetException */
# if CYTHON_COMPILING_IN_CPYTHON
static int __Pyx__GetException ( PyThreadState * tstate , PyObject * * type , PyObject * * value , PyObject * * tb ) {
# else
static int __Pyx_GetException ( PyObject * * type , PyObject * * value , PyObject * * tb ) {
# endif
PyObject * local_type , * local_value , * local_tb ;
# if CYTHON_COMPILING_IN_CPYTHON
PyObject * tmp_type , * tmp_value , * tmp_tb ;
local_type = tstate - > curexc_type ;
local_value = tstate - > curexc_value ;
local_tb = tstate - > curexc_traceback ;
tstate - > curexc_type = 0 ;
tstate - > curexc_value = 0 ;
tstate - > curexc_traceback = 0 ;
# else
PyErr_Fetch ( & local_type , & local_value , & local_tb ) ;
# endif
PyErr_NormalizeException ( & local_type , & local_value , & local_tb ) ;
# if CYTHON_COMPILING_IN_CPYTHON
if ( unlikely ( tstate - > curexc_type ) )
# else
if ( unlikely ( PyErr_Occurred ( ) ) )
# endif
goto bad ;
# if PY_MAJOR_VERSION >= 3
if ( local_tb ) {
if ( unlikely ( PyException_SetTraceback ( local_value , local_tb ) < 0 ) )
goto bad ;
}
# endif
Py_XINCREF ( local_tb ) ;
Py_XINCREF ( local_type ) ;
Py_XINCREF ( local_value ) ;
* type = local_type ;
* value = local_value ;
* tb = local_tb ;
# if CYTHON_COMPILING_IN_CPYTHON
tmp_type = tstate - > exc_type ;
tmp_value = tstate - > exc_value ;
tmp_tb = tstate - > exc_traceback ;
tstate - > exc_type = local_type ;
tstate - > exc_value = local_value ;
tstate - > exc_traceback = local_tb ;
Py_XDECREF ( tmp_type ) ;
Py_XDECREF ( tmp_value ) ;
Py_XDECREF ( tmp_tb ) ;
# else
PyErr_SetExcInfo ( local_type , local_value , local_tb ) ;
# endif
return 0 ;
bad :
* type = 0 ;
* value = 0 ;
* tb = 0 ;
Py_XDECREF ( local_type ) ;
Py_XDECREF ( local_value ) ;
Py_XDECREF ( local_tb ) ;
return - 1 ;
}
/* GetItemInt */
static CYTHON_INLINE PyObject * __Pyx_GetItemInt_Generic ( PyObject * o , PyObject * j ) {
PyObject * r ;
if ( ! j ) return NULL ;
r = PyObject_GetItem ( o , j ) ;
Py_DECREF ( j ) ;
return r ;
}
static CYTHON_INLINE PyObject * __Pyx_GetItemInt_List_Fast ( PyObject * o , Py_ssize_t i ,
CYTHON_NCP_UNUSED int wraparound ,
CYTHON_NCP_UNUSED int boundscheck ) {
# if CYTHON_COMPILING_IN_CPYTHON
if ( wraparound & unlikely ( i < 0 ) ) i + = PyList_GET_SIZE ( o ) ;
if ( ( ! boundscheck ) | | likely ( ( 0 < = i ) & ( i < PyList_GET_SIZE ( o ) ) ) ) {
PyObject * r = PyList_GET_ITEM ( o , i ) ;
Py_INCREF ( r ) ;
return r ;
}
return __Pyx_GetItemInt_Generic ( o , PyInt_FromSsize_t ( i ) ) ;
# else
return PySequence_GetItem ( o , i ) ;
# endif
}
static CYTHON_INLINE PyObject * __Pyx_GetItemInt_Tuple_Fast ( PyObject * o , Py_ssize_t i ,
CYTHON_NCP_UNUSED int wraparound ,
CYTHON_NCP_UNUSED int boundscheck ) {
# if CYTHON_COMPILING_IN_CPYTHON
if ( wraparound & unlikely ( i < 0 ) ) i + = PyTuple_GET_SIZE ( o ) ;
if ( ( ! boundscheck ) | | likely ( ( 0 < = i ) & ( i < PyTuple_GET_SIZE ( o ) ) ) ) {
PyObject * r = PyTuple_GET_ITEM ( o , i ) ;
Py_INCREF ( r ) ;
return r ;
}
return __Pyx_GetItemInt_Generic ( o , PyInt_FromSsize_t ( i ) ) ;
# else
return PySequence_GetItem ( o , i ) ;
# endif
}
static CYTHON_INLINE PyObject * __Pyx_GetItemInt_Fast ( PyObject * o , Py_ssize_t i , int is_list ,
CYTHON_NCP_UNUSED int wraparound ,
CYTHON_NCP_UNUSED int boundscheck ) {
# if CYTHON_COMPILING_IN_CPYTHON
if ( is_list | | PyList_CheckExact ( o ) ) {
Py_ssize_t n = ( ( ! wraparound ) | likely ( i > = 0 ) ) ? i : i + PyList_GET_SIZE ( o ) ;
if ( ( ! boundscheck ) | | ( likely ( ( n > = 0 ) & ( n < PyList_GET_SIZE ( o ) ) ) ) ) {
PyObject * r = PyList_GET_ITEM ( o , n ) ;
Py_INCREF ( r ) ;
return r ;
}
}
else if ( PyTuple_CheckExact ( o ) ) {
Py_ssize_t n = ( ( ! wraparound ) | likely ( i > = 0 ) ) ? i : i + PyTuple_GET_SIZE ( o ) ;
if ( ( ! boundscheck ) | | likely ( ( n > = 0 ) & ( n < PyTuple_GET_SIZE ( o ) ) ) ) {
PyObject * r = PyTuple_GET_ITEM ( o , n ) ;
Py_INCREF ( r ) ;
return r ;
}
} else {
PySequenceMethods * m = Py_TYPE ( o ) - > tp_as_sequence ;
if ( likely ( m & & m - > sq_item ) ) {
if ( wraparound & & unlikely ( i < 0 ) & & likely ( m - > sq_length ) ) {
Py_ssize_t l = m - > sq_length ( o ) ;
if ( likely ( l > = 0 ) ) {
i + = l ;
} else {
if ( ! PyErr_ExceptionMatches ( PyExc_OverflowError ) )
return NULL ;
PyErr_Clear ( ) ;
}
}
return m - > sq_item ( o , i ) ;
}
}
# else
if ( is_list | | PySequence_Check ( o ) ) {
return PySequence_GetItem ( o , i ) ;
}
# endif
return __Pyx_GetItemInt_Generic ( o , PyInt_FromSsize_t ( i ) ) ;
}
2016-06-28 05:03:55 +02:00
/* SetVTable */
2016-06-28 08:48:53 +02:00
static int __Pyx_SetVtable ( PyObject * dict , void * vtable ) {
2016-06-28 05:03:55 +02:00
# if PY_VERSION_HEX >= 0x02070000
PyObject * ob = PyCapsule_New ( vtable , 0 , 0 ) ;
# else
PyObject * ob = PyCObject_FromVoidPtr ( vtable , 0 ) ;
# endif
if ( ! ob )
goto bad ;
if ( PyDict_SetItem ( dict , __pyx_n_s_pyx_vtable , ob ) < 0 )
goto bad ;
Py_DECREF ( ob ) ;
return 0 ;
bad :
Py_XDECREF ( ob ) ;
return - 1 ;
2011-05-12 22:45:14 +02:00
}
2016-06-28 08:48:53 +02:00
/* Import */
static PyObject * __Pyx_Import ( PyObject * name , PyObject * from_list , int level ) {
PyObject * empty_list = 0 ;
PyObject * module = 0 ;
PyObject * global_dict = 0 ;
PyObject * empty_dict = 0 ;
PyObject * list ;
# if PY_VERSION_HEX < 0x03030000
PyObject * py_import ;
py_import = __Pyx_PyObject_GetAttrStr ( __pyx_b , __pyx_n_s_import ) ;
if ( ! py_import )
goto bad ;
# endif
if ( from_list )
list = from_list ;
else {
empty_list = PyList_New ( 0 ) ;
if ( ! empty_list )
goto bad ;
list = empty_list ;
}
global_dict = PyModule_GetDict ( __pyx_m ) ;
if ( ! global_dict )
goto bad ;
empty_dict = PyDict_New ( ) ;
if ( ! empty_dict )
goto bad ;
{
# if PY_MAJOR_VERSION >= 3
if ( level = = - 1 ) {
if ( strchr ( __Pyx_MODULE_NAME , ' . ' ) ) {
# if PY_VERSION_HEX < 0x03030000
PyObject * py_level = PyInt_FromLong ( 1 ) ;
if ( ! py_level )
goto bad ;
module = PyObject_CallFunctionObjArgs ( py_import ,
name , global_dict , empty_dict , list , py_level , NULL ) ;
Py_DECREF ( py_level ) ;
# else
module = PyImport_ImportModuleLevelObject (
name , global_dict , empty_dict , list , 1 ) ;
# endif
if ( ! module ) {
if ( ! PyErr_ExceptionMatches ( PyExc_ImportError ) )
goto bad ;
PyErr_Clear ( ) ;
}
}
level = 0 ;
}
# endif
if ( ! module ) {
# if PY_VERSION_HEX < 0x03030000
PyObject * py_level = PyInt_FromLong ( level ) ;
if ( ! py_level )
goto bad ;
module = PyObject_CallFunctionObjArgs ( py_import ,
name , global_dict , empty_dict , list , py_level , NULL ) ;
Py_DECREF ( py_level ) ;
# else
module = PyImport_ImportModuleLevelObject (
name , global_dict , empty_dict , list , level ) ;
# endif
}
}
bad :
# if PY_VERSION_HEX < 0x03030000
Py_XDECREF ( py_import ) ;
# endif
Py_XDECREF ( empty_list ) ;
Py_XDECREF ( empty_dict ) ;
return module ;
}
2016-06-28 05:03:55 +02:00
/* CodeObjectCache */
2016-06-28 08:48:53 +02:00
static int __pyx_bisect_code_objects ( __Pyx_CodeObjectCacheEntry * entries , int count , int code_line ) {
2016-06-28 05:03:55 +02:00
int start = 0 , mid = 0 , end = count - 1 ;
if ( end > = 0 & & code_line > entries [ end ] . code_line ) {
return count ;
2011-05-12 22:45:14 +02:00
}
2016-06-28 05:03:55 +02:00
while ( start < end ) {
mid = start + ( end - start ) / 2 ;
if ( code_line < entries [ mid ] . code_line ) {
end = mid ;
} else if ( code_line > entries [ mid ] . code_line ) {
start = mid + 1 ;
} else {
return mid ;
}
}
if ( code_line < = entries [ mid ] . code_line ) {
return mid ;
2011-05-12 22:45:14 +02:00
} else {
2016-06-28 05:03:55 +02:00
return mid + 1 ;
2011-05-12 22:45:14 +02:00
}
}
2016-06-28 05:03:55 +02:00
static PyCodeObject * __pyx_find_code_object ( int code_line ) {
PyCodeObject * code_object ;
int pos ;
if ( unlikely ( ! code_line ) | | unlikely ( ! __pyx_code_cache . entries ) ) {
return NULL ;
2011-05-12 22:45:14 +02:00
}
2016-06-28 05:03:55 +02:00
pos = __pyx_bisect_code_objects ( __pyx_code_cache . entries , __pyx_code_cache . count , code_line ) ;
if ( unlikely ( pos > = __pyx_code_cache . count ) | | unlikely ( __pyx_code_cache . entries [ pos ] . code_line ! = code_line ) ) {
return NULL ;
2013-04-03 13:55:51 +02:00
}
2016-06-28 05:03:55 +02:00
code_object = __pyx_code_cache . entries [ pos ] . code_object ;
Py_INCREF ( code_object ) ;
return code_object ;
2013-04-03 13:55:51 +02:00
}
static void __pyx_insert_code_object ( int code_line , PyCodeObject * code_object ) {
int pos , i ;
__Pyx_CodeObjectCacheEntry * entries = __pyx_code_cache . entries ;
if ( unlikely ( ! code_line ) ) {
return ;
}
if ( unlikely ( ! entries ) ) {
entries = ( __Pyx_CodeObjectCacheEntry * ) PyMem_Malloc ( 64 * sizeof ( __Pyx_CodeObjectCacheEntry ) ) ;
if ( likely ( entries ) ) {
__pyx_code_cache . entries = entries ;
__pyx_code_cache . max_count = 64 ;
__pyx_code_cache . count = 1 ;
entries [ 0 ] . code_line = code_line ;
entries [ 0 ] . code_object = code_object ;
Py_INCREF ( code_object ) ;
}
return ;
}
pos = __pyx_bisect_code_objects ( __pyx_code_cache . entries , __pyx_code_cache . count , code_line ) ;
if ( ( pos < __pyx_code_cache . count ) & & unlikely ( __pyx_code_cache . entries [ pos ] . code_line = = code_line ) ) {
PyCodeObject * tmp = entries [ pos ] . code_object ;
entries [ pos ] . code_object = code_object ;
Py_DECREF ( tmp ) ;
return ;
}
if ( __pyx_code_cache . count = = __pyx_code_cache . max_count ) {
int new_max = __pyx_code_cache . max_count + 64 ;
entries = ( __Pyx_CodeObjectCacheEntry * ) PyMem_Realloc (
2016-06-28 05:03:55 +02:00
__pyx_code_cache . entries , ( size_t ) new_max * sizeof ( __Pyx_CodeObjectCacheEntry ) ) ;
2013-04-03 13:55:51 +02:00
if ( unlikely ( ! entries ) ) {
return ;
}
__pyx_code_cache . entries = entries ;
__pyx_code_cache . max_count = new_max ;
}
for ( i = __pyx_code_cache . count ; i > pos ; i - - ) {
entries [ i ] = entries [ i - 1 ] ;
}
entries [ pos ] . code_line = code_line ;
entries [ pos ] . code_object = code_object ;
__pyx_code_cache . count + + ;
Py_INCREF ( code_object ) ;
}
2016-06-28 05:03:55 +02:00
/* AddTraceback */
2016-06-28 08:48:53 +02:00
# include "compile.h"
2011-05-12 22:45:14 +02:00
# include "frameobject.h"
# include "traceback.h"
2013-04-03 13:55:51 +02:00
static PyCodeObject * __Pyx_CreateCodeObjectForTraceback (
const char * funcname , int c_line ,
int py_line , const char * filename ) {
PyCodeObject * py_code = 0 ;
2011-05-12 22:45:14 +02:00
PyObject * py_srcfile = 0 ;
PyObject * py_funcname = 0 ;
# if PY_MAJOR_VERSION < 3
2013-04-03 13:55:51 +02:00
py_srcfile = PyString_FromString ( filename ) ;
2011-05-12 22:45:14 +02:00
# else
2013-04-03 13:55:51 +02:00
py_srcfile = PyUnicode_FromString ( filename ) ;
2011-05-12 22:45:14 +02:00
# endif
if ( ! py_srcfile ) goto bad ;
2013-04-03 13:55:51 +02:00
if ( c_line ) {
2011-05-12 22:45:14 +02:00
# if PY_MAJOR_VERSION < 3
2013-04-03 13:55:51 +02:00
py_funcname = PyString_FromFormat ( " %s (%s:%d) " , funcname , __pyx_cfilenm , c_line ) ;
2011-05-12 22:45:14 +02:00
# else
2013-04-03 13:55:51 +02:00
py_funcname = PyUnicode_FromFormat ( " %s (%s:%d) " , funcname , __pyx_cfilenm , c_line ) ;
2011-05-12 22:45:14 +02:00
# endif
}
else {
# if PY_MAJOR_VERSION < 3
py_funcname = PyString_FromString ( funcname ) ;
# else
py_funcname = PyUnicode_FromString ( funcname ) ;
# endif
}
if ( ! py_funcname ) goto bad ;
2013-04-03 13:55:51 +02:00
py_code = __Pyx_PyCode_New (
2016-06-28 05:03:55 +02:00
0 ,
0 ,
0 ,
0 ,
0 ,
2011-05-12 22:45:14 +02:00
__pyx_empty_bytes , /*PyObject *code,*/
2013-04-03 13:55:51 +02:00
__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,*/
2011-05-12 22:45:14 +02:00
py_srcfile , /*PyObject *filename,*/
py_funcname , /*PyObject *name,*/
2016-06-28 05:03:55 +02:00
py_line ,
2011-05-12 22:45:14 +02:00
__pyx_empty_bytes /*PyObject *lnotab*/
) ;
2013-04-03 13:55:51 +02:00
Py_DECREF ( py_srcfile ) ;
Py_DECREF ( py_funcname ) ;
return py_code ;
bad :
Py_XDECREF ( py_srcfile ) ;
Py_XDECREF ( py_funcname ) ;
return NULL ;
}
static void __Pyx_AddTraceback ( const char * funcname , int c_line ,
int py_line , const char * filename ) {
PyCodeObject * py_code = 0 ;
PyFrameObject * py_frame = 0 ;
py_code = __pyx_find_code_object ( c_line ? c_line : py_line ) ;
if ( ! py_code ) {
py_code = __Pyx_CreateCodeObjectForTraceback (
funcname , c_line , py_line , filename ) ;
if ( ! py_code ) goto bad ;
__pyx_insert_code_object ( c_line ? c_line : py_line , py_code ) ;
}
2011-05-12 22:45:14 +02:00
py_frame = PyFrame_New (
PyThreadState_GET ( ) , /*PyThreadState *tstate,*/
py_code , /*PyCodeObject *code,*/
2016-06-28 05:03:55 +02:00
__pyx_d , /*PyObject *globals,*/
2011-05-12 22:45:14 +02:00
0 /*PyObject *locals*/
) ;
if ( ! py_frame ) goto bad ;
2013-04-03 13:55:51 +02:00
py_frame - > f_lineno = py_line ;
2011-05-12 22:45:14 +02:00
PyTraceBack_Here ( py_frame ) ;
bad :
Py_XDECREF ( py_code ) ;
Py_XDECREF ( py_frame ) ;
}
2016-06-28 05:03:55 +02:00
/* CIntFromPyVerify */
2016-06-28 08:48:53 +02:00
# define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
2016-06-28 05:03:55 +02:00
__PYX__VERIFY_RETURN_INT ( target_type , func_type , func_value , 0 )
# define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
__PYX__VERIFY_RETURN_INT ( target_type , func_type , func_value , 1 )
# define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
{ \
func_type value = func_value ; \
if ( sizeof ( target_type ) < sizeof ( func_type ) ) { \
if ( unlikely ( value ! = ( func_type ) ( target_type ) value ) ) { \
func_type zero = 0 ; \
if ( exc & & unlikely ( value = = ( func_type ) - 1 & & PyErr_Occurred ( ) ) ) \
return ( target_type ) - 1 ; \
if ( is_unsigned & & unlikely ( value < zero ) ) \
goto raise_neg_overflow ; \
else \
goto raise_overflow ; \
} \
} \
return ( target_type ) value ; \
}
/* CIntToPy */
2016-06-28 08:48:53 +02:00
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_u_int8_t ( u_int8_t value ) {
2016-06-28 05:03:55 +02:00
const u_int8_t neg_one = ( u_int8_t ) - 1 , const_zero = ( u_int8_t ) 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( is_unsigned ) {
if ( sizeof ( u_int8_t ) < sizeof ( long ) ) {
return PyInt_FromLong ( ( long ) value ) ;
} else if ( sizeof ( u_int8_t ) < = sizeof ( unsigned long ) ) {
return PyLong_FromUnsignedLong ( ( unsigned long ) value ) ;
} else if ( sizeof ( u_int8_t ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
return PyLong_FromUnsignedLongLong ( ( unsigned PY_LONG_LONG ) value ) ;
2011-05-12 22:45:14 +02:00
}
2016-06-28 05:03:55 +02:00
} else {
if ( sizeof ( u_int8_t ) < = sizeof ( long ) ) {
return PyInt_FromLong ( ( long ) value ) ;
} else if ( sizeof ( u_int8_t ) < = sizeof ( PY_LONG_LONG ) ) {
return PyLong_FromLongLong ( ( PY_LONG_LONG ) value ) ;
}
}
{
int one = 1 ; int little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & value ;
return _PyLong_FromByteArray ( bytes , sizeof ( u_int8_t ) ,
little , ! is_unsigned ) ;
}
}
/* CIntToPy */
2016-06-28 08:48:53 +02:00
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_u_int32_t ( u_int32_t value ) {
2016-06-28 05:03:55 +02:00
const u_int32_t neg_one = ( u_int32_t ) - 1 , const_zero = ( u_int32_t ) 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( is_unsigned ) {
if ( sizeof ( u_int32_t ) < sizeof ( long ) ) {
return PyInt_FromLong ( ( long ) value ) ;
} else if ( sizeof ( u_int32_t ) < = sizeof ( unsigned long ) ) {
return PyLong_FromUnsignedLong ( ( unsigned long ) value ) ;
} else if ( sizeof ( u_int32_t ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
return PyLong_FromUnsignedLongLong ( ( unsigned PY_LONG_LONG ) value ) ;
}
} else {
if ( sizeof ( u_int32_t ) < = sizeof ( long ) ) {
return PyInt_FromLong ( ( long ) value ) ;
} else if ( sizeof ( u_int32_t ) < = sizeof ( PY_LONG_LONG ) ) {
return PyLong_FromLongLong ( ( PY_LONG_LONG ) value ) ;
}
}
{
int one = 1 ; int little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & value ;
return _PyLong_FromByteArray ( bytes , sizeof ( u_int32_t ) ,
little , ! is_unsigned ) ;
}
}
/* CIntToPy */
2016-06-28 08:48:53 +02:00
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_u_int16_t ( u_int16_t value ) {
2016-06-28 05:03:55 +02:00
const u_int16_t neg_one = ( u_int16_t ) - 1 , const_zero = ( u_int16_t ) 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( is_unsigned ) {
if ( sizeof ( u_int16_t ) < sizeof ( long ) ) {
return PyInt_FromLong ( ( long ) value ) ;
} else if ( sizeof ( u_int16_t ) < = sizeof ( unsigned long ) ) {
return PyLong_FromUnsignedLong ( ( unsigned long ) value ) ;
} else if ( sizeof ( u_int16_t ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
return PyLong_FromUnsignedLongLong ( ( unsigned PY_LONG_LONG ) value ) ;
}
} else {
if ( sizeof ( u_int16_t ) < = sizeof ( long ) ) {
return PyInt_FromLong ( ( long ) value ) ;
} else if ( sizeof ( u_int16_t ) < = sizeof ( PY_LONG_LONG ) ) {
return PyLong_FromLongLong ( ( PY_LONG_LONG ) value ) ;
}
}
{
int one = 1 ; int little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & value ;
return _PyLong_FromByteArray ( bytes , sizeof ( u_int16_t ) ,
little , ! is_unsigned ) ;
}
}
/* CIntToPy */
2016-06-28 08:48:53 +02:00
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_int ( int value ) {
2016-06-28 05:03:55 +02:00
const int neg_one = ( int ) - 1 , const_zero = ( int ) 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( is_unsigned ) {
if ( sizeof ( int ) < sizeof ( long ) ) {
return PyInt_FromLong ( ( long ) value ) ;
} else if ( sizeof ( int ) < = sizeof ( unsigned long ) ) {
return PyLong_FromUnsignedLong ( ( unsigned long ) value ) ;
} else if ( sizeof ( int ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
return PyLong_FromUnsignedLongLong ( ( unsigned PY_LONG_LONG ) value ) ;
}
} else {
if ( sizeof ( int ) < = sizeof ( long ) ) {
return PyInt_FromLong ( ( long ) value ) ;
} else if ( sizeof ( int ) < = sizeof ( PY_LONG_LONG ) ) {
return PyLong_FromLongLong ( ( PY_LONG_LONG ) value ) ;
}
}
{
int one = 1 ; int little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & value ;
return _PyLong_FromByteArray ( bytes , sizeof ( int ) ,
little , ! is_unsigned ) ;
}
}
2016-06-28 05:36:00 +02:00
/* CIntToPy */
2016-06-28 08:48:53 +02:00
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_unsigned_int ( unsigned int value ) {
2016-06-28 05:36:00 +02:00
const unsigned int neg_one = ( unsigned int ) - 1 , const_zero = ( unsigned int ) 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( is_unsigned ) {
if ( sizeof ( unsigned int ) < sizeof ( long ) ) {
return PyInt_FromLong ( ( long ) value ) ;
} else if ( sizeof ( unsigned int ) < = sizeof ( unsigned long ) ) {
return PyLong_FromUnsignedLong ( ( unsigned long ) value ) ;
} else if ( sizeof ( unsigned int ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
return PyLong_FromUnsignedLongLong ( ( unsigned PY_LONG_LONG ) value ) ;
}
} else {
if ( sizeof ( unsigned int ) < = sizeof ( long ) ) {
return PyInt_FromLong ( ( long ) value ) ;
} else if ( sizeof ( unsigned int ) < = sizeof ( PY_LONG_LONG ) ) {
return PyLong_FromLongLong ( ( PY_LONG_LONG ) value ) ;
}
}
{
int one = 1 ; int little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & value ;
return _PyLong_FromByteArray ( bytes , sizeof ( unsigned int ) ,
little , ! is_unsigned ) ;
}
}
2016-06-28 08:48:53 +02:00
/* CIntToPy */
static CYTHON_INLINE PyObject * __Pyx_PyInt_From_long ( long value ) {
const long neg_one = ( long ) - 1 , const_zero = ( long ) 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( is_unsigned ) {
if ( sizeof ( long ) < sizeof ( long ) ) {
return PyInt_FromLong ( ( long ) value ) ;
} else if ( sizeof ( long ) < = sizeof ( unsigned long ) ) {
return PyLong_FromUnsignedLong ( ( unsigned long ) value ) ;
} else if ( sizeof ( long ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
return PyLong_FromUnsignedLongLong ( ( unsigned PY_LONG_LONG ) value ) ;
}
} else {
if ( sizeof ( long ) < = sizeof ( long ) ) {
return PyInt_FromLong ( ( long ) value ) ;
} else if ( sizeof ( long ) < = sizeof ( PY_LONG_LONG ) ) {
return PyLong_FromLongLong ( ( PY_LONG_LONG ) value ) ;
}
}
{
int one = 1 ; int little = ( int ) * ( unsigned char * ) & one ;
unsigned char * bytes = ( unsigned char * ) & value ;
return _PyLong_FromByteArray ( bytes , sizeof ( long ) ,
little , ! is_unsigned ) ;
}
}
2016-06-28 05:03:55 +02:00
/* CIntFromPy */
2016-06-28 08:48:53 +02:00
static CYTHON_INLINE u_int32_t __Pyx_PyInt_As_u_int32_t ( PyObject * x ) {
2016-06-28 05:03:55 +02:00
const u_int32_t neg_one = ( u_int32_t ) - 1 , const_zero = ( u_int32_t ) 0 ;
const int is_unsigned = neg_one > const_zero ;
# if PY_MAJOR_VERSION < 3
if ( likely ( PyInt_Check ( x ) ) ) {
if ( sizeof ( u_int32_t ) < sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT ( u_int32_t , long , PyInt_AS_LONG ( x ) )
} else {
long val = PyInt_AS_LONG ( x ) ;
if ( is_unsigned & & unlikely ( val < 0 ) ) {
goto raise_neg_overflow ;
}
return ( u_int32_t ) val ;
}
} else
# endif
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
switch ( Py_SIZE ( x ) ) {
case 0 : return ( u_int32_t ) 0 ;
case 1 : __PYX_VERIFY_RETURN_INT ( u_int32_t , digit , digits [ 0 ] )
case 2 :
if ( 8 * sizeof ( u_int32_t ) > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int32_t , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int32_t ) > = 2 * PyLong_SHIFT ) {
return ( u_int32_t ) ( ( ( ( ( u_int32_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 0 ] ) ) ;
}
}
break ;
case 3 :
if ( 8 * sizeof ( u_int32_t ) > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int32_t , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int32_t ) > = 3 * PyLong_SHIFT ) {
return ( u_int32_t ) ( ( ( ( ( ( ( u_int32_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 0 ] ) ) ;
}
}
break ;
case 4 :
if ( 8 * sizeof ( u_int32_t ) > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int32_t , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int32_t ) > = 4 * PyLong_SHIFT ) {
return ( u_int32_t ) ( ( ( ( ( ( ( ( ( u_int32_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 0 ] ) ) ;
}
}
break ;
}
# endif
# if CYTHON_COMPILING_IN_CPYTHON
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
goto raise_neg_overflow ;
}
# else
{
int result = PyObject_RichCompareBool ( x , Py_False , Py_LT ) ;
if ( unlikely ( result < 0 ) )
return ( u_int32_t ) - 1 ;
if ( unlikely ( result = = 1 ) )
goto raise_neg_overflow ;
}
# endif
if ( sizeof ( u_int32_t ) < = sizeof ( unsigned long ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( u_int32_t , unsigned long , PyLong_AsUnsignedLong ( x ) )
} else if ( sizeof ( u_int32_t ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( u_int32_t , unsigned PY_LONG_LONG , PyLong_AsUnsignedLongLong ( x ) )
}
} else {
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
switch ( Py_SIZE ( x ) ) {
case 0 : return ( u_int32_t ) 0 ;
case - 1 : __PYX_VERIFY_RETURN_INT ( u_int32_t , sdigit , ( sdigit ) ( - ( sdigit ) digits [ 0 ] ) )
case 1 : __PYX_VERIFY_RETURN_INT ( u_int32_t , digit , + digits [ 0 ] )
case - 2 :
if ( 8 * sizeof ( u_int32_t ) - 1 > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int32_t , long , - ( long ) ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int32_t ) - 1 > 2 * PyLong_SHIFT ) {
return ( u_int32_t ) ( ( ( u_int32_t ) - 1 ) * ( ( ( ( ( u_int32_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 2 :
if ( 8 * sizeof ( u_int32_t ) > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int32_t , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int32_t ) - 1 > 2 * PyLong_SHIFT ) {
return ( u_int32_t ) ( ( ( ( ( ( u_int32_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case - 3 :
if ( 8 * sizeof ( u_int32_t ) - 1 > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int32_t , long , - ( long ) ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int32_t ) - 1 > 3 * PyLong_SHIFT ) {
return ( u_int32_t ) ( ( ( u_int32_t ) - 1 ) * ( ( ( ( ( ( ( u_int32_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 3 :
if ( 8 * sizeof ( u_int32_t ) > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int32_t , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int32_t ) - 1 > 3 * PyLong_SHIFT ) {
return ( u_int32_t ) ( ( ( ( ( ( ( ( u_int32_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case - 4 :
if ( 8 * sizeof ( u_int32_t ) - 1 > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int32_t , long , - ( long ) ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int32_t ) - 1 > 4 * PyLong_SHIFT ) {
return ( u_int32_t ) ( ( ( u_int32_t ) - 1 ) * ( ( ( ( ( ( ( ( ( u_int32_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 4 :
if ( 8 * sizeof ( u_int32_t ) > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int32_t , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int32_t ) - 1 > 4 * PyLong_SHIFT ) {
return ( u_int32_t ) ( ( ( ( ( ( ( ( ( ( u_int32_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int32_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
}
# endif
if ( sizeof ( u_int32_t ) < = sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( u_int32_t , long , PyLong_AsLong ( x ) )
} else if ( sizeof ( u_int32_t ) < = sizeof ( PY_LONG_LONG ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( u_int32_t , PY_LONG_LONG , PyLong_AsLongLong ( x ) )
}
}
{
# if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
PyErr_SetString ( PyExc_RuntimeError ,
" _PyLong_AsByteArray() not available in PyPy, cannot convert large numbers " ) ;
# else
u_int32_t val ;
PyObject * v = __Pyx_PyNumber_IntOrLong ( x ) ;
# if PY_MAJOR_VERSION < 3
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 ;
}
# endif
return ( u_int32_t ) - 1 ;
}
} else {
u_int32_t val ;
PyObject * tmp = __Pyx_PyNumber_IntOrLong ( x ) ;
if ( ! tmp ) return ( u_int32_t ) - 1 ;
val = __Pyx_PyInt_As_u_int32_t ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
raise_overflow :
PyErr_SetString ( PyExc_OverflowError ,
" value too large to convert to u_int32_t " ) ;
return ( u_int32_t ) - 1 ;
raise_neg_overflow :
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to u_int32_t " ) ;
return ( u_int32_t ) - 1 ;
}
/* CIntFromPy */
2016-06-28 08:48:53 +02:00
static CYTHON_INLINE int __Pyx_PyInt_As_int ( PyObject * x ) {
2016-06-28 05:03:55 +02:00
const int neg_one = ( int ) - 1 , const_zero = ( int ) 0 ;
const int is_unsigned = neg_one > const_zero ;
# if PY_MAJOR_VERSION < 3
if ( likely ( PyInt_Check ( x ) ) ) {
if ( sizeof ( int ) < sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT ( int , long , PyInt_AS_LONG ( x ) )
} else {
long val = PyInt_AS_LONG ( x ) ;
if ( is_unsigned & & unlikely ( val < 0 ) ) {
goto raise_neg_overflow ;
}
return ( int ) val ;
}
} else
# endif
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
switch ( Py_SIZE ( x ) ) {
case 0 : return ( int ) 0 ;
case 1 : __PYX_VERIFY_RETURN_INT ( int , digit , digits [ 0 ] )
case 2 :
if ( 8 * sizeof ( int ) > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( int , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) > = 2 * PyLong_SHIFT ) {
return ( int ) ( ( ( ( ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ;
}
}
break ;
case 3 :
if ( 8 * sizeof ( int ) > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( int , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) > = 3 * PyLong_SHIFT ) {
return ( int ) ( ( ( ( ( ( ( int ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ;
}
}
break ;
case 4 :
if ( 8 * sizeof ( int ) > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( int , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) > = 4 * PyLong_SHIFT ) {
return ( int ) ( ( ( ( ( ( ( ( ( int ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ;
}
}
break ;
}
# endif
# if CYTHON_COMPILING_IN_CPYTHON
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
goto raise_neg_overflow ;
}
# else
{
int result = PyObject_RichCompareBool ( x , Py_False , Py_LT ) ;
if ( unlikely ( result < 0 ) )
return ( int ) - 1 ;
if ( unlikely ( result = = 1 ) )
goto raise_neg_overflow ;
}
# endif
if ( sizeof ( int ) < = sizeof ( unsigned long ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( int , unsigned long , PyLong_AsUnsignedLong ( x ) )
} else if ( sizeof ( int ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( int , unsigned PY_LONG_LONG , PyLong_AsUnsignedLongLong ( x ) )
}
} else {
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
switch ( Py_SIZE ( x ) ) {
case 0 : return ( int ) 0 ;
case - 1 : __PYX_VERIFY_RETURN_INT ( int , sdigit , ( sdigit ) ( - ( sdigit ) digits [ 0 ] ) )
case 1 : __PYX_VERIFY_RETURN_INT ( int , digit , + digits [ 0 ] )
case - 2 :
if ( 8 * sizeof ( int ) - 1 > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( int , long , - ( long ) ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) - 1 > 2 * PyLong_SHIFT ) {
return ( int ) ( ( ( int ) - 1 ) * ( ( ( ( ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 2 :
if ( 8 * sizeof ( int ) > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( int , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) - 1 > 2 * PyLong_SHIFT ) {
return ( int ) ( ( ( ( ( ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ) ;
}
}
break ;
case - 3 :
if ( 8 * sizeof ( int ) - 1 > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( int , long , - ( long ) ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) - 1 > 3 * PyLong_SHIFT ) {
return ( int ) ( ( ( int ) - 1 ) * ( ( ( ( ( ( ( int ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 3 :
if ( 8 * sizeof ( int ) > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( int , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) - 1 > 3 * PyLong_SHIFT ) {
return ( int ) ( ( ( ( ( ( ( ( int ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ) ;
}
}
break ;
case - 4 :
if ( 8 * sizeof ( int ) - 1 > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( int , long , - ( long ) ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) - 1 > 4 * PyLong_SHIFT ) {
return ( int ) ( ( ( int ) - 1 ) * ( ( ( ( ( ( ( ( ( int ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 4 :
if ( 8 * sizeof ( int ) > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( int , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( int ) - 1 > 4 * PyLong_SHIFT ) {
return ( int ) ( ( ( ( ( ( ( ( ( ( int ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( int ) digits [ 0 ] ) ) ) ;
}
}
break ;
}
# endif
if ( sizeof ( int ) < = sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( int , long , PyLong_AsLong ( x ) )
} else if ( sizeof ( int ) < = sizeof ( PY_LONG_LONG ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( int , PY_LONG_LONG , PyLong_AsLongLong ( x ) )
}
}
{
# if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
PyErr_SetString ( PyExc_RuntimeError ,
" _PyLong_AsByteArray() not available in PyPy, cannot convert large numbers " ) ;
# else
int val ;
PyObject * v = __Pyx_PyNumber_IntOrLong ( x ) ;
# if PY_MAJOR_VERSION < 3
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 ;
}
# endif
return ( int ) - 1 ;
}
} else {
int val ;
PyObject * tmp = __Pyx_PyNumber_IntOrLong ( x ) ;
if ( ! tmp ) return ( int ) - 1 ;
val = __Pyx_PyInt_As_int ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
raise_overflow :
PyErr_SetString ( PyExc_OverflowError ,
" value too large to convert to int " ) ;
return ( int ) - 1 ;
raise_neg_overflow :
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to int " ) ;
return ( int ) - 1 ;
}
/* CIntFromPy */
2016-06-28 08:48:53 +02:00
static CYTHON_INLINE u_int8_t __Pyx_PyInt_As_u_int8_t ( PyObject * x ) {
2016-06-28 05:03:55 +02:00
const u_int8_t neg_one = ( u_int8_t ) - 1 , const_zero = ( u_int8_t ) 0 ;
const int is_unsigned = neg_one > const_zero ;
# if PY_MAJOR_VERSION < 3
if ( likely ( PyInt_Check ( x ) ) ) {
if ( sizeof ( u_int8_t ) < sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT ( u_int8_t , long , PyInt_AS_LONG ( x ) )
} else {
long val = PyInt_AS_LONG ( x ) ;
if ( is_unsigned & & unlikely ( val < 0 ) ) {
goto raise_neg_overflow ;
}
return ( u_int8_t ) val ;
}
} else
# endif
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
switch ( Py_SIZE ( x ) ) {
case 0 : return ( u_int8_t ) 0 ;
case 1 : __PYX_VERIFY_RETURN_INT ( u_int8_t , digit , digits [ 0 ] )
case 2 :
if ( 8 * sizeof ( u_int8_t ) > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int8_t , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int8_t ) > = 2 * PyLong_SHIFT ) {
return ( u_int8_t ) ( ( ( ( ( u_int8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 0 ] ) ) ;
}
}
break ;
case 3 :
if ( 8 * sizeof ( u_int8_t ) > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int8_t , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int8_t ) > = 3 * PyLong_SHIFT ) {
return ( u_int8_t ) ( ( ( ( ( ( ( u_int8_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 0 ] ) ) ;
}
}
break ;
case 4 :
if ( 8 * sizeof ( u_int8_t ) > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int8_t , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int8_t ) > = 4 * PyLong_SHIFT ) {
return ( u_int8_t ) ( ( ( ( ( ( ( ( ( u_int8_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 0 ] ) ) ;
}
}
break ;
}
# endif
# if CYTHON_COMPILING_IN_CPYTHON
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
goto raise_neg_overflow ;
}
# else
{
int result = PyObject_RichCompareBool ( x , Py_False , Py_LT ) ;
if ( unlikely ( result < 0 ) )
return ( u_int8_t ) - 1 ;
if ( unlikely ( result = = 1 ) )
goto raise_neg_overflow ;
}
# endif
if ( sizeof ( u_int8_t ) < = sizeof ( unsigned long ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( u_int8_t , unsigned long , PyLong_AsUnsignedLong ( x ) )
} else if ( sizeof ( u_int8_t ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( u_int8_t , unsigned PY_LONG_LONG , PyLong_AsUnsignedLongLong ( x ) )
}
} else {
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
switch ( Py_SIZE ( x ) ) {
case 0 : return ( u_int8_t ) 0 ;
case - 1 : __PYX_VERIFY_RETURN_INT ( u_int8_t , sdigit , ( sdigit ) ( - ( sdigit ) digits [ 0 ] ) )
case 1 : __PYX_VERIFY_RETURN_INT ( u_int8_t , digit , + digits [ 0 ] )
case - 2 :
if ( 8 * sizeof ( u_int8_t ) - 1 > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int8_t , long , - ( long ) ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int8_t ) - 1 > 2 * PyLong_SHIFT ) {
return ( u_int8_t ) ( ( ( u_int8_t ) - 1 ) * ( ( ( ( ( u_int8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 2 :
if ( 8 * sizeof ( u_int8_t ) > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int8_t , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int8_t ) - 1 > 2 * PyLong_SHIFT ) {
return ( u_int8_t ) ( ( ( ( ( ( u_int8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case - 3 :
if ( 8 * sizeof ( u_int8_t ) - 1 > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int8_t , long , - ( long ) ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int8_t ) - 1 > 3 * PyLong_SHIFT ) {
return ( u_int8_t ) ( ( ( u_int8_t ) - 1 ) * ( ( ( ( ( ( ( u_int8_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 3 :
if ( 8 * sizeof ( u_int8_t ) > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int8_t , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int8_t ) - 1 > 3 * PyLong_SHIFT ) {
return ( u_int8_t ) ( ( ( ( ( ( ( ( u_int8_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case - 4 :
if ( 8 * sizeof ( u_int8_t ) - 1 > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int8_t , long , - ( long ) ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int8_t ) - 1 > 4 * PyLong_SHIFT ) {
return ( u_int8_t ) ( ( ( u_int8_t ) - 1 ) * ( ( ( ( ( ( ( ( ( u_int8_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 4 :
if ( 8 * sizeof ( u_int8_t ) > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int8_t , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int8_t ) - 1 > 4 * PyLong_SHIFT ) {
return ( u_int8_t ) ( ( ( ( ( ( ( ( ( ( u_int8_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int8_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
}
# endif
if ( sizeof ( u_int8_t ) < = sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( u_int8_t , long , PyLong_AsLong ( x ) )
} else if ( sizeof ( u_int8_t ) < = sizeof ( PY_LONG_LONG ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( u_int8_t , PY_LONG_LONG , PyLong_AsLongLong ( x ) )
}
}
{
# if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
PyErr_SetString ( PyExc_RuntimeError ,
" _PyLong_AsByteArray() not available in PyPy, cannot convert large numbers " ) ;
# else
u_int8_t val ;
PyObject * v = __Pyx_PyNumber_IntOrLong ( x ) ;
# if PY_MAJOR_VERSION < 3
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 ;
}
# endif
return ( u_int8_t ) - 1 ;
}
} else {
u_int8_t val ;
PyObject * tmp = __Pyx_PyNumber_IntOrLong ( x ) ;
if ( ! tmp ) return ( u_int8_t ) - 1 ;
val = __Pyx_PyInt_As_u_int8_t ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
raise_overflow :
PyErr_SetString ( PyExc_OverflowError ,
" value too large to convert to u_int8_t " ) ;
return ( u_int8_t ) - 1 ;
raise_neg_overflow :
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to u_int8_t " ) ;
return ( u_int8_t ) - 1 ;
}
/* CIntFromPy */
2016-06-28 08:48:53 +02:00
static CYTHON_INLINE u_int16_t __Pyx_PyInt_As_u_int16_t ( PyObject * x ) {
2016-06-28 05:03:55 +02:00
const u_int16_t neg_one = ( u_int16_t ) - 1 , const_zero = ( u_int16_t ) 0 ;
const int is_unsigned = neg_one > const_zero ;
# if PY_MAJOR_VERSION < 3
if ( likely ( PyInt_Check ( x ) ) ) {
if ( sizeof ( u_int16_t ) < sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT ( u_int16_t , long , PyInt_AS_LONG ( x ) )
} else {
long val = PyInt_AS_LONG ( x ) ;
if ( is_unsigned & & unlikely ( val < 0 ) ) {
goto raise_neg_overflow ;
}
return ( u_int16_t ) val ;
}
} else
# endif
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
switch ( Py_SIZE ( x ) ) {
case 0 : return ( u_int16_t ) 0 ;
case 1 : __PYX_VERIFY_RETURN_INT ( u_int16_t , digit , digits [ 0 ] )
case 2 :
if ( 8 * sizeof ( u_int16_t ) > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int16_t , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int16_t ) > = 2 * PyLong_SHIFT ) {
return ( u_int16_t ) ( ( ( ( ( u_int16_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 0 ] ) ) ;
}
}
break ;
case 3 :
if ( 8 * sizeof ( u_int16_t ) > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int16_t , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int16_t ) > = 3 * PyLong_SHIFT ) {
return ( u_int16_t ) ( ( ( ( ( ( ( u_int16_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 0 ] ) ) ;
}
}
break ;
case 4 :
if ( 8 * sizeof ( u_int16_t ) > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int16_t , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int16_t ) > = 4 * PyLong_SHIFT ) {
return ( u_int16_t ) ( ( ( ( ( ( ( ( ( u_int16_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 0 ] ) ) ;
}
}
break ;
}
# endif
# if CYTHON_COMPILING_IN_CPYTHON
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
goto raise_neg_overflow ;
}
# else
{
int result = PyObject_RichCompareBool ( x , Py_False , Py_LT ) ;
if ( unlikely ( result < 0 ) )
return ( u_int16_t ) - 1 ;
if ( unlikely ( result = = 1 ) )
goto raise_neg_overflow ;
}
# endif
if ( sizeof ( u_int16_t ) < = sizeof ( unsigned long ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( u_int16_t , unsigned long , PyLong_AsUnsignedLong ( x ) )
} else if ( sizeof ( u_int16_t ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( u_int16_t , unsigned PY_LONG_LONG , PyLong_AsUnsignedLongLong ( x ) )
}
} else {
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
switch ( Py_SIZE ( x ) ) {
case 0 : return ( u_int16_t ) 0 ;
case - 1 : __PYX_VERIFY_RETURN_INT ( u_int16_t , sdigit , ( sdigit ) ( - ( sdigit ) digits [ 0 ] ) )
case 1 : __PYX_VERIFY_RETURN_INT ( u_int16_t , digit , + digits [ 0 ] )
case - 2 :
if ( 8 * sizeof ( u_int16_t ) - 1 > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int16_t , long , - ( long ) ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int16_t ) - 1 > 2 * PyLong_SHIFT ) {
return ( u_int16_t ) ( ( ( u_int16_t ) - 1 ) * ( ( ( ( ( u_int16_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 2 :
if ( 8 * sizeof ( u_int16_t ) > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int16_t , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int16_t ) - 1 > 2 * PyLong_SHIFT ) {
return ( u_int16_t ) ( ( ( ( ( ( u_int16_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case - 3 :
if ( 8 * sizeof ( u_int16_t ) - 1 > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int16_t , long , - ( long ) ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int16_t ) - 1 > 3 * PyLong_SHIFT ) {
return ( u_int16_t ) ( ( ( u_int16_t ) - 1 ) * ( ( ( ( ( ( ( u_int16_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 3 :
if ( 8 * sizeof ( u_int16_t ) > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int16_t , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int16_t ) - 1 > 3 * PyLong_SHIFT ) {
return ( u_int16_t ) ( ( ( ( ( ( ( ( u_int16_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case - 4 :
if ( 8 * sizeof ( u_int16_t ) - 1 > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int16_t , long , - ( long ) ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int16_t ) - 1 > 4 * PyLong_SHIFT ) {
return ( u_int16_t ) ( ( ( u_int16_t ) - 1 ) * ( ( ( ( ( ( ( ( ( u_int16_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 4 :
if ( 8 * sizeof ( u_int16_t ) > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( u_int16_t , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( u_int16_t ) - 1 > 4 * PyLong_SHIFT ) {
return ( u_int16_t ) ( ( ( ( ( ( ( ( ( ( u_int16_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( u_int16_t ) digits [ 0 ] ) ) ) ;
}
}
break ;
}
# endif
if ( sizeof ( u_int16_t ) < = sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( u_int16_t , long , PyLong_AsLong ( x ) )
} else if ( sizeof ( u_int16_t ) < = sizeof ( PY_LONG_LONG ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( u_int16_t , PY_LONG_LONG , PyLong_AsLongLong ( x ) )
}
}
{
# if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
PyErr_SetString ( PyExc_RuntimeError ,
" _PyLong_AsByteArray() not available in PyPy, cannot convert large numbers " ) ;
# else
u_int16_t val ;
PyObject * v = __Pyx_PyNumber_IntOrLong ( x ) ;
# if PY_MAJOR_VERSION < 3
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 ;
}
# endif
return ( u_int16_t ) - 1 ;
}
} else {
u_int16_t val ;
PyObject * tmp = __Pyx_PyNumber_IntOrLong ( x ) ;
if ( ! tmp ) return ( u_int16_t ) - 1 ;
val = __Pyx_PyInt_As_u_int16_t ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
raise_overflow :
PyErr_SetString ( PyExc_OverflowError ,
" value too large to convert to u_int16_t " ) ;
return ( u_int16_t ) - 1 ;
raise_neg_overflow :
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to u_int16_t " ) ;
return ( u_int16_t ) - 1 ;
}
/* CIntFromPy */
2016-06-28 08:48:53 +02:00
static CYTHON_INLINE long __Pyx_PyInt_As_long ( PyObject * x ) {
2016-06-28 05:03:55 +02:00
const long neg_one = ( long ) - 1 , const_zero = ( long ) 0 ;
const int is_unsigned = neg_one > const_zero ;
# if PY_MAJOR_VERSION < 3
if ( likely ( PyInt_Check ( x ) ) ) {
if ( sizeof ( long ) < sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT ( long , long , PyInt_AS_LONG ( x ) )
} else {
long val = PyInt_AS_LONG ( x ) ;
if ( is_unsigned & & unlikely ( val < 0 ) ) {
goto raise_neg_overflow ;
}
return ( long ) val ;
}
} else
# endif
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
switch ( Py_SIZE ( x ) ) {
case 0 : return ( long ) 0 ;
case 1 : __PYX_VERIFY_RETURN_INT ( long , digit , digits [ 0 ] )
case 2 :
if ( 8 * sizeof ( long ) > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) > = 2 * PyLong_SHIFT ) {
return ( long ) ( ( ( ( ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ;
}
}
break ;
case 3 :
if ( 8 * sizeof ( long ) > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) > = 3 * PyLong_SHIFT ) {
return ( long ) ( ( ( ( ( ( ( long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ;
}
}
break ;
case 4 :
if ( 8 * sizeof ( long ) > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) > = 4 * PyLong_SHIFT ) {
return ( long ) ( ( ( ( ( ( ( ( ( long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ;
}
}
break ;
}
# endif
# if CYTHON_COMPILING_IN_CPYTHON
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
goto raise_neg_overflow ;
}
# else
{
int result = PyObject_RichCompareBool ( x , Py_False , Py_LT ) ;
if ( unlikely ( result < 0 ) )
return ( long ) - 1 ;
if ( unlikely ( result = = 1 ) )
goto raise_neg_overflow ;
}
# endif
if ( sizeof ( long ) < = sizeof ( unsigned long ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( long , unsigned long , PyLong_AsUnsignedLong ( x ) )
} else if ( sizeof ( long ) < = sizeof ( unsigned PY_LONG_LONG ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( long , unsigned PY_LONG_LONG , PyLong_AsUnsignedLongLong ( x ) )
}
} else {
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) x ) - > ob_digit ;
switch ( Py_SIZE ( x ) ) {
case 0 : return ( long ) 0 ;
case - 1 : __PYX_VERIFY_RETURN_INT ( long , sdigit , ( sdigit ) ( - ( sdigit ) digits [ 0 ] ) )
case 1 : __PYX_VERIFY_RETURN_INT ( long , digit , + digits [ 0 ] )
case - 2 :
if ( 8 * sizeof ( long ) - 1 > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , long , - ( long ) ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) - 1 > 2 * PyLong_SHIFT ) {
return ( long ) ( ( ( long ) - 1 ) * ( ( ( ( ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 2 :
if ( 8 * sizeof ( long ) > 1 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 2 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , unsigned long , ( ( ( ( ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) - 1 > 2 * PyLong_SHIFT ) {
return ( long ) ( ( ( ( ( ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ) ;
}
}
break ;
case - 3 :
if ( 8 * sizeof ( long ) - 1 > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , long , - ( long ) ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) - 1 > 3 * PyLong_SHIFT ) {
return ( long ) ( ( ( long ) - 1 ) * ( ( ( ( ( ( ( long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 3 :
if ( 8 * sizeof ( long ) > 2 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 3 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , unsigned long , ( ( ( ( ( ( ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) - 1 > 3 * PyLong_SHIFT ) {
return ( long ) ( ( ( ( ( ( ( ( long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ) ;
}
}
break ;
case - 4 :
if ( 8 * sizeof ( long ) - 1 > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , long , - ( long ) ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) - 1 > 4 * PyLong_SHIFT ) {
return ( long ) ( ( ( long ) - 1 ) * ( ( ( ( ( ( ( ( ( long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ) ;
}
}
break ;
case 4 :
if ( 8 * sizeof ( long ) > 3 * PyLong_SHIFT ) {
if ( 8 * sizeof ( unsigned long ) > 4 * PyLong_SHIFT ) {
__PYX_VERIFY_RETURN_INT ( long , unsigned long , ( ( ( ( ( ( ( ( ( unsigned long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( unsigned long ) digits [ 0 ] ) ) )
} else if ( 8 * sizeof ( long ) - 1 > 4 * PyLong_SHIFT ) {
return ( long ) ( ( ( ( ( ( ( ( ( ( long ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( long ) digits [ 0 ] ) ) ) ;
}
}
break ;
}
# endif
if ( sizeof ( long ) < = sizeof ( long ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( long , long , PyLong_AsLong ( x ) )
} else if ( sizeof ( long ) < = sizeof ( PY_LONG_LONG ) ) {
__PYX_VERIFY_RETURN_INT_EXC ( long , PY_LONG_LONG , PyLong_AsLongLong ( x ) )
}
}
{
# if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
PyErr_SetString ( PyExc_RuntimeError ,
" _PyLong_AsByteArray() not available in PyPy, cannot convert large numbers " ) ;
# else
long val ;
PyObject * v = __Pyx_PyNumber_IntOrLong ( x ) ;
# if PY_MAJOR_VERSION < 3
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 ;
}
# endif
return ( long ) - 1 ;
}
} else {
long val ;
PyObject * tmp = __Pyx_PyNumber_IntOrLong ( x ) ;
if ( ! tmp ) return ( long ) - 1 ;
val = __Pyx_PyInt_As_long ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
raise_overflow :
PyErr_SetString ( PyExc_OverflowError ,
" value too large to convert to long " ) ;
return ( long ) - 1 ;
raise_neg_overflow :
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to long " ) ;
return ( long ) - 1 ;
}
/* CheckBinaryVersion */
2016-06-28 08:48:53 +02:00
static int __Pyx_check_binary_version ( void ) {
2016-06-28 05:03:55 +02:00
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 ) ;
return PyErr_WarnEx ( NULL , message , 1 ) ;
}
return 0 ;
}
/* InitStrings */
2016-06-28 08:48:53 +02:00
static int __Pyx_InitStrings ( __Pyx_StringTabEntry * t ) {
2016-06-28 05:03:55 +02:00
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
2011-05-12 22:45:14 +02:00
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 ;
}
2016-06-28 05:03:55 +02:00
static CYTHON_INLINE PyObject * __Pyx_PyUnicode_FromString ( const char * c_str ) {
return __Pyx_PyUnicode_FromStringAndSize ( c_str , ( Py_ssize_t ) strlen ( c_str ) ) ;
}
static CYTHON_INLINE char * __Pyx_PyObject_AsString ( PyObject * o ) {
Py_ssize_t ignore ;
return __Pyx_PyObject_AsStringAndSize ( o , & ignore ) ;
}
static CYTHON_INLINE char * __Pyx_PyObject_AsStringAndSize ( PyObject * o , Py_ssize_t * length ) {
# if CYTHON_COMPILING_IN_CPYTHON && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
if (
# if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
__Pyx_sys_getdefaultencoding_not_ascii & &
# endif
PyUnicode_Check ( o ) ) {
# if PY_VERSION_HEX < 0x03030000
char * defenc_c ;
PyObject * defenc = _PyUnicode_AsDefaultEncodedString ( o , NULL ) ;
if ( ! defenc ) return NULL ;
defenc_c = PyBytes_AS_STRING ( defenc ) ;
# if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
{
char * end = defenc_c + PyBytes_GET_SIZE ( defenc ) ;
char * c ;
for ( c = defenc_c ; c < end ; c + + ) {
if ( ( unsigned char ) ( * c ) > = 128 ) {
PyUnicode_AsASCIIString ( o ) ;
return NULL ;
}
}
}
# endif
* length = PyBytes_GET_SIZE ( defenc ) ;
return defenc_c ;
# else
if ( __Pyx_PyUnicode_READY ( o ) = = - 1 ) return NULL ;
# if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
if ( PyUnicode_IS_ASCII ( o ) ) {
* length = PyUnicode_GET_LENGTH ( o ) ;
return PyUnicode_AsUTF8 ( o ) ;
} else {
PyUnicode_AsASCIIString ( o ) ;
return NULL ;
}
# else
return PyUnicode_AsUTF8AndSize ( o , length ) ;
# endif
# endif
} else
# endif
# if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
if ( PyByteArray_Check ( o ) ) {
* length = PyByteArray_GET_SIZE ( o ) ;
return PyByteArray_AS_STRING ( o ) ;
} else
# endif
{
char * result ;
int r = PyBytes_AsStringAndSize ( o , & result , length ) ;
if ( unlikely ( r < 0 ) ) {
return NULL ;
} else {
return result ;
}
}
}
2011-05-12 22:45:14 +02:00
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 ) ;
}
2016-06-28 05:03:55 +02:00
static CYTHON_INLINE PyObject * __Pyx_PyNumber_IntOrLong ( PyObject * x ) {
2011-05-12 22:45:14 +02:00
PyNumberMethods * m ;
const char * name = NULL ;
PyObject * res = NULL ;
2016-06-28 05:03:55 +02:00
# if PY_MAJOR_VERSION < 3
2011-05-12 22:45:14 +02:00
if ( PyInt_Check ( x ) | | PyLong_Check ( x ) )
# else
if ( PyLong_Check ( x ) )
# endif
2016-06-28 05:03:55 +02:00
return __Pyx_NewRef ( x ) ;
2011-05-12 22:45:14 +02:00
m = Py_TYPE ( x ) - > tp_as_number ;
2016-06-28 05:03:55 +02:00
# if PY_MAJOR_VERSION < 3
2011-05-12 22:45:14 +02:00
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 ) {
2016-06-28 05:03:55 +02:00
# if PY_MAJOR_VERSION < 3
2011-05-12 22:45:14 +02:00
if ( ! PyInt_Check ( res ) & & ! PyLong_Check ( res ) ) {
# else
if ( ! PyLong_Check ( res ) ) {
# endif
PyErr_Format ( PyExc_TypeError ,
2016-06-28 05:03:55 +02:00
" __%.4s__ returned non-%.4s (type %.200s) " ,
2011-05-12 22:45:14 +02:00
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 ;
2016-06-28 05:03:55 +02:00
PyObject * x ;
# if PY_MAJOR_VERSION < 3
if ( likely ( PyInt_CheckExact ( b ) ) ) {
if ( sizeof ( Py_ssize_t ) > = sizeof ( long ) )
return PyInt_AS_LONG ( b ) ;
else
return PyInt_AsSsize_t ( x ) ;
}
# endif
if ( likely ( PyLong_CheckExact ( b ) ) ) {
# if CYTHON_USE_PYLONG_INTERNALS
const digit * digits = ( ( PyLongObject * ) b ) - > ob_digit ;
const Py_ssize_t size = Py_SIZE ( b ) ;
if ( likely ( __Pyx_sst_abs ( size ) < = 1 ) ) {
ival = likely ( size ) ? digits [ 0 ] : 0 ;
if ( size = = - 1 ) ival = - ival ;
return ival ;
} else {
switch ( size ) {
case 2 :
if ( 8 * sizeof ( Py_ssize_t ) > 2 * PyLong_SHIFT ) {
return ( Py_ssize_t ) ( ( ( ( ( size_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 0 ] ) ) ;
}
break ;
case - 2 :
if ( 8 * sizeof ( Py_ssize_t ) > 2 * PyLong_SHIFT ) {
return - ( Py_ssize_t ) ( ( ( ( ( size_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 0 ] ) ) ;
}
break ;
case 3 :
if ( 8 * sizeof ( Py_ssize_t ) > 3 * PyLong_SHIFT ) {
return ( Py_ssize_t ) ( ( ( ( ( ( ( size_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 0 ] ) ) ;
}
break ;
case - 3 :
if ( 8 * sizeof ( Py_ssize_t ) > 3 * PyLong_SHIFT ) {
return - ( Py_ssize_t ) ( ( ( ( ( ( ( size_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 0 ] ) ) ;
}
break ;
case 4 :
if ( 8 * sizeof ( Py_ssize_t ) > 4 * PyLong_SHIFT ) {
return ( Py_ssize_t ) ( ( ( ( ( ( ( ( ( size_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 0 ] ) ) ;
}
break ;
case - 4 :
if ( 8 * sizeof ( Py_ssize_t ) > 4 * PyLong_SHIFT ) {
return - ( Py_ssize_t ) ( ( ( ( ( ( ( ( ( size_t ) digits [ 3 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 2 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 1 ] ) < < PyLong_SHIFT ) | ( size_t ) digits [ 0 ] ) ) ;
}
break ;
}
}
# endif
return PyLong_AsSsize_t ( b ) ;
}
x = PyNumber_Index ( b ) ;
2011-05-12 22:45:14 +02:00
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 ) {
2016-06-28 05:03:55 +02:00
return PyInt_FromSize_t ( ival ) ;
2011-05-12 22:45:14 +02:00
}
# endif /* Py_PYTHON_H */