#include "socket-util.h"
#include "execute.h"
-#define UNIT_NAME_MAX 128
+#define UNIT_NAME_MAX 256
#define DEFAULT_TIMEOUT_USEC (60*USEC_PER_SEC)
#define DEFAULT_RESTART_USEC (100*USEC_PER_MSEC)
UNIT_BEFORE, /* inverse of 'before' is 'after' and vice versa */
UNIT_AFTER,
+ /* On Failure */
+ UNIT_ON_FAILURE,
+
/* Reference information for GC logic */
UNIT_REFERENCES, /* Inverse of 'references' is 'referenced_by' */
UNIT_REFERENCED_BY,
Set *dependencies[_UNIT_DEPENDENCY_MAX];
char *description;
+
char *fragment_path; /* if loaded from a config file this is the primary path to it */
+ usec_t fragment_mtime;
/* If there is something to do with this unit, then this is
* the job for it */
Job *job;
+ usec_t job_timeout;
+
dual_timestamp inactive_exit_timestamp;
dual_timestamp active_enter_timestamp;
dual_timestamp active_exit_timestamp;
/* Create default depedencies */
bool default_dependencies;
+ /* Bring up this unit even if a dependency fails to start */
+ bool ignore_dependency_failure;
+
/* When deserializing, temporarily store the job type for this
* unit here, if there was a job scheduled */
int deserialized_job; /* This is actually of type JobType */
void (*sigchld_event)(Unit *u, pid_t pid, int code, int status);
void (*timer_event)(Unit *u, uint64_t n_elapsed, Watch *w);
+ /* Reset maintenance state if we are in maintainance state */
+ void (*reset_maintenance)(Unit *u);
+
/* Called whenever any of the cgroups this unit watches for
* ran empty */
void (*cgroup_notify_empty)(Unit *u);
/* Called for each message received on the bus */
DBusHandlerResult (*bus_message_handler)(Unit *u, DBusConnection *c, DBusMessage *message);
+ /* Return the unit this unit is following */
+ Unit *(*following)(Unit *u);
+
/* This is called for each unit type and should be used to
* enumerate existing devices and load them. However,
* everything that is loaded here should still stay in
void unit_status_printf(Unit *u, const char *format, ...);
+bool unit_need_daemon_reload(Unit *u);
+
+void unit_reset_maintenance(Unit *u);
+
+Unit *unit_following(Unit *u);
+
const char *unit_type_to_string(UnitType i);
UnitType unit_type_from_string(const char *s);