diff options
author | Stefan Metzmacher <metze@samba.org> | 2006-07-30 17:55:09 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:15:14 -0500 |
commit | daff55d64ec0f976f0ad34ec7f0a1737a4a06abc (patch) | |
tree | d283ce384e2ae839af1f8416fa88c06e422550be /source4/librpc | |
parent | 46b2b8c890c7f61fe68325dcc180de471529bb53 (diff) | |
download | samba-daff55d64ec0f976f0ad34ec7f0a1737a4a06abc.tar.gz samba-daff55d64ec0f976f0ad34ec7f0a1737a4a06abc.tar.bz2 samba-daff55d64ec0f976f0ad34ec7f0a1737a4a06abc.zip |
r17324: make better usage of the composite api
metze
(This used to be commit 0fa97777107f5f65f8b48976b90f1ae52f1fe2a5)
Diffstat (limited to 'source4/librpc')
-rw-r--r-- | source4/librpc/rpc/dcerpc_auth.c | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/source4/librpc/rpc/dcerpc_auth.c b/source4/librpc/rpc/dcerpc_auth.c index c6b718e208..a6afcd5c89 100644 --- a/source4/librpc/rpc/dcerpc_auth.c +++ b/source4/librpc/rpc/dcerpc_auth.c @@ -40,7 +40,7 @@ struct composite_context *dcerpc_bind_auth_none_send(TALLOC_CTX *mem_ctx, struct composite_context *c; - c = talloc_zero(mem_ctx, struct composite_context); + c = composite_create(mem_ctx, p->conn->event_ctx); if (c == NULL) return NULL; c->status = dcerpc_init_syntaxes(table, @@ -207,22 +207,19 @@ struct composite_context *dcerpc_bind_auth_send(TALLOC_CTX *mem_ctx, struct dcerpc_syntax_id syntax, transfer_syntax; /* composite context allocation and setup */ - c = talloc_zero(mem_ctx, struct composite_context); + c = composite_create(mem_ctx, p->conn->event_ctx); if (c == NULL) return NULL; state = talloc(c, struct bind_auth_state); if (composite_nomem(state, c)) return c; - - c->state = COMPOSITE_STATE_IN_PROGRESS; c->private_data = state; - c->event_ctx = p->conn->event_ctx; state->pipe = p; c->status = dcerpc_init_syntaxes(table, &syntax, &transfer_syntax); - if (!NT_STATUS_IS_OK(c->status)) goto failed; + if (!composite_is_ok(c)) return c; sec = &p->conn->security_state; @@ -231,22 +228,25 @@ struct composite_context *dcerpc_bind_auth_send(TALLOC_CTX *mem_ctx, if (!NT_STATUS_IS_OK(c->status)) { DEBUG(1, ("Failed to start GENSEC client mode: %s\n", nt_errstr(c->status))); - goto failed; + composite_error(c, c->status); + return c; } c->status = gensec_set_credentials(sec->generic_state, credentials); if (!NT_STATUS_IS_OK(c->status)) { DEBUG(1, ("Failed to set GENSEC client credentails: %s\n", nt_errstr(c->status))); - goto failed; + composite_error(c, c->status); + return c; } - c->status = gensec_set_target_hostname( - sec->generic_state, p->conn->transport.target_hostname(p->conn)); + c->status = gensec_set_target_hostname(sec->generic_state, + p->conn->transport.target_hostname(p->conn)); if (!NT_STATUS_IS_OK(c->status)) { DEBUG(1, ("Failed to set GENSEC target hostname: %s\n", nt_errstr(c->status))); - goto failed; + composite_error(c, c->status); + return c; } if (service != NULL) { @@ -255,7 +255,8 @@ struct composite_context *dcerpc_bind_auth_send(TALLOC_CTX *mem_ctx, if (!NT_STATUS_IS_OK(c->status)) { DEBUG(1, ("Failed to set GENSEC target service: %s\n", nt_errstr(c->status))); - goto failed; + composite_error(c, c->status); + return c; } } @@ -265,7 +266,8 @@ struct composite_context *dcerpc_bind_auth_send(TALLOC_CTX *mem_ctx, DEBUG(1, ("Failed to start GENSEC client mechanism %s: %s\n", gensec_get_name_by_authtype(auth_type), nt_errstr(c->status))); - goto failed; + composite_error(c, c->status); + return c; } sec->auth_info = talloc(p, struct dcerpc_auth); @@ -293,11 +295,12 @@ struct composite_context *dcerpc_bind_auth_send(TALLOC_CTX *mem_ctx, &state->credentials); if (!NT_STATUS_IS_OK(c->status) && !NT_STATUS_EQUAL(c->status, NT_STATUS_MORE_PROCESSING_REQUIRED)) { - goto failed; + composite_error(c, c->status); + return c; } - state->more_processing = - NT_STATUS_EQUAL(c->status, NT_STATUS_MORE_PROCESSING_REQUIRED); + state->more_processing = NT_STATUS_EQUAL(c->status, + NT_STATUS_MORE_PROCESSING_REQUIRED); if (state->credentials.length == 0) { composite_done(c); @@ -313,10 +316,6 @@ struct composite_context *dcerpc_bind_auth_send(TALLOC_CTX *mem_ctx, composite_continue(c, creq, bind_auth_recv_bindreply, c); return c; - -failed: - composite_error(c, c->status); - return c; } |