diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2007-01-11 19:06:07 +0000 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2007-01-11 19:06:07 +0000 |
commit | a58285fd06c8113c45377c655dd43cef6337e815 (patch) | |
tree | dfe31d3d12652352fe44890b4811eda0728faefb /includes/BagOStuff.php | |
parent | 20194986f6638233732ba1fc3e838f117d3cc9ea (diff) |
Aktualisierung auf MediaWiki 1.9.0
Diffstat (limited to 'includes/BagOStuff.php')
-rw-r--r-- | includes/BagOStuff.php | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/includes/BagOStuff.php b/includes/BagOStuff.php index 1dc93a2f..c720807d 100644 --- a/includes/BagOStuff.php +++ b/includes/BagOStuff.php @@ -240,6 +240,13 @@ abstract class SqlBagOStuff extends BagOStuff { } if($row=$this->_fetchobject($res)) { $this->_debug("get: retrieved data; exp time is " . $row->exptime); + if ( $row->exptime != $this->_maxdatetime() && + wfTimestamp( TS_UNIX, $row->exptime ) < time() ) + { + $this->_debug("get: key has expired, deleting"); + $this->delete($key); + return false; + } return $this->_unserialize($this->_blobdecode($row->value)); } else { $this->_debug('get: no matching rows'); @@ -253,7 +260,7 @@ abstract class SqlBagOStuff extends BagOStuff { if($exptime == 0) { $exp = $this->_maxdatetime(); } else { - if($exptime < 3600*24*30) + if($exptime < 3.16e8) # ~10 years $exptime += time(); $exp = $this->_fromunixtime($exptime); } @@ -390,7 +397,8 @@ class MediaWikiBagOStuff extends SqlBagOStuff { } function _doinsert($t, $v) { $dbw =& wfGetDB( DB_MASTER ); - return $dbw->insert($t, $v, 'MediaWikiBagOStuff::_doinsert'); + return $dbw->insert($t, $v, 'MediaWikiBagOStuff::_doinsert', + array( 'IGNORE' ) ); } function _fetchobject($result) { $dbw =& wfGetDB( DB_MASTER ); @@ -406,7 +414,11 @@ class MediaWikiBagOStuff extends SqlBagOStuff { } function _maxdatetime() { $dbw =& wfGetDB(DB_MASTER); - return $dbw->timestamp('9999-12-31 12:59:59'); + if ( time() > 0x7fffffff ) { + return $this->_fromunixtime( 1<<62 ); + } else { + return $this->_fromunixtime( 0x7fffffff ); + } } function _fromunixtime($ts) { $dbw =& wfGetDB(DB_MASTER); @@ -492,11 +504,14 @@ class TurckBagOStuff extends BagOStuff { class APCBagOStuff extends BagOStuff { function get($key) { $val = apc_fetch($key); + if ( is_string( $val ) ) { + $val = unserialize( $val ); + } return $val; } function set($key, $value, $exptime=0) { - apc_store($key, $value, $exptime); + apc_store($key, serialize($value), $exptime); return true; } |