diff options
Diffstat (limited to 'source4/auth/credentials/credentials.c')
-rw-r--r-- | source4/auth/credentials/credentials.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/source4/auth/credentials/credentials.c b/source4/auth/credentials/credentials.c index ee90c8228a..66b6c120cf 100644 --- a/source4/auth/credentials/credentials.c +++ b/source4/auth/credentials/credentials.c @@ -639,3 +639,24 @@ BOOL cli_credentials_is_anonymous(struct cli_credentials *cred) return False; } + +/** + * Mark the current password for a credentials struct as wrong. This will + * cause the password to be prompted again (if a callback is set). + * + * This will decremebt the number of times the password can be tried. + * + * @retval whether the credentials struct is finished + */ +BOOL cli_credentials_wrong_password(struct cli_credentials *cred) +{ + if (cred->password_obtained != CRED_CALLBACK_RESULT) { + return False; + } + + cred->password_obtained = CRED_CALLBACK; + + cred->tries--; + + return (cred->tries > 0); +} |