From 682cc59eaf8051fdc4ebd07356a395e6ba1139b8 Mon Sep 17 00:00:00 2001 From: DomySh Date: Fri, 15 Jul 2022 10:17:16 +0200 Subject: [PATCH] Minor fixes --- backend/nfqueue/nfqueue | Bin 0 -> 43224 bytes backend/nfqueue/nfqueue.cpp | 52 ++++++++++++++++++++---------------- 2 files changed, 29 insertions(+), 23 deletions(-) create mode 100755 backend/nfqueue/nfqueue diff --git a/backend/nfqueue/nfqueue b/backend/nfqueue/nfqueue new file mode 100755 index 0000000000000000000000000000000000000000..162f2a3056fbd5be6a375f9eb5d8ccc3aac68435 GIT binary patch literal 43224 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 MncxOn0$bGheres_id)); - #define PKT_OPS \ - PDU *transport_layer = find_transport_layer(&packet); \ - if(transport_layer->inner_pdu() == nullptr){ \ - nfq_nlmsg_verdict_put(nlh_verdict, ntohl(ph->packet_id), NF_ACCEPT );\ - }else{\ - int size = transport_layer->inner_pdu()->size();\ - if(callback_func((const uint8_t*)payload+plen - size, size)){\ - nfq_nlmsg_verdict_put(nlh_verdict, ntohl(ph->packet_id), NF_ACCEPT );\ - } else{\ - if (transport_layer->pdu_type() == PDU::TCP){\ - ((TCP *)transport_layer)->release_inner_pdu();\ - ((TCP *)transport_layer)->set_flag(TCP::FIN,1);\ - ((TCP *)transport_layer)->set_flag(TCP::ACK,1);\ - ((TCP *)transport_layer)->set_flag(TCP::SYN,0);\ - nfq_nlmsg_verdict_put_pkt(nlh_verdict, packet.serialize().data(), packet.size());\ - nfq_nlmsg_verdict_put(nlh_verdict, ntohl(ph->packet_id), NF_ACCEPT ); \ - }else{\ - nfq_nlmsg_verdict_put(nlh_verdict, ntohl(ph->packet_id), NF_DROP );\ - }\ - }\ - }\ + /* + This define allow to avoid to allocate new heap memory for each packet. + The code under this comment is replicated for ipv6 and ip + Better solutions are welcome. :) + */ + #define PKT_HANDLE \ + PDU *transport_layer = find_transport_layer(&packet); \ + if(transport_layer->inner_pdu() == nullptr || transport_layer == nullptr){ \ + nfq_nlmsg_verdict_put(nlh_verdict, ntohl(ph->packet_id), NF_ACCEPT ); \ + }else{ \ + int size = transport_layer->inner_pdu()->size(); \ + if(callback_func((const uint8_t*)payload+plen - size, size)){ \ + nfq_nlmsg_verdict_put(nlh_verdict, ntohl(ph->packet_id), NF_ACCEPT ); \ + } else{ \ + if (transport_layer->pdu_type() == PDU::TCP){ \ + ((TCP *)transport_layer)->release_inner_pdu(); \ + ((TCP *)transport_layer)->set_flag(TCP::FIN,1); \ + ((TCP *)transport_layer)->set_flag(TCP::ACK,1); \ + ((TCP *)transport_layer)->set_flag(TCP::SYN,0); \ + nfq_nlmsg_verdict_put_pkt(nlh_verdict, packet.serialize().data(), packet.size()); \ + nfq_nlmsg_verdict_put(nlh_verdict, ntohl(ph->packet_id), NF_ACCEPT ); \ + }else{ \ + nfq_nlmsg_verdict_put(nlh_verdict, ntohl(ph->packet_id), NF_DROP ); \ + } \ + } \ + } + // Check IP protocol version if ( (((uint8_t*)payload)[0] & 0xf0) == 0x40 ){ IP packet = IP((uint8_t*)payload,plen); - PKT_OPS + PKT_HANDLE }else{ IPv6 packet = IPv6((uint8_t*)payload,plen); - PKT_OPS + PKT_HANDLE } /* example to set the connmark. First, start NFQA_CT section: */