svn commit: samba r26651 - in branches/SAMBA_4_0: . source/client source/libcli source/libcli/raw source/libcli/smb_composite source/librpc/rpc source/ntvfs/cifs source/scripting/ejs source/torture/basic source/torture/raw

jelmer at samba.org jelmer at samba.org
Thu Jan 3 17:22:00 GMT 2008


Author: jelmer
Date: 2008-01-03 17:21:58 +0000 (Thu, 03 Jan 2008)
New Revision: 26651

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

Log:
libsmb: Allow specifying signing policy from higher up.

The number of arguments is getting a bit excessive now, so it 
probably makes sense to pass in the smbcli_options struct rather than 
all members individually and add a convenience function for obtaining a 
smbcli_options struct from a loadparm context.

Modified:
   branches/SAMBA_4_0/
   branches/SAMBA_4_0/source/client/client.c
   branches/SAMBA_4_0/source/libcli/cliconnect.c
   branches/SAMBA_4_0/source/libcli/raw/clitransport.c
   branches/SAMBA_4_0/source/libcli/raw/clitree.c
   branches/SAMBA_4_0/source/libcli/raw/libcliraw.h
   branches/SAMBA_4_0/source/libcli/raw/smb_signing.c
   branches/SAMBA_4_0/source/libcli/smb_composite/connect.c
   branches/SAMBA_4_0/source/libcli/smb_composite/fetchfile.c
   branches/SAMBA_4_0/source/libcli/smb_composite/fsinfo.c
   branches/SAMBA_4_0/source/libcli/smb_composite/smb_composite.h
   branches/SAMBA_4_0/source/librpc/rpc/dcerpc_connect.c
   branches/SAMBA_4_0/source/ntvfs/cifs/vfs_cifs.c
   branches/SAMBA_4_0/source/scripting/ejs/smbcalls_cli.c
   branches/SAMBA_4_0/source/torture/basic/base.c
   branches/SAMBA_4_0/source/torture/basic/misc.c
   branches/SAMBA_4_0/source/torture/raw/lockbench.c
   branches/SAMBA_4_0/source/torture/raw/openbench.c


Changeset:

Property changes on: branches/SAMBA_4_0
___________________________________________________________________
Name: bzr:revision-info
...skipped...
Name: bzr:revision-id:v3-trunk0
...skipped...

Modified: branches/SAMBA_4_0/source/client/client.c
===================================================================
--- branches/SAMBA_4_0/source/client/client.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/client/client.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -3065,7 +3065,7 @@
 /****************************************************************************
 handle a message operation
 ****************************************************************************/
