]> granicus.if.org Git - icinga2/commitdiff
Fix fmt-countertype in check_perfmon
authorJean Flach <jean-marcel.flach@netways.de>
Thu, 8 Sep 2016 14:30:30 +0000 (16:30 +0200)
committerJean Flach <jean-marcel.flach@netways.de>
Thu, 8 Sep 2016 14:37:09 +0000 (16:37 +0200)
All three options are now working as expected

fixes #10487

plugins/check_perfmon.cpp

index cf0baec7922f467cba59e3f5bc8c0bf7530dd45c..cae6aa5e0167371983848242f57883f90b70648e 100644 (file)
@@ -131,13 +131,11 @@ BOOL ParseArguments(CONST INT ac, WCHAR **av, po::variables_map& vm, printInfoSt
        }
 
        if (vm.count("fmt-countertype")) {
-               if (vm["fmt-countertype"].as<std::wstring>().compare(L"double"))
-                       printInfo.dwRequestedType = PDH_FMT_DOUBLE;
-               else if (vm["fmt-countertype"].as<std::wstring>().compare(L"int64"))
+               if (!vm["fmt-countertype"].as<std::wstring>().compare(L"int64"))
                        printInfo.dwRequestedType = PDH_FMT_LARGE;
-               else if (vm["fmt-countertype"].as<std::wstring>().compare(L"long"))
+               else if (!vm["fmt-countertype"].as<std::wstring>().compare(L"long"))
                        printInfo.dwRequestedType = PDH_FMT_LONG;
-               else {
+               else if (vm["fmt-countertype"].as<std::wstring>().compare(L"double")) {
                        std::wcout << "Unknown value type " << vm["fmt-countertype"].as<std::wstring>() << '\n';
                        return FALSE;
                }
@@ -339,12 +337,15 @@ BOOL QueryPerfData(printInfoStruct& pI)
 
        switch (pI.dwRequestedType)
        {
-       case (PDH_FMT_LONG):
+       case (PDH_FMT_LONG) :
                pI.dValue = pDisplayValues[0].FmtValue.longValue;
+               break;
        case (PDH_FMT_LARGE) :
                pI.dValue = pDisplayValues[0].FmtValue.largeValue;
+               break;
        default:
                pI.dValue = pDisplayValues[0].FmtValue.doubleValue;
+               break;
        }
 
        delete[]pDisplayValues;