Subversion Repositories vnag

Rev

Rev 57 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 57 Rev 76
Line 1... Line 1...
1
<?php /* <ViaThinkSoftSignature>
1
<?php /* <ViaThinkSoftSignature>
2
tCxWODVQjpp/mnpKKNqXZG1LyUti7FjIhQIkV0I7YHQb5pKovjP1jwQMLMrtdKt8j
2
KLQMkPW4o7zx674hFhk10B/LYxV/kdtFQre2WriSVPxQi/olKlHbxrJorvH9dIWfc
3
fQEvKt1KGkeUcZfnQ1nU/7rXZ62zVgioXw35IodxQahtohyXErvCCAQ2e4Kh5UKMD
3
tyDGq8bXKHpHGne0KXEfL2/VqgFqZfgKIBtt+RptLxMZ7JtJmhn32YBC3yYMJSanD
4
R5sC13rlgK2EGHwLJbLt6yQL2jc6sDuV3QyT/ggNTsGtOjSsQXHCSu0XywMEabcO0
4
PHlvnyzv+9jj6De5gjfeVjJEpDrz4Vji3s3unZG5sRuF1WCtMW+f5OpxC+IzfLgDZ
5
ESELIgGC9w4T7nPbXFKx8c49j1ZFfJZeqFVnSpVXxj59Qpn1WS07fRndrC3hzFlX7
5
lGbrhXGxObTb8/ho0KkcCBYg8v1A5emxWhNxbnvLCHwIwTzxbFcop9u88hlJGoMec
6
ds3q9Db/k74qPhzmvx9dZFFXLLhnP0l7GLVkmSBLiyO/wl7WBjIklL+ZTfFiyLMqb
6
j5BJ98cyg16WYVnie67NQ+MIZqUHILN6TLG08PetoGuYEIwfjtRr5a2Vc8lFztcpF
7
B14YZfULwH2z/Y226IrcTt+fiz3muuNjLeIirfhlvv54pTn3a/8C0yp0qNGaINghX
7
OfCJlyQL9Zg+yhfF3K/t3ZEIxoRmxMVxPceI7FGff1Rpr2Fj/wQtiuO0s/9S/IyRv
8
LlWUxm7Jw0O5vLl991LHstIqZEr6uacFNF3pCyrHRTBuvUpBs1Wa+xLNQdRBfj9hd
8
3S0Z64y3BOlAamSwiT00Vu0m9fZ6tS05cEoxKmiVBbuDlZoa+KMfxvl9bzWLr0E9T
9
7gJhVpYB1bJXFFx5XVAHmCGehPvQb36r2dnX2p9pD7qC4gmEZJgsYSomsc9STN064
9
DB/Ib90JoP9+/5Vw62g1PY2SSg8SikdvLPUFKfBa/etyZiwOaJ8TKUz0coFIS4bOA
10
dl5CKg5lDW8ZKew7D1rNKN47eoms92IWvHxkkgWYHGWCOKlZV2Ia5HtJYHsWjSz59
10
umUITN1vmZoVB5DHYa+eKZIJ+YY6Nsp4L675QdHxSKi2XdEi+Vrlq3ndt14mIs1Ai
11
pEaJ8+LLA9hL9cRHQ/iMp9d6roihJrjPYm8dkvBHntSTSoX50XFUHiOsgANnauOf+
11
f1tctDt4+YrPo/0JuATApm6201jaL45sEaDlNi2/6Km1v2m1im+lUY6VrDlMzyV9W
12
MuFhVFgdYyxPtTqcEhj9+cbP0G4C1CUgRZz9wSNc6n9qEOLYp4QbeD13wGic81BJo
12
LSLqlKAKMdnOPkVcHkYtD3DS92+bkS46dMuZtFdG3Q0Ia1eyb30QO35KQqFo++H/c
13
tGI0p/eDhIewo4z4vPvDmquVisdvdZ/vIVXQcN9so9AwANqmaJaqhGyEFfh97uowD
13
3Yjx4GXUo9MJHgIoh0JyBCyaDtlo3PposuG3soS2c+37q27CtDfx8zLWvTQeqI69e
14
S4SHOLcx195V42G5yo2x+nvkcDS0zewT832VG+mc96lrr0sWGNKndO42gtR0X54Q/
14
8rPyZ8HMatXF3750QNCcODVD3mvTJJuXdJaiLr6IGgWaSinuiqJZaMXSSE8eMWea3
15
Ly3c8MgEK8mu11J+Yz7R0G/OkL2nPEjPSdKP/2lM7t8zyLevIAI8O4vMAeSu3iChQ
15
/69ViMld2tkEuBeZAE2Cay+fHFMK6+RSeCOGO1xUTBlBDFHbRJlXAl81EVfCuBzqu
16
DAzvDB4ZL5FhhQkujATeEKj+zdz1AvY9AgLSLB/20fYnb0B+dEf4STeGOojsQ9Y62
16
5o/a3Y+CgARGsmIjMNutFlYgdOFSZKKIRxUuGBCJqQ6H0xKqtsrRJUAmFpMop2HCh
17
+LwkLd4Qm9etkXElZMsP9lY9C3pTzDb7HBGvRgqgI3B5BOXV1SuBOEsdHKO2q+eQK
17
+P5WD7iIUgP9bgoI7gMJqTlCOqqCT/upxUkx9pRDEGcy59JLn+3Yb9gV0ffG5OQH7
18
2oB9f6ILFjiY927T7E8qFjAEpwLyKs6NgEvmhcIJzpWl8MdW/N68BN18h3DErrj6F
18
waSmvKz3vIyVHowCxeU9ZZju2ou5rMpip6Q5gjNO0tDpagH7Sj8oeYcRuk2KJOZ9m
19
FNOAQmncJioW66h5vkBukmw/Gxwmq4LhKyBrFH0GsJ4kJ46jtsVqQgWyClTODlcyl
19
KSkThtscqVbjZLS4UYUpvioA/WQ4ad+k7LZOTs4LfDPXDsu5e1lKaO8j3dBWgr+Th
20
KNlxvUVaqneVyEQJ57+QXrfZx0p3cOT8UiZD6TsngfXa4vu82ZDQi7p25LMwd0xfn
20
YZnRIravq6mNmfjmcJD/S9BpY4fqsjZRpT3Rf0GGkZX5dtPxKlzILu3A/5PlCJTNz
21
ToWOh0AdSXLS9QtL1dK3X7dJrwLSeFuVFTIGdvn5WuOmgon4QndNpYBxE9L2BJUL7
21
ja5LZxO0P5sJBnx2YLmaNYxWTJILhR0VtPJejYazXjYhYX5iMX4f+pvALwm+gcBIV
22
/kGYskQXghIAE2vr7oQGNSeEPGb7WAKb4+LMd6jpvVMDIK26tnL+eXz2TURMyE037
22
U9sNdc9z0cPxjiIWwPEXSRZZx3BwGc+YYDeQio9HxgvEOlBuCaU8TjPFPcfQFYIsy
23
A==
23
g==
24
</ViaThinkSoftSignature> */ ?>
24
</ViaThinkSoftSignature> */ ?>
25
<?php
25
<?php
26
 
