From e84b55978504a05c687dd636c1c526a99a34019e Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Fri, 14 Apr 2017 03:29:22 +0200 Subject: Revert "src: Declare the define visibility attribute together" This reverts commit 58cb0668dc15c78cd3af9eeaedf29386e86ecac1. Prepare a new patch to keep this update consistent with libmnl. Signed-off-by: Pablo Neira Ayuso --- src/extra/ipv4.c | 15 ++++++++++----- src/extra/ipv6.c | 9 ++++++--- src/extra/pktbuff.c | 42 ++++++++++++++++++++++++++++-------------- src/extra/tcp.c | 21 ++++++++++++++------- src/extra/udp.c | 21 ++++++++++++++------- 5 files changed, 72 insertions(+), 36 deletions(-) (limited to 'src/extra') diff --git a/src/extra/ipv4.c b/src/extra/ipv4.c index 56d5dc7..a93d113 100644 --- a/src/extra/ipv4.c +++ b/src/extra/ipv4.c @@ -32,7 +32,7 @@ * This funcion returns NULL if the IPv4 is malformed or the protocol version * is not 4. On success, it returns a valid pointer to the IPv4 header. */ -struct iphdr __EXPORTED *nfq_ip_get_hdr(struct pkt_buff *pktb) +struct iphdr *nfq_ip_get_hdr(struct pkt_buff *pktb) { struct iphdr *iph; unsigned int pktlen = pktb->tail - pktb->network_header; @@ -53,13 +53,14 @@ struct iphdr __EXPORTED *nfq_ip_get_hdr(struct pkt_buff *pktb) return iph; } +EXPORT_SYMBOL(nfq_ip_get_hdr); /** * nfq_ip_set_transport_header - set transport header * \param pktb: pointer to network packet buffer * \param iph: pointer to the IPv4 header */ -int __EXPORTED nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph) +int nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph) { int doff = iph->ihl * 4; @@ -70,6 +71,7 @@ int __EXPORTED nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr * pktb->transport_header = pktb->network_header + doff; return 0; } +EXPORT_SYMBOL(nfq_ip_set_transport_header); /** * nfq_ip_set_checksum - set IPv4 checksum @@ -78,13 +80,14 @@ int __EXPORTED nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr * * \note Call to this function if you modified the IPv4 header to update the * checksum. */ -void __EXPORTED nfq_ip_set_checksum(struct iphdr *iph) +void nfq_ip_set_checksum(struct iphdr *iph) { uint32_t iph_len = iph->ihl * 4; iph->check = 0; iph->check = nfq_checksum(0, (uint16_t *)iph, iph_len); } +EXPORT_SYMBOL(nfq_ip_set_checksum); /** * nfq_ip_mangle - mangle IPv4 packet buffer @@ -97,7 +100,7 @@ void __EXPORTED nfq_ip_set_checksum(struct iphdr *iph) * * \note This function recalculates the IPv4 checksum (if needed). */ -int __EXPORTED nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff, +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) { @@ -113,6 +116,7 @@ int __EXPORTED nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff, return 1; } +EXPORT_SYMBOL(nfq_ip_mangle); /** * nfq_pkt_snprintf_ip - print IPv4 header into buffer in iptables LOG format @@ -124,7 +128,7 @@ int __EXPORTED nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff, * case that there is enough room in the buffer. Read snprintf manpage for more * information to know more about this strange behaviour. */ -int __EXPORTED nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph) +int nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph) { int ret; struct in_addr src = { iph->saddr }; @@ -143,6 +147,7 @@ int __EXPORTED nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph) return ret; } +EXPORT_SYMBOL(nfq_ip_snprintf); /** * @} diff --git a/src/extra/ipv6.c b/src/extra/ipv6.c index 6641c6b..7c5dc9b 100644 --- a/src/extra/ipv6.c +++ b/src/extra/ipv6.c @@ -33,7 +33,7 @@ * This funcion returns NULL if an invalid header is found. On sucess, it * returns a valid pointer to the header. */ -struct ip6_hdr __EXPORTED *nfq_ip6_get_hdr(struct pkt_buff *pktb) +struct ip6_hdr *nfq_ip6_get_hdr(struct pkt_buff *pktb) { struct ip6_hdr *ip6h; unsigned int pktlen = pktb->tail - pktb->network_header; @@ -50,6 +50,7 @@ struct ip6_hdr __EXPORTED *nfq_ip6_get_hdr(struct pkt_buff *pktb) return ip6h; } +EXPORT_SYMBOL(nfq_ip6_get_hdr); /** * nfq_ip6_set_transport_header - set transport header pointer for IPv6 packet @@ -60,7 +61,7 @@ struct ip6_hdr __EXPORTED *nfq_ip6_get_hdr(struct pkt_buff *pktb) * This function returns 1 if the protocol has been found and the transport * header has been set. Otherwise, it returns 0. */ -int __EXPORTED nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hdr *ip6h, +int nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hdr *ip6h, uint8_t target) { uint8_t nexthdr = ip6h->ip6_nxt; @@ -114,6 +115,7 @@ int __EXPORTED nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hd pktb->transport_header = cur; return cur ? 1 : 0; } +EXPORT_SYMBOL(nfq_ip6_set_transport_header); /** * nfq_ip6_snprintf - print IPv6 header into one buffer in iptables LOG format @@ -122,7 +124,7 @@ int __EXPORTED nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hd * \param ip6_hdr: pointer to a valid IPv6 header. * */ -int __EXPORTED nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip6h) +int nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip6h) { int ret; char src[INET6_ADDRSTRLEN]; @@ -141,6 +143,7 @@ int __EXPORTED nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip return ret; } +EXPORT_SYMBOL(nfq_ip6_snprintf); /** * @} diff --git a/src/extra/pktbuff.c b/src/extra/pktbuff.c index 54d8244..1c15a00 100644 --- a/src/extra/pktbuff.c +++ b/src/extra/pktbuff.c @@ -40,7 +40,7 @@ * * \return a pointer to a new queue handle or NULL on failure. */ -struct pkt_buff __EXPORTED * +struct pkt_buff * pktb_alloc(int family, void *data, size_t len, size_t extra) { struct pkt_buff *pktb; @@ -84,108 +84,120 @@ pktb_alloc(int family, void *data, size_t len, size_t extra) } return pktb; } +EXPORT_SYMBOL(pktb_alloc); /** * pktb_data - return pointer to the beginning of the packet buffer * \param pktb Pointer to packet buffer */ -uint8_t __EXPORTED *pktb_data(struct pkt_buff *pktb) +uint8_t *pktb_data(struct pkt_buff *pktb) { return pktb->data; } +EXPORT_SYMBOL(pktb_data); /** * pktb_len - return length of the packet buffer * \param pktb Pointer to packet buffer */ -uint32_t __EXPORTED pktb_len(struct pkt_buff *pktb) +uint32_t pktb_len(struct pkt_buff *pktb) { return pktb->len; } +EXPORT_SYMBOL(pktb_len); /** * pktb_free - release packet buffer * \param pktb Pointer to packet buffer */ -void __EXPORTED pktb_free(struct pkt_buff *pktb) +void pktb_free(struct pkt_buff *pktb) { free(pktb); } +EXPORT_SYMBOL(pktb_free); /** * pktb_push - update pointer to the beginning of the packet buffer * \param pktb Pointer to packet buffer */ -void __EXPORTED pktb_push(struct pkt_buff *pktb, unsigned int len) +void pktb_push(struct pkt_buff *pktb, unsigned int len) { pktb->data -= len; pktb->len += len; } +EXPORT_SYMBOL(pktb_push); /** * pktb_pull - update pointer to the beginning of the packet buffer * \param pktb Pointer to packet buffer */ -void __EXPORTED pktb_pull(struct pkt_buff *pktb, unsigned int len) +void pktb_pull(struct pkt_buff *pktb, unsigned int len) { pktb->data += len; pktb->len -= len; } +EXPORT_SYMBOL(pktb_pull); /** * pktb_put - add extra bytes to the tail of the packet buffer * \param pktb Pointer to packet buffer */ -void __EXPORTED pktb_put(struct pkt_buff *pktb, unsigned int len) +void pktb_put(struct pkt_buff *pktb, unsigned int len) { pktb->tail += len; pktb->len += len; } +EXPORT_SYMBOL(pktb_put); /** * pktb_trim - set new length for this packet buffer * \param pktb Pointer to packet buffer */ -void __EXPORTED pktb_trim(struct pkt_buff *pktb, unsigned int len) +void pktb_trim(struct pkt_buff *pktb, unsigned int len) { pktb->len = len; } +EXPORT_SYMBOL(pktb_trim); /** * pktb_tailroom - get room in bytes in the tail of the packet buffer * \param pktb Pointer to packet buffer */ -unsigned int __EXPORTED pktb_tailroom(struct pkt_buff *pktb) +unsigned int pktb_tailroom(struct pkt_buff *pktb) { return pktb->data_len - pktb->len; } +EXPORT_SYMBOL(pktb_tailroom); /** * pktb_mac_header - return pointer to layer 2 header (if any) * \param pktb Pointer to packet buffer */ -uint8_t __EXPORTED *pktb_mac_header(struct pkt_buff *pktb) +uint8_t *pktb_mac_header(struct pkt_buff *pktb) { return pktb->mac_header; } +EXPORT_SYMBOL(pktb_mac_header); /** * pktb_network_header - return pointer to layer 3 header * \param pktb Pointer to packet buffer */ -uint8_t __EXPORTED *pktb_network_header(struct pkt_buff *pktb) +uint8_t *pktb_network_header(struct pkt_buff *pktb) { return pktb->network_header; } +EXPORT_SYMBOL(pktb_network_header); /** * pktb_transport_header - return pointer to layer 4 header (if any) * \param pktb Pointer to packet buffer */ -uint8_t __EXPORTED *pktb_transport_header(struct pkt_buff *pktb) +uint8_t *pktb_transport_header(struct pkt_buff *pktb) { return pktb->transport_header; } +EXPORT_SYMBOL(pktb_transport_header); static int pktb_expand_tail(struct pkt_buff *pkt, int extra) { @@ -212,7 +224,7 @@ static int enlarge_pkt(struct pkt_buff *pkt, unsigned int extra) return 1; } -int __EXPORTED pktb_mangle(struct pkt_buff *pkt, +int pktb_mangle(struct pkt_buff *pkt, unsigned int dataoff, unsigned int match_offset, unsigned int match_len, @@ -246,15 +258,17 @@ int __EXPORTED pktb_mangle(struct pkt_buff *pkt, pkt->mangled = true; return 1; } +EXPORT_SYMBOL(pktb_mangle); /** * pktb_mangled - return true if packet has been mangled * \param pktb Pointer to packet buffer */ -bool __EXPORTED pktb_mangled(const struct pkt_buff *pkt) +bool pktb_mangled(const struct pkt_buff *pkt) { return pkt->mangled; } +EXPORT_SYMBOL(pktb_mangled); /** * @} diff --git a/src/extra/tcp.c b/src/extra/tcp.c index 8038ce5..d1cd79d 100644 --- a/src/extra/tcp.c +++ b/src/extra/tcp.c @@ -40,7 +40,7 @@ * \note You have to call nfq_ip_set_transport_header or * nfq_ip6_set_transport_header first to access the TCP header. */ -struct tcphdr __EXPORTED *nfq_tcp_get_hdr(struct pkt_buff *pktb) +struct tcphdr *nfq_tcp_get_hdr(struct pkt_buff *pktb) { if (pktb->transport_header == NULL) return NULL; @@ -51,13 +51,14 @@ struct tcphdr __EXPORTED *nfq_tcp_get_hdr(struct pkt_buff *pktb) return (struct tcphdr *)pktb->transport_header; } +EXPORT_SYMBOL(nfq_tcp_get_hdr); /** * nfq_tcp_get_payload - get the TCP packet payload * \param tcph: pointer to the TCP header * \param pktb: pointer to user-space network packet buffer */ -void __EXPORTED *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb) +void *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb) { unsigned int len = tcph->doff * 4; @@ -71,43 +72,47 @@ void __EXPORTED *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb) return pktb->transport_header + len; } +EXPORT_SYMBOL(nfq_tcp_get_payload); /** * nfq_tcp_get_payload_len - get the tcp packet payload * \param tcph: pointer to the TCP header * \param pktb: pointer to user-space network packet buffer */ -unsigned int __EXPORTED +unsigned int nfq_tcp_get_payload_len(struct tcphdr *tcph, struct pkt_buff *pktb) { return pktb->tail - pktb->transport_header; } +EXPORT_SYMBOL(nfq_tcp_get_payload_len); /** * nfq_tcp_set_checksum_ipv4 - computes IPv4/TCP packet checksum * \param tcph: pointer to the TCP header * \param iph: pointer to the IPv4 header */ -void __EXPORTED +void nfq_tcp_compute_checksum_ipv4(struct tcphdr *tcph, struct iphdr *iph) { /* checksum field in header needs to be zero for calculation. */ tcph->check = 0; tcph->check = nfq_checksum_tcpudp_ipv4(iph); } +EXPORT_SYMBOL(nfq_tcp_compute_checksum_ipv4); /** * nfq_tcp_set_checksum_ipv6 - computes IPv6/TCP packet checksum * \param tcph: pointer to the TCP header * \param iph: pointer to the IPv6 header */ -void __EXPORTED +void nfq_tcp_compute_checksum_ipv6(struct tcphdr *tcph, struct ip6_hdr *ip6h) { /* checksum field in header needs to be zero for calculation. */ tcph->check = 0; tcph->check = nfq_checksum_tcpudp_ipv6(ip6h, tcph); } +EXPORT_SYMBOL(nfq_tcp_compute_checksum_ipv6); /* * The union cast uses a gcc extension to avoid aliasing problems @@ -129,7 +134,7 @@ union tcp_word_hdr { * \param tcp: pointer to a valid tcp header. * */ -int __EXPORTED nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcph) +int nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcph) { int ret, len = 0; @@ -172,6 +177,7 @@ int __EXPORTED nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcp return ret; } +EXPORT_SYMBOL(nfq_tcp_snprintf); /** * nfq_tcp_mangle_ipv4 - mangle TCP/IPv4 packet buffer @@ -183,7 +189,7 @@ int __EXPORTED nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcp * * \note This function recalculates the IPv4 and TCP checksums for you. */ -int __EXPORTED +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) @@ -202,6 +208,7 @@ nfq_tcp_mangle_ipv4(struct pkt_buff *pkt, return 1; } +EXPORT_SYMBOL(nfq_tcp_mangle_ipv4); /** * @} diff --git a/src/extra/udp.c b/src/extra/udp.c index 99c8faa..8c44a66 100644 --- a/src/extra/udp.c +++ b/src/extra/udp.c @@ -37,7 +37,7 @@ * This function returns NULL if invalid UDP header is found. On success, * it returns the UDP header. */ -struct udphdr __EXPORTED *nfq_udp_get_hdr(struct pkt_buff *pktb) +struct udphdr *nfq_udp_get_hdr(struct pkt_buff *pktb) { if (pktb->transport_header == NULL) return NULL; @@ -48,13 +48,14 @@ struct udphdr __EXPORTED *nfq_udp_get_hdr(struct pkt_buff *pktb) return (struct udphdr *)pktb->transport_header; } +EXPORT_SYMBOL(nfq_udp_get_hdr); /** * nfq_udp_get_payload - get the UDP packet payload. * \param udph: the pointer to the UDP header. * \param tail: pointer to the tail of the packet */ -void __EXPORTED *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb) +void *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb) { uint16_t len = ntohs(udph->len); @@ -68,15 +69,17 @@ void __EXPORTED *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb) return pktb->transport_header + sizeof(struct udphdr); } +EXPORT_SYMBOL(nfq_udp_get_payload); /** * nfq_udp_get_payload_len - get the udp packet payload. * \param udp: the pointer to the udp header. */ -unsigned int __EXPORTED nfq_udp_get_payload_len(struct udphdr *udph, struct pkt_buff *pktb) +unsigned int nfq_udp_get_payload_len(struct udphdr *udph, struct pkt_buff *pktb) { return pktb->tail - pktb->transport_header; } +EXPORT_SYMBOL(nfq_udp_get_payload_len); /** * nfq_udp_set_checksum_ipv4 - computes a IPv4/TCP packet's segment @@ -88,13 +91,14 @@ unsigned int __EXPORTED nfq_udp_get_payload_len(struct udphdr *udph, struct pkt_ * \see nfq_pkt_compute_ip_checksum * \see nfq_pkt_compute_udp_checksum */ -void __EXPORTED +void nfq_udp_compute_checksum_ipv4(struct udphdr *udph, struct iphdr *iph) { /* checksum field in header needs to be zero for calculation. */ udph->check = 0; udph->check = nfq_checksum_tcpudp_ipv4(iph); } +EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv4); /** * nfq_udp_set_checksum_ipv6 - computes a IPv6/TCP packet's segment @@ -106,13 +110,14 @@ nfq_udp_compute_checksum_ipv4(struct udphdr *udph, struct iphdr *iph) * \see nfq_pkt_compute_ip_checksum * \see nfq_pkt_compute_udp_checksum */ -void __EXPORTED +void nfq_udp_compute_checksum_ipv6(struct udphdr *udph, struct ip6_hdr *ip6h) { /* checksum field in header needs to be zero for calculation. */ udph->check = 0; udph->check = nfq_checksum_tcpudp_ipv6(ip6h, udph); } +EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv6); /** * nfq_tcp_mangle_ipv4 - mangle TCP/IPv4 packet buffer @@ -124,7 +129,7 @@ nfq_udp_compute_checksum_ipv6(struct udphdr *udph, struct ip6_hdr *ip6h) * * \note This function recalculates the IPv4 and TCP checksums for you. */ -int __EXPORTED +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) @@ -143,6 +148,7 @@ nfq_udp_mangle_ipv4(struct pkt_buff *pkt, return 1; } +EXPORT_SYMBOL(nfq_udp_mangle_ipv4); /** * nfq_pkt_snprintf_udp_hdr - print udp header into one buffer in a humnan @@ -152,11 +158,12 @@ nfq_udp_mangle_ipv4(struct pkt_buff *pkt, * \param udp: pointer to a valid udp header. * */ -int __EXPORTED nfq_udp_snprintf(char *buf, size_t size, const struct udphdr *udph) +int nfq_udp_snprintf(char *buf, size_t size, const struct udphdr *udph) { return snprintf(buf, size, "SPT=%u DPT=%u ", htons(udph->source), htons(udph->dest)); } +EXPORT_SYMBOL(nfq_udp_snprintf); /** * @} -- cgit v1.2.3