From 3084d49cc000dbfeb01d931d737c695dcd392e4a Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Mon, 6 Apr 2009 20:45:08 +0200 Subject: Add a bad hack to enable level 2 oplocks in torture_open_connection_share --- source3/include/client.h | 2 ++ source3/libsmb/cliconnect.c | 4 ++++ source3/torture/torture.c | 6 ++++-- 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) { -- cgit