mirror of
https://github.com/samba-team/samba.git
synced 2025-03-27 22:50:26 +03:00
s3-winbind: Return the DC name from DC_PING
The DC that was attempted to ping is useful for troubleshooting. Return the DC name in the response to the wbclient. Signed-off-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
parent
7baa7091b7
commit
bd23c8f1ce
@ -177,5 +177,6 @@ interface wbint
|
||||
);
|
||||
|
||||
NTSTATUS wbint_PingDc(
|
||||
[out,string,charset(UTF8)] char **dcname
|
||||
);
|
||||
}
|
||||
|
@ -714,6 +714,11 @@ NTSTATUS _wbint_PingDc(struct pipes_struct *p, struct wbint_PingDc *r)
|
||||
b = netlogon_pipe->binding_handle;
|
||||
|
||||
fstr_sprintf(logon_server, "\\\\%s", domain->dcname);
|
||||
*r->out.dcname = talloc_strdup(p->mem_ctx, domain->dcname);
|
||||
if (r->out.dcname == NULL) {
|
||||
DEBUG(2, ("Could not allocate memory\n"));
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
|
||||
/*
|
||||
* This provokes a WERR_NOT_SUPPORTED error message. This is
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "librpc/gen_ndr/ndr_wbint_c.h"
|
||||
|
||||
struct winbindd_ping_dc_state {
|
||||
const char *dcname;
|
||||
NTSTATUS result;
|
||||
};
|
||||
|
||||
@ -61,7 +62,8 @@ struct tevent_req *winbindd_ping_dc_send(TALLOC_CTX *mem_ctx,
|
||||
return tevent_req_post(req, ev);
|
||||
}
|
||||
|
||||
subreq = dcerpc_wbint_PingDc_send(state, ev, dom_child_handle(domain));
|
||||
subreq = dcerpc_wbint_PingDc_send(state, ev, dom_child_handle(domain),
|
||||
&state->dcname);
|
||||
if (tevent_req_nomem(subreq, req)) {
|
||||
return tevent_req_post(req, ev);
|
||||
}
|
||||
@ -96,5 +98,10 @@ NTSTATUS winbindd_ping_dc_recv(struct tevent_req *req,
|
||||
set_auth_errors(presp, state->result);
|
||||
}
|
||||
|
||||
if (state->dcname) {
|
||||
presp->extra_data.data = talloc_strdup(presp, state->dcname);
|
||||
presp->length += strlen((char *)presp->extra_data.data) + 1;
|
||||
}
|
||||
|
||||
return tevent_req_simple_recv_ntstatus(req);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user