Changeset 482e07e in nscp


Ignore:
Timestamp:
06/16/12 13:11:33 (12 months ago)
Author:
Michael Medin <michael@…>
Branches:
master, 0.4.0, 0.4.1, 0.4.2
Children:
796c188, 91f567f
Parents:
b67d231
Message:
  • Improved error handling in performance counters #436
  • Improved parsing of "legacy command lines"
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • changelog

    rb67d231 r482e07e  
    22 * Process times and similar ? 
    33 * Fix configuration GUI (low priority) 
    4  * Fixa dependonservice LanManWorkStation (old win) 
     4 * Fix dependonservice LanManWorkStation (old win) 
    55 * Fix RtlStringFromGUID problem on NT4 
     6 
     72012-06-12 MickeM 
     8 * Improved error handling in performance counters #436 
     9 * Improved parsing of "legacy command lines" 
    610 
    7112012-06-12 MickeM 
  • include/pdh/query.hpp

    r1cc8566 r482e07e  
    3737    CounterList counters_; 
    3838    PDH::PDH_HQUERY hQuery_; 
     39    bool hasDisplayedInvalidCOunter_; 
    3940  public: 
    40     PDHQuery() : hQuery_(NULL) { 
     41    PDHQuery() : hQuery_(NULL), hasDisplayedInvalidCOunter_(false) { 
    4142    } 
    4243    virtual ~PDHQuery(void) { 
     
    106107          status = (*it)->collect(); 
    107108        } 
    108         if (status.is_error()) { 
    109           throw PDHException(_T("Failed to poll counter: "), status); 
     109        if (status.is_negative_denominator()) { 
     110          if (!hasDisplayedInvalidCOunter_) { 
     111            hasDisplayedInvalidCOunter_ = true; 
     112            throw PDHException(_T("Negative denominator issue (check FAQ for ways to solve this): ") + (*it)->getName(), status); 
     113          } 
     114        } else if (status.is_error()) { 
     115          throw PDHException(_T("Failed to poll counter: ") + (*it)->getName(), status); 
    110116        } 
    111117      } 
  • modules/CheckExternalScripts/commands.hpp

    rb67d231 r482e07e  
    7272      std::wstringstream ss; 
    7373      ss << alias << _T("[") << alias << _T("] = ")  
    74         << _T("{command: ") << command  
    75         << _T(", arguments: ") << get_argument(); 
    76         if (!user.empty()) { 
    77           ss << _T(", user: ") << user  
    78           << _T(", domain: ") << domain  
    79           << _T(", password: ") << password; 
    80         } 
    81         ss << _T("}"); 
     74        << _T("{command: ") << command 
     75        << _T(", arguments: "); 
     76      bool first = true; 
     77      BOOST_FOREACH(const std::wstring &s, arguments) { 
     78        if (first) 
     79          first = false; 
     80        else  
     81          ss << L', '; 
     82        ss << s; 
     83      } 
     84      if (!user.empty()) { 
     85        ss << _T(", user: ") << user  
     86        << _T(", domain: ") << domain  
     87        << _T(", password: ") << password; 
     88      } 
     89      ss << _T("}"); 
    8290      return ss.str(); 
    8391    } 
     
    96104        } 
    97105        arguments.clear(); 
     106        std::list<std::wstring> buffer; 
    98107        BOOST_FOREACH(std::wstring s, list) { 
    99           arguments.push_back(s); 
     108          std::size_t len = s.length(); 
     109          if (buffer.empty()) { 
     110            if (len > 2 && s[0] == L'\"' && s[len-1]  == L'\"') { 
     111              buffer.push_back(s.substr(1, len-2)); 
     112            } else if (len > 1 && s[0] == L'\"') { 
     113              buffer.push_back(s); 
     114            } else { 
     115              arguments.push_back(s); 
     116            } 
     117          } else { 
     118            if (len > 1 && s[len-1] == L'\"') { 
     119              std::wstring tmp; 
     120              BOOST_FOREACH(const std::wstring &s2, buffer) { 
     121                if (tmp.empty()) { 
     122                  tmp = s2.substr(1); 
     123                } else { 
     124                  tmp += _T(" ") + s2; 
     125                } 
     126              } 
     127              arguments.push_back(tmp + _T(" ") + s.substr(0, len-1)); 
     128              buffer.clear(); 
     129            } else { 
     130              buffer.push_back(s); 
     131            } 
     132          } 
     133        } 
     134        if (!buffer.empty()) { 
     135          BOOST_FOREACH(const std::wstring &s, buffer) { 
     136            arguments.push_back(s); 
     137          } 
    100138        } 
    101139      } 
  • version.hpp

    rb67d231 r482e07e  
    11#ifndef VERSION_HPP 
    22#define VERSION_HPP 
    3 #define PRODUCTVER     0,4,0,175 
    4 #define STRPRODUCTVER  "0,4,0,175" 
    5 #define STRPRODUCTDATE "2012-06-12" 
     3#define PRODUCTVER     0,4,0,177 
     4#define STRPRODUCTVER  "0,4,0,177" 
     5#define STRPRODUCTDATE "2012-06-16" 
    66#endif // VERSION_HPP 
  • version.txt

    rb67d231 r482e07e  
    11version=0.4.0 
    2 build=175 
    3 date=2012-06-12 
     2build=177 
     3date=2012-06-16 
Note: See TracChangeset for help on using the changeset viewer.