struct winbind_ping *r;
r = talloc_get_type_abort(state->c.ndr.r, struct winbind_ping);
+ if (lp_parm_bool(-1, "winbindd", "ping_our_domain", False)) {
+ sendto_domain(state, find_our_domain());
+ return;
+ }
+
DEBUG(3, ("winbindd_ndr_ping()\n"));
r->out.result = WINBIND_STATUS_OK;
winbindd_reply_ndr_ok(state);
}
+void winbindd_ndr_child_ping(struct winbindd_domain *domain,
+ struct winbindd_cli_state *state)
+{
+ struct winbind_ping *r;
+ r = talloc_get_type_abort(state->c.ndr.r, struct winbind_ping);
+
+ DEBUG(3, ("winbindd_ndr_child_ping()\n"));
+
+ r->out.result = WINBIND_STATUS_OK;
+}
+
static const struct winbind_ndr_cmd {
uint32 opnum;
void (*fn)(struct winbindd_cli_state *state);
{ WINBINDD_GETUSERDOMGROUPS, winbindd_dual_getuserdomgroups, "GETUSERDOMGROUPS" },
{ WINBINDD_DUAL_GETSIDALIASES, winbindd_dual_getsidaliases, "GETSIDALIASES" },
{ WINBINDD_CCACHE_NTLMAUTH, winbindd_dual_ccache_ntlm_auth, "CCACHE_NTLM_AUTH" },
+ { WINBINDD_PING, winbindd_dual_ping, "PING" },
/* End of list */
{ WINBINDD_NUM_CMDS, NULL, "NONE" }
void (*fn)(struct winbindd_domain *domain,
struct winbindd_cli_state *state);
} ndr_child_cmd_table[] = {
+ {
+ .opnum = NDR_WINBIND_PING,
+ .fn = winbindd_ndr_child_ping
+ },
{
.opnum = NDR_WINBIND_GET_DOMAIN_INFO,
.fn = winbindd_ndr_child_get_domain_info
void winbindd_ping(struct winbindd_cli_state *state)
{
+ if (lp_parm_bool(-1, "winbindd", "ping_our_domain", False)) {
+ sendto_domain(state, find_our_domain());
+ return;
+ }
+
DEBUG(3, ("[%5lu]: ping\n", (unsigned long)state->pid));
request_ok(state);
}
+enum winbindd_result winbindd_dual_ping(struct winbindd_domain *domain,
+ struct winbindd_cli_state *state)
+{
+ DEBUG(3, ("[%5lu]: (dual) ping\n", (unsigned long)state->pid));
+ return WINBINDD_OK;
+}
+
/* List various tidbits of information */
void winbindd_info(struct winbindd_cli_state *state)