/trunk/framework/vnag_framework.inc.php |
---|
1,25 → 1,25 |
<?php /* <ViaThinkSoftSignature> |
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 |
Q== |
</ViaThinkSoftSignature> */ ?> |
<?php |
35,7 → 35,7 |
Developed by Daniel Marschall www.viathinksoft.com |
Licensed under the terms of the Apache 2.0 license |
Revision 2022-06-06 |
Revision 2022-12-18 |
*/ |
347,7 → 347,7 |
} |
abstract class VNag { |
/*public*/ const VNAG_VERSION = '2022-06-06'; |
/*public*/ const VNAG_VERSION = '2022-12-18'; |
// Status 0..3 for STATUSMODEL_SERVICE (the default status model): |
# The guideline states: "Higher-level errors (such as name resolution errors, socket timeouts, etc) are outside of the control of plugins and should generally NOT be reported as UNKNOWN states." |
1308,9 → 1308,37 |
} |
} |
} |
// This is not used by the framework itself, but can be useful for plugins |
// Note: For icinga2, the path is /var/lib/nagios/.vnag/cache/ |
protected function get_cache_dir() { |
$homedir = @getenv('HOME'); |
if ($homedir && is_dir($homedir)) { |
$try = "${homedir}/.vnag/cache"; |
if (is_dir($try)) return $try; |
if (@mkdir($try,0777,true)) return $try; |
} |
$user = posix_getpwuid(posix_geteuid()); |
if (isset($user['dir']) && is_dir($user['dir'])) { |
$homedir = $user['dir']; |
$try = "${homedir}/.vnag/cache"; |
if (is_dir($try)) return $try; |
if (@mkdir($try,0777,true)) return $try; |
} |
if (isset($user['name']) && is_dir($user['name'])) { |
$username = $user['name']; |
$try = "/tmp/vnag/cache"; |
if (is_dir($try)) return $try; |
if (@mkdir($try,0777,true)) return $try; |
} |
throw new VNagException("Cannot get cache dir"); // TODO: translate and own exception type |
} |
} |
class VNagException extends Exception { |
public function getStatus() { |
return VNag::STATUS_ERROR; |
/trunk/plugins/last/LastCheck.class.php |
---|
1,26 → 1,26 |
<?php /* <ViaThinkSoftSignature> |
bFkiEkyHItv+AQwBu8Jbs+2mPVVp1pljo6oKwEQyS5ugT4dyqfHUANCFJfSr0/Wgw |
IhTtUl9TkfC8ZZ41AZod3llWwMp2qJJ4GaBY2etFvOmRSWhEECLu1z43MCt3Q5Dvt |
FrkzApfPb3bzX4tUFKi4/z2HJhbnOsQQcUFRPznV3PU8A8xEA1sdPOrnV/IcIDKAk |
eMucV6Bch2F6tU1qi7LRlTufNUpqCtPYy1UaLUvzxRLBraLKjdRzVDa06IakJM4OH |
zU0tsg3P3fLwEiFecWSLCjt2dyo6woJgPnxFf6W9qETgNX7ItjiCktf9P6YEd6XQ3 |
+jWZoIm4/SuQqbWnUxlT6k8ejvfE3iM0WOIv9mfJHcMgwQPCEAPVu7aPazLi/x3Xc |
vHlgHP9A8ED6a+jh4H1bmrZbW+DpOJ8jhvPvr1kdDTq/vJtadPZkONux7XM7LgzAW |
kpQTmRCXh/FkIEOpHWeW/PNKlBqQzPglsi6liiHnN3LMAb9F1PXqMOXxcwbkKGrQJ |
I/pGasdex+fVUI0py45Uost/PWP8P89DIxq4BU5nI8Mki4N1MlPf0Pty1ndFwk3Z4 |
kU8/rdYy1/krfwEt5Cz8FhvA2SSgFgzeX4rqly/u/Q8uyzMVoCK3N26EelKfzO8ux |
jhlnBtiwbemDK+pnkLAELbk5pkf158W4Sdl4ejeuVno1Az78w4R5pOatx1Jf6MzIA |
lf3xsFT5aycWk16OyhHIjrITl7UZcb98ykv0FWy7+NqDFM9sK/GSrs52FNPzxw3mk |
YPEofkp1Qn/qxm6+t0TAqFkXBzGEAvkG+xRRDhGrDf6iFx03baortdMxmcHTqsMsA |
BlBxM2VWto7OuTtUgjPn6lFasHERSWoqgUrxomP18OBuh/6Cjb3ajeGL6OQEyvLbQ |
HAcBssnfott7LSgZbsqIMIBT1xrki92FMmN/jzcE8eVZ4Dx0f/+4gyAFyqptE/FAn |
w70HGdVZFy6MBxXUSCt83Wz4uDdIV/SQEOa826pR6X7/Zl7EBRPNJoSnGZfucpau/ |
+NEbOfp0TZODpbqBeKRLBCyqJFQfwQEhOE97/am30pIrIAob6lAcNXeimgunQawld |
DQLJVhpCbsHYcMHlmIqqKc+jCefCf+T0grx34t9+fRap90eYs0KHxHo9Ubr71I178 |
iLWcYrN0mve5cNFJ9aHUg8VT3i1wuJYzl1ZXJeuDOynddmIEmHjVEMIdsA3wKGHIm |
aB9cPgTkw+dkKkkCqpHZYcqeBBvbQZ3fkovhubKfYdwfX1QwtBjFZmdgayL3gQNJZ |
EOr7w8qmnHD+B00v526nYpNqKBWqyQXe5anmrm02e7SC+G4JiMiaLLvy6wo7ya3of |
Q== |
Fm798K8OnhYRk2wZ5LGT1eZv1U9J4+xksI2BNLu4KZxIw2YI06hHPgG9ZkiYp88+Y |
EuW8MeTg1z1ee4f8qNi9ZLLpSyiWEK9sAvJYJeWNq9Nx3avUf10Caa9iU3UQp4cT5 |
d2NC00RqKZRtBC5rPZ6u+ZXNoEz1UN6Z3b//FlXtRW1adXqgPpCNhw4HM192iXDld |
5YXYDhEsH7/mF0TJ4bFkRmNG5FDsX9uM0+SD5vZ8VgW4HW0KwO3qJG89QOelc1TmO |
88fFklxG3wmTZU/c1mCOT7tgrl4AVmUamNyZRygaeKWORfTM8m1PrFm86MyGCvLR+ |
ZVr8mqtAV5mJt3NR9NxpkxuLJN8qPpEuMzbQV/0MfjsRjdA/bLaXA186maJ7IaS1a |
69+xLqrLbcBn+c4Keej72vAdhSs2HmpPqO6wVTsV24LMVDWgS5IEYDfK5ylHCikTI |
YQesBoQELvXEtKuJI5EJCBsH0uDuIiuL2xe7btJJi8fUYaBHXOW50KoY0HWlIntXd |
UuI/CABDWgVE1XMqUu4xemM6mGoPcZY1V5FtV4A06KtXTEbmqRwileEe12jO3aVKq |
HrOoGY6ZB3gk1AxH7sUeUKFWJ6yS+zzUriEoka0YrJVrBgG3g6yaNDebNU4KVNx+G |
zQalJ6+k0RaWMdysrRy3/IJlDhu9Vt77QRb7twP9c8WARJsGgEKCTwuutlD10Cl8m |
IpJ0CJj4fHDqLJHvXJNb9IH2G1W1YxfmPYqsscfW+n0mVBnp3ZjVo4iuV0Gr4hrS6 |
WwBMX6XApPU8shgUwUf3mENE7WY8EKaNpybZsn3OTxAGXnJ2293x+o1Zm29Xv3Ovq |
R9VszqfHCaGq2V51BAPKGydtgF2QF93mL8vwlfqH1v/m/kRujRjLQfYv7T8+6CxI7 |
hpXCp9LLsr2KsCNF1B8cxiyBv8fFF1bB9+HpzU+Z5sCIB91XdTs21XaaLHXDg2qJZ |
E9SjmfIK3IqG1AYN6CFsEUX0wCloHI1Ua3XtClBQAJaxbsvRdk0SM0nJjPTxsC9MX |
ZGVlDxPR0RZSA5XD93OYrF28ZWnGMhSyet2zEUSEcLmAKlCO1WJbGzgq9Prd+HvRL |
UJqjbc1FjmPN/ZllnxHiP3/N7Xq307hUmar8lNF4FcLjXcaMzA4umMBUcY2wMxugc |
ENsHEkIBh9jzOFnvRDP1K0T44ZVR4l376Qm3nb2ULcvTA1E2Dq5U0H3t1AuniPgCP |
D62RRZOp3ZH+5RNQnsMHPL87eyK0XA/VAT7wQah9GnL1d54ocXDyDrVGrJXEiq8dN |
J2Zrd6Dd/7TAI1lcPuwUv4BxPP2o2ecsFVC2wi49v/HNPwrpGaRIocVG7XB2/tQvA |
A== |
</ViaThinkSoftSignature> */ ?> |
<?php |
29,7 → 29,7 |
* Developed by Daniel Marschall, ViaThinkSoft <www.viathinksoft.com> |
* Licensed under the terms of the Apache 2.0 license |
* |
* Revision 2018-11-03 |
* Revision 2022-12-18 |
* |
* Changelog: |
* 2018-08-01 1.0 Initial release |
39,6 → 39,7 |
* Cache file location ~/.last_ipcache is now preferred |
* A token for ipinfo.io can now be provided |
* 2018-11-03 1.2.1 "system boot" lines are now excluded |
* 2022-12-18 1.2.2 Use the new cache directory now |
*/ |
// QUE: should we allow usernames to have wildcards, regexes or comma separated? |
56,32 → 57,6 |
private $cacheFile = null; |
private $cacheDirty = false; |
protected function getIpCacheFile() { |
$homedir = @getenv('HOME'); |
if ($homedir) { |
$try = "${homedir}/.last_ipcache"; |
if (file_exists($try)) return $try; |
if (@touch($try)) return $try; |
} |
$user = posix_getpwuid(posix_geteuid()); |
if (isset($user['dir'])) { |
$homedir = $user['dir']; |
$try = "${homedir}/.last_ipcache"; |
if (file_exists($try)) return $try; |
if (@touch($try)) return $try; |
} |
if (isset($user['name'])) { |
$username = $user['name']; |
$try = "/tmp/ipcache_${username}.tmp"; |
if (file_exists($try)) return $try; |
if (@touch($try)) return $try; |
} |
return false; // should usually never happen |
} |
public function __construct() { |
parent::__construct(); |
105,7 → 80,8 |
$this->getHelpManager()->setSyntax('$SCRIPTNAME$ [-v] [-e] [-u username] [-R regex] [--ipInfoToken token]'); |
$this->getHelpManager()->setFootNotes('If you encounter bugs, please contact ViaThinkSoft at www.viathinksoft.com'); |
$this->cacheFile = $this->getIpCacheFile(); |
$this->cacheFile = $this->get_cache_dir() . '/.last_ip_cache'; |
if (!file_exists($this->cacheFile)) @touch($this->cacheFile); |
$this->cache = $this->cacheFile ? json_decode(file_get_contents($this->cacheFile),true) : array(); |
} |
/trunk/plugins/openbugbounty/OpenBugBountyCheck.class.php |
---|
1,26 → 1,26 |
<?php /* <ViaThinkSoftSignature> |
tnq+qJ0FVMFjtw0VxxXU3yGcuwQtR+YxngRuF612pYRja0m6907iUi6E2uuTAiK6d |
lCx969+n5MBG0N9yM/vPLKowBodxgEAaE5PlS5cfU2WKqbPbrAI6yWjfMruy5OzOi |
KV2wIIWY+QR9HuNDKvO5TQjFMaLvXdOqNZp+bCP/YDiLJ4oq8s470/z4MZu/jz1ou |
2pLzyjyDdaMAjrphpGrG9BY0eS1j9EQo88Kv9sFJrmOR+QNRawiMSL1Vuy5XxbriO |
VH65ZkZ6hs7NPsojgKM50OQUUmRiMi99S2CCqQHPh2O0VaZMB9hQ4NiWN5wyjExMN |
v5vVpWLFDwG20YKNWdfPd/hADcJ+W3E17RuDbRqphzEJlHcgKgLMULmCCT0H7XWb3 |
NP3iKqVJOGnt7SVDXPKsNbjP2oA6/gAOpBZptV/i95f0kplJ69T7AxVmoNg9dWJnA |
JMOmpteZCmdZQV7vKbPvCLVOTMh9/Q9OFe877kjRaEAQJaPtrdus4Q8uhvghRFiiL |
yuJbsZgIAnZvliEe9jDBPCFxTC4tMDqoG5rXRltz4J+Ig52L9AWq0bSf9+AywMjdT |
c1jS22mBcqC0rx2cmKZl/AWutrBisVeQweAaipRncW85wyZMWgSB3lowbMKZHNqZV |
YCZt7QSxUGPZAIKy51i6QivhJaaQhvnCZW3lkQGZLqruuXU7QJzw6BzW+aMz+kWqM |
wMHANFDgw/VusaSWW4a+oaYCyygKRiRkb2YQE8U2EObxkaDDEhquWLHhqEJ8F8kly |
2aZghC94ryvIkMmjUCOhxJ9a429MyDrochi4RLI9OkYF4WmF4AkqFnqYJWf73kRUV |
mLpohXJGLaRp5e0Q7dxJto9hy/I/6yntTREvnDkm19cY8lHceJPRv3YbuSVybMha4 |
9nf3KgaF4hmAwogIqTcSb5f18uqMC+Pp4sZaChQnpbC+K7StY7lI3dWL/MINHUGRX |
yM702pX2l/WSbflcWcvHaPoOkfkvJwP+R5BZ/GIB5F5Yv5Q4K4BDNs23u2stvbzuK |
6NyheDgjSRF+PckMy8AmIHtGMn4wBTbw+mH+nmBnN6HmQgqM6zHpU1CwVw1Q/c2IP |
xihKexQelORhik6WyUWXR8GPT4PAFUOkIKV3ayKibd2zLDAd3YM3J4uDbEwp3vg/b |
neIWy36vzf6xGnPFig0qobZGIisfVMMpvnZkXA9c67K6LFNEx1eOlW6Cx068NZqZW |
l1s/Q8qJ8UjnPurbrQ4k1v62ZHMy3s9LbiNRyMEt5kdjCMFNuc1jWGpLwp2rw5WKC |
O5yx+62O5GPX+qZpkIjxZwe/3woj5dGiFFdsCo4afv4KitzI3czXMCDgiL4oTanQQ |
g== |
d5Ch9xyUxv3Bu3N2jbIjfBn2mP062FT5Kdj1z31EUW9w+rJMXfvaeidWQfLapqU7c |
uIAztDKoRCMsAsvZYSB1zD8+pi0ClJYGbiB+/7ACt1TSVOvtrWxE9lsWXIOjLA0Ft |
YeccOh4Mf/JFtLbLyo/xQofsIy+9umKQ1fbhgrcmJfaWY07QeoZVE7HHauTZA+ld6 |
HyjNklTAc9b3tcFQBp9bgB3p4Pt28y6irIqDhaqvBja8F2oCK7FCZQFwE/JF0UKT/ |
PMOJ0VtzC1p72SiOWMg4U0+hMi4Sre48SuSOiUtLaF14GdzfATGOxOqyFvFAFXClh |
qUqgxXmQTFJCZzGW2rga9BJw35zTYy/jtWLN8nGFG+S2c7e+IJAqN+iDMD7I+NyRd |
jjZKqDjXDZrIolL6KP2yl4WPtVD8iaJcgrxUQD+TQiJkcjvSEp2DVN0OETDFUzlx2 |
Jr9hc14n7z78ebkTgNToAGauBvfyFRCEyRBcXyS9VluTd23g3ICXY0qdWJUhf4zpz |
PJPdgAVmO1X8kPaVB97GI2iQDqIMFLr6PEre6GTaB893B3lrej8sTdAiV8WPlzKmZ |
LHxxUr2uQdIT2NkLbvvzNSoJKsWXKdmbvWk3Oy+VYGH9LEjw+bRTweubH36gYf4to |
QpoiUcnQ4B1f9GxDUp455aPtN9HmY7dOb4YehyWCFKge/1PUoT3/omz4cRlz5+8QM |
aYOB1/UgdeCUS674R3tzhr28LhNfJ8J4pyXzOVjVsmBkmMd+he/4MJcXWyDYDWpVl |
AMA700hkscLcwktA25TDd/Qh5vjF4i6dWcNlIbFxdaKyN9PTs/0T+Jza0JaDmZagW |
gYD5R4+ei44asrZ37oAg9CjOeDm7FKRuMYiMaw/08LAYGQKFxgIAsMdcKOHya4By/ |
5yVVEVLihCLKdvdn0u9d1d2BQHZS0n2KNG4cMQxnNKVjjTXDybRbyB2C0pp2S9YXN |
V9WWzveDY5m8jYrZ9wFjvbHeJHfFNXMrkN1k4U7mYM5Be2Mu2+MYA/Xw2oLtzmmyt |
9WxiCO0B4TrEKOJYV1jC7BDWoAAHNnDxFoOJo+dm/hjTU3XOaWSpsxTURYFR/Ltn5 |
G1yakcUq18mS5c2BEXpwXaJq5+f3QP5COzEcrvgGqBJRfpy0JxsRtKAzTQpADzRtR |
8jI68XrP4y9FrcUazM4RPp+U8dRY2zjMas559t7Xb7RysHRpFxf2SZ+Xj0SVQZEsj |
YOATRaQdV+a6haeDvB346iJIjVaNY6SaaMPI5JEhAr79BM6nJCXIu7HT9DCBWvhbG |
MCePzFjOa4XRB1vaCJo5jolQUWyy0pFLKD5VbimI63wd1a5KqRPmtSFAu+/nQ3aKC |
Q== |
</ViaThinkSoftSignature> */ ?> |
<?php |
57,32 → 57,6 |
$this->addExpectedArgument($this->argIgnoredIds = new VNagArgument('i', 'ignoredids', VNagArgument::VALUE_REQUIRED, 'ignoredIds', 'Comma separated list of submission IDs that shall be defined as fixed (because OpenBugBounty often does not mark fixed bugs as fixed, even if you tell them that you have fixed them...)')); |
} |
protected function get_cache_dir() { |
$homedir = @getenv('HOME'); |
if ($homedir) { |
$try = "${homedir}/.vnag_obb_cache"; |
if (is_dir($try)) return $try; |
if (@mkdir($try)) return $try; |
} |
$user = posix_getpwuid(posix_geteuid()); |
if (isset($user['dir'])) { |
$homedir = $user['dir']; |
$try = "${homedir}/.vnag_obb_cache"; |
if (is_dir($try)) return $try; |
if (@mkdir($try)) return $try; |
} |
if (isset($user['name'])) { |
$username = $user['name']; |
$try = "/tmp/vnag_obb_cache"; |
if (is_dir($try)) return $try; |
if (@mkdir($try)) return $try; |
} |
return false; // should usually never happen |
} |
function is_ignored($id) { |
$ids = $this->argIgnoredIds->getValue(); |
if (empty($ids)) return false; |
114,13 → 88,13 |
$this->setStatus(VNag::STATUS_OK); |
$domain = strtolower($domain); |
$cache_file = $this->get_cache_dir() . '/' . md5($domain); |
$url = 'https://www.openbugbounty.org/api/1/search/?domain='.urlencode($domain); |
$cache_file = $this->get_cache_dir() . '/' . sha1($url); |
if (file_exists($cache_file) && (time()-filemtime($cache_file) < $max_cache_time)) { |
$cont = @file_get_contents($cache_file); |
if (!$cont) throw new Exception("Failed to get contents from $cache_file"); |
} else { |
$url = 'https://www.openbugbounty.org/api/1/search/?domain='.urlencode($domain); |
$cont = @file_get_contents($url); |
if (!$cont) throw new Exception("Failed to get contents from $url"); |
file_put_contents($cache_file, $cont); |
153,7 → 127,7 |
function get_privateapi_data($url, $max_cache_time = 3600) { // TODO: make cache time configurable via config |
$url = strtolower($url); |
$cache_file = $this->get_cache_dir() . '/' . md5($url); |
$cache_file = $this->get_cache_dir() . '/' . sha1($url); |
if (file_exists($cache_file) && (time()-filemtime($cache_file) < $max_cache_time)) { |
$cont = @file_get_contents($cache_file); |
/trunk/plugins/overview |
---|
32,7 → 32,6 |
| website_monitor | (Discontinued) | - | - | | |
| wordpress_version | vnag_wordpress_version | No | Generic | | |
| | vnag_webreader | No | Generic | | |
| | vnag_websvn | No | Generic | | |
| | vnag_disk_running | No | Generic | For monitoring disks which do not have SMART functionality. | |
| | vnag_pmwiki_version | No | Generic | | |
| | vnag_gitlab_version | No | Generic | | |
41,6 → 40,8 |
| | vnag_hp_smartarray | No | Generic | | |
| | vnag_minecraft_java_version| No | Generic | | |
| | vnag_aastra_430_voicemail | No | Generic | | |
| | vnag_websvn_version | No | Generic | | |
| | vnag_viewvc_version | No | Generic | | |
+---------------------------+----------------------------+----------------+-------------------+-----------------------------------------------------------------------+ |
| | vnag_faindex_ts | No | VTS Internal | | |
| | vnag_bulbcam_* | No | VTS Internal | | |
/trunk/plugins/viewvc_version/ViewVCVersionCheck.class.php |
---|
0,0 → 1,128 |
<?php /* <ViaThinkSoftSignature> |
CmjFiZLK2FpfPQ5dciAKEBihjx7LF9tbFssLowaSzj20S0kXMd/vQEZTVivanUr2+ |
sCRxMjiFbCZT2X7YurXKAvvr2i/Rdh5lyedBddXrwrbhrGhomKtE/iKGHsJuUIyNs |
1GEOY8m+mQD5Dxf7GFE4xdGUkr8wRc/whKv/f4VTVm3S1PCBWlEfv3RHqfkOw0x1d |
g5Yo30yTk5nEGZuoxRjCQPkXgvPLHoiRcsKq22xzZdCREL0ujlK7AGWuPIVOxk7q8 |
qmtzF48LIfsewV3O6U4uW1yfJyqwbHFtMCpePxHKeuTkkOs7ZLFwEL7vOaKvMwKcf |
F70BW62yltBl02IliqsCIluQ177KXf2RiXduj19sU71Gb483J1JjK2/wu2SNJg6oH |
GEcaQ2bwOA+Ymj4EmZsczTJLmKuf0fPYVdUFY1gzpmAg7tyT6HO5r9SgIw9Yfcbbq |
ExcCGFMYPVMWG4ahddZDDjGhbDlXbFhRikzO7EOvea0K1IWb3moavg2GOCtDkQy7B |
YnErR/3sL2q7bzaAW68Rlzg6jVm/DGH1apx1+FLFr+DEoFs6TS//JW8sDiqCcoU8S |
K72tyWsN3wz1qAVoFn5inm/uqk8mV+rlht4jBoTnYedz1xbdequkPCX2Y2UCMEp00 |
PGf4oP/oUJ5UwT3/AC3XX+kDNDIDEOHQtzIhTg4CPnno2Y21uULgVb94RPr8zJ4gV |
LtWZd6B5vso9LJJaOrYgL5SjkVxLfMEJvOQV97S0ZTsbZ4gYjBzRnBOARmsz5858V |
YFdvv6i3xNdPbF6NH3icQIZeVScKEdBPd48d8nSBx4DSJQlzuSYv4ANc+YH+adDv+ |
52jk1o4d73vvraqcwSWHWIE1DB3ma1DgDfCiCUqubboyh3OxgNIshEZqClNE6xDTa |
v1iViJbS4j76tpGmPyFFba/tzIoJigBfECYAIDEmQlKLui/18tSeZizymQDHySLpj |
yTQir2F2HyVFYE/CH9RV0QigP+Vx+g4uXEN0OPGCE7Lh6V/d6Yg5mBuYWHd0z53+Y |
+HoE0bPGcAkRKSPLWQe8Nk5yDnJPyz7sG9XHpvoRl2NxDhW78Xr6yFhhGuHu0W92K |
4xiVRCd8UDWdmrv8uwUdubP8bPtDsTdll6MGVZj5zr1n/tI7dKj8M0FITpW0o0o8u |
rpc0NiH0iu/NRTzeqrGehA14SOrM/q63+jpX76iCBIWJG2QXvyd/lBdfNI/SASN6o |
Pat9Itt0QC7YH1g9/15d1rcPxVEZua3m+rjMtdqnyRgLQqEH6DWkDW1ixnX7EdVnP |
0kiVuMKY38aSkTfEAcG6utYsDY2LY/AkOvOItfXBMuTxiddC4VffmissJHHP+Y3jl |
w== |
</ViaThinkSoftSignature> */ ?> |
<?php |
/* |
* VNag - Nagios Framework for PHP |
* Developed by Daniel Marschall, ViaThinkSoft <www.viathinksoft.com> |
* Licensed under the terms of the Apache 2.0 license |
* |
* Revision 2022-12-18 |
*/ |
declare(ticks=1); |
class ViewVCVersionCheck extends VNag { |
protected $argSystemDir = null; |
public function __construct() { |
parent::__construct(); |
$this->registerExpectedStandardArguments('Vht'); |
$this->getHelpManager()->setPluginName('check_viewvc_version'); |
$this->getHelpManager()->setVersion('1.0'); |
$this->getHelpManager()->setShortDescription('This plugin checks if a local ViewVC system has the latest version installed.'); |
$this->getHelpManager()->setCopyright('Copyright (C) 2011-$CURYEAR$ Daniel Marschall, ViaThinkSoft.'); |
$this->getHelpManager()->setSyntax('$SCRIPTNAME$ [-d <directory>]'); |
$this->getHelpManager()->setFootNotes('If you encounter bugs, please contact ViaThinkSoft at www.viathinksoft.com'); |
// Individual (non-standard) arguments: |
$this->addExpectedArgument($this->argSystemDir = new VNagArgument('d', 'directory', VNagArgument::VALUE_REQUIRED, 'viewvcPath', 'The local directory where your ViewVC installation is located.')); |
} |
protected function get_local_version($path) { |
$path = realpath($path) === false ? $path : realpath($path); |
if (!file_exists("$path/lib/viewvc.py")) { |
throw new Exception("Cannot find ViewVC settings file at $path"); |
} |
$cont = @file_get_contents("$path/lib/viewvc.py"); |
if (!preg_match('@__version__\\s*=\\s*([\'"])(.+)\\1@ismU', $cont, $m)) { |
throw new Exception("Cannot determine version for system $path"); |
} |
return $m[2]; // e.g. "1.3.0-dev" |
} |
protected function get_latest_version() { |
$url = 'https://api.github.com/repos/viewvc/viewvc/releases/latest'; |
$max_cache_time = 24 * 60 * 60; |
$cache_file = $this->get_cache_dir().'/'.sha1($url); |
if (file_exists($cache_file) && (time()-filemtime($cache_file) < $max_cache_time)) { |
$cont = @file_get_contents($cache_file); |
if (!$cont) throw new Exception("Failed to get contents from $cache_file"); |
} else { |
$options = array( |
'http'=>array( |
'method'=>"GET", |
'header'=>"Accept-language: en\r\n" . |
"User-Agent: Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.102011-10-16 20:23:10\r\n" |
) |
); |
$context = stream_context_create($options); |
$cont = @file_get_contents($url, false, $context); |
if (!$cont) throw new Exception("Failed to get contents from $url"); |
file_put_contents($cache_file, $cont); |
} |
$data = @json_decode($cont, true); |
if (!$data) { |
throw new Exception('Cannot parse version from GitHub API. The plugin probably needs to be updated. B'); |
} |
return $data['tag_name']; // e.g. "1.2.1" |
} |
protected function cbRun($optional_args=array()) { |
$system_dir = $this->argSystemDir->getValue(); |
if (empty($system_dir)) { |
throw new Exception("Please specify the directory of the ViewVC installation."); |
} |
$system_dir = realpath($system_dir) === false ? $system_dir : realpath($system_dir); |
if (!is_dir($system_dir)) { |
throw new Exception('Directory "'.$system_dir.'" not found.'); |
} |
$local_version = $this->get_local_version($system_dir); |
$latest_stable = $this->get_latest_version(); |
// Note: version_compare() correctly assumes that 1.3.0-dev is higher than 1.3.0 |
if (version_compare($local_version,$latest_stable,'>')) { |
$this->setStatus(VNag::STATUS_OK); |
$this->setHeadline("Version $local_version (Latest stable version $latest_stable) at $system_dir", true); |
} else if (version_compare($local_version,$latest_stable,'=')) { |
$this->setStatus(VNag::STATUS_OK); |
$this->setHeadline("Version $local_version (Latest stable version) at $system_dir", true); |
} else { |
$this->setStatus(VNag::STATUS_WARNING); |
$this->setHeadline("Version $local_version is outdated (Latest version is $latest_stable) at $system_dir", true); |
} |
} |
} |
/trunk/plugins/viewvc_version/check_viewvc_version |
---|
0,0 → 1,43 |
#!/usr/bin/php |
<?php /* <ViaThinkSoftSignature> |
lUa5cfG+jznqwi4S6QULakKLbFafK+8+XF/7pppCb3z3Qu1PoVM33K6ymuXfe2tIk |
QHwjemK6V3sIkuNSUbTH0ikBqZXMy+yUfDpwqndGYY7d+6KTy0Nz7Uz41nBzyBkP7 |
GUQmhHF7CNt61wM9Orh+X3X0/3A2t5x2Nr9SC2t2o8UhE2vZX30wWH+lVBzGp/5ka |
4nSDM+B4cg0QEKB07RWNTh72r+sCuOcQzmYWY6GB1Lqtptbzr/bfPl65tsk6WSoLw |
GBh16fub04qh2jkH5hwU3CHl4OzFVDrjv+cw52QL2caRWHRX17W+rblCeeE5o/zh6 |
qglsQFMxEvcDnqTgi1ueZQSBbDFMxxagQxfFqlKarOIDzmTcZJmrFpDZT21ajZTdT |
K9fU2lE2vl8y7FYcw+4wf7V+kYh0AHxujwZ4pc2va85+w5/UZj13xXf5i5cIqbnkh |
DXSPv505Orgg4km5GKlhe/HakucW6w6/hMBnb/zxyplAtkz5BYUPaNUqxuqY9h0F2 |
q70wlY8aUWlqizMVGdqitf/cvrZ+vnUQ1ZvGWhqwiany1hF2zYQMrcEI8h8f9lrvv |
XgaGguW/iTyHCjSwZ2Xzq8FYbpv1AP84A2E3AGa457RITWOM4nJ7OfLU0LCcA7Qn4 |
Byd7sEoaRNeE2y5T1DHYN20xWcf8gLeyE0GAjV+MExBrBYy2bLNeLfQASd6uef6KJ |
Yay6+6rJBpPqA9FtCpjHk3Cx4VtNRsGdyZAkuzHV+6AFbSP4dQFE/QaNWYes1ENgq |
eATsuOXTgDVqxShvaeBHjm3gGH2g14H3mF7jhGpVcuBv0AAq9FZixFY9TLsFIAbMU |
QlJIQM6AbRBztpmm5w9jUS6E+Fzj6mPmdPPgkXanVDVeMZS9cDqGiAYh83DmtZcZ3 |
YSOVebf6mwMkSWlZdb0sxPo1LkBKi4600Q8RE2BPfVFriua9IclJjuUUOW9qousJ3 |
cYzU1JZPyXCBUYEirdcsTCmGa2lbpY0Xx3R8FbtqFX2YveEdy+1L/tRb3FpsS2cfo |
KIDPKFCeMvGK4hnOCfcfWsSjrAiPOnAAXXlmtLomomyHcXmNtOnSnu1fSyBABlOq8 |
xKQY6MERcKeyx9OZsQps4f7gIm6waylvROtJK+c2sX45ioZ8H2Dsca8XmmutATmhI |
8RGw2ToNcsx9ylMsTJHfLK7fK4PHJIQ1KzMuR4rijqIaE7kfUDH7yqdgV/gaubptY |
AFLiDYxuSvgTLR2nBJd5TBQa+dFSczAK5M/hV9we7yAUNFXqTRk1Rk1CKOpalA5FC |
td9vYAnQabO5dXIzZuyMW8CfruWZQn6SJAFuVSpjo29PIu+GDTQrE25Lx1WrvTIun |
w== |
</ViaThinkSoftSignature> */ ?> |
<?php |
/* |
* VNag - Nagios Framework for PHP |
* Developed by Daniel Marschall, ViaThinkSoft <www.viathinksoft.com> |
* Licensed under the terms of the Apache 2.0 license |
* |
* Revision 2022-12-18 |
*/ |
declare(ticks=1); |
require_once __DIR__ . '/../../framework/vnag_framework.inc.php'; |
require_once __DIR__ . '/ViewVCVersionCheck.class.php'; |
$job = new ViewVCVersionCheck(); |
$job->run(); |
unset($job); |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/trunk/plugins/viewvc_version/icinga2.conf |
---|
0,0 → 1,49 |
// Put this file in /etc/icinga2/conf.d/... |
// VNag - Nagios Framework for PHP |
// Developed by Daniel Marschall, ViaThinkSoft <www.viathinksoft.com> |
// Licensed under the terms of the Apache 2.0 license |
// |
// Revision 2022-12-18 |
object CheckCommand "vnag_viewvc_version" { |
// PLEASE ADJUST THIS PATH |
command = [ "/daten/vnag/plugins/viewvc_version/check_viewvc_version" ] |
arguments = { |
"-d" = { |
value = "$vnag_viewvc_version_dir$" |
description = "Location where the ViewVC installation is located" |
required = true |
} |
} |
} |
// Example usage: |
// |
// apply Service "example_website1_viewvc_version" { |
// import "generic-service" |
// check_command = "vnag_viewvc_version" |
// vars = { |
// vnag_viewvc_version_dir = "/var/www/website1/viewvc/" |
// } |
// assign where host.name == NodeName |
// } |
// |
// apply Service "example_website2_viewvc_version" { |
// import "generic-service" |
// check_command = "vnag_viewvc_version" |
// vars = { |
// vnag_viewvc_version_dir = "/var/www/website2/viewvc/" |
// } |
// assign where host.name == NodeName |
// } |
// |
// apply Service "example_website3_viewvc_version" { |
// import "generic-service" |
// check_command = "vnag_viewvc_version" |
// vars = { |
// vnag_viewvc_version_dir = "/var/www/website3/viewvc/" |
// } |
// assign where host.name == NodeName |
// } |
/trunk/plugins/websvn_version/WebSvnVersionCheck.class.php |
---|
1,26 → 1,26 |
<?php /* <ViaThinkSoftSignature> |
xhl/K7K2NBjuGDzJ8SDyDfjnqVYQGqJYY8y/rSj2nQ2qB1UaPExnZbVeYXmkuuNHn |
0FYtsd797Xuz5VJrqTGE8FjIwYxW4wjuOn/AKdzI7EJIVah9inU52Nh9i/t1ZBBSj |
l6M6qn0Hr0gImkW4aPagZ5PVTW9D/kGyI01TiNY5lmXnDYnOIGwVTriOqEl1KWVaY |
Fy350Ji1UN5dh4EeA6UyvTCtTPHV7SwVOMTMSBnQSE1/6Tkr0ETMfUsSE/HA2pnp8 |
V9DKDj5US43AXTBZf7SUhLbsESzgVJBIX1LIUCSRWZC067GRhYpyOqzzb8Jx0GduQ |
5+cnZSckAsv4sjDra0blFjnfYS1mVO0vHY0n3wRANS4bqgodaBhmyN3lvzTK+Hf2N |
Ki1MAi91Pd8K81mrQ5EbB+TOVAH3w0p3DejtJrdLTQpYuq+pofQRvE8Ua3zBdBu+3 |
GWazom0drmFfdOrcWOLp9nMqJmF/GYXB1zbuSsi83amZFtaexZePsPjfFq/2Hx2Tb |
iO9Ivao5VKayqeUUzjb40/+9UYfNqz38BKp25SJELQBCyJjUQ4KVa3ugZPFu/79xD |
NAs33H1qEMOu99KFayelWamGg44th+MQuRQyF8JWYehYEPNA9TGHQoWKeH7E8GJkr |
qP291YkDhxSvmGjVIsgypSHrN29tleKE9RahtFzAFE8gpQT0xDLTirut8ecdHLqkc |
dmm15VS2X2oGCvrCkTCNhIucD+wweR0EJ1cOYUW0ET0hOlWgxEohCy65d4GXRvIf3 |
zgSf91dyv/Of2c6vtx+JEs8bGofkYNxrTGF6mUTb7NDW08xs4SiXbL91KB83kjLxX |
ATbeS+t6wTcm9op+82CCnb/VFt5TPeFhoCv1U2ETsAf4SvAsYumHfc+GggZi2wtUK |
JMpV41FgPUv51XiYfcCLUyCF2nxenr8sAOzVA8L3gGiqJQ3jf8rUTbp35eMIvAgU2 |
ut0w/gdtHym44ipjArNVYFS7X8OkEq6bMZ4P/wUBVm8t+WTNf7ra4Upybv5YX1QpT |
D6jmyGmb1ggDNstqj7rVRT6dYrbuNBPBhJV8As8oBUcW5BAeUWqCIJj44pyXOEH9Z |
pkgSanTgFUEqHAkg/NW/ah2/6CgPNb7xKdosgHSgXTvaROUBqBQ8AiQBnTjdduJTp |
1GYXcGOsix70/+DBH8MZW1ToP5FU2oAkiin+iEKe/XE6Ek506hhd0CvyLuIXtrScz |
4EYmjCEoXYyZb7f3l9yidIWz/HkmUIWc2RIq8bv9ygzF+6t6PZktBrztMC2jRkFbe |
vTtpxQWS485kKJO0s84IBNQXPUb+4Dpfy01OjJa8PXcYK4Ajp7DBt+jgLsFUMpCoV |
A== |
O3yOuJ0uY8SaZtsrvzay90oQ6sp1M+CxL4k53lThK/mXA4x6XNuTX1K8OygUl0swc |
+yV3RRKNVNaLXMxKBOhRVC1SqJi5jDM+/AN0vJ2j0fjYcc0mXbuy4amScMq0wFBBq |
0Kf2mqWu4QtZiZ6PQo+SoUuoR5QsN4IQkOKdj7cdluNFClt6uar2ZPNEGeHFGt0eT |
ddCEJf13rjkpta4FUjjPr1eN2uWE7qFIAqgYbx1tW7+fX3iFOOcnd9F85hbvGQhpY |
LJgFwwsFbfgH26E54Za6ynVJ5yvZ3FBFItO/UMtuiAqjFgsv6tmU49B7NxzzFeAln |
xTPhhF5SILLJr/aKkMhNd1vWup4s6ZW+HWlwxd5kRdNedGPiWExZZuGDfdorycLLo |
kiP2xEHVhMFlOFtBsprOwF8ZjkQ8Jhak+MmUyXIPyhPUPWIyow8kttnBhw2QNxwI3 |
9l/7Z/HNj+XYcJq+lRPLG7CGzmD6xBDgjhLMVGTb2ZSqR6Y0YVpd8Wsq7zhok5538 |
YhE0jtLjaX8U99Y5l9hwJnLZJH7POHbmR5GFAyxZdH08E+nboIwlV5LJrFYb6odSC |
S2zWC1PCr3fvSErp9ikEE+GKvsvDviYymcR3rd8xxlsUFi8N/gOKgLY1cobY2Ic2s |
jtdinhvnoKU8Fmmc9qUUNJcFS2dyM3uv1CSvYJp0iFcMqEZ3G/FcM3/octYhl1hl1 |
vPJRe+0Xm9O0T6VqhWNvAf6MjJ2FQGMRAKWkP4NGuP1jOkN3yU0GjP0nc3ZXY92r/ |
wGnYqLTFh4c3WiGRjNJOmWHqSy1QCVKz13lqVTa4/g6RK0dNVphvTjCcpB6/VCAtw |
II0K/y1ZJ0JmhWUbN7JXULyB1Ghy00WUZa3XPZCfCGWqVT/KtPkZgL/8zBzg+NFkF |
ZNINJsjM3aFebt2yeUn5E13WCOCFsm6fqhhtNBe14tn2b/AEew4gZfuitFuvbPtY/ |
gPSqg8EnJ2qmoGJEQhgmkLdmklBLQ/Xtyf68kYFGeoRU/IPVnsODqytvS/J23v0vF |
f//VIjpE2vmrRi7aE1QmnT+JIKqq1HZsUPnuEjpIWhdH1W+sztLSbYHTmVG89QOeT |
cQzGPitGrPgqqSuVJo0q/zYdXDjE+Y6kbIj8QrK05N6MfhCeund5JvTab7AQlg51n |
BSNXZFMdena5C5QTXGwU3BQwBpvr92YWCj7EXzGU8N5XTDULiyInNNZ0xOULA+AXP |
aV79sQdctyrWEkll9ykl00641y3jdJl0b3FzFy87v9OoRLj8vAsvy2cUmRykRjyJm |
Uc8V1D7xjhvuxa5APwrpcaULIpOSiC3upgmNYlZIODV2CKixY5csoo7Ka2wnAttss |
Q== |
</ViaThinkSoftSignature> */ ?> |
<?php |
44,7 → 44,7 |
$this->getHelpManager()->setPluginName('check_websvn_version'); |
$this->getHelpManager()->setVersion('1.0'); |
$this->getHelpManager()->setShortDescription('This plugin checks if a local websvn system has the latest version installed.'); |
$this->getHelpManager()->setShortDescription('This plugin checks if a local WebSVN system has the latest version installed.'); |
$this->getHelpManager()->setCopyright('Copyright (C) 2011-$CURYEAR$ Daniel Marschall, ViaThinkSoft.'); |
$this->getHelpManager()->setSyntax('$SCRIPTNAME$ [-d <directory>]'); |
$this->getHelpManager()->setFootNotes('If you encounter bugs, please contact ViaThinkSoft at www.viathinksoft.com'); |
66,11 → 66,17 |
throw new Exception("Cannot determine version for system $path"); |
} |
return $m[1]; |
return $m[1]; // e.g. "2.8.1" or "2.8.1-DEV" |
} |
protected function get_latest_version() { |
$url = 'https://api.github.com/repos/websvnphp/websvn/releases/latest'; |
$max_cache_time = 24 * 60 * 60; |
$cache_file = $this->get_cache_dir().'/'.sha1($url); |
if (file_exists($cache_file) && (time()-filemtime($cache_file) < $max_cache_time)) { |
$cont = @file_get_contents($cache_file); |
if (!$cont) throw new Exception("Failed to get contents from $cache_file"); |
} else { |
$options = array( |
'http'=>array( |
'method'=>"GET", |
79,9 → 85,9 |
) |
); |
$context = stream_context_create($options); |
$cont = file_get_contents($url, false, $context); |
if (!$cont) { |
throw new Exception('Cannot parse version from GitHub API. The plugin probably needs to be updated. A'); |
$cont = @file_get_contents($url, false, $context); |
if (!$cont) throw new Exception("Failed to get contents from $url"); |
file_put_contents($cache_file, $cont); |
} |
$data = @json_decode($cont, true); |
89,7 → 95,7 |
throw new Exception('Cannot parse version from GitHub API. The plugin probably needs to be updated. B'); |
} |
return $data['name']; // e.g. "2.8.1" |
return $data['tag_name']; // e.g. "2.8.1" |
} |
protected function cbRun($optional_args=array()) { |
107,6 → 113,7 |
$latest_stable = $this->get_latest_version(); |
// Note: version_compare() correctly assumes that 2.8.1 is higher than 2.8.1-DEV |
if (version_compare($local_version,$latest_stable,'>')) { |
$this->setStatus(VNag::STATUS_OK); |
$this->setHeadline("Version $local_version (Latest stable version $latest_stable) at $system_dir", true); |
/trunk/signtool/sign |
---|
24,6 → 24,7 |
for ($i=1; $i<$argc; $i++) { |
$file = $argv[$i]; |
if (is_dir($file)) continue; |
$cont = file_get_contents($file); |
$original = $cont; |