1 /* SPDX-License-Identifier: LGPL-2.1+ */
4 #include <openssl/evp.h>
10 typedef struct Manager Manager
;
13 #include "homed-home.h"
16 #define HOME_UID_MIN 60001
17 #define HOME_UID_MAX 60513
23 Hashmap
*polkit_registry
;
25 Hashmap
*homes_by_uid
;
26 Hashmap
*homes_by_name
;
27 Hashmap
*homes_by_worker_pid
;
28 Hashmap
*homes_by_sysfs
;
31 UserStorage default_storage
;
32 char *default_file_system_type
;
34 sd_event_source
*inotify_event_source
;
36 /* An event source we receive sd_notify() messages from our worker from */
37 sd_event_source
*notify_socket_event_source
;
39 sd_device_monitor
*device_monitor
;
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
;
47 VarlinkServer
*varlink_server
;
50 EVP_PKEY
*private_key
; /* actually a pair of private and public key */
51 Hashmap
*public_keys
; /* key name [char*] → publick key [EVP_PKEY*] */
54 int manager_new(Manager
**ret
);
55 Manager
* manager_free(Manager
*m
);
56 DEFINE_TRIVIAL_CLEANUP_FUNC(Manager
*, manager_free
);
58 int manager_startup(Manager
*m
);
60 int manager_augment_record_with_uid(Manager
*m
, UserRecord
*hr
);
62 int manager_enqueue_rescan(Manager
*m
);
63 int manager_enqueue_gc(Manager
*m
, Home
*focus
);
65 int manager_verify_user_record(Manager
*m
, UserRecord
*hr
);
67 int manager_acquire_key_pair(Manager
*m
);
68 int manager_sign_user_record(Manager
*m
, UserRecord
*u
, UserRecord
**ret
, sd_bus_error
*error
);
70 int bus_manager_emit_auto_login_changed(Manager
*m
);