diff options
author | Volker Lendecke <vlendec@samba.org> | 2005-10-19 13:45:44 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:44:57 -0500 |
commit | 0f51ae83f09fa90362cae12a37ca4debc35f8491 (patch) | |
tree | b4eef9f6b5647e53f430b46ae5bf90e3ace1e48d /source4/winbind/wb_cmd_getdcname.c | |
parent | ba97ac6b96cbd5a3b40acd2d62f7483d1872d124 (diff) | |
download | samba-0f51ae83f09fa90362cae12a37ca4debc35f8491.tar.gz samba-0f51ae83f09fa90362cae12a37ca4debc35f8491.tar.bz2 samba-0f51ae83f09fa90362cae12a37ca4debc35f8491.zip |
r11181: Implement wbinfo -s and wbinfo --user-sids. The patch is so large because
--user-sids required the extension to trusted domains.
Implement "winbind sealed pipes" parameter for debugging purposes.
Volker
(This used to be commit 3821a17bdb68b2f1389b5a150502c057d28569d2)
Diffstat (limited to 'source4/winbind/wb_cmd_getdcname.c')
-rw-r--r-- | source4/winbind/wb_cmd_getdcname.c | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/source4/winbind/wb_cmd_getdcname.c b/source4/winbind/wb_cmd_getdcname.c index 3ddcbc8962..72e0ba0efd 100644 --- a/source4/winbind/wb_cmd_getdcname.c +++ b/source4/winbind/wb_cmd_getdcname.c @@ -24,6 +24,7 @@ #include "libcli/composite/composite.h" #include "winbind/wb_server.h" #include "smbd/service_stream.h" +#include "smbd/service_task.h" #include "librpc/gen_ndr/ndr_netlogon.h" @@ -63,7 +64,7 @@ static void composite_netr_GetAnyDCName_recv_rpc(struct rpc_request *req) composite_done(ctx); } -NTSTATUS composite_netr_GetAnyDCName_recv(struct composite_context *ctx) +static NTSTATUS composite_netr_GetAnyDCName_recv(struct composite_context *ctx) { NTSTATUS status = composite_wait(ctx); talloc_free(ctx); @@ -72,30 +73,28 @@ NTSTATUS composite_netr_GetAnyDCName_recv(struct composite_context *ctx) struct cmd_getdcname_state { struct composite_context *ctx; - struct wbsrv_domain *domain; const char *domain_name; struct netr_GetAnyDCName g; }; -static struct composite_context *getdcname_send_req(void *p); +static struct composite_context *getdcname_send_req(struct wbsrv_domain *domain, + void *p); static NTSTATUS getdcname_recv_req(struct composite_context *ctx, void *p); -struct composite_context *wb_cmd_getdcname_send(struct wbsrv_call *call, - const char *domain) +struct composite_context *wb_cmd_getdcname_send(struct wbsrv_service *service, + struct wbsrv_domain *domain, + const char *domain_name) { struct cmd_getdcname_state *state; - struct wbsrv_service *service = call->wbconn->listen_socket->service; state = talloc(NULL, struct cmd_getdcname_state); - state->domain = service->domains; - state->domain_name = talloc_strdup(state, domain); - state->ctx = wb_queue_domain_send(state, state->domain, - call->event_ctx, - call->wbconn->conn->msg_ctx, - getdcname_send_req, - getdcname_recv_req, - state); + state->domain_name = talloc_strdup(state, domain_name); + state->ctx = wb_domain_request_send(state, service, + service->primary_sid, + getdcname_send_req, + getdcname_recv_req, + state); if (state->ctx == NULL) { talloc_free(state); return NULL; @@ -104,17 +103,17 @@ struct composite_context *wb_cmd_getdcname_send(struct wbsrv_call *call, return state->ctx; } -static struct composite_context *getdcname_send_req(void *p) +static struct composite_context *getdcname_send_req(struct wbsrv_domain *domain, void *p) { struct cmd_getdcname_state *state = talloc_get_type(p, struct cmd_getdcname_state); state->g.in.logon_server = talloc_asprintf( state, "\\\\%s", - dcerpc_server_name(state->domain->netlogon_pipe)); + dcerpc_server_name(domain->netlogon_pipe)); state->g.in.domainname = state->domain_name; - return composite_netr_GetAnyDCName_send(state->domain->netlogon_pipe, + return composite_netr_GetAnyDCName_send(domain->netlogon_pipe, state, &state->g); } |