From 0549800afeb7b8db389d79a9fd48feecf875ab23 Mon Sep 17 00:00:00 2001 From: steckbrief Date: Mon, 12 Dec 2016 12:58:12 +0100 Subject: Error handling improved, logging included --- src/mvncache.php | 63 +++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 44 insertions(+), 19 deletions(-) (limited to 'src/mvncache.php') diff --git a/src/mvncache.php b/src/mvncache.php index d296a4f..ef75a16 100644 --- a/src/mvncache.php +++ b/src/mvncache.php @@ -1,29 +1,54 @@ "; -if (!is_dir($localFolder)) { - mkdir($localFolder, 0770, true); -} -$srcUrl = $mvnBaseUrl.$requestedArtifact; -//echo $srcUrl."
"; -$src = fopen($srcUrl, 'r'); - -$dstPath = $baseLocalFolder.$requestedArtifact; -//echo $dstPath; -$dst = fopen($dstPath, 'w'); - -stream_copy_to_stream($src, $dst); +$tempFile = tmpfile(); +foreach ($config['mavenBaseUrls'] as $mvnBaseUrl) { + $srcUrl = $mvnBaseUrl.$requestedArtifact; + //echo $srcUrl."
"; + $src = fopen($srcUrl, 'r'); + $found = FALSE !== $src; + + if ($found) { + $filesize = @stream_copy_to_stream($src, $tempFile); + $found = 0 < $filesize; + } + if ($found) { + trigger_error("Artifact found at $srcUrl", E_USER_NOTICE); + break; + } else { + trigger_error("Artifact NOT found at $srcUrl", E_USER_WARNING); + } +} -if (is_file($dstPath)) { - chmod($dstPath, 0660); - header('Location: http://'.$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]); +if (!$found) { + trigger_error("Artifact NOT found at any source", E_USER_WARNING); + sendHttpReturnCodeAndMessage(404, 'Not found'); } else { - header('HTTP/1.0 404 Not Found'); + //echo $localFolder."
"; + if (!is_dir($localFolder)) { + mkdir($localFolder, 0770, true); + } + $dstPath = $baseLocalFolder.$requestedArtifact; + //echo $dstPath; + $dst = fopen($dstPath, 'w'); + fseek($tempFile, 0); + stream_copy_to_stream($tempFile, $dst); + if (is_file($dstPath)) { + chmod($dstPath, 0660); + header('Location: http://'.$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]); + } else { + header('HTTP/1.0 404 Not Found'); + } } ?> -- cgit v1.2.3