コード例 #1
0
ファイル: Intfs.cs プロジェクト: vlapchenko/nfx
 public GateAction CheckTraffic(ITraffic traffic, out Rule rule)
 {
   rule = null;
   return GateAction.Allow;
 }
コード例 #2
0
ファイル: Intfs.cs プロジェクト: zhabis/nfx
 public GateAction CheckTraffic(ITraffic traffic, out Rule rule)
 {
     rule = null;
     return(GateAction.Allow);
 }
コード例 #3
0
ファイル: NetGate.cs プロジェクト: itadapter/nfx
        /// <summary>
        /// Checks whether the specified traffic is allowed or denied.
        /// Returns the rule that determined the allow/deny outcome or null when no rule matched
        /// </summary>
        public GateAction CheckTraffic(ITraffic traffic, out Rule rule)
        {
            rule = null;
            if (!m_Enabled) return GateAction.Allow;
            if (traffic==null) return GateAction.Deny;

            var state = this[traffic.Direction];
            var result = state.DefaultAction;

            Group fromGroup = null;
            Group toGroup = null;

            foreach(var rItem in state.Rules.OrderedValues)
            {
              if (rItem.Check(state, traffic, ref fromGroup, ref toGroup))
              {
            result = rItem.Action;
            rule = rItem;
            break;
              }
            }

            return result;
        }