From 4949ab1e4e02232f277803df370aa2ae2a6d0e9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20I=C3=B1iguez=20Goia?= Date: Tue, 20 Oct 2020 19:00:00 +0200 Subject: [PATCH] allow to filter connections by protocol Added option to filter connections by protocol. Just add an operand "protocol" as follow: ``` "operator": { "type": "simple", "operand": "protocol", "sensitive": false, "data": "tcp", "list": [] } ``` closes #64 --- daemon/rule/operator.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/daemon/rule/operator.go b/daemon/rule/operator.go index 88aa8ae2ef..a2210c4715 100644 --- a/daemon/rule/operator.go +++ b/daemon/rule/operator.go @@ -31,6 +31,7 @@ const ( OpDstIP = Operand("dest.ip") OpDstHost = Operand("dest.host") OpDstPort = Operand("dest.port") + OpProto = Operand("protocol") OpList = Operand("list") ) @@ -130,6 +131,8 @@ func (o *Operator) Match(con *conman.Connection) bool { return o.cb(con.DstIP.String()) } else if o.Operand == OpDstHost && con.DstHost != "" { return o.cb(con.DstHost) + } else if o.Operand == OpProto { + return o.cb(con.Protocol) } else if o.Operand == OpDstPort { return o.cb(fmt.Sprintf("%d", con.DstPort)) } else if o.Operand == OpList {