Skip to content
Snippets Groups Projects
Commit 6bbcc488 authored by Jaime Pérez's avatar Jaime Pérez
Browse files

Merge pull request #64 from mjd75/master

Moved a try / catch up one level in MetaLoader.php. Closes #63 and #64.
parents f68210e6 28718eb4
No related branches found
No related tags found
No related merge requests found
...@@ -85,7 +85,13 @@ class sspmod_metarefresh_MetaLoader { ...@@ -85,7 +85,13 @@ class sspmod_metarefresh_MetaLoader {
SimpleSAML_Logger::debug('Downloaded fresh copy'); SimpleSAML_Logger::debug('Downloaded fresh copy');
} }
$entities = $this->loadXML($data, $source); try {
$entities = $this->loadXML($data, $source);
} catch(Exception $e) {
SimpleSAML_Logger::debug('XML parser error when parsing ' . $source['src'] . ' - attempting to re-use cached metadata');
$this->addCachedMetadata($source);
return;
}
foreach($entities as $entity) { foreach($entities as $entity) {
...@@ -205,17 +211,13 @@ class sspmod_metarefresh_MetaLoader { ...@@ -205,17 +211,13 @@ class sspmod_metarefresh_MetaLoader {
*/ */
private function loadXML($data, $source) { private function loadXML($data, $source) {
$entities = array(); $entities = array();
try { $doc = new DOMDocument();
$doc = new DOMDocument(); $res = $doc->loadXML($data);
$res = $doc->loadXML($data); if($res !== TRUE) {
if($res !== TRUE) { throw new Exception('Failed to read XML from ' . $source['src']);
throw new Exception('Failed to read XML from ' . $source['src']);
}
if($doc->documentElement === NULL) throw new Exception('Opened file is not an XML document: ' . $source['src']);
$entities = SimpleSAML_Metadata_SAMLParser::parseDescriptorsElement($doc->documentElement);
} catch(Exception $e) {
SimpleSAML_Logger::warning('metarefresh: Failed to retrieve metadata. ' . $e->getMessage());
} }
if($doc->documentElement === NULL) throw new Exception('Opened file is not an XML document: ' . $source['src']);
$entities = SimpleSAML_Metadata_SAMLParser::parseDescriptorsElement($doc->documentElement);
return $entities; return $entities;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment