summaryrefslogtreecommitdiff
path: root/inc/infoutils.php
diff options
context:
space:
mode:
authorAngus Gratton <gus@projectgus.com>2014-10-11 12:06:30 +1100
committerAngus Gratton <gus@projectgus.com>2014-10-11 12:26:55 +1100
commit86c04d87ee7a9a39ec8838fd53e3797f51949719 (patch)
tree12abd1e198d63caa53ef0c2709b759b2cfa06c15 /inc/infoutils.php
parentb2e6a1f4afcd548dbd5bc6af110940b08b9f1a88 (diff)
downloadrpg-86c04d87ee7a9a39ec8838fd53e3797f51949719.tar.gz
rpg-86c04d87ee7a9a39ec8838fd53e3797f51949719.tar.bz2
Fix for update messages never completely going away
The existing logic for messages.txt requires some valid update response (ending in %) to the messages update check before it clears the current messages. However update.dokuwiki.org appears to return an empty string response if everything is up to date. (ie http://update.dokuwiki.org/check/46.1 ) As a result if there are update messages in messages.txt they don't automatically go away after updating to the current version. The only time they change is when a newer release comes out. The upgrade plugin has logic in it to force a re-download of messages.txt, but currently this just re-downloads the old update messages. This change explicitly allows for "" as a valid "no messages" indicator (distinct from false, which is the HTTP error indicator.)
Diffstat (limited to 'inc/infoutils.php')
-rw-r--r--inc/infoutils.php15
1 files changed, 8 insertions, 7 deletions
diff --git a/inc/infoutils.php b/inc/infoutils.php
index f9ba11560..e2b64d3ca 100644
--- a/inc/infoutils.php
+++ b/inc/infoutils.php
@@ -29,18 +29,19 @@ function checkUpdateMessages(){
dbglog("checkUpdateMessages(): downloading messages.txt");
$http = new DokuHTTPClient();
$http->timeout = 12;
- $data = $http->get(DOKU_MESSAGEURL.$updateVersion);
- if(substr(trim($data), -1) != '%') {
- // this doesn't look like one of our messages, maybe some WiFi login interferred
- $data = '';
- }else {
- io_saveFile($cf,$data);
+ $resp = $http->get(DOKU_MESSAGEURL.$updateVersion);
+ if(is_string($resp) && ($resp == "" || substr(trim($resp), -1) == '%')) {
+ // basic sanity check that this is either an empty string response (ie "no messages")
+ // or it looks like one of our messages, not WiFi login or other interposed response
+ io_saveFile($cf,$resp);
+ } else {
+ dbglog("checkUpdateMessages(): unexpected HTTP response received");
}
}else{
dbglog("checkUpdateMessages(): messages.txt up to date");
- $data = io_readFile($cf);
}
+ $data = io_readFile($cf);
// show messages through the usual message mechanism
$msgs = explode("\n%\n",$data);
foreach($msgs as $msg){