svn commit: samba r3033 - in branches/SAMBA_4_0/source/gtk: common tools

jelmer at samba.org jelmer at samba.org
Mon Oct 18 11:44:07 GMT 2004


Author: jelmer
Date: 2004-10-18 11:44:07 +0000 (Mon, 18 Oct 2004)
New Revision: 3033

WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source/gtk&rev=3033&nolog=1

Log:
Use the C struct directly if we can instead of generating a binding 
string and parsing that.

Modified:
   branches/SAMBA_4_0/source/gtk/common/gtk-smb.c
   branches/SAMBA_4_0/source/gtk/tools/gregedit.c
   branches/SAMBA_4_0/source/gtk/tools/gwsam.c


Changeset:
Modified: branches/SAMBA_4_0/source/gtk/common/gtk-smb.c
===================================================================
--- branches/SAMBA_4_0/source/gtk/common/gtk-smb.c	2004-10-18 11:43:26 UTC (rev 3032)
+++ branches/SAMBA_4_0/source/gtk/common/gtk-smb.c	2004-10-18 11:44:07 UTC (rev 3033)
@@ -303,39 +303,40 @@
 	return gtk_entry_get_text(GTK_ENTRY(d->entry_host));
 }
 
-const char *gtk_rpc_binding_dialog_get_binding(GtkRpcBindingDialog *d, const char *pipe_name)
+struct dcerpc_binding *gtk_rpc_binding_dialog_get_binding(GtkRpcBindingDialog *d, TALLOC_CTX *mem_ctx)
 {
-	const char *transport;
-	const char *host;
-	char *options = NULL;
+	struct dcerpc_binding *binding = talloc_p(mem_ctx, struct dcerpc_binding);
 
-	/* Format: TRANSPORT:host:[\pipe\foo,foo,foo] */
+	binding->object = NULL;
 
-	host = gtk_entry_get_text(GTK_ENTRY(d->entry_host));
-	if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->transport_tcp_ip)))
-		transport = "ncacn_tcp";
-	else 
-		transport = "ncacn_np";
+	/* Format: TRANSPORT:host[\pipe\foo,foo,foo] */
 
-	if(pipe_name != NULL) {
-		options = talloc_asprintf(d->mem_ctx, "\\pipe\\%s", pipe_name);
+	binding->host = talloc_strdup(mem_ctx, gtk_entry_get_text(GTK_ENTRY(d->entry_host)));
+	if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->transport_tcp_ip))) {
+		binding->transport = NCACN_IP_TCP;
+	} else {
+		binding->transport = NCACN_NP;
 	}
-	
+
+	binding->options = NULL;
+	binding->flags = 0;
+
 	if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->chk_seal))) {
-		options = talloc_asprintf_append(options, ",seal");
+		binding->flags |= DCERPC_SEAL;
 	}
 
 	if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->chk_sign))) {
-		options = talloc_asprintf_append(options, ",sign");
+		binding->flags |= DCERPC_SIGN;
 	}
 
-	if(options) {
-		return talloc_asprintf(d->mem_ctx, "%s:%s:[%s]", transport, host, options);
-	} else {
-		return talloc_asprintf(d->mem_ctx, "%s:%s", transport, host);
-	}
+	return binding;
 }
 
+const char *gtk_rpc_binding_dialog_get_binding_string(GtkRpcBindingDialog *d, TALLOC_CTX *mem_ctx)
+{
+	return dcerpc_binding_string(mem_ctx, gtk_rpc_binding_dialog_get_binding(d, mem_ctx));
+}
+
 GtkWidget *create_gtk_samba_about_dialog (const char *appname)
 {
   GtkWidget *samba_about_dialog;

Modified: branches/SAMBA_4_0/source/gtk/tools/gregedit.c
===================================================================
--- branches/SAMBA_4_0/source/gtk/tools/gregedit.c	2004-10-18 11:43:26 UTC (rev 3032)
+++ branches/SAMBA_4_0/source/gtk/tools/gregedit.c	2004-10-18 11:44:07 UTC (rev 3033)
@@ -168,7 +168,7 @@
 		return;
 	}
 
-	location = gtk_rpc_binding_dialog_get_binding(GTK_RPC_BINDING_DIALOG(rpcwin), NULL);
+	location = gtk_rpc_binding_dialog_get_binding_string(GTK_RPC_BINDING_DIALOG(rpcwin), mem_ctx);
 	asprintf(&credentials, "%s%%%s", gtk_rpc_binding_dialog_get_username(GTK_RPC_BINDING_DIALOG(rpcwin)), gtk_rpc_binding_dialog_get_password(GTK_RPC_BINDING_DIALOG(rpcwin)));
 	error = reg_open(&registry, "rpc", location, credentials);
 

Modified: branches/SAMBA_4_0/source/gtk/tools/gwsam.c
===================================================================
--- branches/SAMBA_4_0/source/gtk/tools/gwsam.c	2004-10-18 11:43:26 UTC (rev 3032)
+++ branches/SAMBA_4_0/source/gtk/tools/gwsam.c	2004-10-18 11:44:07 UTC (rev 3033)
@@ -124,7 +124,7 @@
 	}
 
 	/* If connected, get list of jobs */
-	status = dcerpc_pipe_connect(&sam_pipe, gtk_rpc_binding_dialog_get_binding(d, DCERPC_SAMR_NAME), DCERPC_SAMR_UUID, DCERPC_SAMR_VERSION, lp_workgroup(), gtk_rpc_binding_dialog_get_username(d), gtk_rpc_binding_dialog_get_password(d));
+	status = dcerpc_pipe_connect_b(&sam_pipe, gtk_rpc_binding_dialog_get_binding(d, mem_ctx), DCERPC_SAMR_UUID, DCERPC_SAMR_VERSION, lp_workgroup(), gtk_rpc_binding_dialog_get_username(d), gtk_rpc_binding_dialog_get_password(d));
 	if(!NT_STATUS_IS_OK(status)) {
 		gtk_show_ntstatus(mainwin, status);
 		sam_pipe = NULL;



More information about the samba-cvs mailing list