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);
.name = "CCACHE_NTLM_AUTH",
.struct_cmd = WINBINDD_CCACHE_NTLMAUTH,
.struct_fn = winbindd_dual_ccache_ntlm_auth,
+ },{
+ .name = "PING",
+ .struct_cmd = WINBINDD_PING,
+ .struct_fn = winbindd_dual_ping,
+ .ndr_opnum = NDR_WINBIND_PING,
+ .ndr_fn = winbindd_ndr_child_ping,
},{
.name = "NDR_WINBIND_GET_DOMAIN_INFO",
.ndr_opnum = NDR_WINBIND_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)