From fc4aefb978d8bb0aba588ef2ae2734619ff75ee5 Mon Sep 17 00:00:00 2001
From: Kate Arzamastseva <pshns@ukr.net>
Date: Sat, 4 Jun 2011 19:16:24 +0300
Subject: [PATCH] fetch.php with rev parameter

---
 lib/exe/fetch.php | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/lib/exe/fetch.php b/lib/exe/fetch.php
index 3ad4f1937..143d40f22 100644
--- a/lib/exe/fetch.php
+++ b/lib/exe/fetch.php
@@ -20,6 +20,10 @@
   $CACHE  = calc_cache($_REQUEST['cache']);
   $WIDTH  = (int) $_REQUEST['w'];
   $HEIGHT = (int) $_REQUEST['h'];
+  $REV   = (int) @$_REQUEST['rev'];
+  //sanitize revision
+  $REV = preg_replace('/[^0-9]/','',$REV);
+
   list($EXT,$MIME,$DL) = mimetype($MEDIA,false);
   if($EXT === false){
     $EXT  = 'unknown';
@@ -28,7 +32,7 @@
   }
 
   // check for permissions, preconditions and cache external files
-  list($STATUS, $STATUSMESSAGE) = checkFileStatus($MEDIA, $FILE);
+  list($STATUS, $STATUSMESSAGE) = checkFileStatus($MEDIA, $FILE, $REV);
 
   // prepare data for plugin events
   $data = array('media'           => $MEDIA,
@@ -147,7 +151,7 @@ function sendFile($file,$mime,$dl,$cache){
  * @param $file reference to the file variable
  * @returns array(STATUS, STATUSMESSAGE)
  */
-function checkFileStatus(&$media, &$file) {
+function checkFileStatus(&$media, &$file, $rev='') {
   global $MIME, $EXT, $CACHE;
 
   //media to local file
@@ -172,7 +176,7 @@ function checkFileStatus(&$media, &$file) {
     if(auth_quickaclcheck(getNS($media).':X') < AUTH_READ){
       return array( 403, 'Forbidden' );
     }
-    $file  = mediaFN($media);
+    $file  = mediaFN($media, $rev);
   }
 
   //check file existance
-- 
GitLab