diff options
author | Sumit Bose <sbose@redhat.com> | 2010-11-18 12:48:05 +0100 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2010-12-07 17:09:19 -0500 |
commit | 5843ad321944a028f6dee7e1fd4f9381c4953d07 (patch) | |
tree | fe7087c3ebb948e0269ef613a1cea06111c2cfc3 /src/providers/krb5/krb5_common.c | |
parent | 263c8d47ca21d3bacd77266613fcc7baab988465 (diff) | |
download | sssd-5843ad321944a028f6dee7e1fd4f9381c4953d07.tar.gz sssd-5843ad321944a028f6dee7e1fd4f9381c4953d07.tar.xz sssd-5843ad321944a028f6dee7e1fd4f9381c4953d07.zip |
Add support for FAST in krb5 provider
Diffstat (limited to 'src/providers/krb5/krb5_common.c')
-rw-r--r-- | src/providers/krb5/krb5_common.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/providers/krb5/krb5_common.c b/src/providers/krb5/krb5_common.c index 43535c1ed..25188c5f8 100644 --- a/src/providers/krb5/krb5_common.c +++ b/src/providers/krb5/krb5_common.c @@ -43,7 +43,8 @@ struct dp_option default_krb5_opts[] = { { "krb5_store_password_if_offline", DP_OPT_BOOL, BOOL_FALSE, BOOL_FALSE }, { "krb5_renewable_lifetime", DP_OPT_STRING, NULL_STRING, NULL_STRING }, { "krb5_lifetime", DP_OPT_STRING, NULL_STRING, NULL_STRING }, - { "krb5_renew_interval", DP_OPT_NUMBER, NULL_NUMBER, NULL_NUMBER } + { "krb5_renew_interval", DP_OPT_NUMBER, NULL_NUMBER, NULL_NUMBER }, + { "krb5_use_fast", DP_OPT_STRING, NULL_STRING, NULL_STRING } }; errno_t check_and_export_lifetime(struct dp_option *opts, const int opt_id, @@ -100,11 +101,13 @@ done: errno_t check_and_export_options(struct dp_option *opts, - struct sss_domain_info *dom) + struct sss_domain_info *dom, + struct krb5_ctx *krb5_ctx) { int ret; const char *realm; const char *dummy; + char *use_fast_str; realm = dp_opt_get_cstring(opts, KRB5_REALM); if (realm == NULL) { @@ -138,6 +141,23 @@ errno_t check_and_export_options(struct dp_option *opts, return ret; } + + use_fast_str = dp_opt_get_string(opts, KRB5_USE_FAST); + if (use_fast_str != NULL) { + ret = check_fast(use_fast_str, &krb5_ctx->use_fast); + if (ret != EOK) { + DEBUG(1, ("check_fast failed.\n")); + return ret; + } + + if (krb5_ctx->use_fast) { + ret = setenv(SSSD_KRB5_USE_FAST, use_fast_str, 1); + if (ret != EOK) { + DEBUG(2, ("setenv [%s] failed.\n", SSSD_KRB5_USE_FAST)); + } + } + } + dummy = dp_opt_get_cstring(opts, KRB5_KDC); if (dummy == NULL) { DEBUG(1, ("No KDC explicitly configured, using defaults.\n")); |