From: Scott Cantor Date: Thu, 10 Jul 2008 21:57:40 +0000 (+0000) Subject: Limit validity of non-local metadata based on cacheDuration. X-Git-Tag: 2.1.0~9 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-opensaml.git;a=commitdiff_plain;h=f43f417f235f8cd182437d845099f8b76d743298 Limit validity of non-local metadata based on cacheDuration. --- diff --git a/saml/saml2/metadata/impl/XMLMetadataProvider.cpp b/saml/saml2/metadata/impl/XMLMetadataProvider.cpp index 03deb22..6938bce 100644 --- a/saml/saml2/metadata/impl/XMLMetadataProvider.cpp +++ b/saml/saml2/metadata/impl/XMLMetadataProvider.cpp @@ -127,12 +127,18 @@ pair XMLMetadataProvider::load() void XMLMetadataProvider::index() { + time_t exp = SAMLTIME_MAX; + clearDescriptorIndex(); EntitiesDescriptor* group=dynamic_cast(m_object); if (group) { - AbstractMetadataProvider::index(group, SAMLTIME_MAX); + if (!m_local && group->getCacheDuration()) + exp = time_t(NULL) + group->getCacheDurationEpoch(); + AbstractMetadataProvider::index(group, exp); return; } EntityDescriptor* site=dynamic_cast(m_object); - AbstractMetadataProvider::index(site, SAMLTIME_MAX); + if (!m_local && site->getCacheDuration()) + exp = time_t(NULL) + site->getCacheDurationEpoch(); + AbstractMetadataProvider::index(site, exp); }