projects
/
shibboleth
/
cpp-opensaml.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Limit validity of non-local metadata based on cacheDuration.
[shibboleth/cpp-opensaml.git]
/
saml
/
saml2
/
metadata
/
impl
/
XMLMetadataProvider.cpp
diff --git
a/saml/saml2/metadata/impl/XMLMetadataProvider.cpp
b/saml/saml2/metadata/impl/XMLMetadataProvider.cpp
index
03deb22
..
6938bce
100644
(file)
--- a/
saml/saml2/metadata/impl/XMLMetadataProvider.cpp
+++ b/
saml/saml2/metadata/impl/XMLMetadataProvider.cpp
@@
-127,12
+127,18
@@
pair<bool,DOMElement*> XMLMetadataProvider::load()
void XMLMetadataProvider::index()
{
void XMLMetadataProvider::index()
{
+ time_t exp = SAMLTIME_MAX;
+
clearDescriptorIndex();
EntitiesDescriptor* group=dynamic_cast<EntitiesDescriptor*>(m_object);
if (group) {
clearDescriptorIndex();
EntitiesDescriptor* group=dynamic_cast<EntitiesDescriptor*>(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<EntityDescriptor*>(m_object);
return;
}
EntityDescriptor* site=dynamic_cast<EntityDescriptor*>(m_object);
- AbstractMetadataProvider::index(site, SAMLTIME_MAX);
+ if (!m_local && site->getCacheDuration())
+ exp = time_t(NULL) + site->getCacheDurationEpoch();
+ AbstractMetadataProvider::index(site, exp);
}
}