summaryrefslogtreecommitdiff
path: root/lib/exe
diff options
context:
space:
mode:
authorMichael Hamann <michael@content-space.de>2011-03-08 00:33:35 +0100
committerMichael Hamann <michael@content-space.de>2011-03-08 00:33:35 +0100
commitd8e733eea8ac79670ffc74ac685078dc4ac56c7e (patch)
treeb036d19bd256fc3a1016ef9a1697a894dfd2b5f3 /lib/exe
parentdea1115b59e771c401882590426074c08fed3a87 (diff)
parentad79cb7c93a655f864c633433e743b03685b5719 (diff)
downloadrpg-d8e733eea8ac79670ffc74ac685078dc4ac56c7e.tar.gz
rpg-d8e733eea8ac79670ffc74ac685078dc4ac56c7e.tar.bz2
Merge branch 'indexer_rewrite'
Diffstat (limited to 'lib/exe')
-rw-r--r--lib/exe/indexer.php44
-rw-r--r--lib/exe/xmlrpc.php29
2 files changed, 5 insertions, 68 deletions
diff --git a/lib/exe/indexer.php b/lib/exe/indexer.php
index 0042e92d2..95e2af05b 100644
--- a/lib/exe/indexer.php
+++ b/lib/exe/indexer.php
@@ -11,9 +11,6 @@ require_once(DOKU_INC.'inc/init.php');
session_write_close(); //close session
if(!defined('NL')) define('NL',"\n");
-// Version tag used to force rebuild on upgrade
-define('INDEXER_VERSION', 3);
-
// keep running after browser closes connection
@ignore_user_abort(true);
@@ -136,47 +133,8 @@ function runIndexer(){
if(!$ID) return false;
- // check if indexing needed
- $idxtag = metaFN($ID,'.indexed');
- if(@file_exists($idxtag)){
- if(io_readFile($idxtag) >= INDEXER_VERSION){
- $last = @filemtime($idxtag);
- if($last > @filemtime(wikiFN($ID))){
- print "runIndexer(): index for $ID up to date".NL;
- return false;
- }
- }
- }
-
- // try to aquire a lock
- $run = 0;
- $lock = $conf['lockdir'].'/_indexer.lock';
- while(!@mkdir($lock,$conf['dmode'])){
- usleep(50);
- if(is_dir($lock) && time()-@filemtime($lock) > 60*5){
- // looks like a stale lock - remove it
- if (!@rmdir($lock)) {
- print "runIndexer(): removing the stale lock failed".NL;
- return false;
- } else {
- print "runIndexer(): stale lock removed".NL;
- }
- }elseif($run++ == 1000){
- // we waited 5 seconds for that lock
- print "runIndexer(): indexer locked".NL;
- return false;
- }
- }
- if($conf['dperm']) chmod($lock, $conf['dperm']);
-
// do the work
- idx_addPage($ID);
-
- // we're finished - save and free lock
- io_saveFile(metaFN($ID,'.indexed'),INDEXER_VERSION);
- @rmdir($lock);
- print "runIndexer(): finished".NL;
- return true;
+ return idx_addPage($ID, true);
}
/**
diff --git a/lib/exe/xmlrpc.php b/lib/exe/xmlrpc.php
index 9749a2e16..108dd8fd1 100644
--- a/lib/exe/xmlrpc.php
+++ b/lib/exe/xmlrpc.php
@@ -1,7 +1,7 @@
<?php
if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../');
-// fix when '<?xml' isn't on the very first line
+// fix when '< ?xml' isn't on the very first line
if(isset($HTTP_RAW_POST_DATA)) $HTTP_RAW_POST_DATA = trim($HTTP_RAW_POST_DATA);
/**
@@ -364,9 +364,8 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer {
*/
function listPages(){
$list = array();
- $pages = array_filter(array_filter(idx_getIndex('page', ''),
- 'isVisiblePage'),
- 'page_exists');
+ $pages = idx_get_indexer()->getPages();
+ $pages = array_filter(array_filter($pages,'isVisiblePage'),'page_exists');
foreach(array_keys($pages) as $idx) {
$perm = auth_quickaclcheck($pages[$idx]);
@@ -562,27 +561,7 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer {
unlock($id);
// run the indexer if page wasn't indexed yet
- if(!@file_exists(metaFN($id, '.indexed'))) {
- // try to aquire a lock
- $lock = $conf['lockdir'].'/_indexer.lock';
- while(!@mkdir($lock,$conf['dmode'])){
- usleep(50);
- if(time()-@filemtime($lock) > 60*5){
- // looks like a stale lock - remove it
- @rmdir($lock);
- }else{
- return false;
- }
- }
- if($conf['dperm']) chmod($lock, $conf['dperm']);
-
- // do the work
- idx_addPage($id);
-
- // we're finished - save and free lock
- io_saveFile(metaFN($id,'.indexed'),INDEXER_VERSION);
- @rmdir($lock);
- }
+ idx_addPage($id);
return 0;
}