From: cantor Date: Wed, 7 Nov 2007 18:42:23 +0000 (+0000) Subject: Convert header lookup to an algorithm call. X-Git-Tag: 2.4.1~284 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fopensaml2.git;a=commitdiff_plain;h=4961d76142f261fea7cc85ac44cf6c67c8a00c71 Convert header lookup to an algorithm call. git-svn-id: https://svn.middleware.georgetown.edu/cpp-opensaml2/trunk@336 fb386ef7-a10c-0410-8ebf-fd3f8e989ab0 --- 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(); } }