diff options
author | Pavel Reichl <preichl@redhat.com> | 2015-03-16 06:38:43 -0400 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2015-03-23 12:06:59 +0100 |
commit | 0ec41ab7d3fbb021967de16ea000c69dcedf7cb5 (patch) | |
tree | 5eda4c22f19e5f6e696da1ce5b0974524a8a828e /src/providers/ldap | |
parent | 50b8a36b0932a510e825ed1ad8103f81ead2b7d8 (diff) | |
download | sssd-0ec41ab7d3fbb021967de16ea000c69dcedf7cb5.tar.gz sssd-0ec41ab7d3fbb021967de16ea000c69dcedf7cb5.tar.xz sssd-0ec41ab7d3fbb021967de16ea000c69dcedf7cb5.zip |
ldap: refactor check_pwexpire_kerberos to use util func
Refactor check_pwexpire_kerberos() to use utility function
sss_utc_to_time_t().
Modify test to handle new error code ERR_TIMESPEC_NOT_SUPPORTED
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src/providers/ldap')
-rw-r--r-- | src/providers/ldap/ldap_auth.c | 30 |
1 files changed, 6 insertions, 24 deletions
diff --git a/src/providers/ldap/ldap_auth.c b/src/providers/ldap/ldap_auth.c index 42899fd0e..6ee570bba 100644 --- a/src/providers/ldap/ldap_auth.c +++ b/src/providers/ldap/ldap_auth.c @@ -83,36 +83,18 @@ static errno_t check_pwexpire_kerberos(const char *expire_date, time_t now, struct pam_data *pd, int pwd_exp_warning) { - char *end; - struct tm tm; time_t expire_time; int expiration_warning; int ret = ERR_INTERNAL; - memset(&tm, 0, sizeof(tm)); - - end = strptime(expire_date, "%Y%m%d%H%M%SZ", &tm); - if (end == NULL) { - DEBUG(SSSDBG_CRIT_FAILURE, - "Kerberos expire date [%s] invalid.\n", expire_date); - return EINVAL; - } - if (*end != '\0') { - DEBUG(SSSDBG_CRIT_FAILURE, - "Kerberos expire date [%s] contains extra characters.\n", - expire_date); - return EINVAL; - } - - expire_time = mktime(&tm); - if (expire_time == -1) { - DEBUG(SSSDBG_CRIT_FAILURE, - "mktime failed to convert [%s].\n", expire_date); - return EINVAL; + ret = sss_utc_to_time_t(expire_date, "%Y%m%d%H%M%SZ", + &expire_time); + if (ret != EOK) { + DEBUG(SSSDBG_MINOR_FAILURE, "sss_utc_to_time_t failed with %d:%s.\n", + ret, sss_strerror(ret)); + return ret; } - tzset(); - expire_time -= timezone; DEBUG(SSSDBG_TRACE_ALL, "Time info: tzname[0] [%s] tzname[1] [%s] timezone [%ld] " "daylight [%d] now [%ld] expire_time [%ld].\n", tzname[0], |