static void ProcessFilter(string ClassGUID, string Name, int Type, ref List <FilterDriver> l, RegistryKey currentclass)
        {
            object o;

            o = currentclass.GetValue(Name, null);
            if (o == null)
            {
                return;
            }
            string[] Filters = null;
            if (currentclass.GetValueKind(Name) == RegistryValueKind.String)
            {
                Filters = new string[] { (string)o }
            }
            ;
            if (currentclass.GetValueKind(Name) == RegistryValueKind.MultiString)
            {
                Filters = (string[])o;
            }
            if (Filters == null)
            {
                return;
            }
            foreach (string Filter in Filters)
            {
                FilterDriver drv = new FilterDriver();
                drv.ClassGUID   = ClassGUID;
                drv.ServiceName = Filter;
                drv.Type        = Type;
                l.Add(drv);
            }
        }
Beispiel #2
0
        public RESTStatus ListDevicesFilters(SQLLib sql, object dummy, NetworkConnectionInfo ni, string id)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            if (string.IsNullOrWhiteSpace(id) == true)
            {
                ni.Error   = "Invalid data";
                ni.ErrorID = ErrorFlags.InvalidData;
                return(RESTStatus.NotFound);
            }

            lock (ni.sqllock)
            {
                if (Computers.MachineExists(sql, id) == false)
                {
                    ni.Error   = "Invalid data";
                    ni.ErrorID = ErrorFlags.InvalidData;
                    return(RESTStatus.NotFound);
                }
            }

            LstFltData           = new FilterDriverList();
            LstFltData.List      = new List <FilterDriver>();
            LstFltData.MachineID = id;

            lock (ni.sqllock)
            {
                SqlDataReader dr = sql.ExecSQLReader("SELECT * FROM DevicesFilter WHERE MachineID=@mid", new SQLParam("@mid", id));
                while (dr.Read())
                {
                    FilterDriver n = new FilterDriver();
                    n.ClassGUID   = Convert.ToString(dr["ClassGUID"]);
                    n.ServiceName = Convert.ToString(dr["ServiceName"]);
                    n.Type        = Convert.ToInt32(dr["Type"]);
                    LstFltData.List.Add(n);
                }
                dr.Close();
            }

            return(RESTStatus.Success);
        }
Beispiel #3
0
 public FilterSteps(FilterDriver driver)
 {
     filterDriver = driver;
 }