mirror of
https://github.com/zeek/zeek.git
synced 2025-10-06 16:48:19 +00:00
Ascii formatter: do not complain about port text.
The ascii formatter already was happy to read ports in the form "42/tcp"; however it emitted a warning message for each line. This patch fixes this and adds a bit more testing for the existing behavior.
This commit is contained in:
parent
116079a9ad
commit
26ea1999ec
7 changed files with 88 additions and 16 deletions
|
@ -261,8 +261,10 @@ threading::Value* Ascii::ParseValue(const string& s, const string& name, TypeTag
|
|||
break;
|
||||
|
||||
case TYPE_PORT:
|
||||
{
|
||||
val->val.port_val.proto = TRANSPORT_UNKNOWN;
|
||||
pos = s.find('/');
|
||||
string numberpart;
|
||||
if ( pos != std::string::npos && s.length() > pos + 1 )
|
||||
{
|
||||
auto proto = s.substr(pos+1);
|
||||
|
@ -272,10 +274,22 @@ threading::Value* Ascii::ParseValue(const string& s, const string& name, TypeTag
|
|||
val->val.port_val.proto = TRANSPORT_UDP;
|
||||
else if ( strtolower(proto) == "icmp" )
|
||||
val->val.port_val.proto = TRANSPORT_ICMP;
|
||||
else if ( strtolower(proto) == "unknown" )
|
||||
val->val.port_val.proto = TRANSPORT_UNKNOWN;
|
||||
else
|
||||
GetThread()->Warning(GetThread()->Fmt("Port '%s' contained unknown protocol '%s'", s.c_str(), proto.c_str()));
|
||||
}
|
||||
|
||||
// make the string end at the position of "/";
|
||||
if ( pos != std::string::npos && pos > 0 )
|
||||
{
|
||||
numberpart = s.substr(0, pos);
|
||||
start = numberpart.c_str();
|
||||
}
|
||||
val->val.port_val.port = strtoull(start, &end, 10);
|
||||
if ( CheckNumberError(start, end) )
|
||||
goto parse_error;
|
||||
}
|
||||
break;
|
||||
|
||||
case TYPE_SUBNET:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue