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

netdomjoin-gui: before prompting for creds (for receiving joinable ous), find a dc.

Guenther
(This used to be commit ae60695a34)
This commit is contained in:
Günther Deschner 2008-05-16 12:11:43 +02:00
parent 9530c26c4c
commit 0b25870b54

View File

@ -932,6 +932,9 @@ static void callback_do_getous(GtkWidget *widget,
const char **ous = NULL;
int i;
const char *domain = NULL;
struct DOMAIN_CONTROLLER_INFO *dc_info = NULL;
const char *err_str = NULL;
GtkWidget *dialog;
struct join_state *state = (struct join_state *)data;
@ -939,6 +942,34 @@ static void callback_do_getous(GtkWidget *widget,
domain = state->name_buffer_new ? state->name_buffer_new : state->name_buffer_initial;
status = DsGetDcName(NULL,
domain,
NULL,
NULL,
0,
&dc_info);
if (status != 0) {
err_str = libnetapi_get_error_string(state->ctx, status);
g_print("callback_do_getous: failed find dc (%s)\n", err_str);
dialog = gtk_message_dialog_new(GTK_WINDOW(state->window_parent),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
"Failed to find a domain controller for domain: \"%s\": %s",
domain,
err_str);
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
g_signal_connect_swapped(dialog, "response",
G_CALLBACK(gtk_widget_destroy),
dialog);
gtk_widget_show(dialog);
return;
}
if (!state->account || !state->password) {
debug("callback_do_getous: no creds yet\n");
callback_creds_prompt(NULL, state,
@ -956,7 +987,6 @@ static void callback_do_getous(GtkWidget *widget,
state->password,
&num_ous, &ous);
if (status != NET_API_STATUS_SUCCESS) {
GtkWidget *dialog;
callback_do_freeauth(NULL, state);
debug("failed to call NetGetJoinableOUs: %s\n",
libnetapi_get_error_string(state->ctx, status));