1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00

Add dump-domain-list command for debugging winbindd's domain_list.

Guenther
This commit is contained in:
Günther Deschner 2008-01-24 16:09:20 +01:00
parent 37b9545051
commit 10fa43f284
2 changed files with 58 additions and 0 deletions

View File

@ -97,6 +97,7 @@
#define MSG_WINBIND_TRY_TO_GO_ONLINE 0x0406
#define MSG_WINBIND_FAILED_TO_GO_ONLINE 0x0407
#define MSG_WINBIND_VALIDATE_CACHE 0x0408
#define MSG_WINBIND_DUMP_DOMAIN_LIST 0x0409
/* event messages */
#define MSG_DUMP_EVENT_LIST 0x0500

View File

@ -1008,6 +1008,62 @@ static bool do_dump_event_list(struct messaging_context *msg_ctx,
return send_message(msg_ctx, pid, MSG_DUMP_EVENT_LIST, NULL, 0);
}
static bool do_winbind_dump_domain_list(struct messaging_context *msg_ctx,
const struct server_id pid,
const int argc, const char **argv)
{
const char *domain = NULL;
int domain_len = 0;
struct server_id myid;
uint8_t *buf = NULL;
int buf_len = 0;
myid = pid_to_procid(sys_getpid());
if (argc < 1 || argc > 2) {
fprintf(stderr, "Usage: smbcontrol <dest> dump_domain_list "
"<domain>\n");
return false;
}
if (argc == 2) {
domain = argv[1];
domain_len = strlen(argv[1]) + 1;
}
messaging_register(msg_ctx, NULL, MSG_WINBIND_DUMP_DOMAIN_LIST,
print_pid_string_cb);
buf_len = sizeof(myid)+domain_len;
buf = SMB_MALLOC(buf_len);
if (!buf) {
return false;
}
memcpy(buf, &myid, sizeof(myid));
memcpy(&buf[sizeof(myid)], domain, domain_len);
if (!send_message(msg_ctx, pid, MSG_WINBIND_DUMP_DOMAIN_LIST,
buf, buf_len))
{
SAFE_FREE(buf);
return false;
}
wait_replies(msg_ctx, procid_to_pid(&pid) == 0);
/* No replies were received within the timeout period */
SAFE_FREE(buf);
if (num_replies == 0) {
printf("No replies received\n");
}
messaging_deregister(msg_ctx, MSG_WINBIND_DUMP_DOMAIN_LIST, NULL);
return num_replies;
}
static void winbind_validate_cache_cb(struct messaging_context *msg,
void *private_data,
uint32_t msg_type,
@ -1150,6 +1206,7 @@ static const struct {
{ "dump-event-list", do_dump_event_list, "Dump event list"},
{ "validate-cache" , do_winbind_validate_cache,
"Validate winbind's credential cache" },
{ "dump-domain-list", do_winbind_dump_domain_list, "Dump winbind domain list"},
{ "noop", do_noop, "Do nothing" },
{ NULL }
};