X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=execute.h;h=d64111b156f6d3081e191872b386cbb5ab358dd2;hp=499b007cf155b6217d5630232d2326ff030098e4;hb=81a2b7ceda7100fbc0dd8ce423b9599e03656851;hpb=a7334b0952ab66c17ee787e36e6d2c5ceb387de6 diff --git a/execute.h b/execute.h index 499b007cf..d64111b15 100644 --- a/execute.h +++ b/execute.h @@ -90,13 +90,13 @@ struct ExecContext { bool timer_slack_ns_set:1; bool cpu_sched_reset_on_fork; + bool non_blocking; ExecInput input; ExecOutput output; int syslog_priority; char *syslog_identifier; - /* FIXME: all privs related settings need to be enforced */ cap_t capabilities; int secure_bits; uint64_t capability_bounding_set_drop; @@ -136,16 +136,24 @@ typedef enum ExitStatus { EXIT_SIGNAL_MASK, EXIT_INPUT, EXIT_OUTPUT, - EXIT_CHROOT, + EXIT_CHROOT, /* 210 */ EXIT_PGID, EXIT_IOPRIO, EXIT_TIMERSLACK, EXIT_SECUREBITS, EXIT_SETSCHEDULER, - EXIT_CPUAFFINITY + EXIT_CPUAFFINITY, + EXIT_GROUP, + EXIT_USER, + EXIT_CAPABILITIES } ExitStatus; -int exec_spawn(const ExecCommand *command, const ExecContext *context, int *fds, unsigned n_fds, pid_t *ret); +int exec_spawn(const ExecCommand *command, + const ExecContext *context, + int *fds, unsigned n_fds, + bool apply_permissions, + bool apply_chroot, + pid_t *ret); void exec_command_free_list(ExecCommand *c); void exec_command_free_array(ExecCommand **c, unsigned n); @@ -153,6 +161,7 @@ void exec_command_free_array(ExecCommand **c, unsigned n); char *exec_command_line(ExecCommand *c); void exec_command_dump(ExecCommand *c, FILE *f, const char *prefix); void exec_command_dump_list(ExecCommand *c, FILE *f, const char *prefix); +void exec_command_append_list(ExecCommand **l, ExecCommand *e); void exec_context_init(ExecContext *c); void exec_context_done(ExecContext *c);