26
 
27
/*
27
/*
28
 * VNag - Nagios Framework for PHP
28
 * VNag - Nagios Framework for PHP
29
 * Developed by Daniel Marschall, ViaThinkSoft <www.viathinksoft.com>
29
 * Developed by Daniel Marschall, ViaThinkSoft <www.viathinksoft.com>
30
 * Licensed under the terms of the Apache 2.0 license
30
 * Licensed under the terms of the Apache 2.0 license
31
 *
31
 *
32
 * Revision 2022-09-12
32
 * Revision 2023-10-13
33
 */
33
 */
34
 
34
 
35
declare(ticks=1);
35
declare(ticks=1);
36
 
36
 
37
class MediaWikiVersionCheck extends VNag {
37
class MediaWikiVersionCheck extends VNag {
Line 51... Line 51...
51
 
51
 
52
                // Individual (non-standard) arguments:
52
                // Individual (non-standard) arguments:
53
                $this->addExpectedArgument($this->argSystemDir = new VNagArgument('d', 'directory', VNagArgument::VALUE_REQUIRED, 'mediawikiPath', 'The local directory where MediaWiki installation is located.'));
53
                $this->addExpectedArgument($this->argSystemDir = new VNagArgument('d', 'directory', VNagArgument::VALUE_REQUIRED, 'mediawikiPath', 'The local directory where MediaWiki installation is located.'));
54
        }
54
        }
55
 
55
 
56
        protected function get_mediawiki_version($path) {
56
        protected function get_local_version($path) {
57
                $path = realpath($path) === false ? $path : realpath($path);
57
                $path = realpath($path) === false ? $path : realpath($path);
58
 
58
 
59
                $c = @file_get_contents("$path/includes/Defines.php");
59
                $c = @file_get_contents("$path/includes/Defines.php");
60
                if (!preg_match('@define\\( \'MW_VERSION\', \'([0-9\\.]+)\' \\);@is', $c, $m)) {
60
                if (!preg_match('@define\\( \'MW_VERSION\', \'([0-9\\.]+)\' \\);@is', $c, $m)) {
61
                        $c = @file_get_contents("$path/includes/DefaultSettings.php");
61
                        $c = @file_get_contents("$path/includes/DefaultSettings.php");
Line 66... Line 66...
66
 
66
 
67
                return $m[1];
67
                return $m[1];
68
        }
68
        }
69
 
69
 
70
        protected function get_latest_version() {
70
        protected function get_latest_version() {
71
                $cont = @file_get_contents('https://www.mediawiki.org/wiki/Download/en');
71
                $cont = $this->url_get_contents('https://www.mediawiki.org/wiki/Download/en');
72
                if (!$cont) {
72
                if ($cont === false) {
73
 
73
 
74
                        // The server replies to some older versions of PHP: 426 Upgrade Required
74
                        // The server replies to some older versions of PHP: 426 Upgrade Required
75
                        $ch = curl_init();
75
                        $ch = curl_init();
76
                        curl_setopt($ch, CURLOPT_URL, "https://www.mediawiki.org/wiki/Download/en");
76
                        curl_setopt($ch, CURLOPT_URL, "https://www.mediawiki.org/wiki/Download/en");
77
                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
77
                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
Line 99... Line 99...
99
 
99
 
100
                if (!is_dir($system_dir)) {
100
                if (!is_dir($system_dir)) {
101
                        throw new Exception('Directory "'.$system_dir.'" not found.');
101
                        throw new Exception('Directory "'.$system_dir.'" not found.');
102
                }
102
                }
103
 
103
 
104
                $version = $this->get_mediawiki_version($system_dir);
104
                $version = $this->get_local_version($system_dir);
105
 
105
 
106
                $latest_version = $this->get_latest_version();
106
                $latest_version = $this->get_latest_version();
107
 
107
 
108
                if (version_compare($version,$latest_version) >= 0) {
108
                if (version_compare($version,$latest_version) >= 0) {
109
                        $this->setStatus(VNag::STATUS_OK);
109
                        $this->setStatus(VNag::STATUS_OK);