File tree Expand file tree Collapse file tree 2 files changed +15
-5
lines changed
Expand file tree Collapse file tree 2 files changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -240,4 +240,18 @@ namespace pcpp
240240 // / Unknown / null layer
241241 OsiModelLayerUnknown = 8
242242 };
243+
244+ namespace internal
245+ {
246+ // / @brief Check if a protocol family contains a specific protocol
247+ // / @param family A protocol type family value.
248+ // / @param protocol A protocol type value to check against the family.
249+ // / @return True if the protocol is part of the family, false otherwise.
250+ constexpr bool protoFamilyContainsProtocol (ProtocolTypeFamily family, ProtocolType protocol)
251+ {
252+ auto const protocolToFamily = static_cast <ProtocolTypeFamily>(protocol);
253+ return (protocolToFamily == (family & 0xff ) || protocolToFamily << 8 == (family & 0xff00 ) ||
254+ protocolToFamily << 16 == (family & 0xff0000 ) || protocolToFamily << 24 == (family & 0xff000000 ));
255+ }
256+ } // namespace internal
243257} // namespace pcpp
Original file line number Diff line number Diff line change @@ -45,11 +45,7 @@ namespace pcpp
4545
4646 bool Layer::isMemberOfProtocolFamily (ProtocolTypeFamily protocolTypeFamily) const
4747 {
48- auto protocolToFamily = static_cast <ProtocolTypeFamily>(m_Protocol);
49- return (m_Protocol != UnknownProtocol && (protocolToFamily == (protocolTypeFamily & 0xff ) ||
50- protocolToFamily << 8 == (protocolTypeFamily & 0xff00 ) ||
51- protocolToFamily << 16 == (protocolTypeFamily & 0xff0000 ) ||
52- protocolToFamily << 24 == (protocolTypeFamily & 0xff000000 )));
48+ return m_Protocol != UnknownProtocol && internal::protoFamilyContainsProtocol (protocolTypeFamily, m_Protocol);
5349 }
5450
5551 void Layer::copyData (uint8_t * toArr) const
You can’t perform that action at this time.
0 commit comments