summaryrefslogtreecommitdiff
path: root/source4/winbind/wb_cmd_getdcname.c
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2005-10-19 13:45:44 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:44:57 -0500
commit0f51ae83f09fa90362cae12a37ca4debc35f8491 (patch)
treeb4eef9f6b5647e53f430b46ae5bf90e3ace1e48d /source4/winbind/wb_cmd_getdcname.c
parentba97ac6b96cbd5a3b40acd2d62f7483d1872d124 (diff)
downloadsamba-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.c33
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);
}