MCPcopy Create free account
hub / github.com/Icinga/icinga2 / check_network

Function check_network

plugins/check_network.cpp:203–305  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

201}
202
203static int check_network(std::vector<nInterface>& vInterfaces)
204{
205
206 if (l_Debug)
207 std::wcout << L"Creating Query and adding counters" << '\n';
208
209 PDH_FMT_COUNTERVALUE_ITEM *pDisplayValuesIn = NULL, *pDisplayValuesOut = NULL;
210
211 PDH_HQUERY phQuery;
212 PDH_STATUS err = PdhOpenQuery(NULL, NULL, &phQuery);
213 if (!SUCCEEDED(err))
214 goto die;
215
216 const WCHAR *perfIn = L"\\Network Interface(*)\\Bytes Received/sec";
217 PDH_HCOUNTER phCounterIn;
218 err = PdhAddEnglishCounter(phQuery, perfIn, NULL, &phCounterIn);
219 if (!SUCCEEDED(err))
220 goto die;
221
222 const WCHAR *perfOut = L"\\Network Interface(*)\\Bytes Sent/sec";
223 PDH_HCOUNTER phCounterOut;
224 err = PdhAddEnglishCounter(phQuery, perfOut, NULL, &phCounterOut);
225 if (!SUCCEEDED(err))
226 goto die;
227
228 if (l_Debug)
229 std::wcout << L"Collecting first batch of query data" << '\n';
230
231 err = PdhCollectQueryData(phQuery);
232 if (!SUCCEEDED(err))
233 goto die;
234
235 if (l_Debug)
236 std::wcout << L"Sleep for one second" << '\n';
237
238 Sleep(1000);
239
240 if (l_Debug)
241 std::wcout << L"Collecting second batch of query data" << '\n';
242
243 err = PdhCollectQueryData(phQuery);
244 if (!SUCCEEDED(err))
245 goto die;
246
247 if (l_Debug)
248 std::wcout << L"Creating formatted counter arrays" << '\n';
249
250 DWORD dwItemCount;
251 DWORD dwBufferSizeIn = 0;
252 err = PdhGetFormattedCounterArray(phCounterIn, PDH_FMT_LONG, &dwBufferSizeIn, &dwItemCount, pDisplayValuesIn);
253 if (err == PDH_MORE_DATA || SUCCEEDED(err))
254 pDisplayValuesIn = reinterpret_cast<PDH_FMT_COUNTERVALUE_ITEM*>(new BYTE[dwItemCount*dwBufferSizeIn]);
255 else
256 goto die;
257
258 DWORD dwBufferSizeOut = 0;
259 err = PdhGetFormattedCounterArray(phCounterOut, PDH_FMT_LONG, &dwBufferSizeOut, &dwItemCount, pDisplayValuesOut);
260 if (err == PDH_MORE_DATA || SUCCEEDED(err))

Callers 1

wmainFunction · 0.85

Calls 2

printErrorInfoFunction · 0.85
push_backMethod · 0.80

Tested by

no test coverage detected