Skip to content

Commit 54b3c2f

Browse files
authored
Extracted protocol to protocol family check to standalone function. (#1883)
1 parent 71d2307 commit 54b3c2f

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

Packet++/header/ProtocolType.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff 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

Packet++/src/Layer.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)