return 0;
}
-static int list_sessions(int argc, char *argv[], void *userdata) {
+static int verb_list_sessions(int argc, char *argv[], void *userdata) {
sd_bus *bus = ASSERT_PTR(userdata);
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
return list_table_print(table, "sessions");
}
-static int list_users(int argc, char *argv[], void *userdata) {
+static int verb_list_users(int argc, char *argv[], void *userdata) {
static const struct bus_properties_map property_map[] = {
{ "Linger", "b", NULL, offsetof(UserStatusInfo, linger) },
return list_table_print(table, "users");
}
-static int list_seats(int argc, char *argv[], void *userdata) {
+static int verb_list_seats(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
_cleanup_(table_unrefp) Table *table = NULL;
return strdup_to(ret, path);
}
-static int show_session(int argc, char *argv[], void *userdata) {
+static int verb_show_session(int argc, char *argv[], void *userdata) {
sd_bus *bus = ASSERT_PTR(userdata);
bool properties;
int r;
return 0;
}
-static int show_user(int argc, char *argv[], void *userdata) {
+static int verb_show_user(int argc, char *argv[], void *userdata) {
sd_bus *bus = ASSERT_PTR(userdata);
bool properties;
int r;
return 0;
}
-static int show_seat(int argc, char *argv[], void *userdata) {
+static int verb_show_seat(int argc, char *argv[], void *userdata) {
sd_bus *bus = ASSERT_PTR(userdata);
bool properties;
int r;
return 0;
}
-static int activate(int argc, char *argv[], void *userdata) {
+static int verb_activate(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = ASSERT_PTR(userdata);
int r;
return 0;
}
-static int kill_session(int argc, char *argv[], void *userdata) {
+static int verb_kill_session(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = ASSERT_PTR(userdata);
int r;
return 0;
}
-static int enable_linger(int argc, char *argv[], void *userdata) {
+static int verb_enable_linger(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = ASSERT_PTR(userdata);
char* short_argv[3];
return 0;
}
-static int terminate_user(int argc, char *argv[], void *userdata) {
+static int verb_terminate_user(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = ASSERT_PTR(userdata);
int r;
return 0;
}
-static int kill_user(int argc, char *argv[], void *userdata) {
+static int verb_kill_user(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = ASSERT_PTR(userdata);
int r;
return 0;
}
-static int attach(int argc, char *argv[], void *userdata) {
+static int verb_attach(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = ASSERT_PTR(userdata);
int r;
return 0;
}
-static int flush_devices(int argc, char *argv[], void *userdata) {
+static int verb_flush_devices(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = ASSERT_PTR(userdata);
int r;
return 0;
}
-static int lock_sessions(int argc, char *argv[], void *userdata) {
+static int verb_lock_sessions(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = ASSERT_PTR(userdata);
int r;
return 0;
}
-static int terminate_seat(int argc, char *argv[], void *userdata) {
+static int verb_terminate_seat(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus *bus = ASSERT_PTR(userdata);
int r;
return 0;
}
-static int help(int argc, char *argv[], void *userdata) {
+static int help(void) {
_cleanup_free_ char *link = NULL;
int r;
return 0;
}
+static int verb_help(int argc, char *argv[], void *userdata) {
+ return help();
+}
+
static int parse_argv(int argc, char *argv[]) {
enum {
ARG_VERSION = 0x100,
switch (c) {
case 'h':
- return help(0, NULL, NULL);
+ return help();
case ARG_VERSION:
return version();
static int loginctl_main(int argc, char *argv[], sd_bus *bus) {
static const Verb verbs[] = {
- { "help", VERB_ANY, VERB_ANY, 0, help },
- { "list-sessions", VERB_ANY, 1, VERB_DEFAULT, list_sessions },
- { "session-status", VERB_ANY, VERB_ANY, 0, show_session },
- { "show-session", VERB_ANY, VERB_ANY, 0, show_session },
- { "activate", VERB_ANY, 2, 0, activate },
- { "lock-session", VERB_ANY, VERB_ANY, 0, activate },
- { "unlock-session", VERB_ANY, VERB_ANY, 0, activate },
- { "lock-sessions", VERB_ANY, 1, 0, lock_sessions },
- { "unlock-sessions", VERB_ANY, 1, 0, lock_sessions },
- { "terminate-session", 2, VERB_ANY, 0, activate },
- { "kill-session", 2, VERB_ANY, 0, kill_session },
- { "list-users", VERB_ANY, 1, 0, list_users },
- { "user-status", VERB_ANY, VERB_ANY, 0, show_user },
- { "show-user", VERB_ANY, VERB_ANY, 0, show_user },
- { "enable-linger", VERB_ANY, VERB_ANY, 0, enable_linger },
- { "disable-linger", VERB_ANY, VERB_ANY, 0, enable_linger },
- { "terminate-user", 2, VERB_ANY, 0, terminate_user },
- { "kill-user", 2, VERB_ANY, 0, kill_user },
- { "list-seats", VERB_ANY, 1, 0, list_seats },
- { "seat-status", VERB_ANY, VERB_ANY, 0, show_seat },
- { "show-seat", VERB_ANY, VERB_ANY, 0, show_seat },
- { "attach", 3, VERB_ANY, 0, attach },
- { "flush-devices", VERB_ANY, 1, 0, flush_devices },
- { "terminate-seat", 2, VERB_ANY, 0, terminate_seat },
+ { "help", VERB_ANY, VERB_ANY, 0, verb_help },
+ { "list-sessions", VERB_ANY, 1, VERB_DEFAULT, verb_list_sessions },
+ { "session-status", VERB_ANY, VERB_ANY, 0, verb_show_session },
+ { "show-session", VERB_ANY, VERB_ANY, 0, verb_show_session },
+ { "activate", VERB_ANY, 2, 0, verb_activate },
+ { "lock-session", VERB_ANY, VERB_ANY, 0, verb_activate },
+ { "unlock-session", VERB_ANY, VERB_ANY, 0, verb_activate },
+ { "lock-sessions", VERB_ANY, 1, 0, verb_lock_sessions },
+ { "unlock-sessions", VERB_ANY, 1, 0, verb_lock_sessions },
+ { "terminate-session", 2, VERB_ANY, 0, verb_activate },
+ { "kill-session", 2, VERB_ANY, 0, verb_kill_session },
+ { "list-users", VERB_ANY, 1, 0, verb_list_users },
+ { "user-status", VERB_ANY, VERB_ANY, 0, verb_show_user },
+ { "show-user", VERB_ANY, VERB_ANY, 0, verb_show_user },
+ { "enable-linger", VERB_ANY, VERB_ANY, 0, verb_enable_linger },
+ { "disable-linger", VERB_ANY, VERB_ANY, 0, verb_enable_linger },
+ { "terminate-user", 2, VERB_ANY, 0, verb_terminate_user },
+ { "kill-user", 2, VERB_ANY, 0, verb_kill_user },
+ { "list-seats", VERB_ANY, 1, 0, verb_list_seats },
+ { "seat-status", VERB_ANY, VERB_ANY, 0, verb_show_seat },
+ { "show-seat", VERB_ANY, VERB_ANY, 0, verb_show_seat },
+ { "attach", 3, VERB_ANY, 0, verb_attach },
+ { "flush-devices", VERB_ANY, 1, 0, verb_flush_devices },
+ { "terminate-seat", 2, VERB_ANY, 0, verb_terminate_seat },
{}
};