From ffa83b5968b534f679bc34acc506801db3d28d58 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Thu, 31 May 2012 10:52:46 +0200 Subject: add mangle functions for IPv4/TCP and IPv4/UDP Signed-off-by: Pablo Neira Ayuso --- include/libnetfilter_queue/libnetfilter_queue_ipv4.h | 1 + include/libnetfilter_queue/libnetfilter_queue_tcp.h | 2 ++ include/libnetfilter_queue/libnetfilter_queue_udp.h | 2 ++ include/libnetfilter_queue/pktbuff.h | 4 ++++ 4 files changed, 9 insertions(+) (limited to 'include') diff --git a/include/libnetfilter_queue/libnetfilter_queue_ipv4.h b/include/libnetfilter_queue/libnetfilter_queue_ipv4.h index d18924e..e707f1f 100644 --- a/include/libnetfilter_queue/libnetfilter_queue_ipv4.h +++ b/include/libnetfilter_queue/libnetfilter_queue_ipv4.h @@ -7,6 +7,7 @@ struct iphdr; struct iphdr *nfq_ip_get_hdr(struct pkt_buff *pktb); int nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph); void nfq_ip_set_checksum(struct iphdr *iph); +int nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff, unsigned int match_offset, unsigned int match_len, const char *rep_buffer, unsigned int rep_len); int nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph); #endif diff --git a/include/libnetfilter_queue/libnetfilter_queue_tcp.h b/include/libnetfilter_queue/libnetfilter_queue_tcp.h index cc965f5..c66dfb6 100644 --- a/include/libnetfilter_queue/libnetfilter_queue_tcp.h +++ b/include/libnetfilter_queue/libnetfilter_queue_tcp.h @@ -13,6 +13,8 @@ struct ip6_hdr; void nfq_tcp_compute_checksum_ipv4(struct tcphdr *tcph, struct iphdr *iph); void nfq_tcp_compute_checksum_ipv6(struct tcphdr *tcph, struct ip6_hdr *ip6h); +int nfq_tcp_mangle_ipv4(struct pkt_buff *pkt, unsigned int match_offset, unsigned int match_len, const char *rep_buffer, unsigned int rep_len); + int nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcp); #endif diff --git a/include/libnetfilter_queue/libnetfilter_queue_udp.h b/include/libnetfilter_queue/libnetfilter_queue_udp.h index e1aeb73..f4b6c49 100644 --- a/include/libnetfilter_queue/libnetfilter_queue_udp.h +++ b/include/libnetfilter_queue/libnetfilter_queue_udp.h @@ -10,6 +10,8 @@ unsigned int nfq_udp_get_payload_len(struct udphdr *udph, struct pkt_buff *pktb) void nfq_udp_compute_checksum_ipv4(struct udphdr *udph, struct iphdr *iph); void nfq_udp_compute_checksum_ipv6(struct udphdr *udph, struct ip6_hdr *ip6h); +int nfq_udp_mangle_ipv4(struct pkt_buff *pkt, unsigned int match_offset, unsigned int match_len, const char *rep_buffer, unsigned int rep_len); + int nfq_udp_snprintf(char *buf, size_t size, const struct udphdr *udp); #endif diff --git a/include/libnetfilter_queue/pktbuff.h b/include/libnetfilter_queue/pktbuff.h index a0e7abf..b15ee1e 100644 --- a/include/libnetfilter_queue/pktbuff.h +++ b/include/libnetfilter_queue/pktbuff.h @@ -19,4 +19,8 @@ uint8_t *pktb_mac_header(struct pkt_buff *pktb); uint8_t *pktb_network_header(struct pkt_buff *pktb); uint8_t *pktb_transport_header(struct pkt_buff *pktb); +int pktb_mangle(struct pkt_buff *pkt, unsigned int dataoff, unsigned int match_offset, unsigned int match_len, const char *rep_buffer, unsigned int rep_len); + +bool pktb_mangled(const struct pkt_buff *pktb); + #endif -- cgit v1.2.3