work on new packet
This commit is contained in:
parent
35f6e27051
commit
7c9a98ea70
113
new_packet.pxd
113
new_packet.pxd
@ -54,6 +54,119 @@ cdef enum:
|
||||
IPPROTO_TCP = 6 # Transmission Control Protocol.
|
||||
IPPROTO_UDP = 17 # User Datagram Protocol.
|
||||
|
||||
cdef extern from "Python.h":
|
||||
object PyBytes_FromStringAndSize(char *s, Py_ssize_t len)
|
||||
object PyString_FromStringAndSize(char *s, Py_ssize_t len)
|
||||
|
||||
cdef extern from "sys/time.h":
|
||||
ctypedef long time_t
|
||||
struct timeval:
|
||||
time_t tv_sec
|
||||
time_t tv_usec
|
||||
struct timezone:
|
||||
pass
|
||||
|
||||
cdef extern from "netinet/in.h":
|
||||
u_int32_t ntohl (u_int32_t __netlong) nogil
|
||||
u_int16_t ntohs (u_int16_t __netshort) nogil
|
||||
u_int32_t htonl (u_int32_t __hostlong) nogil
|
||||
u_int16_t htons (u_int16_t __hostshort) nogil
|
||||
|
||||
cdef extern from "libnfnetlink/linux_nfnetlink.h":
|
||||
struct nfgenmsg:
|
||||
u_int8_t nfgen_family
|
||||
u_int8_t version
|
||||
u_int16_t res_id
|
||||
|
||||
cdef extern from "libnfnetlink/libnfnetlink.h":
|
||||
struct nfnl_handle:
|
||||
pass
|
||||
unsigned int nfnl_rcvbufsiz(nfnl_handle *h, unsigned int size)
|
||||
|
||||
cdef extern from "libnetfilter_queue/linux_nfnetlink_queue.h":
|
||||
enum nfqnl_config_mode:
|
||||
NFQNL_COPY_NONE
|
||||
NFQNL_COPY_META
|
||||
NFQNL_COPY_PACKET
|
||||
struct nfqnl_msg_packet_hdr:
|
||||
u_int32_t packet_id
|
||||
u_int16_t hw_protocol
|
||||
u_int8_t hook
|
||||
|
||||
cdef extern from "libnetfilter_queue/libnetfilter_queue.h":
|
||||
struct nfq_handle:
|
||||
pass
|
||||
struct nfq_q_handle:
|
||||
pass
|
||||
struct nfq_data:
|
||||
pass
|
||||
struct nfqnl_msg_packet_hw:
|
||||
u_int8_t hw_addr[8]
|
||||
|
||||
nfq_handle *nfq_open()
|
||||
int nfq_close(nfq_handle *h)
|
||||
|
||||
int nfq_bind_pf(nfq_handle *h, u_int16_t pf)
|
||||
int nfq_unbind_pf(nfq_handle *h, u_int16_t pf)
|
||||
ctypedef int *nfq_callback(nfq_q_handle *gh, nfgenmsg *nfmsg,
|
||||
nfq_data *nfad, void *data)
|
||||
nfq_q_handle *nfq_create_queue(nfq_handle *h,
|
||||
u_int16_t num,
|
||||
nfq_callback *cb,
|
||||
void *data)
|
||||
int nfq_destroy_queue(nfq_q_handle *qh)
|
||||
|
||||
int nfq_handle_packet(nfq_handle *h, char *buf, int len)
|
||||
|
||||
int nfq_set_mode(nfq_q_handle *qh,
|
||||
u_int8_t mode, unsigned int len)
|
||||
|
||||
q_set_queue_maxlen(nfq_q_handle *qh,
|
||||
u_int32_t queuelen)
|
||||
|
||||
int nfq_set_verdict(nfq_q_handle *qh,
|
||||
u_int32_t id,
|
||||
u_int32_t verdict,
|
||||
u_int32_t data_len,
|
||||
unsigned char *buf) nogil
|
||||
|
||||
int nfq_set_verdict2(nfq_q_handle *qh,
|
||||
u_int32_t id,
|
||||
u_int32_t verdict,
|
||||
u_int32_t mark,
|
||||
u_int32_t datalen,
|
||||
unsigned char *buf) nogil
|
||||
int nfq_set_queue_maxlen(nfq_q_handle *qh, u_int32_t queuelen)
|
||||
|
||||
int nfq_fd(nfq_handle *h)
|
||||
nfqnl_msg_packet_hdr *nfq_get_msg_packet_hdr(nfq_data *nfad)
|
||||
int nfq_get_payload(nfq_data *nfad, unsigned char **data)
|
||||
int nfq_get_timestamp(nfq_data *nfad, timeval *tv)
|
||||
nfqnl_msg_packet_hw *nfq_get_packet_hw(nfq_data *nfad)
|
||||
int nfq_get_nfmark (nfq_data *nfad)
|
||||
u_int8_t nfq_get_indev(nfq_data *nfad)
|
||||
u_int8_t nfq_get_outdev(nfq_data *nfad)
|
||||
nfnl_handle *nfq_nfnlh(nfq_handle *h)
|
||||
|
||||
# Dummy defines from linux/socket.h:
|
||||
cdef enum: # Protocol families, same as address families.
|
||||
PF_INET = 2
|
||||
PF_INET6 = 10
|
||||
|
||||
cdef extern from "sys/socket.h":
|
||||
ssize_t recv(int __fd, void *__buf, size_t __n, int __flags) nogil
|
||||
int MSG_DONTWAIT
|
||||
|
||||
# Dummy defines from linux/netfilter.h
|
||||
cdef enum:
|
||||
NF_DROP
|
||||
NF_ACCEPT
|
||||
NF_STOLEN
|
||||
NF_QUEUE
|
||||
NF_REPEAT
|
||||
NF_STOP
|
||||
NF_MAX_VERDICT = NF_STOP
|
||||
|
||||
|
||||
cdef class CPacket:
|
||||
cdef nfq_q_handle *_qh
|
||||
|
Loading…
Reference in New Issue
Block a user