summaryrefslogtreecommitdiff
path: root/src/providers/krb5/krb5_common.c
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2010-11-18 12:48:05 +0100
committerStephen Gallagher <sgallagh@redhat.com>2010-12-07 17:09:19 -0500
commit5843ad321944a028f6dee7e1fd4f9381c4953d07 (patch)
treefe7087c3ebb948e0269ef613a1cea06111c2cfc3 /src/providers/krb5/krb5_common.c
parent263c8d47ca21d3bacd77266613fcc7baab988465 (diff)
downloadsssd-5843ad321944a028f6dee7e1fd4f9381c4953d07.tar.gz
sssd-5843ad321944a028f6dee7e1fd4f9381c4953d07.tar.bz2
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.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/providers/krb5/krb5_common.c b/src/providers/krb5/krb5_common.c
index 43535c1e..25188c5f 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"));