mirror of https://github.com/Icinga/icinga2.git
parent
20a2fd2388
commit
27f527d0ad
|
@ -61,13 +61,10 @@ bool AttributeFilter::Apply(const Table::Ptr& table, const Value& row)
|
|||
else
|
||||
return (static_cast<String>(value) == m_Operand);
|
||||
} else if (m_Operator == "~") {
|
||||
boost::regex expr(static_cast<std::string>(m_Operand));
|
||||
boost::regex expr(m_Operand.GetData());
|
||||
String operand = value;
|
||||
boost::smatch what;
|
||||
String val = static_cast<String>(value);
|
||||
std::string::const_iterator begin = val.Begin();
|
||||
std::string::const_iterator end = val.End();
|
||||
|
||||
bool ret = boost::regex_search(begin, end, what, expr);
|
||||
bool ret = boost::regex_search(operand.GetData(), what, expr);
|
||||
|
||||
//Log(LogDebug, "livestatus", "Attribute filter '" + m_Operand + " " + m_Operator + " " +
|
||||
// static_cast<String>(value) + "' " + (ret ? "matches" : "doesn't match") + "." );
|
||||
|
@ -76,13 +73,10 @@ bool AttributeFilter::Apply(const Table::Ptr& table, const Value& row)
|
|||
} else if (m_Operator == "=~") {
|
||||
return string_iless()(value, m_Operand);
|
||||
} else if (m_Operator == "~~") {
|
||||
boost::regex expr(static_cast<std::string>(m_Operand), boost::regex::icase);
|
||||
boost::regex expr(m_Operand.GetData(), boost::regex::icase);
|
||||
String operand = value;
|
||||
boost::smatch what;
|
||||
String val = static_cast<String>(value);
|
||||
std::string::const_iterator begin = val.Begin();
|
||||
std::string::const_iterator end = val.End();
|
||||
|
||||
bool ret = boost::regex_search(begin, end, what, expr);
|
||||
bool ret = boost::regex_search(operand.GetData(), what, expr);
|
||||
|
||||
//Log(LogDebug, "livestatus", "Attribute filter '" + m_Operand + " " + m_Operator + " " +
|
||||
// static_cast<String>(value) + "' " + (ret ? "matches" : "doesn't match") + "." );
|
||||
|
|
|
@ -122,6 +122,11 @@ size_t String::GetLength(void) const
|
|||
return m_Data.size();
|
||||
}
|
||||
|
||||
std::string& String::GetData(void)
|
||||
{
|
||||
return m_Data;
|
||||
}
|
||||
|
||||
size_t String::Find(const String& str, size_t pos) const
|
||||
{
|
||||
return m_Data.find(str, pos);
|
||||
|
|
|
@ -76,6 +76,8 @@ public:
|
|||
void Clear(void);
|
||||
size_t GetLength(void) const;
|
||||
|
||||
std::string& GetData(void);
|
||||
|
||||
size_t Find(const String& str, size_t pos = 0) const;
|
||||
size_t FindFirstOf(const char *s, size_t pos = 0) const;
|
||||
size_t FindFirstOf(char ch, size_t pos = 0) const;
|
||||
|
|
Loading…
Reference in New Issue