diff --git a/contrib/updatecheck/index.php b/contrib/updatecheck/index.php index 3be24e92..9a0105a6 100644 --- a/contrib/updatecheck/index.php +++ b/contrib/updatecheck/index.php @@ -1,56 +1,11 @@ 1) { - $versions[$val[0]] = explode(',', $val[1]); - } - }; - array_walk($v, $func); - } header('Content-Type: text/plain'); - $ret = 'unknown'; $r = @json_decode($r, true); - if (!$r || !isset($r['v']) || !isset($r['r'])) { - $ret = 'invalid request'; - } else { - if (isset($versions['ebusd'])) { - if ($r['v']==$versions['ebusd'][0] && $r['r']==$versions['ebusd'][1]) { - $ret = 'OK'; - } else if ($r['v']==$versions['ebusd'][0]) { - $ret = 'revision '.$versions['ebusd'][1].' available'; - } else { - $ret = 'version '.$versions['ebusd'][0].' available'; - } - } - $configs = ''; - $neweravail = 0; - $func = function($val, $k) { - global $versions, $configs, $neweravail; - $v = $versions[$k]; - if ($v) { - $newer = $v[2]>$val['t']; - if ($newer || $v[0]!=$val['h'] || $v[1]!=$val['s']) { - if ($newer) $neweravail++; - $configs .= ', '.$k.': '.($newer?'newer':'different').' version available'; - } - } - }; - array_walk($r['l'], $func); - if (strlen($configs)>100) { - $ret .= ($neweravail?$neweravail.', newer ':', different').' configuration files available'; - } else { - $ret .= $configs; - } - } - echo $ret; + echo checkUpdate(@$r['v'], @$r['r'], @$r['l']); exit; } header('HTTP/1.1 404 Not Found'); diff --git a/contrib/updatecheck/prepend.inc b/contrib/updatecheck/prepend.inc new file mode 100644 index 00000000..58dfc4c4 --- /dev/null +++ b/contrib/updatecheck/prepend.inc @@ -0,0 +1,47 @@ +1) { + $versions[$val[0]] = explode(',', $val[1]); + } + }; + array_walk($v, $func); +} +function checkUpdate($ebusdVersion, $ebusdRelease, $loadedFiles) { + if (!$ebusdVersion || !$loadedFiles) { + return 'invalid request'; + } + global $versions; + $ret = 'unknown'; + if ($ebusdVersion==$versions['ebusd'][0] && $ebusdRelease==$versions['ebusd'][1]) { + $ret = 'OK'; + } else if ($ebusdVersion==$versions['ebusd'][0]) { + $ret = 'revision '.$versions['ebusd'][1].' available'; + } else { + $ret = 'version '.$versions['ebusd'][0].' available'; + } + $newerAvailable = 0; + $configs = ''; + foreach ($loadedFiles as $k => $val) { + $v = $versions[$k]; + if ($v) { + $newer = $v[2]>$val['t']; + if ($newer || $v[0]!=$val['h'] || $v[1]!=$val['s']) { + if ($newer) { + $newerAvailable++; + } + $configs .= ', '.$k.': '.($newer?'newer':'different').' version available'; + } + } + } + if (strlen($configs)>100) { + return $ret.($newerAvailable?', '.$newerAvailable.' newer':', different').' configuration files available'; + } + return $ret.$configs; +} +?>