(bug 14402) Added smaxage parameter to api.php
authorRoan Kattouw <catrope@users.mediawiki.org>
Mon, 16 Jun 2008 19:49:43 +0000 (19:49 +0000)
committerRoan Kattouw <catrope@users.mediawiki.org>
Mon, 16 Jun 2008 19:49:43 +0000 (19:49 +0000)
RELEASE-NOTES
includes/api/ApiMain.php

index e2cd03e..63d8805 100644 (file)
@@ -450,6 +450,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * (bug 14526) Unescaped SQL in list=backlinks
 * Added 'hidden' flag to list=allcategories and prop=categoryinfo output
 * Added nocreate parameter to action=edit
+* (bug 14402) Added smaxage parameter to api.php
 
 === Languages updated in 1.13 ===
 
index c8a6637..0911482 100644 (file)
@@ -154,7 +154,7 @@ class ApiMain extends ApiBase {
 
                $this->mRequest = & $request;
 
-               $this->mSquidMaxage = 0;
+               $this->mSquidMaxage = -1; // flag for executeActionWithErrorHandling()
                $this->mCommit = false;
        }
 
@@ -260,6 +260,11 @@ class ApiMain extends ApiBase {
                        $this->printResult(true);
                }
 
+               $params = $this->extractRequestParams(); 
+               if($this->mSquidMaxage == -1)
+                       # Nobody called setCacheMaxAge(), use the smaxage parameter
+                       $this->mSquidMaxage = $params['smaxage'];
+                       
                // Set the cache expiration at the last moment, as any errors may change the expiration.
                // if $this->mSquidMaxage == 0, the expiry time is set to the first second of unix epoch
                $expires = $this->mSquidMaxage == 0 ? 1 : time() + $this->mSquidMaxage;
@@ -411,6 +416,10 @@ class ApiMain extends ApiBase {
                        'maxlag'  => array (
                                ApiBase :: PARAM_TYPE => 'integer'
                        ),
+                       'smaxage' => array (
+                               ApiBase :: PARAM_TYPE => 'integer',
+                               ApiBase :: PARAM_DFLT => 0
+                       ),
                );
        }
 
@@ -422,7 +431,8 @@ class ApiMain extends ApiBase {
                        'format' => 'The format of the output',
                        'action' => 'What action you would like to perform',
                        'version' => 'When showing help, include version for each module',
-                       'maxlag' => 'Maximum lag'
+                       'maxlag' => 'Maximum lag',
+                       'smaxage' => 'Cache the result for this many seconds. Errors are never cached',
                );
        }