return t;
}
-irc::tokenstream::tokenstream(const std::string& msg, size_t start)
- : message(msg, start)
+irc::tokenstream::tokenstream(const std::string& msg, size_t start, size_t end)
+ : message(msg, start, end)
, position(0)
{
}
return this->pos > this->tokens.length();
}
+bool irc::sepstream::Contains(const std::string& value)
+{
+ std::string token;
+ while (GetToken(token))
+ if (value == token)
+ return true;
+
+ return false;
+}
+
irc::portparser::portparser(const std::string &source, bool allow_overlapped)
: sep(source), in_range(0), range_begin(0), range_end(0), overlapped(allow_overlapped)
{
if (x.empty())
return 0;
- while (Overlaps(atoi(x.c_str())))
+ while (Overlaps(ConvToNum<long>(x)))
{
if (!sep.GetToken(x))
return 0;
if (dash != std::string::npos)
{
std::string sbegin(x, 0, dash);
- range_begin = atoi(sbegin.c_str());
- range_end = atoi(x.c_str()+dash+1);
+ range_begin = ConvToNum<long>(sbegin);
+ range_end = ConvToNum<long>(x.c_str() + dash + 1);
if ((range_begin > 0) && (range_end > 0) && (range_begin < 65536) && (range_end < 65536) && (range_begin < range_end))
{
else
{
/* Assume its just the one port */
- return atoi(sbegin.c_str());
+ return ConvToNum<long>(sbegin);
}
}
else
{
- return atoi(x.c_str());
+ return ConvToNum<long>(x);
}
}