Changeset 34e7428 in nscp
- Timestamp:
- 07/01/08 06:39:49 (5 years ago)
- Branches:
- master, 0.4.0, 0.4.1, 0.4.2, stable
- Children:
- da1c7e1
- Parents:
- a720da5
- Files:
-
- 10 edited
-
AutoBuild.h (modified) (1 diff)
-
changelog (modified) (2 diffs)
-
include/EnumNtSrv.cpp (modified) (5 diffs)
-
include/EnumNtSrv.h (modified) (1 diff)
-
modules/CheckEventLog/CheckEventLog.cpp (modified) (2 diffs)
-
modules/CheckSystem/CheckSystem.cpp (modified) (19 diffs)
-
modules/CheckWMI/CheckWMI.cpp (modified) (10 diffs)
-
modules/CheckWMI/CheckWMI.h (modified) (1 diff)
-
modules/CheckWMI/WMIQuery.cpp (modified) (2 diffs)
-
modules/CheckWMI/WMIQuery.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
AutoBuild.h
rc165d1d r34e7428 3 3 // change the FALSE to TRUE for autoincrement of build number 4 4 #define INCREMENT_VERSION TRUE 5 #define FILEVER 0,3,3,1 26 #define PRODUCTVER 0,3,3,1 27 #define STRFILEVER _T("0.3.3.1 2")8 #define STRPRODUCTVER _T("0.3.3.1 2")9 #define STRPRODUCTDATE _T("2008-06- 25")5 #define FILEVER 0,3,3,13 6 #define PRODUCTVER 0,3,3,13 7 #define STRFILEVER _T("0.3.3.13") 8 #define STRPRODUCTVER _T("0.3.3.13") 9 #define STRPRODUCTDATE _T("2008-06-30") 10 10 #endif // AUTOBUILD_H -
changelog
ra720da5 r34e7428 6 6 * "The message is blocked by User Interface Privilege Isolation, Administrative applications that need to see it can allow it through by calling ChangeWindowMessageFilter after making sure the necessary security precautions are in place. " 7 7 8 2008-07-01 MickeM 9 + Added new option (namespace) to CheckWMI and CheckWMIValue use like so: 10 CheckWMI namespace=root\\cimv2 MaxCrit=3 MinWarn=1 "Query:load=Select * from win32_Processor" 11 8 12 2008-06-30 MickeM 9 13 * Fixed issue with CheckFile and performance data ( #156 ) … … 11 15 *NOTICE* this is all reasons (so if the counter is missing or some such the same will happen not just when the instance is missing) 12 16 Message will reflect reason. 13 * Fixed issue in the arraybuffer (one of the plit functions had a problem with multiple chars of the same) 17 * Fixed issue in the arraybuffer (one of the plit functions had a problem with multiple chars of the same) ( #190 ) 14 18 15 19 2008-06-25 MickeM -
include/EnumNtSrv.cpp
r8f167e8 r34e7428 19 19 #include <windows.h> 20 20 #include <WinSvc.h> 21 #include <error.hpp> 21 22 #include "EnumNtSrv.h" 22 23 … … 184 185 SC_HANDLE scman = ::OpenSCManager(NULL,NULL,SC_MANAGER_ENUMERATE_SERVICE); 185 186 if (!scman) { 186 throw NTServiceException(name, _T("Could not open ServiceControl manager "), GetLastError());187 throw NTServiceException(name, _T("Could not open ServiceControl manager: ") + error::lookup::last_error()); 187 188 } 188 189 SC_HANDLE sh = ::OpenService(scman,name.c_str(),SERVICE_QUERY_STATUS); … … 193 194 ::CloseServiceHandle(scman); 194 195 delete [] buf; 195 throw NTServiceException(name, _T("GetServiceKeyName: Could not translate service name "), GetLastError());196 throw NTServiceException(name, _T("GetServiceKeyName: Could not translate service name: ") + error::lookup::last_error()); 196 197 } 197 198 /* … … 207 208 if (sh == NULL) { 208 209 ::CloseServiceHandle(scman); 209 throw NTServiceException(name, _T("OpenService: Could not open Service "), GetLastError());210 throw NTServiceException(name, _T("OpenService: Could not open Service: ") + error::lookup::last_error()); 210 211 } 211 212 } … … 217 218 ::CloseServiceHandle(sh); 218 219 ::CloseServiceHandle(scman); 219 throw NTServiceException(name, _T("QueryServiceStatus: Could not query service status "), GetLastError());220 throw NTServiceException(name, _T("QueryServiceStatus: Could not query service status: ") + error::lookup::last_error()); 220 221 } 221 222 // TODO: Get more info here -
include/EnumNtSrv.h
r8f167e8 r34e7428 40 40 std::wstring name_; 41 41 std::wstring msg_; 42 unsigned int error_;43 42 public: 44 NTServiceException(std::wstring name,std::wstring msg ,unsigned int error) : name_(name), error_(error), msg_(msg) {};43 NTServiceException(std::wstring name,std::wstring msg) : name_(name), msg_(msg) {}; 45 44 46 45 std::wstring getError() { 47 return _T("Service: ") + name_ + _T(" caused: ") + msg_ + _T("(") + strEx::itos(error_) + _T(")");46 return _T("Service: '") + name_ + _T("' caused: ") + msg_; 48 47 } 49 48 }; -
modules/CheckEventLog/CheckEventLog.cpp
r7f596ce r34e7428 392 392 if (command != _T("CheckEventLog")) 393 393 return NSCAPI::returnIgnored; 394 typedef checkHolders::CheckCon atiner<checkHolders::MaxMinBoundsULongInteger> EventLogQueryConatiner;394 typedef checkHolders::CheckContainer<checkHolders::MaxMinBoundsULongInteger> EventLogQueryContainer; 395 395 typedef std::pair<int,eventlog_filter> filteritem_type; 396 396 typedef std::list<filteritem_type > filterlist_type; … … 400 400 std::list<std::wstring> files; 401 401 filterlist_type filter_chain; 402 EventLogQueryCon atiner query;402 EventLogQueryContainer query; 403 403 404 404 bool bPerfData = true; -
modules/CheckSystem/CheckSystem.cpp
rdff5db9 r34e7428 358 358 NSCAPI::nagiosReturn CheckSystem::checkCPU(const unsigned int argLen, TCHAR **char_args, std::wstring &msg, std::wstring &perf) 359 359 { 360 typedef checkHolders::CheckCon atiner<checkHolders::MaxMinBounds<checkHolders::NumericBounds<int, cpuload_handler> > > CPULoadConatiner;360 typedef checkHolders::CheckContainer<checkHolders::MaxMinBounds<checkHolders::NumericBounds<int, cpuload_handler> > > CPULoadContainer; 361 361 362 362 std::list<std::wstring> stl_args = arrayBuffer::arrayBuffer2list(argLen, char_args); … … 365 365 return NSCAPI::returnUNKNOWN; 366 366 } 367 std::list<CPULoadCon atiner> list;367 std::list<CPULoadContainer> list; 368 368 NSCAPI::nagiosReturn returnCode = NSCAPI::returnOK; 369 369 bool bNSClient = false; 370 370 bool bPerfData = true; 371 CPULoadCon atiner tmpObject;371 CPULoadContainer tmpObject; 372 372 373 373 tmpObject.data = _T("cpuload"); … … 393 393 MAP_OPTIONS_END() 394 394 395 for (std::list<CPULoadCon atiner>::const_iterator it = list.begin(); it != list.end(); ++it) {396 CPULoadCon atiner load = (*it);395 for (std::list<CPULoadContainer>::const_iterator it = list.begin(); it != list.end(); ++it) { 396 CPULoadContainer load = (*it); 397 397 PDHCollector *pObject = pdhThread.getThread(); 398 398 if (!pObject) { … … 424 424 NSCAPI::nagiosReturn CheckSystem::checkUpTime(const unsigned int argLen, TCHAR **char_args, std::wstring &msg, std::wstring &perf) 425 425 { 426 typedef checkHolders::CheckCon atiner<checkHolders::MaxMinBoundsTime> UpTimeConatiner;426 typedef checkHolders::CheckContainer<checkHolders::MaxMinBoundsTime> UpTimeContainer; 427 427 428 428 std::list<std::wstring> stl_args = arrayBuffer::arrayBuffer2list(argLen, char_args); … … 434 434 bool bNSClient = false; 435 435 bool bPerfData = true; 436 UpTimeCon atiner bounds;436 UpTimeContainer bounds; 437 437 438 438 bounds.data = _T("uptime"); … … 510 510 NSCAPI::nagiosReturn CheckSystem::checkServiceState(const unsigned int argLen, TCHAR **char_args, std::wstring &msg, std::wstring &perf) 511 511 { 512 typedef checkHolders::CheckCon atiner<checkHolders::SimpleBoundsStateBoundsInteger> StateConatiner;512 typedef checkHolders::CheckContainer<checkHolders::SimpleBoundsStateBoundsInteger> StateContainer; 513 513 std::list<std::wstring> stl_args = arrayBuffer::arrayBuffer2list(argLen, char_args); 514 514 if (stl_args.empty()) { … … 516 516 return NSCAPI::returnUNKNOWN; 517 517 } 518 std::list<StateCon atiner> list;518 std::list<StateContainer> list; 519 519 std::set<std::wstring> excludeList; 520 520 NSCAPI::nagiosReturn returnCode = NSCAPI::returnOK; 521 521 bool bNSClient = false; 522 StateCon atiner tmpObject;522 StateContainer tmpObject; 523 523 bool bPerfData = true; 524 524 bool bAutoStart = false; … … 574 574 } 575 575 } 576 for (std::list<StateCon atiner>::iterator it = list.begin(); it != list.end(); ++it) {576 for (std::list<StateContainer>::iterator it = list.begin(); it != list.end(); ++it) { 577 577 TNtServiceInfo info; 578 578 if (bNSClient) { … … 642 642 NSCAPI::nagiosReturn CheckSystem::checkMem(const unsigned int argLen, TCHAR **char_args, std::wstring &msg, std::wstring &perf) 643 643 { 644 typedef checkHolders::CheckCon atiner<checkHolders::MaxMinBounds<checkHolders::NumericPercentageBounds<checkHolders::PercentageValueType<unsigned __int64, unsigned __int64>, checkHolders::disk_size_handler<unsigned __int64> > > > MemoryConatiner;644 typedef checkHolders::CheckContainer<checkHolders::MaxMinBounds<checkHolders::NumericPercentageBounds<checkHolders::PercentageValueType<unsigned __int64, unsigned __int64>, checkHolders::disk_size_handler<unsigned __int64> > > > MemoryContainer; 645 645 std::list<std::wstring> stl_args = arrayBuffer::arrayBuffer2list(argLen, char_args); 646 646 if (stl_args.empty()) { … … 648 648 return NSCAPI::returnUNKNOWN; 649 649 } 650 std::list<MemoryCon atiner> list;650 std::list<MemoryContainer> list; 651 651 NSCAPI::nagiosReturn returnCode = NSCAPI::returnOK; 652 652 bool bShowAll = false; 653 653 bool bPerfData = true; 654 654 bool bNSClient = false; 655 MemoryCon atiner tmpObject;655 MemoryContainer tmpObject; 656 656 657 657 MAP_OPTIONS_BEGIN(stl_args) … … 680 680 bool firstPaged = true; 681 681 bool firstMem = true; 682 for (std::list<MemoryCon atiner>::const_iterator pit = list.begin(); pit != list.end(); ++pit) {683 MemoryCon atiner check = (*pit);682 for (std::list<MemoryContainer>::const_iterator pit = list.begin(); pit != list.end(); ++pit) { 683 MemoryContainer check = (*pit); 684 684 check.setDefault(tmpObject); 685 685 checkHolders::PercentageValueType<unsigned long long, unsigned long long> value; … … 807 807 NSCAPI::nagiosReturn CheckSystem::checkProcState(const unsigned int argLen, TCHAR **char_args, std::wstring &msg, std::wstring &perf) 808 808 { 809 typedef checkHolders::CheckCon atiner<checkHolders::MaxMinStateBoundsStateBoundsInteger> StateConatiner;809 typedef checkHolders::CheckContainer<checkHolders::MaxMinStateBoundsStateBoundsInteger> StateContainer; 810 810 std::list<std::wstring> stl_args = arrayBuffer::arrayBuffer2list(argLen, char_args); 811 811 if (stl_args.empty()) { … … 813 813 return NSCAPI::returnUNKNOWN; 814 814 } 815 std::list<StateCon atiner> list;815 std::list<StateContainer> list; 816 816 NSCAPI::nagiosReturn returnCode = NSCAPI::returnOK; 817 817 bool bNSClient = false; 818 StateCon atiner tmpObject;818 StateContainer tmpObject; 819 819 bool bPerfData = true; 820 820 bool useCmdLine = false; … … 867 867 } 868 868 869 for (std::list<StateCon atiner>::iterator it = list.begin(); it != list.end(); ++it) {869 for (std::list<StateContainer>::iterator it = list.begin(); it != list.end(); ++it) { 870 870 NSPROCLST::iterator proc; 871 871 if (match == match_string) { … … 950 950 NSCAPI::nagiosReturn CheckSystem::checkCounter(const unsigned int argLen, TCHAR **char_args, std::wstring &msg, std::wstring &perf) 951 951 { 952 typedef checkHolders::CheckCon atiner<checkHolders::MaxMinBoundsDouble> CounterConatiner;952 typedef checkHolders::CheckContainer<checkHolders::MaxMinBoundsDouble> CounterContainer; 953 953 954 954 std::list<std::wstring> stl_args = arrayBuffer::arrayBuffer2list(argLen, char_args); … … 957 957 return NSCAPI::returnUNKNOWN; 958 958 } 959 std::list<CounterCon atiner> counters;959 std::list<CounterContainer> counters; 960 960 NSCAPI::nagiosReturn returnCode = NSCAPI::returnOK; 961 961 bool bNSClient = false; … … 963 963 /* average maax */ 964 964 bool bCheckAverages = true; 965 std::wstring invalidStatus = _T("UNKNOWN"); 965 966 unsigned int averageDelay = 1000; 966 CounterCon atiner tmpObject;967 CounterContainer tmpObject; 967 968 968 969 MAP_OPTIONS_BEGIN(stl_args) 970 MAP_OPTIONS_STR(_T("InvalidStatus"), invalidStatus) 969 971 MAP_OPTIONS_STR_AND(_T("Counter"), tmpObject.data, counters.push_back(tmpObject)) 970 972 MAP_OPTIONS_STR(_T("MaxWarn"), tmpObject.warn.max) … … 988 990 MAP_OPTIONS_FALLBACK_AND(tmpObject.data, counters.push_back(tmpObject)) 989 991 MAP_OPTIONS_END() 990 for (std::list<CounterCon atiner>::const_iterator cit = counters.begin(); cit != counters.end(); ++cit) {991 CounterCon atiner counter = (*cit);992 for (std::list<CounterContainer>::const_iterator cit = counters.begin(); cit != counters.end(); ++cit) { 993 CounterContainer counter = (*cit); 992 994 try { 993 995 std::wstring tstr; … … 995 997 msg = tstr; 996 998 msg += _T(" (") + counter.getAlias() + _T("|") + counter.data + _T(")"); 997 return NSC API::returnUNKNOWN;999 return NSCHelper::translateReturn(invalidStatus); 998 1000 } 999 1001 PDH::PDHQuery pdh; -
modules/CheckWMI/CheckWMI.cpp
r367bf20 r34e7428 80 80 81 81 NSCAPI::nagiosReturn CheckWMI::CheckSimpleWMI(const unsigned int argLen, TCHAR **char_args, std::wstring &message, std::wstring &perf) { 82 typedef checkHolders::CheckCon atiner<checkHolders::MaxMinBounds<checkHolders::NumericBounds<int, checkHolders::int_handler> > > WMIConatiner;82 typedef checkHolders::CheckContainer<checkHolders::MaxMinBounds<checkHolders::NumericBounds<int, checkHolders::int_handler> > > WMIContainer; 83 83 84 84 NSCAPI::nagiosReturn returnCode = NSCAPI::returnOK; … … 92 92 unsigned int truncate = 0; 93 93 std::wstring query, alias; 94 std::wstring ns = _T("root\\cimv2"); 94 95 bool bPerfData = true; 95 96 96 WMICon atiner result_query;97 WMIContainer result_query; 97 98 try { 98 99 MAP_OPTIONS_BEGIN(args) 99 100 MAP_OPTIONS_STR(_T("Query"), query) 100 101 MAP_OPTIONS_STR2INT(_T("truncate"), truncate) 102 MAP_OPTIONS_STR2INT(_T("namespace"), ns) 101 103 MAP_OPTIONS_STR(_T("Alias"), alias) 102 104 MAP_OPTIONS_BOOL_FALSE(IGNORE_PERFDATA, bPerfData) … … 123 125 try { 124 126 WMIQuery wmiQuery; 125 rows = wmiQuery.execute( query);127 rows = wmiQuery.execute(ns, query); 126 128 } catch (WMIException e) { 127 129 message = _T("WMIQuery failed: ") + e.getMessage(); … … 151 153 152 154 NSCAPI::nagiosReturn CheckWMI::CheckSimpleWMIValue(const unsigned int argLen, TCHAR **char_args, std::wstring &message, std::wstring &perf) { 153 typedef checkHolders::CheckCon atiner<checkHolders::MaxMinBounds<checkHolders::NumericBounds<long long, checkHolders::int64_handler> > > WMIConatiner;155 typedef checkHolders::CheckContainer<checkHolders::MaxMinBounds<checkHolders::NumericBounds<long long, checkHolders::int64_handler> > > WMIContainer; 154 156 std::list<std::wstring> stl_args = arrayBuffer::arrayBuffer2list(argLen, char_args); 155 157 if (stl_args.empty()) { … … 157 159 return NSCAPI::returnUNKNOWN; 158 160 } 159 std::list<WMICon atiner> list;161 std::list<WMIContainer> list; 160 162 NSCAPI::nagiosReturn returnCode = NSCAPI::returnOK; 161 WMICon atiner tmpObject;163 WMIContainer tmpObject; 162 164 bool bPerfData = true; 163 165 unsigned int truncate = 0; 164 166 std::wstring query; 167 std::wstring ns = _T("root\\cimv2"); 165 168 std::wstring aliasCol; 166 169 … … 171 174 MAP_OPTIONS_SHOWALL(tmpObject) 172 175 MAP_OPTIONS_NUMERIC_ALL(tmpObject, _T("")) 176 MAP_OPTIONS_STR2INT(_T("namespace"), ns) 173 177 MAP_OPTIONS_STR(_T("Alias"), tmpObject.data) 174 178 MAP_OPTIONS_STR(_T("AliasCol"), aliasCol) … … 192 196 try { 193 197 WMIQuery wmiQuery; 194 rows = wmiQuery.execute( query);198 rows = wmiQuery.execute(ns, query); 195 199 } catch (WMIException e) { 196 200 message = _T("WMIQuery failed: ") + e.getMessage(); … … 199 203 int hit_count = 0; 200 204 201 for (std::list<WMICon atiner>::const_iterator it = list.begin(); it != list.end(); ++it) {202 WMICon atiner itm = (*it);205 for (std::list<WMIContainer>::const_iterator it = list.begin(); it != list.end(); ++it) { 206 WMIContainer itm = (*it); 203 207 itm.setDefault(tmpObject); 204 208 itm.perfData = bPerfData; … … 219 223 } 220 224 for (WMIQuery::wmi_row::list_type::const_iterator citCol = (*citRow).results.begin(); citCol != (*citRow).results.end(); ++citCol) { 221 for (std::list<WMICon atiner>::const_iterator it = list.begin(); it != list.end(); ++it) {222 WMICon atiner itm = (*it);225 for (std::list<WMIContainer>::const_iterator it = list.begin(); it != list.end(); ++it) { 226 WMIContainer itm = (*it); 223 227 if (itm.data == _T("*")) { 224 228 found = true; … … 258 262 //WMIQuery wmiQuery; 259 263 std::wstring query = command; 264 std::wstring ns = _T("root\\cimv2"); 260 265 query += _T(" ") + arrayBuffer::arrayBuffer2string(char_args, argLen, _T(" ")); 261 266 WMIQuery::result_type rows; 262 267 try { 263 268 WMIQuery wmiQuery; 264 rows = wmiQuery.execute( query);269 rows = wmiQuery.execute(ns, query); 265 270 } catch (WMIException e) { 266 271 NSC_LOG_ERROR_STD(_T("WMIQuery failed: ") + e.getMessage()); -
modules/CheckWMI/CheckWMI.h
r367bf20 r34e7428 59 59 60 60 private: 61 typedef checkHolders::CheckCon atiner<checkHolders::MaxMinBoundsDiscSize> PathConatiner;62 typedef checkHolders::CheckCon atiner<checkHolders::MaxMinPercentageBoundsDiskSize> DriveConatiner;61 typedef checkHolders::CheckContainer<checkHolders::MaxMinBoundsDiscSize> PathContainer; 62 typedef checkHolders::CheckContainer<checkHolders::MaxMinPercentageBoundsDiskSize> DriveContainer; 63 63 }; -
modules/CheckWMI/WMIQuery.cpp
rdff5db9 r34e7428 36 36 } 37 37 38 WMIQuery::result_type WMIQuery::execute(std::wstring query)38 WMIQuery::result_type WMIQuery::execute(std::wstring ns, std::wstring query) 39 39 { 40 40 result_type ret; … … 46 46 } 47 47 48 BSTR bstrNamespace = (_T("root\\cimv2"));48 CComBSTR strNamespace(ns.c_str()); 49 49 CComPtr< IWbemServices > service; 50 hr = locator->ConnectServer( bstrNamespace, NULL, NULL, NULL, WBEM_FLAG_CONNECT_USE_MAX_WAIT, NULL, NULL, &service );50 hr = locator->ConnectServer( strNamespace, NULL, NULL, NULL, WBEM_FLAG_CONNECT_USE_MAX_WAIT, NULL, NULL, &service ); 51 51 if (FAILED(hr)) { 52 52 throw WMIException(_T("ConnectServer failed!"), hr); -
modules/CheckWMI/WMIQuery.h
r367bf20 r34e7428 147 147 ~WMIQuery(void) {}; 148 148 149 result_type execute(std::wstring query);149 result_type execute(std::wstring ns, std::wstring query); 150 150 std::wstring sanitize_string(LPTSTR in); 151 151 };
Note: See TracChangeset
for help on using the changeset viewer.








