diff options
author | Greg Hudson <ghudson@mit.edu> | 2013-06-14 01:55:27 -0400 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2013-06-27 02:00:51 -0400 |
commit | a6765ca3fa82fa9ac8045fb583d168c542b19585 (patch) | |
tree | 147e98011672984188b7924d205782cf04d4f28b /src | |
parent | e0a74797bd3a8395b81e68ecfa7ada6e2b4be4c6 (diff) | |
download | krb5-a6765ca3fa82fa9ac8045fb583d168c542b19585.tar.gz krb5-a6765ca3fa82fa9ac8045fb583d168c542b19585.tar.xz krb5-a6765ca3fa82fa9ac8045fb583d168c542b19585.zip |
Rely on module ordering for localauth
Register built-in localauth modules in the order we want them used by
default, and document accordingly.
ticket: 7665
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/krb5/os/localauth.c | 31 |
1 files changed, 6 insertions, 25 deletions
diff --git a/src/lib/krb5/os/localauth.c b/src/lib/krb5/os/localauth.c index e48b3a909..82fc1f950 100644 --- a/src/lib/krb5/os/localauth.c +++ b/src/lib/krb5/os/localauth.c @@ -100,18 +100,6 @@ check_conflict(krb5_context context, struct localauth_module_handle **list, return 0; } -/* If mod is in list, move it to the back. */ -static void -move_to_back(krb5_plugin_initvt_fn *list, krb5_plugin_initvt_fn mod) -{ - for (; *list != NULL && *list != mod; list++); - if (*list == NULL) - return; - for (; *list != NULL; list++) - *list = *(list + 1); - *(list - 1) = mod; -} - /* Get the registered localauth modules including all built-in modules, in the * proper order. */ static krb5_error_code @@ -123,18 +111,18 @@ get_modules(krb5_context context, krb5_plugin_initvt_fn **modules_out) *modules_out = NULL; /* Register built-in modules. */ - ret = k5_plugin_register(context, intf, "auth_to_local", - localauth_auth_to_local_initvt); + ret = k5_plugin_register(context, intf, "default", + localauth_default_initvt); if (ret) return ret; - ret = k5_plugin_register(context, intf, "names", localauth_names_initvt); + ret = k5_plugin_register(context, intf, "rule", localauth_rule_initvt); if (ret) return ret; - ret = k5_plugin_register(context, intf, "default", - localauth_default_initvt); + ret = k5_plugin_register(context, intf, "names", localauth_names_initvt); if (ret) return ret; - ret = k5_plugin_register(context, intf, "rule", localauth_rule_initvt); + ret = k5_plugin_register(context, intf, "auth_to_local", + localauth_auth_to_local_initvt); if (ret) return ret; ret = k5_plugin_register(context, intf, "k5login", @@ -149,13 +137,6 @@ get_modules(krb5_context context, krb5_plugin_initvt_fn **modules_out) if (ret) return ret; - /* Move built-in userok and untyped an2ln localauth modules to back so we - * try loaded modules first. */ - move_to_back(*modules_out, localauth_names_initvt); - move_to_back(*modules_out, localauth_auth_to_local_initvt); - move_to_back(*modules_out, localauth_k5login_initvt); - move_to_back(*modules_out, localauth_an2ln_initvt); - return 0; } |