From: Lennart Poettering Date: Tue, 30 Apr 2019 13:05:14 +0000 (+0200) Subject: logind: split out dbus header files into their own X-Git-Tag: v243-rc1~295^2 X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fsystemd.git;a=commitdiff_plain;h=6ecda0fbefa3a49990fbadc48892459b97bf3002 logind: split out dbus header files into their own Previously, logind's logind-session.h would define prototypes for logind-session.c and logind-session-dbus.c. Split that out, so that there's a separate logind-session-dbus.h for that. Similar for seats and users as well as the manager itself. This changes no code, just rearranges where protoypes are located. --- diff --git a/src/login/logind-action.c b/src/login/logind-action.c index 6c9366761da..4f97e0d9bb5 100644 --- a/src/login/logind-action.c +++ b/src/login/logind-action.c @@ -8,6 +8,8 @@ #include "conf-parser.h" #include "format-util.h" #include "logind-action.h" +#include "logind-dbus.h" +#include "logind-session-dbus.h" #include "process-util.h" #include "sleep-config.h" #include "special.h" diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c index 6655d395ce6..0e8925ab944 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c @@ -27,6 +27,10 @@ #include "fileio.h" #include "format-util.h" #include "fs-util.h" +#include "logind-dbus.h" +#include "logind-seat-dbus.h" +#include "logind-session-dbus.h" +#include "logind-user-dbus.h" #include "logind.h" #include "missing_capability.h" #include "mkdir.h" diff --git a/src/login/logind-dbus.h b/src/login/logind-dbus.h new file mode 100644 index 00000000000..6c73a9654f6 --- /dev/null +++ b/src/login/logind-dbus.h @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: LGPL-2.1+ */ +#pragma once + +#include "sd-bus.h" + +#include "logind.h" +#include "logind-session.h" +#include "logind-user.h" + +int manager_get_session_from_creds(Manager *m, sd_bus_message *message, const char *name, sd_bus_error *error, Session **ret); +int manager_get_user_from_creds(Manager *m, sd_bus_message *message, uid_t uid, sd_bus_error *error, User **ret); +int manager_get_seat_from_creds(Manager *m, sd_bus_message *message, const char *name, sd_bus_error *error, Seat **ret); + +int manager_dispatch_delayed(Manager *manager, bool timeout); + +int bus_manager_shutdown_or_sleep_now_or_later(Manager *m, const char *unit_name, InhibitWhat w, sd_bus_error *error); + +int match_job_removed(sd_bus_message *message, void *userdata, sd_bus_error *error); +int match_unit_removed(sd_bus_message *message, void *userdata, sd_bus_error *error); +int match_properties_changed(sd_bus_message *message, void *userdata, sd_bus_error *error); +int match_reloading(sd_bus_message *message, void *userdata, sd_bus_error *error); + +int manager_send_changed(Manager *manager, const char *property, ...) _sentinel_; + +int manager_start_scope(Manager *manager, const char *scope, pid_t pid, const char *slice, const char *description, char **wants, char **after, const char *requires_mounts_for, sd_bus_message *more_properties, sd_bus_error *error, char **job); +int manager_start_unit(Manager *manager, const char *unit, sd_bus_error *error, char **job); +int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, char **job); +int manager_abandon_scope(Manager *manager, const char *scope, sd_bus_error *error); +int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, sd_bus_error *error); +int manager_unit_is_active(Manager *manager, const char *unit, sd_bus_error *error); +int manager_job_is_active(Manager *manager, const char *path, sd_bus_error *error); diff --git a/src/login/logind-device.c b/src/login/logind-device.c index e724365b131..20108544aad 100644 --- a/src/login/logind-device.c +++ b/src/login/logind-device.c @@ -4,6 +4,7 @@ #include "alloc-util.h" #include "logind-device.h" +#include "logind-seat-dbus.h" #include "util.h" Device* device_new(Manager *m, const char *sysfs, bool master) { diff --git a/src/login/logind-inhibit.c b/src/login/logind-inhibit.c index d427dcaa012..d963706dcef 100644 --- a/src/login/logind-inhibit.c +++ b/src/login/logind-inhibit.c @@ -13,6 +13,7 @@ #include "fd-util.h" #include "fileio.h" #include "format-util.h" +#include "logind-dbus.h" #include "logind-inhibit.h" #include "mkdir.h" #include "parse-util.h" diff --git a/src/login/logind-seat-dbus.c b/src/login/logind-seat-dbus.c index fa67d9c786d..c33a0e0ad43 100644 --- a/src/login/logind-seat-dbus.c +++ b/src/login/logind-seat-dbus.c @@ -7,7 +7,10 @@ #include "bus-common-errors.h" #include "bus-label.h" #include "bus-util.h" +#include "logind-dbus.h" +#include "logind-seat-dbus.h" #include "logind-seat.h" +#include "logind-session-dbus.h" #include "logind.h" #include "missing_capability.h" #include "strv.h" diff --git a/src/login/logind-seat-dbus.h b/src/login/logind-seat-dbus.h new file mode 100644 index 00000000000..2590f64922b --- /dev/null +++ b/src/login/logind-seat-dbus.h @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: LGPL-2.1+ */ +#pragma once + +#include "sd-bus.h" + +#include "logind-seat.h" + +extern const sd_bus_vtable seat_vtable[]; + +int seat_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***nodes, sd_bus_error *error); +int seat_object_find(sd_bus *bus, const char *path, const char *interface, void *userdata, void **found, sd_bus_error *error); +char *seat_bus_path(Seat *s); + +int seat_send_signal(Seat *s, bool new_seat); +int seat_send_changed(Seat *s, const char *properties, ...) _sentinel_; + +int bus_seat_method_terminate(sd_bus_message *message, void *userdata, sd_bus_error *error); diff --git a/src/login/logind-seat.c b/src/login/logind-seat.c index f5ffb68238e..dc578adf638 100644 --- a/src/login/logind-seat.c +++ b/src/login/logind-seat.c @@ -13,7 +13,9 @@ #include "fileio.h" #include "format-util.h" #include "logind-acl.h" +#include "logind-seat-dbus.h" #include "logind-seat.h" +#include "logind-session-dbus.h" #include "mkdir.h" #include "parse-util.h" #include "stdio-util.h" diff --git a/src/login/logind-seat.h b/src/login/logind-seat.h index d1a105adddd..64cdf2f25ae 100644 --- a/src/login/logind-seat.h +++ b/src/login/logind-seat.h @@ -67,17 +67,6 @@ void seat_add_to_gc_queue(Seat *s); bool seat_name_is_valid(const char *name); -extern const sd_bus_vtable seat_vtable[]; - -int seat_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***nodes, sd_bus_error *error); -int seat_object_find(sd_bus *bus, const char *path, const char *interface, void *userdata, void **found, sd_bus_error *error); -char *seat_bus_path(Seat *s); - -int seat_send_signal(Seat *s, bool new_seat); -int seat_send_changed(Seat *s, const char *properties, ...) _sentinel_; - -int bus_seat_method_terminate(sd_bus_message *message, void *userdata, sd_bus_error *error); - static inline bool SEAT_IS_SELF(const char *name) { return isempty(name) || streq(name, "self"); } diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c index 5eb240834ad..c297f62cdf9 100644 --- a/src/login/logind-session-dbus.c +++ b/src/login/logind-session-dbus.c @@ -9,8 +9,12 @@ #include "bus-util.h" #include "fd-util.h" #include "logind-brightness.h" +#include "logind-dbus.h" +#include "logind-seat-dbus.h" +#include "logind-session-dbus.h" #include "logind-session-device.h" #include "logind-session.h" +#include "logind-user-dbus.h" #include "logind.h" #include "missing_capability.h" #include "path-util.h" diff --git a/src/login/logind-session-dbus.h b/src/login/logind-session-dbus.h new file mode 100644 index 00000000000..9d2315cc60d --- /dev/null +++ b/src/login/logind-session-dbus.h @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: LGPL-2.1+ */ +#pragma once + +#include "sd-bus.h" + +#include "logind-session.h" + +extern const sd_bus_vtable session_vtable[]; +int session_node_enumerator(sd_bus *bus, const char *path,void *userdata, char ***nodes, sd_bus_error *error); +int session_object_find(sd_bus *bus, const char *path, const char *interface, void *userdata, void **found, sd_bus_error *error); +char *session_bus_path(Session *s); + +int session_send_signal(Session *s, bool new_session); +int session_send_changed(Session *s, const char *properties, ...) _sentinel_; +int session_send_lock(Session *s, bool lock); +int session_send_lock_all(Manager *m, bool lock); + +int session_send_create_reply(Session *s, sd_bus_error *error); + +int bus_session_method_activate(sd_bus_message *message, void *userdata, sd_bus_error *error); +int bus_session_method_lock(sd_bus_message *message, void *userdata, sd_bus_error *error); +int bus_session_method_terminate(sd_bus_message *message, void *userdata, sd_bus_error *error); +int bus_session_method_kill(sd_bus_message *message, void *userdata, sd_bus_error *error); diff --git a/src/login/logind-session-device.c b/src/login/logind-session-device.c index 3e2ff6d5b8d..3057e72394d 100644 --- a/src/login/logind-session-device.c +++ b/src/login/logind-session-device.c @@ -7,14 +7,15 @@ #include #include "sd-device.h" +#include "sd-daemon.h" #include "alloc-util.h" #include "bus-util.h" #include "fd-util.h" +#include "logind-session-dbus.h" #include "logind-session-device.h" #include "missing.h" #include "parse-util.h" -#include "sd-daemon.h" #include "util.h" enum SessionDeviceNotifications { diff --git a/src/login/logind-session.c b/src/login/logind-session.c index f1efeb0e017..17700c69219 100644 --- a/src/login/logind-session.c +++ b/src/login/logind-session.c @@ -22,7 +22,11 @@ #include "fileio.h" #include "format-util.h" #include "io-util.h" +#include "logind-dbus.h" +#include "logind-seat-dbus.h" +#include "logind-session-dbus.h" #include "logind-session.h" +#include "logind-user-dbus.h" #include "mkdir.h" #include "parse-util.h" #include "path-util.h" diff --git a/src/login/logind-session.h b/src/login/logind-session.h index 884a8f45b89..50fe29e7970 100644 --- a/src/login/logind-session.h +++ b/src/login/logind-session.h @@ -146,18 +146,6 @@ int session_kill(Session *s, KillWho who, int signo); SessionState session_get_state(Session *u); -extern const sd_bus_vtable session_vtable[]; -int session_node_enumerator(sd_bus *bus, const char *path,void *userdata, char ***nodes, sd_bus_error *error); -int session_object_find(sd_bus *bus, const char *path, const char *interface, void *userdata, void **found, sd_bus_error *error); -char *session_bus_path(Session *s); - -int session_send_signal(Session *s, bool new_session); -int session_send_changed(Session *s, const char *properties, ...) _sentinel_; -int session_send_lock(Session *s, bool lock); -int session_send_lock_all(Manager *m, bool lock); - -int session_send_create_reply(Session *s, sd_bus_error *error); - const char* session_state_to_string(SessionState t) _const_; SessionState session_state_from_string(const char *s) _pure_; @@ -180,11 +168,6 @@ bool session_is_controller(Session *s, const char *sender); int session_set_controller(Session *s, const char *sender, bool force, bool prepare); void session_drop_controller(Session *s); -int bus_session_method_activate(sd_bus_message *message, void *userdata, sd_bus_error *error); -int bus_session_method_lock(sd_bus_message *message, void *userdata, sd_bus_error *error); -int bus_session_method_terminate(sd_bus_message *message, void *userdata, sd_bus_error *error); -int bus_session_method_kill(sd_bus_message *message, void *userdata, sd_bus_error *error); - static inline bool SESSION_IS_SELF(const char *name) { return isempty(name) || streq(name, "self"); } diff --git a/src/login/logind-user-dbus.c b/src/login/logind-user-dbus.c index ca3ea7e432f..beb97362e73 100644 --- a/src/login/logind-user-dbus.c +++ b/src/login/logind-user-dbus.c @@ -6,6 +6,9 @@ #include "alloc-util.h" #include "bus-util.h" #include "format-util.h" +#include "logind-dbus.h" +#include "logind-session-dbus.h" +#include "logind-user-dbus.h" #include "logind-user.h" #include "logind.h" #include "missing_capability.h" diff --git a/src/login/logind-user-dbus.h b/src/login/logind-user-dbus.h new file mode 100644 index 00000000000..acfcb981cf3 --- /dev/null +++ b/src/login/logind-user-dbus.h @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: LGPL-2.1+ */ +#pragma once + +#include "sd-bus.h" + +#include "logind-user.h" + +extern const sd_bus_vtable user_vtable[]; +int user_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***nodes, sd_bus_error *error); +int user_object_find(sd_bus *bus, const char *path, const char *interface, void *userdata, void **found, sd_bus_error *error); +char *user_bus_path(User *s); + +int user_send_signal(User *u, bool new_user); +int user_send_changed(User *u, const char *properties, ...) _sentinel_; + +int bus_user_method_terminate(sd_bus_message *message, void *userdata, sd_bus_error *error); +int bus_user_method_kill(sd_bus_message *message, void *userdata, sd_bus_error *error); diff --git a/src/login/logind-user.c b/src/login/logind-user.c index 1f07a98dd8e..b17fb2e3225 100644 --- a/src/login/logind-user.c +++ b/src/login/logind-user.c @@ -19,7 +19,9 @@ #include "hashmap.h" #include "label.h" #include "limits-util.h" +#include "logind-dbus.h" #include "logind-user.h" +#include "logind-user-dbus.h" #include "mkdir.h" #include "parse-util.h" #include "path-util.h" diff --git a/src/login/logind-user.h b/src/login/logind-user.h index c41973e27dc..4bd65d83734 100644 --- a/src/login/logind-user.h +++ b/src/login/logind-user.h @@ -69,18 +69,7 @@ int user_check_linger_file(User *u); void user_elect_display(User *u); void user_update_last_session_timer(User *u); -extern const sd_bus_vtable user_vtable[]; -int user_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***nodes, sd_bus_error *error); -int user_object_find(sd_bus *bus, const char *path, const char *interface, void *userdata, void **found, sd_bus_error *error); -char *user_bus_path(User *s); - -int user_send_signal(User *u, bool new_user); -int user_send_changed(User *u, const char *properties, ...) _sentinel_; - const char* user_state_to_string(UserState s) _const_; UserState user_state_from_string(const char *s) _pure_; -int bus_user_method_terminate(sd_bus_message *message, void *userdata, sd_bus_error *error); -int bus_user_method_kill(sd_bus_message *message, void *userdata, sd_bus_error *error); - CONFIG_PARSER_PROTOTYPE(config_parse_compat_user_tasks_max); diff --git a/src/login/logind.c b/src/login/logind.c index 89807dc917d..d60223db686 100644 --- a/src/login/logind.c +++ b/src/login/logind.c @@ -18,6 +18,10 @@ #include "fd-util.h" #include "format-util.h" #include "fs-util.h" +#include "logind-dbus.h" +#include "logind-seat-dbus.h" +#include "logind-session-dbus.h" +#include "logind-user-dbus.h" #include "logind.h" #include "main-func.h" #include "parse-util.h" diff --git a/src/login/logind.h b/src/login/logind.h index 0089fff87a7..f260f2dc96d 100644 --- a/src/login/logind.h +++ b/src/login/logind.h @@ -159,24 +159,6 @@ void manager_reconnect_utmp(Manager *m); extern const sd_bus_vtable manager_vtable[]; -int match_job_removed(sd_bus_message *message, void *userdata, sd_bus_error *error); -int match_unit_removed(sd_bus_message *message, void *userdata, sd_bus_error *error); -int match_properties_changed(sd_bus_message *message, void *userdata, sd_bus_error *error); -int match_reloading(sd_bus_message *message, void *userdata, sd_bus_error *error); -int match_name_owner_changed(sd_bus_message *message, void *userdata, sd_bus_error *error); - -int bus_manager_shutdown_or_sleep_now_or_later(Manager *m, const char *unit_name, InhibitWhat w, sd_bus_error *error); - -int manager_send_changed(Manager *manager, const char *property, ...) _sentinel_; - -int manager_start_scope(Manager *manager, const char *scope, pid_t pid, const char *slice, const char *description, char **wants, char **after, const char *requires_mounts_for, sd_bus_message *more_properties, sd_bus_error *error, char **job); -int manager_start_unit(Manager *manager, const char *unit, sd_bus_error *error, char **job); -int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, char **job); -int manager_abandon_scope(Manager *manager, const char *scope, sd_bus_error *error); -int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, sd_bus_error *error); -int manager_unit_is_active(Manager *manager, const char *unit, sd_bus_error *error); -int manager_job_is_active(Manager *manager, const char *path, sd_bus_error *error); - /* gperf lookup function */ const struct ConfigPerfItem* logind_gperf_lookup(const char *key, GPERF_LEN_TYPE length); @@ -185,11 +167,5 @@ int manager_set_lid_switch_ignore(Manager *m, usec_t until); CONFIG_PARSER_PROTOTYPE(config_parse_n_autovts); CONFIG_PARSER_PROTOTYPE(config_parse_tmpfs_size); -int manager_get_session_from_creds(Manager *m, sd_bus_message *message, const char *name, sd_bus_error *error, Session **ret); -int manager_get_user_from_creds(Manager *m, sd_bus_message *message, uid_t uid, sd_bus_error *error, User **ret); -int manager_get_seat_from_creds(Manager *m, sd_bus_message *message, const char *name, sd_bus_error *error, Seat **ret); - int manager_setup_wall_message_timer(Manager *m); bool logind_wall_tty_filter(const char *tty, void *userdata); - -int manager_dispatch_delayed(Manager *manager, bool timeout); diff --git a/src/login/meson.build b/src/login/meson.build index 89ce81f767f..832274af787 100644 --- a/src/login/meson.build +++ b/src/login/meson.build @@ -21,19 +21,23 @@ liblogind_core_sources = files(''' logind-button.h logind-core.c logind-dbus.c + logind-dbus.h logind-device.c logind-device.h logind-inhibit.c logind-inhibit.h logind-seat-dbus.c + logind-seat-dbus.h logind-seat.c logind-seat.h logind-session-dbus.c + logind-session-dbus.h logind-session-device.c logind-session-device.h logind-session.c logind-session.h logind-user-dbus.c + logind-user-dbus.h logind-user.c logind-user.h logind-utmp.c