]>
Commit | Line | Data |
---|---|---|
70a5db58 LP |
1 | /* SPDX-License-Identifier: LGPL-2.1+ */ |
2 | #pragma once | |
3 | ||
4 | #include <openssl/evp.h> | |
5 | ||
6 | #include "sd-bus.h" | |
7 | #include "sd-device.h" | |
8 | #include "sd-event.h" | |
9 | ||
10 | typedef struct Manager Manager; | |
11 | ||
12 | #include "hashmap.h" | |
13 | #include "homed-home.h" | |
14 | #include "varlink.h" | |
15 | ||
16 | #define HOME_UID_MIN 60001 | |
17 | #define HOME_UID_MAX 60513 | |
18 | ||
19 | struct Manager { | |
20 | sd_event *event; | |
21 | sd_bus *bus; | |
22 | ||
23 | Hashmap *polkit_registry; | |
24 | ||
25 | Hashmap *homes_by_uid; | |
26 | Hashmap *homes_by_name; | |
27 | Hashmap *homes_by_worker_pid; | |
28 | Hashmap *homes_by_sysfs; | |
29 | ||
30 | bool scan_slash_home; | |
c76dd733 LP |
31 | UserStorage default_storage; |
32 | char *default_file_system_type; | |
70a5db58 LP |
33 | |
34 | sd_event_source *inotify_event_source; | |
35 | ||
162392b7 | 36 | /* An event source we receive sd_notify() messages from our worker from */ |
70a5db58 LP |
37 | sd_event_source *notify_socket_event_source; |
38 | ||
39 | sd_device_monitor *device_monitor; | |
40 | ||
41 | sd_event_source *deferred_rescan_event_source; | |
42 | sd_event_source *deferred_gc_event_source; | |
43 | sd_event_source *deferred_auto_login_event_source; | |
44 | ||
45 | Home *gc_focus; | |
46 | ||
47 | VarlinkServer *varlink_server; | |
cc9886bc | 48 | char *userdb_service; |
70a5db58 LP |
49 | |
50 | EVP_PKEY *private_key; /* actually a pair of private and public key */ | |
51 | Hashmap *public_keys; /* key name [char*] → publick key [EVP_PKEY*] */ | |
52 | }; | |
53 | ||
54 | int manager_new(Manager **ret); | |
55 | Manager* manager_free(Manager *m); | |
56 | DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free); | |
57 | ||
58 | int manager_startup(Manager *m); | |
59 | ||
60 | int manager_augment_record_with_uid(Manager *m, UserRecord *hr); | |
61 | ||
62 | int manager_enqueue_rescan(Manager *m); | |
63 | int manager_enqueue_gc(Manager *m, Home *focus); | |
64 | ||
65 | int manager_verify_user_record(Manager *m, UserRecord *hr); | |
66 | ||
67 | int manager_acquire_key_pair(Manager *m); | |
68 | int manager_sign_user_record(Manager *m, UserRecord *u, UserRecord **ret, sd_bus_error *error); | |
69 | ||
70 | int bus_manager_emit_auto_login_changed(Manager *m); |