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 <me...@samba.org> Date: Tue Aug 2 03:57:50 2011 +0200 s4:kdc: fix compiler warning metze Autobuild-User: Stefan Metzmacher <me...@samba.org> Autobuild-Date: Tue Aug 2 06:06:15 CEST 2011 on sn-devel-104 commit 6d1ef3faeef25cea6783760f262c4639d3d54704 Author: Stefan Metzmacher <me...@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 <me...@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 <me...@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 <me...@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 <me...@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 <me...@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 <me...@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 <me...@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 <me...@samba.org> Date: Sat Jul 30 12:04:37 2011 +0200 s3:libsmb: add cli_state_protocol() metze commit c399ad4cdd313584fe072b84bfe87ec03182fb5c Author: Stefan Metzmacher <me...@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 <me...@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 <me...@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 <me...@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 <me...@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 <me...@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 <me...@samba.org> Date: Sat Jul 30 12:04:16 2011 +0200 s3:libsmb: add cli_state_capabilities() metze commit a83e769b010700b258d0b395709fae0111714d9c Author: Stefan Metzmacher <me...@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