summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--node/Filter.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/node/Filter.cpp b/node/Filter.cpp
index 1f81a360..5cd295c3 100644
--- a/node/Filter.cpp
+++ b/node/Filter.cpp
@@ -167,21 +167,27 @@ std::string Filter::toString(const char *sep) const
s.push_back('[');
if (i->rule.etherType()) {
- sprintf(buf,"%u-%u",i->rule.etherType().start,i->rule.etherType().end);
+ if (i->rule.etherType().magnitude() > 1)
+ sprintf(buf,"%u-%u",i->rule.etherType().start,i->rule.etherType().end);
+ else sprintf(buf,"%u",i->rule.etherType().start);
s.append(buf);
} else s.push_back('*');
s.push_back(';');
if (i->rule.protocol()) {
- sprintf(buf,"%u-%u",i->rule.protocol().start,i->rule.protocol().end);
+ if (i->rule.protocol().magnitude() > 1)
+ sprintf(buf,"%u-%u",i->rule.protocol().start,i->rule.protocol().end);
+ else sprintf(buf,"%u",i->rule.protocol().start);
s.append(buf);
} else s.push_back('*');
s.push_back(';');
if (i->rule.port()) {
- sprintf(buf,"%u-%u",i->rule.port().start,i->rule.port().end);
+ if (i->rule.port().magnitude() > 1)
+ sprintf(buf,"%u-%u",i->rule.port().start,i->rule.port().end);
+ else sprintf(buf,"%u",i->rule.port().start);
s.append(buf);
} else s.push_back('*');