[SCM] Samba Shared Repository - branch master updated

Stefan Metzmacher metze at samba.org
Mon Aug 1 22:07:03 MDT 2011


The branch, master has been updated
       via  ac8096e s4:kdc: fix compiler warning
       via  6d1ef3f s3:libsmb/libsmb_server: make use of cli_set_timeout()
       via  91b0aab s3:libsmb/cli*: make use of cli_state_protocol()
       via  5e59a36 s3:client: make use of cli_state_protocol()
       via  ec9b613 s3:auth_server: make use of cli_state_protocol()
       via  da53434 s3:spoolss: make use of cli_state_protocol()
       via  32a4773 s3:masktest: make use of cli_state_protocol()
       via  ed6b8de s3:net_rpc: make use of cli_state_protocol()
       via  a60b169 s3:winbindd_cm: make use of cli_state_protocol()
       via  233336d s3:libsmb: add cli_state_protocol()
       via  c399ad4 s3:include: change cli->protocol to enum protocol_types
       via  6e8a6e0 s3:libsmb/cli*: make use of cli_state_capabilities()
       via  ffd99c5 s3:libsmb/libsmb_*: make use of cli_state_capabilities()
       via  a4d79a3 s3:torture: make use of cli_state_capabilities()
       via  3ce648a s3:winbindd_cm: make use of cli_state_capabilities()
       via  f934aa1 s3:include: make use of cli_state_capabilities() in SERVER_HAS_UNIX_CIFS()
       via  24c5427 s3:libsmb: add cli_state_capabilities()
       via  a83e769 s3:smb2cli_base: smb2cli_req_send() needs to call tevent_req_post() on error
      from  3427029 samba-tool: Don't install -c version, which is now deprecated.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit ac8096e69d7357bac5430cde1d713a04acf58b57
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Aug 2 03:57:50 2011 +0200

    s4:kdc: fix compiler warning
    
    metze
    
    Autobuild-User: Stefan Metzmacher <metze at samba.org>
    Autobuild-Date: Tue Aug  2 06:06:15 CEST 2011 on sn-devel-104

commit 6d1ef3faeef25cea6783760f262c4639d3d54704
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Aug 2 04:16:01 2011 +0200

    s3:libsmb/libsmb_server: make use of cli_set_timeout()
    
    metze

commit 91b0aab3fc5076a6399e6970cb7b2f1a442d5566
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 17:01:42 2011 +0200

    s3:libsmb/cli*: make use of cli_state_protocol()
    
    metze

commit 5e59a36beb7d200fc284d28812baa7e46adeced1
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 17:01:42 2011 +0200

    s3:client: make use of cli_state_protocol()
    
    metze

commit ec9b6134b7342576fa0e09e93e7901da6fb0aea2
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 17:00:24 2011 +0200

    s3:auth_server: make use of cli_state_protocol()
    
    metze

commit da534343914c7b7b5cf7300a3cff2614b9e613e5
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 16:59:54 2011 +0200

    s3:spoolss: make use of cli_state_protocol()
    
    metze

commit 32a47730da3e92b61b3cba4530962a801b959aca
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 16:59:34 2011 +0200

    s3:masktest: make use of cli_state_protocol()
    
    metze

commit ed6b8deea79e1b3eaef12e8091ea8609e85c4c6c
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 16:59:10 2011 +0200

    s3:net_rpc: make use of cli_state_protocol()
    
    metze

commit a60b1695b1d783da4b460f357772fb3cde589134
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 16:58:49 2011 +0200

    s3:winbindd_cm: make use of cli_state_protocol()
    
    metze

commit 233336d0c2f07e202277571c540b5a64b7b0bb63
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sat Jul 30 12:04:37 2011 +0200

    s3:libsmb: add cli_state_protocol()
    
    metze

commit c399ad4cdd313584fe072b84bfe87ec03182fb5c
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Aug 2 03:51:38 2011 +0200

    s3:include: change cli->protocol to enum protocol_types
    
    metze

commit 6e8a6e033f4040630995f0c2f1889fbc251cb7dc
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 16:42:23 2011 +0200

    s3:libsmb/cli*: make use of cli_state_capabilities()
    
    metze

