chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
util: rework strappenda(), and rename it strjoina()
[elogind.git]
/
src
/
core
/
manager.h
diff --git
a/src/core/manager.h
b/src/core/manager.h
index 718c29fa0ffef507d2d8cf335bb2d1b137487e5e..d3971f16845225fd860fac96a1e2f5df1c91fc63 100644
(file)
--- a/
src/core/manager.h
+++ b/
src/core/manager.h
@@
-29,6
+29,10
@@
#include "sd-event.h"
#include "fdset.h"
#include "cgroup-util.h"
#include "sd-event.h"
#include "fdset.h"
#include "cgroup-util.h"
+#include "hashmap.h"
+#include "list.h"
+#include "set.h"
+#include "ratelimit.h"
/* Enforce upper limit how many names we allow */
#define MANAGER_MAX_NAMES 131072 /* 128K */
/* Enforce upper limit how many names we allow */
#define MANAGER_MAX_NAMES 131072 /* 128K */
@@
-36,6
+40,7
@@
typedef struct Manager Manager;
typedef enum ManagerState {
typedef struct Manager Manager;
typedef enum ManagerState {
+ MANAGER_INITIALIZING,
MANAGER_STARTING,
MANAGER_RUNNING,
MANAGER_DEGRADED,
MANAGER_STARTING,
MANAGER_RUNNING,
MANAGER_DEGRADED,
@@
-59,16
+64,20
@@
typedef enum ManagerExitCode {
_MANAGER_EXIT_CODE_INVALID = -1
} ManagerExitCode;
_MANAGER_EXIT_CODE_INVALID = -1
} ManagerExitCode;
+typedef enum StatusType {
+ STATUS_TYPE_EPHEMERAL,
+ STATUS_TYPE_NORMAL,
+ STATUS_TYPE_EMERGENCY,
+} StatusType;
+
#include "unit.h"
#include "job.h"
#include "unit.h"
#include "job.h"
-#include "hashmap.h"
-#include "list.h"
-#include "set.h"
#include "path-lookup.h"
#include "execute.h"
#include "unit-name.h"
#include "exit-status.h"
#include "show-status.h"
#include "path-lookup.h"
#include "execute.h"
#include "unit-name.h"
#include "exit-status.h"
#include "show-status.h"
+#include "failure-action.h"
struct Manager {
/* Note that the set of units we know of is allowed to be
struct Manager {
/* Note that the set of units we know of is allowed to be
@@
-152,6
+161,7
@@
struct Manager {
dual_timestamp initrd_timestamp;
dual_timestamp userspace_timestamp;
dual_timestamp finish_timestamp;
dual_timestamp initrd_timestamp;
dual_timestamp userspace_timestamp;
dual_timestamp finish_timestamp;
+
dual_timestamp security_start_timestamp;
dual_timestamp security_finish_timestamp;
dual_timestamp generators_start_timestamp;
dual_timestamp security_start_timestamp;
dual_timestamp security_finish_timestamp;
dual_timestamp generators_start_timestamp;
@@
-173,6
+183,8
@@
struct Manager {
/* Data specific to the mount subsystem */
FILE *proc_self_mountinfo;
sd_event_source *mount_event_source;
/* Data specific to the mount subsystem */
FILE *proc_self_mountinfo;
sd_event_source *mount_event_source;
+ int utab_inotify_fd;
+ sd_event_source *mount_utab_event_source;
/* Data specific to the swap filesystem */
FILE *proc_swaps;
/* Data specific to the swap filesystem */
FILE *proc_swaps;
@@
-230,6
+242,8
@@
struct Manager {
bool taint_usr:1;
bool first_boot:1;
bool taint_usr:1;
bool first_boot:1;
+ bool test_run:1;
+
ShowStatus show_status;
bool confirm_spawn;
bool no_console_output;
ShowStatus show_status;
bool confirm_spawn;
bool no_console_output;
@@
-260,6
+274,11
@@
struct Manager {
unsigned n_on_console;
unsigned jobs_in_progress_iteration;
unsigned n_on_console;
unsigned jobs_in_progress_iteration;
+ /* Do we have any outstanding password prompts? */
+ int have_ask_password;
+ int ask_password_inotify_fd;
+ sd_event_source *ask_password_event_source;
+
/* Type=idle pipes */
int idle_pipe[4];
sd_event_source *idle_pipe_event_source;
/* Type=idle pipes */
int idle_pipe[4];
sd_event_source *idle_pipe_event_source;
@@
-274,10
+293,16
@@
struct Manager {
/* Reference to the kdbus bus control fd */
int kdbus_fd;
/* Reference to the kdbus bus control fd */
int kdbus_fd;
+
+ /* Used for processing polkit authorization responses */
+ Hashmap *polkit_registry;
+
+ /* When the user hits C-A-D more than 7 times per 2s, reboot immediately... */
+ RateLimit ctrl_alt_del_ratelimit;
};
};
-int manager_new(SystemdRunningAs running_as, Manager **m);
-
void
manager_free(Manager *m);
+int manager_new(SystemdRunningAs running_as,
bool test_run,
Manager **m);
+
Manager*
manager_free(Manager *m);
int manager_enumerate(Manager *m);
int manager_startup(Manager *m, FILE *serialization, FDSet *fds);
int manager_enumerate(Manager *m);
int manager_startup(Manager *m, FILE *serialization, FDSet *fds);
@@
-328,15
+353,12
@@
bool manager_unit_inactive_or_pending(Manager *m, const char *name);
void manager_check_finished(Manager *m);
void manager_check_finished(Manager *m);
-void manager_run_generators(Manager *m);
-void manager_undo_generators(Manager *m);
-
void manager_recheck_journal(Manager *m);
void manager_set_show_status(Manager *m, ShowStatus mode);
void manager_set_first_boot(Manager *m, bool b);
void manager_recheck_journal(Manager *m);
void manager_set_show_status(Manager *m, ShowStatus mode);
void manager_set_first_boot(Manager *m, bool b);
-void manager_status_printf(Manager *m,
bool ephemeral
, const char *status, const char *format, ...) _printf_(4,5);
+void manager_status_printf(Manager *m,
StatusType type
, const char *status, const char *format, ...) _printf_(4,5);
void manager_flip_auto_status(Manager *m, bool enable);
Set *manager_get_units_requiring_mounts_for(Manager *m, const char *path);
void manager_flip_auto_status(Manager *m, bool enable);
Set *manager_get_units_requiring_mounts_for(Manager *m, const char *path);