diff options
author | Stefan Metzmacher <metze@samba.org> | 2013-12-13 19:18:48 +0100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2014-03-27 00:36:31 +0100 |
commit | 79f5275db2c1acd5adaee187c3953fbc5e2aff6c (patch) | |
tree | e6ec7cc20c7fd1fe2ce4017e6819e8da74dcbeee /auth | |
parent | 40cf17eee2da0afa3bb498208879b449352cb4e1 (diff) | |
download | samba-79f5275db2c1acd5adaee187c3953fbc5e2aff6c.tar.gz samba-79f5275db2c1acd5adaee187c3953fbc5e2aff6c.tar.xz samba-79f5275db2c1acd5adaee187c3953fbc5e2aff6c.zip |
auth/gensec: add a gensec_update_ev() function
This is the current gensec_update() which takes an optional
tevent_context structure and allows semi-async code.
This is just a temporary solution on the way to kill
the semi-async code completely, by using gensec_update_send/recv.
By providing a gensec_update_ev(), we can remove the explicit
tevent_context from gensec_update() and fix all the sane callers.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'auth')
-rw-r--r-- | auth/gensec/gensec.c | 37 | ||||
-rw-r--r-- | auth/gensec/gensec.h | 4 |
2 files changed, 27 insertions, 14 deletions
diff --git a/auth/gensec/gensec.c b/auth/gensec/gensec.c index a95a6cc80c7..f824b90346a 100644 --- a/auth/gensec/gensec.c +++ b/auth/gensec/gensec.c @@ -203,20 +203,10 @@ _PUBLIC_ size_t gensec_max_update_size(struct gensec_security *gensec_security) return gensec_security->max_update_size; } -/** - * Next state function for the GENSEC state machine - * - * @param gensec_security GENSEC State - * @param out_mem_ctx The TALLOC_CTX for *out to be allocated on - * @param in The request, as a DATA_BLOB - * @param out The reply, as an talloc()ed DATA_BLOB, on *out_mem_ctx - * @return Error, MORE_PROCESSING_REQUIRED if a reply is sent, - * or NT_STATUS_OK if the user is authenticated. - */ - -_PUBLIC_ NTSTATUS gensec_update(struct gensec_security *gensec_security, TALLOC_CTX *out_mem_ctx, - struct tevent_context *ev, - const DATA_BLOB in, DATA_BLOB *out) +_PUBLIC_ NTSTATUS gensec_update_ev(struct gensec_security *gensec_security, + TALLOC_CTX *out_mem_ctx, + struct tevent_context *ev, + const DATA_BLOB in, DATA_BLOB *out) { NTSTATUS status; const struct gensec_security_ops *ops = gensec_security->ops; @@ -318,6 +308,25 @@ _PUBLIC_ NTSTATUS gensec_update(struct gensec_security *gensec_security, TALLOC_ return status; } +/** + * Next state function for the GENSEC state machine + * + * @param gensec_security GENSEC State + * @param out_mem_ctx The TALLOC_CTX for *out to be allocated on + * @param in The request, as a DATA_BLOB + * @param out The reply, as an talloc()ed DATA_BLOB, on *out_mem_ctx + * @return Error, MORE_PROCESSING_REQUIRED if a reply is sent, + * or NT_STATUS_OK if the user is authenticated. + */ + +_PUBLIC_ NTSTATUS gensec_update(struct gensec_security *gensec_security, + TALLOC_CTX *out_mem_ctx, + struct tevent_context *ev, + const DATA_BLOB in, DATA_BLOB *out) +{ + return gensec_update_ev(gensec_security, out_mem_ctx, ev, in, out); +} + struct gensec_update_state { const struct gensec_security_ops *ops; struct tevent_req *subreq; diff --git a/auth/gensec/gensec.h b/auth/gensec/gensec.h index 6974f8708b5..e7ad040da2c 100644 --- a/auth/gensec/gensec.h +++ b/auth/gensec/gensec.h @@ -149,6 +149,10 @@ size_t gensec_max_update_size(struct gensec_security *gensec_security); NTSTATUS gensec_update(struct gensec_security *gensec_security, TALLOC_CTX *out_mem_ctx, struct tevent_context *ev, const DATA_BLOB in, DATA_BLOB *out); +NTSTATUS gensec_update_ev(struct gensec_security *gensec_security, + TALLOC_CTX *out_mem_ctx, + struct tevent_context *ev, + const DATA_BLOB in, DATA_BLOB *out); struct tevent_req *gensec_update_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct gensec_security *gensec_security, |