commit ffd99c5de56b7e9f97a56b91983c966e88749090
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 16:41:19 2011 +0200

    s3:libsmb/libsmb_*: make use of cli_state_capabilities()
    
    metze

commit a4d79a379979ea6e32ea957830d2769a280440f2
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 16:40:45 2011 +0200

    s3:torture: make use of cli_state_capabilities()
    
    metze

commit 3ce648aee4fb961d0ee23669b53524786ace8b98
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 16:39:55 2011 +0200

    s3:winbindd_cm: make use of cli_state_capabilities()
    
    metze

commit f934aa1aeac9e04eb758dad67afc4f18e605d5f3
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 16:39:20 2011 +0200

    s3:include: make use of cli_state_capabilities() in SERVER_HAS_UNIX_CIFS()
    
    metze

commit 24c5427810e76c733de8141ff3ad7c65fcb8ec91
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sat Jul 30 12:04:16 2011 +0200

    s3:libsmb: add cli_state_capabilities()
    
    metze

commit a83e769b010700b258d0b395709fae0111714d9c
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jul 18 14:38:33 2011 +0200

    s3:smb2cli_base: smb2cli_req_send() needs to call tevent_req_post() on error
    
    metze

-----------------------------------------------------------------------

Summary of changes:
 source3/auth/auth_server.c                  |    2 +-
 source3/client/client.c                     |    2 +-
 source3/include/client.h                    |    2 +-
 source3/include/smb_macros.h                |    2 +-
 source3/libsmb/cliconnect.c                 |   28 +++++++++++++-------------
 source3/libsmb/clidfs.c                     |   10 ++++----
 source3/libsmb/clientgen.c                  |   20 ++++++++++++++----
 source3/libsmb/clifile.c                    |    4 +-
 source3/libsmb/clilist.c                    |    4 +-
 source3/libsmb/clireadwrite.c               |    8 +++---
 source3/libsmb/libsmb_file.c                |    2 +-
 source3/libsmb/libsmb_server.c              |    4 +-
 source3/libsmb/libsmb_stat.c                |    2 +-
 source3/libsmb/proto.h                      |    2 +
 source3/libsmb/smb2cli_base.c               |    2 +-
 source3/rpc_server/spoolss/srv_spoolss_nt.c |    2 +-
 source3/torture/masktest.c                  |    2 +-
 source3/torture/torture.c                   |    2 +-
 source3/utils/net_rpc.c                     |    2 +-
 source3/winbindd/winbindd_cm.c              |    4 +-
 source4/kdc/db-glue.c                       |    2 +-
 21 files changed, 60 insertions(+), 48 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/auth/auth_server.c b/source3/auth/auth_server.c
index f298599..4582d98 100644
--- a/source3/auth/auth_server.c
+++ b/source3/auth/auth_server.c
@@ -116,7 +116,7 @@ static struct cli_state *server_cryptkey(TALLOC_CTX *mem_ctx)
 		return NULL;
 	}
 
