summaryrefslogtreecommitdiff
path: root/source4/auth/auth.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2006-07-27 11:24:18 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:10:25 -0500
commite8623667d32f717b0b746e5041500bd0ee6b3ae8 (patch)
treed789a33d4bf6f41b6e525478fe943b387500de2b /source4/auth/auth.c
parent28b8ec0156e99d7bddc2aa243f6631a66c94a078 (diff)
downloadsamba-e8623667d32f717b0b746e5041500bd0ee6b3ae8.tar.gz
samba-e8623667d32f717b0b746e5041500bd0ee6b3ae8.tar.bz2
samba-e8623667d32f717b0b746e5041500bd0ee6b3ae8.zip
r17270: split the logic of saying this auth backend wants to handle this
request from the password checking. This will help to make the password checking hook async later metze (This used to be commit 5b26cbc3428b4c186235cc08c9ace1c23f59dd7f)
Diffstat (limited to 'source4/auth/auth.c')
-rw-r--r--source4/auth/auth.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/source4/auth/auth.c b/source4/auth/auth.c
index dfef0c8c4d..0b044af495 100644
--- a/source4/auth/auth.c
+++ b/source4/auth/auth.c
@@ -174,16 +174,20 @@ NTSTATUS auth_check_password(struct auth_context *auth_ctx,
for (method = auth_ctx->methods; method; method = method->next) {
NTSTATUS result;
- result = method->ops->check_password(method, mem_ctx, user_info, server_info);
-
- /* check if the module did anything */
- if (!NT_STATUS_EQUAL(result, NT_STATUS_NOT_IMPLEMENTED)) {
- method_name = method->ops->name;
- nt_status = result;
- break;
+ /* check if the module wants to chek the password */
+ result = method->ops->want_check(method, mem_ctx, user_info);
+ if (NT_STATUS_EQUAL(result, NT_STATUS_NOT_IMPLEMENTED)) {
+ DEBUG(11,("auth_check_password: %s had nothing to say\n", method->ops->name));
+ continue;
}
- DEBUG(11,("auth_check_password: %s had nothing to say\n", method->ops->name));
+ method_name = method->ops->name;
+ nt_status = result;
+
+ if (!NT_STATUS_IS_OK(nt_status)) break;
+
+ nt_status = method->ops->check_password(method, mem_ctx, user_info, server_info);
+ break;
}
if (!NT_STATUS_IS_OK(nt_status)) {