]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Pull request #4861: codecs: override default encode for ciscometadata codec
authorAdrian Mamolea (admamole) <admamole@cisco.com>
Tue, 19 Aug 2025 15:08:38 +0000 (15:08 +0000)
committerRayen Mohanty (ramohant) <ramohant@cisco.com>
Tue, 19 Aug 2025 15:08:38 +0000 (15:08 +0000)
Merge in SNORT/snort3 from ~ADMAMOLE/snort3:ciscometadata to master

Squashed commit of the following:

commit a695befd8ce2c65c0540107f7bb30f23abd85a92
Author: Adrian Mamolea <admamole@cisco.com>
Date:   Wed Aug 13 15:47:17 2025 -0400

    codecs: override default encode for ciscometadata codec

src/codecs/link/cd_ciscometadata.cc

index 2acca546f6b35d57a21080dba47ca05483b734a6..0f53b904efe7788eb285d9d91c188dcea7df6497 100644 (file)
@@ -87,6 +87,7 @@ public:
     void get_protocol_ids(std::vector<ProtocolId>& v) override;
     bool decode(const RawData&, CodecData&, DecodeData&) override;
     void log(TextLog* const, const uint8_t* raw_pkt, const uint16_t lyr_len) override;
+    bool encode(const uint8_t* const raw_in, const uint16_t raw_len, EncState&, Buffer&, Flow*) override;
 };
 
 constexpr uint8_t CISCO_META_VALID_HDR_VER = 1;
@@ -172,6 +173,20 @@ void CiscoMetaDataCodec::log(TextLog* const text_log, const uint8_t* raw_pkt,
             cmdh->version, cmdh->sgt_val(), ntohs(cmdh->ether_type));
 }
 
+bool CiscoMetaDataCodec::encode(const uint8_t* const raw_in, const uint16_t raw_len, EncState& enc,
+    Buffer& buf, Flow*)
+{
+    if (!buf.allocate(raw_len))
+        return false;
+
+    memcpy(buf.data(), raw_in, raw_len);
+
+    enc.next_ethertype = ProtocolId::ETHERTYPE_NOT_SET;
+    enc.next_proto = IpProtocol::PROTO_NOT_SET;
+
+    return true;
+}
+
 //-------------------------------------------------------------------------
 // api
 //-------------------------------------------------------------------------