summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/client.h2
-rw-r--r--source3/libsmb/cliconnect.c4
-rw-r--r--source3/torture/torture.c6
3 files changed, 10 insertions, 2 deletions
diff --git a/source3/include/client.h b/source3/include/client.h
index 3461dfa47a..c314c9c6a9 100644
--- a/source3/include/client.h
+++ b/source3/include/client.h
@@ -289,5 +289,7 @@ typedef struct file_info {
#define CLI_FULL_CONNECTION_USE_KERBEROS 0x0002
#define CLI_FULL_CONNECTION_ANONYMOUS_FALLBACK 0x0004
#define CLI_FULL_CONNECTION_FALLBACK_AFTER_KERBEROS 0x0008
+#define CLI_FULL_CONNECTION_OPLOCKS 0x0010
+#define CLI_FULL_CONNECTION_LEVEL_II_OPLOCKS 0x0020
#endif /* _CLIENT_H */
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c
index 34c0825c07..53a812d222 100644
--- a/source3/libsmb/cliconnect.c
+++ b/source3/libsmb/cliconnect.c
@@ -2169,6 +2169,10 @@ NTSTATUS cli_full_connection(struct cli_state **output_cli,
return nt_status;
}
+ cli->use_oplocks = ((flags & CLI_FULL_CONNECTION_OPLOCKS) != 0);
+ cli->use_level_II_oplocks =
+ ((flags & CLI_FULL_CONNECTION_LEVEL_II_OPLOCKS) != 0);
+
nt_status = cli_session_setup(cli, user, password, pw_len, password,
pw_len, domain);
if (!NT_STATUS_IS_OK(nt_status)) {
diff --git a/source3/torture/torture.c b/source3/torture/torture.c
index 22e1104d79..804e772516 100644
--- a/source3/torture/torture.c
+++ b/source3/torture/torture.c
@@ -273,6 +273,10 @@ static bool torture_open_connection_share(struct cli_state **c,
if (use_kerberos)
flags |= CLI_FULL_CONNECTION_USE_KERBEROS;
+ if (use_oplocks)
+ flags |= CLI_FULL_CONNECTION_OPLOCKS;
+ if (use_level_II_oplocks)
+ flags |= CLI_FULL_CONNECTION_LEVEL_II_OPLOCKS;
status = cli_full_connection(c, myname,
hostname, NULL, port_to_use,
@@ -285,8 +289,6 @@ static bool torture_open_connection_share(struct cli_state **c,
return False;
}
- if (use_oplocks) (*c)->use_oplocks = True;
- if (use_level_II_oplocks) (*c)->use_level_II_oplocks = True;
(*c)->timeout = 120000; /* set a really long timeout (2 minutes) */
if (do_encrypt) {