summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/accounts-daemon.h2
-rw-r--r--src/daemon.c348
-rw-r--r--src/daemon.h33
-rw-r--r--src/extensions.c10
-rw-r--r--src/fgetpwent.c148
-rw-r--r--src/libaccountsservice/act-user-manager.c432
-rw-r--r--src/libaccountsservice/act-user-manager.h158
-rw-r--r--src/libaccountsservice/act-user-private.h32
-rw-r--r--src/libaccountsservice/act-user.c139
-rw-r--r--src/libaccountsservice/act-user.h170
-rw-r--r--src/main.c55
-rw-r--r--src/user-classify.h6
-rw-r--r--src/user.c429
-rw-r--r--src/user.h58
-rw-r--r--src/util.c67
-rw-r--r--src/util.h17
-rw-r--r--src/wtmp-helper.c42
-rw-r--r--src/wtmp-helper.h4
-rw-r--r--tests/util.c39
19 files changed, 1123 insertions, 1066 deletions
diff --git a/src/accounts-daemon.h b/src/accounts-daemon.h
index 84bb293..0949dae 100644
--- a/src/accounts-daemon.h
+++ b/src/accounts-daemon.h
@@ -23,7 +23,7 @@
#define TYPE_DAEMON (daemon_get_type ())
#define DAEMON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_DAEMON, Daemon))
-#define DAEMON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_DAEMON, DaemonClass))
+#define DAEMON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_DAEMON, DaemonClass))
#define IS_DAEMON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_DAEMON))
#define IS_DAEMON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_DAEMON))
#define DAEMON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_DAEMON, DaemonClass))
diff --git a/src/daemon.c b/src/daemon.c
index 882bc26..df6810e 100644
--- a/src/daemon.c
+++ b/src/daemon.c
@@ -56,39 +56,45 @@
#define PATH_SHADOW "shadow"
#define PATH_GROUP "/etc/group"
-enum {
+enum
+{
PROP_0,
PROP_DAEMON_VERSION
};
-typedef struct {
+typedef struct
+{
GDBusConnection *bus_connection;
- GHashTable *users;
- gsize number_of_normal_users;
- GList *explicitly_requested_users;
+ GHashTable *users;
+ gsize number_of_normal_users;
+ GList *explicitly_requested_users;
- User *autologin;
+ User *autologin;
- GFileMonitor *passwd_monitor;
- GFileMonitor *shadow_monitor;
- GFileMonitor *group_monitor;
- GFileMonitor *gdm_monitor;
- GFileMonitor *wtmp_monitor;
+ GFileMonitor *passwd_monitor;
+ GFileMonitor *shadow_monitor;
+ GFileMonitor *group_monitor;
+ GFileMonitor *gdm_monitor;
+ GFileMonitor *wtmp_monitor;
- GQueue *pending_list_cached_users;
+ GQueue *pending_list_cached_users;
- guint reload_id;
- guint autologin_id;
+ guint reload_id;
+ guint autologin_id;
PolkitAuthority *authority;
- GHashTable *extension_ifaces;
+ GHashTable *extension_ifaces;
} DaemonPrivate;
-typedef struct passwd * (* EntryGeneratorFunc) (Daemon *, GHashTable *, gpointer *, struct spwd **shadow_entry);
+typedef struct passwd * (* EntryGeneratorFunc) (Daemon *,
+ GHashTable *,
+ gpointer *,
+ struct spwd **shadow_entry);
-typedef struct {
- Daemon *daemon;
+typedef struct
+{
+ Daemon *daemon;
GDBusMethodInvocation *context;
} ListUserData;
@@ -104,11 +110,11 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (Daemon, g_object_unref)
static const GDBusErrorEntry accounts_error_entries[] =
{
- { ERROR_FAILED, "org.freedesktop.Accounts.Error.Failed" },
- { ERROR_USER_EXISTS, "org.freedesktop.Accounts.Error.UserExists" },
+ { ERROR_FAILED, "org.freedesktop.Accounts.Error.Failed" },
+ { ERROR_USER_EXISTS, "org.freedesktop.Accounts.Error.UserExists" },
{ ERROR_USER_DOES_NOT_EXIST, "org.freedesktop.Accounts.Error.UserDoesNotExist" },
- { ERROR_PERMISSION_DENIED, "org.freedesktop.Accounts.Error.PermissionDenied" },
- { ERROR_NOT_SUPPORTED, "org.freedesktop.Accounts.Error.NotSupported" }
+ { ERROR_PERMISSION_DENIED, "org.freedesktop.Accounts.Error.PermissionDenied" },
+ { ERROR_NOT_SUPPORTED, "org.freedesktop.Accounts.Error.NotSupported" }
};
GQuark
@@ -128,23 +134,22 @@ error_quark (void)
GType
error_get_type (void)
{
- static GType etype = 0;
-
- if (etype == 0)
- {
- static const GEnumValue values[] =
- {
- ENUM_ENTRY (ERROR_FAILED, "Failed"),
- ENUM_ENTRY (ERROR_USER_EXISTS, "UserExists"),
- ENUM_ENTRY (ERROR_USER_DOES_NOT_EXIST, "UserDoesntExist"),
- ENUM_ENTRY (ERROR_PERMISSION_DENIED, "PermissionDenied"),
- ENUM_ENTRY (ERROR_NOT_SUPPORTED, "NotSupported"),
- { 0, 0, 0 }
- };
- g_assert (NUM_ERRORS == G_N_ELEMENTS (values) - 1);
- etype = g_enum_register_static ("Error", values);
- }
- return etype;
+ static GType etype = 0;
+
+ if (etype == 0) {
+ static const GEnumValue values[] =
+ {
+ ENUM_ENTRY (ERROR_FAILED, "Failed"),
+ ENUM_ENTRY (ERROR_USER_EXISTS, "UserExists"),
+ ENUM_ENTRY (ERROR_USER_DOES_NOT_EXIST, "UserDoesntExist"),
+ ENUM_ENTRY (ERROR_PERMISSION_DENIED, "PermissionDenied"),
+ ENUM_ENTRY (ERROR_NOT_SUPPORTED, "NotSupported"),
+ { 0, 0, 0}
+ };
+ g_assert (NUM_ERRORS == G_N_ELEMENTS (values) - 1);
+ etype = g_enum_register_static ("Error", values);
+ }
+ return etype;
}
#ifndef HAVE_FGETPWENT
@@ -176,13 +181,15 @@ entry_generator_fgetpwent (Daemon *daemon,
{
struct passwd *pwent;
- struct {
+ struct
+ {
struct spwd spbuf;
- char buf[1024];
+ char buf[1024];
} *shadow_entry_buffers;
- struct {
- FILE *fp;
+ struct
+ {
+ FILE *fp;
GHashTable *users;
} *generator_state;
@@ -206,9 +213,9 @@ entry_generator_fgetpwent (Daemon *daemon,
do {
int ret = 0;
- shadow_entry_buffers = g_malloc0 (sizeof (*shadow_entry_buffers));
+ shadow_entry_buffers = g_malloc0 (sizeof(*shadow_entry_buffers));
- ret = fgetspent_r (fp, &shadow_entry_buffers->spbuf, shadow_entry_buffers->buf, sizeof (shadow_entry_buffers->buf), &shadow_entry);
+ ret = fgetspent_r (fp, &shadow_entry_buffers->spbuf, shadow_entry_buffers->buf, sizeof(shadow_entry_buffers->buf), &shadow_entry);
if (ret == 0) {
g_hash_table_insert (shadow_users, g_strdup (shadow_entry->sp_namp), shadow_entry_buffers);
} else {
@@ -235,7 +242,7 @@ entry_generator_fgetpwent (Daemon *daemon,
return NULL;
}
- generator_state = g_malloc0 (sizeof (*generator_state));
+ generator_state = g_malloc0 (sizeof(*generator_state));
generator_state->fp = fp;
generator_state->users = shadow_users;
@@ -251,7 +258,7 @@ entry_generator_fgetpwent (Daemon *daemon,
shadow_entry_buffers = g_hash_table_lookup (generator_state->users, pwent->pw_name);
if (shadow_entry_buffers != NULL) {
- *spent = &shadow_entry_buffers->spbuf;
+ *spent = &shadow_entry_buffers->spbuf;
}
/* Skip system users... */
@@ -281,7 +288,8 @@ entry_generator_cachedir (Daemon *daemon,
struct spwd **shadow_entry)
{
struct passwd *pwent;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
gboolean regular;
GHashTableIter iter;
gpointer key, value;
@@ -326,10 +334,9 @@ entry_generator_cachedir (Daemon *daemon,
} else if (errno == 0) {
g_debug ("user '%s' in cache dir but not present on system, removing", name);
remove_cache_files (name);
- }
- else {
+ } else {
g_warning ("failed to check if user '%s' in cache dir is present on system: %s",
- name, g_strerror (errno));
+ name, g_strerror (errno));
}
}
}
@@ -396,10 +403,10 @@ entry_generator_requested_users (Daemon *daemon,
}
static void
-load_entries (Daemon *daemon,
- GHashTable *users,
- gboolean explicitly_requested,
- EntryGeneratorFunc entry_generator)
+load_entries (Daemon *daemon,
+ GHashTable *users,
+ gboolean explicitly_requested,
+ EntryGeneratorFunc entry_generator)
{
DaemonPrivate *priv = daemon_get_instance_private (daemon);
gpointer generator_state = NULL;
@@ -482,8 +489,9 @@ reload_users (Daemon *daemon)
load_entries (daemon, users, FALSE, entry_generator_fgetpwent);
local = g_hash_table_new (g_str_hash, g_str_equal);
g_hash_table_iter_init (&iter, users);
- while (g_hash_table_iter_next (&iter, &name, NULL))
+ while (g_hash_table_iter_next (&iter, &name, NULL)) {
g_hash_table_add (local, name);
+ }
/* Now add/update users from other sources, possibly non-local */
load_entries (daemon, users, TRUE, entry_generator_cachedir);
@@ -568,10 +576,10 @@ reload_users_timeout (Daemon *daemon)
return FALSE;
}
-static gboolean load_autologin (Daemon *daemon,
- gchar **name,
- gboolean *enabled,
- GError **error);
+static gboolean load_autologin (Daemon *daemon,
+ gchar **name,
+ gboolean *enabled,
+ GError **error);
static gboolean
reload_autologin_timeout (Daemon *daemon)
@@ -580,7 +588,8 @@ reload_autologin_timeout (Daemon *daemon)
AccountsAccounts *accounts = ACCOUNTS_ACCOUNTS (daemon);
gboolean enabled;
g_autofree gchar *name = NULL;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
User *user = NULL;
priv->autologin_id = 0;
@@ -610,8 +619,7 @@ reload_autologin_timeout (Daemon *daemon)
priv->autologin = g_object_ref (user);
g_signal_emit_by_name (priv->autologin, "changed", 0);
}
- }
- else {
+ } else {
g_debug ("automatic login is disabled");
accounts_accounts_set_automatic_login_users (accounts, NULL);
}
@@ -632,7 +640,7 @@ queue_reload_users_eventually (Daemon *daemon)
* parsing doesn't hammer the cpu if the user is logging in
* and out in a continuous loop.
*/
- priv->reload_id = g_timeout_add_seconds (10, (GSourceFunc)reload_users_timeout, daemon);
+ priv->reload_id = g_timeout_add_seconds (10, (GSourceFunc) reload_users_timeout, daemon);
}
static void
@@ -647,7 +655,7 @@ queue_reload_users_soon (Daemon *daemon)
/* we wait half a second or so in case /etc/passwd and
* /etc/shadow are changed at the same time, or repeatedly.
*/
- priv->reload_id = g_timeout_add (500, (GSourceFunc)reload_users_timeout, daemon);
+ priv->reload_id = g_timeout_add (500, (GSourceFunc) reload_users_timeout, daemon);
}
static void
@@ -659,7 +667,7 @@ queue_reload_users (Daemon *daemon)
return;
}
- priv->reload_id = g_idle_add ((GSourceFunc)reload_users_timeout, daemon);
+ priv->reload_id = g_idle_add ((GSourceFunc) reload_users_timeout, daemon);
}
static void
@@ -671,15 +679,15 @@ queue_reload_autologin (Daemon *daemon)
return;
}
- priv->autologin_id = g_idle_add ((GSourceFunc)reload_autologin_timeout, daemon);
+ priv->autologin_id = g_idle_add ((GSourceFunc) reload_autologin_timeout, daemon);
}
static void
-on_users_monitor_changed (GFileMonitor *monitor,
- GFile *file,
- GFile *other_file,
- GFileMonitorEvent event_type,
- Daemon *daemon)
+on_users_monitor_changed (GFileMonitor *monitor,
+ GFile *file,
+ GFile *other_file,
+ GFileMonitorEvent event_type,
+ Daemon *daemon)
{
DaemonPrivate *priv = daemon_get_instance_private (daemon);
@@ -696,11 +704,11 @@ on_users_monitor_changed (GFileMonitor *monitor,
}
static void
-on_gdm_monitor_changed (GFileMonitor *monitor,
- GFile *file,
- GFile *other_file,
- GFileMonitorEvent event_type,
- Daemon *daemon)
+on_gdm_monitor_changed (GFileMonitor *monitor,
+ GFile *file,
+ GFile *other_file,
+ GFileMonitorEvent event_type,
+ Daemon *daemon)
{
if (event_type != G_FILE_MONITOR_EVENT_CHANGED &&
event_type != G_FILE_MONITOR_EVENT_CREATED) {
@@ -710,20 +718,20 @@ on_gdm_monitor_changed (GFileMonitor *monitor,
queue_reload_autologin (daemon);
}
-typedef void FileChangeCallback (GFileMonitor *monitor,
- GFile *file,
- GFile *other_file,
- GFileMonitorEvent event_type,
- Daemon *daemon);
+typedef void FileChangeCallback (GFileMonitor *monitor,
+ GFile *file,
+ GFile *other_file,
+ GFileMonitorEvent event_type,
+ Daemon *daemon);
static GFileMonitor *
setup_monitor (Daemon *daemon,
const gchar *path,
FileChangeCallback *callback)
{
- g_autoptr(GFile) file = NULL;
+ g_autoptr (GFile) file = NULL;
GFileMonitor *monitor;
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
if (!path) {
return NULL;
@@ -813,7 +821,8 @@ static gboolean
register_accounts_daemon (Daemon *daemon)
{
DaemonPrivate *priv = daemon_get_instance_private (daemon);
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
priv->authority = polkit_authority_get_sync (NULL, &error);
if (priv->authority == NULL) {
@@ -844,7 +853,7 @@ register_accounts_daemon (Daemon *daemon)
Daemon *
daemon_new (void)
{
- g_autoptr(Daemon) daemon = NULL;
+ g_autoptr (Daemon) daemon = NULL;
daemon = DAEMON (g_object_new (TYPE_DAEMON, NULL));
@@ -902,7 +911,7 @@ daemon_local_find_user_by_id (Daemon *daemon,
pwent = getpwuid (uid);
if (pwent == NULL) {
- g_debug ("unable to lookup uid %d", (int)uid);
+ g_debug ("unable to lookup uid %d", (int) uid);
return NULL;
}
@@ -952,6 +961,7 @@ User *
daemon_local_get_automatic_login_user (Daemon *daemon)
{
DaemonPrivate *priv = daemon_get_instance_private (daemon);
+
return priv->autologin;
}
@@ -960,16 +970,15 @@ daemon_find_user_by_id (AccountsAccounts *accounts,
GDBusMethodInvocation *context,
gint64 uid)
{
- Daemon *daemon = (Daemon*)accounts;
+ Daemon *daemon = (Daemon *) accounts;
User *user;
user = daemon_local_find_user_by_id (daemon, uid);
if (user) {
accounts_accounts_complete_find_user_by_id (NULL, context, user_get_object_path (user));
- }
- else {
- throw_error (context, ERROR_FAILED, "Failed to look up user with uid %d.", (int)uid);
+ } else {
+ throw_error (context, ERROR_FAILED, "Failed to look up user with uid %d.", (int) uid);
}
return TRUE;
@@ -980,15 +989,14 @@ daemon_find_user_by_name (AccountsAccounts *accounts,
GDBusMethodInvocation *context,
const gchar *name)
{
- Daemon *daemon = (Daemon*)accounts;
+ Daemon *daemon = (Daemon *) accounts;
User *user;
user = daemon_local_find_user_by_name (daemon, name);
if (user) {
accounts_accounts_complete_find_user_by_name (NULL, context, user_get_object_path (user));
- }
- else {
+ } else {
throw_error (context, ERROR_FAILED, "Failed to look up user with name %s.", name);
}
@@ -1020,7 +1028,8 @@ static void
finish_list_cached_users (ListUserData *data)
{
DaemonPrivate *priv = daemon_get_instance_private (data->daemon);
- g_autoptr(GPtrArray) object_paths = NULL;
+
+ g_autoptr (GPtrArray) object_paths = NULL;
GHashTableIter iter;
gpointer key, value;
@@ -1058,7 +1067,7 @@ static gboolean
daemon_list_cached_users (AccountsAccounts *accounts,
GDBusMethodInvocation *context)
{
- Daemon *daemon = (Daemon*)accounts;
+ Daemon *daemon = (Daemon *) accounts;
DaemonPrivate *priv = daemon_get_instance_private (daemon);
ListUserData *data;
@@ -1067,8 +1076,7 @@ daemon_list_cached_users (AccountsAccounts *accounts,
if (priv->reload_id > 0) {
/* reload pending -- finish call in reload_users_timeout */
g_queue_push_tail (priv->pending_list_cached_users, data);
- }
- else {
+ } else {
finish_list_cached_users (data);
}
@@ -1078,7 +1086,7 @@ daemon_list_cached_users (AccountsAccounts *accounts,
static int
sort_languages (gconstpointer element_1,
gconstpointer element_2,
- GHashTable *language_frequency_map)
+ GHashTable *language_frequency_map)
{
const char *language_1 = *(const char **) element_1;
const char *language_2 = *(const char **) element_2;
@@ -1098,12 +1106,14 @@ static gboolean
daemon_get_users_languages (AccountsAccounts *accounts,
GDBusMethodInvocation *context)
{
- Daemon *daemon = (Daemon*)accounts;
+ Daemon *daemon = (Daemon *) accounts;
DaemonPrivate *priv = daemon_get_instance_private (daemon);
- g_autoptr(GHashTable) language_frequency_map = NULL;
+
+ g_autoptr (GHashTable) language_frequency_map = NULL;
GHashTableIter users_iter, language_frequency_map_iter;
gpointer key, value;
- g_autoptr(GPtrArray) languages_array = NULL;
+
+ g_autoptr (GPtrArray) languages_array = NULL;
const char *system_locale;
language_frequency_map = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
@@ -1156,7 +1166,7 @@ daemon_get_users_languages (AccountsAccounts *accounts,
static const gchar *
daemon_get_daemon_version (AccountsAccounts *object)
{
- return VERSION;
+ return VERSION;
}
static void
@@ -1175,10 +1185,11 @@ cache_user (Daemon *daemon,
}
}
-typedef struct {
+typedef struct
+{
gchar *user_name;
gchar *real_name;
- gint account_type;
+ gint account_type;
} CreateUserData;
static void
@@ -1200,7 +1211,8 @@ daemon_create_user_authorized_cb (Daemon *daemon,
{
CreateUserData *cd = data;
User *user;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
const gchar *argv[9];
g_autofree gchar *admin_groups = NULL;
@@ -1216,13 +1228,13 @@ daemon_create_user_authorized_cb (Daemon *daemon,
argv[2] = "-c";
argv[3] = cd->real_name;
if (cd->account_type == ACCOUNT_TYPE_ADMINISTRATOR) {
- g_auto(GStrv) admin_groups_array = NULL;
- g_autoptr(GStrvBuilder) admin_groups_builder = g_strv_builder_new ();
+ g_auto (GStrv) admin_groups_array = NULL;
+ g_autoptr (GStrvBuilder) admin_groups_builder = g_strv_builder_new ();
g_strv_builder_add (admin_groups_builder, ADMIN_GROUP);
if (EXTRA_ADMIN_GROUPS != NULL && EXTRA_ADMIN_GROUPS[0] != '\0') {
- g_auto(GStrv) extra_admin_groups = NULL;
+ g_auto (GStrv) extra_admin_groups = NULL;
extra_admin_groups = g_strsplit (EXTRA_ADMIN_GROUPS, ",", 0);
for (gsize i = 0; extra_admin_groups[i] != NULL; i++) {
@@ -1240,13 +1252,11 @@ daemon_create_user_authorized_cb (Daemon *daemon,
argv[6] = "--";
argv[7] = cd->user_name;
argv[8] = NULL;
- }
- else if (cd->account_type == ACCOUNT_TYPE_STANDARD) {
+ } else if (cd->account_type == ACCOUNT_TYPE_STANDARD) {
argv[4] = "--";
argv[5] = cd->user_name;
argv[6] = NULL;
- }
- else {
+ } else {
throw_error (context, ERROR_FAILED, "Don't know how to add user of type %d", cd->account_type);
return;
}
@@ -1272,7 +1282,7 @@ daemon_create_user (AccountsAccounts *accounts,
const gchar *real_name,
gint account_type)
{
- Daemon *daemon = (Daemon*)accounts;
+ Daemon *daemon = (Daemon *) accounts;
CreateUserData *data;
data = g_new0 (CreateUserData, 1);
@@ -1286,7 +1296,7 @@ daemon_create_user (AccountsAccounts *accounts,
daemon_create_user_authorized_cb,
context,
data,
- (GDestroyNotify)create_data_free);
+ (GDestroyNotify) create_data_free);
return TRUE;
}
@@ -1298,7 +1308,7 @@ daemon_cache_user_authorized_cb (Daemon *daemon,
gpointer data)
{
const gchar *user_name = data;
- User *user;
+ User *user;
sys_log (context, "cache user '%s'", user_name);
@@ -1321,7 +1331,7 @@ daemon_cache_user (AccountsAccounts *accounts,
GDBusMethodInvocation *context,
const gchar *user_name)
{
- Daemon *daemon = (Daemon*)accounts;
+ Daemon *daemon = (Daemon *) accounts;
/* Can't have a slash in the user name */
if (strchr (user_name, '/') != NULL) {
@@ -1349,7 +1359,7 @@ daemon_uncache_user_authorized_cb (Daemon *daemon,
gpointer data)
{
const gchar *user_name = data;
- User *user;
+ User *user;
sys_log (context, "uncache user '%s'", user_name);
@@ -1378,7 +1388,7 @@ daemon_uncache_user (AccountsAccounts *accounts,
GDBusMethodInvocation *context,
const gchar *user_name)
{
- Daemon *daemon = (Daemon*)accounts;
+ Daemon *daemon = (Daemon *) accounts;
daemon_local_check_auth (daemon,
NULL,
@@ -1391,8 +1401,9 @@ daemon_uncache_user (AccountsAccounts *accounts,
return TRUE;
}
-typedef struct {
- uid_t uid;
+typedef struct
+{
+ uid_t uid;
gboolean remove_files;
} DeleteUserData;
@@ -1405,7 +1416,8 @@ daemon_delete_user_authorized_cb (Daemon *daemon,
{
DaemonPrivate *priv = daemon_get_instance_private (daemon);
DeleteUserData *ud = data;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
struct passwd *pwent;
const gchar *argv[6];
const gchar *homedir;
@@ -1451,8 +1463,7 @@ daemon_delete_user_authorized_cb (Daemon *daemon,
argv[3] = "--";
argv[4] = pwent->pw_name;
argv[5] = NULL;
- }
- else {
+ } else {
argv[1] = "-f";
argv[2] = "--";
argv[3] = pwent->pw_name;
@@ -1474,16 +1485,16 @@ daemon_delete_user (AccountsAccounts *accounts,
gint64 uid,
gboolean remove_files)
{
- Daemon *daemon = (Daemon*)accounts;
+ Daemon *daemon = (Daemon *) accounts;
DeleteUserData *data;
- if ((uid_t)uid == 0) {
+ if ((uid_t) uid == 0) {
throw_error (context, ERROR_FAILED, "Refuse to delete root user");
return TRUE;
}
data = g_new0 (DeleteUserData, 1);
- data->uid = (uid_t)uid;
+ data->uid = (uid_t) uid;
data->remove_files = remove_files;
daemon_local_check_auth (daemon,
@@ -1492,18 +1503,19 @@ daemon_delete_user (AccountsAccounts *accounts,
daemon_delete_user_authorized_cb,
context,
data,
- (GDestroyNotify)g_free);
+ (GDestroyNotify) g_free);
return TRUE;
}
-typedef struct {
- Daemon *daemon;
- User *user;
- AuthorizedCallback authorized_cb;
+typedef struct
+{
+ Daemon *daemon;
+ User *user;
+ AuthorizedCallback authorized_cb;
GDBusMethodInvocation *context;
- gpointer data;
- GDestroyNotify destroy_notify;
+ gpointer data;
+ GDestroyNotify destroy_notify;
} CheckAuthData;
static void
@@ -1527,21 +1539,19 @@ check_auth_cb (PolkitAuthority *authority,
{
CheckAuthData *cad = data;
PolkitAuthorizationResult *result;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
gboolean is_authorized = FALSE;
result = polkit_authority_check_authorization_finish (authority, res, &error);
if (error) {
throw_error (cad->context, ERROR_PERMISSION_DENIED, "Not authorized: %s", error->message);
- }
- else {
+ } else {
if (polkit_authorization_result_get_is_authorized (result)) {
is_authorized = TRUE;
- }
- else if (polkit_authorization_result_get_is_challenge (result)) {
+ } else if (polkit_authorization_result_get_is_challenge (result)) {
throw_error (cad->context, ERROR_PERMISSION_DENIED, "Authentication is required");
- }
- else {
+ } else {
throw_error (cad->context, ERROR_PERMISSION_DENIED, "Not authorized");
}
@@ -1549,10 +1559,10 @@ check_auth_cb (PolkitAuthority *authority,
}
if (is_authorized) {
- (* cad->authorized_cb) (cad->daemon,
- cad->user,
- cad->context,
- cad->data);
+ (*cad->authorized_cb) (cad->daemon,
+ cad->user,
+ cad->context,
+ cad->data);
}
check_auth_data_free (data);
@@ -1561,18 +1571,18 @@ check_auth_cb (PolkitAuthority *authority,
static gboolean
get_allow_interaction (GDBusMethodInvocation *invocation)
{
- /* GLib 2.46 is when G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION
- * was first released.
- */
-#if GLIB_CHECK_VERSION(2, 46, 0)
- GDBusMessage *message = g_dbus_method_invocation_get_message (invocation);
- GDBusMessageFlags message_flags = g_dbus_message_get_flags (message);
- if (message_flags & G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION)
- return TRUE;
- else
- return FALSE;
+ /* GLib 2.46 is when G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION
+ * was first released.
+ */
+#if GLIB_CHECK_VERSION (2, 46, 0)
+ GDBusMessage *message = g_dbus_method_invocation_get_message (invocation);
+ GDBusMessageFlags message_flags = g_dbus_message_get_flags (message);
+ if (message_flags & G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION)
+ return TRUE;
+ else
+ return FALSE;
#else
- return TRUE;
+ return TRUE;
#endif
}
@@ -1618,12 +1628,12 @@ daemon_local_check_auth (Daemon *daemon,
}
gboolean
-load_autologin (Daemon *daemon,
- gchar **name,
- gboolean *enabled,
- GError **error)
+load_autologin (Daemon *daemon,
+ gchar **name,
+ gboolean *enabled,
+ GError **error)
{
- g_autoptr(GKeyFile) keyfile = NULL;
+ g_autoptr (GKeyFile) keyfile = NULL;
GError *local_error = NULL;
g_autofree gchar *string = NULL;
@@ -1642,8 +1652,7 @@ load_autologin (Daemon *daemon,
}
if (string != NULL && (g_ascii_strcasecmp (string, "true") == 0 || strcmp (string, "1") == 0)) {
*enabled = TRUE;
- }
- else {
+ } else {
*enabled = FALSE;
}
@@ -1662,10 +1671,10 @@ save_autologin (Daemon *daemon,
gboolean enabled,
GError **error)
{
- g_autoptr(GKeyFile) keyfile = NULL;
+ g_autoptr (GKeyFile) keyfile = NULL;
g_autofree gchar *data = NULL;
gboolean result;
- g_autoptr(GError) local_error = NULL;
+ g_autoptr (GError) local_error = NULL;
keyfile = g_key_file_new ();
if (!g_key_file_load_from_file (keyfile,
@@ -1689,10 +1698,10 @@ save_autologin (Daemon *daemon,
}
gboolean
-daemon_local_set_automatic_login (Daemon *daemon,
- User *user,
- gboolean enabled,
- GError **error)
+daemon_local_set_automatic_login (Daemon *daemon,
+ User *user,
+ gboolean enabled,
+ GError **error)
{
DaemonPrivate *priv = daemon_get_instance_private (daemon);
@@ -1726,6 +1735,7 @@ GHashTable *
daemon_get_extension_ifaces (Daemon *daemon)
{
DaemonPrivate *priv = daemon_get_instance_private (daemon);
+
return priv->extension_ifaces;
}
diff --git a/src/daemon.h b/src/daemon.h
index 0555872..1e264a9 100644
--- a/src/daemon.h
+++ b/src/daemon.h
@@ -31,22 +31,25 @@
#define TYPE_DAEMON (daemon_get_type ())
#define DAEMON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_DAEMON, Daemon))
-#define DAEMON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_DAEMON, DaemonClass))
+#define DAEMON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_DAEMON, DaemonClass))
#define IS_DAEMON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_DAEMON))
#define IS_DAEMON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_DAEMON))
#define DAEMON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_DAEMON, DaemonClass))
typedef struct DaemonClass DaemonClass;
-struct Daemon {
+struct Daemon
+{
AccountsAccountsSkeleton parent;
};
-struct DaemonClass {
+struct DaemonClass
+{
AccountsAccountsSkeletonClass parent_class;
};
-typedef enum {
+typedef enum
+{
ERROR_FAILED,
ERROR_USER_EXISTS,
ERROR_USER_DOES_NOT_EXIST,
@@ -61,16 +64,16 @@ GType error_get_type (void);
#define TYPE_ERROR (error_get_type ())
GQuark error_quark (void);
-GType daemon_get_type (void) G_GNUC_CONST;
-Daemon *daemon_new (void);
+GType daemon_get_type (void) G_GNUC_CONST;
+Daemon *daemon_new (void);
/* local methods */
-User *daemon_local_find_user_by_id (Daemon *daemon,
- uid_t uid);
-User *daemon_local_find_user_by_name (Daemon *daemon,
- const gchar *name);
-User *daemon_local_get_automatic_login_user (Daemon *daemon);
+User *daemon_local_find_user_by_id (Daemon *daemon,
+ uid_t uid);
+User *daemon_local_find_user_by_name (Daemon *daemon,
+ const gchar *name);
+User *daemon_local_get_automatic_login_user (Daemon *daemon);
typedef void (*AuthorizedCallback) (Daemon *daemon,
User *user,
@@ -85,10 +88,10 @@ void daemon_local_check_auth (Daemon *daemon,
gpointer data,
GDestroyNotify destroy_notify);
-gboolean daemon_local_set_automatic_login (Daemon *daemon,
- User *user,
- gboolean enabled,
- GError **error);
+gboolean daemon_local_set_automatic_login (Daemon *daemon,
+ User *user,
+ gboolean enabled,
+ GError **error);
GHashTable * daemon_read_extension_ifaces (void);
GHashTable * daemon_get_extension_ifaces (Daemon *daemon);
diff --git a/src/extensions.c b/src/extensions.c
index 038dcb2..354f476 100644
--- a/src/extensions.c
+++ b/src/extensions.c
@@ -55,8 +55,8 @@ static void
daemon_read_extension_file (GHashTable *ifaces,
const gchar *filename)
{
- g_autoptr(GError) error = NULL;
- g_autoptr(GDBusNodeInfo) node = NULL;
+ g_autoptr (GError) error = NULL;
+ g_autoptr (GDBusNodeInfo) node = NULL;
g_autofree gchar *contents = NULL;
gint i;
@@ -71,8 +71,9 @@ daemon_read_extension_file (GHashTable *ifaces,
return;
}
- for (i = 0; node->interfaces && node->interfaces[i]; i++)
+ for (i = 0; node->interfaces && node->interfaces[i]; i++) {
daemon_maybe_add_extension_interface (ifaces, node->interfaces[i]);
+ }
}
static void
@@ -125,8 +126,7 @@ daemon_read_extension_directory (GHashTable *ifaces,
const gchar * const prefix = "../../dbus-1/interfaces/";
if (g_str_has_prefix (symlink, prefix) && g_str_equal (symlink + strlen (prefix), name)) {
daemon_read_extension_file (ifaces, filename);
- }
- else {
+ } else {
g_warning ("Found accounts service vendor extension symlink %s, but it must be exactly "
"equal to '../../dbus-1/interfaces/%s' for forwards-compatibility reasons.",
filename, name);
diff --git a/src/fgetpwent.c b/src/fgetpwent.c
index 3a2d77c..a62f847 100644
--- a/src/fgetpwent.c
+++ b/src/fgetpwent.c
@@ -17,92 +17,90 @@
*
* Authors: Ryan Lortie <desrt@desrt.ca>
*/
-
static gchar *
fgetpwent_getline (FILE *fp)
{
- static GString str;
-
- /* We could be "more clever" here and avoid the strlen() but this is a
- * clear case of dumb is better.
- */
- str.len = 0;
- while (!str.len || str.str[str.len - 1] != '\n')
- {
- if (str.allocated_len < str.len + 32)
- {
- str.allocated_len = str.len + 32;
- str.str = g_realloc (str.str, str.allocated_len);
+ static GString str;
+
+ /* We could be "more clever" here and avoid the strlen() but this is a
+ * clear case of dumb is better.
+ */
+ str.len = 0;
+ while (!str.len || str.str[str.len - 1] != '\n') {
+ if (str.allocated_len < str.len + 32) {
+ str.allocated_len = str.len + 32;
+ str.str = g_realloc (str.str, str.allocated_len);
+ }
+
+ if (fgets (str.str + str.len, str.allocated_len - str.len, fp) == NULL)
+ return NULL;
+
+ str.len = strlen (str.str + str.len) + str.len;
}
- if (fgets (str.str + str.len, str.allocated_len - str.len, fp) == NULL)
- return NULL;
-
- str.len = strlen (str.str + str.len) + str.len;
- }
-
- /* chomp the '\n' */
- str.str[str.len - 1] = '\0';
+ /* chomp the '\n' */
+ str.str[str.len - 1] = '\0';
- return str.str;
+ return str.str;
}
static struct passwd *
fgetpwent (FILE *fp)
{
- static struct passwd pw;
- guint64 intval;
- gchar *line;
+ static struct passwd pw;
+ guint64 intval;
+ gchar *line;
- /* In case of failure, we ignore the line and start again */
+ /* In case of failure, we ignore the line and start again */
again:
- line = fgetpwent_getline (fp);
- if (!line)
- return NULL;
-
- while (g_ascii_isspace (*line))
- line++;
-
- /* comments, empty lines */
- if (line[0] == '#' || line[0] == '\0')
- goto again;
-
- /* username */
- pw.pw_name = line;
- if (!(line = strchr (line, ':')))
- goto again;
- *line++ = '\0';
-
- /* password */
- pw.pw_passwd = line;
- if (!(line = strchr (line, ':')))
- goto again;
- *line++ = '\0';
-
- /* uid */
- pw.pw_uid = intval = g_ascii_strtoull (line, &line, 10);
- if (pw.pw_uid != intval || *line++ != ':')
- goto again;
-
- /* gid */
- pw.pw_gid = intval = g_ascii_strtoull (line, &line, 10);
- if (pw.pw_gid != intval || *line++ != ':')
- goto again;
-
- /* gecos */
- pw.pw_gecos = line;
- if (!(line = strchr (line, ':')))
- goto again;
- *line++ = '\0';
-
- /* home directory */
- pw.pw_dir = line;
- if (!(line = strchr (line, ':')))
- goto again;
- *line++ = '\0';
-
- /* shell */
- pw.pw_shell = line;
-
- return &pw;
+ line = fgetpwent_getline (fp);
+ if (!line)
+ return NULL;
+
+ while (g_ascii_isspace (*line)) {
+ line++;
+ }
+
+ /* comments, empty lines */
+ if (line[0] == '#' || line[0] == '\0')
+ goto again;
+
+ /* username */
+ pw.pw_name = line;
+ if (!(line = strchr (line, ':')))
+ goto again;
+ *line++ = '\0';
+
+ /* password */
+ pw.pw_passwd = line;
+ if (!(line = strchr (line, ':')))
+ goto again;
+ *line++ = '\0';
+
+ /* uid */
+ pw.pw_uid = intval = g_ascii_strtoull (line, &line, 10);
+ if (pw.pw_uid != intval || *line++ != ':')
+ goto again;
+
+ /* gid */
+ pw.pw_gid = intval = g_ascii_strtoull (line, &line, 10);
+ if (pw.pw_gid != intval || *line++ != ':')
+ goto again;
+
+ /* gecos */
+ pw.pw_gecos = line;
+ if (!(line = strchr (line, ':')))
+ goto again;
+ *line++ = '\0';
+
+ /* home directory */
+ pw.pw_dir = line;
+ if (!(line = strchr (line, ':')))
+ goto again;
+ *line++ = '\0';
+
+ /* shell */
+ pw.pw_shell = line;
+
+ return &pw;
}
diff --git a/src/libaccountsservice/act-user-manager.c b/src/libaccountsservice/act-user-manager.c
index b1b7d7b..3b1a774 100644
--- a/src/libaccountsservice/act-user-manager.c
+++ b/src/libaccountsservice/act-user-manager.c
@@ -85,7 +85,8 @@
#define ACCOUNTS_PATH "/org/freedesktop/Accounts"
#define ACCOUNTS_INTERFACE "org.freedesktop.Accounts"
-typedef enum {
+typedef enum
+{
ACT_USER_MANAGER_SEAT_STATE_UNLOADED = 0,
ACT_USER_MANAGER_SEAT_STATE_GET_SESSION_ID,
ACT_USER_MANAGER_SEAT_STATE_GET_ID,
@@ -95,16 +96,17 @@ typedef enum {
typedef struct
{
- ActUserManagerSeatState state;
- char *id;
- char *session_id;
- guint load_idle_id;
- sd_login_monitor *session_monitor;
- GInputStream *session_monitor_stream;
- guint session_monitor_source_id;
+ ActUserManagerSeatState state;
+ char *id;
+ char *session_id;
+ guint load_idle_id;
+ sd_login_monitor *session_monitor;
+ GInputStream *session_monitor_stream;
+ guint session_monitor_source_id;
} ActUserManagerSeat;
-typedef enum {
+typedef enum
+{
ACT_USER_MANAGER_NEW_SESSION_STATE_UNLOADED = 0,
ACT_USER_MANAGER_NEW_SESSION_STATE_GET_UID,
ACT_USER_MANAGER_NEW_SESSION_STATE_GET_X11_DISPLAY,
@@ -114,69 +116,73 @@ typedef enum {
typedef struct
{
- ActUserManager *manager;
- ActUserManagerNewSessionState state;
- char *id;
- GCancellable *cancellable;
- uid_t uid;
- char *x11_display;
- gsize pending_calls;
+ ActUserManager *manager;
+ ActUserManagerNewSessionState state;
+ char *id;
+ GCancellable *cancellable;
+ uid_t uid;
+ char *x11_display;
+ gsize pending_calls;
} ActUserManagerNewSession;
-typedef enum {
+typedef enum
+{
ACT_USER_MANAGER_GET_USER_STATE_UNFETCHED = 0,
ACT_USER_MANAGER_GET_USER_STATE_WAIT_FOR_LOADED,
ACT_USER_MANAGER_GET_USER_STATE_ASK_ACCOUNTS_SERVICE,
ACT_USER_MANAGER_GET_USER_STATE_FETCHED
} ActUserManagerGetUserState;
-typedef enum {
+typedef enum
+{
ACT_USER_MANAGER_FETCH_USER_FROM_USERNAME_REQUEST,
ACT_USER_MANAGER_FETCH_USER_FROM_ID_REQUEST,
} ActUserManagerFetchUserRequestType;
typedef struct
{
- ActUserManager *manager;
- ActUserManagerGetUserState state;
- ActUser *user;
+ ActUserManager *manager;
+ ActUserManagerGetUserState state;
+ ActUser *user;
ActUserManagerFetchUserRequestType type;
- union {
- char *username;
- uid_t uid;
+ union
+ {
+ char *username;
+ uid_t uid;
};
- char *object_path;
- char *description;
+ char *object_path;
+ char *description;
} ActUserManagerFetchUserRequest;
typedef struct
{
- GHashTable *normal_users_by_name;
- GHashTable *system_users_by_name;
- GHashTable *users_by_object_path; /* (element-type utf8 ActUser) (owned) */
- GHashTable *sessions;
- GDBusConnection *connection;
- AccountsAccounts *accounts_proxy;
+ GHashTable *normal_users_by_name;
+ GHashTable *system_users_by_name;
+ GHashTable *users_by_object_path; /* (element-type utf8 ActUser) (owned) */
+ GHashTable *sessions;
+ GDBusConnection *connection;
+ AccountsAccounts *accounts_proxy;
- ActUserManagerSeat seat;
+ ActUserManagerSeat seat;
- GSList *new_sessions;
- GSList *new_users; /* (element-type ActUser) (owned) */
- GSList *new_users_inhibiting_load; /* (element-type ActUser) (unowned) */
- GSList *fetch_user_requests;
+ GSList *new_sessions;
+ GSList *new_users; /* (element-type ActUser) (owned) */
+ GSList *new_users_inhibiting_load; /* (element-type ActUser) (unowned) */
+ GSList *fetch_user_requests;
- GSList *exclude_usernames;
- GSList *include_usernames;
+ GSList *exclude_usernames;
+ GSList *include_usernames;
- guint load_id;
+ guint load_id;
- gboolean is_loaded;
- gboolean has_multiple_users;
- gboolean getting_sessions;
- gboolean list_cached_users_done;
+ gboolean is_loaded;
+ gboolean has_multiple_users;
+ gboolean getting_sessions;
+ gboolean list_cached_users_done;
} ActUserManagerPrivate;
-enum {
+enum
+{
PROP_0,
PROP_INCLUDE_USERNAMES_LIST,
PROP_EXCLUDE_USERNAMES_LIST,
@@ -184,7 +190,8 @@ enum {
PROP_HAS_MULTIPLE_USERS
};
-enum {
+enum
+{
USER_ADDED,
USER_REMOVED,
USER_IS_LOGGED_IN_CHANGED,
@@ -192,50 +199,52 @@ enum {
LAST_SIGNAL
};
-static guint signals [LAST_SIGNAL] = { 0, };
+static guint signals[LAST_SIGNAL] = { 0, };
static void act_user_manager_class_init (ActUserManagerClass *klass);
-static void act_user_manager_init (ActUserManager *user_manager);
-static void act_user_manager_finalize (GObject *object);
-
-static gboolean ensure_accounts_proxy (ActUserManager *manager);
-static gboolean load_seat_incrementally (ActUserManager *manager);
-static void unload_seat (ActUserManager *manager);
-static void load_users (ActUserManager *manager);
-static void load_user (ActUserManager *manager,
- const char *username);
+static void act_user_manager_init (ActUserManager *user_manager);
+static void act_user_manager_finalize (GObject *object);
+
+static gboolean ensure_accounts_proxy (ActUserManager *manager);
+static gboolean load_seat_incrementally (ActUserManager *manager);
+static void unload_seat (ActUserManager *manager);
+static void load_users (ActUserManager *manager);
+static void load_user (ActUserManager *manager,
+ const char *username);
static void act_user_manager_queue_load (ActUserManager *manager);
-static void queue_load_seat (ActUserManager *manager);
+static void queue_load_seat (ActUserManager *manager);
static void load_new_session_incrementally (ActUserManagerNewSession *new_session);
-static void set_is_loaded (ActUserManager *manager, gboolean is_loaded);
+static void set_is_loaded (ActUserManager *manager,
+ gboolean is_loaded);
static void on_new_user_loaded (ActUser *user,
GParamSpec *pspec,
ActUserManager *manager);
static void give_up (ActUserManager *manager,
ActUserManagerFetchUserRequest *request);
-static void fetch_user_incrementally (ActUserManagerFetchUserRequest *request);
+static void fetch_user_incrementally (ActUserManagerFetchUserRequest *request);
-static void maybe_set_is_loaded (ActUserManager *manager);
-static void update_user (ActUserManager *manager,
- ActUser *user);
+static void maybe_set_is_loaded (ActUserManager *manager);
+static void update_user (ActUserManager *manager,
+ ActUser *user);
static gpointer user_manager_object = NULL;
G_DEFINE_TYPE_WITH_PRIVATE (ActUserManager, act_user_manager, G_TYPE_OBJECT)
static const GDBusErrorEntry error_entries[] = {
- { ACT_USER_MANAGER_ERROR_FAILED, "org.freedesktop.Accounts.Error.Failed" },
- { ACT_USER_MANAGER_ERROR_USER_EXISTS, "org.freedesktop.Accounts.Error.UserExists" },
+ { ACT_USER_MANAGER_ERROR_FAILED, "org.freedesktop.Accounts.Error.Failed" },
+ { ACT_USER_MANAGER_ERROR_USER_EXISTS, "org.freedesktop.Accounts.Error.UserExists" },
{ ACT_USER_MANAGER_ERROR_USER_DOES_NOT_EXIST, "org.freedesktop.Accounts.Error.UserDoesNotExist" },
{ ACT_USER_MANAGER_ERROR_PERMISSION_DENIED, "org.freedesktop.Accounts.Error.PermissionDenied" },
- { ACT_USER_MANAGER_ERROR_NOT_SUPPORTED, "org.freedesktop.Accounts.Error.NotSupported" }
+ { ACT_USER_MANAGER_ERROR_NOT_SUPPORTED, "org.freedesktop.Accounts.Error.NotSupported" }
};
GQuark
act_user_manager_error_quark (void)
{
static volatile gsize ret = 0;
+
if (ret == 0) {
g_dbus_error_register_error_domain ("act_user_manager_error",
&ret,
@@ -251,9 +260,9 @@ activate_systemd_session_id (ActUserManager *manager,
const char *seat_id,
const char *session_id)
{
- g_autoptr(GDBusConnection) connection = NULL;
- g_autoptr(GVariant) reply = NULL;
- g_autoptr(GError) error = NULL;
+ g_autoptr (GDBusConnection) connection = NULL;
+ g_autoptr (GVariant) reply = NULL;
+ g_autoptr (GError) error = NULL;
connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error);
if (connection == NULL) {
@@ -286,15 +295,15 @@ static gboolean
session_is_login_window (ActUserManager *manager,
const char *session_id)
{
- int res;
+ int res;
g_autofree gchar *session_class = NULL;
res = sd_session_get_class (session_id, &session_class);
if (res < 0) {
- g_debug ("failed to determine class of session %s: %s",
- session_id,
- strerror (-res));
- return FALSE;
+ g_debug ("failed to determine class of session %s: %s",
+ session_id,
+ strerror (-res));
+ return FALSE;
}
return g_strcmp0 (session_class, "greeter") == 0;
@@ -305,7 +314,7 @@ session_is_on_our_seat (ActUserManager *manager,
const char *session_id)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
- int res;
+ int res;
g_autofree gchar *session_seat = NULL;
res = sd_session_get_seat (session_id, &session_seat);
@@ -334,7 +343,8 @@ act_user_manager_goto_login_session (ActUserManager *manager)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
gboolean res;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
g_return_val_if_fail (ACT_IS_USER_MANAGER (manager), FALSE);
g_return_val_if_fail (priv->is_loaded, FALSE);
@@ -349,7 +359,6 @@ act_user_manager_goto_login_session (ActUserManager *manager)
}
return res;
-
}
static gboolean
@@ -505,7 +514,7 @@ queue_load_seat_incrementally (ActUserManager *manager)
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
if (priv->seat.load_idle_id == 0) {
- priv->seat.load_idle_id = g_idle_add ((GSourceFunc) load_seat_incrementally, manager);
+ priv->seat.load_idle_id = g_idle_add ((GSourceFunc) load_seat_incrementally, manager);
}
}
@@ -567,7 +576,8 @@ static gboolean
_find_graphical_systemd_session (char **session_id)
{
char *local_session_id = NULL;
- g_auto(GStrv) sessions = NULL;
+
+ g_auto (GStrv) sessions = NULL;
int n_sessions;
/* filter level 0 means to include inactive and active sessions
@@ -615,7 +625,7 @@ static void
get_seat_id_for_current_session (ActUserManager *manager)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
- int res;
+ int res;
g_autofree gchar *seat_id = NULL;
if (priv->seat.session_id == NULL) {
@@ -653,8 +663,8 @@ username_in_exclude_list (ActUserManager *manager,
const char *username)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
- GSList *found;
- gboolean ret = FALSE;
+ GSList *found;
+ gboolean ret = FALSE;
if (priv->exclude_usernames != NULL) {
found = g_slist_find_custom (priv->exclude_usernames,
@@ -774,7 +784,6 @@ remove_user (ActUserManager *manager,
if (act_user_get_user_name (user) != NULL) {
g_hash_table_remove (priv->normal_users_by_name, act_user_get_user_name (user));
g_hash_table_remove (priv->system_users_by_name, act_user_get_user_name (user));
-
}
if (priv->is_loaded && priv->list_cached_users_done) {
@@ -1024,7 +1033,8 @@ on_new_user_in_accounts_service (GDBusProxy *proxy,
{
ActUserManager *manager = ACT_USER_MANAGER (user_data);
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
- g_autoptr(ActUser) user = NULL;
+
+ g_autoptr (ActUser) user = NULL;
/* Only track user changes if the user has requested a list
* of users */
@@ -1048,8 +1058,8 @@ on_user_removed_in_accounts_service (GDBusProxy *proxy,
{
ActUserManager *manager = ACT_USER_MANAGER (user_data);
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
- ActUser *user;
- GSList *node;
+ ActUser *user;
+ GSList *node;
/* Only track user changes if the user has requested a list
* of users */
@@ -1100,10 +1110,10 @@ unload_new_session (ActUserManagerNewSession *new_session)
ActUserManager *manager = new_session->manager;
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
- /* From here down to the check on pending_calls is idempotent,
- * like GObject dispose(); it can be called twice if the new session
- * is unloaded while there are still async calls pending.
- */
+ /* From here down to the check on pending_calls is idempotent,
+ * like GObject dispose(); it can be called twice if the new session
+ * is unloaded while there are still async calls pending.
+ */
if (new_session->cancellable != NULL &&
!g_cancellable_is_cancelled (new_session->cancellable)) {
@@ -1128,7 +1138,7 @@ unload_new_session (ActUserManagerNewSession *new_session)
if (new_session->pending_calls != 0) {
/* don't "finalize" until we run out of pending calls
- * that have us as their user_data */
+ * that have us as their user_data */
return;
}
@@ -1139,7 +1149,7 @@ static void
get_uid_for_new_session (ActUserManagerNewSession *new_session)
{
uid_t uid;
- int res;
+ int res;
res = sd_session_get_uid (new_session->id, &uid);
@@ -1158,14 +1168,15 @@ get_uid_for_new_session (ActUserManagerNewSession *new_session)
}
static void
-on_find_user_by_name_finished (GObject *object,
- GAsyncResult *result,
- gpointer data)
+on_find_user_by_name_finished (GObject *object,
+ GAsyncResult *result,
+ gpointer data)
{
AccountsAccounts *proxy = ACCOUNTS_ACCOUNTS (object);
ActUserManagerFetchUserRequest *request = data;
- g_autoptr(GError) error = NULL;
- char *user;
+
+ g_autoptr (GError) error = NULL;
+ char *user;
if (!accounts_accounts_call_find_user_by_name_finish (proxy, &user, result, &error)) {
if (error != NULL) {
@@ -1188,14 +1199,15 @@ on_find_user_by_name_finished (GObject *object,
}
static void
-on_find_user_by_id_finished (GObject *object,
- GAsyncResult *result,
- gpointer data)
+on_find_user_by_id_finished (GObject *object,
+ GAsyncResult *result,
+ gpointer data)
{
AccountsAccounts *proxy = ACCOUNTS_ACCOUNTS (object);
ActUserManagerFetchUserRequest *request = data;
- g_autoptr(GError) error = NULL;
- char *user;
+
+ g_autoptr (GError) error = NULL;
+ char *user;
if (!accounts_accounts_call_find_user_by_id_finish (proxy, &user, result, &error)) {
if (error != NULL) {
@@ -1229,25 +1241,24 @@ find_user_in_accounts_service (ActUserManager *manager,
request->description);
switch (request->type) {
- case ACT_USER_MANAGER_FETCH_USER_FROM_USERNAME_REQUEST:
- accounts_accounts_call_find_user_by_name (priv->accounts_proxy,
- request->username,
- G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION,
- -1,
- NULL,
- on_find_user_by_name_finished,
- request);
- break;
- case ACT_USER_MANAGER_FETCH_USER_FROM_ID_REQUEST:
- accounts_accounts_call_find_user_by_id (priv->accounts_proxy,
- request->uid,
- G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION,
- -1,
- NULL,
- on_find_user_by_id_finished,
- request);
- break;
-
+ case ACT_USER_MANAGER_FETCH_USER_FROM_USERNAME_REQUEST:
+ accounts_accounts_call_find_user_by_name (priv->accounts_proxy,
+ request->username,
+ G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION,
+ -1,
+ NULL,
+ on_find_user_by_name_finished,
+ request);
+ break;
+ case ACT_USER_MANAGER_FETCH_USER_FROM_ID_REQUEST:
+ accounts_accounts_call_find_user_by_id (priv->accounts_proxy,
+ request->uid,
+ G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION,
+ -1,
+ NULL,
+ on_find_user_by_id_finished,
+ request);
+ break;
}
}
@@ -1264,8 +1275,8 @@ set_is_loaded (ActUserManager *manager,
}
static void
-load_user_paths (ActUserManager *manager,
- const char * const * user_paths)
+load_user_paths (ActUserManager *manager,
+ const char * const *user_paths)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
@@ -1279,7 +1290,7 @@ load_user_paths (ActUserManager *manager,
g_debug ("ActUserManager: ListCachedUsers finished, will set loaded property after list is fully loaded");
for (i = 0; user_paths[i] != NULL; i++) {
- g_autoptr(ActUser) user = NULL;
+ g_autoptr (ActUser) user = NULL;
user = add_new_user_for_object_path (user_paths[i], manager);
if (!priv->is_loaded) {
@@ -1300,7 +1311,7 @@ load_included_usernames (ActUserManager *manager)
/* Add users who are specifically included */
for (l = priv->include_usernames; l != NULL; l = l->next) {
- g_debug ("ActUserManager: Adding included user %s", (char *)l->data);
+ g_debug ("ActUserManager: Adding included user %s", (char *) l->data);
load_user (manager, l->data);
}
@@ -1345,7 +1356,7 @@ get_x11_display_for_new_session (ActUserManagerNewSession *new_session)
new_session->id, x11_display);
}
- done:
+done:
new_session->x11_display = g_strdup (x11_display);
new_session->state++;
@@ -1356,8 +1367,8 @@ static void
maybe_add_new_session (ActUserManagerNewSession *new_session)
{
ActUserManager *manager;
- ActUser *user;
- gboolean is_ours;
+ ActUser *user;
+ gboolean is_ours;
manager = ACT_USER_MANAGER (new_session->manager);
@@ -1407,7 +1418,7 @@ match_new_session_cmpfunc (gconstpointer a,
gconstpointer b)
{
ActUserManagerNewSession *new_session;
- const char *session_id;
+ const char *session_id;
new_session = (ActUserManagerNewSession *) a;
session_id = (const char *) b;
@@ -1420,8 +1431,8 @@ _remove_session (ActUserManager *manager,
const char *session_id)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
- ActUser *user;
- GSList *found;
+ ActUser *user;
+ GSList *found;
g_debug ("ActUserManager: Session removed: %s", session_id);
@@ -1562,10 +1573,11 @@ _remove_stale_systemd_sessions (ActUserManager *manager,
static void
reload_systemd_sessions (ActUserManager *manager)
{
- int res;
- int i;
- g_auto(GStrv) sessions = NULL;
- g_autoptr(GHashTable) systemd_sessions = NULL;
+ int res;
+ int i;
+
+ g_auto (GStrv) sessions = NULL;
+ g_autoptr (GHashTable) systemd_sessions = NULL;
res = sd_get_sessions (&sessions);
if (res < 0) {
@@ -1577,7 +1589,7 @@ reload_systemd_sessions (ActUserManager *manager)
g_str_equal);
if (sessions != NULL) {
- for (i = 0; sessions[i] != NULL; i ++) {
+ for (i = 0; sessions[i] != NULL; i++) {
g_autofree gchar *state = NULL;
g_autofree gchar *session_class = NULL;
@@ -1605,7 +1617,6 @@ reload_systemd_sessions (ActUserManager *manager)
g_hash_table_insert (systemd_sessions,
sessions[i], NULL);
}
-
}
_add_new_systemd_sessions (manager, systemd_sessions);
@@ -1617,6 +1628,7 @@ on_session_monitor_event (GPollableInputStream *stream,
ActUserManager *manager)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
+
sd_login_monitor_flush (priv->seat.session_monitor);
reload_systemd_sessions (manager);
return TRUE;
@@ -1773,7 +1785,6 @@ fetch_user_incrementally (ActUserManagerFetchUserRequest *request)
request->description);
g_signal_connect (manager, "notify::is-loaded",
G_CALLBACK (on_user_manager_maybe_ready_for_request), request);
-
}
break;
@@ -1795,7 +1806,7 @@ fetch_user_incrementally (ActUserManagerFetchUserRequest *request)
g_assert_not_reached ();
}
- if (request->state == ACT_USER_MANAGER_GET_USER_STATE_FETCHED ||
+ if (request->state == ACT_USER_MANAGER_GET_USER_STATE_FETCHED ||
request->state == ACT_USER_MANAGER_GET_USER_STATE_UNFETCHED) {
g_debug ("ActUserManager: finished handling request for %s",
request->description);
@@ -1893,8 +1904,9 @@ load_user (ActUserManager *manager,
const char *username)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
- g_autoptr(ActUser) user = NULL;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (ActUser) user = NULL;
+ g_autoptr (GError) error = NULL;
char *object_path = NULL;
gboolean user_found;
@@ -2075,8 +2087,9 @@ static void
load_users (ActUserManager *manager)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
- g_autoptr(GError) error = NULL;
- g_auto(GStrv) user_paths = NULL;
+
+ g_autoptr (GError) error = NULL;
+ g_auto (GStrv) user_paths = NULL;
gboolean could_list = FALSE;
if (!ensure_accounts_proxy (manager)) {
@@ -2157,14 +2170,14 @@ queue_load_seat (ActUserManager *manager)
return;
}
- priv->load_id = g_idle_add ((GSourceFunc)load_idle, manager);
+ priv->load_id = g_idle_add ((GSourceFunc) load_idle, manager);
}
static void
-act_user_manager_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+act_user_manager_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
ActUserManager *manager = ACT_USER_MANAGER (object);
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
@@ -2215,10 +2228,10 @@ set_exclude_usernames (ActUserManager *manager,
}
static void
-act_user_manager_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+act_user_manager_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
ActUserManager *self;
@@ -2243,7 +2256,7 @@ act_user_manager_set_property (GObject *object,
static void
act_user_manager_class_init (ActUserManagerClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = act_user_manager_finalize;
object_class->get_property = act_user_manager_get_property;
@@ -2360,9 +2373,9 @@ act_user_manager_queue_load (ActUserManager *manager)
}
static void
-on_name_owner_changed (GObject *object,
+on_name_owner_changed (GObject *object,
GParamSpec *pspec,
- gpointer user_data)
+ gpointer user_data)
{
ActUserManager *manager = ACT_USER_MANAGER (user_data);
GDBusProxy *accounts_proxy = G_DBUS_PROXY (object);
@@ -2380,7 +2393,8 @@ static gboolean
ensure_accounts_proxy (ActUserManager *manager)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
if (priv->accounts_proxy != NULL) {
return TRUE;
@@ -2425,7 +2439,8 @@ static void
act_user_manager_init (ActUserManager *manager)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
act_user_manager_error_quark (); /* register dbus errors */
@@ -2469,7 +2484,7 @@ act_user_manager_finalize (GObject *object)
{
ActUserManager *manager = ACT_USER_MANAGER (object);
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
- GSList *node;
+ GSList *node;
g_debug ("ActUserManager: finalizing user manager");
@@ -2486,7 +2501,7 @@ act_user_manager_finalize (GObject *object)
node = priv->new_users;
while (node != NULL) {
ActUser *user;
- GSList *next_node;
+ GSList *next_node;
user = ACT_USER (node->data);
next_node = node->next;
@@ -2578,6 +2593,7 @@ gboolean
act_user_manager_no_service (ActUserManager *manager)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
+
return priv->accounts_proxy == NULL;
}
@@ -2594,11 +2610,11 @@ act_user_manager_no_service (ActUserManager *manager)
* Returns: (transfer full): user object
*/
ActUser *
-act_user_manager_create_user (ActUserManager *manager,
- const char *username,
- const char *fullname,
- ActUserAccountType accounttype,
- GError **error)
+act_user_manager_create_user (ActUserManager *manager,
+ const char *username,
+ const char *fullname,
+ ActUserAccountType accounttype,
+ GError **error)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
GError *local_error = NULL;
@@ -2658,13 +2674,13 @@ act_user_manager_async_complete_handler (GObject *source,
* Since: 0.6.27
*/
void
-act_user_manager_create_user_async (ActUserManager *manager,
- const char *username,
- const char *fullname,
- ActUserAccountType accounttype,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
+act_user_manager_create_user_async (ActUserManager *manager,
+ const char *username,
+ const char *fullname,
+ ActUserAccountType accounttype,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
GTask *task;
@@ -2706,9 +2722,9 @@ act_user_manager_create_user_async (ActUserManager *manager,
* Since: 0.6.27
*/
ActUser *
-act_user_manager_create_user_finish (ActUserManager *manager,
- GAsyncResult *result,
- GError **error)
+act_user_manager_create_user_finish (ActUserManager *manager,
+ GAsyncResult *result,
+ GError **error)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
GAsyncResult *inner_result;
@@ -2741,9 +2757,9 @@ act_user_manager_create_user_finish (ActUserManager *manager,
* Returns: (transfer full): user object
*/
ActUser *
-act_user_manager_cache_user (ActUserManager *manager,
- const char *username,
- GError **error)
+act_user_manager_cache_user (ActUserManager *manager,
+ const char *username,
+ GError **error)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
GError *local_error = NULL;
@@ -2790,11 +2806,11 @@ act_user_manager_cache_user (ActUserManager *manager,
* Since: 0.6.27
*/
void
-act_user_manager_cache_user_async (ActUserManager *manager,
- const char *username,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
+act_user_manager_cache_user_async (ActUserManager *manager,
+ const char *username,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
GTask *task;
@@ -2831,9 +2847,9 @@ act_user_manager_cache_user_async (ActUserManager *manager,
* Since: 0.6.27
*/
ActUser *
-act_user_manager_cache_user_finish (ActUserManager *manager,
- GAsyncResult *result,
- GError **error)
+act_user_manager_cache_user_finish (ActUserManager *manager,
+ GAsyncResult *result,
+ GError **error)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
GAsyncResult *inner_result;
@@ -2869,9 +2885,9 @@ act_user_manager_cache_user_finish (ActUserManager *manager,
* Returns: %TRUE if successful, otherwise %FALSE
*/
gboolean
-act_user_manager_uncache_user (ActUserManager *manager,
- const char *username,
- GError **error)
+act_user_manager_uncache_user (ActUserManager *manager,
+ const char *username,
+ GError **error)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
GError *local_error = NULL;
@@ -2914,11 +2930,11 @@ act_user_manager_uncache_user (ActUserManager *manager,
* Since: 0.6.39
*/
void
-act_user_manager_uncache_user_async (ActUserManager *manager,
- const char *username,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
+act_user_manager_uncache_user_async (ActUserManager *manager,
+ const char *username,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
GTask *task;
@@ -2956,9 +2972,9 @@ act_user_manager_uncache_user_async (ActUserManager *manager,
* Since: 0.6.39
*/
gboolean
-act_user_manager_uncache_user_finish (ActUserManager *manager,
- GAsyncResult *result,
- GError **error)
+act_user_manager_uncache_user_finish (ActUserManager *manager,
+ GAsyncResult *result,
+ GError **error)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
GAsyncResult *inner_result;
@@ -2993,10 +3009,10 @@ act_user_manager_uncache_user_finish (ActUserManager *manager,
* Returns: %TRUE if the user account was successfully deleted
*/
gboolean
-act_user_manager_delete_user (ActUserManager *manager,
- ActUser *user,
- gboolean remove_files,
- GError **error)
+act_user_manager_delete_user (ActUserManager *manager,
+ ActUser *user,
+ gboolean remove_files,
+ GError **error)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
GError *local_error = NULL;
@@ -3040,12 +3056,12 @@ act_user_manager_delete_user (ActUserManager *manager,
* Since: 0.6.27
*/
void
-act_user_manager_delete_user_async (ActUserManager *manager,
- ActUser *user,
- gboolean remove_files,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
+act_user_manager_delete_user_async (ActUserManager *manager,
+ ActUser *user,
+ gboolean remove_files,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
GTask *task;
@@ -3083,9 +3099,9 @@ act_user_manager_delete_user_async (ActUserManager *manager,
* Since: 0.6.27
*/
gboolean
-act_user_manager_delete_user_finish (ActUserManager *manager,
- GAsyncResult *result,
- GError **error)
+act_user_manager_delete_user_finish (ActUserManager *manager,
+ GAsyncResult *result,
+ GError **error)
{
ActUserManagerPrivate *priv = act_user_manager_get_instance_private (manager);
GAsyncResult *inner_result;
diff --git a/src/libaccountsservice/act-user-manager.h b/src/libaccountsservice/act-user-manager.h
index 6355167..e19055b 100644
--- a/src/libaccountsservice/act-user-manager.h
+++ b/src/libaccountsservice/act-user-manager.h
@@ -27,7 +27,7 @@
#define ACT_TYPE_USER_MANAGER (act_user_manager_get_type ())
#define ACT_USER_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ACT_TYPE_USER_MANAGER, ActUserManager))
-#define ACT_USER_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), ACT_TYPE_USER_MANAGER, ActUserManagerClass))
+#define ACT_USER_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), ACT_TYPE_USER_MANAGER, ActUserManagerClass))
#define ACT_IS_USER_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ACT_TYPE_USER_MANAGER))
#define ACT_IS_USER_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ACT_TYPE_USER_MANAGER))
#define ACT_USER_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ACT_TYPE_USER_MANAGER, ActUserManagerClass))
@@ -45,16 +45,16 @@ struct _ActUserManager
struct _ActUserManagerClass
{
- GObjectClass parent_class;
-
- void (* user_added) (ActUserManager *user_manager,
- ActUser *user);
- void (* user_removed) (ActUserManager *user_manager,
- ActUser *user);
- void (* user_is_logged_in_changed) (ActUserManager *user_manager,
- ActUser *user);
- void (* user_changed) (ActUserManager *user_manager,
- ActUser *user);
+ GObjectClass parent_class;
+
+ void (* user_added) (ActUserManager *user_manager,
+ ActUser *user);
+ void (* user_removed) (ActUserManager *user_manager,
+ ActUser *user);
+ void (* user_is_logged_in_changed) (ActUserManager *user_manager,
+ ActUser *user);
+ void (* user_changed) (ActUserManager *user_manager,
+ ActUser *user);
};
typedef enum ActUserManagerError
@@ -68,79 +68,79 @@ typedef enum ActUserManagerError
#define ACT_USER_MANAGER_ERROR act_user_manager_error_quark ()
-GQuark act_user_manager_error_quark (void);
-GType act_user_manager_get_type (void);
+GQuark act_user_manager_error_quark (void);
+GType act_user_manager_get_type (void);
-ActUserManager * act_user_manager_get_default (void);
+ActUserManager * act_user_manager_get_default (void);
-gboolean act_user_manager_no_service (ActUserManager *manager);
-GSList * act_user_manager_list_users (ActUserManager *manager);
-ActUser * act_user_manager_get_user (ActUserManager *manager,
- const char *username);
-ActUser * act_user_manager_get_user_by_id (ActUserManager *manager,
- uid_t id);
+gboolean act_user_manager_no_service (ActUserManager *manager);
+GSList * act_user_manager_list_users (ActUserManager *manager);
+ActUser * act_user_manager_get_user (ActUserManager *manager,
+ const char *username);
+ActUser * act_user_manager_get_user_by_id (ActUserManager *manager,
+ uid_t id);
gboolean act_user_manager_activate_user_session (ActUserManager *manager,
ActUser *user);
-gboolean act_user_manager_can_switch (ActUserManager *manager);
-
-gboolean act_user_manager_goto_login_session (ActUserManager *manager);
-
-ActUser * act_user_manager_create_user (ActUserManager *manager,
- const char *username,
- const char *fullname,
- ActUserAccountType accounttype,
- GError **error);
-void act_user_manager_create_user_async (ActUserManager *manager,
- const gchar *username,
- const gchar *fullname,
- ActUserAccountType accounttype,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-ActUser * act_user_manager_create_user_finish (ActUserManager *manager,
- GAsyncResult *result,
- GError **error);
-
-ActUser * act_user_manager_cache_user (ActUserManager *manager,
- const char *username,
- GError **error);
-void act_user_manager_cache_user_async (ActUserManager *manager,
- const gchar *username,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-ActUser * act_user_manager_cache_user_finish (ActUserManager *manager,
- GAsyncResult *result,
- GError **error);
-
-gboolean act_user_manager_uncache_user (ActUserManager *manager,
- const char *username,
- GError **error);
-void act_user_manager_uncache_user_async (ActUserManager *manager,
- const gchar *username,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-gboolean act_user_manager_uncache_user_finish (ActUserManager *manager,
- GAsyncResult *result,
- GError **error);
-
-gboolean act_user_manager_delete_user (ActUserManager *manager,
- ActUser *user,
- gboolean remove_files,
- GError **error);
-void act_user_manager_delete_user_async (ActUserManager *manager,
- ActUser *user,
- gboolean remove_files,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-gboolean act_user_manager_delete_user_finish (ActUserManager *manager,
- GAsyncResult *result,
- GError **error);
-
-#if GLIB_CHECK_VERSION(2, 44, 0)
+gboolean act_user_manager_can_switch (ActUserManager *manager);
+
+gboolean act_user_manager_goto_login_session (ActUserManager *manager);
+
+ActUser * act_user_manager_create_user (ActUserManager *manager,
+ const char *username,
+ const char *fullname,
+ ActUserAccountType accounttype,
+ GError **error);
+void act_user_manager_create_user_async (ActUserManager *manager,
+ const gchar *username,
+ const gchar *fullname,
+ ActUserAccountType accounttype,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ActUser * act_user_manager_create_user_finish (ActUserManager *manager,
+ GAsyncResult *result,
+ GError **error);
+
+ActUser * act_user_manager_cache_user (ActUserManager *manager,
+ const char *username,
+ GError **error);
+void act_user_manager_cache_user_async (ActUserManager *manager,
+ const gchar *username,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ActUser * act_user_manager_cache_user_finish (ActUserManager *manager,
+ GAsyncResult *result,
+ GError **error);
+
+gboolean act_user_manager_uncache_user (ActUserManager *manager,
+ const char *username,
+ GError **error);
+void act_user_manager_uncache_user_async (ActUserManager *manager,
+ const gchar *username,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean act_user_manager_uncache_user_finish (ActUserManager *manager,
+ GAsyncResult *result,
+ GError **error);
+
+gboolean act_user_manager_delete_user (ActUserManager *manager,
+ ActUser *user,
+ gboolean remove_files,
+ GError **error);
+void act_user_manager_delete_user_async (ActUserManager *manager,
+ ActUser *user,
+ gboolean remove_files,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean act_user_manager_delete_user_finish (ActUserManager *manager,
+ GAsyncResult *result,
+ GError **error);
+
+#if GLIB_CHECK_VERSION (2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ActUserManager, g_object_unref)
#endif
diff --git a/src/libaccountsservice/act-user-private.h b/src/libaccountsservice/act-user-private.h
index f83eb51..f68d0d6 100644
--- a/src/libaccountsservice/act-user-private.h
+++ b/src/libaccountsservice/act-user-private.h
@@ -27,22 +27,22 @@
#include "act-user.h"
-void _act_user_update_from_object_path (ActUser *user,
- const char *object_path);
-void _act_user_update_as_nonexistent (ActUser *user);
-void _act_user_update_login_frequency (ActUser *user,
- int login_frequency);
-void _act_user_load_from_user (ActUser *user,
- ActUser *user_to_copy);
+void _act_user_update_from_object_path (ActUser *user,
+ const char *object_path);
+void _act_user_update_as_nonexistent (ActUser *user);
+void _act_user_update_login_frequency (ActUser *user,
+ int login_frequency);
+void _act_user_load_from_user (ActUser *user,
+ ActUser *user_to_copy);
/* 'Our' sessions are the graphical sessions on the same seat as the
- current process. The primary session of a user will always be
- choosen from one of our sessions and act_user_is_logged_in only
- considers our sessions.
-*/
+ * current process. The primary session of a user will always be
+ * choosen from one of our sessions and act_user_is_logged_in only
+ * considers our sessions.
+ */
-void _act_user_add_session (ActUser *user,
- const char *session_id,
- gboolean is_ours);
-void _act_user_remove_session (ActUser *user,
- const char *session_id);
+void _act_user_add_session (ActUser *user,
+ const char *session_id,
+ gboolean is_ours);
+void _act_user_remove_session (ActUser *user,
+ const char *session_id);
diff --git a/src/libaccountsservice/act-user.c b/src/libaccountsservice/act-user.c
index 484b15e..77b7b2f 100644
--- a/src/libaccountsservice/act-user.c
+++ b/src/libaccountsservice/act-user.c
@@ -69,7 +69,8 @@
#define ACCOUNTS_NAME "org.freedesktop.Accounts"
#define ACCOUNTS_USER_INTERFACE "org.freedesktop.Accounts.User"
-enum {
+enum
+{
PROP_0,
PROP_UID,
PROP_USER_NAME,
@@ -95,26 +96,28 @@ enum {
PROP_IS_LOADED
};
-enum {
+enum
+{
CHANGED,
SESSIONS_CHANGED,
LAST_SIGNAL
};
-struct _ActUser {
- GObject parent;
+struct _ActUser
+{
+ GObject parent;
GDBusConnection *connection;
AccountsUser *accounts_proxy;
- GList *our_sessions;
- GList *other_sessions;
+ GList *our_sessions;
+ GList *other_sessions;
- guint is_loaded : 1;
- guint nonexistent : 1;
+ guint is_loaded : 1;
+ guint nonexistent : 1;
};
-static void act_user_finalize (GObject *object);
+static void act_user_finalize (GObject *object);
static guint signals[LAST_SIGNAL] = { 0 };
@@ -143,9 +146,9 @@ _act_user_add_session (ActUser *user,
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (ssid != NULL);
- li = g_list_find_custom (user->our_sessions, ssid, (GCompareFunc)session_compare);
+ li = g_list_find_custom (user->our_sessions, ssid, (GCompareFunc) session_compare);
if (li == NULL)
- li = g_list_find_custom (user->other_sessions, ssid, (GCompareFunc)session_compare);
+ li = g_list_find_custom (user->other_sessions, ssid, (GCompareFunc) session_compare);
if (li == NULL) {
g_debug ("ActUser: adding session %s", ssid);
@@ -169,10 +172,10 @@ _act_user_remove_session (ActUser *user,
g_return_if_fail (ssid != NULL);
headp = &(user->our_sessions);
- li = g_list_find_custom (user->our_sessions, ssid, (GCompareFunc)session_compare);
+ li = g_list_find_custom (user->our_sessions, ssid, (GCompareFunc) session_compare);
if (li == NULL) {
headp = &(user->other_sessions);
- li = g_list_find_custom (user->other_sessions, ssid, (GCompareFunc)session_compare);
+ li = g_list_find_custom (user->other_sessions, ssid, (GCompareFunc) session_compare);
}
if (li != NULL) {
@@ -195,7 +198,7 @@ _act_user_remove_session (ActUser *user,
* Returns: the number of sessions
*/
guint
-act_user_get_num_sessions (ActUser *user)
+act_user_get_num_sessions (ActUser *user)
{
return g_list_length (user->our_sessions);
}
@@ -213,10 +216,10 @@ act_user_get_num_sessions (ActUser *user)
* Returns: the number of sessions
*/
guint
-act_user_get_num_sessions_anywhere (ActUser *user)
+act_user_get_num_sessions_anywhere (ActUser *user)
{
- return (g_list_length (user->our_sessions)
- + g_list_length (user->other_sessions));
+ return g_list_length (user->our_sessions)
+ + g_list_length (user->other_sessions);
}
static void
@@ -246,7 +249,6 @@ act_user_get_property (GObject *object,
property_name = g_param_spec_get_name (pspec);
g_object_get_property (G_OBJECT (user->accounts_proxy), property_name, value);
-
}
break;
}
@@ -423,7 +425,7 @@ act_user_class_init (ActUserClass *class)
"Locked",
"Locked",
FALSE,
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class,
PROP_AUTOMATIC_LOGIN,
@@ -481,7 +483,7 @@ act_user_class_init (ActUserClass *class)
static void
act_user_init (ActUser *user)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
user->our_sessions = NULL;
user->other_sessions = NULL;
@@ -512,8 +514,8 @@ act_user_finalize (GObject *object)
}
static void
-set_is_loaded (ActUser *user,
- gboolean is_loaded)
+set_is_loaded (ActUser *user,
+ gboolean is_loaded)
{
if (user->is_loaded != is_loaded) {
user->is_loaded = is_loaded;
@@ -530,7 +532,6 @@ set_is_loaded (ActUser *user,
* Returns: a pointer to an array of characters which must not be modified or
* freed, or %NULL.
**/
-
uid_t
act_user_get_uid (ActUser *user)
{
@@ -717,7 +718,6 @@ act_user_get_location (ActUser *user)
* Returns: (transfer none): a pointer to an array of characters which must not be modified or
* freed, or %NULL.
**/
-
const char *
act_user_get_user_name (ActUser *user)
{
@@ -803,10 +803,10 @@ act_user_collate (ActUser *user1,
{
const char *str1;
const char *str2;
- int num1;
- int num2;
- guint len1;
- guint len2;
+ int num1;
+ int num2;
+ guint len1;
+ guint len2;
g_return_val_if_fail (ACT_IS_USER (user1), 0);
g_return_val_if_fail (ACT_IS_USER (user2), 0);
@@ -940,7 +940,7 @@ act_user_get_automatic_login (ActUser *user)
if (user->accounts_proxy == NULL)
return FALSE;
- return accounts_user_get_automatic_login (user->accounts_proxy);
+ return accounts_user_get_automatic_login (user->accounts_proxy);
}
/**
@@ -972,7 +972,7 @@ act_user_is_system_account (ActUser *user)
* Returns: %TRUE if the user is local
**/
gboolean
-act_user_is_local_account (ActUser *user)
+act_user_is_local_account (ActUser *user)
{
g_return_val_if_fail (ACT_IS_USER (user), FALSE);
@@ -991,7 +991,7 @@ act_user_is_local_account (ActUser *user)
* Returns: %TRUE if the user is nonexistent
**/
gboolean
-act_user_is_nonexistent (ActUser *user)
+act_user_is_nonexistent (ActUser *user)
{
g_return_val_if_fail (ACT_IS_USER (user), FALSE);
@@ -1199,8 +1199,9 @@ void
_act_user_update_from_object_path (ActUser *user,
const char *object_path)
{
- AccountsUser *accounts_proxy;
- g_autoptr(GError) error = NULL;
+ AccountsUser *accounts_proxy;
+
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (object_path != NULL);
@@ -1231,8 +1232,8 @@ _act_user_update_from_object_path (ActUser *user,
}
void
-_act_user_update_login_frequency (ActUser *user,
- int login_frequency)
+_act_user_update_login_frequency (ActUser *user,
+ int login_frequency)
{
if (act_user_get_login_frequency (user) == login_frequency) {
return;
@@ -1262,8 +1263,8 @@ copy_sessions_lists (ActUser *user,
}
void
-_act_user_load_from_user (ActUser *user,
- ActUser *user_to_copy)
+_act_user_load_from_user (ActUser *user,
+ ActUser *user_to_copy)
{
if (!user_to_copy->is_loaded) {
return;
@@ -1324,7 +1325,7 @@ act_user_get_password_expiration_policy (ActUser *user,
gint64 *days_to_warn,
gint64 *days_after_expiration_until_lock)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (ACCOUNTS_IS_USER (user->accounts_proxy));
@@ -1358,7 +1359,7 @@ void
act_user_set_user_expiration_policy (ActUser *user,
gint64 expiration_time)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (ACCOUNTS_IS_USER (user->accounts_proxy));
@@ -1393,7 +1394,7 @@ act_user_set_password_expiration_policy (ActUser *user,
gint64 days_to_warn,
gint64 days_after_expiration_until_lock)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (ACCOUNTS_IS_USER (user->accounts_proxy));
@@ -1425,7 +1426,7 @@ void
act_user_set_email (ActUser *user,
const char *email)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (email != NULL);
@@ -1456,7 +1457,7 @@ void
act_user_set_language (ActUser *user,
const char *language)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (language != NULL);
@@ -1488,7 +1489,7 @@ void
act_user_set_languages (ActUser *user,
const char * const *languages)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (languages != NULL);
@@ -1521,7 +1522,7 @@ void
act_user_set_x_session (ActUser *user,
const char *x_session)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (x_session != NULL);
@@ -1551,7 +1552,7 @@ void
act_user_set_session (ActUser *user,
const char *session)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (session != NULL);
@@ -1581,7 +1582,7 @@ void
act_user_set_session_type (ActUser *user,
const char *session_type)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (session_type != NULL);
@@ -1611,7 +1612,7 @@ void
act_user_set_location (ActUser *user,
const char *location)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (location != NULL);
@@ -1641,7 +1642,7 @@ void
act_user_set_user_name (ActUser *user,
const char *user_name)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (user_name != NULL);
@@ -1671,7 +1672,7 @@ void
act_user_set_real_name (ActUser *user,
const char *real_name)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (real_name != NULL);
@@ -1701,7 +1702,7 @@ void
act_user_set_icon_file (ActUser *user,
const char *icon_file)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (icon_file != NULL);
@@ -1728,10 +1729,10 @@ act_user_set_icon_file (ActUser *user,
* Note this function is synchronous and ignores errors.
**/
void
-act_user_set_account_type (ActUser *user,
- ActUserAccountType account_type)
+act_user_set_account_type (ActUser *user,
+ ActUserAccountType account_type)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (ACCOUNTS_IS_USER (user->accounts_proxy));
@@ -1767,8 +1768,8 @@ salt_char (GRand *rand)
static gchar *
generate_salt_for_crypt_hash (void)
{
- g_autoptr(GString) salt = NULL;
- g_autoptr(GRand) rand = NULL;
+ g_autoptr (GString) salt = NULL;
+ g_autoptr (GRand) rand = NULL;
gint i;
rand = g_rand_new ();
@@ -1806,11 +1807,11 @@ make_crypted (const gchar *plain)
* Note this function is synchronous and ignores errors.
**/
void
-act_user_set_password (ActUser *user,
- const gchar *password,
- const gchar *hint)
+act_user_set_password (ActUser *user,
+ const gchar *password,
+ const gchar *hint)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_autofree gchar *crypted = NULL;
g_return_if_fail (ACT_IS_USER (user));
@@ -1844,7 +1845,7 @@ void
act_user_set_password_hint (ActUser *user,
const gchar *hint)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (ACCOUNTS_IS_USER (user->accounts_proxy));
@@ -1873,10 +1874,10 @@ act_user_set_password_hint (ActUser *user,
* Note this function is synchronous and ignores errors.
**/
void
-act_user_set_password_mode (ActUser *user,
- ActUserPasswordMode password_mode)
+act_user_set_password_mode (ActUser *user,
+ ActUserPasswordMode password_mode)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (ACCOUNTS_IS_USER (user->accounts_proxy));
@@ -1899,10 +1900,10 @@ act_user_set_password_mode (ActUser *user,
* Note this function is synchronous and ignores errors.
**/
void
-act_user_set_locked (ActUser *user,
- gboolean locked)
+act_user_set_locked (ActUser *user,
+ gboolean locked)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (ACCOUNTS_IS_USER (user->accounts_proxy));
@@ -1930,10 +1931,10 @@ act_user_set_locked (ActUser *user,
* Note this function is synchronous and ignores errors.
**/
void
-act_user_set_automatic_login (ActUser *user,
- gboolean enabled)
+act_user_set_automatic_login (ActUser *user,
+ gboolean enabled)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_return_if_fail (ACT_IS_USER (user));
g_return_if_fail (ACCOUNTS_IS_USER (user->accounts_proxy));
diff --git a/src/libaccountsservice/act-user.h b/src/libaccountsservice/act-user.h
index 7ce41b1..fe9a8a4 100644
--- a/src/libaccountsservice/act-user.h
+++ b/src/libaccountsservice/act-user.h
@@ -28,105 +28,107 @@
#include <glib.h>
#include <glib-object.h>
-#define ACT_TYPE_USER (act_user_get_type())
+#define ACT_TYPE_USER (act_user_get_type ())
G_DECLARE_FINAL_TYPE (ActUser, act_user, ACT, USER, GObject)
-typedef enum {
+typedef enum
+{
ACT_USER_ACCOUNT_TYPE_STANDARD,
ACT_USER_ACCOUNT_TYPE_ADMINISTRATOR,
} ActUserAccountType;
-typedef enum {
+typedef enum
+{
ACT_USER_PASSWORD_MODE_REGULAR,
ACT_USER_PASSWORD_MODE_SET_AT_LOGIN,
ACT_USER_PASSWORD_MODE_NONE,
} ActUserPasswordMode;
-const char *act_user_get_object_path (ActUser *user);
+const char *act_user_get_object_path (ActUser *user);
-uid_t act_user_get_uid (ActUser *user);
-const char *act_user_get_user_name (ActUser *user);
-const char *act_user_get_real_name (ActUser *user);
-ActUserAccountType act_user_get_account_type (ActUser *user);
-ActUserPasswordMode act_user_get_password_mode (ActUser *user);
-const char *act_user_get_password_hint (ActUser *user);
-const char *act_user_get_home_dir (ActUser *user);
-const char *act_user_get_shell (ActUser *user);
-const char *act_user_get_email (ActUser *user);
-const char *act_user_get_location (ActUser *user);
-guint act_user_get_num_sessions (ActUser *user);
-guint act_user_get_num_sessions_anywhere (ActUser *user);
-gboolean act_user_is_logged_in (ActUser *user);
-gboolean act_user_is_logged_in_anywhere (ActUser *user);
-int act_user_get_login_frequency (ActUser *user);
-gint64 act_user_get_login_time (ActUser *user);
-const GVariant*act_user_get_login_history (ActUser *user);
-gboolean act_user_get_saved (ActUser *user);
-gboolean act_user_get_locked (ActUser *user);
-gboolean act_user_get_automatic_login (ActUser *user);
-gboolean act_user_is_system_account (ActUser *user);
-gboolean act_user_is_local_account (ActUser *user);
-gboolean act_user_is_nonexistent (ActUser *user);
-const char *act_user_get_icon_file (ActUser *user);
-const char *act_user_get_language (ActUser *user);
-const char * const *act_user_get_languages (ActUser *user);
-const char *act_user_get_x_session (ActUser *user);
-const char *act_user_get_session (ActUser *user);
-const char *act_user_get_session_type (ActUser *user);
-const char *act_user_get_primary_session_id (ActUser *user);
+uid_t act_user_get_uid (ActUser *user);
+const char *act_user_get_user_name (ActUser *user);
+const char *act_user_get_real_name (ActUser *user);
+ActUserAccountType act_user_get_account_type (ActUser *user);
+ActUserPasswordMode act_user_get_password_mode (ActUser *user);
+const char *act_user_get_password_hint (ActUser *user);
+const char *act_user_get_home_dir (ActUser *user);
+const char *act_user_get_shell (ActUser *user);
+const char *act_user_get_email (ActUser *user);
+const char *act_user_get_location (ActUser *user);
+guint act_user_get_num_sessions (ActUser *user);
+guint act_user_get_num_sessions_anywhere (ActUser *user);
+gboolean act_user_is_logged_in (ActUser *user);
+gboolean act_user_is_logged_in_anywhere (ActUser *user);
+int act_user_get_login_frequency (ActUser *user);
+gint64 act_user_get_login_time (ActUser *user);
+const GVariant *act_user_get_login_history (ActUser *user);
+gboolean act_user_get_saved (ActUser *user);
+gboolean act_user_get_locked (ActUser *user);
+gboolean act_user_get_automatic_login (ActUser *user);
+gboolean act_user_is_system_account (ActUser *user);
+gboolean act_user_is_local_account (ActUser *user);
+gboolean act_user_is_nonexistent (ActUser *user);
+const char *act_user_get_icon_file (ActUser *user);
+const char *act_user_get_language (ActUser *user);
+const char * const *act_user_get_languages (ActUser *user);
+const char *act_user_get_x_session (ActUser *user);
+const char *act_user_get_session (ActUser *user);
+const char *act_user_get_session_type (ActUser *user);
+const char *act_user_get_primary_session_id (ActUser *user);
-gint act_user_collate (ActUser *user1,
- ActUser *user2);
-gboolean act_user_is_loaded (ActUser *user);
+gint act_user_collate (ActUser *user1,
+ ActUser *user2);
+gboolean act_user_is_loaded (ActUser *user);
-void act_user_get_password_expiration_policy (ActUser *user,
- gint64 *expiration_time,
- gint64 *last_change_time,
- gint64 *min_days_between_changes,
- gint64 *max_days_between_changes,
- gint64 *days_to_warn,
- gint64 *days_after_expiration_until_lock);
+void act_user_get_password_expiration_policy (ActUser *user,
+ gint64 *expiration_time,
+ gint64 *last_change_time,
+ gint64 *min_days_between_changes,
+ gint64 *max_days_between_changes,
+ gint64 *days_to_warn,
+ gint64 *days_after_expiration_until_lock);
-void act_user_set_password_expiration_policy (ActUser *user,
- gint64 min_days_between_changes,
- gint64 max_days_between_changes,
- gint64 days_to_warn,
- gint64 days_after_expiration_until_lock);
+void act_user_set_password_expiration_policy (ActUser *user,
+ gint64 min_days_between_changes,
+ gint64 max_days_between_changes,
+ gint64 days_to_warn,
+ gint64 days_after_expiration_until_lock);
-void act_user_set_user_expiration_policy (ActUser *user,
- gint64 expiration_time);
+void act_user_set_user_expiration_policy (ActUser *user,
+ gint64 expiration_time);
-void act_user_set_language (ActUser *user,
- const char *language);
-void act_user_set_languages (ActUser *user,
- const char * const *languages);
+void act_user_set_language (ActUser *user,
+ const char *language);
+void act_user_set_languages (ActUser *user,
+ const char * const *languages);
-void act_user_set_email (ActUser *user,
- const char *email);
-void act_user_set_x_session (ActUser *user,
- const char *x_session);
-void act_user_set_session (ActUser *user,
- const char *session);
-void act_user_set_session_type (ActUser *user,
- const char *session_type);
-void act_user_set_location (ActUser *user,
- const char *location);
-void act_user_set_user_name (ActUser *user,
- const char *user_name);
-void act_user_set_real_name (ActUser *user,
- const char *real_name);
-void act_user_set_icon_file (ActUser *user,
- const char *icon_file);
-void act_user_set_account_type (ActUser *user,
- ActUserAccountType account_type);
-void act_user_set_password (ActUser *user,
- const gchar *password,
- const gchar *hint);
-void act_user_set_password_hint (ActUser *user,
- const gchar *hint);
-void act_user_set_password_mode (ActUser *user,
- ActUserPasswordMode password_mode);
-void act_user_set_locked (ActUser *user,
- gboolean locked);
-void act_user_set_automatic_login (ActUser *user,
- gboolean enabled);
+void act_user_set_email (ActUser *user,
+ const char *email);
+void act_user_set_x_session (ActUser *user,
+ const char *x_session);
+void act_user_set_session (ActUser *user,
+ const char *session);
+void act_user_set_session_type (ActUser *user,
+ const char *session_type);
+void act_user_set_location (ActUser *user,
+ const char *location);
+void act_user_set_user_name (ActUser *user,
+ const char *user_name);
+void act_user_set_real_name (ActUser *user,
+ const char *real_name);
+void act_user_set_icon_file (ActUser *user,
+ const char *icon_file);
+void act_user_set_account_type (ActUser *user,
+ ActUserAccountType account_type);
+void act_user_set_password (ActUser *user,
+ const gchar *password,
+ const gchar *hint);
+void act_user_set_password_hint (ActUser *user,
+ const gchar *hint);
+void act_user_set_password_mode (ActUser *user,
+ ActUserPasswordMode password_mode);
+void act_user_set_locked (ActUser *user,
+ gboolean locked);
+void act_user_set_automatic_login (ActUser *user,
+ gboolean enabled);
diff --git a/src/main.c b/src/main.c
index a2f3729..c0e1d66 100644
--- a/src/main.c
+++ b/src/main.c
@@ -40,9 +40,9 @@
#define NAME_TO_CLAIM "org.freedesktop.Accounts"
static gboolean
-ensure_directory (const char *path,
- gint mode,
- GError **error)
+ensure_directory (const char *path,
+ gint mode,
+ GError **error)
{
GStatBuf stat_buffer = { 0 };
@@ -81,9 +81,9 @@ ensure_directory (const char *path,
}
static gboolean
-ensure_file_permissions (const char *dir_path,
- gint file_mode,
- GError **error)
+ensure_file_permissions (const char *dir_path,
+ gint file_mode,
+ GError **error)
{
GDir *dir = NULL;
const gchar *filename;
@@ -126,13 +126,14 @@ ensure_file_permissions (const char *dir_path,
}
static void
-on_bus_acquired (GDBusConnection *connection,
- const gchar *name,
- gpointer user_data)
+on_bus_acquired (GDBusConnection *connection,
+ const gchar *name,
+ gpointer user_data)
{
GMainLoop *loop = user_data;
Daemon *daemon;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
if (!ensure_directory (get_icondir (), 0775, &error) ||
!ensure_directory (get_userdir (), 0700, &error) ||
@@ -155,9 +156,9 @@ on_bus_acquired (GDBusConnection *connection,
}
static void
-on_name_lost (GDBusConnection *connection,
- const gchar *name,
- gpointer user_data)
+on_name_lost (GDBusConnection *connection,
+ const gchar *name,
+ gpointer user_data)
{
GMainLoop *loop = user_data;
@@ -168,12 +169,12 @@ on_name_lost (GDBusConnection *connection,
static gboolean debug;
static void
-on_log_debug (const gchar *log_domain,
+on_log_debug (const gchar *log_domain,
GLogLevelFlags log_level,
- const gchar *message,
- gpointer user_data)
+ const gchar *message,
+ gpointer user_data)
{
- g_autoptr(GString) string = NULL;
+ g_autoptr (GString) string = NULL;
const gchar *progname;
int ret G_GNUC_UNUSED;
@@ -181,7 +182,7 @@ on_log_debug (const gchar *log_domain,
progname = g_get_prgname ();
g_string_append_printf (string, "(%s:%lu): %s%sDEBUG: %s\n",
- progname ? progname : "process", (gulong)getpid (),
+ progname ? progname : "process", (gulong) getpid (),
log_domain ? log_domain : "", log_domain ? "-" : "",
message ? message : "(NULL) message");
@@ -211,18 +212,19 @@ on_signal_quit (gpointer data)
}
int
-main (int argc, char *argv[])
+main (int argc,
+ char *argv[])
{
- g_autoptr(GMainLoop) loop = NULL;
- g_autoptr(GError) error = NULL;
+ g_autoptr (GMainLoop) loop = NULL;
+ g_autoptr (GError) error = NULL;
GBusNameOwnerFlags flags;
- g_autoptr(GOptionContext) context = NULL;
+ g_autoptr (GOptionContext) context = NULL;
static gboolean replace;
static gboolean show_version;
static GOptionEntry entries[] = {
- { "version", 0, 0, G_OPTION_ARG_NONE, &show_version, N_("Output version information and exit"), NULL },
- { "replace", 0, 0, G_OPTION_ARG_NONE, &replace, N_("Replace existing instance"), NULL },
- { "debug", 0, 0, G_OPTION_ARG_NONE, &debug, N_("Enable debugging code"), NULL },
+ { "version", 0, 0, G_OPTION_ARG_NONE, &show_version, N_ ("Output version information and exit"), NULL },
+ { "replace", 0, 0, G_OPTION_ARG_NONE, &replace, N_ ("Replace existing instance"), NULL },
+ { "debug", 0, 0, G_OPTION_ARG_NONE, &debug, N_ ("Enable debugging code"), NULL },
{ NULL }
};
@@ -241,7 +243,7 @@ main (int argc, char *argv[])
context = g_option_context_new (NULL);
g_option_context_set_translation_domain (context, GETTEXT_PACKAGE);
- g_option_context_set_summary (context, _("Provides D-Bus interfaces for querying and manipulating\nuser account information."));
+ g_option_context_set_summary (context, _ ("Provides D-Bus interfaces for querying and manipulating\nuser account information."));
g_option_context_add_main_entries (context, entries, NULL);
if (!g_option_context_parse (context, &argc, &argv, &error)) {
g_warning ("%s", error->message);
@@ -286,4 +288,3 @@ main (int argc, char *argv[])
return EXIT_SUCCESS;
}
-
diff --git a/src/user-classify.h b/src/user-classify.h
index 5eab070..9314ccf 100644
--- a/src/user-classify.h
+++ b/src/user-classify.h
@@ -23,6 +23,6 @@
#include <sys/types.h>
#include <glib.h>
-gboolean user_classify_is_human (uid_t uid,
- const gchar *username,
- const gchar *shell);
+gboolean user_classify_is_human (uid_t uid,
+ const gchar *username,
+ const gchar *shell);
diff --git a/src/user.c b/src/user.c
index d480d1e..2203e69 100644
--- a/src/user.c
+++ b/src/user.c
@@ -1,24 +1,24 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2004-2005 James M. Cape <jcape@ignore-your.tv>.
- * Copyright (C) 2007-2008 William Jon McCann <mccann@jhu.edu>
- * Copyright (C) 2009-2010 Red Hat, Inc.
- * Copyright © 2013 Canonical Limited
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
+ *
+ * Copyright (C) 2004-2005 James M. Cape <jcape@ignore-your.tv>.
+ * Copyright (C) 2007-2008 William Jon McCann <mccann@jhu.edu>
+ * Copyright (C) 2009-2010 Red Hat, Inc.
+ * Copyright © 2013 Canonical Limited
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
#define _BSD_SOURCE
@@ -48,35 +48,36 @@
#include "accounts-user-generated.h"
#include "util.h"
-struct User {
+struct User
+{
AccountsUserSkeleton parent;
- GDBusConnection *system_bus_connection;
- gchar *object_path;
+ GDBusConnection *system_bus_connection;
+ gchar *object_path;
+
+ Daemon *daemon;
+
+ GKeyFile *keyfile;
- Daemon *daemon;
-
- GKeyFile *keyfile;
-
- gid_t gid;
- GDateTime *user_expiration_time;
- GDateTime *last_change_time;
- gint64 min_days_between_changes;
- gint64 max_days_between_changes;
- gint64 days_to_warn;
- gint64 days_after_expiration_until_lock;
- GVariant *login_history;
- gchar *icon_file;
- gchar *default_icon_file;
- gchar *gecos;
- gboolean account_expiration_policy_known;
- gboolean cached;
- gboolean template_loaded;
-
- guint *extension_ids;
- guint n_extension_ids;
-
- guint changed_timeout_id;
+ gid_t gid;
+ GDateTime *user_expiration_time;
+ GDateTime *last_change_time;
+ gint64 min_days_between_changes;
+ gint64 max_days_between_changes;
+ gint64 days_to_warn;
+ gint64 days_after_expiration_until_lock;
+ GVariant *login_history;
+ gchar *icon_file;
+ gchar *default_icon_file;
+ gchar *gecos;
+ gboolean account_expiration_policy_known;
+ gboolean cached;
+ gboolean template_loaded;
+
+ guint *extension_ids;
+ guint n_extension_ids;
+
+ guint changed_timeout_id;
};
typedef struct UserClass
@@ -85,7 +86,8 @@ typedef struct UserClass
} UserClass;
static void user_accounts_user_iface_init (AccountsUserIface *iface);
-static void user_update_from_keyfile (User *user, GKeyFile *keyfile);
+static void user_update_from_keyfile (User *user,
+ GKeyFile *keyfile);
G_DEFINE_TYPE_WITH_CODE (User, user, ACCOUNTS_TYPE_USER_SKELETON, G_IMPLEMENT_INTERFACE (ACCOUNTS_TYPE_USER, user_accounts_user_iface_init));
@@ -119,7 +121,7 @@ static void
user_reset_icon_file (User *user)
{
const char *icon_file;
- gboolean icon_is_default;
+ gboolean icon_is_default;
const char *home_dir;
icon_file = accounts_user_get_icon_file (ACCOUNTS_USER (user));
@@ -155,8 +157,8 @@ is_valid_shell_identifier_character (char c,
gboolean first)
{
return (!first && g_ascii_isdigit (c)) ||
- c == '_' ||
- g_ascii_isalpha (c);
+ c == '_' ||
+ g_ascii_isalpha (c);
}
static char *
@@ -198,8 +200,9 @@ expand_template_variables (User *user,
}
start = p;
while (*p != '\0' &&
- is_valid_shell_identifier_character (*p, p == start))
+ is_valid_shell_identifier_character (*p, p == start)) {
p++;
+ }
if (p == start || (brackets && *p != '}')) {
g_string_append_c (s, '$');
if (brackets)
@@ -233,6 +236,7 @@ load_template_environment_file (User *user,
const char *file)
{
g_autofree char *contents = NULL;
+
g_auto (GStrv) lines = NULL;
g_autoptr (GError) error = NULL;
gboolean file_loaded;
@@ -255,24 +259,28 @@ load_template_environment_file (User *user,
const char *value;
p = lines[i];
- while (g_ascii_isspace (*p))
+ while (g_ascii_isspace (*p)) {
p++;
+ }
if (*p == '#' || *p == '\0')
continue;
variable = p;
- while (is_valid_shell_identifier_character (*p, p == variable))
+ while (is_valid_shell_identifier_character (*p, p == variable)) {
p++;
+ }
variable_end = p;
- while (g_ascii_isspace (*p))
+ while (g_ascii_isspace (*p)) {
p++;
+ }
if (variable_end == variable || *p != '=') {
g_debug ("template environment file %s has invalid line '%s'\n", file, lines[i]);
continue;
}
*variable_end = '\0';
p++;
- while (g_ascii_isspace (*p))
+ while (g_ascii_isspace (*p)) {
p++;
+ }
value = p;
if (g_hash_table_lookup (variables, variable) == NULL) {
@@ -280,7 +288,6 @@ load_template_environment_file (User *user,
g_strdup (variable),
g_strdup (value));
}
-
}
}
@@ -306,6 +313,7 @@ static void
user_update_from_template (User *user)
{
g_autofree char *filename = NULL;
+
g_autoptr (GKeyFile) key_file = NULL;
g_autoptr (GError) error = NULL;
g_autoptr (GHashTable) template_variables = NULL;
@@ -316,12 +324,14 @@ user_update_from_template (User *user)
g_get_system_data_dirs (),
NULL
};
+
g_autoptr (GPtrArray) dirs = NULL;
AccountType account_type;
const char *account_type_string;
size_t i, j;
g_autofree char *contents = NULL;
g_autofree char *expanded = NULL;
+
g_auto (GStrv) lines = NULL;
if (user->template_loaded)
@@ -403,7 +413,8 @@ user_update_from_pwent (User *user,
g_autofree gchar *real_name = NULL;
gboolean is_system_account;
const gchar *passwd;
- g_autoptr(GDateTime) start_time = NULL;
+
+ g_autoptr (GDateTime) start_time = NULL;
gboolean locked;
PasswordMode mode;
AccountType account_type;
@@ -419,8 +430,7 @@ user_update_from_pwent (User *user,
valid_utf8_name = pwent->pw_gecos;
first_comma = g_utf8_strchr (valid_utf8_name, -1, ',');
user->gecos = g_strdup (pwent->pw_gecos);
- }
- else {
+ } else {
g_warning ("User %s has invalid UTF-8 in GECOS field. "
"It would be a good thing to check /etc/passwd.",
pwent->pw_name ? pwent->pw_name : "");
@@ -428,20 +438,17 @@ user_update_from_pwent (User *user,
if (first_comma) {
real_name = g_strndup (valid_utf8_name,
- (first_comma - valid_utf8_name));
- }
- else if (valid_utf8_name) {
+ (first_comma - valid_utf8_name));
+ } else if (valid_utf8_name) {
real_name = g_strdup (valid_utf8_name);
- }
- else {
+ } else {
real_name = NULL;
}
if (real_name && real_name[0] == '\0') {
g_clear_pointer (&real_name, g_free);
}
- }
- else {
+ } else {
real_name = NULL;
}
@@ -465,8 +472,7 @@ user_update_from_pwent (User *user,
if (passwd && passwd[0] == '!') {
locked = TRUE;
- }
- else {
+ } else {
locked = FALSE;
}
@@ -474,8 +480,7 @@ user_update_from_pwent (User *user,
if (passwd == NULL || passwd[0] != 0) {
mode = PASSWORD_MODE_REGULAR;
- }
- else {
+ } else {
mode = PASSWORD_MODE_NONE;
}
@@ -487,15 +492,14 @@ user_update_from_pwent (User *user,
start_time = g_date_time_new_from_unix_utc (0);
if (spent->sp_expire < 0) {
user->user_expiration_time = NULL;
- }
- else {
+ } else {
user->user_expiration_time = g_date_time_add_days (start_time, spent->sp_expire);
}
user->last_change_time = g_date_time_add_days (start_time, spent->sp_lstchg);
user->min_days_between_changes = spent->sp_min;
user->max_days_between_changes = spent->sp_max;
- user->days_to_warn = spent->sp_warn;
+ user->days_to_warn = spent->sp_warn;
user->days_after_expiration_until_lock = spent->sp_inact;
user->account_expiration_policy_known = TRUE;
}
@@ -582,10 +586,10 @@ user_update_from_keyfile (User *user,
}
if (g_key_file_has_key (keyfile, "User", "SystemAccount", NULL)) {
- gboolean system_account;
+ gboolean system_account;
- system_account = g_key_file_get_boolean (keyfile, "User", "SystemAccount", NULL);
- accounts_user_set_system_account (ACCOUNTS_USER (user), system_account);
+ system_account = g_key_file_get_boolean (keyfile, "User", "SystemAccount", NULL);
+ accounts_user_set_system_account (ACCOUNTS_USER (user), system_account);
}
g_clear_pointer (&user->keyfile, g_key_file_unref);
@@ -596,7 +600,8 @@ void
user_update_from_cache (User *user)
{
g_autofree gchar *filename = NULL;
- g_autoptr(GKeyFile) key_file = NULL;
+
+ g_autoptr (GKeyFile) key_file = NULL;
filename = g_build_filename (get_userdir (), accounts_user_get_user_name (ACCOUNTS_USER (user)), NULL);
@@ -613,15 +618,15 @@ user_update_from_cache (User *user)
}
void
-user_update_local_account_property (User *user,
- gboolean local)
+user_update_local_account_property (User *user,
+ gboolean local)
{
accounts_user_set_local_account (ACCOUNTS_USER (user), local);
}
void
-user_update_system_account_property (User *user,
- gboolean system)
+user_update_system_account_property (User *user,
+ gboolean system)
{
accounts_user_set_system_account (ACCOUNTS_USER (user), system);
}
@@ -636,7 +641,7 @@ user_save_to_keyfile (User *user,
g_key_file_set_string (keyfile, "User", "Email", accounts_user_get_email (ACCOUNTS_USER (user)));
if (accounts_user_get_languages (ACCOUNTS_USER (user))) {
- const gchar * const* languages;
+ const gchar * const *languages;
languages = accounts_user_get_languages (ACCOUNTS_USER (user));
g_key_file_set_string_list (keyfile, "User", "Languages", languages, g_strv_length ((char **) languages));
} else if (accounts_user_get_language (ACCOUNTS_USER (user))) {
@@ -674,7 +679,8 @@ save_extra_data (User *user)
{
g_autofree gchar *data = NULL;
g_autofree gchar *filename = NULL;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
user_save_to_keyfile (user, user->keyfile);
@@ -733,8 +739,7 @@ user_extension_get_value (User *user,
if (g_str_equal (annotation->key, "org.freedesktop.Accounts.DefaultValue.String")) {
if (g_str_equal (property->signature, "s"))
return g_variant_ref_sink (g_variant_new_string (annotation->value));
- }
- else if (g_str_equal (annotation->key, "org.freedesktop.Accounts.DefaultValue")) {
+ } else if (g_str_equal (annotation->key, "org.freedesktop.Accounts.DefaultValue")) {
value = g_variant_parse (type, annotation->value, NULL, NULL, NULL);
if (value != NULL)
return value;
@@ -752,14 +757,14 @@ user_extension_get_property (User *user,
GDBusMethodInvocation *invocation)
{
const GDBusPropertyInfo *property = g_dbus_method_invocation_get_property_info (invocation);
- g_autoptr(GVariant) value = NULL;
+
+ g_autoptr (GVariant) value = NULL;
value = user_extension_get_value (user, interface, property);
if (value) {
g_dbus_method_invocation_return_value (invocation, g_variant_new ("(v)", value));
- }
- else {
+ } else {
g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
"Key '%s' is not set and has no default value",
property->name);
@@ -778,7 +783,7 @@ user_extension_get_all_properties (User *user,
g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT);
for (i = 0; interface->properties && interface->properties[i]; i++) {
GDBusPropertyInfo *property = interface->properties[i];
- g_autoptr(GVariant) value = NULL;
+ g_autoptr (GVariant) value = NULL;
value = user_extension_get_value (user, interface, property);
@@ -796,7 +801,8 @@ user_extension_set_property (User *user,
GDBusMethodInvocation *invocation)
{
const GDBusPropertyInfo *property = g_dbus_method_invocation_get_property_info (invocation);
- g_autoptr(GVariant) value = NULL;
+
+ g_autoptr (GVariant) value = NULL;
g_autofree gchar *printed = NULL;
g_autofree gchar *prev = NULL;
@@ -885,19 +891,16 @@ user_extension_method_call (GDBusConnection *connection,
if (g_str_equal (method_name, "Set")) {
annotation_name = "org.freedesktop.Accounts.Authentication.ChangeOwn";
action_id = "org.freedesktop.accounts.change-own-user-data";
- }
- else {
+ } else {
annotation_name = "org.freedesktop.Accounts.Authentication.ReadOwn";
action_id = ""; /* reading allowed by default */
}
- }
- else {
+ } else {
/* Operation on someone else's User object */
if (g_str_equal (method_name, "Set")) {
annotation_name = "org.freedesktop.Accounts.Authentication.ChangeAny";
action_id = "org.freedesktop.accounts.user-administration";
- }
- else {
+ } else {
annotation_name = "org.freedesktop.Accounts.Authentication.ReadAny";
action_id = ""; /* reading allowed by default */
}
@@ -916,8 +919,7 @@ user_extension_method_call (GDBusConnection *connection,
if (action_id[0] == '\0') {
/* Should always allow this call, so just do it now */
user_extension_authentication_done (user->daemon, user, invocation, iface_info);
- }
- else {
+ } else {
daemon_local_check_auth (user->daemon, user, action_id,
user_extension_authentication_done,
invocation, iface_info, NULL);
@@ -949,10 +951,11 @@ user_register_extensions (User *user)
* they won't happen and (b) even if they do, we still want to
* publish the main user interface.
*/
- while (g_hash_table_iter_next (&iter, NULL, &iface))
+ while (g_hash_table_iter_next (&iter, NULL, &iface)) {
user->extension_ids[i++] = g_dbus_connection_register_object (user->system_bus_connection,
g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (user)), iface,
&vtable, user, NULL, NULL);
+ }
}
static gchar *
@@ -987,7 +990,7 @@ on_user_property_notify (User *user)
void
user_register (User *user)
{
- g_autoptr(GError) error = NULL;
+ g_autoptr (GError) error = NULL;
g_autofree gchar *object_path = NULL;
user->system_bus_connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error);
@@ -1016,7 +1019,7 @@ user_register (User *user)
void
user_save (User *user)
{
- save_extra_data (user);
+ save_extra_data (user);
}
void
@@ -1076,7 +1079,7 @@ user_get_system_account (User *user)
gboolean
user_get_local_account (User *user)
{
- return accounts_user_get_local_account (ACCOUNTS_USER (user));;
+ return accounts_user_get_local_account (ACCOUNTS_USER (user));
}
const gchar *
@@ -1092,9 +1095,9 @@ user_get_uid (User *user)
}
const gchar *
-user_get_shell(User *user)
+user_get_shell (User *user)
{
- return accounts_user_get_shell (ACCOUNTS_USER (user));
+ return accounts_user_get_shell (ACCOUNTS_USER (user));
}
gboolean
@@ -1104,15 +1107,15 @@ user_get_cached (User *user)
}
void
-user_set_cached (User *user,
- gboolean cached)
+user_set_cached (User *user,
+ gboolean cached)
{
user->cached = cached;
}
void
-user_set_saved (User *user,
- gboolean saved)
+user_set_saved (User *user,
+ gboolean saved)
{
accounts_user_set_saved (ACCOUNTS_USER (user), saved);
}
@@ -1142,7 +1145,8 @@ user_change_real_name_authorized_cb (Daemon *daemon,
{
gchar *name = data;
g_autofree gchar *new_gecos = NULL;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
const gchar *first_comma = NULL;
const gchar *argv[6];
@@ -1188,7 +1192,7 @@ user_set_real_name (AccountsUser *auser,
GDBusMethodInvocation *context,
const gchar *real_name)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
int uid;
const gchar *action_id;
@@ -1213,7 +1217,7 @@ user_set_real_name (AccountsUser *auser,
user_change_real_name_authorized_cb,
context,
g_strdup (real_name),
- (GDestroyNotify)g_free);
+ (GDestroyNotify) g_free);
return TRUE;
}
@@ -1227,7 +1231,8 @@ user_change_user_name_authorized_cb (Daemon *daemon,
{
gchar *name = data;
gchar *old_name;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
const gchar *argv[6];
if (g_strcmp0 (accounts_user_get_user_name (ACCOUNTS_USER (user)), name) != 0) {
@@ -1264,14 +1269,15 @@ user_set_user_name (AccountsUser *auser,
GDBusMethodInvocation *context,
const gchar *user_name)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
+
daemon_local_check_auth (user->daemon,
user,
"org.freedesktop.accounts.user-administration",
user_change_user_name_authorized_cb,
context,
g_strdup (user_name),
- (GDestroyNotify)g_free);
+ (GDestroyNotify) g_free);
return TRUE;
}
@@ -1301,7 +1307,7 @@ user_set_email (AccountsUser *auser,
GDBusMethodInvocation *context,
const gchar *email)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
int uid;
const gchar *action_id;
@@ -1321,7 +1327,7 @@ user_set_email (AccountsUser *auser,
user_change_email_authorized_cb,
context,
g_strdup (email),
- (GDestroyNotify)g_free);
+ (GDestroyNotify) g_free);
return TRUE;
}
@@ -1333,7 +1339,7 @@ user_change_languages_authorized_cb (Daemon *daemon,
gpointer data)
{
- const gchar * const* languages = data;
+ const gchar * const *languages = data;
guint i;
for (i = 0; languages[i] != NULL; i++) {
@@ -1362,7 +1368,7 @@ user_set_languages (AccountsUser *auser,
GDBusMethodInvocation *context,
const gchar * const *languages)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
int uid;
const gchar *action_id;
@@ -1382,7 +1388,7 @@ user_set_languages (AccountsUser *auser,
user_change_languages_authorized_cb,
context,
g_strdupv ((gchar **) languages),
- (GDestroyNotify)g_strfreev);
+ (GDestroyNotify) g_strfreev);
return TRUE;
}
@@ -1424,7 +1430,7 @@ user_set_language (AccountsUser *auser,
GDBusMethodInvocation *context,
const gchar *language)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
int uid;
const gchar *action_id;
@@ -1444,7 +1450,7 @@ user_set_language (AccountsUser *auser,
user_change_language_authorized_cb,
context,
g_strdup (language),
- (GDestroyNotify)g_free);
+ (GDestroyNotify) g_free);
return TRUE;
}
@@ -1472,7 +1478,7 @@ user_set_session (AccountsUser *auser,
GDBusMethodInvocation *context,
const gchar *session)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
int uid;
const gchar *action_id;
@@ -1520,7 +1526,7 @@ user_set_session_type (AccountsUser *auser,
GDBusMethodInvocation *context,
const gchar *session_type)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
int uid;
const gchar *action_id;
@@ -1568,7 +1574,7 @@ user_set_x_session (AccountsUser *auser,
GDBusMethodInvocation *context,
const gchar *x_session)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
int uid;
const gchar *action_id;
@@ -1600,7 +1606,7 @@ user_get_password_expiration_policy_authorized_cb (Daemon *daemon
gpointer data)
{
- gint64 user_expiration_time;
+ gint64 user_expiration_time;
guint64 last_change_time;
if (!user->account_expiration_policy_known) {
@@ -1609,8 +1615,7 @@ user_get_password_expiration_policy_authorized_cb (Daemon *daemon
}
if (user->user_expiration_time == NULL) {
user_expiration_time = -1;
- }
- else {
+ } else {
user_expiration_time = g_date_time_to_unix (user->user_expiration_time);
}
last_change_time = g_date_time_to_unix (user->last_change_time);
@@ -1628,7 +1633,7 @@ static gboolean
user_get_password_expiration_policy (AccountsUser *auser,
GDBusMethodInvocation *context)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
int uid;
const gchar *action_id;
@@ -1655,11 +1660,10 @@ user_get_password_expiration_policy (AccountsUser *auser,
typedef struct PasswordExpirationPolicy
{
- char *min_days_between_changes;
- char *max_days_between_changes;
- char *days_to_warn;
- char *days_after_expiration_until_lock;
-
+ char *min_days_between_changes;
+ char *max_days_between_changes;
+ char *days_to_warn;
+ char *days_after_expiration_until_lock;
} PasswordExpirationPolicy;
static void
@@ -1680,7 +1684,8 @@ user_set_password_expiration_policy_authorized_cb (Daemon *daemon
{
PasswordExpirationPolicy *pwd_expiration = data;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
const gchar *argv[11];
sys_log (context,
@@ -1719,7 +1724,7 @@ user_set_password_expiration_policy (AccountsUser *auser,
gint64 days_to_warn,
gint64 days_after_expiration_until_lock)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
int uid;
const gchar *action_id;
PasswordExpirationPolicy *pwd_expiration = NULL;
@@ -1746,7 +1751,7 @@ user_set_password_expiration_policy (AccountsUser *auser,
user_set_password_expiration_policy_authorized_cb,
context,
pwd_expiration,
- (GDestroyNotify)free_password_expiration);
+ (GDestroyNotify) free_password_expiration);
return TRUE;
}
@@ -1759,6 +1764,7 @@ user_set_user_expiration_policy_authorized_cb (Daemon *daemon,
{
g_autofree gchar *expiration_time = NULL;
+
g_autoptr (GError) error = NULL;
g_autoptr (GDateTime) time = NULL;
const gchar *argv[5];
@@ -1770,11 +1776,10 @@ user_set_user_expiration_policy_authorized_cb (Daemon *daemon,
g_object_freeze_notify (G_OBJECT (user));
- if ((gint64)data != -1) {
- time = g_date_time_new_from_unix_local ((gint64)data);
+ if ((gint64) data != -1) {
+ time = g_date_time_new_from_unix_local ((gint64) data);
expiration_time = g_date_time_format (time, "%F");
- }
- else {
+ } else {
expiration_time = g_strdup ("-1");
}
argv[0] = "/usr/bin/chage";
@@ -1798,7 +1803,7 @@ user_set_user_expiration_policy (AccountsUser *auser,
GDBusMethodInvocation *context,
gint64 user_expiration_time)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
int uid;
const gchar *action_id;
@@ -1817,7 +1822,7 @@ user_set_user_expiration_policy (AccountsUser *auser,
action_id,
user_set_user_expiration_policy_authorized_cb,
context,
- (gpointer)user_expiration_time,
+ (gpointer) user_expiration_time,
NULL);
return TRUE;
@@ -1846,7 +1851,7 @@ user_set_location (AccountsUser *auser,
GDBusMethodInvocation *context,
const gchar *location)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
int uid;
const gchar *action_id;
@@ -1866,7 +1871,7 @@ user_set_location (AccountsUser *auser,
user_change_location_authorized_cb,
context,
g_strdup (location),
- (GDestroyNotify)g_free);
+ (GDestroyNotify) g_free);
return TRUE;
}
@@ -1879,7 +1884,8 @@ user_change_home_dir_authorized_cb (Daemon *daemon,
{
gchar *home_dir = data;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
const gchar *argv[7];
if (g_strcmp0 (accounts_user_get_home_directory (ACCOUNTS_USER (user)), home_dir) != 0) {
@@ -1915,14 +1921,15 @@ user_set_home_directory (AccountsUser *auser,
GDBusMethodInvocation *context,
const gchar *home_dir)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
+
daemon_local_check_auth (user->daemon,
user,
"org.freedesktop.accounts.user-administration",
user_change_home_dir_authorized_cb,
context,
g_strdup (home_dir),
- (GDestroyNotify)g_free);
+ (GDestroyNotify) g_free);
return TRUE;
}
@@ -1935,7 +1942,8 @@ user_change_shell_authorized_cb (Daemon *daemon,
{
gchar *shell = data;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
const gchar *argv[6];
if (g_strcmp0 (accounts_user_get_shell (ACCOUNTS_USER (user)), shell) != 0) {
@@ -1968,14 +1976,15 @@ user_set_shell (AccountsUser *auser,
GDBusMethodInvocation *context,
const gchar *shell)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
+
daemon_local_check_auth (user->daemon,
user,
"org.freedesktop.accounts.user-administration",
user_change_shell_authorized_cb,
context,
g_strdup (shell),
- (GDestroyNotify)g_free);
+ (GDestroyNotify) g_free);
return TRUE;
}
@@ -2001,8 +2010,9 @@ user_change_icon_file_authorized_cb (Daemon *daemon,
{
g_autofree gchar *filename = NULL;
- g_autoptr(GFile) file = NULL;
- g_autoptr(GFileInfo) info = NULL;
+
+ g_autoptr (GFile) file = NULL;
+ g_autoptr (GFileInfo) info = NULL;
guint32 mode;
GFileType type;
guint64 size;
@@ -2012,8 +2022,8 @@ user_change_icon_file_authorized_cb (Daemon *daemon,
if (filename == NULL ||
*filename == '\0') {
g_autofree gchar *dest_path = NULL;
- g_autoptr(GFile) dest = NULL;
- g_autoptr(GError) error = NULL;
+ g_autoptr (GFile) dest = NULL;
+ g_autoptr (GError) error = NULL;
g_clear_pointer (&filename, g_free);
@@ -2038,8 +2048,8 @@ user_change_icon_file_authorized_cb (Daemon *daemon,
filename = g_file_get_path (file);
info = g_file_query_info (file, G_FILE_ATTRIBUTE_UNIX_MODE ","
- G_FILE_ATTRIBUTE_STANDARD_TYPE ","
- G_FILE_ATTRIBUTE_STANDARD_SIZE,
+ G_FILE_ATTRIBUTE_STANDARD_TYPE ","
+ G_FILE_ATTRIBUTE_STANDARD_SIZE,
0, NULL, NULL);
mode = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_UNIX_MODE);
type = g_file_info_get_file_type (info);
@@ -2062,12 +2072,12 @@ user_change_icon_file_authorized_cb (Daemon *daemon,
(!g_str_has_prefix (filename, DATADIR) &&
!g_str_has_prefix (filename, get_icondir ()))) {
g_autofree gchar *dest_path = NULL;
- g_autoptr(GFile) dest = NULL;
+ g_autoptr (GFile) dest = NULL;
const gchar *argv[3];
gint std_out;
- g_autoptr(GError) error = NULL;
- g_autoptr(GInputStream) input = NULL;
- g_autoptr(GOutputStream) output = NULL;
+ g_autoptr (GError) error = NULL;
+ g_autoptr (GInputStream) input = NULL;
+ g_autoptr (GOutputStream) output = NULL;
gint uid;
gssize bytes;
struct passwd *pw;
@@ -2092,7 +2102,7 @@ user_change_icon_file_authorized_cb (Daemon *daemon,
pw = getpwuid (uid);
- if (!g_spawn_async_with_pipes (NULL, (gchar**)argv, NULL, 0, become_user, pw, NULL, NULL, &std_out, NULL, &error)) {
+ if (!g_spawn_async_with_pipes (NULL, (gchar **) argv, NULL, 0, become_user, pw, NULL, NULL, &std_out, NULL, &error)) {
throw_error (context, ERROR_FAILED, "reading file '%s' failed: %s", filename, error->message);
return;
}
@@ -2100,7 +2110,7 @@ user_change_icon_file_authorized_cb (Daemon *daemon,
input = g_unix_input_stream_new (std_out, FALSE);
bytes = g_output_stream_splice (output, input, G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET, NULL, &error);
- if (bytes < 0 || (gsize)bytes != size) {
+ if (bytes < 0 || (gsize) bytes != size) {
throw_error (context, ERROR_FAILED, "copying file '%s' to '%s' failed: %s", filename, dest_path, error ? error->message : "unknown reason");
g_file_delete (dest, NULL, NULL);
return;
@@ -2124,7 +2134,7 @@ user_set_icon_file (AccountsUser *auser,
GDBusMethodInvocation *context,
const gchar *filename)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
int uid;
const gchar *action_id;
@@ -2144,7 +2154,7 @@ user_set_icon_file (AccountsUser *auser,
user_change_icon_file_authorized_cb,
context,
g_strdup (filename),
- (GDestroyNotify)g_free);
+ (GDestroyNotify) g_free);
return TRUE;
}
@@ -2157,7 +2167,8 @@ user_change_locked_authorized_cb (Daemon *daemon,
{
gboolean locked = GPOINTER_TO_INT (data);
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
const gchar *argv[5];
if (accounts_user_get_locked (ACCOUNTS_USER (user)) != locked) {
@@ -2180,25 +2191,25 @@ user_change_locked_authorized_cb (Daemon *daemon,
accounts_user_set_locked (ACCOUNTS_USER (user), locked);
if (accounts_user_get_automatic_login (ACCOUNTS_USER (user))) {
- User *automatic_login_user;
-
- automatic_login_user = daemon_local_get_automatic_login_user (daemon);
- if (accounts_user_get_locked (ACCOUNTS_USER (user))) {
- /* If automatic login is enabled for the user then
- * disable it in the config file, but keep the state
- * attached to the user unharmed so it can be restored
- * later in the session
- */
- if (user == automatic_login_user) {
- daemon_local_set_automatic_login (daemon, user, FALSE, NULL);
- accounts_user_set_automatic_login (ACCOUNTS_USER (user), TRUE);
- }
- } else {
- if (automatic_login_user == NULL) {
- accounts_user_set_automatic_login (ACCOUNTS_USER (user), FALSE);
- daemon_local_set_automatic_login (daemon, user, TRUE, NULL);
- }
- }
+ User *automatic_login_user;
+
+ automatic_login_user = daemon_local_get_automatic_login_user (daemon);
+ if (accounts_user_get_locked (ACCOUNTS_USER (user))) {
+ /* If automatic login is enabled for the user then
+ * disable it in the config file, but keep the state
+ * attached to the user unharmed so it can be restored
+ * later in the session
+ */
+ if (user == automatic_login_user) {
+ daemon_local_set_automatic_login (daemon, user, FALSE, NULL);
+ accounts_user_set_automatic_login (ACCOUNTS_USER (user), TRUE);
+ }
+ } else {
+ if (automatic_login_user == NULL) {
+ accounts_user_set_automatic_login (ACCOUNTS_USER (user), FALSE);
+ daemon_local_set_automatic_login (daemon, user, TRUE, NULL);
+ }
+ }
}
accounts_user_emit_changed (ACCOUNTS_USER (user));
@@ -2214,7 +2225,8 @@ user_set_locked (AccountsUser *auser,
GDBusMethodInvocation *context,
gboolean locked)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
+
daemon_local_check_auth (user->daemon,
user,
"org.freedesktop.accounts.user-administration",
@@ -2234,11 +2246,13 @@ user_change_account_type_authorized_cb (Daemon *daemon,
{
AccountType account_type = GPOINTER_TO_INT (data);
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
gid_t *groups;
gint ngroups;
- g_autoptr(GString) str = NULL;
- g_auto(GStrv) extra_admin_groups = NULL;
+
+ g_autoptr (GString) str = NULL;
+ g_auto (GStrv) extra_admin_groups = NULL;
g_autofree gid_t *extra_admin_groups_gids = NULL;
gsize n_extra_admin_groups_gids = 0;
gid_t admin_gid;
@@ -2265,17 +2279,19 @@ user_change_account_type_authorized_cb (Daemon *daemon,
if (groups[i] == admin_gid)
group_is_admin = TRUE;
- for (gsize j = 0; j < n_extra_admin_groups_gids; j++)
+ for (gsize j = 0; j < n_extra_admin_groups_gids; j++) {
if (groups[i] == extra_admin_groups_gids[j])
group_is_admin = TRUE;
+ }
if (!group_is_admin)
g_string_append_printf (str, "%d,", groups[i]);
}
switch (account_type) {
case ACCOUNT_TYPE_ADMINISTRATOR:
- for (i = 0; i < n_extra_admin_groups_gids; i++)
+ for (i = 0; i < n_extra_admin_groups_gids; i++) {
g_string_append_printf (str, "%d,", extra_admin_groups_gids[i]);
+ }
g_string_append_printf (str, "%d", admin_gid);
break;
@@ -2315,7 +2331,8 @@ user_set_account_type (AccountsUser *auser,
GDBusMethodInvocation *context,
gint account_type)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
+
if (account_type < 0 || account_type > ACCOUNT_TYPE_LAST) {
throw_error (context, ERROR_FAILED, "unknown account type: %d", account_type);
return TRUE;
@@ -2340,7 +2357,8 @@ user_change_password_mode_authorized_cb (Daemon *daemon,
{
PasswordMode mode = GPOINTER_TO_INT (data);
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
const gchar *argv[6];
if (((PasswordMode) accounts_user_get_password_mode (ACCOUNTS_USER (user))) != mode) {
@@ -2354,7 +2372,6 @@ user_change_password_mode_authorized_cb (Daemon *daemon,
if (mode == PASSWORD_MODE_SET_AT_LOGIN ||
mode == PASSWORD_MODE_NONE) {
-
argv[0] = "/usr/bin/passwd";
argv[1] = "-d";
argv[2] = "--";
@@ -2386,8 +2403,7 @@ user_change_password_mode_authorized_cb (Daemon *daemon,
* unlocking the account
*/
accounts_user_set_locked (ACCOUNTS_USER (user), FALSE);
- }
- else if (accounts_user_get_locked (ACCOUNTS_USER (user))) {
+ } else if (accounts_user_get_locked (ACCOUNTS_USER (user))) {
argv[0] = "/usr/sbin/usermod";
argv[1] = "-U";
argv[2] = "--";
@@ -2417,7 +2433,7 @@ user_set_password_mode (AccountsUser *auser,
GDBusMethodInvocation *context,
gint mode)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
const gchar *action_id;
gint uid;
@@ -2455,7 +2471,8 @@ user_change_password_authorized_cb (Daemon *daemon,
{
gchar **strings = data;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
const gchar *argv[6];
sys_log (context,
@@ -2501,7 +2518,7 @@ user_set_password (AccountsUser *auser,
const gchar *password,
const gchar *hint)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
gchar **data;
const gchar *action_id;
gint uid;
@@ -2527,9 +2544,9 @@ user_set_password (AccountsUser *auser,
user_change_password_authorized_cb,
context,
data,
- (GDestroyNotify)free_passwords);
+ (GDestroyNotify) free_passwords);
- memset ((char*)password, 0, strlen (password));
+ memset ((char *) password, 0, strlen (password));
return TRUE;
}
@@ -2561,7 +2578,7 @@ user_set_password_hint (AccountsUser *auser,
GDBusMethodInvocation *context,
const gchar *hint)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
int uid;
const gchar *action_id;
@@ -2581,7 +2598,7 @@ user_set_password_hint (AccountsUser *auser,
user_change_password_hint_authorized_cb,
context,
g_strdup (hint),
- (GDestroyNotify)g_free);
+ (GDestroyNotify) g_free);
return TRUE;
}
@@ -2593,7 +2610,8 @@ user_change_automatic_login_authorized_cb (Daemon *daemon,
gpointer data)
{
gboolean enabled = GPOINTER_TO_INT (data);
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
sys_log (context,
"%s automatic login for user '%s' (%d)",
@@ -2619,7 +2637,8 @@ user_set_automatic_login (AccountsUser *auser,
GDBusMethodInvocation *context,
gboolean enabled)
{
- User *user = (User*)auser;
+ User *user = (User *) auser;
+
daemon_local_check_auth (user->daemon,
user,
"org.freedesktop.accounts.user-administration",
@@ -2639,7 +2658,7 @@ user_finalize (GObject *object)
user = USER (object);
if (user->changed_timeout_id != 0)
- g_source_remove (user->changed_timeout_id);
+ g_source_remove (user->changed_timeout_id);
g_clear_pointer (&user->keyfile, g_key_file_unref);
diff --git a/src/user.h b/src/user.h
index 7e482ab..760a4eb 100644
--- a/src/user.h
+++ b/src/user.h
@@ -34,13 +34,15 @@
#define USER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), TYPE_USER, User))
#define IS_USER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), TYPE_USER))
-typedef enum {
+typedef enum
+{
ACCOUNT_TYPE_STANDARD,
ACCOUNT_TYPE_ADMINISTRATOR,
#define ACCOUNT_TYPE_LAST ACCOUNT_TYPE_ADMINISTRATOR
} AccountType;
-typedef enum {
+typedef enum
+{
PASSWORD_MODE_REGULAR,
PASSWORD_MODE_SET_AT_LOGIN,
PASSWORD_MODE_NONE,
@@ -49,33 +51,33 @@ typedef enum {
/* local methods */
-GType user_get_type (void) G_GNUC_CONST;
-User * user_new (Daemon *daemon,
- uid_t uid);
+GType user_get_type (void) G_GNUC_CONST;
+User * user_new (Daemon *daemon,
+ uid_t uid);
-void user_update_from_pwent (User *user,
- struct passwd *pwent,
- struct spwd *spent);
-void user_update_from_cache (User *user);
-void user_update_local_account_property (User *user,
- gboolean local);
-void user_update_system_account_property (User *user,
- gboolean system);
-gboolean user_get_cached (User *user);
-void user_set_cached (User *user,
- gboolean cached);
-void user_set_saved (User *user,
- gboolean saved);
+void user_update_from_pwent (User *user,
+ struct passwd *pwent,
+ struct spwd *spent);
+void user_update_from_cache (User *user);
+void user_update_local_account_property (User *user,
+ gboolean local);
+void user_update_system_account_property (User *user,
+ gboolean system);
+gboolean user_get_cached (User *user);
+void user_set_cached (User *user,
+ gboolean cached);
+void user_set_saved (User *user,
+ gboolean saved);
-void user_register (User *user);
-void user_unregister (User *user);
-void user_changed (User *user);
+void user_register (User *user);
+void user_unregister (User *user);
+void user_changed (User *user);
-void user_save (User *user);
+void user_save (User *user);
-const gchar * user_get_user_name (User *user);
-gboolean user_get_system_account (User *user);
-gboolean user_get_local_account (User *user);
-const gchar * user_get_object_path (User *user);
-uid_t user_get_uid (User *user);
-const gchar * user_get_shell (User *user);
+const gchar * user_get_user_name (User *user);
+gboolean user_get_system_account (User *user);
+gboolean user_get_local_account (User *user);
+const gchar * user_get_object_path (User *user);
+uid_t user_get_uid (User *user);
+const gchar * user_get_shell (User *user);
diff --git a/src/util.c b/src/util.c
index 0994401..c8ba4cd 100644
--- a/src/util.c
+++ b/src/util.c
@@ -41,7 +41,8 @@ get_cmdline_of_pid (GPid pid)
g_autofree gchar *filename = NULL;
g_autofree gchar *contents = NULL;
gsize contents_len;
- g_autoptr(GError) error = NULL;
+
+ g_autoptr (GError) error = NULL;
guint n;
filename = g_strdup_printf ("/proc/%d/cmdline", (int) pid);
@@ -70,8 +71,8 @@ static gboolean
get_caller_pid (GDBusMethodInvocation *context,
GPid *pid)
{
- g_autoptr(GVariant) reply = NULL;
- g_autoptr(GError) error = NULL;
+ g_autoptr (GVariant) reply = NULL;
+ g_autoptr (GError) error = NULL;
guint32 pid_as_int;
reply = g_dbus_connection_call_sync (g_dbus_method_invocation_get_connection (context),
@@ -103,7 +104,7 @@ get_caller_pid (GDBusMethodInvocation *context,
void
sys_log (GDBusMethodInvocation *context,
const gchar *format,
- ...)
+ ...)
{
va_list args;
g_autofree gchar *msg = NULL;
@@ -159,7 +160,7 @@ static gboolean
compat_check_exit_status (int estatus,
GError **error)
{
-#if GLIB_CHECK_VERSION(2, 33, 12)
+#if GLIB_CHECK_VERSION (2, 33, 12)
return g_spawn_check_exit_status (estatus, error);
#else
if (!WIFEXITED (estatus)) {
@@ -174,7 +175,7 @@ compat_check_exit_status (int estatus,
G_SPAWN_ERROR,
G_SPAWN_ERROR_FAILED,
"Exited with code %d",
- WEXITSTATUS(estatus));
+ WEXITSTATUS (estatus));
return FALSE;
}
return TRUE;
@@ -182,26 +183,26 @@ compat_check_exit_status (int estatus,
}
gboolean
-spawn_sync (const gchar *argv[],
- GError **error)
+spawn_sync (const gchar *argv[],
+ GError **error)
{
gboolean ret = FALSE;
gint status;
- if (!g_spawn_sync (NULL, (gchar**) argv, NULL, 0, NULL, NULL, NULL, NULL, &status, error))
+ if (!g_spawn_sync (NULL, (gchar **) argv, NULL, 0, NULL, NULL, NULL, NULL, &status, error))
goto out;
if (!compat_check_exit_status (status, error))
goto out;
ret = TRUE;
- out:
+out:
return ret;
}
gint
-get_user_groups (const gchar *user,
- gid_t group,
- gid_t **groups)
+get_user_groups (const gchar *user,
+ gid_t group,
+ gid_t **groups)
{
gint res;
gint ngroups;
@@ -239,7 +240,7 @@ get_admin_groups (gid_t *admin_gid_out,
gid_t **groups_out,
gsize *n_groups_out)
{
- g_auto(GStrv) extra_admin_groups = NULL;
+ g_auto (GStrv) extra_admin_groups = NULL;
g_autofree gid_t *extra_admin_groups_gids = NULL;
gsize n_extra_admin_groups_gids = 0;
gsize i;
@@ -292,8 +293,8 @@ gboolean
get_caller_uid (GDBusMethodInvocation *context,
gint *uid)
{
- g_autoptr(GVariant) reply = NULL;
- g_autoptr(GError) error = NULL;
+ g_autoptr (GVariant) reply = NULL;
+ g_autoptr (GError) error = NULL;
reply = g_dbus_connection_call_sync (g_dbus_method_invocation_get_connection (context),
"org.freedesktop.DBus",
@@ -325,18 +326,18 @@ get_caller_uid (GDBusMethodInvocation *context,
*/
enum
{
- COMPONENT_CODESET = 1 << 0,
+ COMPONENT_CODESET = 1 << 0,
COMPONENT_TERRITORY = 1 << 1,
- COMPONENT_MODIFIER = 1 << 2,
- COMPONENT_LANGUAGE = 1 << 3,
+ COMPONENT_MODIFIER = 1 << 2,
+ COMPONENT_LANGUAGE = 1 << 3,
};
/* Returns TRUE if value was non-empty */
static gboolean
-match_info_fetch_named_non_empty (GMatchInfo *match_info,
- const char *match_name,
- char **variable)
+match_info_fetch_named_non_empty (GMatchInfo *match_info,
+ const char *match_name,
+ char **variable)
{
g_autofree char *value = NULL;
@@ -349,14 +350,14 @@ match_info_fetch_named_non_empty (GMatchInfo *match_info,
}
static guint
-explode_locale (const gchar *locale,
- gchar **language,
- gchar **territory,
- gchar **codeset,
- gchar **modifier)
+explode_locale (const gchar *locale,
+ gchar **language,
+ gchar **territory,
+ gchar **codeset,
+ gchar **modifier)
{
- g_autoptr(GRegex) regex = NULL;
- g_autoptr(GMatchInfo) match_info = NULL;
+ g_autoptr (GRegex) regex = NULL;
+ g_autoptr (GMatchInfo) match_info = NULL;
guint mask = 0;
if (locale == NULL)
@@ -387,7 +388,7 @@ explode_locale (const gchar *locale,
gboolean
verify_xpg_locale (const char *locale)
{
- return (explode_locale (locale, NULL, NULL, NULL, NULL) & COMPONENT_LANGUAGE);
+ return explode_locale (locale, NULL, NULL, NULL, NULL) & COMPONENT_LANGUAGE;
}
gboolean
@@ -405,8 +406,8 @@ static char *icondir = NULL;
void
init_dirs (void)
{
- if (getuid() != 0 &&
- geteuid() != 0 &&
+ if (getuid () != 0 &&
+ geteuid () != 0 &&
g_getenv ("ROOTDIR") != NULL) {
userdir = g_build_filename (g_getenv ("ROOTDIR"), USERDIR, NULL);
icondir = g_build_filename (g_getenv ("ROOTDIR"), ICONDIR, NULL);
@@ -442,5 +443,5 @@ get_sysconfdir (void)
const char *
get_icondir (void)
{
- return icondir;
+ return icondir;
}
diff --git a/src/util.h b/src/util.h
index cc46f3e..43e080b 100644
--- a/src/util.h
+++ b/src/util.h
@@ -25,23 +25,24 @@
void sys_log (GDBusMethodInvocation *context,
const gchar *format,
- ...);
+ ...);
-gboolean get_caller_uid (GDBusMethodInvocation *context, gint *uid);
+gboolean get_caller_uid (GDBusMethodInvocation *context,
+ gint *uid);
-gboolean spawn_sync (const gchar *argv[],
- GError **error);
+gboolean spawn_sync (const gchar *argv[],
+ GError **error);
gboolean get_admin_groups (gid_t *admin_gid_out,
gid_t **groups_out,
gsize *n_groups_out);
-gint get_user_groups (const gchar *username,
- gid_t group,
- gid_t **groups);
+gint get_user_groups (const gchar *username,
+ gid_t group,
+ gid_t **groups);
gboolean verify_xpg_locale (const char *locale);
-gboolean verify_locale (const char *locale);
+gboolean verify_locale (const char *locale);
void init_dirs (void);
void free_dirs (void);
diff --git a/src/wtmp-helper.c b/src/wtmp-helper.c
index 01caa2e..1e3b942 100644
--- a/src/wtmp-helper.c
+++ b/src/wtmp-helper.c
@@ -29,16 +29,18 @@
#include <utmpx.h>
-typedef struct {
+typedef struct
+{
guint64 frequency;
- gint64 time;
- GList *previous_logins;
+ gint64 time;
+ GList *previous_logins;
} UserAccounting;
-typedef struct {
- gchar *id;
- gint64 login_time;
- gint64 logout_time;
+typedef struct
+{
+ gchar *id;
+ gint64 login_time;
+ gint64 logout_time;
} UserPreviousLogin;
static void
@@ -52,20 +54,20 @@ static gboolean
wtmp_helper_start (void)
{
#if defined(HAVE_SETUTXDB)
- if (setutxdb (UTXDB_LOG, NULL) != 0) {
- return FALSE;
- }
+ if (setutxdb (UTXDB_LOG, NULL) != 0) {
+ return FALSE;
+ }
#elif defined(PATH_WTMP)
- if (utmpxname (PATH_WTMP) != 0) {
- return FALSE;
- }
+ if (utmpxname (PATH_WTMP) != 0) {
+ return FALSE;
+ }
- setutxent ();
+ setutxent ();
#else
#error You have utmpx.h, but no known way to use it for wtmp entries
#endif
- return TRUE;
+ return TRUE;
}
void
@@ -87,7 +89,7 @@ wtmp_helper_update_login_frequencies (GHashTable *users)
logout_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
while ((wtmp_entry = getutxent ())) {
- UserAccounting *accounting;
+ UserAccounting *accounting;
UserPreviousLogin *previous_login;
gboolean shutdown_or_reboot = FALSE;
@@ -157,11 +159,11 @@ wtmp_helper_update_login_frequencies (GHashTable *users)
g_hash_table_iter_init (&iter, login_hash);
while (g_hash_table_iter_next (&iter, &key, &value)) {
- UserAccounting *accounting = (UserAccounting *) value;
+ UserAccounting *accounting = (UserAccounting *) value;
UserPreviousLogin *previous_login;
- gboolean changed = FALSE;
- guint64 old_login_frequency;
- guint64 old_login_time;
+ gboolean changed = FALSE;
+ guint64 old_login_frequency;
+ guint64 old_login_time;
user = g_hash_table_lookup (users, key);
if (user == NULL) {
diff --git a/src/wtmp-helper.h b/src/wtmp-helper.h
index ff076ef..9cb7521 100644
--- a/src/wtmp-helper.h
+++ b/src/wtmp-helper.h
@@ -26,5 +26,5 @@
#include <shadow.h>
#endif
-const gchar * wtmp_helper_get_path_for_monitor (void);
-void wtmp_helper_update_login_frequencies (GHashTable *users);
+const gchar * wtmp_helper_get_path_for_monitor (void);
+void wtmp_helper_update_login_frequencies (GHashTable *users);
diff --git a/tests/util.c b/tests/util.c
index abfc03e..b166d10 100644
--- a/tests/util.c
+++ b/tests/util.c
@@ -8,7 +8,7 @@ main (int argc,
{
guint i;
- setlocale(LC_ALL, "C.UTF-8");
+ setlocale (LC_ALL, "C.UTF-8");
if (argc > 1) {
for (i = 1; i < argc; i++) {
@@ -33,36 +33,37 @@ main (int argc,
return 0;
}
- struct {
+ struct
+ {
const char *locale;
const char *lang;
const char *territory;
const char *codeset;
const char *modifier;
} tests[] = {
- { "en", "en", NULL, NULL, NULL },
- { "en_GB", "en", "GB", NULL, NULL },
- { "en_GB.UTF-8", "en", "GB", "UTF-8", NULL },
- { "en_GB.UTF-8@latin", "en", "GB", "UTF-8", "latin" },
- { "en_GB@latin", "en", "GB", NULL, "latin" },
- { "en_GB.iso8859-1", "en", "GB", "iso8859-1", NULL },
- { "1234", NULL, NULL, NULL, NULL },
- { "Test Language 1", NULL, NULL, NULL, NULL },
- { "en_GB.UTF-8@latin WOOP", NULL, NULL, NULL, NULL },
- { "ace", "ace", NULL, NULL, NULL },
- { "be@latin", "be", NULL, NULL, "latin" },
- { "ca.us-ascii", "ca", NULL, "us-ascii", NULL },
- { "cs.cp1250", "cs", NULL, "cp1250", NULL },
- { "_GB.UTF-8", NULL, NULL, NULL, NULL },
+ { "en", "en", NULL, NULL, NULL },
+ { "en_GB", "en", "GB", NULL, NULL },
+ { "en_GB.UTF-8", "en", "GB", "UTF-8", NULL },
+ { "en_GB.UTF-8@latin", "en", "GB", "UTF-8", "latin" },
+ { "en_GB@latin", "en", "GB", NULL, "latin" },
+ { "en_GB.iso8859-1", "en", "GB", "iso8859-1", NULL },
+ { "1234", NULL, NULL, NULL, NULL },
+ { "Test Language 1", NULL, NULL, NULL, NULL },
+ { "en_GB.UTF-8@latin WOOP", NULL, NULL, NULL, NULL },
+ { "ace", "ace", NULL, NULL, NULL },
+ { "be@latin", "be", NULL, NULL, "latin" },
+ { "ca.us-ascii", "ca", NULL, "us-ascii", NULL },
+ { "cs.cp1250", "cs", NULL, "cp1250", NULL },
+ { "_GB.UTF-8", NULL, NULL, NULL, NULL },
/* qaa-qtz is a fake locale erroneously generated by some
* downstream distributions because of a mistaken entry
* shipped in iso-codes. The ISO 639.2 registration authority
* intended all codes starting with "q" less than "qu" to be
* reserved for local use. Ensure the fake locale isn't
* allowed. */
- { "qaa-qtz", NULL, NULL, NULL, NULL },
- { "ru_RU.KOI8-R", "ru", "RU", "KOI8-R", NULL },
- { "", NULL, NULL, NULL, NULL },
+ { "qaa-qtz", NULL, NULL, NULL, NULL },
+ { "ru_RU.KOI8-R", "ru", "RU", "KOI8-R", NULL },
+ { "", NULL, NULL, NULL, NULL },
{ NULL },
};