コード例 #1
0
        public RESTStatus GetPaperList(SQLLib sql, object dummy, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            RetListPaper       = new NetStringList();
            RetListPaper.Items = SupportedNames;

            return(RESTStatus.Success);
        }
コード例 #2
0
ファイル: ServerSettings.cs プロジェクト: VulpesSARL/Fox-SDC
        public RESTStatus GetInstalledCertificates(SQLLib sql, object dummy, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            CertificateList       = new NetStringList();
            CertificateList.Items = Certificates.GetCertificates(StoreLocation.LocalMachine);
            if (CertificateList.Items == null)
            {
                ni.Error   = "Cannot get list";
                ni.ErrorID = ErrorFlags.SystemError;
                return(RESTStatus.ServerError);
            }
            return(RESTStatus.Success);
        }
コード例 #3
0
        public RESTStatus ListFiles(SQLLib sql, PushDirListReq Req, NetworkConnectionInfo ni, string MachineID)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            string guid = Guid.NewGuid().ToString();

            PushData p = new PushData();

            p.Action          = "listfiles";
            p.ReplyID         = guid;
            p.AdditionalData1 = JsonConvert.SerializeObject(Req);

            PushServiceHelper.SendPushService(MachineID, p, 0);
            PushDataResponse resp = PushServiceHelper.PopResponse(MachineID, 0, guid);

            if (resp == null)
            {
                ni.Error   = "No response";
                ni.ErrorID = ErrorFlags.NoData;
                return(RESTStatus.NoContent);
            }

            try
            {
                Lists = JsonConvert.DeserializeObject <NetStringList>(resp.Data.ToString());
            }
            catch
            {
                ni.Error   = "Faulty data";
                ni.ErrorID = ErrorFlags.NoData;
                return(RESTStatus.NoContent);
            }
            return(RESTStatus.Success);
        }
コード例 #4
0
        public RESTStatus GetEventLogSources(SQLLib sql, object dummy, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            EventLogSources       = new NetStringList();
            EventLogSources.Items = new List <string>();

            lock (EventSourcesLock)
            {
                if (EventSourcesCacheDT.AddHours(1) < DateTime.UtcNow)
                {
                    EventSourcesCache.Clear();
                    lock (ni.sqllock)
                    {
                        SqlDataReader dr = sql.ExecSQLReader("select distinct Source from EventLog order by Source");
                        while (dr.Read())
                        {
                            EventSourcesCache.Add(Convert.ToString(dr["Source"]));
                        }
                        dr.Close();
                    }
                    EventSourcesCacheDT = DateTime.UtcNow;
                }
            }

            lock (EventSourcesLock)
            {
                EventLogSources.Items = EventSourcesCache;
            }

            return(RESTStatus.Success);
        }
コード例 #5
0
ファイル: Chat.cs プロジェクト: VulpesSARL/Fox-SDC
        public RESTStatus GetPendingMachines(SQLLib sql, object dummy, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            GetPendingChats       = new NetStringList();
            GetPendingChats.Items = new List <string>();

            lock (ni.sqllock)
            {
                SqlDataReader dr = sql.ExecSQLReader("Select DISTINCT MachineID FROM Chats WHERE [Read]=0 AND ToClient=0");
                while (dr.Read())
                {
                    GetPendingChats.Items.Add(Convert.ToString(dr["MachineID"]));
                }
                dr.Close();
            }

            return(RESTStatus.Success);
        }
コード例 #6
0
ファイル: Filesystem.cs プロジェクト: VulpesSARL/Fox-SDC
        public static NetStringList ListFiles(string ReqString)
        {
            NetStringList lst = new NetStringList();

            lst.Items = new List <string>();
            PushDirListReq req;

            try
            {
                req = JsonConvert.DeserializeObject <PushDirListReq>(ReqString);
            }
            catch (Exception ee)
            {
                Debug.WriteLine(ee.ToString());
                return(lst);
            }

            if (req.ShowFiles == false && req.ShowFolders == false)
            {
                switch (req.Folder)
                {
                case "drives":
                    foreach (DriveInfo drive in DriveInfo.GetDrives())
                    {
                        if (drive.IsReady == true)
                        {
                            lst.Items.Add(drive.Name + " - " + drive.VolumeLabel + " (" + drive.DriveType + ")");
                        }
                        else
                        {
                            lst.Items.Add(drive.Name + " - ?? (" + drive.DriveType + ")");
                        }
                    }
                    break;

                default:
                    return(lst);
                }
            }
            else if (req.ShowFiles == true && req.ShowFolders == true)
            {
                return(lst);
            }
            else if (req.ShowFiles == true)
            {
                foreach (string file in Directory.EnumerateFiles(req.Folder, req.Filter, SearchOption.TopDirectoryOnly))
                {
                    lst.Items.Add(Path.GetFileName(file));
                }
            }
            else if (req.ShowFolders == true)
            {
                string foodir = req.Folder;
                if (foodir.EndsWith("\\") == false)
                {
                    foodir += "\\";
                }
                foreach (string dir in Directory.EnumerateDirectories(req.Folder, req.Filter, SearchOption.TopDirectoryOnly))
                {
                    lst.Items.Add(dir.Substring(foodir.Length, dir.Length - foodir.Length));
                }
            }
            return(lst);
        }