-	if (cli->protocol < PROTOCOL_LANMAN2 ||
+	if (cli_state_protocol(cli) < PROTOCOL_LANMAN2 ||
 	    !(cli->sec_mode & NEGOTIATE_SECURITY_USER_LEVEL)) {
 		TALLOC_FREE(mutex);
 		DEBUG(1,("%s isn't in user level security mode\n",desthost));
diff --git a/source3/client/client.c b/source3/client/client.c
index 44a151e..110614e 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -426,7 +426,7 @@ static int do_cd(const char *new_dir)
 	/* Use a trans2_qpathinfo to test directories for modern servers.
 	   Except Win9x doesn't support the qpathinfo_basic() call..... */
 
-	if (targetcli->protocol > PROTOCOL_LANMAN2 && !targetcli->win95) {
+	if (cli_state_protocol(targetcli) > PROTOCOL_LANMAN2 && !targetcli->win95) {
 
 		status = cli_qpathinfo_basic(targetcli, targetpath, &sbuf,
 					     &attributes);
diff --git a/source3/include/client.h b/source3/include/client.h
index c4f011d..a4d4321 100644
--- a/source3/include/client.h
+++ b/source3/include/client.h
@@ -51,7 +51,7 @@ struct cli_state {
 	 * A list of subsidiary connections for DFS.
 	 */
         struct cli_state *prev, *next;
-	int protocol;
+	enum protocol_types protocol;
 	int sec_mode;
 	int rap_error;
 	NTSTATUS raw_status; /* maybe via NT_STATUS_DOS() */
diff --git a/source3/include/smb_macros.h b/source3/include/smb_macros.h
index 37ea1b4..aba1455 100644
--- a/source3/include/smb_macros.h
+++ b/source3/include/smb_macros.h
@@ -174,7 +174,7 @@ copy an IP address from one buffer to another
  Return True if a server has CIFS UNIX capabilities.
 ********************************************************************/
 
-#define SERVER_HAS_UNIX_CIFS(c) ((c)->capabilities & CAP_UNIX)
+#define SERVER_HAS_UNIX_CIFS(c) (cli_state_capabilities(c) & CAP_UNIX)
 
 /****************************************************************************
  Make a filename into unix format.
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c
index 4f703b3..d91d241 100644
--- a/source3/libsmb/cliconnect.c
+++ b/source3/libsmb/cliconnect.c
@@ -379,7 +379,7 @@ static uint32 cli_session_setup_capabilities(struct cli_state *cli)
 	if (cli->use_level_II_oplocks)
 		capabilities |= CAP_LEVEL_II_OPLOCKS;
 
-	capabilities |= (cli->capabilities & (CAP_UNICODE|CAP_LARGE_FILES|CAP_LARGE_READX|CAP_LARGE_WRITEX|CAP_DFS));
+	capabilities |= (cli_state_capabilities(cli) & (CAP_UNICODE|CAP_LARGE_FILES|CAP_LARGE_READX|CAP_LARGE_WRITEX|CAP_DFS));
 	return capabilities;
 }
 
@@ -1995,7 +1995,7 @@ NTSTATUS cli_session_setup(struct cli_state *cli,
 		workgroup = user2;
 	}
 
-	if (cli->protocol < PROTOCOL_LANMAN1) {
+	if (cli_state_protocol(cli) < PROTOCOL_LANMAN1) {
 		return NT_STATUS_OK;
 	}
 
@@ -2005,7 +2005,7 @@ NTSTATUS cli_session_setup(struct cli_state *cli,
 
 	/* if its an older server then we have to use the older request format */
 
-	if (cli->protocol < PROTOCOL_NT1) {
+	if (cli_state_protocol(cli) < PROTOCOL_NT1) {
 		if (!lp_client_lanman_auth() && passlen != 24 && (*pass)) {
 			DEBUG(1, ("Server requested LM password but 'client lanman auth = no'"
 				  " or 'client ntlmv2 auth = yes'\n"));
@@ -2050,7 +2050,7 @@ NTSTATUS cli_session_setup(struct cli_state *cli,
 
 	/* if the server supports extended security then use SPNEGO */
 
-	if (cli->capabilities & CAP_EXTENDED_SECURITY) {
+	if (cli_state_capabilities(cli) & CAP_EXTENDED_SECURITY) {
 		ADS_STATUS status = cli_session_setup_spnego(cli, user, pass,
 							     workgroup, NULL);
 		if (!ADS_ERR_OK(status)) {
@@ -2390,7 +2390,7 @@ static void cli_tcon_andx_done(struct tevent_req *subreq)
 		}
 	}
 
-	if ((cli->protocol >= PROTOCOL_NT1) && (num_bytes == 3)) {
+	if ((cli_state_protocol(cli) >= PROTOCOL_NT1) && (num_bytes == 3)) {
 		/* almost certainly win95 - enable bug fixes */
 		cli->win95 = True;
 	}
@@ -2402,7 +2402,7 @@ static void cli_tcon_andx_done(struct tevent_req *subreq)
 
 	cli->dfsroot = false;
 
-	if ((wct > 2) && (cli->protocol >= PROTOCOL_LANMAN2)) {
+	if ((wct > 2) && (cli_state_protocol(cli) >= PROTOCOL_LANMAN2)) {
 		cli->dfsroot = ((SVAL(vwv+2, 0) & SMB_SHARE_IN_DFS) != 0);
 	}
 
@@ -2559,13 +2559,13 @@ struct tevent_req *cli_negprot_send(TALLOC_CTX *mem_ctx,
 	}
 	state->cli = cli;
 
-	if (cli->protocol < PROTOCOL_NT1)
+	if (cli_state_protocol(cli) < PROTOCOL_NT1)
 		cli->use_spnego = False;
 
 	/* setup the protocol strings */
 	for (numprots=0; numprots < ARRAY_SIZE(prots); numprots++) {
 		uint8_t c = 2;
-		if (prots[numprots].prot > cli->protocol) {
+		if (prots[numprots].prot > cli_state_protocol(cli)) {
 			break;
 		}
 		bytes = (uint8_t *)talloc_append_blob(
@@ -2618,21 +2618,21 @@ static void cli_negprot_done(struct tevent_req *subreq)
 	protnum = SVAL(vwv, 0);
 
 	if ((protnum >= ARRAY_SIZE(prots))
-	    || (prots[protnum].prot > cli->protocol)) {
+	    || (prots[protnum].prot > cli_state_protocol(cli))) {
 		tevent_req_nterror(req, NT_STATUS_INVALID_NETWORK_RESPONSE);
 		return;
 	}
 
 	cli->protocol = prots[protnum].prot;
 
-	if ((cli->protocol < PROTOCOL_NT1) &&
+	if ((cli_state_protocol(cli) < PROTOCOL_NT1) &&
 	    client_is_signing_mandatory(cli)) {
 		DEBUG(0,("cli_negprot: SMB signing is mandatory and the selected protocol level doesn't support it.\n"));
 		tevent_req_nterror(req, NT_STATUS_ACCESS_DENIED);
 		return;
 	}
 
-	if (cli->protocol >= PROTOCOL_NT1) {    
+	if (cli_state_protocol(cli) >= PROTOCOL_NT1) {
 		struct timespec ts;
 		bool negotiated_smb_signing = false;
 
@@ -2648,12 +2648,12 @@ static void cli_negprot_done(struct tevent_req *subreq)
 		cli->servertime = ts.tv_sec;
 		cli->secblob = data_blob(bytes, num_bytes);
 		cli->capabilities = IVAL(vwv + 9, 1);
-		if (cli->capabilities & CAP_RAW_MODE) {
+		if (cli_state_capabilities(cli) & CAP_RAW_MODE) {
 			cli->readbraw_supported = True;
 			cli->writebraw_supported = True;      
 		}
 		/* work out if they sent us a workgroup */
-		if (!(cli->capabilities & CAP_EXTENDED_SECURITY) &&
+		if (!(cli_state_capabilities(cli) & CAP_EXTENDED_SECURITY) &&
 		    smb_buflen(inbuf) > 8) {
 			ssize_t ret;
 			status = smb_bytes_talloc_string(
@@ -2695,7 +2695,7 @@ static void cli_negprot_done(struct tevent_req *subreq)
 			cli_set_signing_negotiated(cli);
 		}
 
-	} else if (cli->protocol >= PROTOCOL_LANMAN1) {
+	} else if (cli_state_protocol(cli) >= PROTOCOL_LANMAN1) {
 		cli->use_spnego = False;
 		cli->sec_mode = SVAL(vwv + 1, 0);
 		cli->max_xmit = SVAL(vwv + 2, 0);
diff --git a/source3/libsmb/clidfs.c b/source3/libsmb/clidfs.c
index d729649..e54da6f 100644
--- a/source3/libsmb/clidfs.c
+++ b/source3/libsmb/clidfs.c
@@ -201,7 +201,7 @@ static NTSTATUS do_connect(TALLOC_CTX *ctx,
 	   here before trying to connect to the original share.
 	   cli_check_msdfs_proxy() will fail if it is a normal share. */
 
-	if ((c->capabilities & CAP_DFS) &&
+	if ((cli_state_capabilities(c) & CAP_DFS) &&
 			cli_check_msdfs_proxy(ctx, c, sharename,
 				&newserver, &newshare,
 				force_encrypt,
@@ -589,10 +589,10 @@ static bool cli_dfs_check_error(struct cli_state *cli, NTSTATUS expected,
 {
 	/* only deal with DS when we negotiated NT_STATUS codes and UNICODE */
 
-	if (!(cli->capabilities & CAP_UNICODE)) {
+	if (!(cli_state_capabilities(cli) & CAP_UNICODE)) {
 		return false;
 	}
-	if (!(cli->capabilities & CAP_STATUS32)) {
+	if (!(cli_state_capabilities(cli) & CAP_STATUS32)) {
 		return false;
 	}
 	if (NT_STATUS_EQUAL(status, expected)) {
@@ -858,7 +858,7 @@ NTSTATUS cli_resolve_path(TALLOC_CTX *ctx,
 			     dfs_auth_info,
 			     false,
 			     (rootcli->trans_enc_state != NULL),
-			     rootcli->protocol,
+			     cli_state_protocol(rootcli),
 			     0,
 			     0x20,
 			     &cli_ipc);
@@ -909,7 +909,7 @@ NTSTATUS cli_resolve_path(TALLOC_CTX *ctx,
 			     dfs_auth_info,
 			     false,
 			     (rootcli->trans_enc_state != NULL),
-			     rootcli->protocol,
+			     cli_state_protocol(rootcli),
 			     0,
 			     0x20,
 			     targetcli);
diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c
index 559be92..f9bb781 100644
--- a/source3/libsmb/clientgen.c
+++ b/source3/libsmb/clientgen.c
@@ -56,7 +56,7 @@ unsigned int cli_set_timeout(struct cli_state *cli, unsigned int timeout)
 
 bool cli_ucs2(struct cli_state *cli)
 {
-	return ((cli->capabilities & CAP_UNICODE) != 0);
+	return ((cli_state_capabilities(cli) & CAP_UNICODE) != 0);
 }
 
 /****************************************************************************
@@ -73,7 +73,7 @@ void cli_setup_packet_buf(struct cli_state *cli, char *buf)
 	SSVAL(buf,smb_uid, cli_state_get_uid(cli));
 	SSVAL(buf,smb_mid,cli->smb1.mid);
 
-	if (cli->protocol <= PROTOCOL_CORE) {
+	if (cli_state_protocol(cli) <= PROTOCOL_CORE) {
 		return;
 	}
 
@@ -84,11 +84,11 @@ void cli_setup_packet_buf(struct cli_state *cli, char *buf)
 		SCVAL(buf,smb_flg,0x8);
 	}
 	flags2 = FLAGS2_LONG_PATH_COMPONENTS;
-	if (cli->capabilities & CAP_UNICODE)
+	if (cli_state_capabilities(cli) & CAP_UNICODE)
 		flags2 |= FLAGS2_UNICODE_STRINGS;
-	if ((cli->capabilities & CAP_DFS) && cli->dfsroot)
+	if ((cli_state_capabilities(cli) & CAP_DFS) && cli->dfsroot)
 		flags2 |= FLAGS2_DFS_PATHNAMES;
-	if (cli->capabilities & CAP_STATUS32)
+	if (cli_state_capabilities(cli) & CAP_STATUS32)
 		flags2 |= FLAGS2_32_BIT_ERROR_CODES;
 	if (cli->use_spnego)
 		flags2 |= FLAGS2_EXTENDED_SECURITY;
@@ -446,6 +446,16 @@ bool cli_set_case_sensitive(struct cli_state *cli, bool case_sensitive)
 	return ret;
 }
 
+enum protocol_types cli_state_protocol(struct cli_state *cli)
+{
+	return cli->protocol;
+}
+
+uint32_t cli_state_capabilities(struct cli_state *cli)
+{
+	return cli->capabilities;
+}
+
 struct cli_echo_state {
 	uint16_t vwv[1];
 	DATA_BLOB data;
diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c
index 59cdb7b..812fcde 100644
--- a/source3/libsmb/clifile.c
+++ b/source3/libsmb/clifile.c
@@ -2765,7 +2765,7 @@ NTSTATUS cli_lock64(struct cli_state *cli, uint16_t fnum,
 	int ltype;
 	NTSTATUS status;
 
-	if (! (cli->capabilities & CAP_LARGE_FILES)) {
+	if (! (cli_state_capabilities(cli) & CAP_LARGE_FILES)) {
 		return cli_lock32(cli, fnum, offset, len, timeout, lock_type);
 	}
 
@@ -2878,7 +2878,7 @@ NTSTATUS cli_unlock64(struct cli_state *cli,
 	struct tevent_req *req;
 	NTSTATUS status = NT_STATUS_OK;
 
-	if (! (cli->capabilities & CAP_LARGE_FILES)) {
+	if (! (cli_state_capabilities(cli) & CAP_LARGE_FILES)) {
 		return cli_unlock(cli, fnum, offset, len);
 	}
 
diff --git a/source3/libsmb/clilist.c b/source3/libsmb/clilist.c
index 55a6636..ba3dd2b 100644
--- a/source3/libsmb/clilist.c
+++ b/source3/libsmb/clilist.c
@@ -875,7 +875,7 @@ struct tevent_req *cli_list_send(TALLOC_CTX *mem_ctx,
 		return NULL;
 	}
 
-	if (cli->protocol <= PROTOCOL_LANMAN1) {
+	if (cli_state_protocol(cli) <= PROTOCOL_LANMAN1) {
 		subreq = cli_list_old_send(state, ev, cli, mask, attribute);
 		state->recv_fn = cli_list_old_recv;
 	} else {
@@ -946,7 +946,7 @@ NTSTATUS cli_list(struct cli_state *cli, const char *mask, uint16 attribute,
 		goto fail;
 	}
 
-	info_level = (cli->capabilities & CAP_NT_SMBS)
+	info_level = (cli_state_capabilities(cli) & CAP_NT_SMBS)
 		? SMB_FIND_FILE_BOTH_DIRECTORY_INFO : SMB_FIND_INFO_STANDARD;
 
 	req = cli_list_send(frame, ev, cli, mask, attribute, info_level);
diff --git a/source3/libsmb/clireadwrite.c b/source3/libsmb/clireadwrite.c
index 413668d..2fe41b4 100644
--- a/source3/libsmb/clireadwrite.c
+++ b/source3/libsmb/clireadwrite.c
@@ -37,7 +37,7 @@ static size_t cli_read_max_bufsize(struct cli_state *cli)
 	    && (cli->server_posix_capabilities & CIFS_UNIX_LARGE_READ_CAP)) {
 		return CLI_SAMBA_MAX_POSIX_LARGE_READX_SIZE;
 	}
-	if (cli->capabilities & CAP_LARGE_READX) {
+	if (cli_state_capabilities(cli) & CAP_LARGE_READX) {
 		return cli->is_samba
 			? CLI_SAMBA_MAX_LARGE_READX_SIZE
 			: CLI_WINDOWS_MAX_LARGE_READX_SIZE;
@@ -62,7 +62,7 @@ static size_t cli_write_max_bufsize(struct cli_state *cli,
 	    !client_is_signing_on(cli) &&
 	    !cli_encryption_on(cli) &&
 	    (cli->server_posix_capabilities & CIFS_UNIX_LARGE_WRITE_CAP) &&
-	    (cli->capabilities & CAP_LARGE_FILES)) {
+	    (cli_state_capabilities(cli) & CAP_LARGE_FILES)) {
 		/* Only do massive writes if we can do them direct
 		 * with no signing or encrypting - not on a pipe. */
 		return CLI_SAMBA_MAX_POSIX_LARGE_WRITEX_SIZE;
@@ -72,7 +72,7 @@ static size_t cli_write_max_bufsize(struct cli_state *cli,
 		return CLI_SAMBA_MAX_LARGE_WRITEX_SIZE;
 	}
 
-	if (((cli->capabilities & CAP_LARGE_WRITEX) == 0)
+	if (((cli_state_capabilities(cli) & CAP_LARGE_WRITEX) == 0)
 	    || client_is_signing_on(cli)
 	    || strequal(cli->dev, "LPT1:")) {
 		size_t data_offset = smb_size - 4;
@@ -803,7 +803,7 @@ struct tevent_req *cli_write_andx_create(TALLOC_CTX *mem_ctx,
 {
 	struct tevent_req *req, *subreq;
 	struct cli_write_andx_state *state;
-	bool bigoffset = ((cli->capabilities & CAP_LARGE_FILES) != 0);
+	bool bigoffset = ((cli_state_capabilities(cli) & CAP_LARGE_FILES) != 0);
 	uint8_t wct = bigoffset ? 14 : 12;
 	size_t max_write = cli_write_max_bufsize(cli, mode, wct);
 	uint16_t *vwv;
diff --git a/source3/libsmb/libsmb_file.c b/source3/libsmb/libsmb_file.c
index 914b614..b5932c8 100644
--- a/source3/libsmb/libsmb_file.c
+++ b/source3/libsmb/libsmb_file.c
@@ -551,7 +551,7 @@ SMBC_getatr(SMBCCTX * context,
         }
 
 	/* if this is NT then don't bother with the getatr */
-	if (targetcli->capabilities & CAP_NT_SMBS) {
+	if (cli_state_capabilities(targetcli) & CAP_NT_SMBS) {
                 errno = EPERM;
 		TALLOC_FREE(frame);
                 return False;
diff --git a/source3/libsmb/libsmb_server.c b/source3/libsmb/libsmb_server.c
index a2ed529..6446252 100644
--- a/source3/libsmb/libsmb_server.c
+++ b/source3/libsmb/libsmb_server.c
@@ -436,7 +436,7 @@ SMBC_server_internal(TALLOC_CTX *ctx,
 		c->use_ccache = True;
 	}
 
-	c->timeout = smbc_getTimeout(context);
+	cli_set_timeout(c, smbc_getTimeout(context));
 
 	status = cli_negprot(c);
 
@@ -485,7 +485,7 @@ SMBC_server_internal(TALLOC_CTX *ctx,
 	   here before trying to connect to the original share.
 	   cli_check_msdfs_proxy() will fail if it is a normal share. */
 
-	if ((c->capabilities & CAP_DFS) &&
+	if ((cli_state_capabilities(c) & CAP_DFS) &&
 			cli_check_msdfs_proxy(ctx, c, share,
 				&newserver, &newshare,
 				/* FIXME: cli_check_msdfs_proxy() does
diff --git a/source3/libsmb/libsmb_stat.c b/source3/libsmb/libsmb_stat.c
index c40db4a..30b9291 100644
--- a/source3/libsmb/libsmb_stat.c
+++ b/source3/libsmb/libsmb_stat.c
@@ -465,7 +465,7 @@ SMBC_fstatvfs_ctx(SMBCCTX *context,
         }
 
         /* See if DFS is supported */
-	if ((cli->capabilities & CAP_DFS) &&  cli->dfsroot) {
+	if ((cli_state_capabilities(cli) & CAP_DFS) &&  cli->dfsroot) {
                 flags |= SMBC_VFS_FEATURE_DFS;
         }
 
diff --git a/source3/libsmb/proto.h b/source3/libsmb/proto.h
index 1d2da7f..005ccf6 100644
--- a/source3/libsmb/proto.h
+++ b/source3/libsmb/proto.h
@@ -179,6 +179,8 @@ uint16_t cli_state_set_tid(struct cli_state *cli, uint16_t tid);
 uint16_t cli_state_get_uid(struct cli_state *cli);
 uint16_t cli_state_set_uid(struct cli_state *cli, uint16_t uid);
 bool cli_set_case_sensitive(struct cli_state *cli, bool case_sensitive);
+enum protocol_types cli_state_protocol(struct cli_state *cli);
+uint32_t cli_state_capabilities(struct cli_state *cli);
 struct tevent_req *cli_echo_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
 				 struct cli_state *cli, uint16_t num_echos,
 				 DATA_BLOB data);
diff --git a/source3/libsmb/smb2cli_base.c b/source3/libsmb/smb2cli_base.c
index 88b8904..e7ba517 100644
--- a/source3/libsmb/smb2cli_base.c
+++ b/source3/libsmb/smb2cli_base.c
@@ -321,7 +321,7 @@ struct tevent_req *smb2cli_req_send(TALLOC_CTX *mem_ctx,
 		return NULL;
 	}
 	if (!tevent_req_is_in_progress(req)) {
-		return req;
+		return tevent_req_post(req, ev);
 	}
 	status = smb2cli_req_compound_submit(&req, 1);
 	if (tevent_req_nterror(req, status)) {
diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
index b2200af..ec6f49e 100644
--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
+++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
@@ -2565,7 +2565,7 @@ static bool spoolss_connect_to_client(struct rpc_pipe_client **pp_pipe,
 		return false;
 	}
 
-	if ( the_cli->protocol != PROTOCOL_NT1 ) {
+	if ( cli_state_protocol(the_cli) != PROTOCOL_NT1 ) {
 		DEBUG(0,("spoolss_connect_to_client: machine %s didn't negotiate NT protocol.\n", remote_machine));
 		cli_shutdown(the_cli);
 		return false;
diff --git a/source3/torture/masktest.c b/source3/torture/masktest.c
index 26acd05..05f9c60 100644
--- a/source3/torture/masktest.c
+++ b/source3/torture/masktest.c
@@ -144,7 +144,7 @@ static bool reg_match_one(struct cli_state *cli, const char *pattern, const char
 
 	if (strcmp(file,"..") == 0) file = ".";
 
-	return ms_fnmatch(pattern, file, cli->protocol, False) == 0;
+	return ms_fnmatch(pattern, file, cli_state_protocol(cli), False) == 0;
 }
 
 static char *reg_test(struct cli_state *cli, const char *pattern, const char *long_name, const char *short_name)
diff --git a/source3/torture/torture.c b/source3/torture/torture.c
index 9de54b3..03a0cdf 100644
--- a/source3/torture/torture.c
+++ b/source3/torture/torture.c
@@ -4503,7 +4503,7 @@ static bool run_properties(int dummy)
 
 	cli_sockopt(cli, sockops);
 
-	d_printf("Capabilities 0x%08x\n", cli->capabilities);
+	d_printf("Capabilities 0x%08x\n", cli_state_capabilities(cli));
 
 	if (!torture_close_connection(cli)) {
 		correct = False;
diff --git a/source3/utils/net_rpc.c b/source3/utils/net_rpc.c
index 58d6941..592885a 100644
--- a/source3/utils/net_rpc.c
+++ b/source3/utils/net_rpc.c
@@ -7099,7 +7099,7 @@ bool net_rpc_check(struct net_context *c, unsigned flags)
 	status = cli_negprot(cli);
 	if (!NT_STATUS_IS_OK(status))
 		goto done;
-	if (cli->protocol < PROTOCOL_NT1)
+	if (cli_state_protocol(cli) < PROTOCOL_NT1)
 		goto done;
 
 	ret = true;
diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c
index 2a3d717..3dd129f 100644
--- a/source3/winbindd/winbindd_cm.c
+++ b/source3/winbindd/winbindd_cm.c
@@ -825,8 +825,8 @@ static NTSTATUS cm_prepare_connection(const struct winbindd_domain *domain,
 	}
 
 	if (!is_dc_trusted_domain_situation(domain->name) &&
-	    (*cli)->protocol >= PROTOCOL_NT1 &&
-	    (*cli)->capabilities & CAP_EXTENDED_SECURITY)
+	    cli_state_protocol(*cli) >= PROTOCOL_NT1 &&
+	    cli_state_capabilities(*cli) & CAP_EXTENDED_SECURITY)
 	{
 		ADS_STATUS ads_status;
 
diff --git a/source4/kdc/db-glue.c b/source4/kdc/db-glue.c
index 88fecdd..0bdad7b 100644


-- 
Samba Shared Repository


More information about the samba-cvs mailing list