Esempio n. 1
0
 public GateAction CheckTraffic(ITraffic traffic, out Rule rule)
 {
   rule = null;
   return GateAction.Allow;
 }
Esempio n. 2
0
File: Intfs.cs Progetto: zhabis/nfx
 public GateAction CheckTraffic(ITraffic traffic, out Rule rule)
 {
     rule = null;
     return(GateAction.Allow);
 }
Esempio n. 3
0
        /// <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;
        }