From f43f417f235f8cd182437d845099f8b76d743298 Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Thu, 10 Jul 2008 21:57:40 +0000 Subject: [PATCH] Limit validity of non-local metadata based on cacheDuration. --- saml/saml2/metadata/impl/XMLMetadataProvider.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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); } -- 2.1.4