summaryrefslogtreecommitdiff
path: root/src/providers/krb5/krb5_init_shared.c
diff options
context:
space:
mode:
authorAriel Barria <olivares73@hotmail.com>2013-03-27 16:04:06 -0500
committerJakub Hrozek <jhrozek@redhat.com>2013-04-03 13:33:21 +0200
commit1b171c456ff901ab622e44bcfd213f7de86fd787 (patch)
treef49fb1ce63ed83e75c658fba34535a81a06553f6 /src/providers/krb5/krb5_init_shared.c
parent274fe6a4f8bcb23e31929430110c0b52e9ce233a (diff)
downloadsssd-1b171c456ff901ab622e44bcfd213f7de86fd787.tar.gz
sssd-1b171c456ff901ab622e44bcfd213f7de86fd787.tar.bz2
sssd-1b171c456ff901ab622e44bcfd213f7de86fd787.zip
Allow setting krb5_renew_interval with a delimiter
https://fedorahosted.org/sssd/ticket/902 changed the data type the krb5_renew_interval to string. function krb5_string_to_deltat is used to convert and allow delimiters
Diffstat (limited to 'src/providers/krb5/krb5_init_shared.c')
-rw-r--r--src/providers/krb5/krb5_init_shared.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/providers/krb5/krb5_init_shared.c b/src/providers/krb5/krb5_init_shared.c
index 0dac5fa6..c9eec2f8 100644
--- a/src/providers/krb5/krb5_init_shared.c
+++ b/src/providers/krb5/krb5_init_shared.c
@@ -30,7 +30,9 @@ errno_t krb5_child_init(struct krb5_ctx *krb5_auth_ctx,
{
errno_t ret;
FILE *debug_filep;
- time_t renew_intv;
+ time_t renew_intv = 0;
+ krb5_deltat renew_interval_delta;
+ char *renew_interval_str;
if (dp_opt_get_bool(krb5_auth_ctx->opts, KRB5_STORE_PASSWORD_IF_OFFLINE)) {
ret = init_delayed_online_authentication(krb5_auth_ctx, bectx,
@@ -40,8 +42,18 @@ errno_t krb5_child_init(struct krb5_ctx *krb5_auth_ctx,
goto done;
}
}
+ renew_interval_str = dp_opt_get_string(krb5_auth_ctx->opts,
+ KRB5_RENEW_INTERVAL);
+ if (renew_interval_str != NULL) {
+ ret = krb5_string_to_deltat(renew_interval_str, &renew_interval_delta);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_MINOR_FAILURE,
+ ("Reading krb5_renew_interval failed.\n"));
+ renew_interval_delta = 0;
+ }
+ renew_intv = renew_interval_delta;
+ }
- renew_intv = dp_opt_get_int(krb5_auth_ctx->opts, KRB5_RENEW_INTERVAL);
if (renew_intv > 0) {
ret = init_renew_tgt(krb5_auth_ctx, bectx, bectx->ev, renew_intv);
if (ret != EOK) {