1 /*-*- Mode: C; c-basic-offset: 8 -*-*/
6 typedef struct ExecStatus ExecStatus;
7 typedef struct ExecCommand ExecCommand;
8 typedef struct ExecContext ExecContext;
11 #include <sys/resource.h>
12 #include <sys/capability.h>
21 int code; /* as in siginfo_t::si_code */
22 int status; /* as in sigingo_t::si_status */
28 ExecStatus last_exec_status;
29 LIST_FIELDS(ExecCommand);
35 struct rlimit *rlimit[RLIMIT_NLIMITS];
37 bool capabilities_set:1;
43 /* since resolving these names might might involve socket
44 * connections and we don't want to deadlock ourselves these
45 * names are resolved on execution only. */
48 char **supplementary_groups;
51 int exec_spawn(const ExecCommand *command, const ExecContext *context, pid_t *ret);
53 void exec_context_free(ExecContext *c);
54 void exec_command_free_list(ExecCommand *c);
56 void exec_context_dump(ExecContext *c, FILE* f, const char *prefix);
58 void exec_context_defaults(ExecContext *c);