Esempio n. 1
0
        private SandboxedProcessUnix CreateAndStartSandboxedProcess(SandboxedProcessInfo info, bool?measureTime = null)
        {
            var process = new SandboxedProcessUnix(info, overrideMeasureTime: measureTime);

            process.Start();
            return(process);
        }
Esempio n. 2
0
        private SandboxedProcessUnix CreateAndStartSandboxedProcess(SandboxedProcessInfo info)
        {
            var process = new SandboxedProcessUnix(info);

            process.Start();
            return(process);
        }
Esempio n. 3
0
        private static Sandbox.AccessReport PostAccessReport(SandboxedProcessUnix proc, FileOperation operation, Sandbox.AccessReportStatistics stats,
                                                             int pid = 1234, string path = "/dummy/path", bool allowed = true)
        {
            var report = new Sandbox.AccessReport
            {
                Operation      = operation,
                Statistics     = stats,
                Pid            = pid,
                PathOrPipStats = Sandbox.AccessReport.EncodePath(path),
                Status         = allowed ? (uint)FileAccessStatus.Allowed : (uint)FileAccessStatus.Denied
            };

            proc.PostAccessReport(report);
            return(report);
        }
Esempio n. 4
0
        private Task GetContinuouslyPostAccessReportsTask(SandboxedProcessUnix process, List <ReportInstruction> instructions)
        {
            XAssert.IsNotNull(process);
            XAssert.IsNotNull(instructions);
            return(Task.Run(async() =>
            {
                foreach (var instr in instructions)
                {
                    PostAccessReport(instr.Process, instr.Operation, instr.Stats, instr.Pid, instr.Path, instr.Allowed);

                    // Advance the minimum enqueue time
                    s_connection.MinReportQueueEnqueueTime = instr.Stats.EnqueueTime;

                    // wait a bit before sending the next one
                    await Task.Delay(100);
                }
            }));
        }
Esempio n. 5
0
 public bool NotifyPipFinished(long pipId, SandboxedProcessUnix process)
 {
     return(true);
 }
Esempio n. 6
0
 public void NotifyRootProcessExited(long pipId, SandboxedProcessUnix process)
 {
 }
Esempio n. 7
0
 public bool NotifyPipStarted(LoggingContext loggingContext, FileAccessManifest fam, SandboxedProcessUnix process)
 {
     return(true);
 }
Esempio n. 8
0
 private void ContinuouslyPostAccessReports(SandboxedProcessUnix process, List <ReportInstruction> instructions)
 {
     Analysis.IgnoreResult(GetContinuouslyPostAccessReportsTask(process, instructions), "fire and forget");
 }