diff options
author | Karel Zak | 2016-10-13 14:22:52 +0200 |
---|---|---|
committer | Karel Zak | 2017-09-18 11:48:56 +0200 |
commit | 832f5cd5241e14cf85ae9a40e99636a713ec4859 (patch) | |
tree | da847a5ea9d54b912b7801b025e5dc5db17cdab4 /login-utils/logindefs.c | |
parent | su: cosmetic changes after indent (diff) | |
download | kernel-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.c | 13 |
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); } |