svn commit: samba r5989 - in branches/SAMBA_4_0/source: gtk/tools lib

jelmer at samba.org jelmer at samba.org
Wed Mar 23 01:42:29 GMT 2005


Author: jelmer
Date: 2005-03-23 01:42:29 +0000 (Wed, 23 Mar 2005)
New Revision: 5989

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5989

Log:
Display authentication information (list of available auth protocols 
+ principal names per endpoint) to gepdump. Still need to fix memory management 
in the GTK+ utilities...

Modified:
   branches/SAMBA_4_0/source/gtk/tools/gepdump.c
   branches/SAMBA_4_0/source/lib/credentials.c


Changeset:
Modified: branches/SAMBA_4_0/source/gtk/tools/gepdump.c
===================================================================
--- branches/SAMBA_4_0/source/gtk/tools/gepdump.c	2005-03-23 01:30:43 UTC (rev 5988)
+++ branches/SAMBA_4_0/source/gtk/tools/gepdump.c	2005-03-23 01:42:29 UTC (rev 5989)
@@ -40,6 +40,7 @@
 static GtkWidget *table_statistics;
 static GtkWidget *lbl_calls_in, *lbl_calls_out, *lbl_pkts_in, *lbl_pkts_out;
 static GtkWidget *lbl_iface_version, *lbl_iface_uuid, *lbl_iface_name;
+static GtkListStore *store_princ_names;
 TALLOC_CTX *eps_ctx = NULL;
 TALLOC_CTX *conn_ctx = NULL;
 
@@ -174,6 +175,7 @@
 	TALLOC_CTX *mem_ctx;
 	NTSTATUS status;
 	gint result;
+	struct cli_credentials *credentials;
 
 	d = GTK_RPC_BINDING_DIALOG(gtk_rpc_binding_dialog_new(TRUE, NULL));
 	result = gtk_dialog_run(GTK_DIALOG(d));
@@ -188,9 +190,13 @@
 	mem_ctx = talloc_init("connect");
 	bs = gtk_rpc_binding_dialog_get_binding_string (d, mem_ctx);
 
+	credentials = cli_credentials_init(mem_ctx);
+	cli_credentials_guess(credentials);
+	cli_credentials_set_gtk_callbacks(credentials);
+
 	status = dcerpc_pipe_connect(talloc_autofree_context(), &epmapper_pipe, bs, 
 				     DCERPC_EPMAPPER_UUID, DCERPC_EPMAPPER_VERSION, 
-				     cmdline_credentials);
+				     credentials);
 
 	if (NT_STATUS_IS_ERR(status)) {
 		gtk_show_ntstatus(mainwin, "Error connecting to endpoint mapper", status);
@@ -250,6 +256,8 @@
 		struct mgmt_inq_princ_name r;
 		int i;
 
+		gtk_list_store_clear(store_princ_names);
+
 		for (i=0;i<100;i++) {
 			r.in.authn_proto = i;  /* DCERPC_AUTH_TYPE_* */
 			r.in.princ_name_size = 100;
@@ -259,14 +267,20 @@
 				continue;
 			}
 			if (W_ERROR_IS_OK(r.out.result)) {
+				GtkTreeIter iter;
 				const char *name = gensec_get_name_by_authtype(i);
+				char *protocol;
 				if (name) {
-					printf("\tprinciple name for proto %u (%s) is '%s'\n",
-						   i, name, r.out.princ_name);
+					protocol = talloc_asprintf(mem_ctx, "%u (%s)", i, name);
 				} else {
-					printf("\tprinciple name for proto %u is '%s'\n",
-						   i, r.out.princ_name);
+					protocol = talloc_asprintf(mem_ctx, "%u", i);
 				}
+				gtk_list_store_append(store_princ_names, &iter);
+				gtk_list_store_set(store_princ_names, &iter, 
+								   0, protocol,
+								   1, r.out.princ_name,
+								   -1);
+
 			}
 		}
 	}
@@ -287,6 +301,7 @@
 	GtkWidget *menuitem4_menu;
 	GtkWidget *mnu_connect;
 	GtkWidget *mnu_refresh;
+	GtkWidget *treeview_princ_names;
 	GtkWidget *about1;
 	GtkWidget *hbox2;
 	GtkWidget *scrolledwindow1;
@@ -398,6 +413,28 @@
 	frame1 = gtk_frame_new("Authentication");
 	gtk_container_add (GTK_CONTAINER(vbox2), frame1);
 
+	treeview_princ_names = gtk_tree_view_new();
+
+	curcol = gtk_tree_view_column_new ();
+	gtk_tree_view_column_set_title(curcol, "Protocol");
+    renderer = gtk_cell_renderer_text_new();
+    gtk_tree_view_column_pack_start(curcol, renderer, True);
+    gtk_tree_view_append_column(GTK_TREE_VIEW(treeview_princ_names), curcol);
+    gtk_tree_view_column_add_attribute(curcol, renderer, "text", 0);
+
+	curcol = gtk_tree_view_column_new ();
+	gtk_tree_view_column_set_title(curcol, "Principal Name");
+    renderer = gtk_cell_renderer_text_new();
+    gtk_tree_view_column_pack_start(curcol, renderer, True);
+    gtk_tree_view_append_column(GTK_TREE_VIEW(treeview_princ_names), curcol);
+    gtk_tree_view_column_add_attribute(curcol, renderer, "text", 1);
+
+	gtk_container_add (GTK_CONTAINER(frame1), treeview_princ_names);
+
+    store_princ_names = gtk_list_store_new(4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER);
+	gtk_tree_view_set_model(GTK_TREE_VIEW(treeview_princ_names), GTK_TREE_MODEL(store_princ_names));
+    g_object_unref(store_princ_names);
+
 	statusbar = gtk_statusbar_new ();
 	gtk_box_pack_start (GTK_BOX (vbox1), statusbar, FALSE, FALSE, 0);
 

Modified: branches/SAMBA_4_0/source/lib/credentials.c
===================================================================
--- branches/SAMBA_4_0/source/lib/credentials.c	2005-03-23 01:30:43 UTC (rev 5988)
+++ branches/SAMBA_4_0/source/lib/credentials.c	2005-03-23 01:42:29 UTC (rev 5989)
@@ -392,7 +392,7 @@
 {
 	const char *username = cli_credentials_get_username(credentials);
 
-	if (!username[0]) 
+	if (!username || !username[0]) 
 		return True;
 
 	return False;



More information about the samba-cvs mailing list