-static int do_message_op(const char *netbios_name, const char *desthost, const char **destports, const char *destip, int name_type, struct resolve_context *resolve_ctx, int max_xmit, int max_mux, bool use_spnego)
+static int do_message_op(const char *netbios_name, const char *desthost, const char **destports, const char *destip, int name_type, struct resolve_context *resolve_ctx, int max_xmit, int max_mux, bool use_spnego, enum smb_signing_state signing)
 {
 	struct nbt_name called, calling;
 	const char *server_name;
@@ -3077,7 +3077,7 @@
 
 	server_name = destip ? destip : desthost;
 
-	if (!(cli=smbcli_state_init(NULL)) || !smbcli_socket_connect(cli, server_name, destports, resolve_ctx, max_xmit, max_mux, use_spnego)) {
+	if (!(cli=smbcli_state_init(NULL)) || !smbcli_socket_connect(cli, server_name, destports, resolve_ctx, max_xmit, max_mux, use_spnego, signing)) {
 		d_printf("Connection to %s failed\n", server_name);
 		return 1;
 	}
@@ -3225,7 +3225,7 @@
 	}
 
 	if (message) {
-		return do_message_op(lp_netbios_name(cmdline_lp_ctx), desthost, lp_smb_ports(cmdline_lp_ctx), dest_ip, name_type, lp_resolve_context(cmdline_lp_ctx), lp_max_xmit(cmdline_lp_ctx), lp_maxmux(cmdline_lp_ctx), lp_nt_status_support(cmdline_lp_ctx) && lp_use_spnego(cmdline_lp_ctx));
+		return do_message_op(lp_netbios_name(cmdline_lp_ctx), desthost, lp_smb_ports(cmdline_lp_ctx), dest_ip, name_type, lp_resolve_context(cmdline_lp_ctx), lp_max_xmit(cmdline_lp_ctx), lp_maxmux(cmdline_lp_ctx), lp_nt_status_support(cmdline_lp_ctx) && lp_use_spnego(cmdline_lp_ctx), lp_client_signing(cmdline_lp_ctx));
 	}
 	
 	if (!do_connect(ctx, lp_resolve_context(cmdline_lp_ctx), desthost, lp_smb_ports(cmdline_lp_ctx), service, cmdline_credentials))

Modified: branches/SAMBA_4_0/source/libcli/cliconnect.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/cliconnect.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/libcli/cliconnect.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -31,8 +31,10 @@
   wrapper around smbcli_sock_connect()
 */
 bool smbcli_socket_connect(struct smbcli_state *cli, const char *server, 
-			   const char **ports, struct resolve_context *resolve_ctx,
-			   int max_xmit, int max_mux, bool use_spnego)
+			   const char **ports, 
+			   struct resolve_context *resolve_ctx,
+			   int max_xmit, int max_mux, bool use_spnego,
+			   enum smb_signing_state signing)
 {
 	struct smbcli_socket *sock;
 
@@ -42,7 +44,7 @@
 	if (sock == NULL) return false;
 	
 	cli->transport = smbcli_transport_init(sock, cli, true, max_xmit,
-					       max_mux, use_spnego);
+					       max_mux, use_spnego, signing);
 	if (!cli->transport) {
 		return false;
 	}

Modified: branches/SAMBA_4_0/source/libcli/raw/clitransport.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/raw/clitransport.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/libcli/raw/clitransport.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -76,7 +76,8 @@
 					       bool primary, 
 					       int max_xmit,
 					       int max_mux,
-					       bool use_spnego)
+					       bool use_spnego,
+					       enum smb_signing_state signing)
 {
 	struct smbcli_transport *transport;
 
@@ -93,6 +94,7 @@
 	transport->options.max_xmit = max_xmit;
 	transport->options.max_mux = max_mux;
 	transport->options.request_timeout = SMB_REQUEST_TIMEOUT;
+	transport->options.signing = signing;
 
 	transport->negotiate.max_xmit = transport->options.max_xmit;
 

Modified: branches/SAMBA_4_0/source/libcli/raw/clitree.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/raw/clitree.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/libcli/raw/clitree.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -198,8 +198,7 @@
 	io.in.max_protocol = lp_cli_maxprotocol(global_loadparm);
 	io.in.unicode = lp_unicode(global_loadparm);
 	io.in.use_spnego = lp_use_spnego(global_loadparm) && lp_nt_status_support(global_loadparm);
-
-
+	io.in.signing = lp_client_signing(global_loadparm);
 	
 	status = smb_composite_connect(&io, parent_ctx, resolve_ctx, ev);
 	if (NT_STATUS_IS_OK(status)) {

Modified: branches/SAMBA_4_0/source/libcli/raw/libcliraw.h
===================================================================
--- branches/SAMBA_4_0/source/libcli/raw/libcliraw.h	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/libcli/raw/libcliraw.h	2008-01-03 17:21:58 UTC (rev 26651)
@@ -97,6 +97,7 @@
 	uint32_t max_xmit;
 	uint16_t max_mux;
 	int request_timeout;
+	enum smb_signing_state signing;
 };
 
 /* this is the context for the client transport layer */

Modified: branches/SAMBA_4_0/source/libcli/raw/smb_signing.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/raw/smb_signing.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/libcli/raw/smb_signing.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -383,7 +383,7 @@
 		return false;
 	}
 	
