Browse Source

Filter work

Adam Ierymenko 12 years ago
parent
commit
366f556e5b
1 changed files with 9 additions and 3 deletions
  1. 9 3
      node/Filter.cpp

+ 9 - 3
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('*');