From a18cd3e0def57ac6d828b4a9d7aa404cd596d51d Mon Sep 17 00:00:00 2001 From: Matias Fontanini Date: Mon, 26 Nov 2012 15:38:53 -0300 Subject: [PATCH] PDU::find_pdu now has a const overload. --- include/dot11.h | 44 ++++++++++++++++++++++---------------------- include/eapol.h | 4 ++-- include/pdu.h | 12 +++++++++++- include/pdu_cacher.h | 2 +- 4 files changed, 36 insertions(+), 26 deletions(-) diff --git a/include/dot11.h b/include/dot11.h index 3f12b08..0aac165 100644 --- a/include/dot11.h +++ b/include/dot11.h @@ -423,7 +423,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag; } @@ -1437,7 +1437,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11::matches_flag(flag); } protected: @@ -1563,7 +1563,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11ManagementFrame::matches_flag(flag); } @@ -1658,7 +1658,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11ManagementFrame::matches_flag(flag); } @@ -1761,7 +1761,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11ManagementFrame::matches_flag(flag); } @@ -1879,7 +1879,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11ManagementFrame::matches_flag(flag); } @@ -1998,7 +1998,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11ManagementFrame::matches_flag(flag); } @@ -2117,7 +2117,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11ManagementFrame::matches_flag(flag); } @@ -2236,7 +2236,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11ManagementFrame::matches_flag(flag); } @@ -2326,7 +2326,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11ManagementFrame::matches_flag(flag); } @@ -2391,7 +2391,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11ManagementFrame::matches_flag(flag); } @@ -2510,7 +2510,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11ManagementFrame::matches_flag(flag); } protected: @@ -2658,7 +2658,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11::matches_flag(flag); } @@ -2756,7 +2756,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == PDU::DOT11_QOS_DATA || Dot11Data::matches_flag(flag); } private: @@ -2807,7 +2807,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == PDU::DOT11_CONTROL || Dot11::matches_flag(flag); } }; @@ -2919,7 +2919,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11Control::matches_flag(flag); } }; @@ -2973,7 +2973,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11Control::matches_flag(flag); } }; @@ -3027,7 +3027,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11Control::matches_flag(flag); } }; @@ -3081,7 +3081,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11Control::matches_flag(flag); } }; @@ -3133,7 +3133,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11Control::matches_flag(flag); } }; @@ -3238,7 +3238,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11Control::matches_flag(flag); } protected: @@ -3358,7 +3358,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == pdu_flag || Dot11Control::matches_flag(flag); } diff --git a/include/eapol.h b/include/eapol.h index 026708a..4c73652 100644 --- a/include/eapol.h +++ b/include/eapol.h @@ -324,7 +324,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == PDU::RC4EAPOL || EAPOL::matches_flag(flag); } @@ -665,7 +665,7 @@ namespace Tins { * \param flag The flag to match * \sa PDU::matches_flag */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return flag == PDU::RSNEAPOL || EAPOL::matches_flag(flag); } diff --git a/include/pdu.h b/include/pdu.h index 93835e1..6226240 100644 --- a/include/pdu.h +++ b/include/pdu.h @@ -197,6 +197,16 @@ namespace Tins { } return 0; } + + /** + * \brief Find and returns the first PDU that matches the given flag. + * + * \param flag The flag which being searched. + */ + template + const T *find_pdu(PDUType type = T::pdu_flag) const { + return const_cast(this)->find_pdu(); + } /** * \brief Clones this packet. @@ -245,7 +255,7 @@ namespace Tins { * classes' flag. * \param flag The flag to match. */ - virtual bool matches_flag(PDUType flag) { + virtual bool matches_flag(PDUType flag) const { return flag == pdu_type(); } diff --git a/include/pdu_cacher.h b/include/pdu_cacher.h index 961f3ea..459adc1 100644 --- a/include/pdu_cacher.h +++ b/include/pdu_cacher.h @@ -115,7 +115,7 @@ public: /** * Forwards the call to the cached PDU. \sa PDU::matches_flag. */ - bool matches_flag(PDUType flag) { + bool matches_flag(PDUType flag) const { return cached.matches_flag(flag); }