summaryrefslogtreecommitdiffstats
path: root/login-utils/logindefs.c
diff options
context:
space:
mode:
authorKarel Zak2016-10-13 14:22:52 +0200
committerKarel Zak2017-09-18 11:48:56 +0200
commit832f5cd5241e14cf85ae9a40e99636a713ec4859 (patch)
treeda847a5ea9d54b912b7801b025e5dc5db17cdab4 /login-utils/logindefs.c
parentsu: cosmetic changes after indent (diff)
downloadkernel-qcow2-util-linux-832f5cd5241e14cf85ae9a40e99636a713ec4859.tar.gz
kernel-qcow2-util-linux-832f5cd5241e14cf85ae9a40e99636a713ec4859.tar.xz
kernel-qcow2-util-linux-832f5cd5241e14cf85ae9a40e99636a713ec4859.zip
su: add control struct
* setup logindefs loader by function rather than by global pointer * move basic booleans to the su_context struct Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'login-utils/logindefs.c')
-rw-r--r--login-utils/logindefs.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/login-utils/logindefs.c b/login-utils/logindefs.c
index 213ff8d25..ebf1a9f3a 100644
--- a/login-utils/logindefs.c
+++ b/login-utils/logindefs.c
@@ -48,7 +48,8 @@ struct item {
static struct item *list = NULL;
-void (*logindefs_load_defaults)(void) = NULL;
+static void (*logindefs_loader)(void *) = NULL;
+static void *logindefs_loader_data = NULL;
void free_getlogindefs_data(void)
{
@@ -144,10 +145,16 @@ void logindefs_load_file(const char *filename)
fclose(f);
}
+void logindefs_set_loader(void (*loader)(void *data), void *data)
+{
+ logindefs_loader = loader;
+ logindefs_loader_data = data;
+}
+
static void load_defaults(void)
{
- if (logindefs_load_defaults)
- logindefs_load_defaults();
+ if (logindefs_loader)
+ logindefs_loader(logindefs_loader_data);
else
logindefs_load_file(_PATH_LOGINDEFS);
}