diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2008-03-07 18:03:54 +0100 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2008-03-07 18:03:54 +0100 |
commit | fc2cd5ed638b7b3b0ab2cef21ba032d7d958a0c2 (patch) | |
tree | c343b97a8c16fcacd7703adcf4ee6f84fa7ee2a1 /source4/dsdb/common/util.c | |
parent | 5a5b50f3dd7d75214184f711c35a7536b64cbbe7 (diff) | |
parent | 97a272a4bf1178c1adcc5761d162b74c338dd230 (diff) | |
download | samba-fc2cd5ed638b7b3b0ab2cef21ba032d7d958a0c2.tar.gz samba-fc2cd5ed638b7b3b0ab2cef21ba032d7d958a0c2.tar.bz2 samba-fc2cd5ed638b7b3b0ab2cef21ba032d7d958a0c2.zip |
Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into v4-0-gmake3
(This used to be commit e4da851bd7e7620bbf99efe20a496b1be78ba4e2)
Diffstat (limited to 'source4/dsdb/common/util.c')
-rw-r--r-- | source4/dsdb/common/util.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/source4/dsdb/common/util.c b/source4/dsdb/common/util.c index ace5e0edaf..88c8afd6cc 100644 --- a/source4/dsdb/common/util.c +++ b/source4/dsdb/common/util.c @@ -434,6 +434,30 @@ NTTIME samdb_result_nttime(struct ldb_message *msg, const char *attr, NTTIME def } /* + * Windows uses both 0 and 9223372036854775807 (0x7FFFFFFFFFFFFFFFULL) to + * indicate an account doesn't expire. + * + * When Windows initially creates an account, it sets + * accountExpires = 9223372036854775807 (0x7FFFFFFFFFFFFFFF). However, + * when changing from an account having a specific expiration date to + * that account never expiring, it sets accountExpires = 0. + * + * Consolidate that logic here to allow clearer logic for account expiry in + * the rest of the code. + */ +NTTIME samdb_result_account_expires(struct ldb_message *msg, + NTTIME default_value) +{ + NTTIME ret = ldb_msg_find_attr_as_uint64(msg, "accountExpires", + default_value); + + if (ret == (NTTIME)0) + ret = 0x7FFFFFFFFFFFFFFFULL; + + return ret; +} + +/* pull a uint64_t from a result set. */ uint64_t samdb_result_uint64(struct ldb_message *msg, const char *attr, uint64_t default_value) @@ -493,7 +517,7 @@ NTTIME samdb_result_force_password_change(struct ldb_context *sam_ldb, maxPwdAge = samdb_search_int64(sam_ldb, mem_ctx, 0, domain_dn, "maxPwdAge", NULL); if (maxPwdAge == 0) { - return 0; + return 0x7FFFFFFFFFFFFFFFULL; } else { attr_time -= maxPwdAge; } |