From: Steve Chew (stechew) Date: Fri, 4 Jun 2021 04:23:06 +0000 (+0000) Subject: Merge pull request #2891 in SNORT/snort3 from ~RAMANKS/snort3:ifnat to master X-Git-Tag: 3.1.6.0~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=46061c85bee0decd8e0bef48e2cb6c1e0349cb55;p=thirdparty%2Fsnort3.git Merge pull request #2891 in SNORT/snort3 from ~RAMANKS/snort3:ifnat to master Squashed commit of the following: commit dc99b72290f72631d5bf16b2a4ea4096e8386fd4 Author: Raman Krishnan Date: Mon May 17 14:20:37 2021 -0700 codecs: support inner flor NAT --- diff --git a/cmake/FindDAQ.cmake b/cmake/FindDAQ.cmake index f9b6f3aa7..b92f00030 100644 --- a/cmake/FindDAQ.cmake +++ b/cmake/FindDAQ.cmake @@ -16,7 +16,7 @@ This module defines: #]=======================================================================] find_package(PkgConfig) -pkg_check_modules(PC_DAQ libdaq>=3.0.2) +pkg_check_modules(PC_DAQ libdaq>=3.0.4) # Use DAQ_INCLUDE_DIR_HINT and DAQ_LIBRARIES_DIR_HINT from configure_cmake.sh as primary hints # and then package config information after that. diff --git a/src/codecs/ip/cd_ipv4.cc b/src/codecs/ip/cd_ipv4.cc index b77bf0caf..17cd41997 100644 --- a/src/codecs/ip/cd_ipv4.cc +++ b/src/codecs/ip/cd_ipv4.cc @@ -243,7 +243,7 @@ bool Ipv4Codec::decode(const RawData& raw, CodecData& codec, DecodeData& snort) snort.ip_api.set(iph); // update to real IP when needed const DAQ_NAPTInfo_t* napti = (const DAQ_NAPTInfo_t*) daq_msg_get_meta(raw.daq_msg, DAQ_PKT_META_NAPT_INFO); - if (napti && codec.ip_layer_cnt == 1) + if (napti && codec.ip_layer_cnt == napti->ip_layer) { SfIp real_src; SfIp real_dst; diff --git a/src/codecs/ip/cd_ipv6.cc b/src/codecs/ip/cd_ipv6.cc index 23bf5c6c6..617939faa 100644 --- a/src/codecs/ip/cd_ipv6.cc +++ b/src/codecs/ip/cd_ipv6.cc @@ -204,7 +204,7 @@ bool Ipv6Codec::decode(const RawData& raw, CodecData& codec, DecodeData& snort) snort.ip_api.set(ip6h); // update to real IP when needed const DAQ_NAPTInfo_t* napti = (const DAQ_NAPTInfo_t*) daq_msg_get_meta(raw.daq_msg, DAQ_PKT_META_NAPT_INFO); - if (napti && codec.ip_layer_cnt == 1) + if (napti && codec.ip_layer_cnt == napti->ip_layer) { SfIp real_src; SfIp real_dst; diff --git a/src/codecs/ip/cd_tcp.cc b/src/codecs/ip/cd_tcp.cc index dff5981d1..6a38242dc 100644 --- a/src/codecs/ip/cd_tcp.cc +++ b/src/codecs/ip/cd_tcp.cc @@ -272,7 +272,7 @@ bool TcpCodec::decode(const RawData& raw, CodecData& codec, DecodeData& snort) snort.tcph = tcph; const DAQ_NAPTInfo_t* napti = (const DAQ_NAPTInfo_t*) daq_msg_get_meta(raw.daq_msg, DAQ_PKT_META_NAPT_INFO); - if (napti && codec.ip_layer_cnt == 1) + if (napti && codec.ip_layer_cnt == napti->ip_layer) { snort.sp = ntohs(napti->src_port); snort.dp = ntohs(napti->dst_port); diff --git a/src/codecs/ip/cd_udp.cc b/src/codecs/ip/cd_udp.cc index 9d8a3822e..f61133ab1 100644 --- a/src/codecs/ip/cd_udp.cc +++ b/src/codecs/ip/cd_udp.cc @@ -392,7 +392,7 @@ bool UdpCodec::decode(const RawData& raw, CodecData& codec, DecodeData& snort) uint16_t dst_port; const DAQ_NAPTInfo_t* napti = (const DAQ_NAPTInfo_t*) daq_msg_get_meta(raw.daq_msg, DAQ_PKT_META_NAPT_INFO); - if (napti && codec.ip_layer_cnt == 1) + if (napti && codec.ip_layer_cnt == napti->ip_layer) { src_port = ntohs(napti->src_port); dst_port = ntohs(napti->dst_port);