-	switch (lp_client_signing(global_loadparm)) {
+	switch (transport->options.signing) {
 	case SMB_SIGNING_OFF:
 		transport->negotiate.sign_info.allow_smb_signing = false;
 		break;

Modified: branches/SAMBA_4_0/source/libcli/smb_composite/connect.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/smb_composite/connect.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/libcli/smb_composite/connect.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -309,7 +309,8 @@
 	state->transport = smbcli_transport_init(state->sock, state, true, 
 						 io->in.max_xmit,
 						 io->in.max_mux,
-						 io->in.use_spnego);
+						 io->in.use_spnego,
+						 io->in.signing);
 	NT_STATUS_HAVE_NO_MEMORY(state->transport);
 
 	if (is_ipaddress(state->sock->hostname) &&

Modified: branches/SAMBA_4_0/source/libcli/smb_composite/fetchfile.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/smb_composite/fetchfile.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/libcli/smb_composite/fetchfile.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -154,7 +154,8 @@
 	state->connect->in.unicode = lp_unicode(global_loadparm);
 	state->connect->in.use_spnego = lp_use_spnego(global_loadparm) && 
 		lp_nt_status_support(global_loadparm);
-
+	state->connect->in.signing = lp_client_signing(global_loadparm);
+	
 	state->creq = smb_composite_connect_send(state->connect, state, 
 						 lp_resolve_context(global_loadparm), event_ctx);
 	if (state->creq == NULL) goto failed;

Modified: branches/SAMBA_4_0/source/libcli/smb_composite/fsinfo.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/smb_composite/fsinfo.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/libcli/smb_composite/fsinfo.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -160,6 +160,7 @@
 	state->connect->in.unicode = lp_unicode(global_loadparm);
 	state->connect->in.use_spnego = lp_use_spnego(global_loadparm) && 
 		lp_nt_status_support(global_loadparm);
+	state->connect->in.signing = lp_client_signing(global_loadparm);
 
 	c->state = COMPOSITE_STATE_IN_PROGRESS;
 	state->stage = FSINFO_CONNECT;

Modified: branches/SAMBA_4_0/source/libcli/smb_composite/smb_composite.h
===================================================================
--- branches/SAMBA_4_0/source/libcli/smb_composite/smb_composite.h	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/libcli/smb_composite/smb_composite.h	2008-01-03 17:21:58 UTC (rev 26651)
@@ -27,7 +27,9 @@
   particularly designed to be used in async applications
 */
 
+#include "libcli/raw/signing.h"
 
+
 /*
   a composite open/read(s)/close request that loads a whole file
   into memory. Used as a demo of the composite system.
@@ -97,6 +99,7 @@
 		int max_xmit;
 		int max_mux;
 		int max_protocol;
+		enum smb_signing_state signing;
 	} in;
 	struct {
 		struct smbcli_tree *tree;

Modified: branches/SAMBA_4_0/source/librpc/rpc/dcerpc_connect.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/rpc/dcerpc_connect.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/librpc/rpc/dcerpc_connect.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -125,6 +125,7 @@
 	conn->in.max_protocol = lp_cli_maxprotocol(lp_ctx);
 	conn->in.unicode = lp_unicode(lp_ctx);
 	conn->in.use_spnego = lp_use_spnego(lp_ctx) && lp_nt_status_support(lp_ctx);
+	conn->in.signing = lp_client_signing(lp_ctx);
 
 	/*
 	 * provide proper credentials - user supplied, but allow a

Modified: branches/SAMBA_4_0/source/ntvfs/cifs/vfs_cifs.c
===================================================================
--- branches/SAMBA_4_0/source/ntvfs/cifs/vfs_cifs.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/ntvfs/cifs/vfs_cifs.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -208,6 +208,7 @@
 	io.in.max_protocol = lp_cli_maxprotocol(ntvfs->ctx->lp_ctx);
 	io.in.unicode = lp_unicode(ntvfs->ctx->lp_ctx);
 	io.in.use_spnego = lp_use_spnego(ntvfs->ctx->lp_ctx) && lp_nt_status_support(ntvfs->ctx->lp_ctx);
+	io.in.signing = lp_client_signing(ntvfs->ctx->lp_ctx);
 	
 	creq = smb_composite_connect_send(&io, private, 
 					  lp_resolve_context(ntvfs->ctx->lp_ctx),

Modified: branches/SAMBA_4_0/source/scripting/ejs/smbcalls_cli.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/smbcalls_cli.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/scripting/ejs/smbcalls_cli.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -451,6 +451,7 @@
 	io.in.max_protocol = lp_cli_maxprotocol(global_loadparm);
 	io.in.unicode = lp_unicode(global_loadparm);
 	io.in.use_spnego = lp_use_spnego(global_loadparm) && lp_nt_status_support(global_loadparm);
+	io.in.signing = lp_client_signing(global_loadparm);
 
 	result = smb_composite_connect(&io, mem_ctx, 
 				       lp_resolve_context(global_loadparm), 

Modified: branches/SAMBA_4_0/source/torture/basic/base.c
===================================================================
--- branches/SAMBA_4_0/source/torture/basic/base.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/torture/basic/base.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -51,7 +51,7 @@
 		goto failed;
 	}
 
-	if (!smbcli_socket_connect(cli, host, lp_smb_ports(tctx->lp_ctx), lp_resolve_context(tctx->lp_ctx), lp_max_xmit(tctx->lp_ctx), lp_maxmux(tctx->lp_ctx), lp_nt_status_support(tctx->lp_ctx) && lp_use_spnego(tctx->lp_ctx))) {
+	if (!smbcli_socket_connect(cli, host, lp_smb_ports(tctx->lp_ctx), lp_resolve_context(tctx->lp_ctx), lp_max_xmit(tctx->lp_ctx), lp_maxmux(tctx->lp_ctx), lp_nt_status_support(tctx->lp_ctx) && lp_use_spnego(tctx->lp_ctx), lp_client_signing(tctx->lp_ctx))) {
 		torture_comment(tctx, "Failed to connect with %s\n", host);
 		goto failed;
 	}

Modified: branches/SAMBA_4_0/source/torture/basic/misc.c
===================================================================
--- branches/SAMBA_4_0/source/torture/basic/misc.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/torture/basic/misc.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -827,6 +827,7 @@
 	smb->in.max_protocol = lp_cli_maxprotocol(tctx->lp_ctx);
 	smb->in.unicode = lp_unicode(tctx->lp_ctx);
 	smb->in.use_spnego = lp_use_spnego(tctx->lp_ctx) && lp_nt_status_support(tctx->lp_ctx);
+	smb->in.signing = lp_client_signing(tctx->lp_ctx);
 	
 	return smb_composite_connect_send(smb,mem_ctx,
 					  lp_resolve_context(tctx->lp_ctx),ev);

Modified: branches/SAMBA_4_0/source/torture/raw/lockbench.c
===================================================================
--- branches/SAMBA_4_0/source/torture/raw/lockbench.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/torture/raw/lockbench.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -199,6 +199,7 @@
 	io->in.max_protocol = lp_cli_maxprotocol(state->tctx->lp_ctx);
 	io->in.unicode = lp_unicode(state->tctx->lp_ctx);
 	io->in.use_spnego = lp_use_spnego(state->tctx->lp_ctx) && lp_nt_status_support(state->tctx->lp_ctx);
+	io->in.signing = lp_client_signing(state->tctx->lp_ctx);
 
 	/* kill off the remnants of the old connection */
 	talloc_free(state->tree);

Modified: branches/SAMBA_4_0/source/torture/raw/openbench.c
===================================================================
--- branches/SAMBA_4_0/source/torture/raw/openbench.c	2008-01-03 17:21:50 UTC (rev 26650)
+++ branches/SAMBA_4_0/source/torture/raw/openbench.c	2008-01-03 17:21:58 UTC (rev 26651)
@@ -137,6 +137,7 @@
 	io->in.max_protocol = lp_cli_maxprotocol(state->tctx->lp_ctx);
 	io->in.unicode = lp_unicode(state->tctx->lp_ctx);
 	io->in.use_spnego = lp_use_spnego(state->tctx->lp_ctx) && lp_nt_status_support(state->tctx->lp_ctx);
+	io->in.signing = lp_client_signing(state->tctx->lp_ctx);
 
 	/* kill off the remnants of the old connection */
 	talloc_free(state->tree);



More information about the samba-cvs mailing list