summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2008-05-08 01:07:10 +0200
committerKarolin Seeger <kseeger@samba.org>2008-05-21 12:18:06 +0200
commitf522c9bc3981d7558f4a6dc5407db284f8a8ca72 (patch)
tree070f6180524b8b222ebf5c8d5a4dc108fff81b08
parenta8d27e49003ce43c353c5b3938adb0e11da0a2fa (diff)
downloadsamba-f522c9bc3981d7558f4a6dc5407db284f8a8ca72.tar.gz
samba-f522c9bc3981d7558f4a6dc5407db284f8a8ca72.tar.xz
samba-f522c9bc3981d7558f4a6dc5407db284f8a8ca72.zip
netdomjoin-gui: before prompting for creds, ask dsgetdcname for a dc.
Guenther (cherry picked from commit 47146effc1c2bca516d4fbccf221b5b0e02737bf)
-rw-r--r--source/lib/netapi/examples/netdomjoin-gui/netdomjoin-gui.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/source/lib/netapi/examples/netdomjoin-gui/netdomjoin-gui.c b/source/lib/netapi/examples/netdomjoin-gui/netdomjoin-gui.c
index 5ce4ca2c87b..a11b0eb0a40 100644
--- a/source/lib/netapi/examples/netdomjoin-gui/netdomjoin-gui.c
+++ b/source/lib/netapi/examples/netdomjoin-gui/netdomjoin-gui.c
@@ -670,6 +670,41 @@ static void callback_do_join(GtkWidget *widget,
}
+ /* before prompting for creds, make sure we can find a dc */
+
+ if (domain_join) {
+
+ struct DOMAIN_CONTROLLER_INFO *dc_info = NULL;
+
+ status = DsGetDcName(NULL,
+ state->name_buffer_new,
+ NULL,
+ NULL,
+ 0,
+ &dc_info);
+ if (status != 0) {
+ err_str = libnetapi_get_error_string(state->ctx, status);
+ g_print("callback_do_join: 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",
+ state->name_buffer_new,
+ 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 (join_creds_required) {
if (!state->account || !state->password) {
debug("callback_do_join: no creds yet\n");