From 090b2693ab8a26f99dc4284fa2de139f78664005 Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Wed, 7 Nov 2007 18:42:23 +0000 Subject: [PATCH] Convert header lookup to an algorithm call. --- saml/saml2/binding/impl/SAML2ECPDecoder.cpp | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/saml/saml2/binding/impl/SAML2ECPDecoder.cpp b/saml/saml2/binding/impl/SAML2ECPDecoder.cpp index bc6187b..e867a5a 100644 --- a/saml/saml2/binding/impl/SAML2ECPDecoder.cpp +++ b/saml/saml2/binding/impl/SAML2ECPDecoder.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include using namespace opensaml::saml2p; @@ -126,20 +127,15 @@ XMLObject* SAML2ECPDecoder::decode( // Check for RelayState header. if (env->getHeader()) { + static const XMLCh RelayState[] = UNICODE_LITERAL_10(R,e,l,a,y,S,t,a,t,e); const vector& blocks = const_cast(env->getHeader())->getUnknownXMLObjects(); - for (vector::const_iterator h = blocks.begin(); h != blocks.end(); ++h) { - static const XMLCh RelayState[] = UNICODE_LITERAL_10(R,e,l,a,y,S,t,a,t,e); - if (XMLString::equals((*h)->getElementQName().getLocalPart(), RelayState) && - XMLString::equals((*h)->getElementQName().getNamespaceURI(), samlconstants::SAML20ECP_NS)) { - const ElementProxy* ep = dynamic_cast(*h); - if (ep) { - auto_ptr_char rs(ep->getTextContent()); - if (rs.get()) { - relayState = rs.get(); - break; - } - } - } + vector::const_iterator h = + find_if(blocks.begin(), blocks.end(), hasQName(QName(samlconstants::SAML20ECP_NS, RelayState))); + const ElementProxy* ep = dynamic_cast(h != blocks.end() ? *h : NULL); + if (ep) { + auto_ptr_char rs(ep->getTextContent()); + if (rs.get()) + relayState = rs.get(); } } -- 2.1.4