Subversion Repositories vnag

Compare Revisions

No changes between revisions

Regard whitespace Rev 58 → Rev 59

/trunk/framework/vnag_framework.inc.php
1,25 → 1,25
<?php /* <ViaThinkSoftSignature>
ogeU7sU9og0Wo32ZGa8L9wIY+V280zVqPOo8/wFGNLcjhWISQDQiY/6hyvIb0IODQ
7GQ2eU7C0QiTPiaMy7C1H9EXqhoCyKtDqTtkXso2KCYTNqkUtcna/UjX12mZwvQ89
ltvtnRJeC1OXO1XcwE0/L1XZlo68dYSvgmufJQheVYAj9uU7PW9sb2YH+WTK8BM2M
JUHn+JdLnY9QUlOLp6bVYXJqDxqzj81uHGH5oXnhrqvsKvd8CrhUwy2X6fCpWgyId
S46OaEpBykHYdPIwFo04G3HfIyeWCQxnOIcxBbeuz1jee48I5BHFJczmkpYerE/Ao
V0zlIF7cXWvSNn2XVC9+AyfDIA/BmtafqkOnDKHNrVmsQHx0QBL++C6ZoooE78ArT
rkmjPLr8uK896O1qEppZ67rWDRdsZNMQIpk9QDS4PM6SQn6dfawxYxWA12h6+iFOB
vuYVdNL17sZABPbpGqhnJCNS6e/nHgeym6b5XVuN+d8u+R6Fm7SPj6VttIDgF9Ux6
vBgpF+v9hSdgbup9ClFX1XJGsTmwS4PWB667oJdBCyHpzyvkpvw8VY/wAIKlkEdD+
O2lRasjrVrvNGp8LlBWlheMwEexhS2tmCZ6W+oP21puOsKhtCZD5a0PWjd/Oyo5bD
DKlbuNs4pXokF5C0nVyHH8H/6BGGdRmTwUc64dE5RrSZlRi+2PvCJsAGzJeIagsVc
BrDl7uNe84b9sBJlJtIiWulE7pxg6wwk9dcSznUEzEsq/LnpKANxv4l8kCckP1BoI
yA4FahIjnsByB4vpV+zwX59DxVtmZH4nNigtZIL9j5cEjgb5XHwYDyh/nlStEj8FL
wHJ0YMnYuItDuiW2j1ZBCj/ZemKJNHDjLtlo9QOsIWrcKgm/CRO/08WMt62CL4GvJ
gqvRGbkZKuJMQTBkSxR9Ex6MyzhknWokHVV3xAWAb62B6wILFtWAYVgAgzcERr+Qd
suffXc41q5xjx1jpBkgCN26wj96fPu+jeKHS3/m/ck4PLNsWwicNGOS/uppJTb8d+
FvNy7yTk4E91H9ui4Us6RzoqbRT+Z8EQQqBl5nLkzqNzNN4gMgBNvICfsWBNJbHpY
enq7LIYYfqBISDJ5WcWw/Z51e3z8Uk9TOOBNkcpRyjUe/F1Q3bhRLrz/eeXnBzkG0
7Cji5xIasOO6qkgZSbcNqqvQ0chkrfOgB2FnsT8WUFIYtLaJOXHV/r0VGbTFhOTSv
2968Q3wsFxstk8DlKtWgl3LeYb2ECvNPFM5iZrisvx8EGcZNp2xJDniE9xorfKJTl
Gh43qnLC0djTq+mIp8V2fP8QqK8MoSxPiowJIyzXUCD2YOppdiYeaFdqXyZioy9wJ
QoZ88Uk+0bsqwHYjMZ5dp5xPx6r1En9+loEwswsXD8grSVXtxqkcuW/iu7bJNusTk
aufV9B2vIRXketty/Elm2F19KtbS9egj8AWXQ76RUfJ7hDVdzfvABjKxpLxNzb1SN
wn3Fa2t3V4Li/UEJlSoNUtmMSWYpULwwpBQeZPjCtF6iRwP6nUgFQczREnuYKDO7W
S43iFGwAQPHZ3UgGQDxO3EBNZn5SzzgngwhIegSYVKVV2oQjUHD0Qnp7lDaJIwlE0
4vq2Mo/TiltvtryEiwn6xJbs67+qtC8FdJKIzy+q6TnHN122Zrk+qwoL6MqlFhvXv
mMHtf5bc/0+4BpT30EjNtHWpDmDae9uFO0fjeotMGAnhG/FAHqiRvHPYL62xyG+of
3kooFcSVXYcFjAnIWMoGSOl7VcJ4yRgO3sW6atLQmSQG5vEBTP9ZzLXbd6NDSxuVa
5Sse9JGELVW+tAUJux99LpMveKi37X6frXJyPcVdrsz68vqtQrTOwKq5yZ3dEfAVM
H6sjhMh4tGCVI88jak6TbRIzNgae0xT0BegBE5sxYxA5+ZmwqBuFNYmUtm1rsv/Q1
SQy+i8uvS7DdVo29ZD/+hn3ebocOx8GEA5jXzJtKik3IgGHlLF5XFycoRbSt72z2/
Ik6PK4osg2gQnTUY0++XLdGejEg3Mja+aOvSyXDd+gJbT3ed1Fsv6CXmIa2cmt82c
P2YbR/Eqbxu22lKXVq0iqnN2vigtOvUIHey4Mi/A0zzCYBARBzMMzlahJQH5R24ub
y63OylvBLtuu66PWB1ebZnnPLEzBdU5YzFiHkS+xTgDqjNB4BlTGmHwGbFujWUcwi
JKUbPBjFguVetaedI6kMe5D6BMdK+UBk+rhV3M7u0r/nV6S0RqK0tOKZSmZMhiECn
GKgMPVoiroN+DLSC6dlc/uVMdLD6pJHmcNht8ExAwe214w9Afr/uNCkrpJBX/B3gu
sLtBmAlXXUiHCXzD+uN1/QK1ZG5npIgPodDouWDg8nSnokK4XcxqqpfnUSk67qeu7
r0wIFCRCLyBceUAeGSZyqgQyP8wZ6A6+9+or/jey0E/pCDUhqB5gjVyYrp8UNG54X
EHv/hM6EnaoZwbOptxKkVwkzXrT1Fj2W6BfnFme6xSqSi7MkkDpfsVoNYqamabWGp
A6Pn/wW4XdJdoUOZ4hVR433AnQl0Yl9u2qQwUO/nFtNYPSxitH6h8CMjN0A1OzZje
IBUfyPrItQhMAUYBOewxXhqbRF0NrNxW7zHBtDn7jmZnJFzM0d0JGmTvBIwVr5nxD
OxPQ+uJpangO69Nx1KTWTlwmav8V3lfcS2rJrh0s8N+A7CBgZ+YqdCgga6mt+JEMe
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;