diff options
author | Stefan Metzmacher <metze@samba.org> | 2006-07-27 11:24:18 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:10:25 -0500 |
commit | e8623667d32f717b0b746e5041500bd0ee6b3ae8 (patch) | |
tree | d789a33d4bf6f41b6e525478fe943b387500de2b /source4/auth/auth.c | |
parent | 28b8ec0156e99d7bddc2aa243f6631a66c94a078 (diff) | |
download | samba-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.c | 20 |
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)) { |